diff --git a/.forgejo/workflows/build-release-integration.yml b/.forgejo/workflows/build-release-integration.yml index 3d024f5f9e..4dd7567d77 100644 --- a/.forgejo/workflows/build-release-integration.yml +++ b/.forgejo/workflows/build-release-integration.yml @@ -32,7 +32,7 @@ jobs: - uses: https://data.forgejo.org/actions/checkout@v6 - id: forgejo - uses: https://data.forgejo.org/actions/setup-forgejo@v3.1.11 + uses: https://data.forgejo.org/actions/setup-forgejo@v3.1.12 with: user: root password: admin1234 diff --git a/.forgejo/workflows/release-notes-assistant-milestones.yml b/.forgejo/workflows/release-notes-assistant-milestones.yml index da35dc5ff8..1105dcf042 100644 --- a/.forgejo/workflows/release-notes-assistant-milestones.yml +++ b/.forgejo/workflows/release-notes-assistant-milestones.yml @@ -6,7 +6,7 @@ on: env: RNA_WORKDIR: /srv/rna - RNA_VERSION: v1.7.0 # renovate: datasource=forgejo-releases depName=forgejo/release-notes-assistant registryUrl=https://code.forgejo.org + RNA_VERSION: v1.7.1 # renovate: datasource=forgejo-releases depName=forgejo/release-notes-assistant registryUrl=https://code.forgejo.org jobs: release-notes: diff --git a/.forgejo/workflows/release-notes-assistant.yml b/.forgejo/workflows/release-notes-assistant.yml index ebbef451bf..a2a787d01d 100644 --- a/.forgejo/workflows/release-notes-assistant.yml +++ b/.forgejo/workflows/release-notes-assistant.yml @@ -8,7 +8,7 @@ on: - labeled env: - RNA_VERSION: v1.7.0 # renovate: datasource=forgejo-releases depName=forgejo/release-notes-assistant registryUrl=https://code.forgejo.org + RNA_VERSION: v1.7.1 # renovate: datasource=forgejo-releases depName=forgejo/release-notes-assistant registryUrl=https://code.forgejo.org jobs: release-notes: diff --git a/.golangci.yml b/.golangci.yml index 82ad006687..bed9acf98b 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -189,9 +189,6 @@ linters: text: "(ST1005|ST1003|QF1001):" # TODO: eventually remove this section entirely - - path: models/actions/run.go - linters: - - nilnil - path: models/actions/task.go linters: - nilnil diff --git a/Makefile b/Makefile index 1d5b08f65d..5d6d589b44 100644 --- a/Makefile +++ b/Makefile @@ -47,7 +47,7 @@ GO_LICENSES_PACKAGE ?= github.com/google/go-licenses/v2@v2.0.1 # renovate: datas GOVULNCHECK_PACKAGE ?= golang.org/x/vuln/cmd/govulncheck@v1 # renovate: datasource=go DEADCODE_PACKAGE ?= golang.org/x/tools/cmd/deadcode@v0.45.0 # renovate: datasource=go ERRORTYPE_PACKAGE ?= fillmore-labs.com/errortype@v0.0.11 # renovate: datasource=go -RENOVATE_NPM_PACKAGE ?= renovate@43.182.1 # renovate: datasource=docker packageName=data.forgejo.org/renovate/renovate +RENOVATE_NPM_PACKAGE ?= renovate@43.195.3 # renovate: datasource=docker packageName=data.forgejo.org/renovate/renovate MOCKERY_PACKAGE ?= github.com/vektra/mockery/v3@v3.7.0 # renovate: datasource=go # https://github.com/disposable-email-domains/disposable-email-domains/commits/main/ diff --git a/assets/go-licenses.json b/assets/go-licenses.json index 067e903e59..b3e0cbca90 100644 --- a/assets/go-licenses.json +++ b/assets/go-licenses.json @@ -459,6 +459,11 @@ "path": "github.com/chi-middleware/proxy/LICENSE", "licenseText": "Copyright (c) 2020 Lauris BH\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n" }, + { + "name": "github.com/clipperhouse/uax29/v2/graphemes", + "path": "github.com/clipperhouse/uax29/v2/graphemes/LICENSE", + "licenseText": "MIT License\n\nCopyright (c) 2020 Matt Sherman\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n" + }, { "name": "github.com/cloudflare/circl", "path": "github.com/cloudflare/circl/LICENSE", diff --git a/build/lint-locale/lint-locale.go b/build/lint-locale/lint-locale.go index dc4088c73c..03ddab616e 100644 --- a/build/lint-locale/lint-locale.go +++ b/build/lint-locale/lint-locale.go @@ -191,5 +191,24 @@ func main() { } } + if exitCode != 0 { + fmt.Println(dmp.DiffPrettyText([]diffmatchpatch.Diff{{ + Type: diffmatchpatch.DiffEqual, + Text: "Please adjust the locale files as suggested above (", + }, { + Type: diffmatchpatch.DiffDelete, + Text: "red", + }, { + Type: diffmatchpatch.DiffEqual, + Text: ": removal, ", + }, { + Type: diffmatchpatch.DiffInsert, + Text: "green", + }, { + Type: diffmatchpatch.DiffEqual, + Text: ": insertion)", + }})) + } + os.Exit(exitCode) } diff --git a/custom/conf/app.example.ini b/custom/conf/app.example.ini index 40dd7d56db..ff88a35cd0 100644 --- a/custom/conf/app.example.ini +++ b/custom/conf/app.example.ini @@ -709,10 +709,6 @@ LEVEL = Info ;; see more on http://git-scm.com/docs/git-gc/ ;GC_ARGS = ;; -;; If use git wire protocol version 2 when git version >= 2.18, default is true, set to false when you always want git wire protocol version 1 -;; To enable this for Git over SSH when using a OpenSSH server, add `AcceptEnv GIT_PROTOCOL` to your sshd_config file. -;ENABLE_AUTO_GIT_WIRE_PROTOCOL = true -;; ;; Respond to pushes to a non-default branch with a URL for creating a Pull Request (if the repository has them enabled) ;PULL_REQUEST_PUSH_MESSAGE = true ;; Disable the usage of using partial clones for git. diff --git a/go.mod b/go.mod index f9454fbec9..e211a1b743 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( code.forgejo.org/forgejo/go-rpmutils v1.0.0 code.forgejo.org/forgejo/levelqueue v1.1.0 code.forgejo.org/forgejo/reply v1.0.2 - code.forgejo.org/forgejo/runner/v12 v12.10.1 + code.forgejo.org/forgejo/runner/v12 v12.10.2 code.forgejo.org/go-chi/binding v1.0.1 code.forgejo.org/go-chi/cache v1.0.1 code.forgejo.org/go-chi/captcha v1.0.2 @@ -76,7 +76,7 @@ require ( github.com/klauspost/compress v1.18.6 github.com/klauspost/cpuid/v2 v2.3.0 github.com/markbates/goth v1.82.0 - github.com/mattn/go-isatty v0.0.21 + github.com/mattn/go-isatty v0.0.22 github.com/mattn/go-sqlite3 v1.14.44 github.com/meilisearch/meilisearch-go v0.36.2 github.com/mholt/archives v0.1.5 @@ -147,7 +147,7 @@ require ( github.com/blevesearch/zapx/v15 v15.4.3 // indirect github.com/blevesearch/zapx/v16 v16.3.4 // indirect github.com/blevesearch/zapx/v17 v17.1.2 // indirect - github.com/bmatcuk/doublestar/v4 v4.9.1 // indirect + github.com/bmatcuk/doublestar/v4 v4.10.0 // indirect github.com/bodgit/plumbing v1.3.0 // indirect github.com/bodgit/sevenzip v1.6.1 // indirect github.com/bodgit/windows v1.0.1 // indirect @@ -156,6 +156,7 @@ require ( github.com/caddyserver/zerossl v0.1.5 // indirect github.com/cention-sany/utf7 v0.0.0-20170124080048-26cad61bd60a // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/cloudflare/circl v1.6.3 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/davidmz/go-pageant v1.0.2 // indirect @@ -165,7 +166,7 @@ require ( github.com/dsoprea/go-photoshop-info-format v0.0.0-20200609050348-3db9b63b202c // indirect github.com/dsoprea/go-utility/v2 v2.0.0-20221003172846-a3e1774ef349 // indirect github.com/emersion/go-sasl v0.0.0-20231106173351-e73c9f7bad43 // indirect - github.com/fatih/color v1.18.0 // indirect + github.com/fatih/color v1.19.0 // indirect github.com/fxamacker/cbor/v2 v2.9.1 // indirect github.com/go-ap/errors v0.0.0-20260208110149-e1b309365966 // indirect github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667 // indirect @@ -206,7 +207,7 @@ require ( github.com/mailru/easyjson v0.9.0 // indirect github.com/markbates/going v1.0.3 // indirect github.com/mattn/go-colorable v0.1.14 // indirect - github.com/mattn/go-runewidth v0.0.17 // indirect + github.com/mattn/go-runewidth v0.0.21 // indirect github.com/mattn/go-shellwords v1.0.12 // indirect github.com/mholt/acmez/v3 v3.1.6 // indirect github.com/miekg/dns v1.1.72 // indirect @@ -232,7 +233,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.62.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/rhysd/actionlint v1.7.10 // indirect + github.com/rhysd/actionlint v1.7.12 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect github.com/rs/xid v1.6.0 // indirect diff --git a/go.sum b/go.sum index 9ec521e8c7..cb2e3a5708 100644 --- a/go.sum +++ b/go.sum @@ -30,8 +30,8 @@ code.forgejo.org/forgejo/levelqueue v1.1.0 h1:IgDbeZBdzJhbI8M0hXCQ1qyJIk83cGnBS3 code.forgejo.org/forgejo/levelqueue v1.1.0/go.mod h1:flCo3rqxrybUXQR2I8TFyiDSsLkOjb71CZOEdAuJmgc= code.forgejo.org/forgejo/reply v1.0.2 h1:dMhQCHV6/O3L5CLWNTol+dNzDAuyCK88z4J/lCdgFuQ= code.forgejo.org/forgejo/reply v1.0.2/go.mod h1:RyZUfzQLc+fuLIGjTSQWDAJWPiL4WtKXB/FifT5fM7U= -code.forgejo.org/forgejo/runner/v12 v12.10.1 h1:qRKjWItVDc2lEMl3jGlKyFpqgX4xHeOdEyl/irO/Nk8= -code.forgejo.org/forgejo/runner/v12 v12.10.1/go.mod h1:A51GyZJlril5cIpVMvOn3NqE8upOE6ePjwC6s31kRHk= +code.forgejo.org/forgejo/runner/v12 v12.10.2 h1:tU4XiBlmMpQwutKL5QYV1FRTkv2FPrbuymYsucNdNWE= +code.forgejo.org/forgejo/runner/v12 v12.10.2/go.mod h1:QnCx84rMQJ+DJ4aS9r2BZL0z2a0ZFaVl9EfMnXYl23g= code.forgejo.org/forgejo/ssh v0.0.0-20241211213324-5fc306ca0616 h1:kEZL84+02jY9RxXM4zHBWZ3Fml0B09cmP1LGkDsCfIA= code.forgejo.org/forgejo/ssh v0.0.0-20241211213324-5fc306ca0616/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8= code.forgejo.org/go-chi/binding v1.0.1 h1:coKNI+X1NzRN7X85LlrpvBRqk0TXpJ+ja28vusQWEuY= @@ -145,8 +145,8 @@ github.com/blevesearch/zapx/v16 v16.3.4 h1:hDAqA8qusZTNbPEL7//w5P65UZ2de6yhSeUaT github.com/blevesearch/zapx/v16 v16.3.4/go.mod h1:zqkPPqs9GS9FzVWzCO3Wf1X044yWAV17+4zb+FTiEHg= github.com/blevesearch/zapx/v17 v17.1.2 h1:avbOk2igaASNoiy0BE/jPgcxAnRI2PGeydeP4hg7Ikk= github.com/blevesearch/zapx/v17 v17.1.2/go.mod h1:WQObxKrqUX7cd0G1GMvDfc/bmZzQvoy7APOPimx7DiI= -github.com/bmatcuk/doublestar/v4 v4.9.1 h1:X8jg9rRZmJd4yRy7ZeNDRnM+T3ZfHv15JiBJ/avrEXE= -github.com/bmatcuk/doublestar/v4 v4.9.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= +github.com/bmatcuk/doublestar/v4 v4.10.0 h1:zU9WiOla1YA122oLM6i4EXvGW62DvKZVxIe6TYWexEs= +github.com/bmatcuk/doublestar/v4 v4.10.0/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= github.com/bodgit/plumbing v1.3.0 h1:pf9Itz1JOQgn7vEOE7v7nlEfBykYqvUYioC61TwWCFU= github.com/bodgit/plumbing v1.3.0/go.mod h1:JOTb4XiRu5xfnmdnDJo6GmSbSbtSyufrsyZFByMtKEs= github.com/bodgit/sevenzip v1.6.1 h1:kikg2pUMYC9ljU7W9SaqHXhym5HyKm8/M/jd31fYan4= @@ -185,6 +185,8 @@ github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObk github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk= +github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8= github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -242,8 +244,8 @@ github.com/emersion/go-sasl v0.0.0-20231106173351-e73c9f7bad43/go.mod h1:iL2twTe github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594/go.mod h1:aqO8z8wPrjkscevZJFVE1wXJrLpC5LtJG7fqLOsPb2U= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= -github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/fatih/color v1.19.0 h1:Zp3PiM21/9Ld6FzSKyL5c/BULoe/ONr9KlbYVOfG8+w= +github.com/fatih/color v1.19.0/go.mod h1:zNk67I0ZUT1bEGsSGyCZYZNrHuTkJJB+r6Q9VuMi0LE= github.com/felixge/fgprof v0.9.5 h1:8+vR6yu2vvSKn08urWyEuxx75NWPEvybbkBirEpsbVY= github.com/felixge/fgprof v0.9.5/go.mod h1:yKl+ERSa++RYOs32d8K6WEXCB4uXdLls4ZaZPpayhMM= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= @@ -510,10 +512,10 @@ github.com/markbates/goth v1.82.0 h1:8j/c34AjBSTNzO7zTsOyP5IYCQCMBTRBHAbBt/PI0bQ github.com/markbates/goth v1.82.0/go.mod h1:/DRlcq0pyqkKToyZjsL2KgiA1zbF1HIjE7u2uC79rUk= github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= -github.com/mattn/go-isatty v0.0.21 h1:xYae+lCNBP7QuW4PUnNG61ffM4hVIfm+zUzDuSzYLGs= -github.com/mattn/go-isatty v0.0.21/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4= -github.com/mattn/go-runewidth v0.0.17 h1:78v8ZlW0bP43XfmAfPsdXcoNCelfMHsDmd/pkENfrjQ= -github.com/mattn/go-runewidth v0.0.17/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-isatty v0.0.22 h1:j8l17JJ9i6VGPUFUYoTUKPSgKe/83EYU2zBC7YNKMw4= +github.com/mattn/go-isatty v0.0.22/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4= +github.com/mattn/go-runewidth v0.0.21 h1:jJKAZiQH+2mIinzCJIaIG9Be1+0NR+5sz/lYEEjdM8w= +github.com/mattn/go-runewidth v0.0.21/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/mattn/go-sqlite3 v1.14.44 h1:3VSe+xafpbzsLbdr2AWlAZk9yRHiBhTBakioXaCKTF8= @@ -604,9 +606,8 @@ github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0leargg github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/redis/go-redis/v9 v9.19.0 h1:XPVaaPSnG6RhYf7p+rmSa9zZfeVAnWsH5h3lxthOm/k= github.com/redis/go-redis/v9 v9.19.0/go.mod h1:v/M13XI1PVCDcm01VtPFOADfZtHf8YW3baQf57KlIkA= -github.com/rhysd/actionlint v1.7.10 h1:FL3XIEs72G4/++168vlv5FKOWMSWvWIQw1kBCadyOcM= -github.com/rhysd/actionlint v1.7.10/go.mod h1:ZHX/hrmknlsJN73InPTKsKdXpAv9wVdrJy8h8HAwFHg= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rhysd/actionlint v1.7.12 h1:vQ4GeJN86C0QH+gTUQcs8McmK62OLT3kmakPMtEWYnY= +github.com/rhysd/actionlint v1.7.12/go.mod h1:krOUhujIsJusovkaYzQ/VNH8PFexjNKqU0q5XI/4w+g= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= diff --git a/models/actions/run.go b/models/actions/run.go index 09eddc3269..fe5c21de91 100644 --- a/models/actions/run.go +++ b/models/actions/run.go @@ -477,7 +477,7 @@ func GetLatestRun(ctx context.Context, repoID int64) (*ActionRun, error) { func GetRunBefore(ctx context.Context, _ *ActionRun) (*ActionRun, error) { // TODO return the most recent run related to the run given in argument // see https://codeberg.org/forgejo/user-research/issues/63 for context - return nil, nil + return nil, util.ErrNotExist } func GetLatestRunForBranchAndWorkflow(ctx context.Context, repoID int64, branch, workflowFile, event string) (*ActionRun, error) { @@ -499,26 +499,16 @@ func GetLatestRunForBranchAndWorkflow(ctx context.Context, repoID int64, branch, } func GetRunByID(ctx context.Context, id int64) (*ActionRun, error) { - run, has, err := GetRunByIDWithHas(ctx, id) - if err != nil { - return nil, err - } else if !has { - return nil, fmt.Errorf("run with id %d: %w", id, util.ErrNotExist) - } - - return run, nil -} - -func GetRunByIDWithHas(ctx context.Context, id int64) (*ActionRun, bool, error) { var run ActionRun has, err := db.GetEngine(ctx).Where("id=?", id).Get(&run) if err != nil { - return nil, false, err - } else if !has { - return nil, false, nil + return nil, err + } + if !has { + return nil, fmt.Errorf("run with id %d: %w", id, util.ErrNotExist) } - return &run, true, nil + return &run, nil } func GetRunByIndex(ctx context.Context, repoID, index int64) (*ActionRun, error) { diff --git a/models/actions/run_test.go b/models/actions/run_test.go index c87765ed72..7645a40557 100644 --- a/models/actions/run_test.go +++ b/models/actions/run_test.go @@ -13,6 +13,7 @@ import ( "forgejo.org/modules/cache" "forgejo.org/modules/setting" "forgejo.org/modules/test" + "forgejo.org/modules/util" "code.forgejo.org/forgejo/runner/v12/act/jobparser" "github.com/stretchr/testify/assert" @@ -692,3 +693,29 @@ func TestActionRunLoadAttributes(t *testing.T) { require.NoError(t, run.LoadAttributes(t.Context())) assert.Equal(t, "ghost", run.TriggerUser.LowerName) } + +func TestGetRunByID(t *testing.T) { + const ( + existingRunID = 0xdeadbeef + nonexistingRunID = 0xffffffff + ) + + require.NoError(t, unittest.PrepareTestDatabase()) + + _, err := db.GetEngine(t.Context()).Insert(ActionRun{ + ID: existingRunID, + }) + require.NoError(t, err) + + // ActionRun exists + + run, err := GetRunByID(t.Context(), existingRunID) + require.NoError(t, err) + assert.NotNil(t, run) + + // ActionRun does not exist + + run, err = GetRunByID(t.Context(), nonexistingRunID) + require.ErrorIs(t, err, util.ErrNotExist) + assert.Nil(t, run) +} diff --git a/models/auth/authorized_integration.go b/models/auth/authorized_integration.go index 91415b626d..8420ebdc7d 100644 --- a/models/auth/authorized_integration.go +++ b/models/auth/authorized_integration.go @@ -83,7 +83,7 @@ func init() { // { // "rules": [{ // "claim": "sub", -// "comparison": "eq", +// "compare": "eq", // "value": "repo:forgejo/website:pull_request" // }] // } diff --git a/models/issues/issue.go b/models/issues/issue.go index a90686eb50..e73dc57b6b 100644 --- a/models/issues/issue.go +++ b/models/issues/issue.go @@ -386,7 +386,14 @@ func (issue *Issue) APIURL(ctx context.Context) string { return "" } } - return fmt.Sprintf("%s/issues/%d", issue.Repo.APIURL(), issue.Index) + + var path string + if issue.IsPull { + path = "pulls" + } else { + path = "issues" + } + return fmt.Sprintf("%s/%s/%d", issue.Repo.APIURL(), path, issue.Index) } // HTMLURL returns the absolute URL to this issue. diff --git a/models/issues/issue_test.go b/models/issues/issue_test.go index 0c5da6a2aa..f21df067a2 100644 --- a/models/issues/issue_test.go +++ b/models/issues/issue_test.go @@ -67,6 +67,10 @@ func TestIssueAPIURL(t *testing.T) { require.NoError(t, err) assert.Equal(t, "https://try.gitea.io/api/v1/repos/user2/repo1/issues/1", issue.APIURL(db.DefaultContext)) + + pr := unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{ID: 1}) + require.NoError(t, pr.LoadIssue(db.DefaultContext)) + assert.Equal(t, "https://try.gitea.io/api/v1/repos/user2/repo1/pulls/2", pr.Issue.APIURL(db.DefaultContext)) } func TestGetIssuesByIDs(t *testing.T) { diff --git a/models/packages/debian/search.go b/models/packages/debian/search.go index c528a25194..f7b56f4fc2 100644 --- a/models/packages/debian/search.go +++ b/models/packages/debian/search.go @@ -76,22 +76,35 @@ 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). + // Forgejo's db library doesn't have an iterate method that allows us to do this query, *sorted*, in chunks. xorm's + // `Iterate` isn't usable because sometimes we are in a transaction, and GetPackageFileDescriptor will make + // supplemental DB calls which will fail in xorm's Iterate as the same connection will come back from + // db.GetEngine(ctx) due to the transaction, and that connection is already being used for the iterate. + // + // Aside from the reasons we can't do this iteratively, `SearchPackages` is only used when we're rebuilding the + // package index, and the caller `buildPackagesIndices` is already building *three* in-memory files referencing all + // this same information -- so the memory usage to load this information in one chunk shouldn't be significantly + // worse than the index rebuild side anyway. + pfs := make([]*packages.PackageFile, 0, 100) + 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"). - Iterate(&packages.PackageFile{}, func(i int, bean any) error { - pf := bean.(*packages.PackageFile) - pfd, err := packages.GetPackageFileDescriptor(ctx, pf) - if err != nil { - return err - } - iter(pfd) - return nil - }) + Find(&pfs) + if err != nil { + return err + } + for _, pf := range pfs { + pfd, err := packages.GetPackageFileDescriptor(ctx, pf) + if err != nil { + return err + } + iter(pfd) + } + return nil } // GetDistributions gets all available distributions diff --git a/models/user/user.go b/models/user/user.go index 80843cfed9..ed47db0c0e 100644 --- a/models/user/user.go +++ b/models/user/user.go @@ -761,6 +761,7 @@ func createUser(ctx context.Context, u *User, createdByAdmin bool, overwriteDefa u.Theme = setting.UI.DefaultTheme u.IsRestricted = setting.Service.DefaultUserIsRestricted u.IsActive = !setting.Service.RegisterEmailConfirm && !setting.Service.RegisterManualConfirm + u.EnableRepoUnitHints = true // Ensure consistency of the dates. if u.UpdatedUnix < u.CreatedUnix { diff --git a/modules/actions/workflows.go b/modules/actions/workflows.go index ed54ccc98b..337664343b 100644 --- a/modules/actions/workflows.go +++ b/modules/actions/workflows.go @@ -517,7 +517,7 @@ func matchPullRequestEvent(gitRepo *git.Repository, commit *git.Commit, prPayloa matchTimes++ } case "paths": - filesChanged, err := headCommit.GetFilesChangedSinceCommit(prPayload.PullRequest.Base.Ref) + filesChanged, err := headCommit.GetFilesChangedSinceCommit(prPayload.PullRequest.MergeBase) if err != nil { log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", headCommit.ID.String(), err) } else { @@ -530,7 +530,7 @@ func matchPullRequestEvent(gitRepo *git.Repository, commit *git.Commit, prPayloa } } case "paths-ignore": - filesChanged, err := headCommit.GetFilesChangedSinceCommit(prPayload.PullRequest.Base.Ref) + filesChanged, err := headCommit.GetFilesChangedSinceCommit(prPayload.PullRequest.MergeBase) if err != nil { log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", headCommit.ID.String(), err) } else { diff --git a/modules/git/git.go b/modules/git/git.go index ea3e2a1320..b58209dd28 100644 --- a/modules/git/git.go +++ b/modules/git/git.go @@ -111,15 +111,7 @@ func VersionInfo() string { if GitVersion == nil { return "(git not found)" } - format := "%s" - args := []any{GitVersion.Original()} - // Since git wire protocol has been released from git v2.18 - if setting.Git.EnableAutoGitWireProtocol { - format += ", Wire Protocol %s Enabled" - args = append(args, "Version 2") // for focus color - } - - return fmt.Sprintf(format, args...) + return GitVersion.Original() } func checkInit() error { @@ -173,10 +165,6 @@ func InitFull(ctx context.Context) (err error) { _ = os.Setenv("GNUPGHOME", filepath.Join(HomeDir(), ".gnupg")) } - if setting.Git.EnableAutoGitWireProtocol { - globalCommandArgs = append(globalCommandArgs, "-c", "protocol.version=2") - } - // Explicitly disable credential helper, otherwise Git credentials might leak globalCommandArgs = append(globalCommandArgs, "-c", "credential.helper=") diff --git a/modules/migration/uploader.go b/modules/migration/uploader.go index ff642aa4fa..90aa71b9c7 100644 --- a/modules/migration/uploader.go +++ b/modules/migration/uploader.go @@ -1,3 +1,4 @@ +// Copyright 2026 The Forgejo Authors. All rights reserved. // Copyright 2019 The Gitea Authors. All rights reserved. // Copyright 2018 Jonas Franz. All rights reserved. // SPDX-License-Identifier: MIT diff --git a/modules/setting/git.go b/modules/setting/git.go index 04543e803d..123ba515a7 100644 --- a/modules/setting/git.go +++ b/modules/setting/git.go @@ -17,18 +17,17 @@ var Git = struct { HomePath string DisableDiffHighlight bool - MaxGitDiffLines int - MaxGitDiffLineCharacters int - MaxGitDiffFiles int - CommitsRangeSize int // CommitsRangeSize the default commits range size - BranchesRangeSize int // BranchesRangeSize the default branches range size - VerbosePush bool - VerbosePushDelay time.Duration - GCArgs []string `ini:"GC_ARGS" delim:" "` - EnableAutoGitWireProtocol bool - PullRequestPushMessage bool - DisablePartialClone bool - Timeout struct { + MaxGitDiffLines int + MaxGitDiffLineCharacters int + MaxGitDiffFiles int + CommitsRangeSize int // CommitsRangeSize the default commits range size + BranchesRangeSize int // BranchesRangeSize the default branches range size + VerbosePush bool + VerbosePushDelay time.Duration + GCArgs []string `ini:"GC_ARGS" delim:" "` + PullRequestPushMessage bool + DisablePartialClone bool + Timeout struct { Default int Migrate int Mirror int @@ -38,18 +37,17 @@ var Git = struct { Grep int } `ini:"git.timeout"` }{ - DisableDiffHighlight: false, - MaxGitDiffLines: 1000, - MaxGitDiffLineCharacters: 5000, - MaxGitDiffFiles: 100, - CommitsRangeSize: 50, - BranchesRangeSize: 20, - VerbosePush: true, - VerbosePushDelay: 5 * time.Second, - GCArgs: []string{}, - EnableAutoGitWireProtocol: true, - PullRequestPushMessage: true, - DisablePartialClone: false, + DisableDiffHighlight: false, + MaxGitDiffLines: 1000, + MaxGitDiffLineCharacters: 5000, + MaxGitDiffFiles: 100, + CommitsRangeSize: 50, + BranchesRangeSize: 20, + VerbosePush: true, + VerbosePushDelay: 5 * time.Second, + GCArgs: []string{}, + PullRequestPushMessage: true, + DisablePartialClone: false, Timeout: struct { Default int Migrate int @@ -97,14 +95,15 @@ func loadGitFrom(rootCfg ConfigProvider) { GitConfig.SetOption("core.logAllRefUpdates", "true") GitConfig.SetOption("gc.reflogExpire", "90") - secGitReflog := rootCfg.Section("git.reflog") - if secGitReflog.HasKey("ENABLED") { - deprecatedSetting(rootCfg, "git.reflog", "ENABLED", "git.config", "core.logAllRefUpdates", "1.21") - GitConfig.SetOption("core.logAllRefUpdates", secGitReflog.Key("ENABLED").In("true", []string{"true", "false"})) - } - if secGitReflog.HasKey("EXPIRATION") { - deprecatedSetting(rootCfg, "git.reflog", "EXPIRATION", "git.config", "core.reflogExpire", "1.21") - GitConfig.SetOption("gc.reflogExpire", secGitReflog.Key("EXPIRATION").String()) + GitConfig.SetOption("transfer.fsckObjects", "true") + // To ignore specific warnings they have to be set for all of the three + // scenarios. Per git-config(1): "To uniformly configure the same fsck + // settings in different circumstances, all three of them must be set to the + // same values." + for _, prefix := range []string{"fsck.", "fetch.fsck.", "receive.fsck."} { + GitConfig.SetOption(prefix+"badTimezone", "ignore") + GitConfig.SetOption(prefix+"missingSpaceBeforeDate", "ignore") + GitConfig.SetOption(prefix+"zeroPaddedFilemode", "ignore") } for _, key := range secGitConfig.Keys() { diff --git a/modules/setting/git_test.go b/modules/setting/git_test.go index 5604151907..e1cac8ff19 100644 --- a/modules/setting/git_test.go +++ b/modules/setting/git_test.go @@ -32,29 +32,43 @@ diff.algorithm = other require.NoError(t, err) loadGitFrom(cfg) assert.Equal(t, "other", GitConfig.Options["diff.algorithm"]) + + t.Run("Fsck options", func(t *testing.T) { + cfg, err := NewConfigProviderFromData(` +[git.config] +receive.fsckObjects = false +fetch.fsck.zeroPaddedFilemode = warn +fsck.missingSpaceBeforeDate = error +`) + require.NoError(t, err) + loadGitFrom(cfg) + assert.Equal(t, "false", GitConfig.Options["receive.fsckobjects"]) + assert.Equal(t, "true", GitConfig.Options["transfer.fsckobjects"]) + assert.NotContains(t, GitConfig.Options, "fetch.fsckobjects") + + assert.Equal(t, "ignore", GitConfig.Options["fsck.badtimezone"]) + assert.Equal(t, "error", GitConfig.Options["fsck.missingspacebeforedate"]) + assert.Equal(t, "ignore", GitConfig.Options["fsck.zeropaddedfilemode"]) + + assert.Equal(t, "ignore", GitConfig.Options["receive.fsck.badtimezone"]) + assert.Equal(t, "ignore", GitConfig.Options["receive.fsck.missingspacebeforedate"]) + assert.Equal(t, "ignore", GitConfig.Options["receive.fsck.zeropaddedfilemode"]) + + assert.Equal(t, "ignore", GitConfig.Options["fetch.fsck.badtimezone"]) + assert.Equal(t, "ignore", GitConfig.Options["fetch.fsck.missingspacebeforedate"]) + assert.Equal(t, "warn", GitConfig.Options["fetch.fsck.zeropaddedfilemode"]) + }) } func TestGitReflog(t *testing.T) { defer test.MockProtect(&Git)() defer test.MockProtect(&GitConfig)() - // default reflog config without legacy options + // default reflog config. cfg, err := NewConfigProviderFromData(``) require.NoError(t, err) loadGitFrom(cfg) assert.Equal(t, "true", GitConfig.GetOption("core.logAllRefUpdates")) assert.Equal(t, "90", GitConfig.GetOption("gc.reflogExpire")) - - // custom reflog config by legacy options - cfg, err = NewConfigProviderFromData(` -[git.reflog] -ENABLED = false -EXPIRATION = 123 -`) - require.NoError(t, err) - loadGitFrom(cfg) - - assert.Equal(t, "false", GitConfig.GetOption("core.logAllRefUpdates")) - assert.Equal(t, "123", GitConfig.GetOption("gc.reflogExpire")) } diff --git a/modules/translation/i18n/dummy_test.go b/modules/translation/i18n/dummy_test.go index 1df3d0c348..7f089529be 100644 --- a/modules/translation/i18n/dummy_test.go +++ b/modules/translation/i18n/dummy_test.go @@ -12,7 +12,7 @@ import ( ) func TestFormatDummy(t *testing.T) { - assert.Equal(t, "(admin.config.git_max_diff_lines)", i18n.FormatDummy("admin.config.git_max_diff_lines")) + assert.Equal(t, "(admin.config.git.diff.max_lines)", i18n.FormatDummy("admin.config.git.diff.max_lines")) assert.Equal(t, "(dashboard)", i18n.FormatDummy("dashboard")) assert.Equal(t, "(branch.create_branch: main)", i18n.FormatDummy("branch.create_branch", "main")) assert.Equal(t, "(test.test: a, 1, true)", i18n.FormatDummy("test.test", "a", 1, true)) diff --git a/modules/web/route.go b/modules/web/route.go index dc83178f74..e381e8ff29 100644 --- a/modules/web/route.go +++ b/modules/web/route.go @@ -164,8 +164,9 @@ func (r *Route) ServeHTTP(w http.ResponseWriter, req *http.Request) { } // NotFound defines a handler to respond whenever a route could not be found. -func (r *Route) NotFound(h http.HandlerFunc) { - r.R.NotFound(h) +func (r *Route) NotFound(h ...any) { + middlewares, handlerFunc := r.wrapMiddlewareAndHandler(h) + r.R.With(middlewares...).NotFound(handlerFunc) } // Combo delegates requests to Combo diff --git a/options/locale/locale_ar.ini b/options/locale/locale_ar.ini index 587ec0490c..9e5082bbcb 100644 --- a/options/locale/locale_ar.ini +++ b/options/locale/locale_ar.ini @@ -1808,26 +1808,19 @@ contributions_few = المساهمات self_check.database_fix_mysql = لمستخدمين ميسكول/ماريا دي بي، يمكنك استخدام أمر "forgejo doctor convert" لإصلاح مشاكل التجمّع، أو يمكنك أيضاً إصلاح المشكلة عن طريق تعديل السيكول يدوياً. self_check.database_collation_mismatch = توقع قاعدة البيانات لتستعمل تجميع: %s self_check.no_problem_found = لم يتم العثور على مشكلة حتى الآن. -dashboard.sync_tag.started = بدأ تزامن الوسوم -dashboard.sync_repo_tags = زامن الوسوم من بيانات جِت إلى قاعدة البيانات self_check = فحص ذاتي self_check.database_collation_case_insensitive = تستخدم قاعدة البيانات تجميع %s ، وهو تجميع غير حساس. على الرغم من أن فورجيو يمكن أن يعمل معها قد تكون هناك حالات نادرة لا تعمل كما هو متوقع. monitor.process.cancel_desc = قد يسبب إلغاء العملية فقدانًا للبيانات monitor.process.cancel_notices = أتريد إلغاء: %s؟ -dashboard.operations = عمليات الصيانة repositories = المستودعات -dashboard.statistic = الملخص monitor.execute_time = وقت التنفيذ organizations = المنظمات monitor.desc = الوصف monitor.start = وقت البدء -dashboard.system_status = حالة النظام -dashboard.delete_generated_repository_avatars = احذف الصورة الرمزية المولّدة للمستودع monitor.process.cancel = ألغِ العملية monitor.last_execution_result = النتيجة users = حسابات المستخدمين authentication = مصادر الاستيثاق -dashboard.operation_name = اسم العملية notices.type_1 = المستودع notices.desc = الوصف notices.type = النوع @@ -1836,75 +1829,45 @@ auths.port = المنفذ auths.attribute_username_placeholder = اتركه فارغاً لاستخدام اسم المستخدم المُدخل في فورجيو. auths.host = المضيف auths.domain = النطاق -users.reserved = محجوز systemhooks.add_webhook = إضافة خطاف ويب النظام -repos.owner = المالك auths.name = الاسم users.is_activated = حساب المستخدم مفعل -orgs.members = الأعضاء users.is_restricted = مقيَّد -dashboard.rebuild_issue_indexer = أعد بناء مُفهرِس المسائل users.user_manage_panel = إدارة حسابات المستخدمين -users.last_login = آخر ولوج -dashboard.delete_old_system_notices = احذف كل إشعارات النظام القديمة من قاعدة البيانات -packages.version = النُسخة users.send_register_notify = أرسل تنبيهًا عند تسجيل مستخدم جديد systemhooks.update_webhook = تحديث خطاف ويب النظام -packages.name = الاسم users.prohibit_login = عطّل الولوج users.still_own_repo = ما زال لدى هذا المستخدم مستودعا أو أكثر؛ احذفها أو انقلها أولا. defaulthooks = خطاطيف الويب المبدئية -users.activated = مُفعّل -users.full_name = الاسم الكامل -packages.owner = المالك auths.auth_type = نوع الاستيثاق users.allow_git_hook_tooltip = خطاطيف جت تُنفذ على نظام التشغيل بحساب المستخدم الذي يشغّل فورجيو، وسيكون لها صلاحيات الوصول نفسها. مما يعني أن المستخدمين الذين لديهم هذا الامتياز يستطيعون الوصول إلى جميع المستودعات في فورجيو وتعديل ما فيها وكذلك قاعدة البيانات التي يستخدمها فورجيو. مما يعني قدرتهم على الحصول على الامتيازات الإدارية في فورجيو. auths.type = النوع users.purge_help = حذف مستخدم بالقوة وكل مستودعاته ومنظماته وحزمه. كل تعليقاته والمسائل التي أنشأها ستُحذف أيضا. -users.admin = المدير emails.email_manage_panel = إدارة بريد المستخدم -users.name = اسم المستخدم -packages.repository = المستودع -orgs.teams = الفِرق -packages.size = الحجم users.max_repo_creation = العدد الأقصى للمستودعات -orgs.new_orga = منظمة جديدة users.allow_import_local = يستطيع استيراد مستودعات محلية -repos.name = الاسم users.cannot_delete_self = "لا يمكنك حذف نفسك" -repos.size = الحجم users.still_own_packages = ما زال لدى هذا المستخدم حزمة أو أكثر؛ احذفها أولا. users.still_has_org = هذا المستخدم عضو منظمة؛ أزله من أي منظمة أولا. -packages.type = النوع packages.package_manage_panel = إدارة الحزم auths.auth_name = اسم الاستيثاق users.details = تفاصيل المستخدم -orgs.name = الاسم -users.repos = المستودعات defaulthooks.update_webhook = تحديث خطاف الويب المبدئي users.allow_git_hook = يستطيع عمل خطاطيف جت users.password_helper = اترك كلمة المرور فارغة لإبقائها بلا تغيير. -dashboard.update_checker = فاحص التحديث users.update_profile = حدّث حساب المستخدم systemhooks = خطاطيف ويب النظام -users.never_login = لم يلج قَط users.allow_create_organization = يستطيع إنشاء منظمات -users.restricted = مقيَّد users.delete_account = احذف حساب المستخدم orgs.org_manage_panel = إدارة المنظمات users.local = محلي users.new_account = أنشئ حساب مستخدم defaulthooks.add_webhook = إضافة خطاف ويب مبدئي auths.updated = محدث -packages.creator = المُنشئ users.is_admin = مدير -packages.total_size = إجمالي الحجم: %s auths.enabled = مفعّل repos.repo_manage_panel = إدارة المستودعات -repos.issues = المسائل -users.created = أُنشئ auths.oauth2_authURL = رابط الأذن -dashboard.resync_all_sshkeys = حدّث ملف '.ssh/authorized_keys' بمفاتيح SSH لفورجيو. config.default_keep_email_private = أخفِ عناوين البريد الإلكتروني مبدئيا config.default_allow_create_organization = اسمح بإنشاء المنظمات مبدئيا config.enable_timetracking = فعّل تتبع الوقت diff --git a/options/locale/locale_az.ini b/options/locale/locale_az.ini new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/options/locale/locale_az.ini @@ -0,0 +1 @@ + diff --git a/options/locale/locale_bg.ini b/options/locale/locale_bg.ini index 7e931f061d..aa7e796bf9 100644 --- a/options/locale/locale_bg.ini +++ b/options/locale/locale_bg.ini @@ -2111,29 +2111,18 @@ show_only_public = Показване само на публични filter_by_team_repositories = Филтриране по хранилища на екипа [admin] -packages.version = Версия -packages.name = Име -users.full_name = Пълно име dashboard = Табло repositories = Хранилища -users.name = Потребителско име organizations = Организации -config.mailer_name = Име -repos.name = Име -orgs.name = Име users.edit = Редактиране -config.db_user = Потребителско име -config.db_name = Име first_page = Първа config.app_name = Заглавие на сайта -packages.repository = Хранилище notices.type_1 = Хранилище config.domain = Домейн на сървъра users.max_repo_creation = Максимален брой хранилища defaulthooks = Уеб-куки по подразбиране hooks = Уеб-куки systemhooks = Системни уеб-куки -orgs.new_orga = Нова организация config.https_only = Само HTTPS users.update_profile_success = Потребителският акаунт е обновен. users.new_success = Потребителският акаунт „%s“ е създаден. @@ -2141,46 +2130,25 @@ users.deletion_success = Потребителският акаунт е изтр last_page = Последна config.test_email_placeholder = Ел. поща (напр. test@example.com) users.cannot_delete_self = Не можете да изтриете себе си -repos.owner = Притежател auths.domain = Домейн auths.host = Хост auths.port = Порт auths.type = Тип -config.ssh_config = SSH конфигурация monitor.stats = Статистика config = Конфигурация -config.mailer_user = Потребител config.enable_captcha = Включване на CAPTCHA -repos.size = Размер auths.enabled = Включено -config.git_config = Git конфигурация -config.mailer_protocol = Протокол -users.bot = Бот -config.db_path = Път config.server_config = Сървърна конфигурация -packages.size = Размер settings = Админ. настройки users = Потребителски акаунти emails.duplicate_active = Този адрес за ел. поща вече е активен за друг потребител. config.app_ver = Forgejo версия config.custom_conf = Път на конфигурационния файл -config.git_version = Git версия config.lfs_config = LFS конфигурация -config.db_ssl_mode = SSL -users.admin = Админ auths.name = Име -repos.issues = Задачи -packages.owner = Притежател -packages.creator = Създател -packages.type = Тип -orgs.teams = Екипи -orgs.members = Участници config_settings = Настройки users.details = Потребителски данни -packages.total_size = Общ размер: %s -dashboard.new_version_hint = Forgejo %s вече е наличен, вие изпълнявате %s. Проверете блога за повече подробности. total = Общо: %d -config.db_type = Тип notices.type = Тип users.prohibit_login = Замразен акаунт diff --git a/options/locale/locale_ca.ini b/options/locale/locale_ca.ini index fc77e81569..1d172d9b95 100644 --- a/options/locale/locale_ca.ini +++ b/options/locale/locale_ca.ini @@ -2734,60 +2734,24 @@ teams.invite.by = convidat per %s teams.invite.description = Si us plau, feu clic al botó aquí sota per unir-vos a l'equip. [admin] -dashboard.cron.finished = Cron: %[1]s ha finalitzat dashboard.delete_inactive_accounts = Suprimir tots els comptes no activats -dashboard.delete_inactive_accounts.started = S'ha iniciat la tasca per suprimir tots els comptes no activats. dashboard.delete_repo_archives = Suprimir tots els arxius dels repositoris (ZIP, TAR.GZ, etc.) -dashboard.delete_repo_archives.started = S'ha iniciat la tasca per suprimir tots els arxius dels repositoris. dashboard.delete_missing_repos = Suprimir tots els repositoris que no tinguin els fitxers de Git -dashboard.delete_missing_repos.started = S'ha iniciat la tasca per suprimir tots els repositoris que no tinguin els fitxers de Git. -dashboard.update_mirrors = Actualitzar les rèpliques -dashboard.archive_cleanup = Suprimir els arxius de repositori antics -orgs.name = Nom -orgs.teams = Equips -repos.name = Nom -repos.issues = Problemes -repos.size = Mida auths.name = Nom -config.db_name = Nom -config.mailer_name = Nom monitor.name = Nom notices.type = Tipus -config.db_type = Tipus auths.type = Tipus -packages.type = Tipus -packages.repository = Repositori notices.type_1 = Repositori -packages.size = Mida auths.enabled = Habilitat -config.ssh_enabled = Habilitat config.lfs_enabled = Habilitat -config.mailer_enabled = Habilitat -config.db_host = Amfitrió auths.host = Amfitrió auths.port = Port -config.ssh_port = Port -users.name = Nom d'usuari emails.filter_sort.name = Nom d'usuari -config.db_user = Nom d'usuari -config.db_schema = Esquema -config.db_ssl_mode = SSL -config.db_path = Camí -users.full_name = Nom complet -users.activated = Activat emails.activated = Activat emails.filter_sort.email = Correu electrònic -users.admin = Administrador notices.desc = Descripció -packages.name = Nom -packages.version = Versió -orgs.members = Membres -orgs.new_orga = Nova organització repositories = Repositoris hooks = Webhooks -dashboard.delete_generated_repository_avatars = Suprimir els avatars de repositori generats -dashboard.sync_repo_tags = Sincronitzar les etiquetes de les dades de Git a la base de dades -dashboard.repo_health_check = Comprovar la salut de tots els repositoris dashboard = Tauler self_check = Comprovació automàtica identity_access = Identitat i accés @@ -2805,58 +2769,12 @@ first_page = Primer last_page = Últim total = Total: %d settings = Configuració d'administrador -dashboard.new_version_hint = Forgejo %s és ara disponible, esteu executant %s. Comprova el blog per més detalls. -dashboard.statistic = Resum -dashboard.operations = Operacions de manteniment -dashboard.system_status = Estat del sistema -dashboard.operation_name = Nom d'operació dashboard.clean_unbind_oauth = Neteja les connexions OAuth desenllaçades -dashboard.operation_run = Executar dashboard.clean_unbind_oauth_success = S'han eliminat totes les connexions OAuth desenllaçades. -dashboard.task.started = Tasca iniciada: %[1]s -dashboard.task.process = Tasca: %[1]s -dashboard.task.cancelled = Tasca: %[1]s cancel·lada: %[3]s -dashboard.task.error = Error en la tasca: %[1]s: %[3]s -dashboard.task.finished = Tasca: %[1] iniciada per %[2s] ha finalitzat -dashboard.task.unknown = Tasca desconeguda: %[1]s -dashboard.cron.started = Cron iniciat: %[1]s -dashboard.cron.cancelled = Cron: %[1]s cancel·lat: %[3]s -dashboard.cron.error = Error amb Cron: %s: %[3]s -dashboard.sync_repo_branches = La sincronització ha ignorat branques de les dades Git a la base de dades -dashboard.check_repo_stats = Comprovar totes les estadístiques del repositori -dashboard.deleted_branches_cleanup = Netejar branques eliminades -dashboard.update_migration_poster_id =Actualitza les ID de l'autor de migració -dashboard.git_gc_repos = Recull la brossa de tots els repositoris -dashboard.resync_all_sshkeys = Actualitzar el fitxer ".ssh/authorized_keys" amb les claus SSH de Forgejo. -dashboard.resync_all_sshprincipals = Actualitzar el fitxer ".ssh/authorized_principals" amb els principals SSH de Forgejo. -dashboard.resync_all_hooks = Resincronitzar els ganxos Git de tots els repositoris (pre-receive, update, post-receive, proc-receive, …) -dashboard.reinit_missing_repos = Reinicialitza tots els repositoris Git que falten i que tenen registres -dashboard.sync_external_users = Sincronitzar dades d'usuari externes -dashboard.cleanup_hook_task_table = Netejar la taula hook_task -dashboard.cleanup_packages = Netejar paquets caducats -dashboard.cleanup_actions = Netejar registres i artefactes d'accions caducats dashboard.delete_old_actions = Eliminar totes les activitats antigues de la base de dades -dashboard.delete_old_actions.started = Eliminar totes les activitats antigues des que s'ha iniciat la base de dades. -dashboard.delete_old_system_notices = Eliminar totes les notificacions de sistema antigues de la base de dades -dashboard.gc_lfs = Recull la brossa d'objectes meta LFS -dashboard.stop_zombie_tasks = Aturar tasques d'accions zombi -dashboard.stop_endless_tasks = Aturar tasques d'accions infinites -dashboard.cancel_abandoned_jobs = Cancel·lar feines d'accions abandonades -dashboard.sync_branch.started = S'ha iniciat la sincronització de branca -dashboard.sync_tag.started = S'ha iniciat la sincronització d'etiquetes -dashboard.cron.process = Cron: %[1]s notices = Notificacions del sistema -dashboard.rebuild_issue_indexer = Reconstruir l'indexador d'incidències users.user_manage_panel = Gestionar comptes d'usuari users.new_account = Crear compte d'usuari -users.restricted = Restringit -users.reserved = Reservat -users.bot = Bot -users.remote = Remot -users.repos = Repos -users.created = Creats -users.last_login = Darrer inici de sessió -users.never_login = Mai ha iniciat sessió users.send_register_notify = Notificar sobre el registre per correu users.new_success = S'ha creat l'usuari "%s". users.edit = Editar @@ -2909,16 +2827,9 @@ orgs.org_manage_panel = Gestionar organitzacions repos.repo_manage_panel = Gestionar repositoris repos.unadopted = Repositoris no-adoptats repos.unadopted.no_more = No s'han trobat repositoris no-adoptats. -repos.owner = Propietari -repos.lfs_size = Mida LFS packages.package_manage_panel = Gestionar paquets -packages.total_size = Mida total: %s -packages.unreferenced_size = Mida sense referenciar: %s packages.cleanup = Netejar les dades caducades packages.cleanup.success = S'han netejat les dades caducades satisfactòriament -packages.owner = Propietari -packages.creator = Creador -packages.published = Publicat defaulthooks = Webhooks predeterminats defaulthooks.desc = Els webhooks fan una petició automàtica HTTP POST a un servidor quan s'activen alguns esdeveniments de Forgejo. Els webhooks definits aquí són predeterminats i es copiaran a tots els nous repositoris. Llegiu-ne més en la guia de webhooks. defaulthooks.add_webhook = Afegir webhook per defecte @@ -2988,8 +2899,6 @@ config.app_url = URL base config.custom_conf = Camí al fitxer de configuració config.domain = Domini del servidor config.offline_mode = Mode local -config.git_version = Versió de Git -config.ssh_config = Configuració SSH config.run_user = Executa com a usuari auths.tips.oauth2.general = Autenticació OAuth2 auths.tips.oauth2.general.tip = Quan registreu una nova autenticació OAuth2, l'URL de crida/redirecció serà: @@ -3017,18 +2926,9 @@ config.app_data_path = Camí a les dades d'aplicació config.log_file_root_path = Camí de registres config.script_type = Tipus d'script config.reverse_auth_user = Usuari d'autenticació al servidor intermediari revers -config.ssh_start_builtin_server = Usa el servidor integrat -config.ssh_domain = Domini del servidor SSH -config.ssh_listen_port = Port d'escolta -config.ssh_root_path = Camí arrel -config.ssh_key_test_path = Camí al test de clau -config.ssh_keygen_path = Camí keygen ("ssh-keygen") -config.ssh_minimum_key_size_check = Comprovació mínima de la mida de clau -config.ssh_minimum_key_sizes = Mides mínimes de clau config.lfs_config = Configuració LFS config.lfs_content_path = Camí de contingut LFS config.lfs_http_auth_expiry = Temps de caducitat d'autenticació HTTP de l'LFS -config.db_config = Configuració de la base de dades config.service_config = Configuració del servei config.register_email_confirm = Requereix una confirmació de correu per a registrar-se config.disable_register = Deshabilita l'auto-registre @@ -3055,16 +2955,6 @@ config.webhook_config = Configuració dels Webhooks config.queue_length = Longitud de la cua config.deliver_timeout = Temps d'espera d'entrega config.skip_tls_verify = Salta't la verificació TLS -config.mailer_config = Configuració del remitent -config.mailer_enable_helo = Habilita HELO -config.mailer_protocol = Protocol -config.mailer_smtp_addr = Amfitrió SMTP -config.mailer_smtp_port = Port SMTP -config.mailer_user = Usuari -config.mailer_use_sendmail = Usa Sendmail -config.mailer_sendmail_path = Camí de Sendmail -config.mailer_sendmail_args = Arguments extra per Sendmail -config.mailer_sendmail_timeout = Temps d'espera per Sendmail config.test_email_placeholder = Correu electrònic (ex. test@example.com) config.send_test_mail = Envia un correu de prova config.send_test_mail_submit = Envia @@ -3089,8 +2979,6 @@ config.https_only = Només HTTPS config.picture_config = Configuració d'imatge i avatar config.disable_gravatar = Deshabilita Gravatar config.enable_federated_avatar = Habilita els avatars federats -dashboard.operation_switch = Intercanvia -users.2fa = A2F users.reset_2fa = Restableix l'A2F auths.group_search_base = DN base de cerca de grup auths.group_attribute_list_users = Atribut de grup amb la llista d'usuaris @@ -3111,7 +2999,6 @@ auths.tip.github = Registra una aplicació OAuth nova a %s auths.tip.gitlab_new = Registra una aplicació nova a %s auths.tip.google_plus = Obté les credencials del client OAuth2 amb la consola del Google API a %s auths.tip.openid_connect = Usa l'URL d'OpenID Connect Discovery (/.well-known/openid-configuration) per a especificar els endpoints -dashboard.update_checker = Comprovador d'actualització [actions] runs.no_workflows.help_write_access = No sabeu com començar amb Forgejo Actions? Feu un cop d'ull als primers passos a la documentació d'usuari per escriure el vostre primer flux de treball, llavors configureu un runner Forgejo per a executar els vostres treballs. diff --git a/options/locale/locale_cs-CZ.ini b/options/locale/locale_cs-CZ.ini index 95457b6dcb..a155fcbaec 100644 --- a/options/locale/locale_cs-CZ.ini +++ b/options/locale/locale_cs-CZ.ini @@ -23,7 +23,7 @@ create_new=Vytvořit… user_profile_and_more=Profil a nastavení… signed_in_as=Přihlášen/a jako enable_javascript=Tato stránka vyžaduje JavaScript. -toc=Tabulka obsahu +toc=Obsah licenses=Licence return_to_forgejo=Vrátit se do Forgejo @@ -2058,7 +2058,7 @@ settings.pulls.allow_rebase_update=Povolit aktualizaci větve žádosti o slouč settings.pulls.default_delete_branch_after_merge=Ve výchozím nastavení odstranit větev žádosti o sloučení po jejím sloučení settings.pulls.default_allow_edits_from_maintainers=Ve výchozím nastavení povolit úpravy od správců settings.releases_desc=Povolit vydání v repozitáři -settings.packages_desc=Povolit registr balíčků repozitáře +settings.packages_desc=Povolit odkazování na balíčky settings.projects_desc=Povolit projekty v repozitáři settings.actions_desc=Povolit integrované pipeliny CI/CD pomocí služby Forgejo Actions settings.admin_settings=Administrátorská nastavení @@ -2881,75 +2881,14 @@ last_page=Poslední total=Celkem: %d settings=Nastavení správce -dashboard.new_version_hint=Forgejo %s je nyní k dispozici, aktuálně používáte verzi %s. Pro více informací viz blog. -dashboard.statistic=Souhrn -dashboard.operations=Operace údržby -dashboard.system_status=Stav systému -dashboard.operation_name=Název operace -dashboard.operation_switch=Přepnout -dashboard.operation_run=Spustit dashboard.clean_unbind_oauth=Vyčistit neprovázané OAuth spojení dashboard.clean_unbind_oauth_success=Všechna neprovázaná OAuth spojení byla smazána. -dashboard.task.started=Zahájena úloha: %[1]s -dashboard.task.process=Úloha: %[1]s -dashboard.task.cancelled=Úloha: %[1]s zrušean: %[3]s -dashboard.task.error=Chyba v úloze: %[1]s: %[3]s -dashboard.task.finished=Úloha: %[1]s začala %[2]s skončila -dashboard.task.unknown=Neznámá úloha: %[1]s -dashboard.cron.started=Začala naplánovaná úloha: %[1]s -dashboard.cron.process=Naplánovaná úloha: %[1]s -dashboard.cron.cancelled=Naplánovaná úloha: %[1]s zrušena: %[3]s -dashboard.cron.error=Chyba v naplánované úloze: %s: %[3]s -dashboard.cron.finished=Naplánovaná úloha: %[1]s skončila dashboard.delete_inactive_accounts=Smazat všechny neaktivované účty -dashboard.delete_inactive_accounts.started=Spuštěna úloha mazání všech neaktivovaných účtů. dashboard.delete_repo_archives=Odstranit všechny archivy repozitářů (ZIP, TAR.GZ, atd.) -dashboard.delete_repo_archives.started=Spuštěna úloha smazání všech archivovaných repozitářů. dashboard.delete_missing_repos=Smazat všechny repozitáře, které nemají Git soubory -dashboard.delete_missing_repos.started=Spuštěna úloha mazání všech repozitářů, které nemají Git soubory. -dashboard.delete_generated_repository_avatars=Odstranit vygenerované avatary repozitářů -dashboard.sync_repo_tags = Synchronizovat značky z dat Gitu do databáze -dashboard.update_mirrors=Upravit zrcadla -dashboard.repo_health_check=Kontrola stavu všech repozitářů -dashboard.check_repo_stats=Zkontrolovat všechny statistiky repositáře -dashboard.archive_cleanup=Smazat staré archivy repozitářů -dashboard.deleted_branches_cleanup=Vyčistit odstraněné větve -dashboard.update_migration_poster_id=Aktualizovat ID autora migrace -dashboard.git_gc_repos=Provést úklid všech repozitářů -dashboard.resync_all_sshkeys=Aktualizovat soubor „.ssh/authorized_keys“ pomocí klíčů SSH služby Forgejo. -dashboard.resync_all_sshprincipals=Aktualizovat soubor „.ssh/authorized_principals“ pomocí Forgejo SSH Principal certifikátů. -dashboard.resync_all_hooks=Znovu synchronizovat Git hooky všech repozitářů („před přijetím“, „aktualizace“, „po přijetí“, …) -dashboard.reinit_missing_repos=Znovu inicializovat všechny chybějící repozitáře, pro které existují záznamy -dashboard.sync_external_users=Synchronizovat externí uživatelská data -dashboard.cleanup_hook_task_table=Vyčistit tabulku hook_task -dashboard.cleanup_packages=Vyčistit prošlé balíčky dashboard.delete_old_actions=Odstranit všechny staré aktivity z databáze -dashboard.delete_old_actions.started=Spuštěno odstraňování všech starých aktivit z databáze. -dashboard.update_checker=Kontrola aktualizací -dashboard.delete_old_system_notices=Odstranit všechna stará systémová upozornění z databáze -dashboard.gc_lfs = Sbírat garbage z LFS meta objektů -dashboard.stop_zombie_tasks=Zastavit akce zombie úloh -dashboard.stop_endless_tasks=Zastavit akce nekonečných úloh -dashboard.cancel_abandoned_jobs=Zrušit akce opuštěných úloh -dashboard.start_schedule_tasks=Spustit akce naplánovaných úloh -dashboard.sync_branch.started=Synchronizace větví spuštěna -dashboard.sync_tag.started = Synchronizace značek spuštěna -dashboard.rebuild_issue_indexer = Přestavit indexer vydání users.user_manage_panel=Správa uživatelských účtů users.new_account=Vytvořit uživatelský účet -users.name=Uživatelské jméno -users.full_name=Celé jméno -users.activated=Aktivován -users.admin=Správce -users.restricted=Omezený -users.reserved=Rezervováno -users.bot=Bot -users.remote=Vzdálený -users.2fa=2FA -users.repos=Repozitáře -users.created=Vytvořen -users.last_login=Poslední přihlášení -users.never_login=Nikdy nepřihlášen users.send_register_notify=Poslat oznámení o registraci e-mailem users.new_success=Uživatelský účet „%s“ byl vytvořen. users.edit=Upravit @@ -2995,34 +2934,12 @@ emails.change_email_header=Aktualizovat vlastnosti e-mailu emails.change_email_text=Opravdu chcete aktualizovat tuto e-mailovou adresu? orgs.org_manage_panel=Správa organizací -orgs.name=Název -orgs.teams=Týmy -orgs.members=Členové -orgs.new_orga=Nová organizace - repos.repo_manage_panel=Správa repozitářů repos.unadopted=Nepřijaté repozitáře repos.unadopted.no_more=Nebyly nalezeny žádné nepřijaté repositáře. -repos.owner=Vlastník -repos.name=Název repos.private=Soukromý -repos.issues=Problémy -repos.size=Velikost -repos.lfs_size=Velikost LFS - packages.package_manage_panel=Správa balíčků -packages.total_size=Celková velikost: %s -packages.unreferenced_size=Neodkazovaná velikost: %s packages.cleanup=Vyčistit prošlá data -packages.owner=Vlastník -packages.creator=Tvůrce -packages.name=Název -packages.version=Verze -packages.type=Typ -packages.repository=Repozitář -packages.size=Velikost -packages.published=Publikováno - defaulthooks=Výchozí webhooky defaulthooks.add_webhook=Přidat výchozí webhook defaulthooks.update_webhook=Aktualizovat výchozí webhook @@ -3148,7 +3065,6 @@ config.offline_mode=Lokální režim config.disable_router_log=Vypnout protokol směrovače config.run_user=Spustit jako uživatel config.run_mode=Režim spouštění -config.git_version=Verze Gitu config.app_data_path=Cesta k datům aplikace config.repo_root_path=Kořenový adresář repozitářů config.lfs_root_path=Kořenový adresář LFS @@ -3156,32 +3072,11 @@ config.log_file_root_path=Adresář protokolů config.script_type=Typ skriptu config.reverse_auth_user=Obrátit uživatele ověření proxy -config.ssh_config=Nastavení SSH -config.ssh_enabled=Zapnutý -config.ssh_start_builtin_server=Použít vestavěný server -config.ssh_domain=Doména SSH serveru -config.ssh_port=Port -config.ssh_listen_port=Port pro naslouchání -config.ssh_root_path=Kořenová cesta -config.ssh_key_test_path=Cesta testu klíčů -config.ssh_keygen_path=Cesta ke generátoru klíčů („ssh-keygen“) -config.ssh_minimum_key_size_check=Kontrola minimální velikosti klíčů -config.ssh_minimum_key_sizes=Minimální velikosti klíčů - config.lfs_config=Nastavení LFS config.lfs_enabled=Povoleno config.lfs_content_path=Cesta k obsahu LFS config.lfs_http_auth_expiry=Čas vypršení autorizace LFS HTTP -config.db_config=Nastavení databáze -config.db_type=Typ -config.db_host=Server -config.db_name=Název -config.db_user=Uživatelské jméno -config.db_schema=Schéma -config.db_ssl_mode=SSL -config.db_path=Cesta - config.service_config=Nastavení služby config.register_email_confirm=Pro registraci vyžadovat potvrzení e-mailu config.disable_register=Vypnout možnost uživatelské registrace @@ -3210,19 +3105,6 @@ config.queue_length=Délka fronty config.deliver_timeout=Časový limit doručení config.skip_tls_verify=Přeskočit ověření TLS -config.mailer_config=Nastavení odesílání e-mailů -config.mailer_enabled=Zapnutý -config.mailer_enable_helo=Povolit HELO -config.mailer_name=Název -config.mailer_protocol=Protokol -config.mailer_smtp_addr=Hostitel SMTP -config.mailer_smtp_port=Port SMTP -config.mailer_user=Uživatel -config.mailer_use_sendmail=Použít Sendmail -config.mailer_sendmail_path=Cesta k Sendmail -config.mailer_sendmail_args=Dodatečné argumenty pro Sendmail -config.mailer_sendmail_timeout=Časový limit Sendmail -config.mailer_use_dummy=Fiktivní config.test_email_placeholder=E-mail (např.: test@example.com) config.send_test_mail=Odeslat zkušební e-mail config.send_test_mail_submit=Odeslat @@ -3252,18 +3134,6 @@ config.picture_service=Služba obrázků config.disable_gravatar=Zakázat službu Gravatar config.enable_federated_avatar=Povolit federované avatary -config.git_config=Konfigurace Gitu -config.git_disable_diff_highlight=Zakázat zvýraznění syntaxe v zobrazení rozdílů -config.git_max_diff_lines=Maximální počet rozdílových řádků na soubor -config.git_max_diff_line_characters=Maximální počet zobrazených rozdílných znaků -config.git_max_diff_files=Maximální počet zobrazených rozdílných souborů -config.git_gc_args=Argumenty GC -config.git_migrate_timeout=Časový limit migrace -config.git_mirror_timeout=Časový limit aktualizace zrcadla -config.git_clone_timeout=Časový limit operace klonování -config.git_pull_timeout=Časový limit operace Pull -config.git_gc_timeout=Časový limit operace GC - config.log_config=Nastavení protokolů config.disabled_logger=Zakázané config.access_log_mode=Režim protokolování přístupu @@ -3306,15 +3176,13 @@ notices.type_2=Úloha notices.desc=Popis notices.op=Op. notices.delete_success=Systémové upozornění bylo smazáno. -dashboard.sync_repo_branches = Synchronizovat vynechané větve z dat Gitu do databáze defaulthooks.desc = Webhooky automaticky vytvářejí žádosti HTTP POST na server, kde se spustí určité události Forgejo. Webhooky zde definované jsou výchozí a budou zkopírovány do všech nových repozitářů. Více informací zjistíte v návodu webhooků. systemhooks.desc = Webhooky automaticky vytvářejí žádosti HTTP POST na server, kde se spustí určité události Forgejo. Webhooky zde definované budou aktivní u všech repozitářů v systému, zvažte tedy prosím všechny vlivy na výkon, které může tato funkce způsobit. Více informací zjistíte v návodu webhooků. assets = Assety kódu -dashboard.cleanup_actions = Vymazat prošlé protokoly a artefakty z akcí packages.cleanup.success = Prošlá data úspěšně vymazána config.logger_name_fmt = Logger: %S monitor.download_diagnosis_report = Stáhnout hlášení o diagnóze -self_check.no_problem_found=Zatím nebyl nalezen žádný problém. +self_check.no_problem_found=Zatím nebyl nalezeny žádné problémy. self_check.database_collation_mismatch=Očekávejte, že databáze použije collation: %s self_check.database_inconsistent_collation_columns=Databáze používá collation %s, ale tyto sloupce používají chybné collation. To může způsobit neočekávané problémy. self_check.database_fix_mysql=Pro uživatele MySQL/MariaDB můžete použít příkaz „forgejo doctor convert“, který opraví problémy s porovnáním. Problém také můžete ručně vyřešit příkazem „ALTER ... COLLATE ...“ SQL. diff --git a/options/locale/locale_da.ini b/options/locale/locale_da.ini index 6efa9bcec3..5b43b1c789 100644 --- a/options/locale/locale_da.ini +++ b/options/locale/locale_da.ini @@ -2813,35 +2813,18 @@ teams.all_repositories = Alle depoter teams.invite.description = Klik venligst på knappen nedenfor for at blive medlem af teamet. [admin] -orgs.members = Medlemmer -orgs.teams = Teams -orgs.new_orga = Ny organisation monitor.desc = Beskrivelse emails.filter_sort.name = Brugernavn notices.desc = Beskrivelse -config.db_user = Brugernavn -users.name = Brugernavn emails.activated = Aktiveret -packages.repository = Depot -config.mailer_enabled = Aktiveret emails.filter_sort.email = Email auths.name = Navn -config.mailer_name = Navn auths.enabled = Aktiveret config_settings = Indstillinger -config.ssh_enabled = Aktiveret config.lfs_enabled = Aktiveret monitor.name = Navn config.oauth_enabled = Aktiveret -orgs.name = Navn -repos.owner = Ejer -packages.name = Navn -packages.owner = Ejer notices.type_1 = Depot -config.db_name = Navn -users.full_name = Fulde navn -users.activated = Aktiveret -repos.name = Navn repos.private = Privat config.default_enable_timetracking = Aktiver tidsregistrering som standard config.enable_timetracking = Aktiver tidsregistrering @@ -2853,18 +2836,6 @@ users.auth_source = Godkendelseskilde notices.system_notice_list = Systemmeddelelser dashboard.delete_repo_archives = Slet alle depoters arkiver (ZIP, TAR.GZ osv..) organizations = Organisationer -dashboard.delete_repo_archives.started = Slet alle repository arkiver opgave startet. -dashboard.statistic = Oversigt -dashboard.task.finished = Opgave: %[1]s startet af %[2]s er afsluttet -dashboard.task.unknown = Ukendt opgave: %[1]s -dashboard.cron.error = Fejl i Cron: %s: %[3]s -dashboard.operation_name = Operations navn -dashboard.delete_missing_repos.started = Slet alle depoter, der mangler deres Git-filopgave startet. -dashboard.delete_generated_repository_avatars = Slet genererede depot avatarer -dashboard.sync_repo_branches = Synkroniser mistede grene fra Git-data til databasen -dashboard.sync_repo_tags = Synkroniser tags fra Git-data til database -dashboard.archive_cleanup = Slet gamle depotarkiver -dashboard.deleted_branches_cleanup = Ryd op i slettede grene dashboard = Instrumentpanel self_check = Selvtjek assets = Kode aktiver @@ -2873,74 +2844,31 @@ authentication = Godkendelseskilder emails = Bruger e-mails monitor = Overvågning settings = Admin indstillinger -dashboard.new_version_hint = Forgejo %s er nu tilgængelig, du kører %s. Tjek bloggen for flere detaljer. -dashboard.operation_switch = Skift -dashboard.operation_run = Kør dashboard.clean_unbind_oauth = Rens ubundne OAuth-forbindelser -dashboard.delete_inactive_accounts.started = Slet alle uaktiverede konti opgave startet. dashboard.delete_missing_repos = Slet alle depoter, der mangler deres Git-filer -dashboard.update_migration_poster_id = Opdater migrationsplakat-id'er hooks = Webhooks -dashboard.cron.finished = Cron: %[1]s er færdig dashboard.delete_inactive_accounts = Slet alle uaktiverede konti config = Konfiguration notices = Systemmeddelelser config_summary = Oversigt -dashboard.system_status = System status -dashboard.update_mirrors = Opdater spejle integrations = Integrationer -dashboard.operations = Vedligeholdelses operationer -dashboard.repo_health_check = Sundhedstjek alle depoter -dashboard.check_repo_stats = Tjek alle depotstatistikker -dashboard.git_gc_repos = Samle alt affald fra alle depoter -dashboard.resync_all_sshkeys = Opdater filen ".ssh/authorized_keys" med Forgejo SSH-nøgler. -dashboard.resync_all_sshprincipals = Opdater ".ssh/authorized_principals" filen med Forgejo SSH principals. users = Brugerkonti identity_access = Identitet og adgang first_page = Først last_page = Sidst -dashboard.task.process = Opgave: %[1]s total = Total: %d -dashboard.cron.started = Startede Cron: %[1]s -dashboard.cron.process = Cron: %[1]s -dashboard.cron.cancelled = Cron: %[1]s annulleret: %[3]s dashboard.clean_unbind_oauth_success = Alle ubundne OAuth-forbindelser er blevet slettet. -dashboard.task.started = Startet opgave: %[1]s -dashboard.task.cancelled = Opgave: %[1]s annulleret: %[3]s -dashboard.task.error = Fejl i Opgave: %[1]s: %[3]s -dashboard.resync_all_hooks = Gensynkroniser Git hooks for alle depoter (pre-receive, update, post-receive, proc-receive,...) -dashboard.reinit_missing_repos = Geninitialiser alle manglende Git-depoter, som der findes poster for -dashboard.sync_external_users = Synkroniser eksterne brugerdata -dashboard.cleanup_hook_task_table = Oprydning hook_task tabel -dashboard.cleanup_packages = Ryd udløbne pakker -dashboard.cleanup_actions = Oprydning af udløbne logfiler og artefakter fra handlinger -users.remote = Remote users.password_helper = Lad adgangskoden være tom for at bevare den uændret. -dashboard.cancel_abandoned_jobs = Annuller forladte handlingsjob users.activated.description = Afslutning af e-mailbekræftelse. Ejeren af en uaktiveret konto vil ikke være i stand til at logge ind, før e-mailbekræftelsen er gennemført. users.admin.description = Giv denne bruger fuld adgang til alle administrative funktioner, der er tilgængelige via web-UI og API. users.update_profile = Opdater brugerkonto users.still_has_org = Denne bruger er medlem af en organisation. Fjern først brugeren fra enhver organisation. users.purge_help = Tvangsslet brugeren og eventuelle depoter, organisationer og pakker, der ejes af brugeren. Alle kommentarer og problemer indsendt af denne bruger vil også blive slettet. users.is_admin = Administrator konto -dashboard.delete_old_system_notices = Slet alle gamle systemmeddelelser fra databasen -dashboard.gc_lfs = Affaldssamler LFS-metaobjekter -dashboard.start_schedule_tasks = Start planlæg handlingsopgaver -dashboard.sync_branch.started = Gren synkronisering startede -dashboard.sync_tag.started = Tag-synkronisering er startet -dashboard.rebuild_issue_indexer = Genopbyg problemindekser users.update_profile_success = Brugerkontoen er blevet opdateret. -users.created = Oprettet users.max_repo_creation = Maksimalt antal depoter users.prohibit_login = Suspenderet konto users.is_restricted = Begrænset konto -dashboard.update_checker = Opdateringskontrol -dashboard.delete_old_actions.started = Slet alle gamle aktiviteter fra den påbegyndte database. -dashboard.stop_zombie_tasks = Stop zombiehandlingsopgaver -dashboard.stop_endless_tasks = Stop endeløse handlingsopgaver -users.2fa = 2FA -users.last_login = Sidst logget ind -users.never_login = Aldrig logget ind users.new_success = Brugerkontoen "%s" er blevet oprettet. users.local_import.description = Tillad import af depoter fra serverens lokale filsystem. Dette kan være et sikkerhedsproblem. users.organization_creation.description = Tillad oprettelse af nye organisationer. @@ -2957,27 +2885,19 @@ users.local = Lokal users.auth_login_name = Godkendelses-loginnavn users.allow_git_hook = Kan skabe Git hooks users.allow_git_hook_tooltip = Git hooks udføres som OS-brugeren, der kører Forgejo og vil have samme niveau af værtsadgang. Som et resultat kan brugere med dette specielle Git hook-privilegium få adgang til og ændre alle Forgejo-depoter såvel som databasen, der bruges af Forgejo. Derfor er de også i stand til at opnå Forgejo-administratorrettigheder. -users.repos = Depoter users.still_own_packages = Denne bruger ejer stadig en eller flere pakker, slet disse pakker først. users.deletion_success = Brugerkontoen er blevet slettet. users.reset_2fa = Nulstil 2FA users.max_repo_creation_desc = (Indtast -1 for at bruge den globale standardgrænse.) users.is_activated = Aktiveret konto users.edit_account = Rediger brugerkonto -packages.version = Version users.purge = Udrens bruger users.user_manage_panel = Administrer brugerkonti users.new_account = Opret brugerkonto -users.admin = Admin -users.restricted = Begrænset -users.reserved = Reserveret -users.bot = Bot emails.primary = Primær emails.updated = E-mail opdateret emails.not_updated = Kunne ikke opdatere den anmodede e-mailadresse: %v packages.package_manage_panel = Administrer pakker -packages.total_size = Samlet størrelse: %s -packages.unreferenced_size = Ikke-referencestørrelse: %s emails.filter_sort.email_reverse = E-mail (omvendt) emails.filter_sort.name_reverse = Brugernavn (omvendt) emails.delete = Slet e-mail @@ -2986,9 +2906,6 @@ emails.deletion_success = E-mailadressen er blevet slettet. emails.duplicate_active = Denne e-mailadresse er allerede aktiv for en anden bruger. emails.change_email_header = Opdater e-mail-egenskaber emails.change_email_text = Er du sikker på, at du vil opdatere denne e-mailadresse? -repos.issues = Problemer -repos.size = Størrelse -repos.lfs_size = LFS størrelse users.details = Brugeroplysninger emails.email_manage_panel = Administrer bruger-e-mails emails.delete_primary_email_error = Du kan ikke slette den primære e-mail. @@ -2999,13 +2916,10 @@ repos.unadopted.no_more = Ingen ikke-adopterede depoter fundet. auths.domain = Domæne auths.port = Port auths.host = Host -packages.size = Størrelse auths.security_protocol = Sikkerhedsprotokol auths.updated = Opdateret auths.type = Type auths.syncenabled = Slå brugersynkronisering til -packages.published = Offentliggjort -packages.type = Type packages.cleanup = Ryd op i udløbne data packages.cleanup.success = Der er ryddet op i udløbne data defaulthooks.add_webhook = Tilføj standard webhook @@ -3014,7 +2928,6 @@ systemhooks = System webhooks systemhooks.desc = Webhooks foretager automatisk HTTP POST-anmodninger til en server, når visse Forgejo-hændelser udløses. Webhooks, der er defineret her, vil virke på alle repositories på systemet, så overvej venligst eventuelle præstationsimplikationer, dette kan have. Læs mere i webhooks-guiden. defaulthooks = Default webhooks defaulthooks.desc = Webhooks foretager automatisk HTTP POST-anmodninger til en server, når visse Forgejo-hændelser udløses. Webhooks defineret her er standarder og vil blive kopieret til alle nye repositories. Læs mere i webhooks-guiden. -packages.creator = Skaber systemhooks.update_webhook = Opdater System Webhook config.enable_openid_signin = Aktiver OpenID-logon config.cache_test = Test cache @@ -3029,11 +2942,8 @@ auths.tip.github = Registrer en ny OAuth-applikation på %s auths.tip.gitlab_new = Registrer en ny applikation på %s auths.tip.yandex = Opret en ny applikation på %s. Vælg følgende tilladelser fra afsnittet "Yandex.Passport API": "Adgang til e-mailadresse", "Adgang til brugeravatar" og "Adgang til brugernavn, fornavn og efternavn, køn" config.run_mode = Kør tilstand -config.ssh_config = SSH konfiguration config.allow_only_internal_registration = Tillad kun registrering gennem Forgejo selv -config.ssh_minimum_key_size_check = Minimum nøglestørrelse kontrol config.enable_captcha = Aktiver CAPTCHA -config.ssh_minimum_key_sizes = Minimum nøglestørrelser config.default_keep_email_private = Skjul e-mailadresser som standard config.default_allow_create_organization = Tillad oprettelse af organisationer som standard config.queue_length = Kø længde @@ -3041,7 +2951,6 @@ config.default_enable_dependencies = Aktiver problemafhængigheder som standard config.webhook_config = Webhook-konfiguration config.deliver_timeout = Lever timeout config.skip_tls_verify = Spring over TLS-bekræftelse -config.mailer_config = Mailer konfiguration config.https_only = Kun HTTPS monitor.next = Næste gang monitor.processes_count = %d Processer @@ -3052,7 +2961,6 @@ notices.deselect_all = Fravælg alle notices.view_detail_header = Bemærk detaljer notices.select_all = Vælg alle self_check.database_collation_case_insensitive = Databasen bruger en sortering %s, som er en ufølsom sortering. Selvom Forgejo kunne arbejde med det, kan der være nogle sjældne tilfælde, som ikke fungerer som forventet. -config.git_max_diff_line_characters = Maks. diff-tegn pr. linje config.access_log_template = Skabelon til adgangslog monitor.process.children = Børn auths.auth_manage_panel = Administrer godkendelseskilder @@ -3103,26 +3011,16 @@ auths.edit = Rediger godkendelseskilden auths.update = Opdater godkendelseskilden config.offline_mode = Lokal tilstand config.disable_router_log = Deaktiver routerlog -config.git_version = Git version config.app_data_path = Appens datasti config.repo_root_path = Depotets rodsti config.log_file_root_path = Logsti config.script_type = Script type config.reverse_auth_user = Omvendt proxy-godkendelsesbruger -config.ssh_key_test_path = Nøgleteststi -config.ssh_keygen_path = Keygen ("ssh-keygen") sti config.active_code_lives = Aktiveringskodens udløbstid config.no_reply_address = Skjult e-mail-domæne -config.mailer_enable_helo = Aktiver HELO -config.mailer_protocol = Protokol -config.mailer_use_sendmail = Brug Sendmail -config.mailer_sendmail_path = Sendmail sti -config.mailer_sendmail_args = Ekstra argumenter til Sendmail config.cache_test_failed = Kunne ikke undersøge cachen: %v. config.cache_test_slow = Cachetest lykkedes, men svaret er langsomt: %s. config.gc_interval_time = GC interval tid -config.git_max_diff_files = Max diff filer vist -config.git_gc_args = GC argumenter notices.inverse_selection = Omvendt valg notices.delete_selected = Slet valgte auths.allowed_domains_helper = Lad være tomt for at tillade alle domæner. Adskil flere domæner med et komma (","). @@ -3148,7 +3046,6 @@ config.lfs_content_path = LFS indholdssti config.lfs_http_auth_expiry = LFS HTTP-godkendelsesudløbstid config.disable_register = Deaktiver selvregistrering config.register_email_confirm = Kræv e-mail-bekræftelse for at tilmelde dig -config.mailer_user = Bruger auths.openIdConnectAutoDiscoveryURL = OpenID Connect Auto Discovery URL auths.oauth2_use_custom_url = Brug tilpassede webadresser i stedet for standardwebadresser auths.pam_service_name = PAM-tjenestenavn @@ -3157,30 +3054,18 @@ auths.oauth2_provider = OAuth2-udbyder auths.oauth2_clientID = Klient-id (nøgle) auths.oauth2_clientSecret = Klientens hemmelighed auths.oauth2_required_claim_value = Påkrævet kravværdi -config.db_config = Database konfiguration -config.db_host = Vært -config.ssh_start_builtin_server = Brug indbygget server config.lfs_config = LFS-konfiguration config.service_config = Tjenestekonfiguration -config.mailer_smtp_port = SMTP-port config.disabled_logger = Deaktiveret config.access_log_mode = Adgang til logtilstand config.allow_only_external_registration = Tillad kun registrering via eksterne tjenester -config.mailer_smtp_addr = SMTP vært -config.mailer_sendmail_timeout = Sendmail timeout auths.oauth2_tokenURL = Token URL auths.oauth2_tenant = Lejer config.custom_conf = Konfigurationsfilstien config.custom_file_root_path = Brugerdefineret fil rodsti config.app_ver = Forgejo version config.app_url = Base URL -config.ssh_domain = SSH server domæne -config.ssh_port = Port -config.ssh_listen_port = Lyt port -config.ssh_root_path = Rodsti -config.db_type = Type config.reset_password_code_lives = Gendannelseskodens udløbstid -config.mailer_use_dummy = Attrapp config.test_mail_failed = Kunne ikke sende en test-e-mail til "%s": %v config.cache_adapter = Cache adapter config.test_mail_sent = En test-e-mail er blevet sendt til "%s". @@ -3213,7 +3098,6 @@ auths.still_in_used = Godkendelseskilden er stadig i brug. Konverter eller slet auths.deletion_success = Godkendelseskilden er blevet slettet. config.run_user = Bruger at køre som config.mail_notify = Aktiver e-mailmeddelelser -config.git_migrate_timeout = Migration timeout config.log_config = Log konfiguration auths.default_domain_name = Standard domænenavn, der bruges til e-mailadressen auths.attribute_mail = E-mail attribut @@ -3228,9 +3112,6 @@ config.app_slogan = instans slogan config.cache_interval = Cache interval notices.type = Type notices.type_2 = Opgave -config.db_schema = Skematisk -config.db_ssl_mode = SSL -config.db_path = Sti notices.operations = Operationer auths.restricted_filter_helper = Lad være tom for ikke at angive nogen brugere som begrænset. Brug en stjerne ("*") for at indstille alle brugere, der ikke matcher Admin-filteret, som begrænset. auths.group_attribute_list_users = Gruppeattribut, der indeholder en liste over brugere @@ -3244,9 +3125,6 @@ monitor.execute_times = Udførelser monitor.download_diagnosis_report = Hent diagnoserapport monitor.process.cancel = Annuller processen monitor.process.cancel_desc = Annullering af en proces kan medføre tab af data -config.git_pull_timeout = Pull Operation timeout -config.git_clone_timeout = Klone Operation timeout -config.git_gc_timeout = GC Operation timeout config.logger_name_fmt = Logger: %s monitor.stats = Statistik monitor.cron = Cron opgaver @@ -3258,10 +3136,6 @@ config.picture_service = Billedservice config.disable_gravatar = Deaktiver Gravatar config.enable_federated_avatar = Aktiver fødererede avatarer config.open_with_editor_app_help = "Åbn med"-editorerne til klonmenuen. Hvis den efterlades tom, vil standarden blive brugt. Udvid for at se standarden. -config.git_config = Git konfiguration -config.git_disable_diff_highlight = Deaktiver diff-syntaksfremhævning -config.git_max_diff_lines = Max diff-linjer pr. fil -config.git_mirror_timeout = Spejlopdateringstimeout auths.attribute_surname = Efternavn attribut auths.filter = Bruger filter auths.admin_filter = Admin filter diff --git a/options/locale/locale_de-DE.ini b/options/locale/locale_de-DE.ini index 4a356b1f6e..38f1b2b20f 100644 --- a/options/locale/locale_de-DE.ini +++ b/options/locale/locale_de-DE.ini @@ -373,10 +373,10 @@ remember_me=Dieses Gerät speichern forgot_password_title=Passwort vergessen forgot_password=Passwort vergessen? sign_up_successful=Konto wurde erfolgreich erstellt. Willkommen! -confirmation_mail_sent_prompt=Eine neue Bestätigungs-E-Mail wurde an %s gesendet. Um den Registrierung abzuschließen, überprüfe bitte deinen Posteingang und folge dem angegebenen Link innerhalb von: %s. Falls die E-Mail inkorrekt sein sollte, kannst du dich einloggen und anfragen, eine weitere Bestätigungs-E-Mail an eine andere Adresse zu senden. +confirmation_mail_sent_prompt=Eine neue Bestätigungs-E-Mail wurde an %s gesendet. Um die Registrierung abzuschließen, überprüfe bitte deinen Posteingang und folge dem angegebenen Link innerhalb von: %s. Falls die E-Mail inkorrekt sein sollte, kannst du dich einloggen und anfragen, eine weitere Bestätigungs-E-Mail an eine andere Adresse zu senden. must_change_password=Aktualisiere dein Passwort allow_password_change=Verlange vom Benutzer das Passwort zu ändern (empfohlen) -reset_password_mail_sent_prompt=Eine Bestätigungs-E-Mail wurde an %s gesendet. Um den Kontowiederherstellung abzuschließen, überprüfe bitte deinen Posteingang und folge dem angegebenen Link innerhalb von %s. +reset_password_mail_sent_prompt=Eine Bestätigungs-E-Mail wurde an %s gesendet. Um die Kontowiederherstellung abzuschließen, überprüfe bitte deinen Posteingang und folge dem angegebenen Link innerhalb von %s. active_your_account=Aktiviere dein Konto account_activated=Konto wurde aktiviert prohibit_login=Das Konto ist gesperrt @@ -2055,7 +2055,7 @@ settings.pulls.allow_rebase_update=Update von Pull-Request-Branches per Rebase e settings.pulls.default_delete_branch_after_merge=Standardmäßig bei Pull-Requests den Branch nach dem Zusammenführen löschen settings.pulls.default_allow_edits_from_maintainers=Änderungen von Maintainern standardmäßig erlauben settings.releases_desc=Repository-Releases aktivieren -settings.packages_desc=Repository-Paket-Registry aktivieren +settings.packages_desc=Paket-Verknüpfung aktivieren settings.projects_desc=Repository-Projekte aktivieren settings.actions_desc=Integrierte CI/CD-Pipelines mit Forgejo-Actions aktivieren settings.admin_settings=Administratoreinstellungen @@ -2881,76 +2881,14 @@ last_page=Letzte total=Gesamt: %d settings=Administratoreinstellungen -dashboard.new_version_hint=Forgejo %s ist jetzt verfügbar, deine derzeitige Version ist %s. Weitere Details findest du im Blog. -dashboard.statistic=Übersicht -dashboard.operations=Wartungsoperationen -dashboard.system_status=System-Status -dashboard.operation_name=Name der Operation -dashboard.operation_switch=Wechseln -dashboard.operation_run=Ausführen dashboard.clean_unbind_oauth=Nicht verbundene OAuth-Verbindungen löschen dashboard.clean_unbind_oauth_success=Alle unverbundene OAuth-Verbindungen wurden gelöscht. -dashboard.task.started=Aufgabe gestartet: %[1]s -dashboard.task.process=Aufgabe: %[1]s -dashboard.task.cancelled=Aufgabe: %[1]s abgebrochen: %[3]s -dashboard.task.error=Fehler in Aufgabe: %[1]s: %[3]s -dashboard.task.finished=Aufgabe: %[1]s, gestartet von %[2]s, wurde beendet -dashboard.task.unknown=Unbekannte Aufgabe: %[1]s -dashboard.cron.started=Cron gestartet: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.cancelled=Cron: %[1]s abgebrochen: %[3]s -dashboard.cron.error=Fehler in Cron: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s ist beendet dashboard.delete_inactive_accounts=Alle nicht aktivierten Konten löschen -dashboard.delete_inactive_accounts.started=Löschen aller nicht aktivierten Account-Aufgabe gestartet. dashboard.delete_repo_archives=Lösche alle Repository-Archive (ZIP, TAR.GZ usw.) -dashboard.delete_repo_archives.started=Löschen aller Repository-Archive gestartet. dashboard.delete_missing_repos=Alle Repository-Datensätze mit verloren gegangenen Git-Dateien löschen -dashboard.delete_missing_repos.started=Alle Repositorys löschen, die den Git-Dateien-Task nicht gestartet haben. -dashboard.delete_generated_repository_avatars=Generierte Repository-Avatare löschen -dashboard.sync_repo_branches=Fehlende Branches aus den Git-Daten in die Datenbank synchronisieren -dashboard.update_mirrors=Spiegel aktualisieren -dashboard.repo_health_check=Health-Prüfungen für alle Repositorys ausführen -dashboard.check_repo_stats=Überprüfe alle Repository-Statistiken -dashboard.archive_cleanup=Alte Repository-Archive löschen -dashboard.deleted_branches_cleanup=Gelöschte Branches bereinigen -dashboard.update_migration_poster_id=Migrations-Poster-IDs aktualisieren -dashboard.git_gc_repos=Garbage-Collection für alle Repositorys ausführen -dashboard.resync_all_sshkeys=Die Datei „.ssh/authorized_keys“ mit Forgejo-SSH-Schlüsseln aktualisieren. -dashboard.resync_all_sshprincipals=Aktualisiere die Datei „.ssh/authorized_principals“ mit Forgejo-SSH-Principals. -dashboard.resync_all_hooks=Hooks für alle Repositorys erneut synchronisieren (pre-receive, update, post-receive, proc-receive, …) -dashboard.reinit_missing_repos=Alle Git-Repositorys neu einlesen, für die Einträge existieren -dashboard.sync_external_users=Externe Benutzerdaten synchronisieren -dashboard.cleanup_hook_task_table=Hook-Task-Tabelle bereinigen -dashboard.cleanup_packages=Veraltete Pakete bereinigen -dashboard.cleanup_actions=Abgelaufene Logs und Artefakte von Actions bereinigen dashboard.delete_old_actions=Alle alten Aktivitäten aus der Datenbank löschen -dashboard.delete_old_actions.started=Löschen aller alten Aktivitäten aus der Datenbank gestartet. -dashboard.update_checker=Update-Checker -dashboard.delete_old_system_notices=Alle alten Systemmeldungen aus der Datenbank löschen -dashboard.gc_lfs=Garbage-Collection für LFS-Meta-Objekte ausführen -dashboard.stop_zombie_tasks=Zombie-Actions-Aufgaben stoppen -dashboard.stop_endless_tasks=Endlose Actions-Aufgaben stoppen -dashboard.cancel_abandoned_jobs=Aufgegebene Actions-Jobs abbrechen -dashboard.start_schedule_tasks=Terminierte Actions-Aufgaben starten -dashboard.sync_branch.started=Synchronisierung der Branches gestartet -dashboard.rebuild_issue_indexer=Issue-Indexer neu bauen - users.user_manage_panel=Benutzerkonten verwalten users.new_account=Benutzerkonto erstellen -users.name=Benutzername -users.full_name=Vollständiger Name -users.activated=Aktiviert -users.admin=Administrator -users.restricted=Eingeschränkt -users.reserved=Reserviert -users.bot=Bot -users.remote=Remote -users.2fa=2FA -users.repos=Repos -users.created=Registriert am -users.last_login=Letzte Anmeldung -users.never_login=Hat sich noch nie eingeloggt users.send_register_notify=Benachrichtigung über Registrierung per E-Mail users.new_success=Das Konto „%s“ wurde erstellt. users.edit=Bearbeiten @@ -2995,34 +2933,12 @@ emails.duplicate_active=Diese E-Mail-Adresse wird bereits von einem Nutzer verwe emails.change_email_header=E-Mail-Eigenschaften aktualisieren orgs.org_manage_panel=Organisationen verwalten -orgs.name=Name -orgs.teams=Teams -orgs.members=Mitglieder -orgs.new_orga=Neue Organisation - repos.repo_manage_panel=Repositorys verwalten repos.unadopted=Nicht übernommene Repositorys repos.unadopted.no_more=Keine nicht übernommenen Repositorys gefunden. -repos.owner=Besitzer -repos.name=Name repos.private=Privat -repos.issues=Issues -repos.size=Größe -repos.lfs_size=LFS-Größe - packages.package_manage_panel=Pakete verwalten -packages.total_size=Gesamtgröße: %s -packages.unreferenced_size=Nicht referenzierte Größe: %s packages.cleanup=Veraltete Daten löschen -packages.owner=Besitzer -packages.creator=Ersteller -packages.name=Name -packages.version=Version -packages.type=Typ -packages.repository=Repository -packages.size=Größe -packages.published=Veröffentlicht - defaulthooks=Standard-Webhooks defaulthooks.desc=Webhooks senden automatisch HTTP-POST-Anfragen an einen Server, wenn bestimmte Forgejo-Ereignisse ausgelöst werden. Hier definierte Webhooks sind die Standardwerte, die in alle neuen Repositorys kopiert werden. Mehr Infos findest du in der Webhooks-Anleitung (auf Englisch). defaulthooks.add_webhook=Standard-Webhook hinzufügen @@ -3151,7 +3067,6 @@ config.offline_mode=Lokaler Modus config.disable_router_log=Router-Log deaktivieren config.run_user=Ausführen als config.run_mode=Betriebsmodus -config.git_version=Git-Version config.app_data_path=App-Datenpfad config.repo_root_path=Repository-Wurzelpfad config.lfs_root_path=LFS-Wurzelpfad @@ -3159,32 +3074,11 @@ config.log_file_root_path=Logdateipfad config.script_type=Skript-Typ config.reverse_auth_user=Nutzer bei Reverse-Proxy-Authentifizierung -config.ssh_config=SSH-Konfiguration -config.ssh_enabled=Aktiviert -config.ssh_start_builtin_server=Eingebauten Server verwenden -config.ssh_domain=SSH-Server-Domain -config.ssh_port=Port -config.ssh_listen_port=Listen-Port -config.ssh_root_path=Wurzelverzeichnis -config.ssh_key_test_path=Schlüssel-Test-Pfad -config.ssh_keygen_path=Keygen-Pfad („ssh-keygen“) -config.ssh_minimum_key_size_check=Prüfung der Mindestschlüssellänge -config.ssh_minimum_key_sizes=Mindestschlüssellängen - config.lfs_config=LFS-Konfiguration config.lfs_enabled=Aktiviert config.lfs_content_path=LFS-Content-Pfad config.lfs_http_auth_expiry=Ablauf der LFS-HTTP-Authentifizierung -config.db_config=Datenbankkonfiguration -config.db_type=Typ -config.db_host=Host -config.db_name=Name -config.db_user=Benutzername -config.db_schema=Schema -config.db_ssl_mode=SSL -config.db_path=Verzeichnis - config.service_config=Service-Konfiguration config.register_email_confirm=E-Mail-Bestätigung zur Registrierung erforderlich config.disable_register=Selbstregistrierung deaktivieren @@ -3213,19 +3107,6 @@ config.queue_length=Warteschlangenlänge config.deliver_timeout=Zeitlimit für Zustellung config.skip_tls_verify=TLS-Verifikation überspringen -config.mailer_config=Mailer-Konfiguration -config.mailer_enabled=Aktiviert -config.mailer_enable_helo=HELO aktivieren -config.mailer_name=Name -config.mailer_protocol=Protokoll -config.mailer_smtp_addr=SMTP-Host -config.mailer_smtp_port=SMTP-Port -config.mailer_user=Benutzer -config.mailer_use_sendmail=Sendmail benutzen -config.mailer_sendmail_path=Sendmail-Pfad -config.mailer_sendmail_args=Zusätzliche Argumente für Sendmail -config.mailer_sendmail_timeout=Sendmail-Timeout -config.mailer_use_dummy=Dummy config.test_email_placeholder=E-Mail (z.B. test@example.com) config.send_test_mail=Test-E-Mail senden config.send_test_mail_submit=Senden @@ -3255,18 +3136,6 @@ config.picture_service=Bilderdienst config.disable_gravatar=Gravatar deaktivieren config.enable_federated_avatar=Föderierte Profilbilder einschalten -config.git_config=Git-Konfiguration -config.git_disable_diff_highlight=Diff-Syntaxhervorhebung ausschalten -config.git_max_diff_lines=Max. Diff-Zeilen (in einer Datei) -config.git_max_diff_line_characters=Max. Diff-Zeichen (in einer Zeile) -config.git_max_diff_files=Max. Diff-Dateien (Angezeigte) -config.git_gc_args=GC-Argumente -config.git_migrate_timeout=Zeitlimit für Migration -config.git_mirror_timeout=Zeitlimit für Spiegel-Aktualisierung -config.git_clone_timeout=Zeitlimit für Klon -config.git_pull_timeout=Zeitlimit für Pull -config.git_gc_timeout=Zeitlimit für GC - config.log_config=Protokollierungs-Konfiguration config.logger_name_fmt=Protokollierer: %s config.disabled_logger=Deaktiviert @@ -3312,13 +3181,11 @@ notices.desc=Beschreibung notices.op=Aktion notices.delete_success=Diese Systemmeldung wurde gelöscht. self_check.database_fix_mysql = Für MySQL-/MariaDB-Benutzer: Du kannst den Befehl „forgejo doctor convert“ verwenden, um die Collation-Probleme zu lösen, oder du kannst das Problem mit „ALTER … COLLATE …“-SQLs manuell lösen. -dashboard.sync_tag.started = Tag-Synchronisierung gestartet self_check.database_collation_case_insensitive = Die Datenbank verwendet die Collation %s, die nicht zwischen Groß- und Kleinschreibung unterscheidet. Forgejo kann damit arbeiten, es gibt aber seltene Fälle, in denen es nicht wie erwartet funktioniert. self_check = Selbstprüfung -dashboard.sync_repo_tags = Tags aus Git-Daten zu Datenbank synchronisieren emails.change_email_text = Bist du dir sicher, dass du diese E-Mail-Addresse aktualisieren möchtest? packages.cleanup.success = Abgelaufene Daten erfolgreich gesäubert -self_check.no_problem_found = Noch kein Problem gefunden. +self_check.no_problem_found = Noch keine Probleme gefunden. self_check.database_inconsistent_collation_columns = Datenbank benutzt Collation %s, doch diese Spalten verwenden Collations, die nicht zusammenpassen. Das könnte ein paar unerwartete Probleme verursachen. self_check.database_collation_mismatch = Erwarte von Datenbank, folgende Collation zu verwenden: %s auths.tips.gmail_settings = Gmail-Einstellungen: diff --git a/options/locale/locale_el-GR.ini b/options/locale/locale_el-GR.ini index 4ad57c7bb5..3670dbd45e 100644 --- a/options/locale/locale_el-GR.ini +++ b/options/locale/locale_el-GR.ini @@ -23,7 +23,7 @@ create_new=Δημιουργία… user_profile_and_more=Προφίλ και ρυθμίσεις… signed_in_as=Συνδεδεμένος ως enable_javascript=Απαιτείται JavaScript για να εμφανιστεί αυτή η ιστοσελίδα. -toc=Πίνακας Περιεχομένων +toc=Πίνακας περιεχομένων licenses=Άδειες Χρήσης return_to_forgejo=Επιστροφή στο Forgejo @@ -863,7 +863,7 @@ delete_token=Διαγραφή access_token_deletion=Διαγραφή διακριτικού πρόσβασης access_token_deletion_desc=Η διαγραφή ενός διακριτικού θα ανακαλέσει οριστικά την πρόσβαση στο λογαριασμό σας για εφαρμογές που το χρησιμοποιούν. Συνέχεια; delete_token_success=Το διακριτικό έχει διαγραφεί. Οι εφαρμογές που το χρησιμοποιούν δεν έχουν πλέον πρόσβαση στο λογαριασμό σας. -repo_and_org_access=Πρόσβαση στο repository και οργανισμό +repo_and_org_access=Πρόσβαση στο αποθετήριο και οργανισμό permissions_public_only=Δημόσια μόνο permissions_access_all=Όλα (δημόσια, ιδιωτικά, και περιορισμένα) select_permissions=Επιλογή δικαιωμάτων @@ -2064,7 +2064,7 @@ settings.pulls.allow_rebase_update=Ενεργοποίηση της ενημέρ settings.pulls.default_delete_branch_after_merge=Διαγραφή του κλάδου του pull request μετά τη συγχώνευση από προεπιλογή settings.pulls.default_allow_edits_from_maintainers=Να επιτρέπονται από προεπιλογή οι αλλαγές από τους συντηρητές settings.releases_desc=Ενεργοποίηση κυκλοφοριών αποθετηρίου -settings.packages_desc=Ενεργοποίηση μητρώου πακέτων αποθετηρίου +settings.packages_desc=Ενεργοποίηση σύνδεσης πακέτων settings.projects_desc=Ενεργοποίηση έργων αποθετηρίου settings.actions_desc=Ενεργοποίηση ενσωματωμένων αυτοματισμών CI/CD με τις Δράσεις Forgejo settings.admin_settings=Ρυθμίσεις διαχειριστή @@ -2880,76 +2880,14 @@ last_page=Τελευταία total=Σύνολο: %d settings=Ρυθμίσεις διαχειριστή -dashboard.new_version_hint=Το Forgejo %s είναι διαθέσιμο, χρησιμοποιείτε το %s. Ανατρέξτε στο blog για περισσότερες λεπτομέρειες. -dashboard.statistic=Περίληψη -dashboard.operations=Λειτουργίες συντήρησης -dashboard.system_status=Κατάσταση συστήματος -dashboard.operation_name=Όνομα Λειτουργίας -dashboard.operation_switch=Αλλαγή -dashboard.operation_run=Εκτέλεση dashboard.clean_unbind_oauth=Εκκαθάριση μη δεσμευμένων συνδέσεων OAuth dashboard.clean_unbind_oauth_success=Όλες οι μη δεσμευμένες συνδέσεις OAuth διαγράφηκαν. -dashboard.task.started=Εκκίνηση Εργασίας: %[1]s -dashboard.task.process=Εργασία: %[1]s -dashboard.task.cancelled=Εργασία: %[1]ακυρώθηκε: %[3]s -dashboard.task.error=Σφάλμα στην Εργασία: %[1]s: %[3]s -dashboard.task.finished=Εργασία: %[1]s που εκκινήθηκε από %[2]s τελείωσε -dashboard.task.unknown=Άγνωστη εργασία: %[1]s -dashboard.cron.started=Εκκίνηση Προγραμματισμένης Εργασίας: %[1]s -dashboard.cron.process=Προγραμματισμένη Εργασία: %[1]s -dashboard.cron.cancelled=Προγραμματισμένη εργασία: %[1]s ακυρώθηκε: %[3]s -dashboard.cron.error=Σφάλμα στη προγραμματισμένη εργασία: %s: %[3]s -dashboard.cron.finished=Προγραμματισμένη Εργασία: %[1]s τελείωσε dashboard.delete_inactive_accounts=Διαγραφή όλων των μη ενεργοποιημένων λογαριασμών -dashboard.delete_inactive_accounts.started=Η διαγραφή όλων των μη ενεργοποιημένων λογαριασμών ξεκίνησε. dashboard.delete_repo_archives=Διαγραφή όλων των αρχείων λήψης του αποθετηρίου (ZIP, TAR.GZ, κλπ.) -dashboard.delete_repo_archives.started=Η διαγραφή όλων των αρχείων λήψης του αποθετηρίου ξεκίνησε. dashboard.delete_missing_repos=Διαγραφή όλων των αποθετηρίων που δεν έχουν τα αρχεία Git τους -dashboard.delete_missing_repos.started=Η διαγραφή όλων των αποθετηρίων που δεν έχουν αρχεία Git τους, ξεκίνησε. -dashboard.delete_generated_repository_avatars=Διαγραφή παραγμένων εικόνων αποθετηρίων -dashboard.sync_repo_branches=Συγχρονισμός κλάδων που λείπουν, χρησιμοποιώντας τα δεδομένα git στην βάση δεδομένων -dashboard.update_mirrors=Ενημέρωση ειδώλων -dashboard.repo_health_check=Έλεγχος υγείας σε όλα τα αποθετήρια -dashboard.check_repo_stats=Έλεγχος όλων των στατιστικών αποθετηρίων -dashboard.archive_cleanup=Διαγραφή παλαιών αρχείων λήψης αποθετηρίων -dashboard.deleted_branches_cleanup=Εκκαθάριση διαγραμμένων κλάδων -dashboard.update_migration_poster_id=Ενημέρωση των ID συντακτών στη μεταγκατάσταση -dashboard.git_gc_repos=Garbage collect όλων των αποθετηρίων -dashboard.resync_all_sshkeys=Ενημέρωση του αρχείου «.ssh/authorized_keys» με τα κλειδιά SSH του Forgejo. -dashboard.resync_all_sshprincipals=Ενημέρωση του αρχείου «.ssh/authorized_principals» με τις αρχές SSH του Forgejo. -dashboard.resync_all_hooks=Επανασυγχρονισμός των Git hook όλων των αποθετηρίων (pre-receive, update, post-receive, proc-receive, …) -dashboard.reinit_missing_repos=Επανεκκινήστε όλα τα αποθετήρια Git που λείπουν και για τα οποία υπάρχουν εγγραφές -dashboard.sync_external_users=Συγχρονισμός δεδομένων εξωτερικών χρηστών -dashboard.cleanup_hook_task_table=Εκκαθάριση πίνακα hook_task -dashboard.cleanup_packages=Εκκαθάριση ληγμένων πακέτων -dashboard.cleanup_actions=Καθαρισμός ληγμένων καταγραφών και συνημμένων από τις δράσεις dashboard.delete_old_actions=Διαγραφή όλων των παλιών δραστηριοτήτων από τη βάση δεδομένων -dashboard.delete_old_actions.started=Ξεκίνησε η διαγραφή όλων των παλιών δραστηριοτήτων από τη βάση δεδομένων. -dashboard.update_checker=Ελεγκτής ενημερώσεων -dashboard.delete_old_system_notices=Διαγραφή όλων των παλιών ειδοποιήσεων συστήματος από τη βάση δεδομένων -dashboard.gc_lfs=Συλλογή απορριμάτων στα μετα-αντικείμενα LFS -dashboard.stop_zombie_tasks=Διακοπή των ζόμπι εργασιών δράσεων -dashboard.stop_endless_tasks=Διακοπή ατελείωτων εργασιών -dashboard.cancel_abandoned_jobs=Ακύρωση εγκαταλελειμμένων εργασιών -dashboard.start_schedule_tasks=Έναρξη προγραμματισμένων εργασιών -dashboard.sync_branch.started=Ξεκίνησε ο συγχρονισμός των κλάδων -dashboard.rebuild_issue_indexer=Αναδόμηση ευρετηρίου ζητημάτων - users.user_manage_panel=Διαχείριση λογαριασμών χρηστών users.new_account=Δημιουργία λογαριασμού χρήστη -users.name=Όνομα Χρήστη -users.full_name=Πλήρες όνομα -users.activated=Ενεργοποιήθηκε -users.admin=Διαχειριστής -users.restricted=Περιορισμένος -users.reserved=Δεσμευμένο -users.bot=Ρομπότ -users.remote=Απομακρυσμένο -users.2fa=2FA -users.repos=Αποθετήρια -users.created=Δημιουργήθηκε -users.last_login=Τελευταία σύνδεση -users.never_login=Καμία σύνδεση users.send_register_notify=Να γίνεται αποστολή ειδοποιήσεων εγγραφής νέων χρηστών μέσω email users.new_success=Ο λογαριασμός χρήστη «%s» δημιουργήθηκε. users.edit=Επεξεργασία @@ -2995,44 +2933,22 @@ emails.change_email_header=Ενημέρωση ιδιοτήτων email emails.change_email_text=Είστε βέβαιοι ότι θέλετε να ενημερώσετε αυτή τη διεύθυνση email; orgs.org_manage_panel=Διαχείριση οργανισμών -orgs.name=Όνομα -orgs.teams=Ομάδες -orgs.members=Μέλη -orgs.new_orga=Νέος οργανισμός - repos.repo_manage_panel=Διαχείριση αποθετηρίων repos.unadopted=Αποθετήρια χωρίς κατόχους repos.unadopted.no_more=Δεν βρέθηκαν μη υιοθετημένα αποθετήρια. -repos.owner=Ιδιοκτήτης -repos.name=Όνομα repos.private=Ιδιωτικό -repos.issues=Ζητήματα -repos.size=Μέγεθος -repos.lfs_size=Μέγεθος LFS - packages.package_manage_panel=Διαχείριση πακέτων -packages.total_size=Συνολικό μέγεθος: %s -packages.unreferenced_size=Μέγεθος χωρίς αναφορά: %s packages.cleanup=Εκκαθάριση ληγμένων δεδομένων packages.cleanup.success=Επιτυχής εκκαθάριση δεδομένων που έχουν λήξει -packages.owner=Ιδιοκτήτης -packages.creator=Δημιουργός -packages.name=Όνομα -packages.version=Έκδοση -packages.type=Τύπος -packages.repository=Αποθετήριο -packages.size=Μέγεθος -packages.published=Δημοσιευμένα - defaulthooks=Προεπιλεγμένα webhooks defaulthooks.desc=Τα Webhooks κάνουν αυτόματα αιτήσεις HTTP POST σε ένα διακομιστή όταν ενεργοποιούν ορισμένα γεγονότα στο Forgejo. Τα Webhooks που ορίζονται εδώ είναι προκαθορισμένα και θα αντιγραφούν σε όλα τα νέα αποθετήρια. Διαβάστε περισσότερα στον οδηγό webhooks. -defaulthooks.add_webhook=Προσθήκη Προεπιλεγμένου Webhook -defaulthooks.update_webhook=Ενημέρωση Προεπιλεγμένου Webhook +defaulthooks.add_webhook=Προσθήκη προεπιλεγμένου webhook +defaulthooks.update_webhook=Ενημέρωση προεπιλεγμένου webhook systemhooks=Webhooks συστήματος systemhooks.desc=Τα Webhooks κάνουν αυτόματα αιτήσεις HTTP POST σε ένα διακομιστή όταν ενεργοποιούνται ορισμένα γεγονότα στο Forgejo. Τα Webhooks που ορίζονται εδώ θα ενεργούν σε όλα τα αποθετήρια του συστήματος, γι 'αυτό παρακαλώ εξετάστε τυχόν επιπτώσεις απόδοσης που μπορεί να έχει. Διαβάστε περισσότερα στον οδηγό webhooks. -systemhooks.add_webhook=Προσθήκη Webhook Συστήματος -systemhooks.update_webhook=Ενημέρωση Webhook Συστήματος +systemhooks.add_webhook=Προσθήκη webhook συστήματος +systemhooks.update_webhook=Ενημέρωση webhook συστήματος auths.auth_manage_panel=Διαχείριση πηγών ταυτοποίησης auths.new=Προσθήκη πηγής ταυτοποίησης @@ -3152,7 +3068,6 @@ config.offline_mode=Τοπική λειτουργία config.disable_router_log=Απενεργοποίηση καταγραφής δρομολογητή config.run_user=Εκτέλεση ως config.run_mode=Λειτουργία εκτέλεσης -config.git_version=Έκδοση Git config.app_data_path=Τοποθεσία δεδομένων εφαρμογής config.repo_root_path=Τοποθεσία αποθετηρίων config.lfs_root_path=Τοποθεσία LFS @@ -3160,32 +3075,11 @@ config.log_file_root_path=Τοποθεσία αρχείων καταγραφής config.script_type=Τύπος σεναρίου config.reverse_auth_user=Χρήστης με ταυτοποίηση μέσω reverse proxy -config.ssh_config=Ρυθμίσεις SSH -config.ssh_enabled=Ενεργοποιημένο -config.ssh_start_builtin_server=Χρήση ενσωματωμένου διακομιστή -config.ssh_domain=Domain διακομιστή SSH -config.ssh_port=Θύρα -config.ssh_listen_port=Θύρα ακρόασης (Listen port) -config.ssh_root_path=Τοποθεσία root -config.ssh_key_test_path=Διαδρομή δοκιμής κλειδιού -config.ssh_keygen_path=Διαδρομή keygen («ssh-keygen») -config.ssh_minimum_key_size_check=Έλεγχος ελάχιστου μεγέθους κλειδιού -config.ssh_minimum_key_sizes=Ελάχιστα μεγέθη κλειδιών - config.lfs_config=Ρυθμίσεις LFS config.lfs_enabled=Ενεργοποιημένο config.lfs_content_path=Τοποθεσία περιεχομένου LFS config.lfs_http_auth_expiry=Χρονικό όριο ταυτοποίησης HTTP LFS -config.db_config=Ρυθμίσεις βάσης δεδομένων -config.db_type=Τύπος -config.db_host=Διακομιστής -config.db_name=Όνομα -config.db_user=Όνομα Χρήστη -config.db_schema=Σχήμα -config.db_ssl_mode=SSL -config.db_path=Διαδρομή - config.service_config=Ρυθμίσεις υπηρεσίας config.register_email_confirm=Να απαιτείται η επιβεβαίωση της διεύθυνσης email για την δημιουργία ενός λογαριασμού config.disable_register=Απενεργοποίηση αυτο-εγγραφής @@ -3214,19 +3108,6 @@ config.queue_length=Μέγεθος ουράς config.deliver_timeout=Χρονικό όριο παράδοσης config.skip_tls_verify=Παράλειψη επαλήθευσης TLS -config.mailer_config=Ρυθμίσεις αλληλογραφίας -config.mailer_enabled=Ενεργοποιημένο -config.mailer_enable_helo=Ενεργοποίηση HELO -config.mailer_name=Όνομα -config.mailer_protocol=Πρωτόκολλο -config.mailer_smtp_addr=Διεύθυνση SMTP -config.mailer_smtp_port=Θύρα SMTP -config.mailer_user=Χρήστης -config.mailer_use_sendmail=Χρήση Sendmail -config.mailer_sendmail_path=Τοποθεσία Sendmail -config.mailer_sendmail_args=Επιπλέον παράμετροι για το Sendmail -config.mailer_sendmail_timeout=Χρονικό όριο Sendmail -config.mailer_use_dummy=Ψεύτικο config.test_email_placeholder=Email (π.χ. test@example.com) config.send_test_mail=Αποστολή δοκιμαστικού email config.send_test_mail_submit=Αποστολή @@ -3256,18 +3137,6 @@ config.picture_service=Υπηρεσία εικόνας config.disable_gravatar=Απενεργοποίηση Gravatar config.enable_federated_avatar=Ενεργοποίηση αποκεντρωμένων εικόνων προφίλ -config.git_config=Ρυθμίσεις Git -config.git_disable_diff_highlight=Απενεργοποίηση επισήμανσης σύνταξης diff -config.git_max_diff_lines=Μέγιστες γραμμές diff ανά αρχείο -config.git_max_diff_line_characters=Μέγιστος αριθμός χαρακτήρων diff ανά γραμμή -config.git_max_diff_files=Μέγιστος αριθμός εμφανιζόμενων αρχείων ανά diff -config.git_gc_args=Παράμετροι GC -config.git_migrate_timeout=Χρονικό όριο μεταφοράς -config.git_mirror_timeout=Χρονικό όριο ενημέρωσης ειδώλου -config.git_clone_timeout=Χρονικό όριο κλωνοποίησης -config.git_pull_timeout=Χρονικό όριο pull -config.git_gc_timeout=Χρονικό όριο λειτουργίας GC - config.log_config=Ρυθμίσεις Καταγραφών config.logger_name_fmt=Καταγραφέας: %s config.disabled_logger=Απενεργοποιημένο @@ -3312,10 +3181,8 @@ notices.type_2=Εργασία notices.desc=Περιγραφή notices.op=Λειτ. notices.delete_success=Οι ειδοποιήσεις του συστήματος έχουν διαγραφεί. -self_check.no_problem_found = Μέχρι τώρα, δεν έχει βρεθεί κάποιο πρόβλημα. +self_check.no_problem_found = Δεν έχει βρεθεί κάποιο πρόβλημα ακόμη. self_check = Αυτοέλεγχος -dashboard.sync_repo_tags = Συγχρονισμός tag, χρησιμοποιώντας τα δεδομένα git στην βάση δεδομένων -dashboard.sync_tag.started = Ξεκίνησε ο συγχρονισμός των ετικετών self_check.database_inconsistent_collation_columns = Η βάση δεδομένων χρησιμοποιεί το collation %s, αλλά οι στήλες του χρησιμοποιούν collations που δεν αντιστοιχούν σε εκείνο το collation. Αυτό ενδέχεται να προκαλέσει μερικά απρόσμενα θέματα. self_check.database_fix_mysql = Για τους χρήστες του MySQL/MariaDB: Μπορείτε να χρησιμοποιήσετε την εντολή «forgejo doctor convert» για να διορθώσετε προβλήματα με το collation ή να το διορθώσετε χειροκίνητα με τις εντολές SQL «ALTER ... COLLATE ...». config_settings = Ρυθμίσεις diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 1e7e6171cb..979f2c0467 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -168,7 +168,7 @@ commit_kind = Search commits… runner_kind = Search runners… no_results = No matching results found. issue_kind = Search issues… -pull_kind = Search pulls… +pull_kind = Search pull requests… keyword_search_unavailable = Searching by keyword is currently not available. Please contact the site administrator. [aria] @@ -1435,7 +1435,7 @@ projects.column.new_title = Name projects.column.new_submit = Create column projects.column.new = New column projects.column.set_default = Set default -projects.column.set_default_desc = Set this column as default for uncategorized issues and pulls +projects.column.set_default_desc = Set this column as default for uncategorized issues and pull requests projects.column.delete = Delete column projects.column.deletion_desc = Deleting a project column moves all related issues to the default column. Continue? projects.column.color = Color @@ -2895,78 +2895,12 @@ last_page = Last total = Total: %d settings = Admin settings -dashboard.new_version_hint = Forgejo %s is now available, you are running %s. Check the blog for more details. -dashboard.statistic = Summary -dashboard.operations = Maintenance operations -dashboard.system_status = System status -dashboard.operation_name = Operation Name -dashboard.operation_switch = Switch -dashboard.operation_run = Run -dashboard.clean_unbind_oauth = Clean unbound OAuth connections -dashboard.clean_unbind_oauth_success = All unbound OAuth connections have been deleted. -dashboard.task.started=Started Task: %[1]s -dashboard.task.process=Task: %[1]s -dashboard.task.cancelled=Task: %[1]s canceled: %[3]s -dashboard.task.error=Error in Task: %[1]s: %[3]s -dashboard.task.finished=Task: %[1]s started by %[2]s has finished -dashboard.task.unknown=Unknown task: %[1]s -dashboard.cron.started=Started Cron: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.cancelled=Cron: %[1]s canceled: %[3]s -dashboard.cron.error=Error in Cron: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s has finished dashboard.delete_inactive_accounts = Delete all unactivated accounts -dashboard.delete_inactive_accounts.started = Delete all unactivated accounts task started. dashboard.delete_repo_archives = Delete all repositories' archives (ZIP, TAR.GZ, etc..) -dashboard.delete_repo_archives.started = Delete all repository archives task started. dashboard.delete_missing_repos = Delete all repositories missing their Git files -dashboard.delete_missing_repos.started = Delete all repositories missing their Git files task started. -dashboard.delete_generated_repository_avatars = Delete generated repository avatars -dashboard.sync_repo_branches = Sync missed branches from Git data to database -dashboard.sync_repo_tags = Sync tags from Git data to database -dashboard.update_mirrors = Update mirrors -dashboard.repo_health_check = Health check all repositories -dashboard.check_repo_stats = Check all repository statistics -dashboard.archive_cleanup = Delete old repository archives -dashboard.deleted_branches_cleanup = Clean-up deleted branches -dashboard.update_migration_poster_id = Update migration poster IDs -dashboard.git_gc_repos = Garbage collect all repositories -dashboard.resync_all_sshkeys = Update the ".ssh/authorized_keys" file with Forgejo SSH keys. -dashboard.resync_all_sshprincipals = Update the ".ssh/authorized_principals" file with Forgejo SSH principals. -dashboard.resync_all_hooks = Resynchronize Git hooks of all repositories (pre-receive, update, post-receive, proc-receive, …) -dashboard.reinit_missing_repos = Reinitialize all missing Git repositories for which records exist -dashboard.sync_external_users = Synchronize external user data -dashboard.cleanup_hook_task_table = Clean up hook_task table -dashboard.cleanup_packages = Clean up expired packages -dashboard.cleanup_actions = Clean up expired logs and artifacts from actions dashboard.delete_old_actions = Delete all old activities from database -dashboard.delete_old_actions.started = Delete all old activities from database started. -dashboard.update_checker = Update checker -dashboard.delete_old_system_notices = Delete all old system notices from database -dashboard.gc_lfs = Garbage collect LFS meta objects -dashboard.stop_zombie_tasks = Stop zombie actions tasks -dashboard.stop_endless_tasks = Stop endless actions tasks -dashboard.cancel_abandoned_jobs = Cancel abandoned actions jobs -dashboard.start_schedule_tasks = Start schedule actions tasks -dashboard.sync_branch.started = Branch sync started -dashboard.sync_tag.started = Tag sync started -dashboard.rebuild_issue_indexer = Rebuild issue indexer - users.user_manage_panel = Manage user accounts users.new_account = Create user account -users.name = Username -users.full_name = Full name -users.activated = Activated -users.admin = Admin -users.restricted = Restricted -users.reserved = Reserved -users.bot = Bot -users.remote = Remote -users.2fa = 2FA -users.repos = Repos -users.created = Created -users.last_login = Last sign-in -users.never_login = Never signed in users.send_register_notify = Notify about registration via email users.new_success = The user account "%s" has been created. users.edit = Edit @@ -3022,34 +2956,12 @@ emails.deletion_success = The email address has been deleted. emails.delete_primary_email_error = You can not delete the primary email. orgs.org_manage_panel = Manage organizations -orgs.name = Name -orgs.teams = Teams -orgs.members = Members -orgs.new_orga = New organization - repos.repo_manage_panel = Manage repositories repos.unadopted = Unadopted repositories repos.unadopted.no_more = No unadopted repositories found. -repos.owner = Owner -repos.name = Name -repos.issues = Issues -repos.size = Size -repos.lfs_size = LFS size - packages.package_manage_panel = Manage packages -packages.total_size = Total size: %s -packages.unreferenced_size = Unreferenced size: %s packages.cleanup = Clean up expired data packages.cleanup.success = Cleaned up expired data successfully -packages.owner = Owner -packages.creator = Creator -packages.name = Name -packages.version = Version -packages.type = Type -packages.repository = Repository -packages.size = Size -packages.published = Published - defaulthooks = Default webhooks defaulthooks.desc = Webhooks automatically make HTTP POST requests to a server when certain Forgejo events trigger. Webhooks defined here are defaults and will be copied into all new repositories. Read more in the webhooks guide. defaulthooks.add_webhook = Add default webhook @@ -3179,39 +3091,17 @@ config.offline_mode = Local mode config.disable_router_log = Disable router log config.run_user = User to run as config.run_mode = Run mode -config.git_version = Git version config.app_data_path = App data path config.repo_root_path = Repository root path config.log_file_root_path = Log path config.script_type = Script type config.reverse_auth_user = Reverse proxy authentication user -config.ssh_config = SSH configuration -config.ssh_enabled = Enabled -config.ssh_start_builtin_server = Use built-in server -config.ssh_domain = SSH server domain -config.ssh_port = Port -config.ssh_listen_port = Listen port -config.ssh_root_path = Root path -config.ssh_key_test_path = Key test path -config.ssh_keygen_path = Keygen ("ssh-keygen") path -config.ssh_minimum_key_size_check = Minimum key size check -config.ssh_minimum_key_sizes = Minimum key sizes - config.lfs_config = LFS configuration config.lfs_enabled = Enabled config.lfs_content_path = LFS content path config.lfs_http_auth_expiry = LFS HTTP auth expiration time -config.db_config = Database configuration -config.db_type = Type -config.db_host = Host -config.db_name = Name -config.db_user = Username -config.db_schema = Schema -config.db_ssl_mode = SSL -config.db_path = Path - config.service_config = Service configuration config.register_email_confirm = Require email confirmation to register config.disable_register = Disable self-registration @@ -3240,19 +3130,6 @@ config.queue_length = Queue length config.deliver_timeout = Deliver timeout config.skip_tls_verify = Skip TLS verification -config.mailer_config = Mailer configuration -config.mailer_enabled = Enabled -config.mailer_enable_helo = Enable HELO -config.mailer_name = Name -config.mailer_protocol = Protocol -config.mailer_smtp_addr = SMTP host -config.mailer_smtp_port = SMTP port -config.mailer_user = User -config.mailer_use_sendmail = Use Sendmail -config.mailer_sendmail_path = Sendmail path -config.mailer_sendmail_args = Extra Arguments to Sendmail -config.mailer_sendmail_timeout = Sendmail timeout -config.mailer_use_dummy = Dummy config.test_email_placeholder = Email (e.g. test@example.com) config.send_test_mail = Send test email config.send_test_mail_submit = Send @@ -3283,18 +3160,6 @@ config.disable_gravatar = Disable Gravatar config.enable_federated_avatar = Enable federated avatars config.open_with_editor_app_help = The "Open with" editors for the clone menu. If left empty, the default will be used. Expand to see the default. -config.git_config = Git configuration -config.git_disable_diff_highlight = Disable diff syntax highlighting -config.git_max_diff_lines = Max diff lines per file -config.git_max_diff_line_characters = Max diff characters per line -config.git_max_diff_files = Max diff files shown -config.git_gc_args = GC arguments -config.git_migrate_timeout = Migration timeout -config.git_mirror_timeout = Mirror Update timeout -config.git_clone_timeout = Clone Operation timeout -config.git_pull_timeout = Pull Operation timeout -config.git_gc_timeout = GC Operation timeout - config.log_config = Log configuration config.logger_name_fmt = Logger: %s config.disabled_logger = Disabled diff --git a/options/locale/locale_eo.ini b/options/locale/locale_eo.ini index be27ad3749..dd442b5f14 100644 --- a/options/locale/locale_eo.ini +++ b/options/locale/locale_eo.ini @@ -144,7 +144,7 @@ buttons.list.task.tooltip = Aldoni liston de taskoj buttons.enable_monospace_font = Ŝalti egallarĝan signoformaron buttons.mention.tooltip = Mencii uzanton aŭ grupon buttons.italic.tooltip = Aldoni oblikvan tekston (Ctrl+I / ⌘I) -buttons.link.tooltip = Aldoni ligilon +buttons.link.tooltip = Aldoni ligilon (Ctrl+K / ⌘K) 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 @@ -487,6 +487,7 @@ repo.transfer.subject_to_you = %s volas reposedigi la deponejon "%s" al vi totp_enrolled.subject = Vi aktivigis TOTP-n kiel 2FA metodo issue_assigned.issue = @%[1]s asignis al vi ĉi tiun eraron %[2]s en la deponejo %[3]s. repo.transfer.subject_to = %s volas transigi deponejon "%s" al %s +issue.action.force_push = %[1]s perforta pŭsis la %[2]s de %[3]s al %[4]s. [form] TeamName = Gruponomo @@ -567,6 +568,13 @@ required_prefix = La enigaĵo devas komenciĝi per "%s" username_error = ` enhavu sole literojn («a–z», «A–Z»), numerojn («0–9«), strekojn («-»), substrekojn («_») kaj punktojn («.»). Gi ne povas komenci kun ne-alfanumeraj signoj, kaj sinsekva ne-alfanumeraj signoj ankaŭ estas malpermesitaj.` PayloadUrl = Utilaĵ-URL CommitChoice = Enmeto elekton +repository_files_already_exist.adopt = Dosieroj jam ekzistas por ĉi tiu deponejo kaj nur povas esti adoptataj. +repository_files_already_exist.adopt_or_delete = Dosieroj jam ekzistas por ĉi tiu deponejo. Aŭ adoptu ilin aŭ forigu ilin. +git_ref_name_error = ` devas esti bone formita Git referenca nomo.` +glob_pattern_error = ` globsâblono malvalidas: %s.` +invalid_group_team_map_error = ` mapado malvalidas: %s` +username_claiming_cooldown = Ĉi tiu uzantnomo ne povas esti postulata, ĉar ĝia atendoperiodo ne estas ankoraŭ ne finiĝis. Ĝi povas esti postulata en %[1]s. +unset_password = La konektita uzanto ne havas pasvorton. [modal] confirm = Konfirmi @@ -760,7 +768,7 @@ enable_custom_avatar = Uzi propran profilbildon change_password = Ŝanĝi pasvorton keep_pronouns_private = Montri pronomojn nur al la aŭtentikigitaj uzantoj keep_pronouns_private.description = Tio maskos viajn pronomojn kontraŭ neaŭtentikigitaj vizitantoj. -add_new_principal = +add_new_principal = gpg_token_required = Vi devas disponigi signaturon por la malsupran ĵetono gpg_token = Ĵetono gpg_token_help = Vi povas generi signaturon uzante: @@ -936,7 +944,7 @@ 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 = Kombinaĵo union_tooltip = Inkluzivas rezultojn kongruantajn kun la ajnaj blankaspacitaj ŝlosilvortoj commit_kind = Serĉi enmetojn… no_results = Ne trovis kongruantajn rezultojn. diff --git a/options/locale/locale_es-ES.ini b/options/locale/locale_es-ES.ini index b0a9f6ce09..03607f4e11 100644 --- a/options/locale/locale_es-ES.ini +++ b/options/locale/locale_es-ES.ini @@ -2880,76 +2880,14 @@ last_page=Última total=Total: %d settings=Configuración del administrador -dashboard.new_version_hint=Forgejo %s ya está disponible, estás ejecutando %s. Revisa el blog para más detalles. -dashboard.statistic=Resumen -dashboard.operations=Operaciones de mantenimiento -dashboard.system_status=Estado del sistema -dashboard.operation_name=Nombre de la operación -dashboard.operation_switch=Interruptor -dashboard.operation_run=Ejecutar dashboard.clean_unbind_oauth=Limpiar conexiones OAuth no enlazadas dashboard.clean_unbind_oauth_success=Se han eliminado las conexiones de OAuth no vinculadas. -dashboard.task.started=Tarea iniciada: %[1]s -dashboard.task.process=Tarea: %[1]s -dashboard.task.cancelled=Tarea: %[1]s cancelada: %[3]s -dashboard.task.error=Error en la tarea: %[1]s: %[3]s -dashboard.task.finished=Tarea: %[1]s iniciada por %[2]s ha finalizado -dashboard.task.unknown=Tarea desconocida: %[1]s -dashboard.cron.started=Cron iniciado: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.cancelled=Cron: %[1]s cancelada: %[3]s -dashboard.cron.error=Error en Cron: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s ha finalizado dashboard.delete_inactive_accounts=Eliminar todas las cuentas inactivas -dashboard.delete_inactive_accounts.started=Se ha iniciado la tarea: "Eliminar todas las cuentas inactivas". dashboard.delete_repo_archives=Eliminar todos los archivos del repositorio (ZIP, TAR.GZ, etc...) -dashboard.delete_repo_archives.started=Se ha iniciado la tarea: "Eliminar todos los archivos del repositorios". dashboard.delete_missing_repos=Eliminar todos los repositorios que faltan sus archivos Git -dashboard.delete_missing_repos.started=Se ha iniciado la tarea: "Eliminar todos los repositorios que faltan sus archivos Git". -dashboard.delete_generated_repository_avatars=Eliminar avatares generados del repositorio -dashboard.sync_repo_branches=Sincronizar ramas perdidas de los datos de git a la base de datos -dashboard.update_mirrors=Actualizar réplicas -dashboard.repo_health_check=Chequear de estado de salud de todos los repositorios -dashboard.check_repo_stats=Comprobar todas las estadísticas de todos los repositorios -dashboard.archive_cleanup=Eliminar archivos antiguos de los repositorios -dashboard.deleted_branches_cleanup=Limpiar ramas eliminadas -dashboard.update_migration_poster_id=Actualizar ID de usuario en migraciones -dashboard.git_gc_repos=Ejecutar la recolección de basura en los repositorios -dashboard.resync_all_sshkeys=Actualiza el archivo '.ssh/authorized_keys' con claves SSH de Forgejo. -dashboard.resync_all_sshprincipals=Actualiza el archivo '.ssh/authorized_principals' con los principales del certificado SSH de Forgejo. -dashboard.resync_all_hooks=Resincronizar los hooks de todos los repositorios (pre-recepción, actualización, post-recepción, procesamiento de recepción, etc.) -dashboard.reinit_missing_repos=Reiniciar todos los repositorios Git faltantes de los que existen registros -dashboard.sync_external_users=Sincronizar datos de usuario externo -dashboard.cleanup_hook_task_table=Limpiar la tabla hook_task -dashboard.cleanup_packages=Limpiar paquetes caducados -dashboard.cleanup_actions=Acciones de limpieza de registros expirados y artefactos dashboard.delete_old_actions=Eliminar todas las actividades antiguas de la base de datos -dashboard.delete_old_actions.started=Eliminar todas las actividades antiguas de la base de datos iniciadas. -dashboard.update_checker=Buscador de actualizaciones -dashboard.delete_old_system_notices=Borrar todos los avisos antiguos del sistema de la base de datos -dashboard.gc_lfs=Recoger basura meta-objetos LFS -dashboard.stop_zombie_tasks=Detener tareas zombie -dashboard.stop_endless_tasks=Detiene tareas de acciones interminables -dashboard.cancel_abandoned_jobs=Cancelar trabajos abandonados -dashboard.start_schedule_tasks=Iniciar tareas programadas -dashboard.sync_branch.started=Inició la sincronización de ramas -dashboard.rebuild_issue_indexer=Reconstruir indexador de incidencias - users.user_manage_panel=Gestionar cuentas de usuario users.new_account=Crear cuenta de usuario -users.name=Nombre de usuario -users.full_name=Nombre completo -users.activated=Activado -users.admin=Administrador -users.restricted=Restringido -users.reserved=Reservado -users.bot=Bot -users.remote=Remoto -users.2fa=2FA -users.repos=Repositorios -users.created=Creado -users.last_login=Último registro -users.never_login=No ha ingresado users.send_register_notify=Enviar notificación de registro de usuario por correo users.new_success=Se ha creado la cuenta de usuario "%s". users.edit=Editar @@ -2994,34 +2932,12 @@ emails.duplicate_active=Esta dirección de correo está asignada a un usuario di emails.change_email_header=Actualizar propiedades del correo orgs.org_manage_panel=Administrar organizaciones -orgs.name=Nombre -orgs.teams=Equipos -orgs.members=Miembros -orgs.new_orga=Nueva organización - repos.repo_manage_panel=Administrar repositorios repos.unadopted=Repositorios no adoptados repos.unadopted.no_more=No se encontraron repositorios no adoptados. -repos.owner=Propietario -repos.name=Nombre repos.private=Privado -repos.issues=Incidencias -repos.size=Tamaño -repos.lfs_size=Tamaño LFS - packages.package_manage_panel=Administrar paquetes -packages.total_size=Tamaño total: %s -packages.unreferenced_size=Tamaño sin referencia: %s packages.cleanup=Limpiar datos caducados -packages.owner=Propietario -packages.creator=Creador -packages.name=Nombre -packages.version=Versión -packages.type=Tipo -packages.repository=Repositorio -packages.size=Tamaño -packages.published=Publicado - defaulthooks=Webhooks por defecto defaulthooks.desc=Los webhooks automáticamente hacen peticiones HTTP POST a un servidor cuando ciertos eventos de Forgejo se activan. Los webhooks definidos aquí son predeterminados y serán copiados en todos los repositorios nuevos. Leer más en la guía webhooks. defaulthooks.add_webhook=Añadir Webhook por defecto @@ -3029,8 +2945,8 @@ defaulthooks.update_webhook=Actualizar Webhook por defecto systemhooks=Webhooks del sistema systemhooks.desc=Los webhooks automáticamente hacen peticiones HTTP POST a un servidor cuando ciertos eventos de Forgejo se activan. Los webhooks definidos aquí actuarán en todos los repositorios del sistema, así que por favor considere las implicaciones de rendimiento que esto pueda tener. Lea más en la guía de webhooks. -systemhooks.add_webhook=Añadir Webhook del Sistema -systemhooks.update_webhook=Actualizar Webhook del Sistema +systemhooks.add_webhook=Añadir Webhook al sistema +systemhooks.update_webhook=Actualizar Webhook del sistema auths.auth_manage_panel=Administrar orígenes de autenticación auths.new=Añadir origen de autenticación @@ -3150,7 +3066,6 @@ config.offline_mode=Modo local config.disable_router_log=Inhabilitar bitácora de enrutado config.run_user=Usuario a ejecutar como config.run_mode=Modo de ejecución -config.git_version=Versión de Git config.app_data_path=Ruta de datos de App config.repo_root_path=Ruta del repositorio raíz config.lfs_root_path=Ruta raíz de LFS @@ -3158,32 +3073,11 @@ config.log_file_root_path=Ruta bitácora config.script_type=Tipo de guion config.reverse_auth_user=Autenticación inversa de proxy del usuario -config.ssh_config=Configuración SSH -config.ssh_enabled=Habilitado -config.ssh_start_builtin_server=Utilizar servidor integrado -config.ssh_domain=Dominio del servidor SSH -config.ssh_port=Puerto -config.ssh_listen_port=Puerto de escucha -config.ssh_root_path=Ruta raíz -config.ssh_key_test_path=Ruta de la clave de prueba -config.ssh_keygen_path=Ruta del generador de claves ("ssh-keygen") -config.ssh_minimum_key_size_check=Comprobante de tamaño de clave mínimo -config.ssh_minimum_key_sizes=Tamaños de clave mínimos - config.lfs_config=Configuración LFS config.lfs_enabled=Habilitado config.lfs_content_path=Ruta de contenido LFS config.lfs_http_auth_expiry=Caducidad de la autenticación HTTP LFS -config.db_config=Configuración de base de datos -config.db_type=Tipo -config.db_host=Host -config.db_name=Nombre -config.db_user=Nombre de usuario -config.db_schema=Esquema -config.db_ssl_mode=SSL -config.db_path=Ruta - config.service_config=Configuración del servicio config.register_email_confirm=Requerir confirmación de correo-e para registrarse config.disable_register=Inhabilitar auto-registro @@ -3212,19 +3106,6 @@ config.queue_length=Longitud de cola config.deliver_timeout=Vencimiento de entrega config.skip_tls_verify=Omitir verificación TLS -config.mailer_config=Configuración del cartero -config.mailer_enabled=Activado -config.mailer_enable_helo=Habilitar HELO -config.mailer_name=Nombre -config.mailer_protocol=Protocolo -config.mailer_smtp_addr=Hospedaje SMTP -config.mailer_smtp_port=Puerto SMTP -config.mailer_user=Usuario -config.mailer_use_sendmail=Usar Sendmail -config.mailer_sendmail_path=Ruta de Sendmail -config.mailer_sendmail_args=Argumentos adicionales por Sendmail -config.mailer_sendmail_timeout=Vencimiento de Sendmail -config.mailer_use_dummy=Dummy config.test_email_placeholder=Correo electrónico (ej. test@ejemplo.com) config.send_test_mail=Enviar prueba de correo-e config.send_test_mail_submit=Enviar @@ -3254,18 +3135,6 @@ config.picture_service=Servicio de Imágen config.disable_gravatar=Desactivar Gravatar config.enable_federated_avatar=Habilitar avatares federados -config.git_config=Configuración de Git -config.git_disable_diff_highlight=Inhabilitar resaltado de diff de sintaxis -config.git_max_diff_lines=Líneas de diff máximas por archivo -config.git_max_diff_line_characters=Caracteres de diff máx por línea -config.git_max_diff_files=Diff de archivos máxima mostrada -config.git_gc_args=Argumentos de GC -config.git_migrate_timeout=Vencimiento de migración -config.git_mirror_timeout=Vencimiento de actualización de réplica -config.git_clone_timeout=Vencimiento de operación de clonado -config.git_pull_timeout=Vencimiento de operación de pull -config.git_gc_timeout=Vencimiento de operación de GC - config.log_config=Configuración de bitácora config.logger_name_fmt=Registro: %s config.disabled_logger=Desactivado @@ -3311,7 +3180,7 @@ notices.desc=Descripción notices.op=Operación notices.delete_success=Los avisos del sistema se han eliminado. emails.delete = Eliminar correo electrónico -self_check.no_problem_found = Aún no se encontró un problema. +self_check.no_problem_found = Aún no se encontraron problemas. auths.tip.gitlab_new = Registrar una nueva aplicación en %s config_summary = Resumen emails.change_email_text = ¿Estás seguro que quieres actualizar esta dirección de correo electrónico? @@ -3326,8 +3195,6 @@ emails.delete_desc = ¿Estás seguro que quieres eliminar esta dirección de cor monitor.duration = Duración (es) self_check = Autocomprobación config.app_slogan = Eslogan de la instancia -dashboard.sync_tag.started = Sincronización de etiquetas iniciada -dashboard.sync_repo_tags = Sincronizar etiquetas de Git con la base de datos users.block.description = Bloquear a este usuario para que no pueda interactuar a través de su cuenta e impedirle iniciar sesión. users.admin.description = Otorgar a este usuario acceso completo a todas las funciones administrativas disponibles a través de la interfaz de usuario web y en la API. users.restricted.description = Solo permitir interactuar con los repositorios y organizaciones en los que el usuario ha sido añadido como colaborador. Esto previene el acceso a repositorios públicos en esta instancia. diff --git a/options/locale/locale_fa-IR.ini b/options/locale/locale_fa-IR.ini index bf358b8a8d..667f3fe681 100644 --- a/options/locale/locale_fa-IR.ini +++ b/options/locale/locale_fa-IR.ini @@ -2051,58 +2051,14 @@ first_page=نخستین last_page=واپسین total=مجموع: %d -dashboard.statistic=چکیده -dashboard.operations=عملیات‌های نگهداری -dashboard.system_status=وضعیت سامانه -dashboard.operation_name=نام عملیات -dashboard.operation_switch=تعویض -dashboard.operation_run=اجرا dashboard.clean_unbind_oauth=تمیز کردن اتصال بدون مرز OAuth dashboard.clean_unbind_oauth_success=تمامی اتصالات بدون مرز OAuth حذف شدند. -dashboard.task.started=تسک شروع شده: %[1]s -dashboard.task.process=تسک: %[1]s -dashboard.task.error=خطا در تسک: %[1]s: %[3]s -dashboard.task.finished=تسک: %[1]s شروع شده توسط %[2]s پایان یافته است -dashboard.task.unknown=تسک ناشناخته: %[1]s -dashboard.cron.started=Cron شروع شده: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.error=خطا در Cron: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s پایان یافته است dashboard.delete_inactive_accounts=حذف تمام حساب های کاربری غیرفعال -dashboard.delete_inactive_accounts.started=تسک حذف تمام حساب های کاربری غیرفعال شروع شد. dashboard.delete_repo_archives=حذف تمام انبار های آرشیو شده (ZIP, TAR.GZ, etc..) -dashboard.delete_repo_archives.started=تسک حذف تمام آرشیو های انبار شروع شد. dashboard.delete_missing_repos=حذف تمامی مخازنی که پرونده‌های گیت آنها از بین رفته است -dashboard.delete_missing_repos.started=تسک تمام انبار هایی که فایل های گیتشان از دست رفته شروع شد. -dashboard.delete_generated_repository_avatars=حذف آواتار هایی که برای مخزن تولید شده اند -dashboard.update_mirrors=میرور ها بروزرسانی شود -dashboard.repo_health_check=سلامت تمام انبار ها چک شود -dashboard.check_repo_stats=تمام آمار انبارها چک شود -dashboard.archive_cleanup=آرشیوهای انبار قدیمی را حذف کنید -dashboard.deleted_branches_cleanup=شاخه های حذف شده را پاک کنید -dashboard.update_migration_poster_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=همگام سازی مجدد hook های pre-receive و update و post-receive برای تمامی مخازن. -dashboard.reinit_missing_repos=تمامی مخازنی که سوابقشان وجود دارند مجدداً گیت آنها مفقود شده است مجدداً مقدمات آنها فراهم شود -dashboard.sync_external_users=همگام سازی اطلاعات کاربر خارجی -dashboard.cleanup_hook_task_table=جدول hook_task تمیز کردن dashboard.delete_old_actions=تمام اقدامات قدیمی را از پایگاه داده حذف کنید -dashboard.delete_old_actions.started=حذف تمام اقدامات قدیمی از پایگاه داده شروع شده است. - users.user_manage_panel=مدیریت حساب کاربری users.new_account=ایجاد حساب کاربری -users.name=نام‎کاربری -users.full_name=نام کامل -users.activated=فعال شده -users.admin=مدیر -users.restricted=محصور -users.2fa=2FA -users.repos=مخازن -users.created=ایجاد شده -users.last_login=آخرین ورود -users.never_login=هرگز وارد نشده users.send_register_notify=ارسال اعلان ثبت نام کاربر users.edit=ویرایش users.auth_source=منبع احراز هویت @@ -2140,26 +2096,10 @@ emails.duplicate_active=این آدرس ایمیل از قبل برای کارب emails.change_email_header=به روز رسانی ویژگی های ایمیل orgs.org_manage_panel=مدیریت سازمان -orgs.name=نام -orgs.teams=تیم‌ها -orgs.members=اعضاء -orgs.new_orga=سازمان جدید - repos.repo_manage_panel=مدیریت مخزن repos.unadopted=مخازن تصویب نشده repos.unadopted.no_more=هیچ مخزن تایید نشده دیگری یافت نشد -repos.owner=مالک -repos.name=نام repos.private=خصوصی -repos.issues=مسائل -repos.size=اندازه - -packages.owner=مالک -packages.name=نام -packages.type=نوع -packages.repository=مخزن -packages.size=اندازه - defaulthooks=وب هوک های پیش فرض defaulthooks.add_webhook=اضافه کردن Webhook پیش فرض defaulthooks.update_webhook=Webhook پیش فرض را به روز کنید @@ -2266,39 +2206,17 @@ config.offline_mode=شیوه محلی config.disable_router_log=غیرفعال کردن گزارش مسیریاب config.run_user=اجرا به عنوان نام کاربری config.run_mode=حالت اجرا -config.git_version=نسخه‌ی Git config.repo_root_path=مسیر ریشه مخزن config.lfs_root_path=مسیر ریشه LFS config.log_file_root_path=مسیر گزارش‌ها config.script_type=نوع اسکریپت config.reverse_auth_user=شیوه ی احرازهویت معکوس -config.ssh_config=پیکربندی SSH -config.ssh_enabled=فعال شده -config.ssh_start_builtin_server=استفاده از ساخته سرور -config.ssh_domain=دامنه سرور SSH -config.ssh_port=درگاه (پورت) -config.ssh_listen_port=گوش دادن به پورت -config.ssh_root_path=مسیر ریشه -config.ssh_key_test_path=مسیر کلید آزمایش -config.ssh_keygen_path=مسیر فایل ssh-keygen -config.ssh_minimum_key_size_check=بررسی حداقل طول کلید -config.ssh_minimum_key_sizes=حداقل اندازه‌ی کلید ها - config.lfs_config=پیکربندی LFS config.lfs_enabled=فعال شده config.lfs_content_path=مسیر محتوای LFS config.lfs_http_auth_expiry=انقضای احراز LFS HTTP -config.db_config=تنظیمات پایگاه داده -config.db_type=نوع -config.db_host=میزبان -config.db_name=نام -config.db_user=نام‎کاربری -config.db_schema=شماتیک -config.db_ssl_mode=SSL -config.db_path=مسیر - config.service_config=پیکربندی سرویس config.register_email_confirm=نیاز به تایید ایمیل (رایانامه) ثبت نام config.disable_register=غیرفعال‌کردن خود ثبت نامی @@ -2326,14 +2244,6 @@ config.queue_length=طول صف config.deliver_timeout=مهلت تحویل config.skip_tls_verify=صرف نظر از اعتبارسنجی TLS -config.mailer_enabled=فعال شده -config.mailer_name=نام -config.mailer_smtp_port=گذرگاه(پورت) SMTP -config.mailer_user=کاربر -config.mailer_use_sendmail=استفاده از ارسال رایانامه (ایمیل) مستقیم -config.mailer_sendmail_path=مسیر ارسال ایمیل مستقیم -config.mailer_sendmail_args=برهان های اضافی برای ارسال مستقیم ایمیل -config.mailer_sendmail_timeout=مهلت زمانی ارسال نامه config.test_email_placeholder=ایمیل (نمونه test@example.com) config.send_test_mail=ارسال ایمیل آزمایشی @@ -2360,18 +2270,6 @@ config.picture_service=سرویس تصویر config.disable_gravatar=غیر فعال کردن Gravatar config.enable_federated_avatar=فعال سازی آواتار مشترک -config.git_config=پیکربندی Git -config.git_disable_diff_highlight=غیرفعال کردن برجسته سازی در Diff -config.git_max_diff_lines=حداکثر خط برای Diff (برای یک فایل) -config.git_max_diff_line_characters=حداکثر کاراکتر در Diff (برای یک خط) -config.git_max_diff_files=حداکثر فایل های Diff (برای نمایش) -config.git_gc_args=آرگومان های GC -config.git_migrate_timeout=آستانه ی زمان مهاجرت -config.git_mirror_timeout=زمان آستانه در به روز رسانی قرینه -config.git_clone_timeout=زمان آستانه ی عملیات Clone -config.git_pull_timeout=زمان آستانه ی عملیات واکشی -config.git_gc_timeout=زمان آستانه ی عملیات GC - config.log_config=پیکربندی ثبت رخداد config.disabled_logger=غیرفعال شده config.access_log_mode=شیوه ثبت رخداد دسترسی diff --git a/options/locale/locale_fi-FI.ini b/options/locale/locale_fi-FI.ini index 5e89ce5b5d..4bc15da8f9 100644 --- a/options/locale/locale_fi-FI.ini +++ b/options/locale/locale_fi-FI.ini @@ -139,7 +139,7 @@ confirm_delete_artifact = Haluatko varmasti poistaa artefaktin "%s"? new_migrate.title = Uusi migraatio test = Testi concept_system_global = Yleisesti pätevä -sign_in_with_provider = Kirjaudu käyttäen %sia +sign_in_with_provider = Kirjaudu sisään käyttäen %sia filter.is_fork = Forkit filter.is_mirror = Peilit filter.is_template = Mallipohjat @@ -2696,26 +2696,10 @@ first_page=Ensimmäinen last_page=Viimeinen total=Yhteensä: %d -dashboard.statistic=Yhteenveto -dashboard.operations=Huoltotoimet -dashboard.system_status=Järjestelmän tila -dashboard.operation_name=Toimenpiteen nimi -dashboard.operation_switch=Vaihda -dashboard.operation_run=Suorita dashboard.delete_inactive_accounts=Poista kaikki aktivoimattomat tilit dashboard.delete_repo_archives=Poista kaikki tietovarastojen arkistot (ZIP, TAR.GZ, jne.) users.user_manage_panel=Käyttäjätilien hallinta users.new_account=Luo käyttäjätili -users.name=Käyttäjänimi -users.full_name=Koko nimi -users.activated=Aktivoitu -users.admin=Ylläpito -users.restricted=Rajoitettu -users.2fa=2FA -users.repos=Tietovarastot -users.created=Luotu -users.last_login=Viimeksi kirjautunut -users.never_login=Ei koskaan kirjautunut users.edit=Muokkaa users.auth_source=Todennuslähde users.local=Paikallinen @@ -2741,26 +2725,8 @@ emails.filter_sort.name_reverse=Käyttäjänimi (käänteinen) emails.duplicate_active=Tämä sähköpostiosoite on jo käytössä toisella käyttäjällä. orgs.org_manage_panel=Organisaatioiden hallinta -orgs.name=Nimi -orgs.teams=Tiimit -orgs.members=Jäsenet -orgs.new_orga=Uusi organisaatio - repos.repo_manage_panel=Tietovarastojen hallinta -repos.owner=Omistaja -repos.name=Nimi repos.private=Yksityinen -repos.issues=Ongelmat -repos.size=Koko - -packages.owner=Omistaja -packages.name=Nimi -packages.type=Tyyppi -packages.repository=Tietovarasto -packages.size=Koko - - - auths.new=Lisää todennuslähde auths.name=Nimi auths.type=Tyyppi @@ -2802,31 +2768,12 @@ config.app_name=Instanssin otsikko config.app_ver=Forgejo-versio config.disable_router_log=Poista reitittimen lokinkirjaaminen käytöstä config.run_mode=Suoritustila -config.git_version=Git-versio config.repo_root_path=Tietovaraston juuren polku config.script_type=Komentosarjatyyppi config.reverse_auth_user=Käänteinen välityspalvelin -todennuskäyttäjä -config.ssh_config=SSH-asetukset -config.ssh_enabled=Käytössä -config.ssh_port=Portti -config.ssh_listen_port=Kuuntele porttia -config.ssh_root_path=Juuren polku -config.ssh_key_test_path=Avaimen testipolku -config.ssh_keygen_path=Keygen-polku ('ssh-keygen') -config.ssh_minimum_key_size_check=Avaimen vähimmäiskoon tarkistus -config.ssh_minimum_key_sizes=Avaimen vähimmäiskoot - config.lfs_enabled=Käytössä -config.db_config=Tietokannan asetukset -config.db_type=Tyyppi -config.db_host=Isäntä -config.db_name=Nimi -config.db_user=Käyttäjänimi -config.db_ssl_mode=SSL -config.db_path=Polku - config.service_config=Palveluasetukset config.show_registration_button=Näytä rekisteröitymispainike config.enable_captcha=Ota CAPTCHA käyttöön @@ -2838,12 +2785,6 @@ config.webhook_config=Webkoukkujen asetukset config.queue_length=Jonon pituus config.deliver_timeout=Toimituksen aikakatkaisu -config.mailer_enabled=Käytössä -config.mailer_name=Nimi -config.mailer_smtp_addr=SMTP-isäntä -config.mailer_smtp_port=SMTP-portti -config.mailer_user=Käyttäjä - config.oauth_config=OAuth-asetukset config.oauth_enabled=Käytössä @@ -2864,12 +2805,6 @@ config.cookie_life_time=Evästeen elinikä config.picture_service=Kuvapalvelu config.disable_gravatar=Poista Gravatar käytöstä -config.git_gc_args=Roskienkeruu-argumentit -config.git_migrate_timeout=Migraation aikakatkaisu -config.git_mirror_timeout=Peilin päivityksen aikakatkaisu -config.git_clone_timeout=Kloonaustoimenpiteen aikakatkaisu -config.git_gc_timeout=Roskienkeruun aikakatkaisu - config.log_config=Lokiasetukset config.disabled_logger=Pois käytöstä @@ -2902,26 +2837,21 @@ emails.updated = Sähköpostiosoite päivitetty users.organization_creation.description = Salli uusien organisaatioiden luonti. users.deletion_success = Käyttäjätili on poistettu. users.reset_2fa = Nollaa 2FA -packages.published = Julkaistu -packages.version = Versio auths.tip.oauth2_provider = OAuth2-palveluntarjoaja hooks = Webkoukut identity_access = Identiteetti ja pääsy config.test_email_placeholder = Sähköposti (esim. test@example.com) auths.force_smtps = Pakota SMTPS -config.mailer_use_sendmail = Käytä Sendmailia users.new_success = Käyttäjätili "%s" on luotu. config.disable_register = Poista itserekisteröinti käytöstä config.enable_openid_signin = Ota OpenID-kirjautuminen käyttöön config.enable_openid_signup = Ota OpenID-itserekisteröinti käyttöön -config.db_schema = Skeema settings = Ylläpitäjän asetukset emails.delete = Poista sähköpostiosoite emails.deletion_success = Sähköpostiosoite on poistettu. emails.delete_desc = Haluatko varmasti poistaa tämän sähköpostiosoitteen? users.cannot_delete_self = Et voi poistaa itseäsi packages.package_manage_panel = Hallitse paketteja -config.ssh_start_builtin_server = Käytä sisäänrakennettua palvelinta notices.type_2 = Tehtävä emails.delete_primary_email_error = Et voi poistaa ensisijaista sähköpostiosoitetta. users.details = Käyttäjän tiedot @@ -2931,13 +2861,10 @@ auths.oauth2_icon_url = Kuvakkeen URL-osoite config.mail_notify = Ota sähköposti-ilmoitukset käyttöön config.send_test_mail_submit = Lähetä systemhooks = Järjestelmän webkoukut -packages.total_size = Koko yhteensä: %s auths.oauth2_provider = OAuth2-palveluntarjoaja auths.tips.gmail_settings = Gmail-asetukset: -config.mailer_sendmail_path = Sendmail-polku config_settings = Asetukset config.skip_tls_verify = Ohita TLS-vahvistus -dashboard.new_version_hint = Forgejo %s on nyt saatavilla. Käytössäsi on %s. Lue lisätietoja blogista. defaulthooks.add_webhook = Lisää oletusarvoinen webkoukku monitor.execute_times = Suoritukset defaulthooks = Oletusarvoiset webkoukut @@ -2948,12 +2875,9 @@ monitor.process.cancel = Peru prosessi config.allow_only_internal_registration = Salli rekisteröinti vain Forgejon kautta config.allow_only_external_registration = Salli rekisteröinti vain ulkoisten palvelujen kautta config.require_sign_in_view = Vaadi sisäänkirjautuminen sisällön katselemiseksi -config.git_config = Git-asetukset monitor.stats = Tilastot -repos.lfs_size = LFS:n koko config.lfs_config = LFS-asetukset config.register_email_confirm = Vaadi sähköpostivahvistus rekisteröitymiseen -config.ssh_domain = SSH-palvelimen verkkotunnus config.app_slogan = Instanssin tunnuslause config.lfs_content_path = LFS-sisällön polku users.max_repo_creation = Tietovarastojen enimmäismäärä @@ -2964,25 +2888,12 @@ config.reset_password_code_lives = Palautuskoodin vanhenemisaika monitor.processes_count = %d prosessia config.default_allow_create_organization = Salli organisaatioiden luominen oletuksena config.test_mail_sent = Testisähköposti on lähetetty osoitteeseen "%s". -config.mailer_sendmail_timeout = Sendmailin aikakatkaisu -dashboard.cron.started = Käynnistetty Cron: %[1]s -dashboard.task.process = Tehtävä: %[1]s -dashboard.task.error = Virhe tehtävässä: %[1]s: %[3]s -dashboard.task.unknown = Tuntematon tehtävä: %[1]s -dashboard.cron.error = Virhe Cronissa: %s: %[3]s -dashboard.task.started = Käynnistetty tehtävä: %[1]s -dashboard.cron.finished = Cron: %[1]s on valmistunut -dashboard.resync_all_sshkeys = Päivitä ".ssh/authorized_keys"-tiedosto Forgejo:n SSH-avaimilla. -dashboard.cleanup_packages = Siivoa vanhentuneet paketit config.default_allow_only_contributors_to_track_time = Salli vain avustajien seurata aikaa monitor.download_diagnosis_report = Lataa diagnostiikkaraportti monitor.duration = Kesto (s) monitor.last_execution_result = Tulos -users.bot = Botti auths.syncenabled = Ota käyttäjäsynkronointi käyttöön auths.enable_ldap_groups = Ota LDAP-ryhmät käyttöön -dashboard.sync_branch.started = Haarasynkronointi aloitettu -dashboard.sync_tag.started = Tagisynkronointi aloitettu auths.login_source_exist = Todennuslähde "%s" on jo olemassa. config.enable_timetracking = Ota ajanseuranta käyttöön config.default_enable_timetracking = Ota ajanseuranta käyttöön oletuksena @@ -2990,33 +2901,24 @@ config.no_reply_address = Piilotetun sähköpostin verkkotunnus config.allow_dots_in_usernames = Salli käyttäjien käyttää pisteitä käyttäjänimissään. Ei vaikuta olemassa oleviin tileihin. repos.unadopted.no_more = Omaksumattomia tietovarastoja ei löytynyt. repos.unadopted = Omaksumattomat tietovarastot -dashboard.repo_health_check = Tee terveystarkastus kaikille tietovarastoille -users.reserved = Varattu users.purge = Hävitä käyttäjä -dashboard.cron.process = Cron: %[1]s auths.tip.github = Rekisteröi uusi OAuth-sovellus %sissa config.app_data_path = Sovellusdatan polku config.cache_test_slow = Välimuistin testi onnistui, mutta vastaus on hidas: %s. -dashboard.delete_repo_archives.started = Poista kaikki tietovarastojen arkistot -tehtävä aloitettu. -dashboard.check_repo_stats = Tarkista kaikkien tietovarastojen tilastot users.still_own_packages = Tämä käyttäjä omistaa yhden tai useamman paketin. Poista paketit ensin. users.block.description = Estä tätä käyttäjää olemasta vuorovaikutuksessa tämän palvelun kanssa tilinsä välityksellä ja estä sisäänkirjautuminen. auths.attribute_username = Käyttäjänimen attribuutti auths.oauth2_emailURL = Sähköpostin URL-osoite auths.tip.discord = Rekisteröi uusi sovellus %sissa config.default_enable_dependencies = Ota ongelmariippuvuudet käyttöön oletuksena -config.mailer_config = Postittimen asetukset config.cache_test_succeeded = Välimuistin testi onnistui, vastauksen saamisessa kesti %s. -dashboard.sync_external_users = Synkronoi ulkoinen käyttäjädata auths.tip.gitea = Rekisteröi uusi OAuth2-sovellus. Ohje on osoitteessa %s config.test_mail_failed = Testisähköpostin lähettäminen osoitteeseen "%s" epäonnistui: %v auths.attribute_surname = Sukunimen attribuutti -config.mailer_enable_helo = Ota HELO käyttöön auths.attribute_username_placeholder = Jätä tyhjäksi käyttääksesi Forgejo:ssa asetettua käyttänimeä. auths.oauth2_authURL = Valtuutuksen URL-osoite auths.new_success = Todennus "%s" on lisätty. users.still_own_repo = Tämä käyttäjä omistaa yhden tai useamman tietovaraston. Poista tai siirrä nämä tietovarastot ensin. -dashboard.cleanup_hook_task_table = Siivoa koukku -_tehtävätaulukko dashboard.delete_old_actions = Poista kaikki vanhat aktiviteetit tietokannasta auths.attribute_mail = Sähköpostiosoitteen attribuutti auths.attribute_ssh_public_key = Julkisen SSH-avaimen attribuutti @@ -3028,12 +2930,7 @@ auths.tip.gitlab_new = Rekisteröi uusi sovellus %sissa config.cache_test = Testaa välimuisti auths.still_in_used = Todennuslähde on edelleen käytössä. Konvertoi tai poista ensin käyttäjät, jotka käyttävät tätä todennuslähdettä. users.admin.description = Myönnä tälle käyttäjälle täydet oikeudet selainkäyttöliittymän ja rajapinnan kautta saatavilla oleviin ylläpito-ominaisuuksiin. -dashboard.delete_inactive_accounts.started = Poista kaikki aktivoimattomat tilit -tehtävä aloitettu. config.run_user = Suorita käyttäjänä -config.mailer_sendmail_args = Lisäargumentit Sendmailille -dashboard.archive_cleanup = Poista vanhat tietovarastojen arkistot -dashboard.deleted_branches_cleanup = Siivoa poistetut haarat -dashboard.update_checker = Päivitysten tarkistaja auths.allowed_domains_helper = Jätä tyhjäksi salliaksesi kaikki verkkotunnukset. Erota useat verkkotunnukset pilkulla (","). auths.activated = Tämä todennuslähde on aktivoitu auths.login_source_of_type_exist = Tätä tyyppiä oleva todennuslähde on jo olemassa. @@ -3044,37 +2941,27 @@ config.log_file_root_path = Lokipolku config.lfs_root_path = LFS-juuren polku users.allow_import_local = Voi tuoda paikallisia tietovarastoja users.still_has_org = Tämä käyttäjä on organisaation jäsen. Poista käyttäjä organisaatiosta ensin. -packages.creator = Luoja auths.attribute_avatar = Profiilikuvan attribuutti -users.remote = Etä auths.disable_helo = Poista HELO käytöstä defaulthooks.desc = Webkoukut tekevät automaattisesti HTTP POST -pyyntöjä palvelimelle, kun tietyt Forgejo-tapahtumat ilmenevät. Tässä määritetyt webkoukut ovat oletusarvot ja ne kopioidaan kaikkiin uusiin tietovarastoihin. Lue lisää webkoukkujen oppaasta. auths.attribute_name = Etunimen attribuutti users.local_import.description = Salli tietovarastojen tuominen palvelimen paikallisesta tiedostojärjestelmästä. Tämä voi olla tietoturvaongelma. emails.not_updated = Pyydetyn sähköpostiosoitteen päivittäminen epäonnistui: %v -dashboard.update_mirrors = Päivitä peilit -config.mailer_protocol = Protokolla users.activated.description = Sähköpostivahvistuksen valmistuminen. Aktivoimattoman tilin omistaja ei voi kirjautua sisään, ennen kuin sähköpostivahvistus on suoritettu. users.purge_help = Poista käyttäjä pakottaen, sekä kaikki käyttäjän omistamat tietovarastot, organisaatiot ja paketit. Kaikki käyttäjän luomat kommentit ja ongelmat poistetaan myös. users.restricted.description = Salli vuorovaikutus vain niihin tietovarastoihin ja organisaatioihin, joissa käyttäjä on avustajan roolissa. Tämä estää pääsyn tässä instanssissa oleviin julkisiin tietovarastoihin. -config.git_pull_timeout = Vetotoimenpiteen aikakatkaisu monitor.process.cancel_desc = Prosessin peruuttaminen saattaa aiheuttaa datan menetyksen self_check.no_problem_found = Ongelmia ei ole vielä löytynyt. -config.git_disable_diff_highlight = Poista diff-syntaksin korostus käytöstä -config.git_max_diff_lines = Diff-rivejä enintään tiedostoa kohden config.access_log_template = Pääsylokin mallipohja monitor.process.cancel_notices = Perutaanko: %s? config.enable_federated_avatar = Ota federoidut profiilikuvat käyttöön notices.operations = Toimenpiteet config.xorm_log_sql = Lokita SQL config.logger_name_fmt = Lokittaja: %s -config.git_max_diff_line_characters = Diff-merkkejä enintään riviä kohden -config.git_max_diff_files = Diff-tiedostoja enintään näytettäväksi config.access_log_mode = Pääsylokin tila config.picture_config = Kuvan ja avatarin asetukset notices.delete_success = Järjestelmäilmoitukset on poistettu. auths.force_smtps_helper = SMTPS:ää käytetään aina portissa 465. Aseta tämä pakottaaksesi SMTPS toisiin portteihin. (Muuten STARTTLS:ää käytetään toisiin portteihin, jos palvelin tukee sitä.) -dashboard.resync_all_sshprincipals = Päivitä ".ssh/authorized_principals"-tiedosto Forgejon SSH-prinsipaaleilla. auths.verify_group_membership = Vahvista ryhmäjäsenyys LDAP:issa (jätä suodatin tyhjäksi ohittaaksesi) auths.oauth2_map_group_to_team_removal = Poista käyttäjät synkronoiduista tiimeistä, jos käyttäjä ei kuulu vastaavaan ryhmään. diff --git a/options/locale/locale_fil.ini b/options/locale/locale_fil.ini index 68a6efddee..3978d923f4 100644 --- a/options/locale/locale_fil.ini +++ b/options/locale/locale_fil.ini @@ -2673,14 +2673,10 @@ emails.updated = Napalitan na ang email emails.not_updated = Nabigong baguhin ang hinihiling na email address: %v monitor.next = Susunod na oras monitor.last_execution_result = Resulta -users.last_login = Huling nag sign-in first_page = Una last_page = Huli monitor.previous = Huling oras -users.created = Ginawa users.new_success = Ginawa na ang account na "%s". -dashboard.task.unknown = Hindi kilalang utos: %[1]s -dashboard.task.finished = Utos: %[1]s na sinumulan ni %[2]s ay natapos na users.edit_account = I-edit ang user account users.update_profile_success = Na-update na ang user account. users.still_own_packages = Ang user na ito ay nagmamay-ari ng isa o higit pang mga package, burahin muna ang mga package. @@ -2688,43 +2684,10 @@ users.reset_2fa = I-reset ang 2FA users.purge = I-purge ang user users.purge_help = Piliting burahin ang user at anumang mga repositoryo, organisasyon, at package na minamay-ari ng user na ito. Ang mga komento at isyu na na-post ng user ay buburahin din. config_settings = Mga setting -dashboard.statistic = Buod -dashboard.task.error = Error sa Utos: %[1]s: %[3]s -users.full_name = Buong pangalan -users.never_login = Hindi nag-sign in kailanman -dashboard.system_status = Status ng sistema -dashboard.operation_switch = Palitan dashboard.clean_unbind_oauth = Linisin ang mga unbound na koneksyon ng OAuth -dashboard.task.process = Utos: %[1]s -dashboard.task.started = Sinimulan ang Utos: %[1]s -dashboard.task.cancelled = Utos: %[1]s ay kinansela: %[3]s -dashboard.cron.started = Sinumulan ang Cron: %[1]s -dashboard.cron.process = Cron: %[1]s -dashboard.cron.cancelled = Cron: %[1]s ay kinansela: %[3]s -dashboard.cron.error = Error sa Cron: %[3]s -dashboard.cron.finished = Cron: natapos na ang %[1]s dashboard.delete_inactive_accounts = Burahin ang lahat ng mga hindi na-activate na account -dashboard.delete_repo_archives.started = Nasimulan na ang utos na burahin ang lahat ng mga archive ng repositoryo. dashboard.delete_missing_repos = Burahin ang lahat ng mga repositoryo na nawawalan ng kanilang mga Git file -dashboard.delete_generated_repository_avatars = Burahin ang mga na-generate na avatar ng repositoryo -dashboard.archive_cleanup = Burahin ang mga lumang archive ng repositoryo -dashboard.deleted_branches_cleanup = Linisin ang mga binurang branch -dashboard.update_migration_poster_id = I-update ang mga migration poster ID -dashboard.git_gc_repos = I-garbage collect ang lahat ng mga repositoryo -dashboard.resync_all_sshprincipals = I-update ang ".ssh/authorized_principals" file sa mga principal ng Forgejo SSH. -dashboard.resync_all_hooks = I-resychronize ang mga Git hook ng lahat ng mga repositoryo (pre-receive, post-receive, proc-receive, …) -dashboard.cleanup_hook_task_table = Linisin ang hook_task table -dashboard.cleanup_packages = Linisin ang mga na-expire na package -dashboard.cleanup_actions = Linisin ang mga nag-expire na log at artifact mula sa mga aksyon dashboard.delete_old_actions = Burahin ang lahat ng mga lumang aktibidad mula sa database -dashboard.stop_endless_tasks = Itigil ang mga hindi natatapos na aksyon ng task -dashboard.cancel_abandoned_jobs = Kanselahin ang mga naiwang aksyon ng trabaho -dashboard.start_schedule_tasks = Simulan ang mga naka-iskedyul na aksyon ng task -dashboard.sync_branch.started = Nasimulan ang pag-sync ng mga branch -dashboard.rebuild_issue_indexer = Gawin muli ang indexef ng isyu -users.restricted = Pinaghihigpitan -users.2fa = 2FA -users.repos = Mga Repo users.send_register_notify = Abisuhan tungkol sa pagrehistro sa pamamagitan ng email users.is_admin = Tagapangasiwa na account users.is_restricted = Pinaghihigpitang account @@ -2748,42 +2711,16 @@ config = Pagsasaayos notices = Mga paunawa ng sistema monitor = Pag-monitor settings = Mga setting ng tagapangasiwa -users.activated = Naka-activate -users.admin = Tagapangasiwa -users.bot = Bot -users.remote = Remote users.local = Lokal users.auth_source = Source ng authentikasyon -users.name = Username total = Total: %d -dashboard.operation_name = Pangalan ng Operasyon dashboard.clean_unbind_oauth_success = Binura na ang lahat ng mga unbound na koneksyon ng OAuth. -dashboard.resync_all_sshkeys = I-update ang ".ssh/authorized_keys" file sa mga key ng Forgejo SSH. -dashboard.sync_tag.started = Nasimulan ang pag-sync ng mga tag -users.reserved = Nakareserba -dashboard.delete_inactive_accounts.started = Sinumulan na ang utos na burahin ang lahat ng mga hindi na-activate na account. -dashboard.delete_missing_repos.started = Nasimula na ang utos na burahin ang lahat ng mga repositoryo na nawawalan ng kanilang mga Git file. -dashboard.reinit_missing_repos = Muling pagsasaayos ng lahat ng nawawalang mga repositori ng Git kung saan umiiral ang mga tala users.allow_git_hook_tooltip = Ang mga Git hook ay tinatakbo bilang OS user na tinatakbo ang Forgejo at may katulad na level ng pag-access ng host. Bilang isang resulta, ang mga gumagamit na may espesyal na pribilehiyo ng Git hook na ito ay maaaring ma-access at baguhin ang lahat ng mga repositori ng Forgejo pati na rin ang database na ginamit ng Forgejo. Dahil dito nakakamit din nila ang mga pribilehiyo ng Forgejo Administrator. dashboard.delete_repo_archives = Burahin ang lahat ng mga archive ng mga repositoryo (ZIP, TAR.GZ, atbp..) -dashboard.sync_external_users = I-synchronize ang panlabas na user data users.allow_git_hook = Makakagawa ng mga Git hook config_summary = Buod -dashboard.new_version_hint = Available na ang Forgejo %s, tumatakbo ka ng %s. Suriin ang blog para sa karagdagang detalye. -dashboard.operations = Mga operasyon ng pagpapanatili -dashboard.operation_run = Patakbuhin dashboard = Dashboard identity_access = Pagkakakilanlan at pag-access -dashboard.sync_repo_branches = I-sync ang mga nawawalang branch mula sa Git data sa database -dashboard.sync_repo_tags = I-sync ang mga tag mula sa Git data sa database -dashboard.update_mirrors = I-update ang mga mirror -dashboard.repo_health_check = Suriin ang kalusugan ng lahat ng mga repositoryo -dashboard.check_repo_stats = Suriin ang lahat ng istatistika ng repositoryo -dashboard.delete_old_actions.started = Nasimula na ang burahin ang lahat ng mga lumang aktibidad mula sa database. -dashboard.update_checker = Tagasuri ng update -dashboard.delete_old_system_notices = Burahin ang lahat ng mga lumang paunawa ng sistema mula sa database -dashboard.gc_lfs = I-garbage collect ang mga LFS meta object -dashboard.stop_zombie_tasks = Itigil ang mga zombie action task users.user_manage_panel = Ipamahala ang mga user account users.new_account = Gumawa ng user account users.auth_login_name = Pangalan ng sign-in authentication @@ -2799,26 +2736,20 @@ users.deletion_success = Binura na ang user account. emails.filter_sort.name = Username emails.primary = Pauna emails.filter_sort.email = Email -orgs.name = Pangalan emails.activated = Naka-activate emails.duplicate_active = Ang email address na ito ay aktibo na para sa ibang user. emails.change_email_header = I-update ang ari-arian ng email emails.filter_sort.email_reverse = Email (pabaligtad) emails.filter_sort.name_reverse = Username (pabaligtad) orgs.org_manage_panel = Ipamahala ang mga organisasyon -orgs.teams = Mga koponan -orgs.members = Mga miyembro emails.change_email_text = Sigurado kang gusto mong i-update ang email address na ito? config.app_ver = Bersyon ng Forgejo -config.git_version = Bersyon ng Git -packages.creator = Gumawa defaulthooks.add_webhook = Magdagdag ng Default Webhook auths.auth_manage_panel = Ipamahala ang mga source ng authentikasyon auths.auth_name = Pangalan ng authentikasyon auths.security_protocol = Protocol ng seguridad auths.domain = Domain auths.host = Host -packages.total_size = Kabuuang laki: %s auths.attribute_avatar = Attribute ng avatar auths.enabled = Naka-enable auths.syncenabled = I-enable ang user synchronization @@ -2827,21 +2758,13 @@ auths.port = Port auths.bind_dn = Bind DN auths.bind_password = Password ng bind auths.attribute_ssh_public_key = Attribute ng Publikong SSH key -repos.name = Pangalan repos.private = Pribado -repos.issues = Mga isyu -repos.size = Laki -packages.type = Uri -packages.repository = Repositoryo -packages.size = Laki auths.new = Magdagdag ng source ng authentikasyon auths.attribute_surname = Attribute ng surname -packages.version = Bersyon systemhooks.add_webhook = Magdagdag ng Sistemang Webhook systemhooks.desc = Awtomatikong gumagawa ang mga Webhook ng mga HTTP POST request sa isang server kapag nag-trigger ang ilang partikular na kaganapan sa Forgejo. Ang mga webhook na tinukoy dito ay kikilos sa lahat ng mga repositoryo sa system, kaya mangyaring isaalang-alang ang anumang mga implikasyon ng performance na maaaring mayroon ito. Magbasa pa sa guide ng mga webhook. packages.cleanup.success = Matagumpay na nalinis ang na-expire na data defaulthooks.desc = Awtomatikong gumagawa ang mga Webhook ng mga HTTP POST request sa isang server kapag nag-trigger ang ilang partikular na kaganapan sa Forgejo. Ang mga webhook na tinukoy dito ay mga default at makokopya sa lahat ng mga bagong repositoryo. Magbasa pa sa guide ng mga webhook. -packages.published = Na-publish defaulthooks = Mga default webhook systemhooks.update_webhook = I-update ang Sistemang Webhook auths.name = Pangalan @@ -2853,30 +2776,21 @@ auths.user_dn = DN ng User auths.attribute_username = Attribute ng username auths.attribute_username_placeholder = Iwanang walang laman para gamitin ang username na inilagay sa Forgejo. auths.attribute_name = Attribute ng unang pangalan -packages.unreferenced_size = Hindi sinangguniang laki: %s -packages.owner = May-ari -packages.name = Pangalan packages.cleanup = Linisin ang na-expire na data -orgs.new_orga = Bagong organisasyon repos.repo_manage_panel = Ipamahala ang mga repositoryo repos.unadopted = Mga unadopted na repositoryo repos.unadopted.no_more = Wala nang mga unadopted na repositoryo na nahanap. -repos.owner = May-ari -repos.lfs_size = Laki ng LFS packages.package_manage_panel = Ipamahala ang mga package auths.attribute_mail = Attribute ng email config.server_config = Configuration ng server config.app_name = Pangalan ng instansya config.lfs_root_path = Root path ng LFS config.log_file_root_path = Path ng log -config.ssh_root_path = Root path config.script_type = Uri ng script config.reverse_auth_user = Authentication user ng reverse proxy -config.ssh_domain = Server domain ng SSH config.custom_conf = File path ng configuration config.app_url = Base URL config.offline_mode = Lokal na mode -config.ssh_port = Port config.custom_file_root_path = Pasadyang root path ng file config.domain = Domain ng server config.disable_router_log = I-disable ang router log @@ -2884,33 +2798,21 @@ config.run_user = User na tatakbo bilang config.run_mode = Mode ng pagtakbo config.app_data_path = Path ng data ng app config.repo_root_path = Root path ng repositoryo -config.ssh_config = Configuration ng SSH -config.ssh_enabled = Naka-enable -config.ssh_start_builtin_server = Gamitin ang built-in server -config.ssh_listen_port = Listen port -config.ssh_keygen_path = Path ng keygen ("ssh-keygen") -config.ssh_key_test_path = Path ng key test auths.verify_group_membership = Patunayan ang membership ng grupo sa LDAP (iwanang walang laman ang filter para i-skip) config.allow_only_external_registration = Payagan lamang ang pagrehistro sa pamamagitan ng mga panlabas na serbisyo config.allow_only_internal_registration = Payagan lamang ang pagrehistro sa pamamagitan ng Forgejo auths.search_page_size = Laki ng pahina auths.filter = Filter ng user auths.group_search_base = Group search base DN -config.db_type = Uri auths.restricted_filter_helper = Iwanang walang laman para hindi itakda ang mga user bilang pinahihigpitan. Gamitin ang asterisk ("*") para itakda ang lahat ng mga user na hindi tumutugma sa Admin filter bilang pinahihigpitan. auths.admin_filter = Filter ng admin auths.restricted_filter = Pinahigpit na filter config.lfs_enabled = Naka-enable -config.db_user = Username auths.use_paged_search = Gamitin ang naka-pahinang paghahanap config.lfs_http_auth_expiry = Oras ng pag-expire ng LFS HTTP auth -config.db_config = Configuration ng database -config.db_host = Host config.lfs_config = Configuration ng LFS config.lfs_content_path = Content path ng LFS auths.attributes_in_bind = Kunin ang mga attribute sa bind DN context -config.db_name = Pangalan -config.db_schema = Schema config.service_config = Configuration ng serbisyo config.register_email_confirm = Kailanganin ang pagkumpirma ng email upang magrehistro config.disable_register = I-disable ang pansariling pagrehistro @@ -2967,10 +2869,8 @@ auths.disable_helo = I-disable ang HELO auths.oauth2_profileURL = URL ng profile users.block.description = Harangan ang tagagamit na ito mula sa pag-interact sa serbisyong ito sa pamamagitan ng kanilang mga account at pagbawalan ang pag-sign in. monitor.cron = Mga cron task -config.mailer_sendmail_timeout = Timeout ng Sendmail config.disable_gravatar = I-disable ang Gravatar config.test_mail_failed = Nabigong magpadala ng test email sa "%s": %v -config.mailer_use_dummy = Dummy monitor.process.cancel_notices = Kanselahin: %s? auths.tips.oauth2.general = OAuth2 na authentication config.show_registration_button = Ipakita ang magrehistro na button @@ -2990,12 +2890,7 @@ config.enable_openid_signup = I-enable ang OpenID na pansariling pagrehistro config.session_config = Configuration ng session monitor.name = Pangalan config.enable_captcha = I-enable ang CAPTCHA -config.git_mirror_timeout = Timeout ng pag-update ng mirror -config.git_max_diff_files = Pinakamataas na mga diff file na ipapakita -config.git_gc_args = Mga argument ng GC -config.git_migrate_timeout = Timeout ng paglipat config.cache_config = Configuration ng cache -config.git_pull_timeout = Timeout ng operasyon ng paghila auths.tip.google_plus = Kumuha ng OAuth2 client credentials mula sa Google API console sa %s config.mail_notify = Paganahin ang mga email notification config.active_code_lives = Oras ng pag-expire ng activation code @@ -3029,11 +2924,6 @@ config.webhook_config = Configuration ng Webhook config.queue_length = Haba ng queue config.deliver_timeout = Timeout ng pag-deliver config.skip_tls_verify = I-skip ang pagpapatunay ng TLS -config.mailer_config = Configuration ng mailer -config.mailer_enabled = Naka-enable -config.mailer_enable_helo = I-enable ang HELO -config.mailer_name = Pangalan -config.mailer_protocol = Protocol config.test_email_placeholder = Email (hal. bocchi@example.com) config.send_test_mail_submit = Magpadala config.oauth_config = Configuration ng OAuth @@ -3046,10 +2936,6 @@ config.cache_test_failed = Nabigong i-probe ang cache: %v. config.session_life_time = Lifetime ng session config.picture_service = Serbisyo ng larawan config.enable_federated_avatar = I-enable ang mga naka-federate na avatar -config.git_config = Configuration ng git -config.git_disable_diff_highlight = I-disable ang diff syntax highlighting -config.git_max_diff_line_characters = Pinakamataas na mga character ng diff bawat linya -config.git_gc_timeout = Timeout on operasyon ng GC config.log_config = Configuration ng log config.logger_name_fmt = Logger: %s config.access_log_mode = Mode ng pag-access ng log @@ -3087,30 +2973,19 @@ auths.tip.gitea = Magrehistro ng bagong OAuth2 na application. Ang guide ay maha auths.delete = Burahin ang source ng authentikasyon auths.new_success = Nadagdag na ang authentikasyon na "%s". auths.unable_to_initialize_openid = Hindi ma-initialize ang OpenID Connect Provider: %s -config.ssh_minimum_key_size_check = Pinakamababang key size check -config.ssh_minimum_key_sizes = Mga pinakamababang laki ng key -config.db_path = Path config.default_allow_create_organization = Payagan ang paggawa ng mga organisasyon bilang default config.enable_timetracking = I-enable ang pagsubaybay ng oras -config.mailer_smtp_addr = Host ng SMTP -config.mailer_smtp_port = Port ng SMTP -config.mailer_user = Gumagamit -config.mailer_use_sendmail = Gumamit ng Sendmail -config.mailer_sendmail_path = Path ng sendmail -config.mailer_sendmail_args = Extra na argument sa Sendmail config.send_test_mail = Magpadala ng test email config.session_provider = Provider ng session config.cookie_name = Pangalan ng cookie config.gc_interval_time = Oras ng pagitan ng GC config.cookie_life_time = Lifetime ng cookie -config.git_clone_timeout = Timeout ng operasyon na pag-clone monitor.process.cancel_desc = Ang pagkansela ng proseso ay maaaring magdulot ng pagkawalan ng data auths.oauth2_required_claim_value_helper = Itakda ang value na ito upang i-restrict ang pag-login mula sa pinagmulang ito sa mga user na may claim na may ganitong pangalan at value auths.tip.bitbucket = Magrehistro ng bagong OAuth consumer sa %s at idagdag ang pahintulot na "Account" - "Read" config.require_sign_in_view = Kailanganin ang pag-sign in para itignan ang nilalaman auths.tip.mastodon = Mag-input ng custom na instance URL para sa Mastodon instance na gusto mong mag-authenticate sa (o gamitin ang default) auths.tips.gmail_settings = Mga setting sa Gmail: -config.git_max_diff_lines = Pinakamataas na mga linya ng diff bawat file auths.oauth2_required_claim_name_helper = Itakda ang pangalan na ito para i-restrict ang pag-login mula sa source na ito sa mga user na may claim na may pangalan na ito auths.invalid_openIdConnectAutoDiscoveryURL = Hindi wastong Auto Discovery URL (ito ay dapat isang wastong URL na nagsisimula sa http:// o https://) emails.delete_desc = Sigurado ka bang gusto mong burahin ang email address na ito? @@ -3119,7 +2994,6 @@ auths.update = I-update ang source ng authentikasyon config.cache_conn = Koneksyon ng cache users.activated.description = Pagkumpleto ng email verification. Ang owner ng hindi naka-activate na account ay hindi makaka-log in hanggang sa matapos ang email verification. users.admin.description = Binibigyan ang user na ito ng punong access sa lahat ng mga tagapangasiwang feature na available sa pamamagitan ng web UI at ang API. -config.db_ssl_mode = SSL config.enable_openid_signin = I-enable ang OpenID sign-in monitor.duration = Tagal (s) diff --git a/options/locale/locale_fr-FR.ini b/options/locale/locale_fr-FR.ini index 2558b99f74..9694bc6724 100644 --- a/options/locale/locale_fr-FR.ini +++ b/options/locale/locale_fr-FR.ini @@ -18,7 +18,7 @@ template=Modèle language=Langue notifications=Notifications active_stopwatch=Suivi du temps actif -tracked_time_summary=Résumé du pointage d’après les filtres de la liste des tickets +tracked_time_summary=Résumé du pointage d’après les filtres de la liste des issues create_new=Créer… user_profile_and_more=Profil et réglages… signed_in_as=Connecté en tant que @@ -41,7 +41,7 @@ repository=Dépôt organization=Organisation mirror=Miroir new_mirror=Nouveau miroir -new_fork=Nouvelle bifurcation +new_fork=Nouveau fork new_project=Nouveau projet new_project_column=Nouvelle colonne admin_panel=Administration du site @@ -54,11 +54,11 @@ all=Tous sources=Sources mirrors=Miroirs collaborative=Collaboratif -forks=Bifurcations +forks=Forks activities=Activités -pull_requests=Demandes d'ajout -issues=Tickets +pull_requests=Pull requests +issues=Issues milestones=Jalons ok=OK @@ -125,8 +125,8 @@ value=Valeur filter.clear = Effacer le filtre filter.is_archived = Archivé filter.not_archived = Non archivé -filter.is_fork = Bifurcations -filter.not_fork = Non bifurqué +filter.is_fork = Forks +filter.not_fork = Non forké filter.not_mirror = Non miroirs filter.is_template = Modèles filter.not_template = Non modèles @@ -174,7 +174,7 @@ buttons.list.unordered.tooltip=Ajouter une liste à puces buttons.list.ordered.tooltip=Ajouter une liste numérotée buttons.list.task.tooltip=Ajouter une liste de tâches buttons.mention.tooltip=Mentionner un utilisateur ou une équipe -buttons.ref.tooltip=Référencer un ticket ou demande d’ajout +buttons.ref.tooltip=Référencer une issue ou pull request buttons.switch_to_legacy.tooltip=Utiliser l’ancien éditeur à la place buttons.enable_monospace_font=Activer la police à chasse fixe buttons.disable_monospace_font=Désactiver la police à chasse fixe @@ -197,7 +197,7 @@ string.desc=Z - A [error] occurred=Une erreur s’est produite -report_message=Si vous pensez qu'il s'agit d'un bug Forgejo, veuillez consulter les tickets de Codeberg ou ouvrir un nouveau ticket si nécessaire. +report_message=Si vous pensez qu'il s'agit d'un bug Forgejo, veuillez consulter les issues de Codeberg ou ouvrir une nouvelle issue si nécessaire. not_found=La cible n'a pu être trouvée. network_error=Erreur réseau server_internal = Erreur interne du serveur @@ -997,7 +997,7 @@ quota.sizes.git.all = Contenu dans Git quota.sizes.git.lfs = Git LFS quota.sizes.assets.all = Contenus quota.sizes.assets.attachments.all = Attachements -quota.sizes.assets.attachments.issues = Attachements de tickets +quota.sizes.assets.attachments.issues = Pièces jointes d'issues quota.sizes.assets.attachments.releases = Attachements de version quota.sizes.assets.artifacts = Artefacts quota.sizes.assets.packages.all = Paquets @@ -1025,16 +1025,16 @@ visibility=Visibilité visibility_description=Seuls le propriétaire ou les membres de l'organisation, s'ils ont des droits, seront en mesure de le voir. visibility_helper=Rendre le dépôt privé visibility_helper_forced=L’administrateur requière que les nouveaux dépôts soient privés. -visibility_fork_helper=(Changer ceci affectera la visibilité des bifurcations.) +visibility_fork_helper=(Changer ceci affectera la visibilité des forks.) clone_helper=Besoin d'aide pour dupliquer ? Visitez l'aide. -fork_repo=Bifurquer le dépôt -fork_from=Bifurquer depuis +fork_repo=Forker le dépôt +fork_from=Forker depuis already_forked=Vous avez déjà forké %s -fork_to_different_account=Créer une bifurcation vers un autre compte -fork_visibility_helper=La visibilité d'un dépôt bifurqué ne peut pas être modifiée. -fork_branch=Branche à cloner sur la bifurcation +fork_to_different_account=Créer un fork vers un autre compte +fork_visibility_helper=La visibilité d'un dépôt forké ne peut pas être modifiée. +fork_branch=Branche à cloner sur le fork all_branches=Toutes les branches -fork_no_valid_owners=Ce dépôt ne peut pas être bifurqué car il n’a pas de propriétaire valide. +fork_no_valid_owners=Ce dépôt ne peut pas être forké car il n’a pas de propriétaire valide. use_template=Utiliser ce modèle download_zip=Télécharger le ZIP download_tar=Télécharger le TAR.GZ @@ -1080,7 +1080,7 @@ mirror_password_help=Modifiez le nom d'utilisateur pour effacer un mot de passe watchers=Observateurs stargazers=Fans stars_remove_warning=Ceci supprimera toutes les étoiles de ce dépôt. -forks=Bifurcations +forks=Forks reactions_more=et %d de plus unit_disabled=L'administrateur du site a désactivé cette section du dépôt. language_other=Autre @@ -1160,17 +1160,17 @@ migrate.migrating_failed=La migration de %s a échoué. migrate.migrating_failed.error=Échec de la migration : %s migrate.migrating_failed_no_addr=Échec de la migration. mirror_from=miroir de -forked_from=bifurqué depuis +forked_from=forké depuis generated_from=généré depuis -fork_from_self=Vous ne pouvez pas bifurquer un dépôt que vous possédez. -fork_guest_user=Connectez-vous pour bifurquer ce dépôt. +fork_from_self=Vous ne pouvez pas forker un dépôt que vous possédez. +fork_guest_user=Connectez-vous pour forker ce dépôt. watch_guest_user=Connectez-vous pour consulter ce dépôt. star_guest_user=Connectez-vous pour ajouter aux favoris ce dépôt. unwatch=Ne plus suivre watch=Suivre unstar=Retirer des favoris star=Ajouter aux favoris -fork=Fourche +fork=Forker download_archive=Télécharger ce dépôt more_operations=Plus d'opérations @@ -1191,7 +1191,7 @@ clear_ref=`Effacer la référence actuelle` filter_branch_and_tag=Filtrer une branche ou une étiquette find_tag=Rechercher une étiquette branches=Branches -tags=Étiquettes +tags=Tags issues=Tickets pulls=Demandes d'ajout packages=Paquets @@ -1241,7 +1241,7 @@ commit_graph.monochrome=Monochrome commit_graph.color=Couleur commit.contained_in=Cette révision appartient à : commit.contained_in_default_branch=Cette révision appartient à la branche par défaut -commit.load_referencing_branches_and_tags=Charger les branches et étiquettes référençant cette révision +commit.load_referencing_branches_and_tags=Charger les branches et tags référençant cette révision blame=Annotations download_file=Télécharger le fichier normal_view=Vue normale @@ -1259,7 +1259,7 @@ editor.cannot_edit_non_text_files=Les fichiers binaires ne peuvent pas être éd editor.edit_this_file=Modifier le fichier editor.this_file_locked=Le fichier est verrouillé editor.must_be_on_a_branch=Vous devez être sur une branche pour appliquer ou proposer des modifications à ce fichier. -editor.fork_before_edit=Vous devez faire bifurquer ce dépôt pour appliquer ou proposer des modifications à ce fichier. +editor.fork_before_edit=Vous devez forker ce dépôt pour appliquer ou proposer des modifications à ce fichier. editor.delete_this_file=Supprimer le fichier editor.must_have_write_access=Vous devez avoir un accès en écriture pour appliquer ou proposer des modifications à ce fichier. editor.file_delete_success=Le fichier "%s" a été supprimé. @@ -1361,7 +1361,7 @@ projects.deletion=Supprimer le projet projects.deletion_desc=Supprimer un projet efface également de tous les tickets liés. Voulez vous continuer ? projects.deletion_success=Le projet a été supprimé. projects.edit=Modifier les projets -projects.edit_subheader=Les projets organisent les tickets et la progression. +projects.edit_subheader=Les projets organisent les issues et la progression. projects.modify=Modifier le projet projects.edit_success=Le projet "%s" a été mis à jour. projects.type.none=Aucun @@ -1415,10 +1415,10 @@ issues.new.no_reviewers=Sans évaluateur issues.choose.get_started=Démarrons issues.choose.open_external_link=Ouvrir issues.choose.blank=Par défaut -issues.choose.blank_about=Créer un ticket à partir du modèle par défaut. +issues.choose.blank_about=Créer une issue à partir du modèle par défaut. issues.choose.ignore_invalid_templates=Les modèles invalides ont été ignorés issues.choose.invalid_templates=%v modèle(s) invalide(s) trouvé(s) -issues.choose.invalid_config=La configuration du ticket contient des erreurs : +issues.choose.invalid_config=La configuration de l'issue contient des erreurs : issues.no_ref=Aucune branche/étiquette spécifiées issues.create=Créer un ticket issues.new_label=Nouveau label @@ -1470,7 +1470,7 @@ issues.filter_assginee_no_assignee=Aucun assigné issues.filter_poster=Auteur issues.filter_poster_no_select=Tous les auteurs issues.filter_type=Type -issues.filter_type.all_issues=Tous les tickets +issues.filter_type.all_issues=Toutes les issues issues.filter_type.assigned_to_you=Qui vous sont assignés issues.filter_type.created_by_you=Créés par vous issues.filter_type.mentioning_you=Vous mentionnant @@ -1487,8 +1487,8 @@ issues.filter_sort.nearduedate=Date d'échéance la plus proche issues.filter_sort.farduedate=Date d'échéance la plus éloignée issues.filter_sort.moststars=Favoris (décroissant) issues.filter_sort.feweststars=Favoris (croissant) -issues.filter_sort.mostforks=Bifurcations (décroissant) -issues.filter_sort.fewestforks=Bifurcations (croissant) +issues.filter_sort.mostforks=Forks (décroissant) +issues.filter_sort.fewestforks=Forks (croissant) issues.action_open=Ouvrir issues.action_close=Fermer issues.action_label=Label @@ -1515,7 +1515,7 @@ issues.commented_at=`a commenté %s.` issues.delete_comment_confirm=Êtes-vous certain de vouloir supprimer ce commentaire ? issues.context.copy_link=Copier le lien issues.context.quote_reply=Citer et répondre -issues.context.reference_issue=Référencer dans un nouveau ticket +issues.context.reference_issue=Référencer dans une nouvelle issue issues.context.edit=Éditer issues.context.delete=Supprimer issues.no_content=Sans contenu. @@ -1526,8 +1526,8 @@ issues.close_comment_issue=Fermer avec le commentaire issues.reopen_issue=Rouvrir issues.reopen_comment_issue=Réouvrir avec le commentaire issues.create_comment=Commenter -issues.closed_at=`a fermé ce ticket %s` -issues.reopened_at=`a rouvert ce ticket %s` +issues.closed_at=`a fermé cette issue %s` +issues.reopened_at=`a rouvert cette issue %s` issues.commit_ref_at=`a référencé ce ticket depuis une révision %s` issues.ref_issue_from=`a fait référence à ce ticket %[3]s %[1]s` issues.ref_pull_from=`a fait référence à cette demande d'ajout %[3]s %[1]s` @@ -1565,7 +1565,7 @@ issues.label_archive_tooltip=Les labels archivés sont par défaut exclus des su issues.label_exclusive_desc=Remarque : pour rendre des labels mutuellement exclusifs, préfixez leur nom d’une portée au format portée/label. issues.label_exclusive_warning=Tout label d'une portée en conflit sera retiré lors de la modification des labels d’un ticket ou d’une demande d’ajout. issues.label_count=%d labels -issues.label_open_issues=%d tickets ouverts +issues.label_open_issues=%d issues ouvertes issues.label_edit=Éditer issues.label_delete=Supprimer issues.label_modify=Modifier le label @@ -1582,7 +1582,7 @@ issues.attachment.download=`Cliquez pour télécharger « %s ».` issues.subscribe=S’abonner issues.unsubscribe=Se désabonner issues.unpin_issue=Désépingler le ticket -issues.max_pinned=Vous ne pouvez pas épingler plus de tickets +issues.max_pinned=Vous ne pouvez pas épingler plus d'issues issues.pin_comment=a épinglé ça %s issues.unpin_comment=a désépinglé ça %s issues.lock=Verrouiller la conversation @@ -1605,7 +1605,7 @@ issues.lock.title=Verrouiller la conversation issues.unlock.title=Déverrouiller la conversation issues.comment_on_locked=Vous ne pouvez pas commenter un ticket verrouillé. issues.delete=Supprimer -issues.delete.title=Supprimer ce ticket ? +issues.delete.title=Supprimer cette issue ? issues.delete.text=Voulez-vous vraiment supprimer ce ticket ? (Cette opération supprimera définitivement tout le contenu. Envisagez plutôt de le fermer si vous avez l'intention de l'archiver) issues.tracker=Minuteur issues.start_tracking_short=Démarrer le chronomètre @@ -1668,7 +1668,7 @@ issues.dependency.issue_remove_text=Cela supprimera la dépendance de ce ticket. issues.dependency.pr_remove_text=Cela supprimera la dépendance de cette demande d'ajout. Continuer ? issues.dependency.setting=Autoriser les dépendances pour les tickets et les demandes d'ajouts issues.dependency.add_error_same_issue=Vous ne pouvez pas faire dépendre un ticket de lui-même. -issues.dependency.add_error_dep_issue_not_exist=Le ticket dépendant n'existe pas. +issues.dependency.add_error_dep_issue_not_exist=L'issue dépendante n'existe pas. issues.dependency.add_error_dep_not_exist=La dépendance n'existe pas. issues.dependency.add_error_dep_exists=La dépendance existe déjà. issues.dependency.add_error_cannot_create_circular=Vous ne pouvez pas créer une dépendance avec deux tickets qui se bloquent l'un l'autre. @@ -1757,7 +1757,7 @@ pulls.cannot_merge_work_in_progress=Cette demande d’ajout est en chantier. pulls.still_in_progress=Toujours en cours ? pulls.add_prefix=Ajouter le préfixe %s pulls.remove_prefix=Enlever le préfixe %s -pulls.data_broken=Cette demande d’ajout est impossible par manque d'informations de bifurcation. +pulls.data_broken=Cette demande d’ajout est impossible par manque d'informations de fork. pulls.files_conflicted=Cette demande d'ajout contient des modifications en conflit avec la branche ciblée. pulls.is_checking=Vérification des conflits de fusion en cours. Réessayez dans quelques instants. pulls.is_ancestor=Cette branche est déjà présente dans la branche ciblée. Il n'y a rien à fusionner. @@ -1957,8 +1957,8 @@ activity.title.issues_n=%d tickets activity.title.issues_closed_from=%s fermé par %s activity.title.issues_created_by=%s créé par %s activity.closed_issue_label=Fermé -activity.new_issues_count_1=Nouveau ticket -activity.new_issues_count_n=Nouveaux tickets +activity.new_issues_count_1=Nouvelle issue +activity.new_issues_count_n=Nouvelles issues activity.new_issue_label=Ouvert activity.title.unresolved_conv_1=%d conversation non résolue activity.title.unresolved_conv_n=%d conversations non résolues @@ -2007,9 +2007,9 @@ settings.hooks=Webhooks settings.githooks=Git hooks settings.basic_settings=Paramètres de base settings.mirror_settings=Réglages miroir -settings.mirror_settings.docs=Configurez votre dépôt pour synchroniser automatiquement les révisions, étiquettes et branches avec un autre dépôt. -settings.mirror_settings.docs.disabled_pull_mirror.instructions=Configurez votre projet pour soumettre automatiquement les révisions, étiquettes et branches vers un autre dépôt. Les miroirs ont été désactivés par l'administrateur de votre site. -settings.mirror_settings.docs.disabled_push_mirror.instructions=Configurez votre projet pour synchroniser automatiquement les révisions, étiquettes et branches d'un autre dépôt. +settings.mirror_settings.docs=Configurez votre dépôt pour synchroniser automatiquement les révisions, tags et branches avec un autre dépôt. +settings.mirror_settings.docs.disabled_pull_mirror.instructions=Configurez votre projet pour soumettre automatiquement les révisions, tags et branches vers un autre dépôt. Les miroirs ont été désactivés par l'administrateur de votre site. +settings.mirror_settings.docs.disabled_push_mirror.instructions=Configurez votre projet pour synchroniser automatiquement les révisions, tags et branches d'un autre dépôt. settings.mirror_settings.docs.disabled_push_mirror.pull_mirror_warning=Pour l’instant, cela ne peut être fait que dans le menu « Nouvelle migration ». Pour plus d’informations, veuillez consulter : settings.mirror_settings.docs.disabled_push_mirror.info=Les miroirs push ont été désactivés par l’administrateur de votre site. settings.mirror_settings.docs.no_new_mirrors=Votre dépôt se synchronise avec un dépôt distant. Vous ne pouvez pas créer de nouveaux miroirs pour le moment. @@ -2045,15 +2045,15 @@ settings.use_external_wiki=Utiliser un wiki externe settings.external_wiki_url=URL wiki externe settings.external_wiki_url_error=L’URL du wiki externe n’est pas une URL valide. settings.external_wiki_url_desc=Les visiteurs sont redirigés vers l’URL du wiki externe lors d'un clic sur l’onglet wiki. -settings.issues_desc=Activer le suivi de tickets du dépôt -settings.use_internal_issue_tracker=Utiliser le suivi de tickets interne -settings.use_external_issue_tracker=Utiliser un système de suivi de tickets externe -settings.external_tracker_url=Adresse du système de tickets externe +settings.issues_desc=Activer le suivi d'issues du dépôt +settings.use_internal_issue_tracker=Utiliser le suivi d'issues interne +settings.use_external_issue_tracker=Utiliser un système de suivi d'issues externe +settings.external_tracker_url=Adresse du système d'issues externe settings.external_tracker_url_error=L’URL du système de suivi de tickets externe n’est pas une URL valide. settings.external_tracker_url_desc=Les visiteurs sont redirigés vers l’URL du système de suivi de tickets externe lors d'un clic sur l’onglet tickets. -settings.tracker_url_format=Format de l'URL du système de tickets +settings.tracker_url_format=Format de l'URL du système d'issues settings.tracker_url_format_error=L’URL du système de suivi de tickets externe n’est pas une URL valide. -settings.tracker_issue_style=Format du nombre de tickets du système de tickets externe +settings.tracker_issue_style=Format du nombre d'issues du système d'issues externe settings.tracker_issue_style.numeric=Numérique settings.tracker_issue_style.alphanumeric=Alphanumérique settings.tracker_issue_style.regexp=Expression régulière @@ -2089,10 +2089,10 @@ settings.convert_notices_1=Cette opération convertira le miroir en dépôt stan settings.convert_confirm=Convertir le dépôt settings.convert_succeed=Le miroir a été converti en dépôt standard. settings.convert_fork=Convertir en dépôt standard -settings.convert_fork_desc=Vous pouvez convertir cette bifurcation en dépôt standard. Cette action est irréversible. -settings.convert_fork_notices_1=Cette opération convertira la bifurcation en dépôt standard. Cette action est irréversible. +settings.convert_fork_desc=Vous pouvez convertir ce fork en dépôt standard. Cette action est irréversible. +settings.convert_fork_notices_1=Cette opération convertira le fork en dépôt standard. Cette action est irréversible. settings.convert_fork_confirm=Convertir le dépôt -settings.convert_fork_succeed=La bifurcation a été convertie en dépôt standard. +settings.convert_fork_succeed=Le fork a été converti en dépôt standard. settings.transfer.title=Changer de propriétaire settings.transfer.rejected=Le transfert du dépôt a été rejeté. settings.transfer.success=Le transfert du dépôt a réussi. @@ -2130,7 +2130,7 @@ settings.delete=Supprimer ce dépôt settings.delete_desc=Supprimer un dépôt est permanent et irréversible. settings.delete_notices_1=- Cette opération est irréversible. settings.delete_notices_2=- Cette opération supprimera définitivement le dépôt %s, y compris le code, les tickets, les commentaires, les données de wiki et les accès des collaborateurs. -settings.delete_notices_fork_1=- Les bifurcations de ce dépôt deviendront indépendants après suppression. +settings.delete_notices_fork_1=- Les forks de ce dépôt deviendront indépendants après suppression. settings.deletion_success=Le dépôt a été supprimé. settings.update_settings_success=Les options du dépôt ont été mises à jour. settings.update_settings_no_unit=Impossible de désactiver toutes les fonctionnalités d'un dépôt. Vous ne pourrez gère l'utiliser. @@ -2195,8 +2195,8 @@ settings.event_create=Création settings.event_create_desc=Branche ou étiquette créé. settings.event_delete=Suppression settings.event_delete_desc=Branche ou étiquette supprimée. -settings.event_fork=Bifurcation -settings.event_fork_desc=Dépôt bifurqué. +settings.event_fork=Fork +settings.event_fork_desc=Dépôt forké. settings.event_wiki=Wiki settings.event_wiki_desc=Page wiki créée, renommée, modifiée ou supprimée. settings.event_release=Publication @@ -2205,11 +2205,11 @@ settings.event_push=Soumission 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_header_issue=Événements d'issues settings.event_issues=Modification settings.event_issues_desc=Ticket ouvert, rouvert, fermé ou modifié. settings.event_issue_assign=Assigné -settings.event_issue_assign_desc=Ticket assigné ou dé-assigné. +settings.event_issue_assign_desc=Issue assignée ou dé-assignée. settings.event_issue_label=Étiqueté settings.event_issue_label_desc=Labels attribués ou retirés. settings.event_issue_milestone=Jalonné @@ -2351,9 +2351,9 @@ settings.edit_protected_branch=Éditer settings.protected_branch_required_rule_name=Nom de la règle requise settings.protected_branch_duplicate_rule_name=Il existe déjà une règle pour cet ensemble de branches settings.protected_branch_required_approvals_min=Le nombre de revues nécessaires ne peut être négatif. -settings.tags=Étiquettes -settings.tags.protection=Protection d'étiquette -settings.tags.protection.pattern=Motif d'étiquette +settings.tags=Tags +settings.tags.protection=Protection des tags +settings.tags.protection.pattern=Motif de tag settings.tags.protection.allowed=Autorisé settings.tags.protection.allowed.users=Utilisateurs autorisés settings.tags.protection.allowed.teams=Équipes autorisées @@ -2369,7 +2369,7 @@ settings.matrix.room_id=ID de la salle settings.matrix.message_type=Type de message settings.archive.button=Archiver ce dépôt settings.archive.header=Archiver ce dépôt -settings.archive.text=Archiver un dépôt le place en lecture seule et le cache des tableaux de bord. Personne ne pourra faire de nouvelles révisions, d'ouvrir des tickets ou des demandes d'ajouts (pas même vous !). +settings.archive.text=Archiver un dépôt le place en lecture seule et le cache des tableaux de bord. Personne ne pourra faire de nouvelles révisions, d'ouvrir des tickets ou des demandes d'ajouts (pas même vous !). Il est recommandé de documenter la raison de l'archivage afin d'orienter les futurs développeurs susceptibles de forker le dépôt. settings.archive.success=Ce dépôt a été archivé avec succès. settings.archive.error=Une erreur s'est produite lors de l'archivage du dépôt. Voir le journal pour plus de détails. settings.archive.error_ismirror=Vous ne pouvez pas archiver un dépôt en miroir. @@ -2578,7 +2578,7 @@ object_format = Format de l'objet editor.invalid_commit_mail = Courriel invalide pour la création d'un commit. commits.browse_further = Continuer la navigation commits.renamed_from = Renommé depuis %s -pulls.nothing_to_compare_have_tag = La branche/tag sélectionné sont identiques. +pulls.nothing_to_compare_have_tag = Les branches/tags sélectionnés sont identiques. issues.blocked_by_user = Vous ne pouvez pas créer de tickets sur ce dépôt car vous avez été bloqué par son propriétaire. pulls.blocked_by_user = Vous ne pouvez pas créer une pull request sur ce dépôt car vous êtes bloqué par son propriétaire. wiki.cancel = Annuler @@ -2607,7 +2607,7 @@ activity.navbar.code_frequency = Fréquence de code activity.navbar.recent_commits = Commits récents file_follow = Suivre le lien symbolique settings.confirmation_string = Chaine de confirmation -pulls.agit_explanation = Créé par le workflow AGit. AGit permet aux contributeurs de proposer des modifications en utilisant "git push" sans créer une bifurcation ou une nouvelle branche. +pulls.agit_explanation = Créé par le workflow AGit. AGit permet aux contributeurs de proposer des modifications en utilisant "git push" sans créer un fork ou une nouvelle branche. stars = Étoiles editor.commit_id_not_matching = Le fichier a été modifié pendant que vous l'éditiez. Appliquez les modifications à une nouvelle branche puis procédez à la fusion. commits.search_branch = Cette branche @@ -2880,78 +2880,14 @@ last_page=Dernière total=Total : %d settings=Paramètres administrateur -dashboard.new_version_hint=Forgejo %s est maintenant disponible, vous utilisez %s. Consultez le blog pour plus de détails. -dashboard.statistic=Résumé -dashboard.operations=Opérations de maintenance -dashboard.system_status=État du système -dashboard.operation_name=Nom de l'Opération -dashboard.operation_switch=Basculer -dashboard.operation_run=Exécuter dashboard.clean_unbind_oauth=Effacer les connexions OAuth associées dashboard.clean_unbind_oauth_success=Toutes les connexions OAuth associées ont été supprimées. -dashboard.task.started=Tâche démarrée : %[1]s -dashboard.task.process=Tâche : %[1]s -dashboard.task.cancelled=Tâche %[1]s annulée : %[3]s -dashboard.task.error=Erreur dans la tâche : %[1]s : %[3]s -dashboard.task.finished=Tâche : %[1]s démarrée par %[2]s est terminée -dashboard.task.unknown=Tâche inconnue : %[1]s -dashboard.cron.started=Tâche planifiée démarrée : %[1]s -dashboard.cron.process=Tâche récurrente : %[1]s -dashboard.cron.cancelled=Tâche récurrente %[1]s annulée : %[3]s -dashboard.cron.error=Erreur dans la tâche récurrente %s : %[3]s -dashboard.cron.finished=Tâche récurrente %[1]s terminée dashboard.delete_inactive_accounts=Supprimer tous les comptes non actifs -dashboard.delete_inactive_accounts.started=Tâche de suppression de tous les comptes inactifs démarrée. dashboard.delete_repo_archives=Supprimer toutes les archives des dépôts (ZIP, TAR.GZ, etc..) -dashboard.delete_repo_archives.started=Tâche de suppression de toutes les archives de dépôts démarrée. dashboard.delete_missing_repos=Supprimer tous les dépôts dont les fichiers Git sont manquants -dashboard.delete_missing_repos.started=Tâche de suppression de tous les dépôts sans fichiers Git démarrée. -dashboard.delete_generated_repository_avatars=Supprimer les avatars de dépôt générés -dashboard.sync_repo_branches=Synchroniser les branches manquantes depuis Git vers la base de donnée -dashboard.sync_repo_tags = Synchroniser les étiquettes depuis Git vers la base de donnée -dashboard.update_mirrors=Actualiser les miroirs -dashboard.repo_health_check=Vérifier l'état de santé de tous les dépôts -dashboard.check_repo_stats=Voir les statistiques de tous les dépôts -dashboard.archive_cleanup=Supprimer les archives des vieux dépôts -dashboard.deleted_branches_cleanup=Nettoyer les branches supprimées -dashboard.update_migration_poster_id=Actualiser les ID des affiches de migration -dashboard.git_gc_repos=Exécuter le ramasse-miette des dépôts -dashboard.resync_all_sshkeys=Mettre à jour le fichier « ssh/authorized_keys » avec les clés SSH Forgejo. -dashboard.resync_all_sshprincipals=Mettre à jour le fichier « .ssh/authorized_principals » avec les principaux de Forgejo SSH. -dashboard.resync_all_hooks=Re-synchroniser les déclencheurs Git de tous les dépôts (pre-receive, update, post-receive, proc-receive, ...) -dashboard.reinit_missing_repos=Réinitialiser tous les dépôts Git manquants pour lesquels un enregistrement existe -dashboard.sync_external_users=Synchroniser les données de l’utilisateur externe -dashboard.cleanup_hook_task_table=Nettoyer la table hook_task -dashboard.cleanup_packages=Nettoyer des paquets expirés -dashboard.cleanup_actions=Nettoyer les journaux et les artefacts des actions obsolètes dashboard.delete_old_actions=Supprimer toutes les anciennes activités de la base de données -dashboard.delete_old_actions.started=Suppression de toutes les anciennes activités de la base de données démarrée. -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 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 = La synchronisation des étiquettes a commencé -dashboard.rebuild_issue_indexer=Reconstruire l’indexeur des tickets - users.user_manage_panel=Gestion du compte utilisateur users.new_account=Créer un compte -users.name=Nom d'utilisateur -users.full_name=Nom complet -users.activated=Activé -users.admin=Administrateur -users.restricted=Restreint -users.reserved=Réservé -users.bot=Robot -users.remote=Distant -users.2fa=2FA -users.repos=Dépôts -users.created=Créés -users.last_login=Dernière connexion -users.never_login=Jamais connecté users.send_register_notify=Informer de l'inscription par courriel users.new_success=Le compte "%s" a bien été créé. users.edit=Éditer @@ -2997,35 +2933,13 @@ emails.change_email_header=Mettre à jour les propriétés du courriel emails.change_email_text=Êtes-vous sûr de vouloir mettre à jour cette adresse courriel ? orgs.org_manage_panel=Gestion des organisations -orgs.name=Nom -orgs.teams=Équipes -orgs.members=Membres -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.owner=Propriétaire -repos.name=Nom repos.private=Privé -repos.issues=Tickets -repos.size=Taille -repos.lfs_size=Taille LFS - packages.package_manage_panel=Gestion des paquets -packages.total_size=Taille totale : %s -packages.unreferenced_size=Taille non référencée : %s packages.cleanup=Purger les données expirées packages.cleanup.success=Les données expirées ont été nettoyées avec succès -packages.owner=Propriétaire -packages.creator=Créateur -packages.name=Nom -packages.version=Version -packages.type=Type -packages.repository=Dépôt -packages.size=Taille -packages.published=Publiés - defaulthooks=Déclencheurs web par défaut defaulthooks.desc=Les webhooks font automatiquement des requêtes POST HTTP à un serveur spécifié lorsque certains événements Forgejo se déclenchent. Ceux créés ici sont par défaut copiés sur tous les nouveaux dépôts. Pour plus d'information, consultez le guide des webhooks. defaulthooks.add_webhook=Ajouter un déclencheur web par défaut @@ -3154,7 +3068,6 @@ config.offline_mode=Mode hors-ligne config.disable_router_log=Désactiver la journalisation du routeur config.run_user=Exécuter avec l'utilisateur config.run_mode=Mode d’exécution -config.git_version=Version de Git config.app_data_path=Chemin des données d'application config.repo_root_path=Emplacement des Dépôts config.lfs_root_path=Répertoire racine LFS @@ -3162,32 +3075,11 @@ config.log_file_root_path=Chemin des fichiers logs config.script_type=Type de script config.reverse_auth_user=Annuler l'authentification par proxy de l'utilisateur -config.ssh_config=Configuration SSH -config.ssh_enabled=Activé -config.ssh_start_builtin_server=Utiliser le serveur incorporé -config.ssh_domain=Domaine du serveur SSH -config.ssh_port=Port -config.ssh_listen_port=Port d'écoute -config.ssh_root_path=Emplacement racine -config.ssh_key_test_path=Chemin de test des clés -config.ssh_keygen_path=Chemin vers le générateur de clefs ("ssh-keygen") -config.ssh_minimum_key_size_check=Vérification de la longueur de clé minimale -config.ssh_minimum_key_sizes=Tailles de clé minimales - config.lfs_config=Configuration LFS config.lfs_enabled=Activé config.lfs_content_path=Chemin du contenu LFS config.lfs_http_auth_expiry=Expiration de l'authentification HTTP LFS -config.db_config=Configuration de la base de données -config.db_type=Type -config.db_host=Hôte -config.db_name=Nom -config.db_user=Nom d'utilisateur -config.db_schema=Schéma -config.db_ssl_mode=SSL -config.db_path=Emplacement - config.service_config=Configuration du service config.register_email_confirm=Exiger la confirmation de l'e-mail lors de l'inscription config.disable_register=Désactiver le formulaire d'inscription @@ -3209,26 +3101,13 @@ config.allow_dots_in_usernames = Les points sont autorisés dans les noms d'util config.default_allow_only_contributors_to_track_time=Restreindre le suivi de temps aux contributeurs config.no_reply_address=Domaine pour les courriels cachés config.default_visibility_organization=Visibilité par défaut des nouvelles organisations -config.default_enable_dependencies=Activer les dépendances pour les tickets par défaut +config.default_enable_dependencies=Activer les dépendances pour les issues par défaut config.webhook_config=Configuration des déclencheurs config.queue_length=Longueur de la file d'attente config.deliver_timeout=Expiration d'envoi config.skip_tls_verify=Passer la vérification TLS -config.mailer_config=Configuration du service SMTP -config.mailer_enabled=Activé -config.mailer_enable_helo=Activer HELO -config.mailer_name=Nom -config.mailer_protocol=Protocole -config.mailer_smtp_addr=Adresse SMTP -config.mailer_smtp_port=Port SMTP -config.mailer_user=Utilisateur -config.mailer_use_sendmail=Utiliser Sendmail -config.mailer_sendmail_path=Chemin d’accès à Sendmail -config.mailer_sendmail_args=Arguments supplémentaires pour Sendmail -config.mailer_sendmail_timeout=Délai d’attente de Sendmail -config.mailer_use_dummy=Factice config.test_email_placeholder=E-mail (ex : test@example.com) config.send_test_mail=Envoyer un courriel de test config.send_test_mail_submit=Envoyer @@ -3258,18 +3137,6 @@ config.picture_service=Service d'imagerie config.disable_gravatar=Désactiver Gravatar config.enable_federated_avatar=Activer les avatars fédérés -config.git_config=Configuration de Git -config.git_disable_diff_highlight=Désactiver la surbrillance syntaxique de diff -config.git_max_diff_lines=Lignes de diff Max (pour un seul fichier) -config.git_max_diff_line_characters=Nombre max de caractères de diff (pour une seule ligne) -config.git_max_diff_files=Nombre max de fichiers de diff (à afficher) -config.git_gc_args=Arguments de GC -config.git_migrate_timeout=Délai imparti pour une migration -config.git_mirror_timeout=Délai imparti pour mettre à jour le miroir -config.git_clone_timeout=Délai imparti pour l'opération "clone" -config.git_pull_timeout=Délai imparti pour l'opération "Pull" -config.git_gc_timeout=Délai imparti pour l'opération "GC" - config.log_config=Configuration du journal config.logger_name_fmt=Logger : %s config.disabled_logger=Désactivé @@ -3346,13 +3213,13 @@ monitor.duration = Durée (s) create_repo=a créé le dépôt %s rename_repo=a rebaptisé le dépôt %[1]s en %[3]s commit_repo=a soumis sur %[3]s dans %[4]s -create_issue=`a ouvert le ticket %[3]s#%[2]s` -close_issue=`a fermé le ticket %[3]s#%[2]s` -reopen_issue=`a rouvert le ticket %[3]s#%[2]s` +create_issue=`a ouvert l'issue %[3]s#%[2]s` +close_issue=`a fermé l'issue %[3]s#%[2]s` +reopen_issue=`a rouvert l'issue %[3]s#%[2]s` create_pull_request=`a créé la demande d’ajout %[3]s#%[2]s` close_pull_request=`a fermé la demande d’ajout %[3]s#%[2]s` reopen_pull_request=`a rouvert la demande d’ajout %[3]s#%[2]s` -comment_issue=`a commenté le ticket %[3]s#%[2]s` +comment_issue=`a commenté l'issue %[3]s#%[2]s` comment_pull=`a commenté la demande d’ajout %[3]s#%[2]s` merge_pull_request=`a fusionné la demande d’ajout %[3]s#%[2]s` auto_merge_pull_request=`a fusionné automatiquement la demande d’ajout %[3]s#%[2]s` @@ -3440,7 +3307,7 @@ workflow.enable=Activer le workflow workflow.enable_success=Le workflow « %s » a bien été activé. workflow.disabled=Le flux de travail est désactivé. -need_approval_desc=Besoin d’approbation pour exécuter des flux de travail pour une demande d’ajout de bifurcation. +need_approval_desc=Besoin d’approbation pour exécuter des flux de travail pour une pull request de fork. variables.id_not_exist = La variable numéro %d n’existe pas. workflow.dispatch.use_from = Utiliser un workflow depuis @@ -3490,10 +3357,10 @@ branch_kind = Chercher les branches… commit_kind = Chercher les commits… exact = Exact exact_tooltip = Inclure uniquement les résultats qui correspondent exactement au terme recherché -issue_kind = Rechercher dans les tickets… +issue_kind = Rechercher dans les issues… 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… +pull_kind = Rechercher dans les pull requests… regexp_tooltip = Interpréter le terme de recherche comme une expression régulière regexp = RegExp diff --git a/options/locale/locale_fr_CA.ini b/options/locale/locale_fr_CA.ini new file mode 100644 index 0000000000..7737605e28 --- /dev/null +++ b/options/locale/locale_fr_CA.ini @@ -0,0 +1,3393 @@ +[common] +home=Accueil +dashboard=Tableau de bord +explore=Explorer +help=Aide +logo=Logo +sign_in=Connexion +sign_in_with_provider=Se connecter avec %s +sign_in_or=ou +sign_out=Déconnexion +sign_up=S'inscrire +link_account=Lier un compte +register=S'inscrire +version=Version +powered_by=Propulsé par %s +page=Page +template=Modèle +language=Langue +notifications=Notifications +active_stopwatch=Suivi du temps actif +tracked_time_summary=Résumé du pointage d’après les filtres de la liste des tickets +create_new=Créer… +user_profile_and_more=Profil et réglages… +signed_in_as=Connecté en tant que +enable_javascript=Ce site Web nécessite JavaScript. +toc=Sommaire +licenses=Licences +return_to_forgejo=Revenir à Forgejo + +username=Nom d'utilisateur +email=Courriel +password=Mot de passe +access_token=Jeton d’accès +re_type=Confirmez le mot de passe +captcha=CAPTCHA +twofa=Authentification à deux facteurs +twofa_scratch=Code de secours pour l'authentification à deux facteurs +passcode=Code d'accès + +repository=Dépôt +organization=Organisation +mirror=Miroir +new_mirror=Nouveau miroir +new_fork=Nouvelle bifurcation +new_project=Nouveau projet +new_project_column=Nouvelle colonne +admin_panel=Administration du site +settings=Paramètres +your_profile=Profil +your_starred=Favoris +your_settings=Configuration + +all=Tous +sources=Sources +mirrors=Miroirs +collaborative=Collaboratif +forks=Bifurcations + +activities=Activités +pull_requests=Demandes d'ajout +issues=Tickets +milestones=Jalons + +ok=OK +cancel=Annuler +retry=Réessayez +rerun=Relancer +rerun_all=Relancer toutes les tâches +save=Enregistrer +add=Ajouter +add_all=Tout ajouter +remove=Supprimer +remove_all=Tout supprimer +remove_label_str=Supprimer l’élément « %s » +edit=Éditer +view=Voir + +enabled=Activé +disabled=Désactivé +locked=Verrouillée + +copy=Copier +copy_url=Copier l'URL +copy_hash=Copier le hach +copy_content=Copier le contenu +copy_branch=Copier le nom de la branche +copy_success=Copié ! +copy_error=Échec de la copie +copy_type_unsupported=Ce type de fichier ne peut pas être copié + +write=Écrire +preview=Aperçu +loading=Chargement… + +error=Erreur +error404=La page que vous essayez d'atteindre n'existe pas, a été supprimé ou vous n'êtes pas autorisé à la voir. +go_back=Retour + +never=Jamais +unknown=Inconnu + +rss_feed=Flux RSS + +pin=Épingler +unpin=Désépingler + +artifacts=Artefacts +confirm_delete_artifact = Êtes-vous certain de vouloir supprimer l'artefect "%s" ? +archived=Archivé + +concept_system_global=Global +concept_user_individual=Individuel +concept_code_repository=Dépôt +concept_user_organization=Organisation + +show_timestamps=Afficher les dates +show_log_seconds=Afficher les secondes +show_full_screen=Affichez en plein écran +download_logs=Télécharger les logs + +confirm_delete_selected=Êtes-vous sûr de vouloir supprimer tous les éléments sélectionnés ? + +name=Nom +value=Valeur +filter.clear = Effacer le filtre +filter.is_archived = Archivé +filter.not_archived = Non archivé +filter.is_fork = Bifurcations +filter.not_fork = Non bifurqué +filter.not_mirror = Non miroirs +filter.is_template = Modèles +filter.not_template = Non modèles +filter.public = Publique +filter.private = Privé +filter = Filtre +filter.is_mirror = Miroirs +toggle_menu = Menu va-et-vient +more_items = Plus d'éléments +invalid_data = Données invalides : %v +copy_generic = Copier dans le presse-papiers +test = Test +new_migrate.title = Nouvelle migration +new_org.title = Nouvelle organisation +new_repo.link = Nouveau dépôt +error413 = Votre quota est épuisé. +new_repo.title = Nouveau dépôt +new_migrate.link = Nouvelle migration +new_org.link = Nouvelle organisation +copy_path = Copier le chemin + +[aria] +navbar=Barre de navigation +footer=Pied de page +footer.software=À propos du logiciel +footer.links=Liens + +[heatmap] +number_of_contributions_in_the_last_12_months=%s contributions au cours des 12 derniers mois +contributions_zero=Aucune contribution +less=Moins +more=Plus +contributions_one = contribution +contributions_few = contributions +contributions_format = {contributions} le {day} {month} {year} + +[editor] +buttons.heading.tooltip=Ajouter un en-tête +buttons.bold.tooltip=Ajouter du texte en gras (Ctrl+B / ⌘B) +buttons.italic.tooltip=Ajouter du texte en italique (Ctrl+I / ⌘I) +buttons.quote.tooltip=Citer le texte +buttons.code.tooltip=Ajouter du code +buttons.link.tooltip=Ajouter un lien (Ctrl+K / ⌘K) +buttons.list.unordered.tooltip=Ajouter une liste à puces +buttons.list.ordered.tooltip=Ajouter une liste numérotée +buttons.list.task.tooltip=Ajouter une liste de tâches +buttons.mention.tooltip=Mentionner un utilisateur ou une équipe +buttons.ref.tooltip=Référencer un ticket ou demande d’ajout +buttons.switch_to_legacy.tooltip=Utiliser l’ancien éditeur à la place +buttons.enable_monospace_font=Activer la police à chasse fixe +buttons.disable_monospace_font=Désactiver la police à chasse fixe +buttons.indent.tooltip = Indenter les éléments d'un niveau +buttons.unindent.tooltip = Supprimer un niveau d'indentation +buttons.new_table.tooltip = Ajouter une table +table_modal.header = Ajouter une table +table_modal.placeholder.header = Entête +table_modal.placeholder.content = Contenu +table_modal.label.rows = Lignes +table_modal.label.columns = Colonnes +link_modal.header = Ajouter un lien +link_modal.url = Url +link_modal.description = Description +link_modal.paste_reminder = Indice : avec une URL dans votre clipboard, vous pouvez copier directement dans l'éditeur pour créer un lien. + +[filter] +string.asc=A - Z +string.desc=Z - A + +[error] +occurred=Une erreur s’est produite +report_message=Si vous pensez qu'il s'agit d'un bug Forgejo, veuillez consulter les tickets de Codeberg ou ouvrir un nouveau ticket si nécessaire. +not_found=La cible n'a pu être trouvée. +network_error=Erreur réseau +server_internal = Erreur interne du serveur + +[startpage] +app_desc=Un service Git auto-hébergé sans prise de tête +install=Facile à installer +install_desc=Il suffit de lancer l’exécutable adapté à votre plateforme, le déployer avec Docker ou de l’installer depuis un gestionnaire de paquet. +platform=Multi-plateforme +platform_desc=Forgejo est confirmé fonctionner sur des systèmes d'exploitation libres comme Linux et FreeBSD, ainsi que différentes architectures CPU. Choisissez ce que vous préférez ! +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 Forgejo ! Rejoignez-nous et contribuez à rendre ce projet encore meilleur. Ne craignez pas de devenir un·e contributeur·trice ! + +[install] +install=Installation +title=Configuration initiale +docker_helper=Si vous exécutez Forgejo dans Docker, veuillez lire la documentation avant de modifier les paramètres. +require_db_desc=Forgejo nécessite MySQL, PostgreSQL, SQLite3 ou TiDB (avec le protocole MySQL). +db_title=Paramètres de la base de données +db_type=Type de base de données +host=Hôte +user=Nom d'utilisateur +password=Mot de passe +db_name=Nom de base de données +db_schema=Schéma +db_schema_helper=Laisser vide pour la base de données par défaut ("public"). +ssl_mode=SSL +path=Emplacement +sqlite_helper=Chemin d'accès pour la base de données SQLite3.
Entrer un chemin absolu si vous exécutez Forgejo en tant que service. +reinstall_error=Vous essayez d'installer dans une base de données Forgejo existante +reinstall_confirm_message=La réinstallation avec une base de données Forgejo existante peut causer plusieurs problèmes. Dans la plupart des cas, vous devriez utiliser votre "app.ini" existant pour exécuter Forgejo. Si vous savez ce que vous faites, confirmez ce qui suit : +reinstall_confirm_check_1=Les données chiffrées par la clé SECRET_KEY dans l'application peuvent être perdu : les utilisateurs pourrait ne pas pouvoir se connecter avec 2FA/OTP et les miroirs pourrait ne pas fonctionner correctement. En cochant cette case, vous confirmez que le fichier app.ini actuel contient la bonne SECRET_KEY. +reinstall_confirm_check_2=Les dépôts et les paramètres peuvent avoir besoin d'être re-synchronisés. En cochant cette case, vous confirmez que vous resynchroniserez manuellement les liens des dépôts et du fichier authorized_keys. Vous confirmez que vous allez vous assurer que les paramètres du dépôt et du miroir sont corrects. +reinstall_confirm_check_3=Vous confirmez : vous êtes absolument certain que ce Forgejo fonctionne avec le bon emplacement de app.ini et vous êtes certain de devoir réinstaller. Vous confirmez également que vous avez pris connaissance des risques exposés ci-dessus. +err_empty_db_path=Le chemin de la base de données SQLite3 ne peut être vide. +no_admin_and_disable_registration=Vous ne pouvez pas désactiver la création de nouveaux utilisateurs avant d'avoir créé un compte administrateur. +err_empty_admin_password=Le mot de passe administrateur ne peut pas être vide. +err_empty_admin_email=L’adresse courriel de l'administrateur ne peut être vide. +err_admin_name_is_reserved=Le nom d'utilisateur de l'administrateur est invalide, le nom d'utilisateur est réservé +err_admin_name_pattern_not_allowed=Le nom d'utilisateur de l'administrateur est invalide, le nom d'utilisateur est réservé +err_admin_name_is_invalid=Le nom d'utilisateur de l'administrateur est invalide + +general_title=Configuration générale +app_name=Titre du site +app_name_helper=Entrez ici le nom de votre instance. Il sera affiché sur chaque page. +repo_path=Emplacement racine des dépôts +repo_path_helper=Les dépôts Git distants seront stockés dans ce répertoire. +lfs_path=Répertoire racine Git LFS +lfs_path_helper=Les fichiers suivis par Git LFS seront stockés dans ce dossier. Laissez vide pour désactiver LFS. +run_user=Exécuter avec le compte d'un autre utilisateur +run_user_helper=Le nom d'utilisateur du système d'exploitation sous lequel Forgejo fonctionne. Notez que cet utilisateur doit avoir accès au dossier racine du dépôt. +domain=Domaine du serveur +domain_helper=Domaine ou adresse d'hôte pour le serveur. +ssh_port=Port du serveur SSH +ssh_port_helper=Port d'écoute du serveur SSH. Laissez le vide pour le désactiver. +http_port=Port d'écoute HTTP de Forgejo +http_port_helper=Port sur lequel le serveur web Forgejo attendra des requêtes. +app_url=URL de base +app_url_helper=Adresse HTTP(S) de base pour les clones git et les notifications par courriel. +log_root_path=Chemin des journaux +log_root_path_helper=Les fichiers de journalisation seront écrits dans ce répertoire. + +optional_title=Paramètres facultatifs +email_title=Paramètres de messagerie +smtp_addr=Hôte SMTP +smtp_port=Port SMTP +smtp_from=Envoyer les courriels en tant que +smtp_from_helper=Adresse courriel utilisée par Forgejo. Utilisez directement votre adresse ou la forme « Nom  ». +mailer_user=Utilisateur SMTP +mailer_password=Mot de passe SMTP +register_confirm=Exiger la confirmation du courriel lors de l'inscription +mail_notify=Activer les notifications par courriel +server_service_title=Paramètres serveur et tierce parties +offline_mode=Activer le mode hors-ligne +offline_mode.description=Désactiver l'utilisation de CDNs, et servir toutes les ressources localement. +disable_gravatar=Désactiver Gravatar +disable_gravatar.description=Désactiver Gravatar et les autres sources d'avatars tierces. Un avatar par défaut sera utilisé pour les utilisateurs n'ayant pas téléversé un avatar personnalisé. +federated_avatar_lookup=Activer les avatars fédérés +federated_avatar_lookup.description=Activer la recherche d'avatars en utilisant Libravatar. +disable_registration=Désactiver la création de compte +disable_registration.description=Seuls les administrateurs pourront créer de nouveaux comptes utilisateurs. Il est hautement recommandé de désactiver les inscriptions a moins que vous ayez l'intention de fournir une instance publiquement accessible et soyez prêt à gérer un grand nombre de comptes indésirables. +allow_only_external_registration.description=N'autoriser l'inscription qu'à partir des services externes. +openid_signin=Activer l'authentification OpenID +openid_signin.description=Activer l'authentification via OpenID. +openid_signup=Activer l'inscription OpenID +openid_signup.description=Activer l'inscription avec OpenID si le formulaire d'inscription est disponible. +enable_captcha=Activer le CAPTCHA d'inscription +enable_captcha.description=Demander un CAPTCHA aux utilisateurs qui créent des comptes. +require_sign_in_view=Exiger la connexion à un compte pour afficher les pages +require_sign_in_view.description=Limiter l’accès aux pages aux utilisateurs connectés. Les visiteurs ne verront que les pages de connexion et d’inscription. +admin_setting.description=La création d'un compte administrateur est facultative. Le premier utilisateur enregistré deviendra automatiquement un administrateur. +admin_title=Paramètres de compte administrateur +admin_name=Nom d’utilisateur administrateur +admin_password=Mot de passe +confirm_password=Confirmez le mot de passe +admin_email=Courriel +install_btn_confirm=Installer Forgejo +test_git_failed=Le test de la commande "git" a échoué : %v +sqlite3_not_available=Cette version de Forgejo ne supporte pas SQLite3. Veuillez télécharger la version binaire officielle de %s (pas la version "gobuild"). +invalid_db_setting=Les paramètres de la base de données sont invalides : %v +invalid_db_table=La table "%s" de la base de données est invalide : %v +invalid_repo_path=Le chemin racine du dépôt est invalide : %v +invalid_app_data_path=Le chemin des données de l'application est invalide : %v +run_user_not_match=Le nom d'utilisateur sous lequel Forgejo est configuré n'est pas le nom d'utilisateur actuel : %s -> %s +internal_token_failed=Impossible de générer le jeton interne : %v +secret_key_failed=Impossible de générer la clé secrète : %v +save_config_failed=L'enregistrement de la configuration %v a échoué +invalid_admin_setting=Paramètres du compte administrateur invalides : %v +invalid_log_root_path=Le répertoire des fichiers de journalisation est invalide : %v +default_keep_email_private=Masquer les adresses courriels par défaut +default_keep_email_private.description=Masquer par défaut les adresses courriels des nouveaux utilisateurs afin que cette information ne soient pas visible immédiatement après l'inscription. +default_allow_create_organization=Autoriser la création d'organisations par défaut +default_allow_create_organization.description=Permettre aux nouveaux comptes utilisateurs de créer des organisations par défaut. Lorsque cette option est désactivée, un administrateur devra donner la permission de créer des organisations aux nouveaux utilisateurs. +default_enable_timetracking=Activer le suivi de temps par défaut +default_enable_timetracking.description=Activer le suivi du temps pour les nouveaux dépôts par défaut. +no_reply_address=Domaine pour les courriels cachés +no_reply_address_helper=Nom de domaine pour les utilisateurs ayant une adresse courriel cachée. Par exemple, l’utilisateur « fred » sera associé à « fred@noreply.example.org » par Git si le domaine est « noreply.example.org ». +password_algorithm=Algorithme de hachage du mot de passe +invalid_password_algorithm=Algorithme de hachage du mot de passe invalide +password_algorithm_helper=Définissez l’algorithme de hachage du mot de passe. Les algorithmes ont des exigences et une résistance différentes. L’algorithme argon2 est bien sécurisé mais utilise beaucoup de mémoire et peut être inapproprié pour les systèmes limités en ressources. +enable_update_checker=Activer la vérification des mises-à-jour +env_config_keys=Configuration de l'environnement +env_config_keys_prompt=Les variables d'environnement suivantes seront également ajoutées à votre fichier de configuration : +enable_update_checker_helper_forgejo = Vérifie la disponibilité de nouvelles versions de Forgejo en interrogeant l'enregistrement DNS TXT de release.forgejo.org. +allow_dots_in_usernames = Les points sont autorisés dans les noms d'utilisateurs. Sans effet sur les comptes existants. +smtp_from_invalid = L'adresse "Envoyer un courriel en tant que" est invalide +config_location_hint = Ces options de configuration seront sauvegardées dans : +app_slogan = Slogan de l'instance +app_slogan_helper = Entrez le slogan de l'instance ici. En son absence il sera désactivé. +allow_only_external_registration = Utiliser uniquement l'enregistrement via un service externe + +[home] +uname_holder=Nom d’utilisateur ou adresse courriel +switch_dashboard_context=Basculer le contexte du tableau de bord +my_repos=Dépôts +my_orgs=Organisations +view_home=Voir %s +filter=Autres filtres +filter_by_team_repositories=Dépôts filtrés par équipe +feed_of=Flux de « %s » + +show_archived=Archivé +show_both_archived_unarchived=Afficher à la fois archivé et non archivé +show_only_archived=Afficher uniquement les archivés +show_only_unarchived=Afficher uniquement les non archivés + +show_private=Privé +show_both_private_public=Afficher les publics et privés +show_only_private=Afficher uniquement les privés +show_only_public=Afficher uniquement les publics + +issues.in_your_repos=Dans vos dépôts + +[explore] +repos=Dépôts +users=Utilisateurs +organizations=Organisations +go_to=Atteindre +code=Code +code_last_indexed_at=Dernière indexation %s +relevant_repositories_tooltip=Les dépôts qui sont des forks ou qui n'ont aucun sujet, aucune icône et aucune description sont cachés. +relevant_repositories=Seuls les dépôts pertinents sont affichés, afficher les résultats non filtrés. + +[auth] +create_new_account=Créer un compte +disable_register_prompt=Les inscriptions sont désactivées. Veuillez contacter l'administrateur du site. +disable_register_mail=La confirmation par courriel à l’inscription est désactivée. +manual_activation_only=Contactez l'administrateur de votre site pour terminer l'activation. +remember_me=Mémoriser cet appareil +forgot_password_title=Mot de passe oublié +forgot_password=Mot de passe oublié ? +sign_up_successful=Le compte a été créé avec succès. Bienvenue ! +confirmation_mail_sent_prompt=Un nouveau mail de confirmation a été envoyé à %s. Pour terminer votre enregistrement, veuillez vérifier votre boîte de réception dans les prochaines %s . Si le courriel est incorrect, vous pouvez vous connecter et demander l'envoi d'un autre courriel de confirmation à une différente adresse. +must_change_password=Réinitialisez votre mot de passe +allow_password_change=Demande à l'utilisateur de changer son mot de passe (recommandé) +reset_password_mail_sent_prompt=Un mail de confirmation a été envoyé à %s. Veuillez vérifier votre boîte de réception dans les prochaines %s pour terminer la procédure de récupération du compte. +active_your_account=Activer votre compte +account_activated=Le compte a été activé +prohibit_login=Le compte est suspendu +prohibit_login_desc=Votre compte a été suspendu et ne peut interagir avec cette instance. Contactez l'administrateur de l'instance pour y avoir accès. +resent_limit_prompt=Désolé, vous avez récemment demandé un courriel d'activation. Veuillez réessayer dans 3 minutes. +has_unconfirmed_mail=Bonjour %s, votre adresse courriel (%s) n’a pas été confirmée. Si vous n’avez reçu aucun mail de confirmation ou souhaitez renouveler l’envoi, cliquez sur le bouton ci-dessous. +resend_mail=Cliquez ici pour renvoyer un mail de confirmation +send_reset_mail=Envoyer un courriel de récupération du compte +reset_password=Récupération du compte +invalid_code=Votre code de confirmation est invalide ou a expiré. +invalid_code_forgot_password=Votre code de confirmation est invalide ou a expiré. Cliquez ici pour démarrer une nouvelle session. +invalid_password=Votre mot de passe ne correspond pas à celui utilisé pour créer le compte. +reset_password_helper=Récupérer un compte +reset_password_wrong_user=Vous êtes connecté en tant que %s, mais le lien de récupération est pour %s +password_too_short=Le mot de passe doit contenir %d caractères minimum. +non_local_account=Les mots de passes des comptes utilisateurs externes ne peuvent pas être modifiées depuis l'interface web Forgejo. +verify=Vérifier +scratch_code=Code de secours +use_scratch_code=Utiliser un code de secours +twofa_scratch_used=Vous avez utilisé votre code de secours. Vous avez été redirigé vers cette page de configuration afin de supprimer l'authentification à deux facteurs de votre appareil ou afin de générer un nouveau code de secours. +twofa_passcode_incorrect=Votre code d’accès n’est pas correct. Si vous avez égaré votre appareil, utilisez votre code de secours pour vous connecter. +twofa_scratch_token_incorrect=Votre code de secours est incorrect. +login_userpass=Connexion +oauth_signup_tab=Créer un compte +oauth_signup_title=Compléter le nouveau compte +oauth_signup_submit=Finaliser la création du compte +oauth_signin_tab=Lier à un compte existant +oauth_signin_title=Connectez-vous pour autoriser le compte lié +oauth_signin_submit=Lier un compte +oauth.signin.error=Une erreur s'est produite lors du traitement de la demande d'autorisation. Si cette erreur persiste, veuillez contacter l'administrateur du site. +oauth.signin.error.access_denied=La demande d'autorisation a été refusée. +oauth.signin.error.temporarily_unavailable=L'autorisation a échoué car le serveur d'authentification est temporairement indisponible. Veuillez réessayer plus tard. +openid_connect_submit=Se connecter +openid_connect_title=Se connecter à un compte existant +openid_connect_desc=L'URI OpenID choisie est inconnue. Associez-le à un nouveau compte ici. +openid_register_title=Créer un nouveau compte +openid_register_desc=L'URI OpenID choisie est inconnue. Associez-le à un nouveau compte ici. +openid_signin_desc=Entrez l'URI de votre OpenID. Par exemple : alice.openid.example.org ou https://openid.example.org/alice. +disable_forgot_password_mail=La récupération du compte est désactivée car aucune adresse courriel n’est configurée. Veuillez contacter l'administrateur de votre site. +disable_forgot_password_mail_admin=La récupération du compte est disponible uniquement lorsque l’adresse courriel est configurée. Veuillez configurer l’adresse courriel pour activer la récupération du compte. +email_domain_blacklisted=Vous ne pouvez pas vous enregistrer avec votre adresse courriel. +authorize_application=Autoriser l'application +authorize_redirect_notice=Vous serez redirigé vers %s si vous autorisez cette application. +authorize_application_created_by=Cette application a été créée par %s. +authorize_application_description=Si vous accordez l'accès, il sera en mesure d'accéder et d'écrire toutes les informations de votre compte, y compris les dépôts privés et les organisations. +authorize_title=Autoriser "%s" à accéder à votre compte ? +authorization_failed=L’autorisation a échoué +authorization_failed_desc=L'autorisation a échoué car nous avons détecté une demande incorrecte. Veuillez contacter le responsable de l'application que vous avez essayé d'autoriser. +password_pwned=Le mot de passe que vous avez choisi se trouve sur la liste des mots de passe ayant fuité sur internet. Veuillez réessayer avec un mot de passe différent et considérer remplacer ce mot de passe si vous l'utilisez ailleurs. +password_pwned_err=Impossible d'envoyer la demande à HaveIBeenPwned +change_unconfirmed_email_error = Le courriel %v n'a pu être modifié +change_unconfirmed_email = Si vous avez donné un courriel incorrect à l'inscription, vous pouvez le changer ci-dessous. La confirmation sera envoyée à cette nouvelle adresse. +change_unconfirmed_email_summary = Modifier l'adresse à laquelle le courriel d'activation est envoyé. +last_admin = Vous ne pouvez pas supprimer le dernier compte administrateur. Il doit exister au moins un compte administrateur. +hint_register = Besoin d'un compte ? Enregistrez vous. +sign_up_button = Creation d'un compte. +hint_login = Vous avez déjà un compte ? Connectez vous maintenant ! +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 +use_onetime_code = Utiliser un code a usage unique + +[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 la barre de navigation de votre navigateur. +hi_user_x=Bonjour %s, + +activate_account=Veuillez activer votre compte +activate_account.text_1=Bonjour %[1]s, merci de votre inscription chez %[2]s ! +activate_account.text_2=Veuillez cliquer sur ce lien pour activer votre compte chez %s : + +activate_email=Veuillez vérifier votre adresse courriel +activate_email.text=Veuillez cliquer sur le lien suivant pour vérifier votre adresse courriel dans %s : + +register_notify=Bienvenue sur %s +register_notify.text_1=ceci est votre courriel de confirmation d'inscription pour %s ! +register_notify.text_2=Vous pouvez maintenant vous connecter avec le nom d'utilisateur : %s +register_notify.text_3=Si ce compte a été créé pour vous par une autre personne, veuillez définir votre mot de passe d'abord. + +reset_password=Récupérer votre compte +reset_password.text=Si cela vient de vous, veuillez cliquer sur le lien suivant pour récupérer votre compte dans %s : + +register_success=Inscription réussie + +issue_assigned.pull=@%[1]s vous a assigné à la demande d’ajout %[2]s dans le dépôt %[3]s. +issue_assigned.issue=@%[1]s vous a assigné le ticket %[2]s dans le dépôt %[3]s. + +issue.x_mentioned_you=@%s vous a mentionné : +issue.action.force_push=%[1]s a forcé %[2]s de %[3]s vers %[4]s. +issue.action.push_1=@%[1]s a soumis %[3]d révision sur %[2]s +issue.action.push_n=@%[1]s a soumis %[3]d révisions sur %[2]s +issue.action.close=@%[1]s a fermé #%[2]d. +issue.action.reopen=@%[1]s a rouvert #%[2]d. +issue.action.merge=@%[1]s a fusionné de #%[2]d vers %[3]s. +issue.action.approve=@%[1]s a approuvé cette demande d'ajout. +issue.action.reject=@%[1]s a demandé des modifications sur cette demande d'ajout. +issue.action.review=@%[1]s a commenté sur cette demande d'ajout. +issue.action.review_dismissed=@%[1]s a révoqué la dernière évaluation de %[2]s pour cette demande d'ajout. +issue.action.ready_for_review=La demande d’ajout de @%[1]s est prête à être évaluée. +issue.action.new=@%[1]s a créé #%[2]d. +issue.in_tree_path=Dans %s : + +release.new.subject=%s publiée dans %s +release.new.text=@%[1]s a publié [2]s dans %[3]s +release.title=Titre : %s +release.note=Remarque : +release.downloads=Téléchargements : +release.download.zip=Code source (ZIP) +release.download.targz=Code source (TAR.GZ) + +repo.transfer.subject_to=%s veut transférer "%s" à %s +repo.transfer.subject_to_you=`%s veut vous transférer le dépôt "%s"` +repo.transfer.to_you=vous +repo.transfer.body=Pour l'accepter ou le rejeter, visitez %s ou ignorez-le. + +repo.collaborator.added.subject=%s vous a ajouté en tant que collaborateur à %s +repo.collaborator.added.text=Vous avez été ajouté en tant que collaborateur du dépôt : + +team_invite.subject=%[1]s vous a invité à rejoindre l’organisation %[2]s +team_invite.text_1=%[1]s vous a invité à rejoindre l’équipe %[2]s dans l’organisation %[3]s. +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 n’attendiez pas cette invitation, vous pouvez ignorer ce courriel. +admin.new_user.user_info = Information à propos de l'utilisateur +admin.new_user.text = Veuillez cliquer ici afin de gérer l'utilisateur depuis la page d'administration. +admin.new_user.subject = L'utilisateur %s vient de créer un compte +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. 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 à l’origine 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 +no=Non +confirm=Confirmer +cancel=Annuler +modify=Mettre à jour + +[form] +UserName=Nom d'utilisateur +RepoName=Nom du dépôt +Email=Courriel +Password=Mot de passe +Retype=Confirmez le mot de passe +PayloadUrl=URL des données utiles +TeamName=Nom de l'équipe +AuthName=Nom d'autorisation +AdminEmail=Courriel de l’administrateur + +NewBranchName=Nouveau nom de la branche +CommitSummary=Résumé de la révision +CommitMessage=Message de la révision +CommitChoice=Choix de la révision +TreeName=Chemin du fichier +Content=Contenu + +require_error=` ne peut être vide.` +alpha_dash_error=` ne peut contenir que des caractères alphanumériques, trait d'union « - » et tiret bas « _ ».` +alpha_dash_dot_error=` ne peut contenir que des caractères alphanumériques, trait d'union « - », tiret bas « _ » et point « . »` +git_ref_name_error=` n'est pas une référence Git correcte.` +size_error=` doit mesurer %s caractères exactement.` +min_size_error=` doit mesurer %s caractères au minimum.` +max_size_error=` doit mesurer %s caractères au maximum.` +email_error=` n’est pas une adresse courriel valide.` +url_error=`« %s » n'est pas une URL valide.` +include_error=` doit contenir "%s".` +glob_pattern_error=` a un motif glob invalide : %s.` +regex_pattern_error=` a un motif regex invalide : %s.` +username_error=` ne peut contenir que des caractères alphanumériques, trait d'union « - », tiret bas « _ » et point « . », ne peux commencer que par des caractères alphanumériques et avoir des symboles consécutifs.` +invalid_group_team_map_error=` a une cartographie invalide : %s` +unknown_error=Erreur inconnue : +captcha_incorrect=Le code CAPTCHA est incorrect. +password_not_match=Les mots de passe ne correspondent pas. +lang_select_error=Sélectionnez une langue dans la liste. + +username_been_taken=Le nom d'utilisateur est déjà pris. +username_change_not_local_user=Les utilisateurs non-locaux n'ont pas le droit de modifier leur nom d'utilisateur. +repo_name_been_taken=Ce nom de dépôt est déjà utilisé. +repository_force_private=Force Private est activé : les dépôts privés ne peuvent pas être rendus publics. +repository_files_already_exist=Les fichiers existent déjà pour ce dépôt. Contactez l'administrateur système. +repository_files_already_exist.adopt=Des fichiers existent déjà dans ce dépôt et ne peuvent être qu’adoptés. +repository_files_already_exist.delete=Des fichiers existent déjà pour ce dépôt. Vous devez les supprimer. +repository_files_already_exist.adopt_or_delete=Des fichiers existent déjà dans ce dépôt. Veuillez les adopter ou les supprimer. +visit_rate_limit=Le taux d'appel à distance autorisé a été dépassé. +2fa_auth_required=L'accès à distance requiert une authentification à deux facteurs. +org_name_been_taken=Ce nom d'organisation est déjà pris. +team_name_been_taken=Le nom d'équipe est déjà pris. +team_no_units_error=Autoriser l’accès à au moins une section du dépôt. +email_been_used=Cette adresse courriel est déjà utilisée. +email_invalid=Cette adresse courriel est invalide. +openid_been_used=Adresse OpenID "%s" déjà utilisée. +username_password_incorrect=Identifiant ou mot de passe invalide. +password_complexity=Le mot de passe ne respecte pas les exigences de complexité : +password_lowercase_one=Au moins un caractère minuscule +password_uppercase_one=Au moins un caractère majuscule +password_digit_one=Au moins un chiffre +password_special_one=Au moins un caractère spécial (ponctuation, parenthèses, guillemets, etc.) +enterred_invalid_repo_name=Le nom de dépôt saisi est incorrect. +enterred_invalid_org_name=Le nom de l'organisation que vous avez entré est incorrect. +enterred_invalid_owner_name=Le nom du nouveau propriétaire est invalide. +enterred_invalid_password=Le mot de passe saisi est incorrect. +user_not_exist=Cet utilisateur n'existe pas. +team_not_exist=L'équipe n'existe pas. +last_org_owner=Vous ne pouvez pas retirer le dernier utilisateur de l’équipe « propriétaires ». Il doit y avoir au moins un propriétaire dans chaque organisation. +cannot_add_org_to_team=Une organisation ne peut être ajoutée comme membre d'une équipe. +duplicate_invite_to_team=L'utilisateur a déjà été invité en tant que membre de l'équipe. +organization_leave_success=Vous avez quitté l'organisation %s avec succès. + +invalid_ssh_key=Impossible de vérifier votre clé SSH : %s +invalid_gpg_key=Impossible de vérifier votre clé GPG : %s +invalid_ssh_principal=Principal invalide : %s +must_use_public_key=La clé que vous avez fournie est une clé privée. Veuillez ne pas divulguer votre clé privée. Utilisez votre clé publique à la place. +unable_verify_ssh_key=Impossible de valider la clé SSH, vérifiez à nouveau s’il y a des erreurs. +auth_failed=Échec d'authentification : %v + +still_own_repo=Votre compte possède toujours un ou plusieurs dépôts, vous devez d’abord les supprimer ou les transférer. +still_has_org=Votre compte est un membre d’une ou plusieurs organisations, veuillez d’abord les quitter. +still_own_packages=Votre compte possède toujours un ou plusieurs paquets, vous devez d’abord les supprimer ou les transférer. +org_still_own_repo=Cette organisation possède encore un ou plusieurs dépôts. Vous devez d’abord les supprimer ou les transférer. +org_still_own_packages=Cette organisation possède encore un ou plusieurs paquets. Vous devez d’abord les supprimer. + +target_branch_not_exist=La branche cible n'existe pas. +username_error_no_dots = ` peut uniquement contenir des caractères alphanumériques ('0-9','a-z','A-Z'), tiret ('-') et souligné ('_'). Ne peut commencer ou terminer avec un caractère non-alphanumérique, et l'utilisation de caractères non-alphanumériques consécutifs n'est pas permise.` +admin_cannot_delete_self=Vous ne pouvez pas vous supprimer vous-même lorsque vous êtes admin. Veuillez d’abord supprimer vos privilèges d’administrateur. +unsupported_login_type = Ce type de compte ne peut être supprimé. +unset_password = L'utilisateur connecté n'a pas de mot de passe. +required_prefix = Le texte entré doit commencer par "%s" +AccessToken = Jeton d'accès +FullName = Nom complet +Description = Description +Pronouns = Pronoms +Biography = Biographie +Website = Site web +Location = Emplacement +To = Nom de la branche +email_domain_is_not_allowed = Le domaine %s du courriel utilisateur entre en conflit avec EMAIL_DOMAIN_ALLOWLIST ou EMAIL_DOMAIN_BLOCKLIST. Veuillez vous assurer le courriel est renseigné. +username_claiming_cooldown = Ce pseudonyme ne peut pas être pris, car la période de temporisation n'est pas encore terminée. Il pourra être réclamé dans %[1]s. + +[user] +change_avatar=Changer votre avatar… +joined_on=Inscrit le %s +repositories=Dépôts +activity=Activité publique +followers_few=%d abonnés +starred=Dépôts favoris +watched=Dépôts surveillés +code=Code +projects=Projets +overview=Vue d'ensemble +following_few=%d abonnements +follow=Suivre +unfollow=Ne plus suivre +user_bio=Biographie +disabled_public_activity=Cet utilisateur a désactivé la visibilité publique de l'activité. +email_visibility.limited=Votre adresse courriel est visible pour tous les utilisateurs authentifiés +show_on_map=Afficher ce lieu sur une carte +settings=Paramètres utilisateur + +form.name_reserved=Le nom d’utilisateur "%s" est réservé. +form.name_pattern_not_allowed=Le motif « %s » n’est pas autorisé dans un nom de d'utilisateur. +form.name_chars_not_allowed=Le nom d'utilisateur "%s" contient des caractères non valides. +block_user = Bloquer un utilisateur +block_user.detail = Veuillez noter que bloquer un utilisateur a des conséquences. En particulier : +block_user.detail_1 = Vous cesserez de vous suivre l'un et l'autre et ne pourrez plus vous suivre l'un et l'autre. +block_user.detail_2 = Cet utilisateur ne peut interagir avec vos dépôts, les tickets ou commentaires que vous avez créés. +block_user.detail_3 = Cet utilisateur ne peut pas vous ajouter l'un et l'autre en tant que collaborateur. +follow_blocked_user = Vous ne pouvez pas suivre cet utilisateur parce vous avez bloqué cet utilisateur ou bien cet utilisateur vous a bloqué. +block = Bloquer +unblock = Débloquer +following_one = Suit %d personnes +followers_one = %d abonné +public_activity.visibility_hint.self_public = Votre activité est visible de tous, a l'exception de vos interactions dans les espaces privés. Configurer. +public_activity.visibility_hint.admin_public = Cette activité est visible de tous mais, en tant qu'administrateur vous pouvez aussi voir les interactions dans les espaces privés. +public_activity.visibility_hint.self_private = Vous pouvez voir votre propre activité, ainsi que les administrateurs de l'instance. Configurer. +public_activity.visibility_hint.admin_private = Vous pouvez voir cette activité en tant qu'administrateur mais l'utilisateur veut qu'elle reste privée. +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. Configure. + +[settings] +profile=Profil +account=Compte +appearance=Apparence +password=Mot de passe +security=Sécurité +avatar=Avatar +ssh_gpg_keys=Clés SSH / GPG +applications=Applications +orgs=Organisations +repos=Dépôts +delete=Supprimer le compte +twofa=Authentification à deux facteurs (TOTP) +organization=Organisations +uid=UID +webauthn=Clés de sécurité à deux facteurs + +public_profile=Profil public +biography_placeholder=Parlez-nous un peu de vous ! (Markdown est supporté) +location_placeholder=Partagez votre position approximative avec d'autres personnes +profile_desc=À propos de vous +password_username_disabled=Les utilisateurs externes ne sont pas autorisés à modifier leur nom d'utilisateur. Veuillez contacter l'administrateur de votre site pour plus de détails. +full_name=Nom complet +website=Site Web +location=Localisation +update_theme=Appliquer le thème +update_profile=Modifier le profil +update_language=Appliquer la langue +update_language_not_found=La langue "%s" n'est pas disponible. +update_language_success=La langue a été mise à jour. +update_profile_success=Votre profil a été mis à jour. +change_username=Votre nom d'utilisateur a été modifié. +change_username_prompt=Remarque : La modification de votre nom d'utilisateur modifie également l'URL de votre compte. +change_username_redirect_prompt=L’ancien nom d'utilisateur redirigera vers le nouveau, jusqu’à ce qu'il soit réclamé. +continue=Continuer +cancel=Annuler +language=Langue +ui=Thème +hidden_comment_types=Catégories de commentaires masqués +hidden_comment_types_description=Cochez les catégories suivantes pour masquer les commentaires correspondants des fils d'activité. Par exemple, « Label » cache les commentaires du genre « Cerise a attribué le label Bug il y a 2 heures». +hidden_comment_types.ref_tooltip=Commentaires où ce ticket a été référencé sur un autre ticket/révision/… +hidden_comment_types.issue_ref_tooltip=Commentaires où l’utilisateur change la branche/étiquette associée au ticket +comment_type_group_reference=Référence +comment_type_group_label=Label +comment_type_group_milestone=Jalon +comment_type_group_assignee=Assigné à +comment_type_group_title=Titre +comment_type_group_branch=Branche +comment_type_group_time_tracking=Minuteur +comment_type_group_deadline=Échéance +comment_type_group_dependency=Dépendance +comment_type_group_lock=Verrouiller le statut +comment_type_group_review_request=Demande d’évaluation +comment_type_group_pull_request_push=Révisions ajoutées +comment_type_group_project=Projet +comment_type_group_issue_ref=Référence du ticket +saved_successfully=Vos paramètres ont été enregistrés avec succès. +privacy=Confidentialité +keep_activity_private=Masquer l'activité de la page de profil +lookup_avatar_by_mail=Rechercher un avatar par courriel +enable_custom_avatar=Utiliser un avatar personnalisé +choose_new_avatar=Sélectionner un nouvel avatar +update_avatar=Appliquer l’avatar +delete_current_avatar=Supprimer l'avatar actuel +uploaded_avatar_not_a_image=Le fichier téléchargé n'est pas une image. +uploaded_avatar_is_too_big=La taille du fichier téléversé (%d Kio) dépasse la taille maximale (%d Kio). +update_avatar_success=Votre avatar a été mis à jour. +update_user_avatar_success=L'avatar de l'utilisateur a été mis à jour. + +update_password=Modifier le mot de passe +old_password=Mot de passe actuel +new_password=Nouveau mot de passe +retype_new_password=Confirmer le nouveau mot de passe +password_incorrect=Le mot de passe actuel est incorrect. +change_password_success=Votre mot de passe a été mis à jour. Désormais, connectez-vous avec votre nouveau mot de passe. +password_change_disabled=Les mots de passes des comptes utilisateurs externes ne peuvent pas être modifiées depuis l'interface web Forgejo. + +manage_emails=Gérer les adresses courriels +manage_themes=Thème par défaut +manage_openid=Adresses OpenID +email_desc=Votre adresse courriel principale sera utilisée pour les notifications, la récupération de mot de passe et, à condition qu'elle ne soit pas cachée, les opérations Git basées sur le Web. +theme_desc=Ce thème sera utilisé pour l'interface web lorsque vous êtes authentifié. +primary=Principale +activated=Activé +requires_activation=Nécessite une activation +primary_email=Faire de cette adresse votre adresse principale +activate_email=Envoyer un courriel d'activation +activations_pending=Activations en attente +can_not_add_email_activations_pending=Il y a une activation en attente, réessayez dans quelques minutes si vous souhaitez ajouter un nouvel e-mail. +delete_email=Exclure +email_deletion=Supprimer l'adresse email +email_deletion_desc=L’adresse e-mail et les informations associées seront retirées de votre compte. Les révisions Git effectuées par cette adresse resteront inchangées. Continuer ? +email_deletion_success=L'adresse e-mail a été supprimée. +theme_update_success=Votre thème a été mis à jour. +theme_update_error=Le thème sélectionné n'existe pas. +openid_deletion=Supprimer l’adresse OpenID +openid_deletion_desc=Supprimer cette adresse OpenID de votre compte vous empêchera de vous connecter avec. Continuer ? +openid_deletion_success=L'adresse OpenID a été supprimée. +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 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. +keep_email_private=Cacher l'adresse courriel +keep_email_private_popup=Ceci masquera votre adresse courriel de votre profil. Elle ne sera plus la valeur par défaut pour les commits créés par l'interface web, tel que des ajouts de fichiers ou des éditions, et ne sera pas utilisée pour fusionner les commits. Un courriel special %s peut être utilisé pour établir la relation entre des commits et votre compte. Cette option n'aura pas d'effet sur les commits existants. +openid_desc=OpenID vous permet de confier l'authentification à une tierce partie. + +manage_ssh_keys=Gérer les clés SSH +manage_ssh_principals=Gérer les certificats principaux SSH +manage_gpg_keys=Gérer les clés GPG +add_key=Ajouter une clé +ssh_desc=Ces clefs SSH publiques sont associées à votre compte. Les clefs privées correspondantes permettent l'accès complet à vos repos. Les clés SSH qui ont été vérifiées peuvent aussi être utilisées pour vérifier des commits Git signés par SSH. +principal_desc=Ces Principaux de certificats SSH sont associés à votre compte et permettent un accès complet à vos dépôts. +gpg_desc=Ces clés GPG sont associées à votre compte et utilisées pour vérifier vos révisions. Conservez les clés privées en lieu sûr, car elles permettent de signer vos révisions. +ssh_helper=Besoin d'aide ? Consultez le guide de GitHub pour créer vos propres clés SSH ou résoudre les problèmes courants que vous pourriez rencontrer en utilisant SSH. +gpg_helper=Besoin d'aide ? Consultez le guide de GitHub sur GPG. +key_content_ssh_placeholder=Commence par 'ssh-ed25519', 'ssh-rsa', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521', 'sk-ecdsa-sha2-nistp256@openssh.com' ou par 'sk-ssh-ed25519@openssh.com' +key_content_gpg_placeholder=Commence par '-----BEGIN PGP PUBLIC KEY BLOCK-----' +add_new_principal=Ajouter le principal +ssh_key_been_used=Cette clé SSH a déjà été ajoutée au serveur. +ssh_key_name_used=Une clé SSH avec le même nom existe déjà sur votre compte. +ssh_principal_been_used=Ce principal a déjà été ajouté au serveur. +gpg_key_id_used=Une clé publique GPG avec le même ID existe déjà. +gpg_no_key_email_found=Cette clé GPG ne correspond à aucune adresse e-mail activée associée à votre compte. Elle peut toujours être ajoutée si vous signez le jeton fourni. +gpg_key_matched_identities=Identités correspondantes : +gpg_key_matched_identities_long=Les identités intégrées dans cette clé correspondent aux adresses e-mail activées suivantes pour cet utilisateur. Les révisions correspondant à ces adresses e-mail peuvent être vérifiés avec cette clé. +gpg_key_verified=Clé vérifiée +gpg_key_verified_long=Cette clé a été vérifiée à l’aide d’un jeton et peut dorénavant être utilisée pour authentifier vos révisions lorsqu’elles contiennent l’un de vos courriels actifs ou des identités associées à cette clé. +gpg_key_verify=Vérifier +gpg_invalid_token_signature=La clé GPG, la signature et le jeton fournis ne correspondent pas ou le jeton n'est pas à jour. +gpg_token_required=Vous devez fournir une signature pour le jeton ci-dessous +gpg_token=Jeton +gpg_token_help=Vous pouvez générer une signature en utilisant : +gpg_token_signature=Signature GPG renforcée +key_signature_gpg_placeholder=Commence par "-----BEGIN PGP SIGNATURE-----" +verify_gpg_key_success=La clé GPG "%s" a été vérifiée. +ssh_key_verified=Clé vérifiée +ssh_key_verified_long=La clé a été vérifiée avec un jeton et peut dorénavant être utilisée pour vérifier les révisions comportant l'une des adresses e-mails activées de cet utilisateur. +ssh_key_verify=Vérifier +ssh_invalid_token_signature=La clé SSH, la signature ou le jeton fournis ne correspondent pas ou le jeton est périmé. +ssh_token_required=Vous devez fournir une signature pour le jeton ci-dessous +ssh_token=Jeton +ssh_token_help=Vous pouvez générer une signature en utilisant : +ssh_token_signature=Signature SSH renforcée +key_signature_ssh_placeholder=Commence par "-----BEGIN SSH SIGNATURE-----" +verify_ssh_key_success=La clé SSH "%s" a été vérifiée. +subkeys=Sous-clés +key_id=ID de la clé +key_name=Nom de la Clé +key_content=Contenu +principal_content=Contenu +add_key_success=La clé SSH "%s" a été ajoutée. +add_gpg_key_success=La clé GPG "%s" a été ajoutée. +add_principal_success=Le Principal de certificat SSH "%s" a été ajouté. +delete_key=Exclure +ssh_key_deletion=Retirer la clé SSH +gpg_key_deletion=Retirer la clé GPG +ssh_principal_deletion=Retirer le Principal de certificat SSH +ssh_key_deletion_desc=Le retrait d'une clé SSH révoque son accès à votre compte. Continuer ? +gpg_key_deletion_desc=Supprimer une clé GPG discrédite les révisions signées par celle-ci. Continuer ? +ssh_principal_deletion_desc=Le retrait d'un Principal de certificat SSH révoque son accès à votre compte. Poursuivre ? +ssh_key_deletion_success=La clé SSH a été retirée. +gpg_key_deletion_success=La clé GPG a été retirée. +ssh_principal_deletion_success=Le Principal a été retiré. +added_on=Ajouté le %s +valid_until_date=Valable jusqu'au %s +valid_forever=Valide pour toujours +last_used=Dernière utilisation le +no_activity=Aucune activité récente +can_read_info=Lecture +can_write_info=Écriture +key_state_desc=Cette clé a été utilisée au cours des 7 derniers jours +token_state_desc=Ce jeton a été utilisé au cours des 7 derniers jours +principal_state_desc=Ce Principal a été utilisé au cours des 7 derniers jours +show_openid=Afficher sur le profil +hide_openid=Masquer du profil +ssh_disabled=SSH est désactivé +ssh_signonly=SSH étant désactivé, ces clés ne servent qu'à vérifier la signature des révisions. +ssh_externally_managed=Cette clé SSH est gérée de manière externe pour cet utilisateur +manage_access_token=Jetons d'accès +generate_new_token=Générer un nouveau jeton +tokens_desc=Ces jetons permettent l'accès à votre compte à travers l'API Forgejo. +token_name=Nom du jeton +generate_token=Générer un jeton +generate_token_success=Votre nouveau jeton a été généré. Copiez-le maintenant car il ne sera plus affiché. +generate_token_name_duplicate=%s a déjà été utilisé comme nom d'application. Veuillez en utiliser un autre. +delete_token=Supprimer +access_token_deletion=Supprimer le jeton d'accès +access_token_deletion_desc=Supprimer un jeton révoquera l'accès à votre compte pour toutes les applications l'utilisant. Cette action est irréversible. Continuer ? +delete_token_success=Ce jeton a été supprimé. Les applications l'utilisant n'ont plus accès à votre compte. +repo_and_org_access=Accès aux dépôts et organisations +permissions_public_only=Publique uniquement +permissions_access_all=Tout (public, privé et limité) +select_permissions=Sélectionner les autorisations +permission_no_access=Aucun accès +permission_read=Lecture +permission_write=Lecture et écriture +access_token_desc=Les autorisations des jetons sélectionnées se limitent aux routes API correspondantes. Lisez la documentation pour plus d’information. +at_least_one_permission=Vous devez sélectionner au moins une permission pour créer un jeton +permissions_list=Autorisations : + +manage_oauth2_applications=Gérer les applications OAuth2 +edit_oauth2_application=Modifier l'application OAuth2 +oauth2_applications_desc=Les applications OAuth2 permettent à votre application tierce d'authentifier en toute sécurité les utilisateurs de cette instance Forgejo. +remove_oauth2_application=Supprimer l'application OAuth2 +remove_oauth2_application_desc=La suppression d'une application OAuth2 révoquera l'accès à tous les jetons d'accès signés. Continuer ? +remove_oauth2_application_success=L'application a été supprimée. +create_oauth2_application=Créer une nouvelle application OAuth2 +create_oauth2_application_button=Créer une application +create_oauth2_application_success=Vous avez créé une nouvelle application OAuth2 avec succès. +update_oauth2_application_success=Vous avez mis à jour l'application OAuth2 avec succès. +oauth2_application_name=Nom de l'Application +oauth2_confidential_client=Client confidentiel. Sélectionnez cette option pour les applications qui préservent la confidentialité du secret, telles que les applications web. Ne la sélectionnez pas pour les applications natives, y compris les applications de bureau et les applications mobiles. +oauth2_redirect_uris=URI de redirection. Veuillez utiliser une nouvelle ligne pour chaque URI. +save_application=Enregistrer +oauth2_client_id=ID du client +oauth2_client_secret=Secret du client +oauth2_regenerate_secret=Regénérer le secret +oauth2_regenerate_secret_hint=Avez-vous perdu votre secret ? +oauth2_client_secret_hint=Le secret ne sera plus affiché après avoir quitté ou actualisé cette page. Veuillez vous assurer que vous l'avez enregistré. +oauth2_application_edit=Éditer +oauth2_application_create_description=Les applications OAuth2 permettent à votre application tierce d'accéder aux comptes d'utilisateurs de cette instance. +oauth2_application_remove_description=La suppression d'une application OAuth2 l'empêchera d'accéder aux comptes d'utilisateurs autorisés sur cette instance. Poursuivre ? +oauth2_application_locked=Forgejo préinstalle des applications OAuth2 au démarrage si elles sont activées dans la configuration. Pour éviter des comportements inattendus, celles-ci ne peuvent être éditées ni supprimées. Veuillez vous référer à la documentation OAuth2 pour plus d'informations. + +authorized_oauth2_applications=Applications OAuth2 autorisées +authorized_oauth2_applications_description=Vous avez autorisé l'accès à votre compte personnel Forgejo à ces applications tierces. Veuillez révoquer l'accès aux applications qui ne sont plus utilisées. +revoke_key=Révoquer +revoke_oauth2_grant=Révoquer l'accès +revoke_oauth2_grant_description=La révocation de l'accès à cette application tierce l'empêchera d'accéder à vos données. Vous êtes sûr ? +revoke_oauth2_grant_success=Accès révoqué avec succès. + +twofa_desc=L'authentification à deux facteurs améliore la sécurité de votre compte. +twofa_recovery_tip=Si vous perdez votre appareil, vous pourrez utiliser une clé de récupération à usage unique pour obtenir l’accès à votre compte. +twofa_is_enrolled=Votre compte est inscrit à l'authentification à deux facteurs. +twofa_not_enrolled=Votre compte n'est pas inscrit à l'authentification à deux facteurs. +twofa_disable=Désactiver l'authentification à deux facteurs +twofa_scratch_token_regenerate=Régénérer un jeton de secours +twofa_scratch_token_regenerated=Votre jeton de secours est désormais « %s ». Stockez-le dans un endroit sûr, il ne sera plus jamais affiché. +twofa_enroll=Activer l'authentification à deux facteurs +twofa_disable_note=Vous pouvez désactiver l'authentification à deux facteurs si nécessaire. +twofa_disable_desc=Désactiver l'authentification à deux facteurs rendra votre compte plus vulnérable. Confirmer ? +regenerate_scratch_token_desc=Si vous avez perdu votre jeton de secours, ou avez dû l'utiliser pour vous authentifier, vous pouvez le réinitialiser. +twofa_disabled=L'authentification à deux facteurs a été désactivée. +scan_this_image=Scannez cette image avec votre application d'authentification : +or_enter_secret=Ou saisissez le code %s +then_enter_passcode=Et entrez le code de passe s'affichant dans l'application : +passcode_invalid=Le mot de passe est invalide. Réessayez. +twofa_enrolled=L'authentification à deux facteurs a été activée pour votre compte. Gardez votre jeton de secours (%s) en lieu sûr, car il ne vous sera montré qu'une seule fois. +twofa_failed_get_secret=Impossible d'obtenir le secret. + +webauthn_desc=Les clefs de sécurité sont des dispositifs matériels contenant des clefs cryptographiques. Elles peuvent être utilisées pour l'authentification à deux facteurs. La clef de sécurité doit supporter le standard WebAuthn Authenticator. +webauthn_register_key=Ajouter une clé de sécurité +webauthn_nickname=Pseudonyme +webauthn_delete_key=Retirer la clé de sécurité +webauthn_delete_key_desc=Si vous retirez une clé de sécurité, vous ne pourrez plus l'utiliser pour vous connecter. Continuer ? +webauthn_key_loss_warning=Si vous perdez vos clés de sécurité, vous perdrez l’accès à votre compte. +webauthn_alternative_tip=Vous devriez configurer une méthode d’authentification supplémentaire. + +manage_account_links=Comptes liés +manage_account_links_desc=Ces comptes externes sont liés à votre compte Forgejo. +link_account=Lier un compte +remove_account_link=Supprimer un compte lié +remove_account_link_desc=La suppression d'un compte lié révoquera son accès à votre compte Forgejo. Continuer ? +remove_account_link_success=Le compte lié a été supprimé. + +hooks.desc=Ajouter des webhooks qui seront déclenchés pour tous les dépôts que vous possédez. + +orgs_none=Vous n'êtes membre d'aucune organisation. +repos_none=Vous ne possédez aucun dépôt. + +delete_account=Supprimer votre compte +delete_prompt=Cette opération supprimera définitivement votre compte d'utilisateur. Cette action est IRRÉVERSIBLE. +delete_with_all_comments=Votre compte est plus jeune que %s. Afin d'éviter les commentaires fantômes, tous les commentaires sur les tickets/PR seront aussi supprimés. +confirm_delete_account=Confirmer la suppression +delete_account_title=Supprimer cet utilisateur +delete_account_desc=Êtes-vous sûr de vouloir supprimer définitivement ce compte d'utilisateur ? + +email_notifications.enable=Activer les notifications par e-mail +email_notifications.onmention=N'envoyer un e-mail que si vous êtes mentionné +email_notifications.disable=Désactiver les notifications par courriel +email_notifications.submit=Définir les préférences de courriel +email_notifications.andyourown=Et vos propres notifications + +visibility=Visibilité de l'utilisateur +visibility.public=Public +visibility.public_tooltip=Visible par tout le monde +visibility.limited=Limité +visibility.limited_tooltip=Visible uniquement pour les utilisateurs connectés +visibility.private=Privé +visibility.private_tooltip=Visible uniquement aux membres des organisations que vous avez rejointes +blocked_users = Utilisateurs bloqués +blocked_users_none = Il n'y a aucun utilisateur bloqué. +blocked_since = Bloqué depuis %s +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 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. +pronouns = Pronoms +pronouns_unspecified = Non spécifiés +language.title = Langue par défaut +keep_activity_private.description = Vous seul pourrez voir votre activité publique, ainsi que les administrateurs de l'instance. +language.localization_project = Aidez-nous à traduire Forgejo dans votre langue ! En savoir plus. +language.description = Cette langue sera enregistrée dans votre compte et utilisée comme langue par défaut après votre connexion. +user_block_yourself = Vous ne pouvez pas vous bloquer vous même. +change_username_redirect_prompt.with_cooldown.one = L'ancien pseudonyme sera disponible pour n'importe qui après une période d'%[1]d jour. Vous pouvez toujours réclamer votre ancien pseudonyme pendant cette période. +change_username_redirect_prompt.with_cooldown.few = L'ancien pseudonyme sera disponible pour n'importe qui après une période de %[1]d jours. Vous pouvez toujours réclamer votre ancien pseudonyme pendant cette période. +quota.rule.exceeded = Dépassé +regenerate_token = Régénérer +access_token_regeneration = Régénérer le token d'accès +access_token_regeneration_desc = La régénération d'un token révoquera l'accès à votre compte pour les applications qui l'utilisaient. Cela n'est pas reversible. Continuer ? +regenerate_token_success = Le token a été régénéré. Les applications qui l'utilisent n'ont plus accès à votre compte et doivent être mises à jour avec le nouveau token. +quota.applies_to_org = Les quotas suivants s'applique à cette organisation +quota.rule.no_limit = Sans limite +quota.sizes.all = Tout +quota.sizes.repos.all = Dépôts +quota.sizes.repos.public = Dépôts publics +quota.sizes.repos.private = Dépôts privés +quota.sizes.git.all = Contenu dans Git +quota.sizes.git.lfs = Git LFS +quota.sizes.assets.all = Contenus +quota.sizes.assets.attachments.all = Attachements +quota.sizes.assets.attachments.issues = Attachements de tickets +quota.sizes.assets.attachments.releases = Attachements de version +quota.sizes.assets.artifacts = Artefacts +quota.sizes.assets.packages.all = Paquets +quota.sizes.wiki = Wiki +quota.applies_to_user = Les quotas suivants s'appliquent à votre compte +quota.rule.exceeded.helper = La taille totale des objets pour cette règle ont dépassé le quota. +keep_pronouns_private = Ne montrer les pronoms qu'aux utilisateurs authentifiés +keep_pronouns_private.description = Cela masquera votre pronoms aux visiteurs qui ne sont pas authentifiés. +storage_overview = Vue d'ensemble du stockage +quota = Quota +ssh_token_help_ssh_agent = ou, si vous utilisez un agent SSH (avec la variable SSH_AUTH_SOCK affectée) : + +[repo] +new_repo_helper=Un dépôt contient tous les fichiers d’un projet, ainsi que l’historique de leurs modifications. Vous avez déjà ça ailleurs ? Migrez-le ici.. +owner=Propriétaire +owner_helper=Certaines organisations peuvent ne pas apparaître dans la liste déroulante en raison d'une limite maximale du nombre de dépôts. +repo_name=Nom du dépôt +repo_name_helper=Idéalement, le nom d'un dépôt devrait être court, mémorisable et unique. +repo_size=Taille du dépôt +template=Modèle +template_select=Sélectionner un modèle +template_helper=Faire de ce dépôt un modèle +template_description=Les référentiels de modèles permettent aux utilisateurs de générer de nouveaux référentiels avec la même structure de répertoire, fichiers et paramètres optionnels. +visibility=Visibilité +visibility_description=Seuls le propriétaire ou les membres de l'organisation, s'ils ont des droits, seront en mesure de le voir. +visibility_helper=Rendre le dépôt privé +visibility_helper_forced=L’administrateur requière que les nouveaux dépôts soient privés. +visibility_fork_helper=(Changer ceci affectera la visibilité des bifurcations.) +clone_helper=Besoin d'aide pour dupliquer ? Visitez l'aide. +fork_repo=Bifurquer le dépôt +fork_from=Bifurquer depuis +already_forked=Vous avez déjà forké %s +fork_to_different_account=Créer une bifurcation vers un autre compte +fork_visibility_helper=La visibilité d'un dépôt bifurqué ne peut pas être modifiée. +fork_branch=Branche à cloner sur la bifurcation +all_branches=Toutes les branches +fork_no_valid_owners=Ce dépôt ne peut pas être bifurqué car il n’a pas de propriétaire valide. +use_template=Utiliser ce modèle +download_zip=Télécharger le ZIP +download_tar=Télécharger le TAR.GZ +download_bundle=Télécharger le BUNDLE +generate_repo=Générer un dépôt +generate_from=Générer depuis +repo_desc=Description +repo_desc_helper=Décrire brièvement votre dépôt +repo_lang=Langue +repo_gitignore_helper=Sélectionner quelques .gitignore prédéfinis +repo_gitignore_helper_desc=De nombreux outils et compilateurs génèrent des fichiers résiduels qui n'ont pas besoin d'être supervisés par git. Composez un .gitignore à l’aide de cette liste des languages de programmation courants. +issue_labels=Étiquettes +issue_labels_helper=Sélectionner un jeu d'étiquettes +license=Licence +license_helper=Sélectionner une licence +license_helper_desc=Une licence réglemente ce que les autres peuvent ou ne peuvent pas faire avec votre code. Vous ne savez pas laquelle est la bonne pour votre projet ? Comment choisir une licence.. +readme=LISEZMOI +readme_helper=Choisissez un modèle de fichier LISEZMOI +readme_helper_desc=Le README est l'endroit idéal pour décrire votre projet et accueillir des contributeurs. +auto_init=Initialiser le dépôt +create_repo=Créer un dépôt +default_branch=Branche par défaut +default_branch_label=défaut +default_branch_helper=La branche par défaut est la branche de base pour les demandes d'ajout et les révisions de code. +mirror_prune=Purger +mirror_prune_desc=Supprimer les références externes obsolètes +mirror_interval=Intervalle de synchronisation (les unités de temps valides sont "h", "m" et "s"). 0 pour désactiver la synchronisation automatique. (Intervalle minimum : %s) +mirror_interval_invalid=L'intervalle de synchronisation est invalide. +mirror_sync = synchronisé +mirror_sync_on_commit=Synchroniser quand les révisions sont soumis +mirror_address=Cloner depuis une URL +mirror_address_desc=Insérez tous les identifiants requis dans la section Autorisation. +mirror_address_url_invalid=L’URL fournie est invalide. Assurez vous que tous les composants de l'URL sont correctement échappés. +mirror_address_protocol_invalid=L'URL fournie est invalide. Seuls les protocoles http(s):// ou git:// peuvent référencer un miroir. +mirror_lfs=Stockage de fichiers volumineux (LFS) +mirror_lfs_desc=Activer la mise en miroir des données LFS. +mirror_lfs_endpoint=Point d'accès LFS +mirror_lfs_endpoint_desc=La synchronisation tentera d'utiliser l'url de clonage pour déterminer le serveur LFS. Vous pouvez également spécifier un point d'accès personnalisé si les données LFS du dépôt sont stockées ailleurs. +mirror_last_synced=Dernière synchronisation +mirror_password_placeholder=(Aucune modification) +mirror_password_blank_placeholder=(Non défini) +mirror_password_help=Modifiez le nom d'utilisateur pour effacer un mot de passe enregistré. +watchers=Observateurs +stargazers=Fans +stars_remove_warning=Ceci supprimera toutes les étoiles de ce dépôt. +forks=Bifurcations +reactions_more=et %d de plus +unit_disabled=L'administrateur du site a désactivé cette section du dépôt. +language_other=Autre +adopt_search=Entrez un nom d’utilisateur pour rechercher les dépôts dépossédés… (laissez vide pour tous trouver) +adopt_preexisting_label=Adopter les fichiers +adopt_preexisting=Adopter les fichiers préexistants +adopt_preexisting_content=Créer un dépôt à partir de %s +adopt_preexisting_success=Fichiers adoptés et dépôt créé depuis %s +delete_preexisting_label=Supprimer +delete_preexisting=Supprimer les fichiers préexistants +delete_preexisting_content=Supprimer les fichiers dans %s +delete_preexisting_success=Fichiers dépossédés supprimés dans %s +blame_prior=Voir le blame avant cette modification +blame.ignore_revs=Les révisions dans .git-blame-ignore-revs sont ignorées. Vous pouvez quand même voir ces blâmes. +blame.ignore_revs.failed=Impossible d'ignorer les révisions dans .git-blame-ignore-revs. +author_search_tooltip=Affiche un maximum de 30 utilisateurs + +tree_path_not_found.commit=Le chemin %[1]s n’existe pas dans la révision %[2]s +tree_path_not_found.branch=Le chemin %[1]s n’existe pas dans la branche %[2]s +tree_path_not_found.tag=Le chemin %[1]s n’existe pas dans l’étiquette %[2]s + +transfer.accept=Accepter le transfert +transfer.accept_desc=`Transférer à "%s"` +transfer.reject=Refuser le transfert +transfer.reject_desc=`Annuler le transfert à "%s"` +transfer.no_permission_to_accept=Vous n’êtes pas autorisé à accepter ce transfert. +transfer.no_permission_to_reject=Vous n’êtes pas autorisé à rejeter ce transfert. + +desc.private=Privé +desc.public=Publique +desc.template=Modèle +desc.internal=Interne +desc.archived=Archivé +desc.sha256 = SHA256 +template.items=Élément du modèle +template.git_content=Contenu Git (branche par défaut) +template.git_hooks=Déclencheurs Git +template.git_hooks_tooltip=Vous ne pouvez actuellement pas modifier ou supprimer les déclencheurs Git ajoutés. Sélectionnez cette option uniquement si vous faites confiance au modèle de dépôt. +template.webhooks=Webhooks +template.topics=Sujets +template.avatar=Avatar +template.issue_labels=Labels de ticket +template.one_item=Vous devez sélectionner au moins un élément du modèle +template.invalid=Vous devez sélectionner un modèle de dépôt + +archive.title=Ce dépôt est archivé. Vous pouvez voir ses fichiers ou le cloner, mais pas ouvrir de ticket ou de demandes d'ajout, ni soumettre des changements ou des commentaires. +archive.title_date=Ce dépôt a été archivé le %s. Vous pouvez voir ses fichiers et le cloner, mais pas ouvrir de ticket ou de demandes d'ajout, ni soumettre de changements ou faire des commentaires. +form.reach_limit_of_creation_1=Vous avez déjà atteint la limite d'%d dépôt. +form.reach_limit_of_creation_n=Vous avez déjà atteint la limite de %d dépôts. +form.name_reserved=Ce nom de dépôt "%s" est réservé. +form.name_pattern_not_allowed=Le motif « %s » n’est pas autorisé dans un nom de dépôt. + +need_auth=Autorisation +migrate_options=Options de migration +migrate_options_mirror_helper=Rendre ce dépôt mirroir +migrate_options_lfs=Migrer les fichiers LFS +migrate_options_lfs_endpoint.label=Point d'accès LFS +migrate_options_lfs_endpoint.description=La migration va tenter d'utiliser votre dépôt Git distant pour déterminer le serveur LFS. Vous pouvez également spécifier un point d'accès personnalisé si les données LFS du dépôt sont stockées ailleurs. +migrate_options_lfs_endpoint.description.local=Un chemin de serveur local est également pris en charge. +migrate_options_lfs_endpoint.placeholder=Si laissé vide, le point de terminaison sera dérivé de l'URL du clone +migrate_repo=Migrer le dépôt +migrate.clone_address=Migrer/Cloner depuis une URL +migrate.clone_address_desc=L'URL HTTP(S) ou Git "clone" d'un dépôt existant +migrate.github_token_desc=Vous pouvez mettre un ou plusieurs jetons séparés par des virgules ici pour rendre la migration plus rapide en raison de la limite de débit de l'API GitHub. ATTENTION : Abuser de cette fonctionnalité peut enfreindre la politique du fournisseur de services et entraîner un blocage de compte. +migrate.clone_local_path=ou un chemin serveur local +migrate.permission_denied=Vous n'êtes pas autorisé à importer des dépôts locaux. +migrate.permission_denied_blocked=Vous ne pouvez pas importer depuis des hôtes interdits, veuillez demander à l'administrateur de vérifier les paramètres ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS. +migrate.invalid_local_path=Le chemin local n’est pas valide, n’existe pas ou n’est pas un dossier. +migrate.invalid_lfs_endpoint=Le point d'accès LFS n'est pas valide. +migrate.failed=Échec de migration : %v +migrate.migrate_items_options=Un jeton d'accès est requis pour migrer des éléments supplémentaires +migrated_from=Migré de %[2]s +migrated_from_fake=Migré de %[1]s +migrate.migrate=Migrer depuis %s +migrate.migrating=Migration de %s … +migrate.migrating_failed=La migration de %s a échoué. +migrate.migrating_failed.error=Échec de la migration : %s +migrate.migrating_failed_no_addr=Échec de la migration. +mirror_from=miroir de +forked_from=bifurqué depuis +generated_from=généré depuis +fork_from_self=Vous ne pouvez pas bifurquer un dépôt que vous possédez. +fork_guest_user=Connectez-vous pour bifurquer ce dépôt. +watch_guest_user=Connectez-vous pour consulter ce dépôt. +star_guest_user=Connectez-vous pour ajouter aux favoris ce dépôt. +unwatch=Ne plus suivre +watch=Suivre +unstar=Retirer des favoris +star=Ajouter aux favoris +fork=Fourche +download_archive=Télécharger ce dépôt +more_operations=Plus d'opérations + +no_desc=Aucune description +quick_guide=Introduction rapide +clone_this_repo=Cloner ce dépôt +cite_this_repo=Citer ce dépôt +create_new_repo_command=Création d'un nouveau dépôt en ligne de commande +push_exist_repo=Soumission d'un dépôt existant par ligne de commande +empty_message=Ce dépôt n'a pas de contenu. +broken_message=Les données git de ce dépôt ne peuvent pas être lues. Contactez l'administrateur de cette instance ou supprimez ce dépôt. + +code=Code +code.desc=Accéder au code source, fichiers, révisions et branches. +branch=Branche +tree=Aborescence +clear_ref=`Effacer la référence actuelle` +filter_branch_and_tag=Filtrer une branche ou une étiquette +find_tag=Rechercher une étiquette +branches=Branches +tags=Étiquettes +issues=Tickets +pulls=Demandes d'ajout +packages=Paquets +actions=Actions +labels=Labels +org_labels_desc=Les labels d'une organisation peuvent être utilisés avec tous les dépôts de cette organisation +org_labels_desc_manage=gérer + +milestones=Jalons +commits=Révisions +commit=Révision +release=Publications +releases=Publications +tag=Étiquette +released_this=a publié ceci +file.title=%s sur %s +file_raw=Brut +file_history=Historique +file_view_source=Voir le code source +file_view_rendered=Voir le rendu +file_view_raw=Voir le contenu brut +file_permalink=Lien permanent +file_too_large=Le fichier est trop gros pour être affiché. +invisible_runes_header=`Ce fichier contient des caractères Unicode invisibles.` +invisible_runes_description=`Ce fichier contient des caractères Unicode invisibles à l'œil nu, mais peuvent être traités différemment par un ordinateur. Si vous pensez que c'est intentionnel, vous pouvez ignorer cet avertissement. Utilisez le bouton Échappe pour les dévoiler.` +ambiguous_runes_header=`Ce fichier contient des caractères Unicode ambigus.` +ambiguous_runes_description=`Ce fichier contient des caractères Unicode qui peuvent être confondus avec d'autres caractères. Si vous pensez que c'est intentionnel, vous pouvez ignorer cet avertissement. Utilisez le bouton Échappe pour les dévoiler.` +invisible_runes_line=`Cette ligne contient des caractères Unicode invisibles.` +ambiguous_runes_line=`Cette ligne contient des caractères Unicode ambigus.` +ambiguous_character=`%[1]c [U+%04[1]X] peut être confondu avec %[2]c [U+%04[2]X].` + +escape_control_characters=Échapper +unescape_control_characters=Annuler l'échappement +file_copy_permalink=Copier le lien permanent +view_git_blame=Voir Git blame +video_not_supported_in_browser=Votre navigateur ne supporte pas la balise « vidéo » HTML5. +audio_not_supported_in_browser=Votre navigateur ne supporte pas la balise « audio » HTML5. +stored_lfs=Stocké avec Git LFS +symbolic_link=Lien symbolique +executable_file=Fichier exécutable +vendored = Vendored +generated = Généré +commit_graph=Graphe des révisions +commit_graph.select=Sélectionner les branches +commit_graph.hide_pr_refs=Masquer les demandes d'ajout +commit_graph.monochrome=Monochrome +commit_graph.color=Couleur +commit.contained_in=Cette révision appartient à : +commit.contained_in_default_branch=Cette révision appartient à la branche par défaut +commit.load_referencing_branches_and_tags=Charger les branches et étiquettes référençant cette révision +blame=Annotations +download_file=Télécharger le fichier +normal_view=Vue normale +line=ligne +lines=lignes +from_comment=(commentaire) + +editor.add_file=Ajouter un fichier +editor.new_file=Nouveau fichier +editor.upload_file=Téléverser un fichier +editor.edit_file=Modifier le fichier +editor.preview_changes=Aperçu des modifications +editor.cannot_edit_lfs_files=Les fichiers LFS ne peuvent pas être modifiés dans l'interface web. +editor.cannot_edit_non_text_files=Les fichiers binaires ne peuvent pas être édités dans l'interface web. +editor.edit_this_file=Modifier le fichier +editor.this_file_locked=Le fichier est verrouillé +editor.must_be_on_a_branch=Vous devez être sur une branche pour appliquer ou proposer des modifications à ce fichier. +editor.fork_before_edit=Vous devez faire bifurquer ce dépôt pour appliquer ou proposer des modifications à ce fichier. +editor.delete_this_file=Supprimer le fichier +editor.must_have_write_access=Vous devez avoir un accès en écriture pour appliquer ou proposer des modifications à ce fichier. +editor.file_delete_success=Le fichier "%s" a été supprimé. +editor.name_your_file=Nommez votre fichier… +editor.filename_help=Ajoutez un dossier en entrant son nom suivi d'une barre oblique ("/"). Supprimez un dossier avec un retour arrière au début du champ. +editor.or=ou +editor.cancel_lower=Annuler +editor.commit_signed_changes=Réviser les changements (signé) +editor.commit_changes=Réviser les changements +editor.add_tmpl=Ajouter "<%s>" +editor.add=Ajouter %s +editor.update=Actualiser %s +editor.delete=Supprimer %s +editor.patch=Appliquer le correctif +editor.patching=Correction : +editor.fail_to_apply_patch=`Impossible d'appliquer le correctif "%s"` +editor.new_patch=Nouveau correctif +editor.commit_message_desc=Ajouter une description détaillée facultative… +editor.signoff_desc=Créditer l'auteur "Signed-off-by:" en pied de révision. +editor.commit_directly_to_this_branch=Réviser directement dans la branche %[1]s. +editor.create_new_branch=Créer une nouvelle branche pour cette révision et initier une demande d'ajout. +editor.create_new_branch_np=Créer une nouvelle branche pour cette révision. +editor.propose_file_change=Proposer une modification du fichier +editor.new_branch_name=Nommer la nouvelle branche pour cette révision +editor.new_branch_name_desc=Nouveau nom de la branche… +editor.cancel=Annuler +editor.filename_cannot_be_empty=Le nom de fichier ne peut être vide. +editor.filename_is_invalid=Le nom du fichier est invalide : "%s". +editor.branch_does_not_exist=La branche "%s" n'existe pas dans ce dépôt. +editor.branch_already_exists=La branche "%s" existe déjà dans ce dépôt. +editor.directory_is_a_file=Le nom de dossier "%s" est déjà utilisé comme nom de fichier dans ce dépôt. +editor.file_is_a_symlink=`« %s » est un lien symbolique. Ce type de fichiers ne peut être modifié dans l'éditeur web.` +editor.filename_is_a_directory=« %s » est déjà utilisé comme nom de dossier dans ce dépôt. +editor.file_editing_no_longer_exists=Impossible de modifier le fichier « %s » car il n’existe plus dans ce dépôt. +editor.file_deleting_no_longer_exists=Impossible de supprimer le fichier « %s » car il n’existe plus dans ce dépôt. +editor.file_changed_while_editing=Le contenu du fichier a changé depuis que vous avez ouvert le fichier. Cliquez ici pour voir les changements ou soumettez de nouveau pour les écraser. +editor.file_already_exists=Un fichier nommé "%s" existe déjà dans ce dépôt. +editor.commit_empty_file_header=Réviser un fichier vide +editor.commit_empty_file_text=Le fichier que vous allez réviser est vide. Continuer ? +editor.no_changes_to_show=Il n’y a aucune modification à afficher. +editor.fail_to_update_file=Impossible de mettre à jour/créer le fichier "%s". +editor.fail_to_update_file_summary=Message d'erreur : +editor.push_rejected_no_message=La modification a été rejetée par le serveur sans message. Veuillez vérifier les Git hooks. +editor.push_rejected=La modification a été rejetée par le serveur. Veuillez vérifier vos Git hooks. +editor.push_rejected_summary=Message de rejet complet : +editor.add_subdir=Ajouter un dossier… +editor.unable_to_upload_files=Impossible d'envoyer le fichier "%s" : %v +editor.upload_file_is_locked=Le fichier "%s" est verrouillé par %s. +editor.upload_files_to_dir=`Téléverser les fichiers vers "%s"` +editor.cannot_commit_to_protected_branch=Impossible de créer une révision sur la branche protégée "%s". +editor.no_commit_to_branch=Impossible d'enregistrer la révision directement sur la branche parce que : +editor.user_no_push_to_branch=L'utilisateur ne peut pas pousser vers la branche +editor.require_signed_commit=Cette branche nécessite une révision signée +editor.cherry_pick=Picorer %s vers : +editor.revert=Rétablir %s sur : + +commits.desc=Naviguer dans l'historique des modifications. +commits.commits=Révisions +commits.no_commits=Pas de révisions en commun. "%s" et "%s" ont des historiques entièrement différents. +commits.nothing_to_compare=Ces branches sont égales. +commits.search.tooltip=Vous pouvez utiliser les mots-clés "author :", "committer :", "after :", ou "before :" pour filtrer votre recherche, ex. : "revert author :Alice before :2019-01-13". +commits.search_all=Toutes les branches +commits.author=Auteur +commits.message=Message +commits.date=Date +commits.older=Précédemment +commits.newer=Récemment +commits.signed_by=Signé par +commits.signed_by_untrusted_user=Signature provenant d'un utilisateur dilletant +commits.signed_by_untrusted_user_unmatched=Signature discordante de l'auteur de la révision et provenant d'un utilisateur dilletant +commits.gpg_key_id=ID de la clé GPG +commits.ssh_key_fingerprint=Empreinte numérique de la clé SSH +commits.view_path=Voir à ce point de l'historique + +commit.operations=Opérations +commit.revert=Rétablir +commit.revert-header=Rétablir : %s +commit.revert-content=Sélectionnez la branche sur laquelle revenir : +commit.cherry-pick=Picorer +commit.cherry-pick-header=Picorer : %s +commit.cherry-pick-content=Sélectionner la branche à picorer : + +commitstatus.error=Erreur +commitstatus.failure=Échec +commitstatus.pending=En attente +commitstatus.success=Succès + +ext_issues=Tickets externes +projects=Projets +projects.desc=Gérer les tickets et les demandes d’ajouts dans les tableaux de projet. +projects.description=Description (facultative) +projects.description_placeholder=Description +projects.create=Créer un projet +projects.title=Titre +projects.new=Nouveau projet +projects.new_subheader=Coordonnez, surveillez, et mettez à jour votre travail en un seul endroit, afin que les projets restent transparents et dans les délais. +projects.create_success=Le projet "%s" a été créé. +projects.deletion=Supprimer le projet +projects.deletion_desc=Supprimer un projet efface également de tous les tickets liés. Voulez vous continuer ? +projects.deletion_success=Le projet a été supprimé. +projects.edit=Modifier les projets +projects.edit_subheader=Les projets organisent les tickets et la progression. +projects.modify=Modifier le projet +projects.edit_success=Le projet "%s" a été mis à jour. +projects.type.none=Aucun +projects.type.basic_kanban=Kanban basique +projects.type.bug_triage=Bug à trier +projects.template.desc=Modèle +projects.template.desc_helper=Sélectionnez un modèle de projet pour débuter +projects.column.edit=Modifier la colonne +projects.column.edit_title=Nom +projects.column.new_title=Nom +projects.column.new_submit=Créer une colonne +projects.column.new=Nouvelle colonne +projects.column.set_default=Définir par défaut +projects.column.set_default_desc=Les tickets et demandes d’ajout non-catégorisés seront placés dans cette colonne +projects.column.delete=Supprimer la colonne +projects.column.deletion_desc=La suppression d'une colonne de projet déplace tous les tickets liés à la colonne par défaut. Continuer ? +projects.column.color=Couleur +projects.open=Ouvrir +projects.close=Fermer +projects.column.assigned_to=Assigné à +projects.card_type.desc=Aperçu de la carte +projects.card_type.images_and_text=Images et texte +projects.card_type.text_only=Texte uniquement + +issues.desc=Organiser les rapports de bug, les tâches et les jalons. +issues.filter_assignees=Filtrer par assignation +issues.filter_milestones=Filtrer le jalon +issues.filter_projects=Filtrer par projet +issues.filter_labels=Filtrer par étiquettes +issues.filter_reviewers=Filtrer par évaluateur +issues.new=Nouveau ticket +issues.new.title_empty=Le titre ne peut pas être vide +issues.new.labels=Labels +issues.new.no_label=Sans labels +issues.new.clear_labels=Effacer les labels +issues.new.projects=Projets +issues.new.clear_projects=Effacer les projets +issues.new.no_projects=Sans projet +issues.new.open_projects=Projets ouverts +issues.new.closed_projects=Projets clôturés +issues.new.no_items=Pas d'élément +issues.new.milestone=Jalon +issues.new.no_milestone=Sans jalon +issues.new.clear_milestone=Effacer le jalon +issues.new.open_milestone=Jalons ouverts +issues.new.closed_milestone=Jalons fermés +issues.new.assignees=Assignés +issues.new.clear_assignees=Supprimer les affectations +issues.new.no_assignees=Sans assignation +issues.new.no_reviewers=Sans évaluateur +issues.choose.get_started=Démarrons +issues.choose.open_external_link=Ouvrir +issues.choose.blank=Par défaut +issues.choose.blank_about=Créer un ticket à partir du modèle par défaut. +issues.choose.ignore_invalid_templates=Les modèles invalides ont été ignorés +issues.choose.invalid_templates=%v modèle(s) invalide(s) trouvé(s) +issues.choose.invalid_config=La configuration du ticket contient des erreurs : +issues.no_ref=Aucune branche/étiquette spécifiées +issues.create=Créer un ticket +issues.new_label=Nouveau label +issues.new_label_placeholder=Nom du label +issues.new_label_desc_placeholder=Description +issues.create_label=Créer un label +issues.label_templates.title=Charger un ensemble de label +issues.label_templates.info=Il n'existe pas encore de label. Créez-en un avec « Nouveau label » ou utilisez un jeu de label : +issues.label_templates.helper=Sélectionnez un jeu de label +issues.label_templates.use=Utiliser le jeu de labels +issues.label_templates.fail_to_load_file=Impossible de charger le fichier de modèle de label « %s » : %v +issues.add_label=a ajouté le label %s %s +issues.add_labels=a ajouté les labels %s %s +issues.remove_label=a retiré le label %s %s +issues.remove_labels=a supprimé les labels %s %s +issues.add_remove_labels=a ajouté le label %s et supprimé %s %s +issues.add_milestone_at=`a ajouté ça au jalon %s %s.` +issues.add_project_at=`a ajouté ça au projet %s %s.` +issues.change_milestone_at=`a remplacé le jalon %s par %s %s` +issues.change_project_at=`a remplacé le projet %s par %s %s` +issues.remove_milestone_at=`a supprimé ça du jalon %s %s.` +issues.remove_project_at=`a supprimé ça du projet %s %s.` +issues.deleted_milestone=`(supprimé)` +issues.deleted_project=`(supprimé)` +issues.self_assign_at=`s'est assigné ça %s.` +issues.add_assignee_at=`a été assigné par %s %s.` +issues.remove_assignee_at=`à été désassigné par %s %s.` +issues.remove_self_assignment=`s'est désassignée ça %s.` +issues.change_title_at=`a remplacé le titre %s par %s %s.` +issues.change_ref_at=`a remplacé la référence %s par %s%s.` +issues.remove_ref_at=`a supprimé la référence %s %s.` +issues.add_ref_at=`a ajouté la référence %s %s.` +issues.delete_branch_at=`a supprimé la branche %s %s.` +issues.filter_label=Label +issues.filter_label_exclude=`Utilisez Alt + Click pour exclure les étiquettes.` +issues.filter_label_no_select=Toutes les labels +issues.filter_label_select_no_label=Aucun label +issues.filter_milestone=Jalon +issues.filter_milestone_all=Tous les jalons +issues.filter_milestone_none=Aucun jalon +issues.filter_milestone_open=Jalons ouverts +issues.filter_milestone_closed=Jalons fermés +issues.filter_project=Projet +issues.filter_project_all=Tous les projets +issues.filter_project_none=Aucun projet +issues.filter_assignee=Assigné +issues.filter_assginee_no_select=Tous les assignés +issues.filter_assginee_no_assignee=Aucun assigné +issues.filter_poster=Auteur +issues.filter_poster_no_select=Tous les auteurs +issues.filter_type=Type +issues.filter_type.all_issues=Tous les tickets +issues.filter_type.assigned_to_you=Qui vous sont assignés +issues.filter_type.created_by_you=Créés par vous +issues.filter_type.mentioning_you=Vous mentionnant +issues.filter_type.review_requested=Évaluation demandée +issues.filter_type.reviewed_by_you=Évaluée par vous +issues.filter_sort=Trier +issues.filter_sort.latest=Plus récent +issues.filter_sort.oldest=Plus ancien +issues.filter_sort.recentupdate=Mis à jour récemment +issues.filter_sort.leastupdate=Mis à jour jadis +issues.filter_sort.mostcomment=Les plus commentés +issues.filter_sort.leastcomment=Les moins commentés +issues.filter_sort.nearduedate=Date d'échéance la plus proche +issues.filter_sort.farduedate=Date d'échéance la plus éloignée +issues.filter_sort.moststars=Favoris (décroissant) +issues.filter_sort.feweststars=Favoris (croissant) +issues.filter_sort.mostforks=Bifurcations (décroissant) +issues.filter_sort.fewestforks=Bifurcations (croissant) +issues.action_open=Ouvrir +issues.action_close=Fermer +issues.action_label=Label +issues.action_milestone=Jalon +issues.action_milestone_no_select=Aucun jalon +issues.action_assignee=Assigné à +issues.action_assignee_no_select=Pas d'assignataire +issues.action_check=Cocher/Décocher +issues.action_check_all=Cocher/Décocher tous les éléments +issues.opened_by=créé %[1]s par %[3]s +pulls.merged_by=par %[3]s fusionné %[1]s +pulls.merged_by_fake=par %[2]s fusionné %[1]s +issues.closed_by=de %[3]s, clôt %[1]s +issues.opened_by_fake=%[1]s ouvert par %[2]s +issues.closed_by_fake=de %[2]s, clôt %[1]s +issues.previous=Précédent +issues.next=Suivant +issues.open_title=Ouvert +issues.closed_title=Fermé +issues.draft_title=Brouillon +issues.num_comments_1=%d commentaire +issues.num_comments=%d commentaires +issues.commented_at=`a commenté %s.` +issues.delete_comment_confirm=Êtes-vous certain de vouloir supprimer ce commentaire ? +issues.context.copy_link=Copier le lien +issues.context.quote_reply=Citer et répondre +issues.context.reference_issue=Référencer dans un nouveau ticket +issues.context.edit=Éditer +issues.context.delete=Supprimer +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=Fermer avec le commentaire +issues.reopen_issue=Rouvrir +issues.reopen_comment_issue=Réouvrir avec le commentaire +issues.create_comment=Commenter +issues.closed_at=`a fermé ce ticket %s` +issues.reopened_at=`a rouvert ce ticket %s` +issues.commit_ref_at=`a référencé ce ticket depuis une révision %s` +issues.ref_issue_from=`a fait référence à ce ticket %[3]s %[1]s` +issues.ref_pull_from=`a fait référence à cette demande d'ajout %[3]s %[1]s` +issues.ref_closing_from=`a fait référence à une demande d'ajout %[3]s qui clora ce ticket, %[1]s` +issues.ref_reopening_from=`a référencé ce ticket dans une pull request %[3]s qui va ré-ouvrir ce ticket, %[1]s` +issues.ref_from=`de %[1]s` +issues.author=Auteur +issues.role.owner=Propriétaire +issues.role.owner_helper=Cet utilisateur est propriétaire de ce dépôt. +issues.role.member=Membre +issues.role.member_helper=Cet utilisateur est membre de l’organisation propriétaire de ce dépôt. +issues.role.collaborator=Collaborateur +issues.role.collaborator_helper=Cet utilisateur a été invité à collaborer sur le dépôt. +issues.role.first_time_contributor=Première contribution +issues.role.first_time_contributor_helper=C'est la première contribution de cet utilisateur au dépôt. +issues.role.contributor=Contributeur +issues.role.contributor_helper=Cet utilisateur a déjà des révisions dans ce dépôt. +issues.re_request_review=Redemander une évaluation +issues.is_stale=Cette demande d’ajout a été corrigée depuis sa dernière évaluation +issues.remove_request_review=Retirer la demande d’évaluation +issues.remove_request_review_block=Impossible de retirer la demande d’évaluation +issues.dismiss_review=Révoquer l’évaluation +issues.dismiss_review_warning=Êtes-vous sûr de vouloir révoquer cette évaluation ? +issues.sign_in_require_desc=Connectez-vous pour rejoindre cette conversation. +issues.edit=Modifier +issues.cancel=Annuler +issues.save=Enregistrer +issues.label_title=Nom du label +issues.label_description=Description du label +issues.label_color=Couleur du label +issues.label_exclusive=Exclusif +issues.label_archive=Label archivé +issues.label_archived_filter=Afficher les labels archivés +issues.label_archive_tooltip=Les labels archivés sont par défaut exclus des suggestions lors de la recherche par label. +issues.label_exclusive_desc=Remarque : pour rendre des labels mutuellement exclusifs, préfixez leur nom d’une portée au format portée/label. +issues.label_exclusive_warning=Tout label d'une portée en conflit sera retiré lors de la modification des labels d’un ticket ou d’une demande d’ajout. +issues.label_count=%d labels +issues.label_open_issues=%d tickets ouverts +issues.label_edit=Éditer +issues.label_delete=Supprimer +issues.label_modify=Modifier le label +issues.label_deletion=Supprimer le label +issues.label_deletion_desc=Supprimer un labeel l’enlève de tous les tickets. Continuer ? +issues.label_deletion_success=Le label a été supprimé. +issues.label.filter_sort.alphabetically=Par ordre alphabétique +issues.label.filter_sort.reverse_alphabetically=Par ordre alphabétique inversé +issues.label.filter_sort.by_size=Plus petite taille +issues.label.filter_sort.reverse_by_size=Plus grande taille +issues.num_participants_few=%d participants +issues.attachment.open_tab=`Cliquez ici pour voir « %s » dans un nouvel onglet.` +issues.attachment.download=`Cliquez pour télécharger « %s ».` +issues.subscribe=S’abonner +issues.unsubscribe=Se désabonner +issues.unpin_issue=Désépingler le ticket +issues.max_pinned=Vous ne pouvez pas épingler plus de tickets +issues.pin_comment=a épinglé ça %s +issues.unpin_comment=a désépinglé ça %s +issues.lock=Verrouiller la conversation +issues.unlock=Déverrouiller la conversation +issues.lock.unknown_reason=Impossible de verrouiller un ticket avec une raison inconnue. +issues.lock_duplicate=Un ticket ne peut pas être verrouillé à deux reprises. +issues.unlock_error=Impossible de déverrouiller un ticket qui n'est pas verrouillé. +issues.lock_with_reason=a verrouillé en tant que %s et limité la conversation aux collaborateurs %s +issues.lock_no_reason=a verrouillé et limité la conversation aux collaborateurs %s +issues.unlock_comment=a déverrouillé cette conversation %s +issues.lock_confirm=Verrouiller +issues.unlock_confirm=Déverrouiller +issues.lock.notice_1=- Les autres utilisateurs ne peuvent pas ajouter de nouveaux commentaires à ce ticket. +issues.lock.notice_2=- Vous et les autres collaborateurs ayant accès à ce dépôt peuvent toujours laisser des commentaires que d’autres peuvent voir. +issues.lock.notice_3=- Vous pouvez toujours déverrouiller ce ticket à l'avenir. +issues.unlock.notice_1=- Tout le monde sera de nouveau en mesure de commenter ce ticket. +issues.unlock.notice_2=- Vous pouvez toujours verrouiller ce ticket à l'avenir. +issues.lock.reason=Motif de verrouillage +issues.lock.title=Verrouiller la conversation +issues.unlock.title=Déverrouiller la conversation +issues.comment_on_locked=Vous ne pouvez pas commenter un ticket verrouillé. +issues.delete=Supprimer +issues.delete.title=Supprimer ce ticket ? +issues.delete.text=Voulez-vous vraiment supprimer ce ticket ? (Cette opération supprimera définitivement tout le contenu. Envisagez plutôt de le fermer si vous avez l'intention de l'archiver) +issues.tracker=Minuteur +issues.start_tracking_short=Démarrer le chronomètre +issues.start_tracking=Démarrer le suivi du temps +issues.start_tracking_history=`a commencé son travail %s.` +issues.tracker_auto_close=Le minuteur sera automatiquement arrêté quand le ticket sera fermé +issues.tracking_already_started=`Vous avez déjà un minuteur en cours sur un autre ticket !` +issues.stop_tracking=Arrêter le chronomètre +issues.stop_tracking_history=`a fini de travailler %s.` +issues.cancel_tracking=Abandonner le minuteur +issues.cancel_tracking_history=`a abandonné son minuteur %s.` +issues.add_time=Ajouter du temps manuellement +issues.del_time=Supprimer ce minuteur du journal +issues.add_time_short=Pointer du temps +issues.add_time_cancel=Annuler +issues.add_time_history=`a pointé du temps de travail %s.` +issues.del_time_history=`a supprimé son temps de travail %s.` +issues.add_time_hours=Heures +issues.add_time_minutes=Minutes +issues.add_time_sum_to_small=Aucun minuteur n'a été saisi. +issues.time_spent_total=Temps passé total +issues.time_spent_from_all_authors=`Temps passé total : %s` +issues.due_date=Échéance +issues.push_commit_1=a ajouté %d révision %s +issues.push_commits_n=a ajouté %d révisions %s +issues.force_push_codes=`a forcé %[1]s de %[2]s %[8]s à %[4]s %[9]s %[6]s.` +issues.force_push_compare=Comparer +issues.due_date_form=aaaa-mm-jj +issues.due_date_form_edit=Éditer +issues.due_date_form_remove=Supprimer +issues.due_date_not_set=Aucune échéance n'a été définie. +issues.due_date_added=a ajouté l'échéance %s %s +issues.due_date_modified=a modifié l'échéance de %[2]s à %[1]s %[3]s +issues.due_date_remove=a supprimé l'échéance %s %s +issues.due_date_overdue=En retard +issues.due_date_invalid=La date d’échéance est invalide ou hors plage. Veuillez utiliser le format "aaaa-mm-dd". +issues.dependency.title=Dépendances +issues.dependency.issue_no_dependencies=Aucune dépendance définie. +issues.dependency.pr_no_dependencies=Aucune dépendance définie. +issues.dependency.no_permission_1=Vous n’avez pas la permission de voir la dépendance de %d +issues.dependency.no_permission_n=Vous n’avez pas la permission de voir les dépendances de %d +issues.dependency.no_permission.can_remove=Vous n'avez pas la permission de voir cette dépendance, mais vous pouvez la supprimer +issues.dependency.add=Ajouter une dépendance… +issues.dependency.cancel=Annuler +issues.dependency.remove=Supprimer +issues.dependency.remove_info=Supprimer cette dépendance +issues.dependency.added_dependency=`a créé une dépendance %s.` +issues.dependency.removed_dependency=`a supprimé une dépendance %s.` +issues.dependency.pr_closing_blockedby=La fermeture de cette demande d’ajout est bloquée par les tickets suivants +issues.dependency.issue_closing_blockedby=La fermeture de ce ticket est bloquée par les tickets suivants +issues.dependency.issue_close_blocks=Cette demande d'ajout empêche la clôture des tickets suivants +issues.dependency.pr_close_blocks=Cette demande d'ajout empêche la clôture des tickets suivants +issues.dependency.issue_close_blocked=Vous devez fermer tous les tickets qui bloquent ce ticket avant de pouvoir le fermer. +issues.dependency.issue_batch_close_blocked=Impossible de fermer tous les tickets que vous avez choisis, car le ticket #%d a toujours des dépendances ouvertes +issues.dependency.pr_close_blocked=Vous devez fermer tous les tickets qui bloquent cette demande d'ajout avant de pouvoir la fusionner. +issues.dependency.blocks_short=Bloque +issues.dependency.blocked_by_short=Dépend de +issues.dependency.remove_header=Supprimer cette dépendance +issues.dependency.issue_remove_text=Cela supprimera la dépendance de ce ticket. Continuer ? +issues.dependency.pr_remove_text=Cela supprimera la dépendance de cette demande d'ajout. Continuer ? +issues.dependency.setting=Autoriser les dépendances pour les tickets et les demandes d'ajouts +issues.dependency.add_error_same_issue=Vous ne pouvez pas faire dépendre un ticket de lui-même. +issues.dependency.add_error_dep_issue_not_exist=Le ticket dépendant n'existe pas. +issues.dependency.add_error_dep_not_exist=La dépendance n'existe pas. +issues.dependency.add_error_dep_exists=La dépendance existe déjà. +issues.dependency.add_error_cannot_create_circular=Vous ne pouvez pas créer une dépendance avec deux tickets qui se bloquent l'un l'autre. +issues.dependency.add_error_dep_not_same_repo=Les deux tickets doivent être dans le même dépôt. +issues.review.self.approval=Vous ne pouvez approuver vos propres demandes d'ajout. +issues.review.self.rejection=Vous ne pouvez demander de changements sur vos propres demandes de changement. +issues.review.approve=a approuvé ces modifications %s +issues.review.comment=a évalué cette demande d’ajout %s +issues.review.dismissed=a révoqué l’évaluation de %s %s +issues.review.dismissed_label=Révoquée +issues.review.left_comment=a laissé un commentaire +issues.review.content.empty=Vous devez laisser un commentaire indiquant le(s) changement(s) demandé(s). +issues.review.reject=a requis les changements %s +issues.review.wait=a été sollicité pour évaluer cette demande d’ajout %s +issues.review.add_review_request=demande d'évaluation de %[1]s %[2]s +issues.review.remove_review_request=demande d’évaluation retirée pour %[1]s %[2]s +issues.review.remove_review_request_self=a refusé d’évaluer cette demande d’ajout %s +issues.review.pending=En attente +issues.review.pending.tooltip=Ce commentaire n'est pas encore visible par les autres utilisateurs. Pour soumettre vos commentaires en attente, sélectionnez "%s" → "%s/%s/%s" en haut de la page. +issues.review.reviewers=Évaluateurs +issues.review.outdated=Périmé +issues.review.outdated_description=Le contenu a changé depuis que ce commentaire a été fait +issues.review.option.show_outdated_comments=Afficher les commentaires obsolètes +issues.review.option.hide_outdated_comments=Masquer les commentaires obsolètes +issues.review.show_outdated=Afficher les révisions périmées +issues.review.hide_outdated=Cacher les révisions périmées +issues.review.show_resolved=Développer +issues.review.hide_resolved=Réduire +issues.review.resolve_conversation=Clore la conversation +issues.review.un_resolve_conversation=Rouvrir la conversation +issues.review.resolved_by=a marqué cette conversation comme résolue +issues.reference_issue.body=Corps +issues.content_history.deleted=a supprimé +issues.content_history.edited=a édité +issues.content_history.created=a créé +issues.content_history.delete_from_history=Supprimer de l’historique +issues.content_history.delete_from_history_confirm=Supprimer de l’historique ? +issues.content_history.options=Options +compare.compare_base=base +compare.compare_head=comparer + +pulls.desc=Active les demandes d’ajouts et l’évaluation du code. +pulls.new=Nouvelle demande d'ajout +pulls.view=Voir la demande d'ajout +pulls.compare_changes=Nouvelle demande d’ajout +pulls.allow_edits_from_maintainers=Autoriser les modifications des mainteneurs +pulls.allow_edits_from_maintainers_desc=Les utilisateurs ayant un accès en écriture à la branche de base peuvent également soumettre sur cette branche +pulls.allow_edits_from_maintainers_err=La mise à jour à échoué +pulls.compare_changes_desc=Sélectionnez la branche dans laquelle fusionner et la branche depuis laquelle tirer les modifications. +pulls.has_viewed_file=Consulté +pulls.has_changed_since_last_review=Modifié depuis votre dernier passage +pulls.viewed_files_label=%[1]d / %[2]d fichiers vus +pulls.expand_files=Développer tous les fichiers +pulls.collapse_files=Réduire tous les fichiers +pulls.compare_base=fusionner dans +pulls.compare_compare=tirer les modifications depuis +pulls.switch_comparison_type=Changer le type de comparaison +pulls.switch_head_and_base=Passez de head à base +pulls.filter_branch=Filtre de branche +pulls.no_results=Aucun résultat trouvé. +pulls.show_all_commits=Afficher toutes les révisions +pulls.show_changes_since_your_last_review=Affiche les modifications depuis votre dernière évaluation +pulls.showing_only_single_commit=Affiche uniquement les changements de la révision %[1]s +pulls.showing_specified_commit_range=Affichage des changements filtré entre %[1]s..%[2]s +pulls.select_commit_hold_shift_for_range=Maintenir Maj et cliquer sur des révisions pour faire un intervalle +pulls.review_only_possible_for_full_diff=Une évaluation n'est possible que lorsque vous affichez le différentiel complet +pulls.filter_changes_by_commit=Filtrer par révision +pulls.nothing_to_compare=Ces branches sont identiques. Il n’y a pas besoin de créer une demande d'ajout. +pulls.nothing_to_compare_and_allow_empty_pr=Ces branches sont égales. Cette demande d'ajout sera vide. +pulls.has_pull_request='Il existe déjà une demande d'ajout entre ces deux branches : %[2]s#%[3]d' +pulls.create=Créer une demande d'ajout +pulls.change_target_branch_at=`a remplacée la branche cible %s par %s %s` +pulls.tab_conversation=Discussion +pulls.tab_commits=Révisions +pulls.tab_files=Fichiers Modifiés +pulls.reopen_to_merge=Veuillez rouvrir cette demande d'ajout pour effectuer l'opération de fusion. +pulls.cant_reopen_deleted_branch=Cette demande d'ajout ne peut pas être rouverte car la branche a été supprimée. +pulls.merged=Fusionnée +pulls.merged_success=Demande d’ajout fusionnée et fermée avec succès +pulls.closed=Demande d’ajout fermée +pulls.manually_merged=Fusionné manuellement +pulls.merged_info_text=La branche %s peut maintenant être supprimée. +pulls.is_closed=La demande d’ajout a été fermée. +pulls.title_wip_desc=`Préfixer le titre par %s pour empêcher cette demande d'ajout d'être fusionnée par erreur.` +pulls.cannot_merge_work_in_progress=Cette demande d’ajout est en chantier. +pulls.still_in_progress=Toujours en cours ? +pulls.add_prefix=Ajouter le préfixe %s +pulls.remove_prefix=Enlever le préfixe %s +pulls.data_broken=Cette demande d’ajout est impossible par manque d'informations de bifurcation. +pulls.files_conflicted=Cette demande d'ajout contient des modifications en conflit avec la branche ciblée. +pulls.is_checking=Vérification des conflits de fusion en cours. Réessayez dans quelques instants. +pulls.is_ancestor=Cette branche est déjà présente dans la branche ciblée. Il n'y a rien à fusionner. +pulls.is_empty=Les changements sur cette branche sont déjà sur la branche cible. Cette révision sera vide. +pulls.required_status_check_failed=Certains contrôles requis n'ont pas réussi. +pulls.required_status_check_missing=Certains contrôles requis sont manquants. +pulls.required_status_check_administrator=En tant qu'administrateur, vous pouvez toujours fusionner cette requête de pull. +pulls.blocked_by_approvals=Cette demande d'ajout n’est pas suffisamment approuvée. %d approbations obtenues sur %d. +pulls.blocked_by_rejection=Cette demande d’ajout nécessite des corrections sollicitées par un évaluateur officiel. +pulls.blocked_by_official_review_requests=Cette demande d’ajout est bloquée car il manque une ou plusieurs approbations officielles. +pulls.blocked_by_outdated_branch=Cette demande d’ajout est bloquée car elle est obsolète. +pulls.blocked_by_changed_protected_files_1=Cette demande d'ajout est bloquée car elle modifie un fichier protégé : +pulls.blocked_by_changed_protected_files_n=Cette demande d'ajout est bloquée car elle modifie des fichiers protégés : +pulls.can_auto_merge_desc=Cette demande d'ajout peut être fusionnée automatiquement. +pulls.cannot_auto_merge_desc=Cette demande d’ajout ne peut être fusionnée automatiquement en raison de conflits. +pulls.cannot_auto_merge_helper=Fusionner manuellement pour résoudre les conflits. +pulls.num_conflicting_files_1=%d fichier en conflit +pulls.num_conflicting_files_n=%d fichiers en conflit +pulls.approve_count_1=%d approuvé +pulls.approve_count_n=%d approuvés +pulls.reject_count_1=%d demande de modifications +pulls.reject_count_n=%d demandes de modifications +pulls.waiting_count_1=%d évaluation en attente +pulls.waiting_count_n=%d évaluations en attente +pulls.wrong_commit_id=l'ID de la révision doit être un ID de révision sur la branche cible + +pulls.no_merge_desc=Cette demande d’ajout ne peut être fusionnée car toutes les options de fusion du dépôt sont désactivées. +pulls.no_merge_helper=Activez des options de fusion dans les paramètres du dépôt ou fusionnez la demande manuellement. +pulls.no_merge_wip=Cette demande d’ajout ne peut pas être fusionnée car elle est marquée en chantier. +pulls.no_merge_not_ready=Cette demande d’ajout n’est pas prête à être fusionnée, vérifiez les évaluations en cours et le contrôle qualité. +pulls.no_merge_access=Vous n'êtes pas autorisé⋅e à fusionner cette demande d'ajout. +pulls.merge_pull_request=Créer une révision de fusion +pulls.rebase_merge_pull_request=Rebaser puis avancer rapidement +pulls.rebase_merge_commit_pull_request=Rebaser puis créer une révision de fusion +pulls.squash_merge_pull_request=Créer une révision de concaténation +pulls.fast_forward_only_merge_pull_request = Fast-forward uniquement +pulls.merge_manually=Fusionner manuellement +pulls.merge_commit_id=L'ID de la révision de fusion +pulls.require_signed_wont_sign=La branche nécessite des révisions signées mais cette fusion ne sera pas signée + +pulls.invalid_merge_option=Vous ne pouvez pas utiliser cette option de fusion pour cette demande. +pulls.merge_conflict=Fusion échouée : il y a eu un conflit lors de la fusion. Indice : Essayez une stratégie différente +pulls.merge_conflict_summary=Message d'erreur +pulls.rebase_conflict=Fusion échouée : il y a eu un conflit lors du rebasage de la révision %[1]s. Indice : Essayez une stratégie différente +pulls.rebase_conflict_summary=Message d'erreur +pulls.unrelated_histories=Fusion échouée : La tête de fusion et la base ne partagent pas d'historique commun. Indice : Essayez une stratégie différente +pulls.merge_out_of_date=Fusion échouée : La base a été mise à jour en cours de fusion. Indice : Réessayez. +pulls.head_out_of_date=Fusion échouée : L’en-tête a été mis à jour pendant la fusion. Indice : réessayez. +pulls.has_merged=Échec : La demande d’ajout est déjà fusionnée, vous ne pouvez plus la fusionner, ni modifier sa branche cible. +pulls.push_rejected=Échec du push : la soumission a été rejetée. Revoyez les Git hook pour ce dépôt. +pulls.push_rejected_summary=Message de rejet complet +pulls.push_rejected_no_message=Échec du push : la soumission a été rejetée sans raison. Revoyez les Git hooks pour ce dépôt +pulls.open_unmerged_pull_exists=`Vous ne pouvez pas rouvrir ceci car la demande d’ajout #%d, en attente, a des propriétés identiques.` +pulls.status_checking=Certains contrôles sont en attente +pulls.status_checks_success=Tous les contrôles ont réussi +pulls.status_checks_warning=Quelques vérifications ont signalé des avertissements +pulls.status_checks_failure=Certaines vérifications ont échoué +pulls.status_checks_error=Quelques vérifications ont signalé des erreurs +pulls.status_checks_requested=Requis +pulls.status_checks_details=Détails +pulls.status_checks_hide_all=Masquer toutes les vérifications +pulls.status_checks_show_all=Afficher toutes les vérifications +pulls.update_branch=Actualiser la branche par fusion +pulls.update_branch_rebase=Actualiser la branche par rebasage +pulls.update_branch_success=La mise à jour de la branche a réussi +pulls.update_not_allowed=Vous n'êtes pas autorisé à mettre à jour la branche +pulls.outdated_with_base_branch=Cette branche est désynchronisée avec la branche de base +pulls.close=Fermer la demande d’ajout +pulls.closed_at=`a fermé cette demande d'ajout %s` +pulls.reopened_at=`a rouvert cette demande d'ajout %s` +pulls.cmd_instruction_hint=Voir les instructions en ligne de commande +pulls.cmd_instruction_checkout_title=Basculer +pulls.cmd_instruction_checkout_desc=Depuis votre dépôt, basculer sur une nouvelle branche et tester des modifications. +pulls.cmd_instruction_merge_title=Fusionner +pulls.cmd_instruction_merge_desc=Fusionner les modifications et mettre à jour sur Forgejo. +pulls.clear_merge_message=Effacer le message de fusion +pulls.clear_merge_message_hint=Effacer le message de fusion ne supprimera que le message de la révision, mais pas les pieds de révision générés tels que "Co-Authored-By:". + +pulls.auto_merge_button_when_succeed=(Lorsque les vérifications ont réussi) +pulls.auto_merge_when_succeed=Fusionner automatiquement si toutes les vérifications passent +pulls.auto_merge_newly_scheduled=La demande d'ajout était programmée pour fusionner lorsque toutes les vérifications aurait réussi. +pulls.auto_merge_has_pending_schedule=%[1]s Ont planifié cette demande d'ajout pour fusionner automatiquement lorsque toutes les vérifications réussissent %[2]s. + +pulls.auto_merge_cancel_schedule=Annuler la fusion automatique +pulls.auto_merge_not_scheduled=Cette demande d'ajout n'est pas planifiée pour fusionner automatiquement. +pulls.auto_merge_canceled_schedule=La fusion automatique a été annulée pour cette demande d'ajout. + +pulls.auto_merge_newly_scheduled_comment=`a programmé la fusion automatique de cette demande d’ajout, si toutes les vérifications passent, %[1]s.` +pulls.auto_merge_canceled_schedule_comment=`a annulé la fusion automatique de cette demande d'ajout %[1]s.` + +pulls.delete.title=Supprimer cette demande d'ajout ? +pulls.delete.text=Voulez-vous vraiment supprimer cet demande d'ajout ? (Cela supprimera définitivement tout le contenu. Envisagez de le fermer à la place, si vous avez l'intention de le garder archivé) + +pulls.recently_pushed_new_branches=Vous avez soumis sur la branche %[1]s %[2]s + +pull.deleted_branch=(supprimé) : %s + +milestones.new=Nouveau jalon +milestones.closed=%s fermé +milestones.update_ago=Actualisé %s +milestones.no_due_date=Aucune date d'échéance +milestones.open=Ouvrir +milestones.close=Fermer +milestones.new_subheader=Les jalons peuvent vous aider à organiser vos tickets et à suivre leurs progrès. +milestones.completeness=%d%% Complété +milestones.create=Créer un Jalon +milestones.title=Titre +milestones.desc=Description +milestones.due_date=Date d'échéance (facultatif) +milestones.clear=Effacer +milestones.invalid_due_date_format=Le format de la date d'échéance est invalide, il doit être comme suit "aaaa-mm-jj". +milestones.create_success=Le jalon "%s" a été créé. +milestones.edit=Éditer le Jalon +milestones.edit_subheader=Les jalons organisent les tickets et le suivi d'avancement. +milestones.cancel=Annuler +milestones.modify=Mettre à jour un jalon +milestones.edit_success=Le jalon "%s" a été mis à jour. +milestones.deletion=Supprimer un Jalon +milestones.deletion_desc=Supprimer un jalon le retire de tous les tickets. Continuer ? +milestones.deletion_success=Le jalon a été supprimé. +milestones.filter_sort.earliest_due_data=Date d’échéance la plus proche +milestones.filter_sort.latest_due_date=Date d’échéance la plus récente +milestones.filter_sort.least_complete=Le moins complété +milestones.filter_sort.most_complete=Le plus complété +milestones.filter_sort.most_issues=Le plus de tickets +milestones.filter_sort.least_issues=Le moins de tickets + +signing.will_sign=Cette révision sera signée avec la clé « %s ». +signing.wont_sign.error=Une erreur s'est produite lors des vérifications préliminaires à la signature de la révision. +signing.wont_sign.nokey=Aucune clé n’est disponible sur cette instance pour signer cette révision. +signing.wont_sign.never=Les révisions ne sont jamais signées. +signing.wont_sign.always=Les révisions sont toujours signées. +signing.wont_sign.pubkey=La révision ne sera pas signée car vous votre compte ne possède pas de clé publique. +signing.wont_sign.twofa=Vous devez activer l'authentification à deux facteurs pour signer vos révisions. +signing.wont_sign.parentsigned=Cette révision ne sera pas signée car son parent n’est pas signée. +signing.wont_sign.basesigned=La fusion ne sera pas signée car la première révision n’est pas signée. +signing.wont_sign.headsigned=La fusion ne sera pas signée car la dernière révision n’est pas signée. +signing.wont_sign.commitssigned=La fusion ne sera pas signée car ses révisions ne sont pas signées. +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=Wiki externe +wiki=Wiki +wiki.welcome=Bienvenue sur le wiki. +wiki.welcome_desc=Le wiki vous permet d'écrire ou de partager de la documentation avec vos collaborateurs. +wiki.desc=Écrire et partager de la documentation avec vos collaborateurs. +wiki.create_first_page=Créer la première page +wiki.page=Page +wiki.filter_page=Filtrer la page +wiki.new_page=Page +wiki.page_title=Titre de la page +wiki.page_content=Contenu de la page +wiki.default_commit_message=Écrire une note concernant cette mise à jour (optionnel). +wiki.save_page=Enregistrer la page +wiki.last_commit_info=%s a édité cette page %s +wiki.edit_page_button=Modifier +wiki.new_page_button=Nouvelle page +wiki.file_revision=Révisions de la page +wiki.wiki_page_revisions=Révisions de la page wiki +wiki.back_to_wiki=Retour à la page wiki +wiki.delete_page_button=Supprimer la page +wiki.delete_page_notice_1=Supprimer la page de wiki "%s" est irréversible. Continuer ? +wiki.page_already_exists=Une page de wiki avec le même nom existe déjà. +wiki.reserved_page=Le nom de page de wiki "%s" est réservé. +wiki.pages=Pages +wiki.last_updated=Dernière mise à jour : %s +wiki.page_name_desc=Entrez un nom pour cette page Wiki. Certains noms spéciaux sont « Home », « _Sidebar » et « _Footer ». +wiki.original_git_entry_tooltip=Voir le fichier Git original au lieu d'utiliser un lien convivial. + +activity=Activité +activity.navbar.contributors = Contributeurs +activity.period.filter_label=Période : +activity.period.daily=1 jour +activity.period.halfweekly=3 jours +activity.period.weekly=1 semaine +activity.period.monthly=1 mois +activity.period.quarterly=3 mois +activity.period.semiyearly=6 mois +activity.period.yearly=1 an +activity.overview=Vue d'ensemble +activity.merged_prs_count_1=Demande d'ajout fusionnée +activity.merged_prs_count_n=Demandes d'ajout fusionnées +activity.opened_prs_count_1=Demande d'ajout proposée +activity.opened_prs_count_n=Demandes d'ajout proposées +activity.title.user_1=%d utilisateur +activity.title.user_n=%d utilisateurs +activity.title.prs_1=%d demande d'ajout +activity.title.prs_n=%d demandes d'ajout +activity.title.prs_merged_by=%s fusionnée par %s +activity.title.prs_opened_by=%s proposée par %s +activity.merged_prs_label=Fusionnée +activity.opened_prs_label=Proposée +activity.closed_issues_count_1=Ticket fermé +activity.closed_issues_count_n=Tickets fermés +activity.title.issues_1=%d ticket +activity.title.issues_n=%d tickets +activity.title.issues_closed_from=%s fermé par %s +activity.title.issues_created_by=%s créé par %s +activity.closed_issue_label=Fermé +activity.new_issues_count_1=Nouveau ticket +activity.new_issues_count_n=Nouveaux tickets +activity.new_issue_label=Ouvert +activity.title.unresolved_conv_1=%d conversation non résolue +activity.title.unresolved_conv_n=%d conversations non résolues +activity.unresolved_conv_desc=Ces tickets et demandes de fusion récemment mis à jour n'ont pas encore été résolus. +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=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 +activity.git_stats_author_n=%d auteurs +activity.git_stats_pushed_1=a soumis +activity.git_stats_pushed_n=ont soumis +activity.git_stats_commit_1=%d révision +activity.git_stats_commit_n=%d révisions +activity.git_stats_push_to_branch=sur %s et +activity.git_stats_push_to_all_branches=sur toutes les branches. +activity.git_stats_on_default_branch=Sur %s, +activity.git_stats_file_1=%d fichier +activity.git_stats_file_n=%d fichiers +activity.git_stats_files_changed_1=a changé +activity.git_stats_files_changed_n=ont changé +activity.git_stats_additions=et il y a eu +activity.git_stats_addition_1=%d ajout +activity.git_stats_addition_n=%d ajouts +activity.git_stats_and_deletions=et +activity.git_stats_deletion_1=%d suppression +activity.git_stats_deletion_n=%d suppressions + +contributors.contribution_type.filter_label = Type de contributeur : +contributors.contribution_type.commits = Commits +contributors.contribution_type.additions = Ajouts +contributors.contribution_type.deletions = Suppressions +settings=Paramètres +settings.desc=Les paramètres sont l'endroit où gérer les options du dépôt +settings.options=Dépôt +settings.collaboration=Collaborateurs +settings.collaboration.admin=Administrateur +settings.collaboration.write=Écriture +settings.collaboration.read=Lecture +settings.collaboration.owner=Propriétaire +settings.collaboration.undefined=Indéfini +settings.hooks=Webhooks +settings.githooks=Git hooks +settings.basic_settings=Paramètres de base +settings.mirror_settings=Réglages miroir +settings.mirror_settings.docs=Configurez votre dépôt pour synchroniser automatiquement les révisions, étiquettes et branches avec un autre dépôt. +settings.mirror_settings.docs.disabled_pull_mirror.instructions=Configurez votre projet pour soumettre automatiquement les révisions, étiquettes et branches vers un autre dépôt. Les miroirs ont été désactivés par l'administrateur de votre site. +settings.mirror_settings.docs.disabled_push_mirror.instructions=Configurez votre projet pour synchroniser automatiquement les révisions, étiquettes et branches d'un autre dépôt. +settings.mirror_settings.docs.disabled_push_mirror.pull_mirror_warning=Pour l’instant, cela ne peut être fait que dans le menu « Nouvelle migration ». Pour plus d’informations, veuillez consulter : +settings.mirror_settings.docs.disabled_push_mirror.info=Les miroirs push ont été désactivés par l’administrateur de votre site. +settings.mirror_settings.docs.no_new_mirrors=Votre dépôt se synchronise avec un dépôt distant. Vous ne pouvez pas créer de nouveaux miroirs pour le moment. +settings.mirror_settings.docs.can_still_use=Bien que vous ne puissiez pas modifier les miroirs ou en créer de nouveaux, vous pouvez toujours utiliser le(s) miroir(s) existant(s). +settings.mirror_settings.docs.pull_mirror_instructions=Pour configurer un miroir pull, veuillez consulter : +settings.mirror_settings.docs.more_information_if_disabled=Vous pouvez en savoir plus sur les miroirs push et pull ici : +settings.mirror_settings.docs.doc_link_title=Comment mettre en miroir les dépôts ? +settings.mirror_settings.docs.doc_link_pull_section=la section « Pulling from a remote repository » de la documentation. +settings.mirror_settings.docs.pulling_remote_title=Tirer depuis un dépôt distant +settings.mirror_settings.mirrored_repository=Dépôt en miroir +settings.mirror_settings.direction=Direction +settings.mirror_settings.direction.pull=Tirer +settings.mirror_settings.direction.push=Soumission +settings.mirror_settings.last_update=Dernière mise à jour +settings.mirror_settings.push_mirror.none=Aucun miroir push configuré +settings.mirror_settings.push_mirror.remote_url=URL du dépôt distant Git +settings.mirror_settings.push_mirror.add=Ajouter un miroir push +settings.mirror_settings.push_mirror.edit_sync_time=Modifier la fréquence de synchronisation du miroir + +settings.sync_mirror=Synchroniser maintenant +settings.pull_mirror_sync_in_progress=Récupération des changements depuis le miroir distant %s en cours. +settings.push_mirror_sync_in_progress=Versement des changements vers le miroir distant %s en cours. +settings.site=Site Web +settings.update_settings=Appliquer les paramètres +settings.update_mirror_settings=Mettre à jour les paramètres du miroir +settings.branches.switch_default_branch=Changer de branche +settings.branches.update_default_branch=Changer la branche par défaut +settings.branches.add_new_rule=Ajouter une nouvelle règle +settings.advanced_settings=Paramètres avancés +settings.wiki_desc=Activer le wiki du dépôt +settings.use_internal_wiki=Utiliser le wiki interne +settings.use_external_wiki=Utiliser un wiki externe +settings.external_wiki_url=URL wiki externe +settings.external_wiki_url_error=L’URL du wiki externe n’est pas une URL valide. +settings.external_wiki_url_desc=Les visiteurs sont redirigés vers l’URL du wiki externe lors d'un clic sur l’onglet wiki. +settings.issues_desc=Activer le suivi de tickets du dépôt +settings.use_internal_issue_tracker=Utiliser le suivi de tickets interne +settings.use_external_issue_tracker=Utiliser un système de suivi de tickets externe +settings.external_tracker_url=Adresse du système de tickets externe +settings.external_tracker_url_error=L’URL du système de suivi de tickets externe n’est pas une URL valide. +settings.external_tracker_url_desc=Les visiteurs sont redirigés vers l’URL du système de suivi de tickets externe lors d'un clic sur l’onglet tickets. +settings.tracker_url_format=Format de l'URL du système de tickets +settings.tracker_url_format_error=L’URL du système de suivi de tickets externe n’est pas une URL valide. +settings.tracker_issue_style=Format du nombre de tickets du système de tickets externe +settings.tracker_issue_style.numeric=Numérique +settings.tracker_issue_style.alphanumeric=Alphanumérique +settings.tracker_issue_style.regexp=Expression régulière +settings.tracker_issue_style.regexp_pattern=Motif d'expression régulière +settings.tracker_issue_style.regexp_pattern_desc=Le premier groupe capturé sera utilisé à la place de {index}. +settings.tracker_url_format_desc=Utilisez les balises {user}, {repo} et {index} respectivement pour le nom d'utilisateur, le nom du dépôt et le numéro de ticket. +settings.enable_timetracker=Activer le suivi du temps +settings.allow_only_contributors_to_track_time=Restreindre le suivi de temps aux contributeurs +settings.pulls_desc=Activer les demandes d'ajout +settings.pulls.ignore_whitespace=Ignorer les espaces lors des conflits +settings.pulls.enable_autodetect_manual_merge=Activer la détection automatique de la fusion manuelle (Remarque : dans certains cas particuliers, des erreurs de détection peuvent se produire) +settings.pulls.allow_rebase_update=Activer la mise à jour de demande d'ajout par rebase +settings.pulls.default_delete_branch_after_merge=Supprimer la branche après la fusion par default +settings.pulls.default_allow_edits_from_maintainers=Autoriser les modifications par les mainteneurs par défaut +settings.releases_desc=Activer les publications du dépôt +settings.packages_desc=Activer le registre des paquets du dépôt +settings.projects_desc=Activer les projets de dépôt +settings.actions_desc=Activer l'intégration continue avec Forgejo Actions +settings.admin_settings=Paramètres administrateur +settings.admin_enable_health_check=Activer les vérifications de santé du dépôt (git fsck) +settings.admin_code_indexer=Indexeur de code +settings.admin_stats_indexer=Indexeur des statistiques de code +settings.admin_indexer_commit_sha=Dernier commit indexé +settings.admin_indexer_unindexed=Non indexé +settings.reindex_button=Ajouter à queue de réindexation +settings.reindex_requested=Réindexation demandée +settings.admin_enable_close_issues_via_commit_in_any_branch=Fermer un ticket via une révision faite sur une branche non par défaut +settings.danger_zone=Zone de danger +settings.new_owner_has_same_repo=Le nouveau propriétaire a déjà un dépôt nommé ainsi. +settings.convert=Convertir en dépôt standard +settings.convert_desc=Vous pouvez convertir ce miroir en dépôt standard. Cette action est irréversible. +settings.convert_notices_1=Cette opération convertira le miroir en dépôt standard. Cette action est irréversible. +settings.convert_confirm=Convertir le dépôt +settings.convert_succeed=Le miroir a été converti en dépôt standard. +settings.convert_fork=Convertir en dépôt standard +settings.convert_fork_desc=Vous pouvez convertir cette bifurcation en dépôt standard. Cette action est irréversible. +settings.convert_fork_notices_1=Cette opération convertira la bifurcation en dépôt standard. Cette action est irréversible. +settings.convert_fork_confirm=Convertir le dépôt +settings.convert_fork_succeed=La bifurcation a été convertie en dépôt standard. +settings.transfer.title=Changer de propriétaire +settings.transfer.rejected=Le transfert du dépôt a été rejeté. +settings.transfer.success=Le transfert du dépôt a réussi. +settings.transfer_abort=Annuler le transfert +settings.transfer_abort_invalid=Vous ne pouvez pas annuler un transfert de dépôt inexistant. +settings.transfer_abort_success=Le transfert du dépôt vers %s a bien été stoppé. +settings.transfer_desc=Transférer ce dépôt à un autre utilisateur ou une organisation dont vous possédez des droits d'administrateur. +settings.transfer_in_progress=Il y a actuellement un transfert en cours. Veuillez l'annuler si vous souhaitez transférer ce dépôt à un autre utilisateur. +settings.transfer_notices_1=- Vous perdrez l'accès à ce dépôt si vous le transférez à un autre utilisateur. +settings.transfer_notices_2=- Vous conserverez l'accès à ce dépôt si vous le transférez à une organisation dont vous êtes (co-)propriétaire. +settings.transfer_notices_3=- Si le dépôt est privé et est transféré à un utilisateur individuel, cette action s'assure que l'utilisateur a au moins la permission de lire (et modifie les permissions si nécessaire). +settings.transfer_owner=Nouveau propriétaire +settings.transfer_perform=Effectuer le transfert +settings.transfer_started=`Ce dépôt a été marqué pour le transfert et attend la confirmation de "%s"` +settings.transfer_succeed=Le dépôt a été transféré. +settings.signing_settings=Paramètres de vérification de la signature +settings.trust_model=Niveau de confiance +settings.trust_model.default=Modèle de confiance par défaut +settings.trust_model.default.desc=Utiliser le niveau de confiance configuré par défaut pour cette instance Forgejo. +settings.trust_model.collaborator=Collaborateur +settings.trust_model.collaborator.long=Collaborateur : ne se fier qu'aux signatures des collaborateurs du dépôt +settings.trust_model.collaborator.desc=La signature d'une révision est dite « fiable » si elle correspond à un collaborateur du dépôt, indépendamment de son auteur. À défaut, si elle correspond à l'auteur de la révision, elle sera « dilettante », et « discordante » sinon. +settings.trust_model.committer=Auteur +settings.trust_model.committer.long=Auteur : ne se fier qu'aux signatures des auteurs des révisions (mimique GitHub en forçant Forgejo à co-signer ses révisions) +settings.trust_model.committer.desc=La signature d'une révision est dite « fiable » si elle corresponds à son auteur, autrement elle est « discordante ». Pour les révisions déléguées à Forgejo, elles seront signées par Forgejo et l'auteur original sera crédité "Co-authored-by:" et "Co-committed-by:" en pied de révision. Pour cela, la clé configurée par défaut de Forgejo doit correspondre à celle d'un utilisateur. +settings.trust_model.collaboratorcommitter=Collaborateur et Auteur +settings.trust_model.collaboratorcommitter.long=Collaborateur et Auteur : ne se fier qu'aux signatures des auteurs collaborant au dépôt +settings.trust_model.collaboratorcommitter.desc=La signature d'une révision est dite « fiable » si elle correponds à l'auteur collaborant au dépôt. Elle est « dilettante » si elle ne correponds qu'à l'auteur, et autrement « discordante ». Pour les révisions déléguées à Forgejo, elles seront signées par Forgejo et l'auteur original sera crédité "Co-authored-by:" et "Co-committed-by:" en pied de révision. Pour cela, la clé configurée par défaut de Forgejo doit correspondre à celle d'un utilisateur. +settings.wiki_delete=Supprimer les données du wiki +settings.wiki_delete_desc=Supprimer les données du wiki d'un dépôt est permanent. Cette action est irréversible. +settings.wiki_delete_notices_1=- Ceci supprimera de manière permanente et désactivera le wiki de dépôt pour %s. +settings.confirm_wiki_delete=Supprimer les données du wiki +settings.wiki_deletion_success=Les données du wiki de ce dépôt ont été effacées. +settings.delete=Supprimer ce dépôt +settings.delete_desc=Supprimer un dépôt est permanent et irréversible. +settings.delete_notices_1=- Cette opération est irréversible. +settings.delete_notices_2=- Cette opération supprimera définitivement le dépôt %s, y compris le code, les tickets, les commentaires, les données de wiki et les accès des collaborateurs. +settings.delete_notices_fork_1=- Les bifurcations de ce dépôt deviendront indépendants après suppression. +settings.deletion_success=Le dépôt a été supprimé. +settings.update_settings_success=Les options du dépôt ont été mises à jour. +settings.update_settings_no_unit=Impossible de désactiver toutes les fonctionnalités d'un dépôt. Vous ne pourrez gère l'utiliser. +settings.confirm_delete=Supprimer le dépôt +settings.add_collaborator=Ajouter un collaborateur +settings.add_collaborator_success=Le collaborateur a été ajouté. +settings.add_collaborator_inactive_user=Impossible d'ajouter un utilisateur inactif en tant que collaborateur. +settings.add_collaborator_owner=Impossible d'ajouter un propriétaire en tant que collaborateur. +settings.add_collaborator_duplicate=Le collaborateur est déjà ajouté à ce dépôt. +settings.delete_collaborator=Supprimer +settings.collaborator_deletion=Supprimer le collaborateur +settings.collaborator_deletion_desc=La suppression d'un collaborateur révoque son accès à ce dépôt. Continuer ? +settings.remove_collaborator_success=Le collaborateur a été retiré. +settings.org_not_allowed_to_be_collaborator=Les organisations ne peuvent être ajoutées en tant que collaborateur. +settings.change_team_access_not_allowed=La modification de l'accès de l'équipe au dépôt a été limitée au propriétaire de l'organisation +settings.team_not_in_organization=L'équipe n'est pas dans la même organisation que le dépôt +settings.teams=Équipes +settings.add_team=Ajouter une équipe +settings.add_team_duplicate=L'équipe a déjà le dépôt +settings.add_team_success=L'équipe a maintenant accès au dépôt. +settings.change_team_permission_tip=La permission de l'équipe est définie sur la page de configuration de l'équipe et ne peut pas être modifiée par dépôt +settings.delete_team_tip=Cette équipe a accès à tous les dépôts et ne peut pas être supprimée +settings.remove_team_success=L'accès de l'équipe au dépôt a été supprimé. +settings.add_webhook=Ajouter un webhook +settings.add_webhook.invalid_channel_name=Le nom du canal Webhook ne peut pas être vide et ne peut pas contenir seulement un caractère #. +settings.hooks_desc=Les Webhooks font automatiquement des requêtes HTTP POST à un serveur lorsque certains événements Forgejo se déclenchent. Lire la suite dans le guide des Webhooks. +settings.webhook_deletion=Retirer le webhook +settings.webhook_deletion_desc=Supprimer un webhook supprime ses paramètres et son historique. Continuer ? +settings.webhook_deletion_success=Le webhook a été supprimé. +settings.webhook.test_delivery=Tester l'envoi +settings.webhook.test_delivery_desc=Testez ce webhook avec un faux événement. +settings.webhook.test_delivery_desc_disabled=Pour tester ce webhook avec un faux événement, activez-le. +settings.webhook.request=Requête +settings.webhook.response=Réponse +settings.webhook.headers=Entêtes +settings.webhook.payload=Contenu +settings.webhook.body=Corps +settings.webhook.replay.description=Rejouer ce déclencheur. +settings.webhook.replay.description_disabled=Pour rejouer ce webhook, activez-le. +settings.webhook.delivery.success=Un événement a été ajouté à la file d'attente. Cela peut prendre quelques secondes avant qu'il n'apparaisse dans l'historique de livraison. +settings.githooks_desc=Les Git hooks sont lancés par Git lui-même. Ils sont modifiables dans la liste ci-dessous afin de configurer des opérations personnalisées. +settings.githook_edit_desc=Si un Hook est inactif, un exemple de contenu vous sera proposé. Un contenu laissé vide signifie un Hook inactif. +settings.githook_name=Nom du hook +settings.githook_content=Contenu du Hook +settings.update_githook=Mettre le Hook à jour +settings.add_webhook_desc=Forgejo enverra à l'URL cible des requêtes POST avec le Content-Type spécifié. Lire la suite dans le guide des webhooks. +settings.payload_url=URL cible +settings.http_method=Méthode HTTP +settings.content_type=Type de contenu POST +settings.secret=Secret +settings.slack_username=Nom d'utilisateur +settings.slack_icon_url=URL de l'icône +settings.slack_color=Couleur +settings.discord_username=Nom d'utilisateur +settings.discord_icon_url=URL de l'icône +settings.event_desc=Événement déclencheur : +settings.event_push_only=Événements de soumissions +settings.event_send_everything=Tous les événements +settings.event_choose=Événements personnalisés… +settings.event_header_repository=Événements du dépôt +settings.event_create=Création +settings.event_create_desc=Branche ou étiquette créé. +settings.event_delete=Suppression +settings.event_delete_desc=Branche ou étiquette supprimée. +settings.event_fork=Bifurcation +settings.event_fork_desc=Dépôt bifurqué. +settings.event_wiki=Wiki +settings.event_wiki_desc=Page wiki créée, renommée, modifiée ou supprimée. +settings.event_release=Publication +settings.event_release_desc=Publication publiée, mise à jour ou supprimée. +settings.event_push=Soumission +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=Modification +settings.event_issues_desc=Ticket ouvert, rouvert, fermé ou modifié. +settings.event_issue_assign=Assigné +settings.event_issue_assign_desc=Ticket assigné ou dé-assigné. +settings.event_issue_label=Étiqueté +settings.event_issue_label_desc=Labels attribués ou retirés. +settings.event_issue_milestone=Jalonné +settings.event_issue_milestone_desc=Ticket jalonné ou dé-jalonné. +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 d’ajout ouverte, rouverte, fermée ou modifié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=Étiquetée +settings.event_pull_request_label_desc=Label attribué ou retiré. +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=Évaluations +settings.event_pull_request_review_desc=Demande d’ajout 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 +settings.event_package=Paquet +settings.event_package_desc=Paquet créé ou supprimé. +settings.branch_filter=Filtre de branche +settings.branch_filter_desc=Liste de branches et motifs globs autorisant la soumission, la création et suppression de branches. Laisser vide ou utiliser * englobent toutes les branches. Voir la syntaxe Glob. Exemples : master, {master,release*}. +settings.authorization_header=En-tête « Authorization » +settings.authorization_header_desc=Si présent, sera ajouté aux requêtes comme en-tête d’authentification. Exemples : %s. +settings.active=Actif +settings.active_helper=Les informations sur les événements déclenchés seront envoyées à cette url de Webhook. +settings.add_hook_success=Nouveau Webhook ajouté. +settings.update_webhook=Actualiser le déclencheur « webhook » +settings.update_hook_success=Déclencheur Web actualisé. +settings.delete_webhook=Retirer le déclencheur +settings.recent_deliveries=Livraisons récentes +settings.hook_type=Type de déclencheur +settings.slack_token=Jeton +settings.slack_domain=Domaine +settings.slack_channel=Canal +settings.add_web_hook_desc=Intégrez %s dans votre dépôt. +settings.web_hook_name_gitea=Gitea +settings.web_hook_name_forgejo = Forgejo +settings.web_hook_name_gogs=Gogs +settings.web_hook_name_slack=Slack +settings.web_hook_name_discord=Discord +settings.web_hook_name_dingtalk=DingTalk +settings.web_hook_name_telegram=Telegram +settings.web_hook_name_matrix=Matrix +settings.web_hook_name_msteams=Microsoft Teams +settings.web_hook_name_feishu=Feishu / Lark Suite +settings.web_hook_name_feishu_only =Feishu +settings.web_hook_name_larksuite_only =Lark Suite +settings.web_hook_name_wechatwork=WeCom (Wechat Work) +settings.web_hook_name_packagist=Packagist +settings.packagist_username=Nom d'utilisateur Packagist +settings.packagist_api_token=Jeton API +settings.packagist_package_url=URL du paquet Packagist +settings.deploy_keys=Clés de déploiement +settings.add_deploy_key=Ajouter une clé de déploiement +settings.deploy_key_desc=Les clefs de déploiement peuvent avoir un accès en lecture seule ou en lecture et écriture au dépôt. +settings.is_writable=Activer l'accès en écriture +settings.is_writable_info=Autoriser cette clé de déploiement à soumettre sur le dépôt. +settings.no_deploy_keys=Il n'y a pas encore de clefs de déploiement. +settings.title=Titre +settings.deploy_key_content=Contenu +settings.key_been_used=Une clef de déploiement identique est déjà en cours d'utilisation. +settings.key_name_used=Une clef de déploiement du même nom existe déjà. +settings.add_key_success=La clé de déploiement "%s" a été ajoutée. +settings.deploy_key_deletion=Supprimer une clé de déploiement +settings.deploy_key_deletion_desc=La suppression d'une clef de déploiement révoque son accès à ce dépôt. Continuer ? +settings.deploy_key_deletion_success=La clé de déploiement a été supprimée. +settings.branches=Branches +settings.protected_branch=Protection de branche +settings.protected_branch.save_rule=Enregistrer la règle +settings.protected_branch.delete_rule=Supprimer la règle +settings.branch_protection=Paramètres de protection pour les branches du motif "%s" +settings.protect_disable_push=Désactiver la soumission (push) +settings.protect_disable_push_desc=Aucune soumission ne sera possible sur cette branche. +settings.protect_enable_push=Activer la soumission (push) +settings.protect_enable_push_desc=Toute personne ayant un accès en écriture sera autorisée à soumettre sur cette branche (sans forcer). +settings.protect_enable_merge=Activer la fusion +settings.protect_enable_merge_desc=Toute personne ayant un accès en écriture sera autorisée à fusionner les demandes d'ajout dans cette branche. +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 pour pousser +settings.protect_whitelist_teams=Équipes sur liste blanche pour pousser +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 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_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=Approbations requises +settings.protect_required_approvals_desc=Permet de fusionner les demandes d’ajout 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.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 d’ajout, les approbations existantes sont révoquées. +settings.ignore_stale_approvals = Ignorer les approbations obsolètes +settings.ignore_stale_approvals_desc = Ne pas prendre en compte les approbations faites sur d'anciens commits (revues obsolètes) dans le total des approbations pour cette PR. Sans effet si les revues obsolètes ont déjà été annulées. +settings.require_signed_commits=Exiger des révisions (commits) signées +settings.require_signed_commits_desc=Rejeter les soumissions sur cette branche lorsqu'ils ne sont pas signés ou vérifiables. +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 documentation pour la syntaxe du motif. Exemples : main, release/** +settings.protect_patterns=Motifs +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 %[2]s la documentation pour la syntaxe des motifs. Exemples : .drone.yml, /docs/**/*.txt. +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 %[2]s la documentation pour la syntaxe des motifs. Exemples : .drone.yml, /docs/**/*.txt. +settings.update_protect_branch_success=La règle de protection de branche "%s" a été mise à jour. +settings.remove_protected_branch_success=La règle de protection de branche "%s" a été retirée. +settings.remove_protected_branch_failed=Impossible de retirer la règle de protection de branche "%s". +settings.protected_branch_deletion=Désactiver la protection de branche +settings.protected_branch_deletion_desc=Désactiver la protection de branche permet aux utilisateurs ayant accès en écriture de pousser des modifications sur la branche. Continuer ? +settings.block_rejected_reviews=Bloquer la fusion en cas d’évaluations négatives +settings.block_rejected_reviews_desc=La fusion ne sera pas possible lorsque des modifications sont demandées par les évaluateurs officiels, même s'il y a suffisamment d’approbations. +settings.block_on_official_review_requests=Bloquer la fusion en cas de demande d’évaluation officielle +settings.block_on_official_review_requests_desc=La fusion ne sera pas possible tant qu’elle aura des demandes d’évaluations officielles, même s'il y a suffisamment d’approbations. +settings.block_outdated_branch=Bloquer la fusion si la demande d'ajout est obsolète +settings.block_outdated_branch_desc=La fusion ne sera pas possible lorsque la branche principale est derrière la branche de base. +settings.default_branch_desc=Sélectionnez une branche par défaut pour les demandes de fusion et les révisions : +settings.merge_style_desc=Styles de fusion +settings.default_merge_style_desc=Style de fusion par défaut +settings.choose_branch=Choisissez une branche… +settings.no_protected_branch=Il n'y a pas de branche protégée. +settings.edit_protected_branch=Éditer +settings.protected_branch_required_rule_name=Nom de la règle requise +settings.protected_branch_duplicate_rule_name=Il existe déjà une règle pour cet ensemble de branches +settings.protected_branch_required_approvals_min=Le nombre de revues nécessaires ne peut être négatif. +settings.tags=Étiquettes +settings.tags.protection=Protection d'étiquette +settings.tags.protection.pattern=Motif d'étiquette +settings.tags.protection.allowed=Autorisé +settings.tags.protection.allowed.users=Utilisateurs autorisés +settings.tags.protection.allowed.teams=Équipes autorisées +settings.tags.protection.allowed.noone=Personne +settings.tags.protection.create=Ajouter une règle +settings.tags.protection.none=Il n'y a pas d'étiquettes protégées. +settings.tags.protection.pattern.description=Vous pouvez utiliser au choix un nom unique, un motif de glob ou une expression régulière qui correspondra à plusieurs étiquettes. Pour plus d’informations, consultez le guide sur les étiquettes protégées. +settings.bot_token=Jeton (token) de bot +settings.chat_id=ID de conversation +settings.thread_id=ID du fil +settings.matrix.homeserver_url=URL du serveur d'accueil +settings.matrix.room_id=ID de la salle +settings.matrix.message_type=Type de message +settings.archive.button=Archiver ce dépôt +settings.archive.header=Archiver ce dépôt +settings.archive.text=Archiver un dépôt le place en lecture seule et le cache des tableaux de bord. Personne ne pourra faire de nouvelles révisions, d'ouvrir des tickets ou des demandes d'ajouts (pas même vous !). Il est recommandé de documenter la raison de l'archivage afin d'orienter les futurs développeurs susceptibles de forker le dépôt. +settings.archive.success=Ce dépôt a été archivé avec succès. +settings.archive.error=Une erreur s'est produite lors de l'archivage du dépôt. Voir le journal pour plus de détails. +settings.archive.error_ismirror=Vous ne pouvez pas archiver un dépôt en miroir. +settings.archive.branchsettings_unavailable=Le paramétrage des branches n'est pas disponible quand le dépôt est archivé. +settings.archive.tagsettings_unavailable=Le paramétrage des étiquettes n'est pas disponible si le dépôt est archivé. +settings.archive.mirrors_unavailable = Les miroirs ne sont pas disponibles si le dépôt a été archivé. +settings.unarchive.button=Désarchiver ce dépôt +settings.unarchive.header=Réhabiliter ce dépôt +settings.unarchive.text=Réhabiliter un dépôt dégèle les actions de révisions et de soumissions, la gestion des tickets et des demandes d'ajouts. +settings.unarchive.success=Le dépôt a bien été réhabilité. +settings.unarchive.error=Une erreur est survenue en essayant deréhabiliter ce dépôt. Voir le journal pour plus de détails. +settings.update_avatar_success=L'avatar du dépôt a été mis à jour. +settings.lfs=LFS +settings.lfs_filelist=Fichiers LFS stockés dans ce dépôt +settings.lfs_no_lfs_files=Aucun fichier LFS stocké dans ce dépôt +settings.lfs_findcommits=Trouver des révisions +settings.lfs_lfs_file_no_commits=Aucune révision trouvée pour ce fichier LFS +settings.lfs_noattribute=Ce chemin n'a pas l'attribut verrouillable dans la branche par défaut +settings.lfs_delete=Supprimer le fichier LFS possédant l'OID %s +settings.lfs_delete_warning=La suppression d'un fichier LFS peut causer l'erreur "l'objet n'existe pas"au checkout. Êtes-vous certain ? +settings.lfs_findpointerfiles=Trouver les fichiers pointeurs +settings.lfs_locks=Verrous +settings.lfs_invalid_locking_path=Chemin invalide : %s +settings.lfs_invalid_lock_directory=Impossible de verrouiller le répertoire : %s +settings.lfs_lock_already_exists=Verrou déjà existant : %s +settings.lfs_lock=Verrou +settings.lfs_lock_path=Chemin de fichier à verrouiller… +settings.lfs_locks_no_locks=Pas de verrous +settings.lfs_lock_file_no_exist=Le fichier verrouillé n'existe pas dans la branche par défaut +settings.lfs_force_unlock=Forcer le déverrouillage +settings.lfs_pointers.found=%d pointeur(s) sur blob trouvés - %d associés, %d non associés (%d manquant dans le magasin) +settings.lfs_pointers.sha=SHA du blob +settings.lfs_pointers.oid=OID +settings.lfs_pointers.inRepo=Dans le dépôt +settings.lfs_pointers.exists=Existe en magasin +settings.lfs_pointers.accessible=Accessible à l'utilisateur +settings.lfs_pointers.associateAccessible=Associer %d OID accessibles +settings.rename_branch_failed_exist=Impossible de renommer la branche car la branche %s existe déjà. +settings.rename_branch_failed_not_exist=Impossible de renommer la branche %s car elle n’existe pas. +settings.rename_branch_success=La branche %s à été renommée avec succès en %s. +settings.rename_branch=Renommer la branche + +diff.browse_source=Parcourir la source +diff.parent=Parent +diff.commit=révision +diff.git-notes=Notes +diff.data_not_available=Contenu de la comparaison (diff) indisponible +diff.options_button=Option de comparaison (diff) +diff.download_patch=Télécharger le patch en tant que fichier +diff.download_diff=Télécharger le fichier diff +diff.show_split_view=Vue séparée +diff.show_unified_view=Vue unifiée +diff.whitespace_button=Espace +diff.whitespace_show_everything=Afficher toutes les modifications +diff.whitespace_ignore_all_whitespace=Ignorer les espaces lors de la comparaison des lignes +diff.whitespace_ignore_amount_changes=Ignorer les changements quand ce sont des espaces +diff.whitespace_ignore_at_eol=Ignorer les blancs en fin de ligne +diff.stats_desc= %d fichiers modifiés avec %d ajouts et %d suppressions +diff.stats_desc_file=%d modifications : %d ajouts et %d suppressions +diff.bin=BIN +diff.bin_not_shown=Fichier binaire non affiché. +diff.view_file=Voir le fichier +diff.file_before=Avant +diff.file_after=Après +diff.file_image_width=Largeur +diff.file_image_height=Hauteur +diff.file_byte_size=Taille +diff.file_suppressed=Le diff du fichier est caché, car celui-ci est trop grand +diff.file_suppressed_line_too_long=Le diff du fichier est caché, car une ou plusieurs lignes sont trop longues +diff.too_many_files=Certains fichiers ne sont pas affichés car ce diff contient trop de modifications +diff.show_more=Voir plus +diff.load=Voir la diff +diff.generated=générée +diff.vendored=externe +diff.comment.add_line_comment=Commenter cette ligne +diff.comment.placeholder=Laisser un commentaire +diff.comment.markdown_info=Formater avec Markdown est autorisé. +diff.comment.add_single_comment=Commenter (simple) +diff.comment.add_review_comment=Commenter +diff.comment.start_review=Débuter une évaluation +diff.comment.reply=Répondre +diff.review=Terminer l'évaluation +diff.review.header=Évaluer +diff.review.placeholder=Commenter cette évaluation +diff.review.comment=Commenter +diff.review.approve=Approuver +diff.review.self_reject=Les auteurs d’une demande d’ajout ne peuvent pas demander des changements sur leur propre demande d’ajout +diff.review.reject=Demander des changements +diff.review.self_approve=Les auteurs d’une demande d’ajout ne peuvent pas approuver leur propre demande d’ajout +diff.committed_by=révisé par +diff.protected=Protégé +diff.image.side_by_side=Côte à côte +diff.image.swipe=Glisser +diff.image.overlay=Superposition +diff.has_escaped=Cette ligne contient des caractères Unicode cachés +diff.show_file_tree=Afficher l’arborescence des fichiers +diff.hide_file_tree=Masquer l’arborescence des fichiers + +releases.desc=Suivi des publications et des téléchargements. +release.releases=Publications +release.detail=Détails de la publication +release.tags=Étiquettes +release.new_release=Nouvelle publication +release.draft=Brouillon +release.prerelease=Pré-publication +release.stable=Stable +release.compare=Comparer +release.edit=Éditer +release.ahead.commits=%d révisions +release.ahead.target=à %s depuis cette publication +tag.ahead.target=à %s depuis cette étiquette +release.source_code=Code source +release.new_subheader=Les publications vous aide à organiser les versions marquantes de votre projet. +release.edit_subheader=Les publications vous aide à organiser les versions marquantes de votre projet. +release.tag_name=Nom de l'étiquette +release.target=Cible +release.tag_helper=Choisissez une étiquette existante ou créez une nouvelle étiquette. +release.tag_helper_new=Nouvelle étiquette. Cette étiquette sera créée à partir de la cible. +release.tag_helper_existing=Étiquette existante. +release.title=Titre de la publication +release.title_empty=Le titre ne peut pas être vide. +release.message=Décrire cette publication +release.prerelease_desc=Marquer comme pré-publication +release.prerelease_helper=Marquer cette publication comme impropre à la production. +release.cancel=Annuler +release.publish=Publier +release.save_draft=Sauvegarder le brouillon +release.edit_release=Actualiser la publication +release.delete_release=Supprimer cette publication +release.delete_tag=Supprimer l'étiquette +release.deletion=Supprimer cette publication +release.deletion_desc=Supprimer une publication ne supprime que ça. Cela n’affecte pas les étiquettes Git, le code ou l’historique. Continuer ? +release.deletion_success=Cette livraison a été supprimée. +release.deletion_tag_desc=Ceci supprimera cette étiquette du dépôt. Le contenu du dépôt et l'historique resteront inchangés. Continuer ? +release.deletion_tag_success=L'étiquette a été supprimée. +release.tag_name_already_exist=Une publication avec cette étiquette existe déjà. +release.tag_name_invalid=Le nom de l'étiquette est invalide. +release.tag_name_protected=Ce nom d'étiquette est protégé. +release.tag_already_exist=Ce nom d'étiquette existe déjà. +release.downloads=Téléchargements +release.add_tag_msg=Utiliser le titre et le contenu de la publication comme message d’étiquette. +release.add_tag=Créer l'étiquette +release.releases_for=Publications pour %s +release.tags_for=Étiquettes pour %s + +branch.name=Nom de la branche +branch.already_exists=Une branche nommée "%s" existe déjà. +branch.delete_head=Supprimer +branch.delete=Supprimer la branche "%s" +branch.delete_html=Supprimer la branche +branch.delete_desc=La suppression d’une branche est permanente. Bien qu’une branche supprimée puisse temporairement subsister, elle NE PEUT PAS être facilement restaurée. Continuer ? +branch.deletion_success=La branche "%s" a été supprimée. +branch.deletion_failed=Impossible de supprimer la branche "%s". +branch.delete_branch_has_new_commits=La branche "%s" ne peut être supprimé, car de nouvelles révisions ont été ajoutées après la fusion. +branch.create_branch=Créer la branche %s +branch.create_from=`de "%s"` +branch.create_success=La branche "%s" a été créée. +branch.branch_already_exists=La branche "%s" existe déjà dans ce dépôt. +branch.branch_name_conflict=Le nom de la branche "%s" entre en conflit avec la branche déjà existante "%s". +branch.tag_collision=La branche "%s" ne peut être créée car une étiquette avec un nom identique existe déjà dans le dépôt. +branch.deleted_by=Supprimée par %s +branch.restore_success=La branche "%s" a été restaurée. +branch.restore_failed=Impossible de restaurer la branche "%s". +branch.protected_deletion_failed=La branche "%s" est protégé. Elle ne peut pas être supprimée. +branch.default_deletion_failed=La branche "%s" est la branche par défaut. Elle ne peut pas être supprimée. +branch.restore=Restaurer la branche "%s" +branch.download=Télécharger la branche "%s" +branch.rename=Renommer la branche "%s" +branch.included_desc=Cette branche fait partie de la branche par défaut +branch.included=Incluses +branch.create_new_branch=Créer une branche à partir de la branche : +branch.confirm_create_branch=Créer une branche +branch.warning_rename_default_branch=Vous renommez la branche par défaut. +branch.rename_branch_to=Renommer la branche "%s". +branch.create_branch_operation=Créer une branche +branch.new_branch=Créer une nouvelle branche +branch.new_branch_from=`Créer une nouvelle branche à partir de "%s"` +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_success=L'étiquette « %s » a été créée. + +topic.manage_topics=Gérer les sujets +topic.done=Terminé +topic.count_prompt=Vous ne pouvez pas sélectionner plus de 25 sujets +topic.format_prompt=Les sujets doivent commencer par un caractère alphanumérique, peuvent inclure des traits d’union « - » et des points « . », et mesurer jusqu'à 35 caractères. Les lettres doivent être en minuscules. + +find_file.go_to_file=Aller au fichier +find_file.no_matching=Aucun fichier correspondant trouvé + +error.csv.too_large=Impossible de visualiser le fichier car il est trop volumineux. +error.csv.unexpected=Impossible de visualiser ce fichier car il contient un caractère inattendu ligne %d, colonne %d. +error.csv.invalid_field_count=Impossible de visualiser ce fichier car il contient un nombre de champs incorrect à la ligne %d. +admin.update_flags = Mise à jour des drapeaux +admin.failed_to_replace_flags = Échec de remplacement des drapeaux du dépôt +admin.flags_replaced = Drapeaux du dépôt remplacés +rss.must_be_on_branch = Vous devez vous trouver sur une branche pour obtenir un flux RSS. +admin.manage_flags = Gérer les drapeaux +admin.enabled_flags = Drapeaux actifs pour le dépôt : +object_format_helper = Format des objets d'un dépôt. Ne peut pas être changé. SHA1 est le plus compatible. +object_format = Format de l'objet +editor.invalid_commit_mail = Courriel invalide pour la création d'un commit. +commits.browse_further = Continuer la navigation +commits.renamed_from = Renommé depuis %s +pulls.nothing_to_compare_have_tag = La branche/tag sélectionné sont identiques. +issues.blocked_by_user = Vous ne pouvez pas créer de tickets sur ce dépôt car vous avez été bloqué par son propriétaire. +pulls.blocked_by_user = Vous ne pouvez pas créer une pull request sur ce dépôt car vous êtes bloqué par son propriétaire. +wiki.cancel = Annuler +settings.wiki_globally_editable = Permettre l'édition du wiki a tout le monde +pulls.commit_ref_at = `a référencé cette pull request depuis un commit %s` +settings.new_owner_blocked_doer = Le nouveau propriétaire vous a bloqué. +settings.enter_repo_name = Confirmez en entrant le propriétaire et le nom du dépôt exactement comme affiché : +settings.wiki_rename_branch_main = Normalise le nom de la branche du Wiki +settings.wiki_rename_branch_main_desc = Renommer la branche utilisée en interne par le Wiki en "%s". Cette modification est permanente et ne peut être annulée. +settings.wiki_rename_branch_main_notices_2 = Cela changera le nom de la branche interne associée au dépôt du wiki %s de façon permanente. Les checkouts existant devront être mis à jour. +settings.wiki_branch_rename_success = Le nom de branche du wiki associé au dépôt a été normalisé avec succès. +settings.confirm_wiki_branch_rename = Renommer la branche du wiki +settings.add_collaborator_blocked_them = Il n'est pas possible d'ajouter ce collaborateur parce-qu'il a bloqué le propriétaire du dépôt. +settings.mirror_settings.pushed_repository = Dépôt poussé +settings.add_collaborator_blocked_our = Il n'est pas possible d'ajouter ce collaborateur parce-que le propriétaire du dépôt l'a bloqué. +settings.wiki_rename_branch_main_notices_1 = Cette operation NE PEUT PAS ê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 +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 +activity.navbar.pulse = Pouls +pulls.made_using_agit = AGit +activity.navbar.code_frequency = Fréquence de code +activity.navbar.recent_commits = Commits récents +file_follow = Suivre le lien symbolique +settings.confirmation_string = Chaine de confirmation +pulls.agit_explanation = Créé par le workflow AGit. AGit permet aux contributeurs de proposer des modifications en utilisant "git push" sans créer une bifurcation ou une nouvelle branche. +stars = Étoiles +editor.commit_id_not_matching = Le fichier a été modifié pendant que vous l'éditiez. Appliquez les modifications à une nouvelle branche puis procédez à la fusion. +commits.search_branch = Cette branche +open_with_editor = Ouvrir avec %s +pulls.ready_for_review = Prêt à être évalué ? +editor.push_out_of_date = Le push semble obsolète. +issues.num_participants_one = %d participant +issues.archived_label_description = (Archivé) %s +settings.add_webhook.invalid_path = L'emplacement ne peut pas contenir ni ".", ni "..", ni être vide, et ne peut pas commencer ou se terminer par un slash. +settings.sourcehut_builds.secrets_helper = Permettre au job d'accéder aux secrets de build (nécessite la permission SECRETS:RO) +size_format = %[1]s : %[2]s, %[3]s : %[4]s ; %[3]s : %[4]s +settings.sourcehut_builds.visibility = Visibilité du job +settings.sourcehut_builds.secrets = Secrets +settings.sourcehut_builds.manifest_path = Chemin du manifest de build +release.system_generated = Cet attachement a été généré automatiquement. +settings.enforce_on_admins_desc = Les administrateurs du dépôt ne peuvent pas passer outre cette règle. +settings.web_hook_name_sourcehut_builds = Builds SourceHut +settings.enforce_on_admins = Appliquer cette règles aux administrateurs du dépôt +settings.rename_branch_failed_protected = Impossible de renommer la branche %s car il s'agit d'une branche protégée. +settings.event_pull_request_enforcement = Amélioration +settings.graphql_url = URL GraphQL +settings.matrix.room_id_helper = L'identifiant du salon peut être obtenu dans le client web Element. Par exemple : %s. +settings.sourcehut_builds.access_token_helper = Un jeton d'accès ayant des permissions JOBS:RW. Génère un jeton builds.sr.ht ou un jeton builds.sr.ht token ayant accès aux secrets sur meta.sr.ht. +settings.matrix.access_token_helper = Il est recommandé de créer un compte Matrix dédié pour cela. Le jeton d'accès peut être obtenu depuis le client web Element (dans un onglet privé/incognito). Il faut ensuite fermer l'onglet privé/icognito (se déconnecter invaliderait le jeton). +release.hide_archive_links = Masquer les archives générées automatiquement +release.hide_archive_links_helper = Masquer les archives de code source générées automatiquement pour cette publication. Par exemple, si vous téléchargez vos propres archives. +settings.transfer.button = Changer de propriétaire +settings.transfer.modal.title = Changer de propriétaire +wiki.search = Recherche dans le wiki +wiki.no_search_results = Pas de résultats +form.string_too_long = La chaîne de caractère fournie fait plus de %d caractères. +settings.federation_settings = Paramètres de féderation +project = Projets +subscribe.issue.guest.tooltip = Authentifiez vous pour vous abonner à ce ticket. +subscribe.pull.guest.tooltip = Authentifiez vous pour suivre cette demande d'ajout. +issues.author.tooltip.pr = Cet utilisateur est l'auteur de cette pull request. +issues.author.tooltip.issue = Cet utilisateur est l'auteur de ce ticket. +issues.edit.already_changed = Impossible de sauvegarder les changements du ticket 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 +pulls.edit.already_changed = Impossible de sauvegarder les changements de la pull request 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_following_repos = Les URL des dépôts suivis séparés par ";", sans espace. +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 = Avertissement : 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 l’icône ne doit pas dépasser 2048 caractères +issues.review.add_review_requests = demandes d'évaluation de %[1]s %[2]s +issues.review.remove_review_requests = demandes d’évaluation retirée pour %[1]s %[2]s +issues.review.add_remove_review_requests = demandes d'évaluation pour %[1]s et demandes d'évaluation retirées pour %[2]s %[3]s +pulls.delete_after_merge.head_branch.is_protected = La branche head que vous voulez supprimer est une branche protégée et ne peut pas être supprimée. +pulls.delete_after_merge.head_branch.is_default = La branche head que vous voulez supprimer est la branche par défaut et ne peut pas être supprimée. +pulls.delete_after_merge.head_branch.insufficient_branch = Vous n'avez pas le droit de supprimer la branche head. +issues.filter_sort.relevance = Pertinence +diff.git-notes.remove-body = Cette note sera supprimée. +diff.git-notes.add = Ajouter une note +diff.git-notes.remove-header = Supprimer la note +issues.summary_card_alt = Fiche de synthèse d'un ticket nommé "%s" dans le dépôt %s +editor.add_tmpl.filename = fichier +issues.num_reviews_one = %d revue +issues.num_reviews_few = %d revues +settings.default_update_style_desc = Style de mise à jour des demandes de fusion qui sont en retard par rapport à la branche de base. +release.summary_card_alt = Carte résumé de la publication dont le titre est "%s" dans le dépôt %s +pulls.sign_in_require = Identifiez vous pour créer une nouvelle demande d'ajout. +new_from_template = Utiliser un modèle +new_from_template_description = Vous pouvez sélectionner un modèle de dépôt existant sur cette instance et appliquer ses paramètres. +new_advanced = Options avancées +new_advanced_expand = Cliquer pour développer +auto_init_description = Débuter l'historique Git avec un README et ajouter en option les fichier de licence et .gitignore. +issues.reaction.add = Ajouter une réaction +issues.reaction.alt_few = %[1]s a réagit %[2]s. +issues.reaction.alt_many = %[1]s et %[2]d de plus ont réagit %[3]s. +issues.reaction.alt_remove = Enlever la réaction %[1]s du commentaire. +issues.reaction.alt_add = Ajouter la réaction %[1]s du commentaire. +issues.context.menu = Menu commentaire +summary_card_alt = Carte résumé du dépôt %s +archive.pull.noreview = Ce dépôt est archivé. Vous ne pouvez pas faire de revue de demandes d'ajout. +editor.commit_email = Courriel de commit +commits.view_single_diff = Voir les changements dans ce fichier introduit par ce commit +issues.reopen.blocked_by_user = Vous ne pouvez pas ré-ouvrir ce ticket care vous êtes bloqués par le propriétaire du dépôt ou le créateur de ce ticket. +migrate.repo_desc_helper = Laisser vide afin d'importer une description existante +issues.filter_no_results = Pas de résultats +issues.filter_no_results_placeholder = Essayez d'ajuster vos critères de recherche. +archive.nocomment = Il n'est pas possible de commenter car le dépôt est archivé. +comment.blocked_by_user = Il n'est pas possible de commenter car vous avez été bloqué par le propriétaire du dépôt ou l'auteur. +pulls.editable = Editable +pulls.editable_explanation = Cette pull request peut être éditée par les mainteneurs. Vous pouvez y contribuer directement. +sync_fork.branch_behind_one = Cette branche a %[1]d commits de retard sur %[2]s +sync_fork.branch_behind_few = Cettte branche a %[1]d commits de retard sur %[2]s +sync_fork.button = Sync +settings.event_action_failure = Échec +settings.event_action_recover = Récupérer +settings.event_action_success = Réussite +settings.event_header_action = Événements d'exécution d'action +settings.event_action_success_desc = L'exécution de l'action a réussi. +settings.event_action_failure_desc = L'exécution de l'action a échoué. +settings.event_action_recover_desc = L'exécution de l'action a réussi après l'échec de la dernière exécution de l'action dans le même workflow. +issues.filter_type.all_pull_requests = Toutes les demandes d'ajout + +[graphs] +component_loading = Chargement %s… +component_loading_failed = Échec de chargement de %s + +component_loading_info = Cela peut prendre du temps… +component_failed_to_load = Une erreur inattendue s'est produite. +contributors.what = contributions +code_frequency.what = fréquence de code +recent_commits.what = commits récents + + +[org] +org_name_holder=Nom de l'organisation +org_full_name_holder=Nom complet de l'organisation +org_name_helper=Le nom de l'organisation doit être court et mémorable. +create_org=Créer une organisation +repo_updated=Actualisé %s +members=Membres +teams=Équipes +code=Code +lower_members=Membres +lower_repositories=dépôts +create_new_team=Nouvelle équipe +create_team=Créer une équipe +org_desc=Description +team_name=Nom de l'équipe +team_desc=Description +team_name_helper=Le nom d'équipe doit être court et mémorable. +team_desc_helper=Décrire le but ou le rôle de l’équipe. +team_access_desc=Accès au dépôt +team_permission_desc=Autorisation +team_unit_desc=Permettre l’accès aux sections du dépôt +team_unit_disabled=(Désactivé) + +form.name_reserved=Le nom d'organisation "%s" est réservé. +form.name_pattern_not_allowed=Le motif « %s » n'est pas autorisé dans un nom d'organisation. +form.create_org_not_allowed=Vous n'êtes pas autorisé à créer une organisation. + +settings=Paramètres +settings.options=Organisation +settings.full_name=Nom complet +settings.email=Courriel de contact +settings.website=Site Web +settings.location=Localisation +settings.permission=Autorisations +settings.repoadminchangeteam=L'administrateur de dépôt peut ajouter et supprimer l'accès aux équipes +settings.visibility=Visibilité +settings.visibility.public=Public +settings.visibility.limited=Limité (Visible uniquement aux utilisateurs connectés) +settings.visibility.limited_shortname=Limité +settings.visibility.private=Privé (visible uniquement aux membres de l’organisation) +settings.visibility.private_shortname=Privé + +settings.update_settings=Appliquer les paramètres +settings.update_setting_success=Les paramètres de l'organisation ont été mis à jour. +settings.change_orgname_prompt=Remarque : Changer le nom de l'organisation changera également l'URL de votre organisation et libèrera l'ancien nom. +settings.change_orgname_redirect_prompt=L'ancien nom d'utilisateur redirigera jusqu'à ce qu'il soit réclamé. +settings.update_avatar_success=L'avatar de l'organisation a été mis à jour. +settings.delete=Supprimer l'organisation +settings.delete_account=Supprimer cette organisation +settings.delete_prompt=Cette organisation sera supprimée définitivement. Cette action est IRRÉVERSIBLE ! +settings.confirm_delete_account=Confirmer la suppression +settings.delete_org_title=Supprimer l'organisation +settings.delete_org_desc=Cette organisation sera supprimée définitivement. Voulez-vous continuer ? +settings.hooks_desc=Vous pouvez ajouter des webhooks qui seront activés pour tous les dépôts de cette organisation. + +settings.labels_desc=Ajoute des labels qui peuvent être utilisés sur les tickets pour tous les dépôts de cette organisation. + +members.membership_visibility=Visibilité des membres : +members.public=Visible +members.public_helper=Rendre caché +members.private=Caché +members.private_helper=Rendre visible +members.member_role=Rôle du membre : +members.owner=Propriétaire +members.member=Membre +members.remove=Exclure +members.remove.detail=Supprimer %[1]s de %[2]s ? +members.leave=Quitter +members.leave.detail=Êtes vous certain·e de vouloir quitter l'organisation «%s» ? +members.invite_desc=Ajouter un nouveau membre à %s : +members.invite_now=Envoyer une invitation + +teams.join=Rejoindre +teams.leave=Quitter +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=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.write_access=Écriture +teams.admin_access=Accès administrateur +teams.admin_access_helper=Les membres peuvent tirer et pousser des modifications vers les dépôts de l'équipe, et y ajouter des collaborateurs. +teams.no_desc=Aucune description +teams.settings=Paramètres +teams.owners_permission_desc=Les propriétaires ont un accès complet à tous les dépôts et disposent d'un accès administrateur de l'organisation. +teams.members=Membres de L'équipe +teams.update_settings=Appliquer les paramètres +teams.delete_team=Supprimer l'équipe +teams.add_team_member=Ajouter un membre +teams.invite_team_member=Inviter à %s +teams.invite_team_member.list=Invitations en attente +teams.delete_team_title=Supprimer l'équipe +teams.delete_team_desc=Supprimer une équipe supprime l'accès aux dépôts à ses membres. Continuer ? +teams.delete_team_success=L’équipe a été supprimée. +teams.admin_permission_desc=Cette équipe permet l'accès administrateur : les membres peuvent voir, participer et ajouter des collaborateurs à ses dépôts. +teams.create_repo_permission_desc=De plus, cette équipe accorde la permission Créer un dépôt : les membres peuvent créer de nouveaux dépôts dans l'organisation. +teams.repositories=Dépôts de l'équipe +teams.remove_all_repos_title=Supprimer tous les dépôts de l'équipe +teams.remove_all_repos_desc=Ceci supprimera tous les dépôts de l'équipe. +teams.add_all_repos_title=Ajouter tous les dépôts +teams.add_all_repos_desc=Ceci ajoutera tous les dépôts de l'organisation à l'équipe. +teams.add_nonexistent_repo=Le dépôt que vous essayez d'ajouter n'existe pas, veuillez le créer d'abord. +teams.add_duplicate_users=L’utilisateur est déjà un membre de l’équipe. +teams.repos.none=Aucun dépôt n'est accessible par cette équipe. +teams.members.none=Aucun membre dans cette équipe. +teams.specific_repositories=Dépôts spécifiques +teams.specific_repositories_helper=Les membres auront seulement accès aux dépôts explicitement ajoutés à l'équipe. Sélectionner ceci ne supprimera pas automatiquement les dépôts déjà ajoutés avec Tous les dépôts. +teams.all_repositories=Tous les dépôts +teams.all_repositories_helper=L'équipe a accès à tous les dépôts. Sélectionner ceci ajoutera tous les dépôts existants à l'équipe. +teams.invite.title=Vous avez été invité à rejoindre l'équipe %s dans l'organisation %s. +teams.invite.by=Invité par %s +teams.invite.description=Veuillez cliquer sur le bouton ci-dessous pour rejoindre l’équipe. +follow_blocked_user = Vous ne pouvez pas suivre cette organisation car elle vous a bloqué. +open_dashboard = Ouvrir le tableau de bord +settings.change_orgname_redirect_prompt.with_cooldown.few = L'ancien nom d'organisation sera disponible pour n'importe qui après une période de %[1]d jours. Vous pouvez toujours réclamer votre ancien nom d'organisation pendant cette période. +settings.change_orgname_redirect_prompt.with_cooldown.one = L'ancien nom d'organisation sera disponible pour n'importe qui après une période d'%[1]d jour. Vous pouvez toujours réclamer votre ancien nom d'organisation pendant cette période. + +[admin] +dashboard=Tableau de bord +self_check = Auto vérification +identity_access=Identité et accès +users=Comptes utilisateurs +organizations=Organisations +assets=Ressources de code +repositories=Dépôts +hooks=Déclencheurs web +integrations=Intégrations +authentication=Sources d'authentification +emails=Courriels de l'utilisateur +config=Configuration +notices=Informations système +monitor=Surveillance +first_page=Première +last_page=Dernière +total=Total : %d +settings=Paramètres administrateur + +dashboard.clean_unbind_oauth=Effacer les connexions OAuth associées +dashboard.clean_unbind_oauth_success=Toutes les connexions OAuth associées ont été supprimées. +dashboard.delete_inactive_accounts=Supprimer tous les comptes non actifs +dashboard.delete_repo_archives=Supprimer toutes les archives des dépôts (ZIP, TAR.GZ, etc..) +dashboard.delete_missing_repos=Supprimer tous les dépôts dont les fichiers Git sont manquants +dashboard.delete_old_actions=Supprimer toutes les anciennes activités de la base de données +users.user_manage_panel=Gestion du compte utilisateur +users.new_account=Créer un compte +users.send_register_notify=Informer de l'inscription par courriel +users.new_success=Le compte "%s" a bien été créé. +users.edit=Éditer +users.auth_source=Sources d'authentification +users.local=Locales +users.auth_login_name=Nom d'utilisateur pour l'authentification +users.password_helper=Laissez le mot de passe vide pour le garder inchangé. +users.update_profile_success=Le compte a bien été mis à jour. +users.edit_account=Modifier un compte +users.max_repo_creation=Nombre maximal de dépôts +users.max_repo_creation_desc=(Mettre à -1 pour utiliser la limite globale par défaut.) +users.is_activated=Ce compte est activé +users.prohibit_login=Suspendre le compte +users.is_admin=Compte administrateur·rice +users.is_restricted=Compte restreint +users.allow_git_hook=Autoriser la création de déclencheurs Git +users.allow_git_hook_tooltip=Les Déclencheurs Git sont exécutés par le même utilisateur que Forgejo, qui a des privilèges systèmes élevés. Les utilisateurs ayant ce droit peuvent altérer touts les dépôts, compromettre la base de données applicative, et se promouvoir administrateurs de Forgejo. +users.allow_import_local=Autoriser l'importation de dépôts locaux +users.allow_create_organization=Autoriser la création d'organisations +users.update_profile=Modifier un compte +users.delete_account=Supprimer cet utilisateur +users.cannot_delete_self=Vous ne pouvez pas vous supprimer vous-même +users.still_own_repo=Cet utilisateur possède un ou plusieurs dépôts. Veuillez les supprimer ou les transférer à un autre utilisateur. +users.still_has_org=Cet utilisateur est membre d'une organisation. Veuillez le retirer de toutes les organisations dont il est membre au préalable. +users.purge=Purger l'utilisateur +users.purge_help=Éradique l’utilisateur et tous ses dépôts, organisations et paquets. Tous les commentaires et tickets dont l'utilisateur est l'auteur seront aussi effacés. +users.still_own_packages=Cet utilisateur possède encore un ou plusieurs paquets. Supprimez d’abord ces paquets. +users.deletion_success=Le compte a été supprimé. +users.reset_2fa=Réinitialiser l'authentification à deux facteurs +users.details=Informations de l’utilisateur + +emails.email_manage_panel=Gestion des courriels des utilisateurs +emails.primary=Principale +emails.activated=Activée +emails.filter_sort.email=Courriel +emails.filter_sort.email_reverse=Courriel (inversé) +emails.filter_sort.name=Nom d'utilisateur +emails.filter_sort.name_reverse=Nom d'utilisateur (inverse) +emails.updated=Courriel mis à jour +emails.not_updated=Impossible de mettre à jour l’adresse courriel demandée : %v +emails.duplicate_active=Cette adresse courriel est déjà active pour un autre utilisateur. +emails.change_email_header=Mettre à jour les propriétés du courriel +emails.change_email_text=Êtes-vous sûr de vouloir mettre à jour cette adresse courriel ? + +orgs.org_manage_panel=Gestion des organisations +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.private=Privé +packages.package_manage_panel=Gestion des paquets +packages.cleanup=Purger les données expirées +packages.cleanup.success=Les données expirées ont été nettoyées avec succès +defaulthooks=Déclencheurs web par défaut +defaulthooks.desc=Les webhooks font automatiquement des requêtes POST HTTP à un serveur spécifié lorsque certains événements Forgejo se déclenchent. Ceux créés ici sont par défaut copiés sur tous les nouveaux dépôts. Pour plus d'information, consultez le guide des webhooks. +defaulthooks.add_webhook=Ajouter un déclencheur web par défaut +defaulthooks.update_webhook=Mettre à jour le déclencheur web par défaut + +systemhooks=Déclencheurs système +systemhooks.desc=Les webhooks font automatiquement des requêtes POST HTTP à un serveur spécifié lorsque certains événements Forgejo se déclenchent. Ceux créé ici agiront sur tous les dépôts, ce qui peux impacter les performances du système. Pour plus d’information, consultez le guide des webhooks. +systemhooks.add_webhook=Ajouter un rappel système +systemhooks.update_webhook=Mettre à jour un rappel système + +auths.auth_manage_panel=Gestion des sources d'authentification +auths.new=Ajouter une source d'authentification +auths.name=Nom +auths.type=Type +auths.enabled=Activé +auths.syncenabled=Activer la synchronisation des utilisateurs +auths.updated=Mis à jour +auths.auth_type=Type d'authentification +auths.auth_name=Nom de l'authentification +auths.security_protocol=Protocole de sécurité +auths.domain=Domaine +auths.host=Hôte +auths.port=Port +auths.bind_dn=Bind DN +auths.bind_password=Mot de passe Bind +auths.user_base=Utilisateur search base +auths.user_dn=Utilisateur DN +auths.attribute_username=Attribut nom d'utilisateur +auths.attribute_username_placeholder=Laisser vide afin d'utiliser le nom d'utilisateur spécifié dans Forgejo. +auths.attribute_name=Attribut prénom +auths.attribute_surname=Attribut nom de famille +auths.attribute_mail=Attribut courriel +auths.attribute_ssh_public_key=Attribut clef SSH publique +auths.attribute_avatar=Attribut de l'avatar +auths.attributes_in_bind=Aller chercher les attributs dans le contexte de liaison DN +auths.allow_deactivate_all=Permettre à un résultat de recherche vide de désactiver tous les utilisateurs +auths.use_paged_search=Utiliser la recherche paginée +auths.search_page_size=Taille de la page +auths.filter=Filtre utilisateur +auths.admin_filter=Filtre administrateur +auths.restricted_filter=Filtre restrictif +auths.restricted_filter_helper=Laisser vide pour ne définir aucun utilisateur comme restreint. Utilisez un astérisque ("*") pour définir tous les utilisateurs qui ne correspondent pas au filtre Admin comme restreint. +auths.verify_group_membership=Vérifier l’appartenance au groupe LDAP (laisser vide pour ignorer) +auths.group_search_base=DN de recherche du groupe +auths.group_attribute_list_users=Attribut de groupe contenant la liste des utilisateurs +auths.user_attribute_in_group=Attribut utilisateur listé dans le groupe +auths.map_group_to_team=Associer les groupes LDAP aux équipes d'organisation (laissez vide pour ignorer) +auths.map_group_to_team_removal=Retirer les utilisateurs des équipes synchronisées si l'utilisateur n'appartient pas au groupe LDAP correspondant +auths.enable_ldap_groups=Activer les groupes LDAP +auths.ms_ad_sa=Rechercher les attributs MS AD +auths.smtp_auth=Type d'authentification SMTP +auths.smtphost=Hôte SMTP +auths.smtpport=Port SMTP +auths.allowed_domains=Domaines autorisés +auths.allowed_domains_helper=Laisser ce champ vide autorise tous les domaines. Séparez les domaines multiples avec une virgule (","). +auths.skip_tls_verify=Ne pas vérifier TLS +auths.force_smtps=Forcer SMTPS +auths.force_smtps_helper=SMTPS est toujours utilisé sur le port 465. Définissez ceci pour forcer SMTPS sur d'autres ports. (STARTTLS sera utilisé sur d'autres ports si cela est supporté par l'hôte.) +auths.helo_hostname=Nom d’hôte HELO +auths.helo_hostname_helper=Nom d’hôte envoyé avec HELO. Laisser vide pour envoyer le nom d’hôte actuel. +auths.disable_helo=Désactiver HELO +auths.pam_service_name=Nom du Service PAM +auths.pam_email_domain=Domaine de messagerie PAM (optionnel) +auths.oauth2_provider=Fournisseur OAuth2 +auths.oauth2_icon_url=URL de l'icône +auths.oauth2_clientID=ID du client (clé) +auths.oauth2_clientSecret=Secret du client +auths.openIdConnectAutoDiscoveryURL=URL de découverte OpenID Connect +auths.oauth2_use_custom_url=Utiliser des URLs personnalisées au lieu de l’URL par défaut +auths.oauth2_tokenURL=URL du jeton +auths.oauth2_authURL=URL d'autorisation +auths.oauth2_profileURL=URL du profil +auths.oauth2_emailURL=URL de l'e-mail +auths.skip_local_two_fa=Ignorer l’authentification à deux facteurs locale +auths.skip_local_two_fa_helper=Laisser indéfini signifie que les utilisateurs locaux avec l’authentification à deux facteurs activée devront tout de même s’y soumettre pour se connecter +auths.oauth2_tenant=Locataire +auths.oauth2_scopes=Champs d'application supplémentaires +auths.oauth2_required_claim_name=Nom de réclamation requis +auths.oauth2_required_claim_name_helper=Définissez ce nom pour restreindre la connexion depuis cette source aux utilisateurs ayant une réclamation avec ce nom +auths.oauth2_required_claim_value=Valeur de réclamation requise +auths.oauth2_required_claim_value_helper=Restreindre la connexion depuis cette source aux utilisateurs ayant réclamé cette valeur +auths.oauth2_group_claim_name=Réclamer le nom fournissant les noms de groupe pour cette source. (facultatif) +auths.oauth2_admin_group=Valeur de réclamation de groupe pour les administrateurs. (Optionnel, nécessite un nom de réclamation) +auths.oauth2_restricted_group=Valeur de réclamation de groupe pour les utilisateurs restreints. (Optionnel, nécessite un nom de réclamation) +auths.oauth2_map_group_to_team=Associe les groupes réclamés avec les équipes de l'organisation. (Optionnel, nécessite un nom de réclamation) +auths.oauth2_map_group_to_team_removal=Supprimer les utilisateurs des équipes synchronisées si l'utilisateur n'appartient pas au groupe correspondant. +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.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"` +auths.tip.github=Créez une nouvelle application OAuth sur %s +auths.tip.google_plus=Obtenez des identifiants OAuth2 sur la console API de Google (%s) +auths.tip.openid_connect=Utilisez l'URL de découvert OpenID (/.well-known/openid-configuration) pour spécifier les points d'accès +auths.tip.twitter=Rendez-vous sur %s, créez une application et assurez-vous que l'option "Autoriser l'application à être utilisée avec Twitter Connect" est activée +auths.tip.discord=Enregistrer une nouvelle application sur %s +auths.tip.gitea=Enregistrez une nouvelle application OAuth2. Le guide peut être trouvé sur %s +auths.tip.yandex=`Créez une nouvelle application sur %s. Sélectionnez les autorisations suivantes dans la section "Yandex API passport" : "Accès à l'adresse e-mail", "Accès à l'avatar de l'utilisateur" et "Accès au nom d'utilisateur, prénom et prénom, genre"` +auths.tip.mastodon=Entrez une URL d'instance personnalisée pour l'instance mastodon avec laquelle vous voulez vous authentifier (ou utiliser celle par défaut) +auths.edit=Mettre à jour la source d'authentification +auths.activated=Cette source d'authentification est activée +auths.new_success=L'authentification "%s" a été ajoutée. +auths.update_success=La source d'authentification a été mise à jour. +auths.update=Mettre à jour la source d'authentification +auths.delete=Supprimer la source d'authentification +auths.delete_auth_title=Suppression de la source d'authentification +auths.delete_auth_desc=La suppression d'une source d'authentification empêche les utilisateurs de l'utiliser pour se connecter. Continuer ? +auths.still_in_used=Cette source d'authentification est utilisée par un ou plusieurs utilisateurs, veuillez convertir ou supprimer ces comptes utilisateurs avant toute action. +auths.deletion_success=La source d'authentification a été supprimée. +auths.login_source_exist=La source d'authentification "%s" existe déjà. +auths.login_source_of_type_exist=Une source d'authentification de ce type existe déjà. +auths.unable_to_initialize_openid=Impossible d'initialiser le fournisseur OpenID Connect : %s +auths.invalid_openIdConnectAutoDiscoveryURL=URL de découverte automatique invalide (une URL valide commence par http:// ou https://) + +config.server_config=Configuration du serveur +config.app_name=Titre du site +config.app_ver=Version de Forgejo +config.app_url=URL de base de Forgejo +config.custom_conf=Chemin du fichier de configuration +config.custom_file_root_path=Emplacement personnalisé du fichier racine +config.domain=Domaine du serveur +config.offline_mode=Mode hors-ligne +config.disable_router_log=Désactiver la journalisation du routeur +config.run_user=Exécuter avec l'utilisateur +config.run_mode=Mode d’exécution +config.app_data_path=Chemin des données d'application +config.repo_root_path=Emplacement des Dépôts +config.lfs_root_path=Répertoire racine LFS +config.log_file_root_path=Chemin des fichiers logs +config.script_type=Type de script +config.reverse_auth_user=Annuler l'authentification par proxy de l'utilisateur + +config.lfs_config=Configuration LFS +config.lfs_enabled=Activé +config.lfs_content_path=Chemin du contenu LFS +config.lfs_http_auth_expiry=Expiration de l'authentification HTTP LFS + +config.service_config=Configuration du service +config.register_email_confirm=Exiger la confirmation de l'e-mail lors de l'inscription +config.disable_register=Désactiver le formulaire d'inscription +config.allow_only_internal_registration=Autoriser l'inscription uniquement via Forgejo lui-même +config.allow_only_external_registration=N'autoriser l'inscription qu'à partir de services externes +config.enable_openid_signup=Activer l'inscription avec OpenID +config.enable_openid_signin=Activer la connexion avec OpenID +config.show_registration_button=Afficher le bouton d'enregistrement +config.require_sign_in_view=Exiger la connexion pour afficher les pages +config.mail_notify=Activer les notifications par courriel +config.enable_captcha=Activer le CAPTCHA +config.active_code_lives=Date d'expiration du code d'activation +config.reset_password_code_lives=Durée d'expiration du code de récupération de compte +config.default_keep_email_private=Masquer les adresses courriel par défaut +config.default_allow_create_organization=Autoriser la création d'organisations par défaut +config.enable_timetracking=Activer le suivi du temps +config.default_enable_timetracking=Activer le suivi de temps par défaut +config.allow_dots_in_usernames = Les points sont autorisés dans les noms d'utilisateurs. Sans effet sur les comptes existants. +config.default_allow_only_contributors_to_track_time=Restreindre le suivi de temps aux contributeurs +config.no_reply_address=Domaine pour les courriels cachés +config.default_visibility_organization=Visibilité par défaut des nouvelles organisations +config.default_enable_dependencies=Activer les dépendances pour les tickets par défaut + +config.webhook_config=Configuration des déclencheurs +config.queue_length=Longueur de la file d'attente +config.deliver_timeout=Expiration d'envoi +config.skip_tls_verify=Passer la vérification TLS + +config.test_email_placeholder=E-mail (ex : test@example.com) +config.send_test_mail=Envoyer un courriel de test +config.send_test_mail_submit=Envoyer +config.test_mail_failed=Impossible d'envoyer un courriel de test à "%s" : %v +config.test_mail_sent=Un courriel de test a été envoyé à "%s". + +config.oauth_config=Configuration OAuth +config.oauth_enabled=Activé + +config.cache_config=Configuration du cache +config.cache_adapter=Adaptateur du cache +config.cache_interval=Intervales du cache +config.cache_conn=Connexion du cache +config.cache_item_ttl=Durée de vie des éléments dans le cache + +config.session_config=Configuration de session +config.session_provider=Fournisseur de session +config.provider_config=Configuration du fournisseur +config.cookie_name=Nom du cookie +config.gc_interval_time=Intervalles GC +config.session_life_time=Durée des sessions +config.https_only=HTTPS uniquement +config.cookie_life_time=Expiration du cookie + +config.picture_config=Configuration de l'avatar +config.picture_service=Service d'imagerie +config.disable_gravatar=Désactiver Gravatar +config.enable_federated_avatar=Activer les avatars fédérés + +config.log_config=Configuration du journal +config.logger_name_fmt=Logger : %s +config.disabled_logger=Désactivé +config.access_log_mode=Mode de journalisation d'accès +config.access_log_template=Modèle de journal d'accès +config.xorm_log_sql=Activer la journalisation SQL + +config.set_setting_failed=Impossible de définir le paramètre %s + +monitor.stats=Stats + +monitor.cron=Tâches récurrentes +monitor.name=Nom +monitor.schedule=Planification +monitor.next=Suivant +monitor.previous=Précédent +monitor.execute_times=Exécutions +monitor.process=Processus en cours d'exécution +monitor.stacktrace=Piles d'execution +monitor.processes_count=%d processus +monitor.download_diagnosis_report=Télécharger le rapport de diagnostic +monitor.desc=Description +monitor.start=Heure de démarrage +monitor.execute_time=Heure d'Éxécution +monitor.last_execution_result=Résultat +monitor.process.cancel=Annuler le processus +monitor.process.cancel_desc=L'annulation d'un processus peut entraîner une perte de données +monitor.process.cancel_notices=Annuler : %s ? +monitor.process.children=Enfant + +notices.system_notice_list=Notifications systèmes +notices.view_detail_header=Voir les détails de la notification +notices.operations=Opérations +notices.select_all=Tout sélectionner +notices.deselect_all=Tout désélectionner +notices.inverse_selection=Inverser la sélection +notices.delete_selected=Supprimer les éléments sélectionnés +notices.delete_all=Supprimer toutes les notifications +notices.type=Type +notices.type_1=Dépôt +notices.type_2=Tâche +notices.desc=Description +notices.op=Opération +notices.delete_success=Les informations systèmes ont été supprimées. +self_check.no_problem_found=Aucun problème trouvé pour l’instant. +self_check.database_collation_mismatch=Exige que la base de données utilise la collation %s +self_check.database_collation_case_insensitive=La base de données utilise la collation %s, insensible à la casse. Bien que Forgejo soit compatible, il peut y avoir quelques rares cas qui ne fonctionnent pas comme prévu. +self_check.database_inconsistent_collation_columns=La base de données utilise la collation %s, mais ces colonnes utilisent des collations différentes. Cela peut causer des problèmes imprévus. +self_check.database_fix_mysql=Pour les utilisateurs de MySQL ou MariaDB, vous pouvez utiliser la commande « forgejo doctor convert » dans un terminal ou exécuter une requête du type « ALTER … COLLATE ... » pour résoudre les problèmes de collation. +config_settings = Paramètres +config_summary = Résumé +auths.tips.gmail_settings = Paramètres Gmail : +auths.tip.gitlab_new = Enregistrer une nouvelle application sur %s +auths.default_domain_name = Nom de domaine par défaut utilisé pour le courriel +config.open_with_editor_app_help = Les éditeurs du menu "Ouvrir avec". Si laissé vide, les valeurs par défaut seront utilisées. Ouvrir pour voir les valeurs par défaut. +config.app_slogan = Slogan de l'instance +config.cache_test_slow = Test du cache réussi, mais le temps de réponse est lent : %s. +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 l'adresse e-mail +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é. +monitor.duration = Durée (s) + +[action] +create_repo=a créé le dépôt %s +rename_repo=a rebaptisé le dépôt %[1]s en %[3]s +commit_repo=a soumis sur %[3]s dans %[4]s +create_issue=`a ouvert le ticket %[3]s#%[2]s` +close_issue=`a fermé le ticket %[3]s#%[2]s` +reopen_issue=`a rouvert le ticket %[3]s#%[2]s` +create_pull_request=`a créé la demande d’ajout %[3]s#%[2]s` +close_pull_request=`a fermé la demande d’ajout %[3]s#%[2]s` +reopen_pull_request=`a rouvert la demande d’ajout %[3]s#%[2]s` +comment_issue=`a commenté le ticket %[3]s#%[2]s` +comment_pull=`a commenté la demande d’ajout %[3]s#%[2]s` +merge_pull_request=`a fusionné la demande d’ajout %[3]s#%[2]s` +auto_merge_pull_request=`a fusionné automatiquement la demande d’ajout %[3]s#%[2]s` +transfer_repo=a transféré le dépôt %s vers %s +push_tag=a poussé l’étiquette %[3]s de %[4]s +delete_tag=a supprimé l’étiquette %[2]s de %[3]s +delete_branch=a supprimée la branche %[2]s de %[3]s +compare_branch=Comparer +compare_commits=Comparer %d révisions +compare_commits_general=Comparer les révisions +mirror_sync_push=a synchronisé les révisions de %[3]s d’un miroir vers %[4]s +mirror_sync_create=a synchronisé la nouvelle référence %[3]s d’un miroir vers %[4]s +mirror_sync_delete=a synchronisé puis supprimé la nouvelle référence %[2]s vers %[3]s depuis le miroir +approve_pull_request=`a approuvé %[3]s#%[2]s` +reject_pull_request=`a suggérés des changements pour %[3]s#%[2]s` +publish_release=`a publié %[4]s dans %[3]s` +review_dismissed=`a révoqué l’évaluation de %[4]s dans %[3]s#%[2]s` +review_dismissed_reason=Raison : +create_branch=a créé la branche %[3]s dans %[4]s +starred_repo=aime %[2]s +watched_repo=observe %[2]s + +[tool] +now=maintenant +future=futur +1s=1 seconde +1m=1 minute +1h=1 heure +1d=1 jour +1w=1 semaine +1mon=1 mois +1y=1 an +seconds=%d secondes +minutes=%d minutes +hours=%d heures +days=%d jours +weeks=%d semaines +months=%d mois +years=%d ans +raw_seconds=secondes +raw_minutes=minutes + +[dropzone] + +[notification] + +[gpg] + +[units] +unit=Unité +error.no_unit_allowed_repo=Vous n'êtes pas autorisé à accéder à n'importe quelle section de ce dépôt. +error.unit_not_allowed=Vous n'êtes pas autorisé à accéder à cette section du dépôt. + +[packages] +desc=Gérer les paquets du dépôt. +conan.details.repository=Dépôt +owner.settings.cleanuprules.enabled=Activé +owner.settings.cleanuprules.keep.count.1=1 version par paquet +owner.settings.cleanuprules.keep.count.n=%d versions par paquet + +[secrets] +secrets=Secrets +description=Les secrets seront transmis à certaines actions et ne pourront pas être lus autrement. +none=Il n'y a pas encore de secrets. +creation=Ajouter un secret +creation.name_placeholder=Caractères alphanumériques ou tirets bas uniquement, insensibles à la casse, ne peut commencer par FORGEJO_, GITEA_ ou GITHUB_ +creation.value_placeholder=Entrez n’importe quoi. Les blancs cernant seront taillés. +creation.success=Le secret "%s" a été ajouté. +creation.failed=Impossible d'ajouter le secret. +deletion=Supprimer le secret +deletion.description=La suppression d'un secret est permanente et irréversible. Continuer ? +deletion.success=Le secret a été supprimé. +deletion.failed=Impossible de supprimer le secret. +management=Gestion des secrets + +[actions] +unit.desc=Gérer l'intégration continue avec Forgejo Actions. + +runs.no_runs=Le flux de travail n'a pas encore d'exécution. +runs.empty_commit_message=(message de révision vide) + +workflow.disable=Désactiver le workflow +workflow.disable_success=Le flux de travail « %s » a bien été désactivé. +workflow.enable=Activer le workflow +workflow.enable_success=Le workflow « %s » a bien été activé. +workflow.disabled=Le flux de travail est désactivé. + +need_approval_desc=Besoin d’approbation pour exécuter des flux de travail pour une demande d’ajout de bifurcation. + +variables.id_not_exist = La variable numéro %d n’existe pas. +workflow.dispatch.use_from = Utiliser un workflow depuis +workflow.dispatch.trigger_found = Ce workflow a un déclencheur d'événement workflow_dispatch. +workflow.dispatch.run = Exécuter le workflow +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. +runs.no_workflows.help_write_access = Vous ne savez pas par où commencer avec Forgejo Actions ? Regardez la section démarrage rapide dans la documentation utilisateur pour écrire votre premier workflow, puis mettre en place un Forgejo runner pour exécuter vos jobs. +runs.no_workflows.help_no_write_access = Pour en savoir plus sur Forgejo Actions, consultez la documentation. + +[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 +directory=Dossier +normal_file=Fichier normal +executable_file=Fichier exécutable +symbolic_link=Lien symbolique +submodule=Sous-module + + + +[search] +search = Rechercher… +type_tooltip = Type de recherche +fuzzy = Approximatif +runner_kind = Chercher les runners… +no_results = Aucun résultat n'a été trouvé. +keyword_search_unavailable = La recherche par mot-clé n'est pas disponible actuellement. Veuillez contacter l'administrateur du site. +fuzzy_tooltip = Inclure les résultats proches des termes recherchés +repo_kind = Chercher dans les dépôts… +user_kind = Chercher les utilisateurs… +org_kind = Chercher les organisations… +team_kind = Chercher les équipes… +code_kind = Chercher dans le code… +code_search_unavailable = La recherche dans le code n'est pas disponible. Veuillez contacter l'administrateur du site. +package_kind = Chercher les paquets… +project_kind = Chercher les projets… +branch_kind = Chercher les branches… +commit_kind = Chercher les commits… +exact = Exact +exact_tooltip = Inclure uniquement les résultats qui correspondent exactement au terme recherché +issue_kind = Rechercher dans les tickets… +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… +regexp_tooltip = Interpréter le terme de recherche comme une expression régulière +regexp = RegExp + + +[munits.data] + +[markup] + +[repo.permissions] +pulls.write = Écrire : 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 = Lire : Voir les flux de travail et leurs journaux. +releases.read = Lire: Voir et télécharger les versions. +releases.write = Écrire : Publier, modifier et supprimer des versions et leurs ressources. +projects.write = Écrire : Créer des projets, des colonnes et les modifier. +code.read = Lire : 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 = Écrire : Pousser vers le dépôt, créer des branches et des étiquettes. +issues.read = Lire : Lire et créer des tickets et des commentaires. +wiki.read = Lire : Lire le wiki intégré et son historique. +wiki.write = Écrire : Créer, mettre à jour et supprimer des pages dans le wiki intégré. +projects.read = Lire : Accéder aux tableaux de projet du dépôt. +packages.read = Lire : Voir et télécharger les paquets assignés au dépôt. +packages.write = Écrire : Publier et supprimer des paquets assignés au dépôt. +actions.write = Écrire: Déclencher, redémarrer et annuler les flux de travail. Gérer la délégation des autorisations aux auteurs de pull request. +ext_wiki = Accéder au lien vers un wiki externe. Les autorisations sont gérées de manière externe. +issues.write = Écrire : 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 = Lire : 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 Forgejo même 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 difficile 100 % de complétion. :- diff --git a/options/locale/locale_ga-IE.ini b/options/locale/locale_ga-IE.ini index 76ebcd1b91..6693d0f610 100644 --- a/options/locale/locale_ga-IE.ini +++ b/options/locale/locale_ga-IE.ini @@ -2800,61 +2800,12 @@ first_page = Ar dtús last_page = Deiridh total = Iomlán: %d settings = Socruithe Riaracháin -dashboard.statistic = Achoimre -dashboard.system_status = Stádas an Chórais -dashboard.operation_name = Ainm Oibríochta -dashboard.operation_switch = Athraigh -dashboard.operation_run = Rith dashboard.clean_unbind_oauth = Glan naisc OAuth neamhcheangailte dashboard.clean_unbind_oauth_success = Scriosadh gach nasc OAuth neamhcheangailte. -dashboard.task.started = Tasc Tosaigh: %[1]s -dashboard.task.process = Tasc: %[1]s -dashboard.task.cancelled = Tasc: %[1]s cealaithe: %[3]s -dashboard.task.error = Earráid sa Tasc: %[1]s: %[3]s -dashboard.task.finished = Tasc: Tá %[1]s tosaithe ag %[2]s críochnaithe -dashboard.task.unknown = Tasc anaithnid: %[1]s -dashboard.cron.started = Cron tosaithe: %[1]s -dashboard.cron.process = Cron: %[1]s -dashboard.cron.cancelled = Cron: %[1]s cealaithe: %[3]s -dashboard.cron.error = Earráid i gCron: %s: %[3]s -dashboard.cron.finished = Cron: %[1]s críochnaithe dashboard.delete_inactive_accounts = Scrios gach cuntas neamhghníomhach -dashboard.delete_inactive_accounts.started = Tasc scriostha gach cuntas neamhghníomhachtaithe tosaithe. -dashboard.delete_repo_archives.started = Scrios gach tasc cartlann stórais a thosaigh. dashboard.delete_missing_repos = Scrios gach stóras atá in easnamh ar a gcuid comhad Git -dashboard.delete_missing_repos.started = Scrios gach stóras atá in easnamh ar a dtasc comhaid Git a thosaigh. -dashboard.delete_generated_repository_avatars = Scrios abhatáranna stórtha ginte -dashboard.sync_repo_tags = Clibeanna sioncraigh ó shonraí git go bunachar sonraí -dashboard.update_mirrors = Scátháin a nuashonrú -dashboard.repo_health_check = Seiceáil sláinte gach stóras -dashboard.check_repo_stats = Seiceáil gach staitisticí stórais -dashboard.archive_cleanup = Scrios sean-chartlanna stórais -dashboard.deleted_branches_cleanup = Brainsí scriosta a ghlanadh -dashboard.update_migration_poster_id = Nuashonraigh ID póstaer imir -dashboard.git_gc_repos = Bailíonn truflais gach stórais -dashboard.reinit_missing_repos = Aththosaigh gach stórais Git atá in easnamh a bhfuil taifid ann dóibh -dashboard.sync_external_users = Sioncrónaigh sonraí úsáideoirí seachtracha -dashboard.cleanup_hook_task_table = Glan suas an tábla hook_task -dashboard.cleanup_packages = Glan suas pacáistí atá imithe in éag dashboard.delete_old_actions = Scrios gach sean-ghníomhaíocht ón mbunachar -dashboard.delete_old_actions.started = Scrios na sean-ghníomhaíocht go léir ón mbunachar sonraí tosaithe. -dashboard.update_checker = Seiceoir nuashonraithe -dashboard.delete_old_system_notices = Scrios gach seanfhógra córais ón mbunachar sonraí -dashboard.gc_lfs = Bailigh truflais meta rudaí LFS -dashboard.rebuild_issue_indexer = Atógáil innéacsóir eisiúna users.new_account = Cruthaigh cuntas Úsáideora -users.name = Ainm úsáideora -users.full_name = Ainm Iomlán -users.activated = Gníomhachtaithe -users.admin = Riarachán -users.restricted = Srianta -users.reserved = In áirithe -users.bot = Bota -users.remote = Iargúlta -users.2fa = 2FA -users.repos = Stórais -users.created = Cruthaithe -users.last_login = Sínigh Isteach Deiridh users.new_success = Tá an cuntas úsáideora "%s" cruthaithe. users.edit = Eagar users.auth_source = Foinse Fíordheimhnithe @@ -2887,35 +2838,16 @@ emails.delete = Scrios seoladh ríomhphoist emails.delete_desc = An bhfuil tú cinnte gur mhaith leat an seoladh ríomhphoist seo a scriosadh? emails.deletion_success = Tá an seoladh ríomhphoist scriosta. emails.delete_primary_email_error = Ní féidir leat an ríomhphost príomhúil a scriosadh. -orgs.name = Ainm -orgs.teams = Foirne -orgs.members = Comhaltaí -orgs.new_orga = Eagraíocht Nua repos.unadopted = Stórais Neamhghlactha -repos.owner = Úinéir -repos.name = Ainm repos.private = Príobháideach -repos.issues = Saincheisteanna -repos.size = Méid -repos.lfs_size = Méid LFS -packages.total_size = Méid Iomlán: %s -packages.unreferenced_size = Méid gan tagairt: %s packages.cleanup = Glan suas sonraí in éag packages.cleanup.success = Glanadh suas sonraí in éag go rathúil -packages.owner = Úinéir -packages.creator = Cruthaitheoir -packages.name = Ainm -packages.version = Leagan -packages.type = Cineál -packages.repository = Stóráil -packages.size = Méid -packages.published = Foilsithe defaulthooks = Réamhshocraithe Crúcaí Gréasán -defaulthooks.add_webhook = Cuir Crúca Gréasán Réamhshocraithe leis -defaulthooks.update_webhook = Nuashonraigh Réamhshocrú Crúca Gréasán +defaulthooks.add_webhook = Cuir crúca gréasáin réamhshocraithe leis +defaulthooks.update_webhook = Nuashonraigh an crúca gréasáin réamhshocraithe systemhooks = Córas Crúcaí Gréasán -systemhooks.add_webhook = Cuir Crúca Gréasán Córas leis -systemhooks.update_webhook = Nuashonraigh Córas Crúca Gréasán +systemhooks.add_webhook = Cuir crúca gréasáin an chórais leis +systemhooks.update_webhook = Nuashonraigh crúca gréasáin an chórais auths.new = Cuir Foinse Fíordheimhni auths.name = Ainm auths.type = Cineál @@ -3022,33 +2954,14 @@ config.domain = Fearann freastalaí config.offline_mode = Mód Áitiúil config.disable_router_log = Díchumasaigh Loga an Ródaire config.run_mode = Mód Rith -config.git_version = Leagan Git config.app_data_path = Cosán Sonraí Aip config.repo_root_path = Cosán Fréimhe Stórála config.lfs_root_path = Cosán Fréamh LFS config.log_file_root_path = Cosán Logála config.script_type = Cineál Script -config.ssh_config = Cumraíocht SSH -config.ssh_enabled = Cumasaithe -config.ssh_start_builtin_server = Úsáid Freastalaí Ionsuite -config.ssh_domain = Fearainn Freastalaí SSH -config.ssh_port = Calafort -config.ssh_listen_port = Éist Calafort -config.ssh_root_path = Cosán Fréimhe -config.ssh_key_test_path = Cosán Tástáil Eochair -config.ssh_minimum_key_size_check = Seiceáil Íosta Méid Eochair -config.ssh_minimum_key_sizes = Méideanna Íosta Eochrach config.lfs_config = Cumraíocht LFS config.lfs_enabled = Cumasaithe config.lfs_content_path = Cosán Ábhar LFS -config.db_config = Cumraíocht Bunachar Sonraí -config.db_type = Cineál -config.db_host = Óstach -config.db_name = Ainm -config.db_user = Ainm úsáideora -config.db_schema = Scéim -config.db_ssl_mode = SSL -config.db_path = Cosán config.service_config = Cumraíocht Seirbhíse config.register_email_confirm = Deimhniú Ríomhphost a éileamh chun Clárú config.disable_register = Díchumasaigh Féin-Chlárú @@ -3069,18 +2982,6 @@ config.webhook_config = Cumraíocht Crúca Gréasán config.queue_length = Fad scuaine config.deliver_timeout = Teorainn Ama Seachadta config.skip_tls_verify = Scipeáil Fíorú TLS -config.mailer_config = Cumraíocht Seoltóra -config.mailer_enabled = Cumasaithe -config.mailer_enable_helo = Cumasaigh HELO -config.mailer_name = Ainm -config.mailer_protocol = Prótacal -config.mailer_smtp_port = Calafort SMTP -config.mailer_user = Úsáideoir -config.mailer_use_sendmail = Úsáid Sendmail -config.mailer_sendmail_path = Cosán Sendmail -config.mailer_sendmail_args = Argóintí Breise chuig Sendmail -config.mailer_sendmail_timeout = Teorainn Ama Sendmail -config.mailer_use_dummy = Caochadán config.test_email_placeholder = Ríomhphost (m.sh. test@example.com) config.send_test_mail_submit = Seol config.oauth_config = Cumraíocht OAuth @@ -3105,13 +3006,6 @@ config.picture_service = Seirbhís Pictiúr config.disable_gravatar = Díchumasaigh Gravatar config.enable_federated_avatar = Cumasaigh Avatars Cónaidhme config.open_with_editor_app_help = Na heagarthóirí "Oscailte le" don roghchlár Clón. Má fhágtar folamh é, úsáidfear an réamhshocrú. Leathnaigh chun an réamhshocrú a fheiceáil. -config.git_config = Cumraíocht Git -config.git_gc_args = Argóintí GC -config.git_migrate_timeout = Teorainn Ama Imirce -config.git_mirror_timeout = Teorainn Ama Nuashonraithe Scátháin -config.git_clone_timeout = Teorainn Ama Oibríochta Clón -config.git_pull_timeout = Tarraing Am Oibríochta -config.git_gc_timeout = Teorainn Ama Oibriúcháin GC config.log_config = Cumraíocht Logáil config.logger_name_fmt = Logálaí: %s config.disabled_logger = Díchumasaithe @@ -3149,25 +3043,11 @@ notices.type_2 = Tasc notices.desc = Cur síos notices.op = Oibríocht. notices.delete_success = Scriosadh na fógraí córais. -self_check.no_problem_found = Níor aimsíodh aon fhadhb fós. +self_check.no_problem_found = Níor aimsíodh aon fhadhbanna go fóill. self_check.database_collation_mismatch = Bí ag súil le comhthiomsú a úsáid sa bhunachar sonraí: %s self_check.database_inconsistent_collation_columns = Tá comhthiomsú %s in úsáid ag an mbunachar sonraí, ach tá comhthiomsuithe mímheaitseála á n-úsáid ag na colúin seo. D'fhéadfadh sé a bheith ina chúis le roinnt fadhbanna gan choinne. -dashboard.new_version_hint = Tá Forgejo %s ar fáil anois, tá %s á rith agat. Seiceáil an blag le haghaidh tuilleadh sonraí. -dashboard.operations = Oibríochtaí cothabhála dashboard.delete_repo_archives = Scrios cartlanna na stórtha uile (ZIP, TAR.GZ, srl.) -dashboard.sync_repo_branches = Sioncrónaigh brainsí caillte ó shonraí Git go bunachar sonraí -dashboard.resync_all_sshkeys = Nuashonraigh an comhad ".ssh/authorized_keys" le heochracha SSH Forgejo. -dashboard.resync_all_sshprincipals = Nuashonraigh an comhad ".ssh/authorized_principals" le príomhoidí SSH Forgejo. -dashboard.resync_all_hooks = Athshioncrónaigh crúcaí Git na stórtha uile (réamhghlacadh, nuashonrú, iarghlacadh, próiseasghlacadh, ...) -dashboard.cleanup_actions = Glan suas logaí agus déantáin atá imithe in éag ó ghníomhartha -dashboard.stop_zombie_tasks = Stop tascanna gníomhartha zombie -dashboard.stop_endless_tasks = Stop tascanna gníomhartha gan teorainn -dashboard.cancel_abandoned_jobs = Cealaigh poist gníomhartha tréigthe -dashboard.start_schedule_tasks = Tosaigh tascanna gníomhartha sceidealaithe -dashboard.sync_branch.started = Tosaíodh sioncrónú brainse -dashboard.sync_tag.started = Tosaíodh sioncrónú clibeanna users.user_manage_panel = Bainistigh cuntais úsáideoirí -users.never_login = Níor shínigh tú isteach riamh users.send_register_notify = Fógra faoi chlárú trí ríomhphost users.is_activated = Cuntas gníomhachtaithe users.activated.description = Fíorú ríomhphoist críochnaithe. Ní bheidh úinéir cuntais neamhghníomhachtaithe in ann logáil isteach go dtí go mbeidh fíorú ríomhphoist críochnaithe. @@ -3210,7 +3090,6 @@ config.app_url = Bun-URL config.custom_file_root_path = Cosán fréimhe comhaid saincheaptha config.run_user = Úsáideoir le rith mar config.reverse_auth_user = Úsáideoir fíordheimhnithe seachfhreastalaí droim ar ais -config.ssh_keygen_path = Cosán Keygen ("ssh-keygen") config.lfs_http_auth_expiry = Am éaga údaraithe HTTP LFS config.allow_only_internal_registration = Ceadaigh clárú trí Forgejo féin amháin config.require_sign_in_view = Éilítear síniú isteach chun ábhar a fheiceáil @@ -3218,15 +3097,10 @@ config.active_code_lives = Am éaga an chóid ghníomhachtaithe config.reset_password_code_lives = Am éaga an chóid aisghabhála config.allow_dots_in_usernames = Ceadaigh d’úsáideoirí poncanna a úsáid ina n-ainmneacha úsáideora. Ní dhéanann sé difear do chuntais atá ann cheana féin. config.default_visibility_organization = Infheictheacht réamhshocraithe eagraíochtaí nua -config.mailer_smtp_addr = Óstach SMTP config.send_test_mail = Seol ríomhphost tástála config.test_mail_failed = Theip ar ríomhphost tástála a sheoladh chuig "%s": %v config.test_mail_sent = Tá ríomhphost tástála seolta chuig "%s". config.session_life_time = Saolré na seisiún -config.git_disable_diff_highlight = Díchumasaigh aibhsiú comhréir difríochta -config.git_max_diff_lines = Uasmhéid línte difríochta in aghaidh an chomhaid -config.git_max_diff_line_characters = Uasmhéid carachtair dhifriúla in aghaidh an líne -config.git_max_diff_files = Uasmhéid comhaid difríochta a thaispeántar monitor.duration = Fad (s) monitor.process.cancel_desc = D’fhéadfadh caillteanas sonraí a bheith mar thoradh ar phróiseas a chealú monitor.process.cancel_notices = Cealaigh: %s? diff --git a/options/locale/locale_he.ini b/options/locale/locale_he.ini index 6e6252229d..8ccb65ece8 100644 --- a/options/locale/locale_he.ini +++ b/options/locale/locale_he.ini @@ -508,7 +508,7 @@ remove_account_link_success = החשבון המקושר הוסר. [repo] new_advanced = הגדרות מתקדמות -new_advanced_expand = +new_advanced_expand = owner = בעלים repo_name = שם הקרפיף repo_name_helper = שמות קרפיפים טובים הם זכירים, קצרים וייחודיים. diff --git a/options/locale/locale_hi.ini b/options/locale/locale_hi.ini index 42d427f071..3dbbe923c5 100644 --- a/options/locale/locale_hi.ini +++ b/options/locale/locale_hi.ini @@ -233,6 +233,11 @@ password_algorithm_helper = पासवर्ड हैश अल्गोर enable_update_checker = अपडेट चेकर चालू करें env_config_keys = पर्यावरण संरूपण env_config_keys_prompt = पर्यावरण वेरिएबल्स को संरूपण फाइल पर भी लागू किया जायेगा: +install = इनस्टॉल +title = प्रारंभिक कॉन्फ़िगरेशन +require_db_desc = Forgejo के लिए MySQL, PostgreSQL, SQLite3 या TiDB (MySQL प्रोटोकॉल) की आवश्यकता होती है। +db_title = डेटाबेस सेटिंग्स +db_type = डेटाबेस का प्रकार [home] uname_holder = उसरनाम या ईमेल एड्रेस @@ -306,4 +311,20 @@ totp_disabled.subject = टीओटीपी रोक दिया गया totp_disabled.text_1 = समय निर्धारित एक बार के पासवर्ड (टीओटीपी) आपके अकाउंट पर रोक दिया गया। totp_disabled.no_2fa = और कोई 2FA के तरीके संचालित नहीं हैं, यानी आपके अकाउंट पर 2FA से लॉगिन की ज़रुरत नहीं होगी। removed_security_key.subject = सुरक्षक चाभी हटाई गई -removed_security_key.text_1 = सुरक्षक चाभी "%[1]s" अभी-अभी आपके अकाउंट से हटाई गई। \ No newline at end of file +removed_security_key.text_1 = सुरक्षक चाभी "%[1]s" अभी-अभी आपके अकाउंट से हटाई गई। + +[error] +occurred = एक त्रुटि हुई +report_message = यदि आपको लगता है कि यह Forgejo का कोई बग (bug) है, तो कृपया Codeberg पर समस्याओं की खोज करें या यदि आवश्यक हो तो एक नया इश्यू (issue) खोलें। +not_found = लक्ष्य नहीं मिल सका। +network_error = नेटवर्क त्रुटि +server_internal = आंतरिक सर्वर त्रुटि + +[startpage] +app_desc = एक सरल, स्व-होस्टेड गिट (Git) सेवा +install = इनस्टॉल करना आसान है +platform = क्रॉस-प्लेटफ़ॉर्म +platform_desc = Forgejo को Linux और FreeBSD जैसे मुक्त (libre) ऑपरेटिंग सिस्टम के साथ-साथ विभिन्न CPU आर्किटेक्चर पर चलने के लिए प्रमाणित किया गया है। अपनी पसंद का विकल्प चुनें! +lightweight = हल्का +lightweight_desc = Forgejo की न्यूनतम आवश्यकताएं बहुत कम हैं और यह एक सस्ते Raspberry Pi पर भी चल सकता है। अपने डिवाइस की ऊर्जा बचाएं! +license = मुक्त स्रोत \ No newline at end of file diff --git a/options/locale/locale_hu-HU.ini b/options/locale/locale_hu-HU.ini index df48fcd03b..618699f5e2 100644 --- a/options/locale/locale_hu-HU.ini +++ b/options/locale/locale_hu-HU.ini @@ -7,7 +7,7 @@ sign_in=Bejelentkezés sign_in_or=vagy sign_out=Kijelentkezés sign_up=Regisztrálás -link_account=Fiók kapcsolása +link_account=Fiók összekapcsolása register=Regisztráció version=Verzió powered_by=Biztosítja: %s @@ -71,7 +71,7 @@ write=Írás preview=Előnézet loading=Betöltés… -error404=Az elérni kívánt oldal vagy nem létezik, vagy nincs jogosultsága a megtekintéséhez. +error404=Az elérni kívánt oldal vagy nem létezik, törölve lett vagy nincs jogosultságod a megtekintéséhez. @@ -142,6 +142,10 @@ new_org.title = Új szervezet new_org.link = Új szervezet filter.is_fork = Másolatok filter.is_mirror = Tükrök +copy_path = Útvonal másolása +artifacts = Leletek +confirm_delete_artifact = Biztosan törölni szeretné a "%s" leletet? +filter.not_mirror = Nem tükrök [aria] footer.links = Hivatkozások @@ -1275,27 +1279,9 @@ first_page=Első last_page=Utolsó total=Összesen: %d -dashboard.statistic=Összefoglaló -dashboard.operations=Karbantartási műveletek -dashboard.system_status=Rendszer Állapota -dashboard.operation_name=Művelet Neve -dashboard.operation_switch=Váltás -dashboard.operation_run=Futtatás dashboard.clean_unbind_oauth=Megszüntetett OAuth kapcsolatok törlése dashboard.clean_unbind_oauth_success=Az összes megszüntetett OAuth kapcsolat törölve. -dashboard.delete_generated_repository_avatars=Generált tároló avatarok törlése -dashboard.reinit_missing_repos=Az összes Git tároló újra-inicializálása amihez léteznek bejegyzések -dashboard.sync_external_users=Külső felhasználói adatok szinkronizálása users.new_account=Felhasználó létrehozása -users.name=Felhasználónév -users.full_name=Teljes név -users.activated=Aktivált -users.admin=Rendszergazda -users.restricted=Korlátozott -users.repos=Tárolók -users.created=Létrehozva -users.last_login=Utolsó bejelentkezés -users.never_login=Sosem jelentkezett be users.send_register_notify=Felhasználó regisztráció értesítés küldése users.edit=Szerkesztés users.auth_source=Hitelesítési forrás @@ -1313,26 +1299,8 @@ emails.filter_sort.email=Email emails.filter_sort.name=Felhasználónév orgs.org_manage_panel=Szervezetek Kezelése -orgs.name=Név -orgs.teams=Csoportok -orgs.members=Tagok -orgs.new_orga=Új szervezet - repos.repo_manage_panel=Tárolók Kezelése -repos.owner=Tulajdonos -repos.name=Név repos.private=Privát -repos.issues=Hibajegyek -repos.size=Méret - -packages.owner=Tulajdonos -packages.name=Név -packages.type=Típus -packages.repository=Tároló -packages.size=Méret - - - auths.new=Hitelesítési forrás hozzáadása auths.name=Név auths.type=Típus @@ -1406,37 +1374,16 @@ config.offline_mode=Helyi mód config.disable_router_log=Útválasztás naplózásának letiltása config.run_user=Futtatás mint config.run_mode=Futtatás Módja -config.git_version=Git Verzió config.repo_root_path=Tárolók Gyökérkönyvtára config.lfs_root_path=LFS Gyökérkönyvtár config.log_file_root_path=Naplófájl elérési útja config.script_type=Szkript Típus config.reverse_auth_user=Visszafelé hitelesítés felhasználója -config.ssh_config=SSH Konfiguráció -config.ssh_enabled=Engedélyezett -config.ssh_start_builtin_server=Beépített szerver használata -config.ssh_port=Port -config.ssh_listen_port=Figyelő port -config.ssh_root_path=Gyökérkönyvtár -config.ssh_key_test_path=Kulcs ellenőrzés útvonala -config.ssh_keygen_path=Kulcsgeneráló ('ssh-keygen') elérési útja -config.ssh_minimum_key_size_check=Kulcsok minimum méretének ellenőrzése -config.ssh_minimum_key_sizes=Minimális kulcsok méretek - config.lfs_config=LFS Beállítások config.lfs_enabled=Engedélyezve config.lfs_content_path=LFS tartalom útvonala -config.db_config=Adatbázis Konfiguráció -config.db_type=Típus -config.db_host=Kiszolgáló -config.db_name=Név -config.db_user=Felhasználónév -config.db_schema=Séma -config.db_ssl_mode=SSL -config.db_path=Elérési út - config.service_config=Szolgáltatás konfiguráció config.register_email_confirm=A regisztrációhoz e-mail visszaigazolás szükséges config.disable_register=Ön-regisztráció kikapcsolása @@ -1461,13 +1408,6 @@ config.queue_length=Várakozási Sor Hossza config.deliver_timeout=Kézbesítési Időtúllépés config.skip_tls_verify=A TLS Hitelesítés Kihagyása -config.mailer_enabled=Engedélyezett -config.mailer_name=Név -config.mailer_smtp_port=SMTP port -config.mailer_user=Felhasználó -config.mailer_use_sendmail=Sendmail Használata -config.mailer_sendmail_path=Sendmail Elérési Útja -config.mailer_sendmail_args=Extra Sendmail argumentumok config.send_test_mail=Teszt e-mail küldése config.oauth_config=OAuth Konfiguráció @@ -1492,18 +1432,6 @@ config.picture_service=Kép Szolgáltatás config.disable_gravatar=Gravatar Kikapcsolása config.enable_federated_avatar=Összevont profilkép lekérés engedélyezése -config.git_config=Git Beállítás -config.git_disable_diff_highlight=Különbségi nézetben a szintakszis kiemelés kikapcsolása -config.git_max_diff_lines=Maximális sorok száma különbségi nézetben (egy fájl esetén) -config.git_max_diff_line_characters=Maximális karakterek száma különbségi nézetben (egy fájl esetén) -config.git_max_diff_files=Maximális fájlok száma különbségi nézetben -config.git_gc_args=Szemétgyűjtő (GC) Argumentumok -config.git_migrate_timeout=Migrációs Időtúllépés -config.git_mirror_timeout=Tükör Frissítési Időtúllépés -config.git_clone_timeout=Klónozási időtúllépés -config.git_pull_timeout=Frissítési Időtúllépés -config.git_gc_timeout=Szemétgyűjtési (GC) Időtúllépés - config.log_config=Naplózási Beállítások config.disabled_logger=Letiltva config.xorm_log_sql=SQL naplózása @@ -1608,7 +1536,7 @@ directory = Könyvtár [search] -search = Keresés... +search = Keresés… type_tooltip = Keresés típusa code_kind = Kód keresése… code_search_unavailable = A kódban való keresés jelenleg nem elérhető. Kérem vegye fel a kapcsolatot az oldal adminisztrátorával. @@ -1628,3 +1556,5 @@ 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. +regexp = Reguláris Kifejezés +regexp_tooltip = Keresés értelmezése reguláris kifejezésként diff --git a/options/locale/locale_id-ID.ini b/options/locale/locale_id-ID.ini index 2379f3edfe..100a6ca19d 100644 --- a/options/locale/locale_id-ID.ini +++ b/options/locale/locale_id-ID.ini @@ -2850,43 +2850,16 @@ first_page=Pertama last_page=Terakhir total=Total: %d -dashboard.operation_name=Nama operasi -dashboard.operation_switch=Beralih -dashboard.operation_run=Lari dashboard.clean_unbind_oauth=Bersihkan koneksi OAuth yang tidak terikat dashboard.clean_unbind_oauth_success=Semua koneksi OAuth yang tidak terikat telah dihapus. -dashboard.reinit_missing_repos=Menginstal kembali semua repositori Git yang hilang dimana ada catatan -dashboard.sync_external_users=Sinkronkan data pengguna eksternal -users.full_name=Nama lengkap -users.activated=Diaktifkan -users.admin=Pengelola -users.repos=Repo -users.created=Dibuat users.edit=Edit users.auth_source=Sumber autentikasi users.local=Lokal emails.activated=Diaktifkan orgs.org_manage_panel=Kelola organisasi -orgs.name=Nama -orgs.teams=Tim -orgs.members=Anggota - repos.repo_manage_panel=Kelola repositori -repos.owner=Pemilik -repos.name=Nama repos.private=Pribadi -repos.issues=Masalah -repos.size=Ukuran - -packages.owner=Pemilik -packages.name=Nama -packages.type=Jenis -packages.repository=Repositori -packages.size=Ukuran - - - auths.name=Nama auths.type=Jenis auths.enabled=Aktif @@ -2933,34 +2906,14 @@ config.app_ver=Versi Forgejo config.custom_conf=Jalur berkas konfigurasi config.disable_router_log=Nonaktifkan log router config.run_mode=Mode jalankan -config.git_version=Versi Git config.repo_root_path=Jalur root repositori config.lfs_root_path=Path Root LFS config.script_type=Jenis skrip config.reverse_auth_user=Pengguna autentikasi proxy terbalik -config.ssh_config=Konfigurasi SSH -config.ssh_enabled=Aktif -config.ssh_port=Port -config.ssh_listen_port=Port dengar -config.ssh_root_path=Jalur root -config.ssh_key_test_path=Jalur uji kunci -config.ssh_keygen_path=Jalur Keygen ("ssh-keygen") -config.ssh_minimum_key_size_check=Pemeriksaan ukuran kunci minimum -config.ssh_minimum_key_sizes=Ukuran kunci minimum - config.lfs_config=Konfigurasi LFS config.lfs_enabled=Aktif -config.db_config=Konfigurasi basis data -config.db_type=Tipe -config.db_host=Host -config.db_name=Nama -config.db_user=Nama pengguna -config.db_schema=Schema -config.db_ssl_mode=SSL -config.db_path=Jalur - config.service_config=Konfigurasi layanan config.register_email_confirm=Wajibkan konfirmasi email untuk mendaftar config.enable_openid_signin=Aktifkan masuk OpenID @@ -2975,13 +2928,6 @@ config.queue_length=Panjang antrian config.deliver_timeout=Batas waktu pengiriman config.skip_tls_verify=Lewati verifikasi TLS -config.mailer_enabled=Diaktifkan -config.mailer_name=Nama -config.mailer_smtp_port=Port SMTP -config.mailer_user=Pengguna -config.mailer_use_sendmail=Menggunakan Sendmail -config.mailer_sendmail_path=Jalur Sendmail -config.mailer_sendmail_args=Argumen tambahan untuk Sendmail config.send_test_mail=Kirim email uji config.oauth_config=Konfigurasi OAuth @@ -3006,18 +2952,6 @@ config.picture_service=Gambar layanan config.disable_gravatar=Menonaktifkan Gravatar config.enable_federated_avatar=Aktifkan avatar terfederasi -config.git_config=Konfigurasi Git -config.git_disable_diff_highlight=Nonaktifkan penyorotan sintaks diff -config.git_max_diff_lines=Maks baris diff per file -config.git_max_diff_line_characters=Maks karakter diff per baris -config.git_max_diff_files=Maks file diff yang ditampilkan -config.git_gc_args=Argumen GC -config.git_migrate_timeout=Batas waktu migrasi -config.git_mirror_timeout=Batas waktu pembaruan cermin -config.git_clone_timeout=Batas waktu operasi klon -config.git_pull_timeout=Batas waktu operasi tarik -config.git_gc_timeout=Batas waktu operasi GC - config.log_config=Konfigurasi log config.disabled_logger=Nonaktif config.xorm_log_sql=Catatan SQL @@ -3061,65 +2995,12 @@ authentication = Sumber autentikasi emails = Email pengguna config_summary = Ringkasan settings = Pengaturan admin -dashboard.new_version_hint = Forgejo %s kini tersedia, Anda menjalankan %s. Periksa blog untuk detail selengkapnya. -dashboard.statistic = Ringkasan -dashboard.operations = Operasi pemeliharaan -dashboard.system_status = Status sistem -dashboard.task.started = Tugas Dimulai: %[1]s -dashboard.task.process = Tugas: %[1]s -dashboard.task.cancelled = Tugas: %[1]s dibatalkan: %[3]s -dashboard.task.error = Kesalahan dalam Tugas: %[1]s: %[3]s -dashboard.task.finished = Tugas: %[1]s yang dimulai oleh %[2]s telah selesai -dashboard.task.unknown = Tugas tidak dikenal: %[1]s -dashboard.cron.started = Cron Dimulai: %[1]s -dashboard.cron.process = Cron: %[1]s -dashboard.cron.cancelled = Cron: %[1]s dibatalkan: %[3]s -dashboard.cron.error = Kesalahan dalam Cron: %s: %[3]s -dashboard.cron.finished = Cron: %[1]s telah selesai dashboard.delete_inactive_accounts = Hapus semua akun yang belum diaktifkan -dashboard.delete_inactive_accounts.started = Tugas hapus semua akun yang belum diaktifkan dimulai. dashboard.delete_repo_archives = Hapus semua arsip repositori (ZIP, TAR.GZ, dll.) -dashboard.delete_repo_archives.started = Tugas hapus semua arsip repositori dimulai. dashboard.delete_missing_repos = Hapus semua repositori yang file Git-nya hilang -dashboard.delete_missing_repos.started = Tugas hapus semua repositori yang file Git-nya hilang dimulai. -dashboard.delete_generated_repository_avatars = Hapus avatar repositori yang dihasilkan secara otomatis -dashboard.sync_repo_branches = Sinkronkan cabang yang terlewat dari data Git ke basis data -dashboard.sync_repo_tags = Sinkronkan tag dari data Git ke basis data -dashboard.update_mirrors = Perbarui cermin -dashboard.repo_health_check = Periksa kesehatan semua repositori -dashboard.check_repo_stats = Periksa semua statistik repositori -dashboard.archive_cleanup = Hapus arsip repositori lama -dashboard.deleted_branches_cleanup = Bersihkan cabang yang dihapus -dashboard.update_migration_poster_id = Perbarui ID pembuat migrasi -dashboard.git_gc_repos = Lakukan pengumpulan sampah pada semua repositori -dashboard.resync_all_sshkeys = Perbarui file ".ssh/authorized_keys" dengan kunci SSH Forgejo. -dashboard.resync_all_sshprincipals = Perbarui file ".ssh/authorized_principals" dengan prinsipal SSH Forgejo. -dashboard.resync_all_hooks = Sinkronkan ulang hook Git dari semua repositori (pre-receive, update, post-receive, proc-receive, …) -dashboard.cleanup_hook_task_table = Bersihkan tabel hook_task -dashboard.cleanup_packages = Bersihkan paket yang kedaluwarsa -dashboard.cleanup_actions = Bersihkan log dan artefak yang kedaluwarsa dari aksi dashboard.delete_old_actions = Hapus semua aktivitas lama dari basis data -dashboard.delete_old_actions.started = Hapus semua aktivitas lama dari basis data dimulai. -dashboard.update_checker = Pemeriksa pembaruan -dashboard.delete_old_system_notices = Hapus semua pemberitahuan sistem lama dari basis data -dashboard.gc_lfs = Lakukan pengumpulan sampah pada objek meta LFS -dashboard.stop_zombie_tasks = Hentikan tugas aksi yang terhenti -dashboard.stop_endless_tasks = Hentikan tugas aksi yang tidak berakhir -dashboard.cancel_abandoned_jobs = Batalkan pekerjaan aksi yang terbengkalai -dashboard.start_schedule_tasks = Mulai tugas aksi terjadwal -dashboard.sync_branch.started = Sinkronisasi cabang dimulai -dashboard.sync_tag.started = Sinkronisasi tag dimulai -dashboard.rebuild_issue_indexer = Bangun ulang pengindeks isu users.user_manage_panel = Kelola akun pengguna users.new_account = Buat akun pengguna -users.name = Nama pengguna -users.restricted = Dibatasi -users.reserved = Dicadangkan -users.bot = Bot -users.remote = Jarak jauh -users.2fa = 2FA -users.last_login = Masuk terakhir -users.never_login = Belum pernah masuk users.send_register_notify = Beri tahu tentang pendaftaran melalui email users.new_success = Akun pengguna "%s" telah dibuat. users.auth_login_name = Nama masuk autentikasi @@ -3168,18 +3049,11 @@ emails.delete = Hapus alamat email emails.delete_desc = Apakah Anda yakin ingin menghapus alamat email ini? emails.deletion_success = Alamat email telah dihapus. emails.delete_primary_email_error = Anda tidak dapat menghapus email utama. -orgs.new_orga = Organisasi baru repos.unadopted = Repositori yang tidak diadopsi repos.unadopted.no_more = Tidak ada repositori yang tidak diadopsi. -repos.lfs_size = Ukuran LFS packages.package_manage_panel = Kelola paket -packages.total_size = Total ukuran: %s -packages.unreferenced_size = Ukuran yang tidak direferensikan: %s packages.cleanup = Bersihkan data yang kedaluwarsa packages.cleanup.success = Data yang kedaluwarsa berhasil dibersihkan -packages.creator = Pembuat -packages.version = Versi -packages.published = Diterbitkan defaulthooks = Webhook default defaulthooks.desc = Webhook secara otomatis membuat permintaan HTTP POST ke server saat peristiwa Forgejo tertentu terpicu. Webhook yang didefinisikan di sini adalah default dan akan disalin ke semua repositori baru. Baca selengkapnya di panduan webhook. defaulthooks.add_webhook = Tambah Webhook Default @@ -3265,8 +3139,6 @@ config.offline_mode = Mode lokal config.run_user = Pengguna untuk dijalankan sebagai config.app_data_path = Jalur data aplikasi config.log_file_root_path = Jalur log -config.ssh_start_builtin_server = Gunakan server bawaan -config.ssh_domain = Domain server SSH config.lfs_content_path = Jalur konten LFS config.lfs_http_auth_expiry = Waktu kedaluwarsa autentikasi HTTP LFS config.disable_register = Nonaktifkan pendaftaran mandiri @@ -3283,12 +3155,6 @@ config.default_allow_only_contributors_to_track_time = Biarkan hanya kontributor config.no_reply_address = Domain email tersembunyi config.default_visibility_organization = Visibilitas default organisasi baru config.default_enable_dependencies = Aktifkan ketergantungan issue secara default -config.mailer_config = Konfigurasi mailer -config.mailer_enable_helo = Aktifkan HELO -config.mailer_protocol = Protokol -config.mailer_smtp_addr = Host SMTP -config.mailer_sendmail_timeout = Batas waktu Sendmail -config.mailer_use_dummy = Dummy config.test_email_placeholder = Email (mis. test@example.com) config.send_test_mail_submit = Kirim config.test_mail_failed = Gagal mengirim email uji ke "%s": %v diff --git a/options/locale/locale_is-IS.ini b/options/locale/locale_is-IS.ini index e22dfefcc1..bef847cfca 100644 --- a/options/locale/locale_is-IS.ini +++ b/options/locale/locale_is-IS.ini @@ -1103,16 +1103,6 @@ first_page=Byrjun last_page=Síðasta total=Samtals: %d -dashboard.statistic=Yfirlit -dashboard.operation_switch=Skipta -dashboard.operation_run=Keyra -dashboard.update_mirrors=Uppfæra Speglanir -users.name=Notandanafn -users.full_name=Fullt Nafn -users.admin=Stjórnandi -users.2fa=Tvíþætt auðkenning -users.repos=Söfn -users.created=Búið til users.edit=Breyta users.local=Staðbundið emails.primary=Aðal @@ -1120,25 +1110,6 @@ emails.filter_sort.email=Tölvupóstur emails.filter_sort.name=Notandanafn emails.updated=Netfang uppfært -orgs.name=Heiti -orgs.teams=Lið -orgs.members=Meðlimar - -repos.owner=Eigandi -repos.name=Heiti -repos.issues=Vandamál -repos.size=Stærð - -packages.total_size=Heildarstærð: %s -packages.owner=Eigandi -packages.name=Heiti -packages.version=Útgáfa -packages.type=Tegund -packages.repository=Hugbúnaðarsafn -packages.size=Stærð - - - auths.name=Heiti auths.type=Tegund auths.updated=Uppfært @@ -1156,33 +1127,12 @@ auths.tip.yandex=`Búðu til nýja umsókn á %s. Veldu eftirfarandi heimildir config.app_name=Heiti Vefsvæðis config.app_ver=Útgáfu Forgejo -config.git_version=Útgáfa Git config.repo_root_path=Grunnsslóð Hugbúnaðarsafns config.lfs_root_path=LFS Grunnsslóð config.log_file_root_path=Slóð Annáls -config.ssh_port=Gátt -config.ssh_listen_port=Hlustunargátt -config.ssh_root_path=Grunnsslóð - config.lfs_enabled=Virkt -config.db_type=Tegund -config.db_host=Hýsill -config.db_name=Heiti -config.db_user=Notandanafn -config.db_schema=Uppdráttur -config.db_ssl_mode=SSL -config.db_path=Slóð - - - -config.mailer_name=Heiti -config.mailer_smtp_port=SMTP Gátt -config.mailer_user=Notandi - - - config.https_only=Aðeins HTTPS diff --git a/options/locale/locale_it-IT.ini b/options/locale/locale_it-IT.ini index 3b8475ba67..06c33015a0 100644 --- a/options/locale/locale_it-IT.ini +++ b/options/locale/locale_it-IT.ini @@ -129,7 +129,7 @@ filter = Filtro filter.clear = Rimuovi filtri filter.is_archived = Archiviato filter.not_archived = Non archiviato -filter.is_fork = Fork +filter.is_fork = Biforca filter.is_mirror = Mirror filter.not_mirror = Non mirror filter.is_template = Modelli @@ -170,7 +170,7 @@ buttons.bold.tooltip = Aggiungi testo in grassetto (Ctrl+B / ⌘B) buttons.italic.tooltip = Aggiungi testo in corsivo (Ctrl+I / ⌘I) buttons.quote.tooltip = Cita testo buttons.code.tooltip = Aggiungi codice -buttons.link.tooltip = Aggiungi un collegamento +buttons.link.tooltip = Aggiungi un collegamento (Ctrl+K / ⌘K) buttons.list.unordered.tooltip = Aggiungi un elenco puntato buttons.list.ordered.tooltip = Aggiungi un elenco numerato buttons.list.task.tooltip = Aggiungi un elenco di attività @@ -746,7 +746,7 @@ activate_email=Invia attivazione activations_pending=Attivazioni in sospeso delete_email=Rimuovi email_deletion=Rimuovi indirizzo e-mail -email_deletion_desc=L'indirizzo e-mail e altre informazioni relative a questa utenza verranno rimosse. I commit di git associati a questo indirizzo e-mail rimarranno invariati. Continuare? +email_deletion_desc=Questo indirizzo e-mail e altre informazioni relative a questa utenza verranno rimosse. I commit di git associati a questo indirizzo e-mail rimarranno invariati. Continuare? email_deletion_success=L'indirizzo email è stato eliminato. theme_update_success=Il tema è stato aggiornato. theme_update_error=Il tema selezionato non esiste. @@ -825,7 +825,7 @@ token_state_desc=Questo token è stato utilizzato negli ultimi 7 giorni principal_state_desc=Questo principal è stato utilizzato negli ultimi 7 giorni show_openid=Mostra nel profilo hide_openid=Nascondi dal profilo -ssh_disabled=SSH disabilitato +ssh_disabled=SSH è disabilitato ssh_externally_managed=Questa chiave SSH è gestita esternamente per questo utente manage_access_token=Token di accesso generate_new_token=Genera nuovo token @@ -1019,7 +1019,7 @@ repo_name=Nome del repositorio repo_name_helper=Un buon nome per un repositorio è costituito da parole chiave corte, facili da ricordare e uniche. repo_size=Dimensione del repositorio template=Modello -template_select=Seleziona un modello. +template_select=Seleziona un modello template_helper=Rendi il repositorio un modello template_description=I modelli di repositori consentono allɜ utenti di generare nuovi repositori con la stessa struttura, file e impostazioni facoltative. visibility=Visibilità @@ -1041,17 +1041,17 @@ generate_from=Genera da repo_desc=Descrizione repo_desc_helper=Inserisci una breve descrizione (opzionale) repo_lang=Lingua -repo_gitignore_helper=Seleziona i template di .gitignore. +repo_gitignore_helper=Seleziona un modello di .gitignore repo_gitignore_helper_desc=Scegli di quali file non tenere traccia da un elenco di modelli per le lingue comuni. Gli artefatti tipici generati dagli strumenti di build di ogni lingua sono inclusi su .gitignore per impostazione predefinita. issue_labels=Etichette -issue_labels_helper=Seleziona una raccolta di etichette per le segnalazioni. +issue_labels_helper=Seleziona una raccolta di etichette license=Licenza -license_helper=Seleziona un file di licenza. -license_helper_desc=Una licenza governa ciò che gli altri possono e non possono fare con il tuo codice. Non sei sicuro di chi è giusto per il tuo progetto? Vedi Scegli una licenza. +license_helper=Seleziona un file di licenza +license_helper_desc=Una licenza governa ciò che gli altri possono e non possono fare con il tuo codice. Non sei sicuro di chi è giusto per il tuo progetto? Vedi Scegli una licenza. readme=LEGGIMI -readme_helper=Seleziona un template per il file LEGGIMI. +readme_helper=Seleziona un modello per il file README readme_helper_desc=Qui puoi scrivere una descrizione completa del progetto. -auto_init=Inizializza repositorio (Aggiunge .gitignore, licenza e README) +auto_init=Inizializza repositorio create_repo=Crea repositorio default_branch=Ramo predefinito default_branch_helper=Il ramo predefinito è il ramo base per le richieste di modifica e i commit. @@ -1076,7 +1076,7 @@ forks=Fork reactions_more=e %d più unit_disabled=L'amministratorə ha disabilitato questa sezione del repositorio. language_other=Altro -adopt_search=Inserisci il nome utente per cercare i repositori non adottati... (lascia vuoto per trovarli tutti) +adopt_search=Inserisci il nome utente per cercare i repositori non adottati… (lascia vuoto per trovarli tutti) adopt_preexisting_label=Adotta file adopt_preexisting=Adottare file preesistenti adopt_preexisting_content=Crea repositorio da %s @@ -1133,7 +1133,7 @@ migrate.migrate_items_options=Il token di accesso è richiesto per migrare eleme migrated_from=Migrato da %[2]s migrated_from_fake=Migrato da %[1]s migrate.migrate=Migra da %s -migrate.migrating=Migrazione da %s... +migrate.migrating=Migrazione da %s… migrate.migrating_failed=Migrazione da %s fallita. migrate.migrating_failed_no_addr=Migrazione non riuscita. mirror_from=mirror da @@ -1189,8 +1189,8 @@ file_view_rendered=Visualizza renderizzato file_view_raw=Vedi originale file_permalink=Permacollegamento file_too_large=Il file è troppo grande per essere visualizzato. -invisible_runes_line=`Questa riga ha caratteri unicode invisibili` -ambiguous_runes_line=`Questa riga ha caratteri unicode ambigui` +invisible_runes_line=`Questa riga ha caratteri Unicode invisibili` +ambiguous_runes_line=`Questa riga ha caratteri Unicode ambigui` ambiguous_character=`%[1]c [U+%04[1]X] è confondibile con %[2]c [U+%04[2]X]` escape_control_characters=Fuga @@ -1232,9 +1232,9 @@ editor.cancel_lower=Annulla editor.commit_signed_changes=Conferma modifiche firmate editor.commit_changes=Conferma le modifiche editor.add_tmpl=Aggiungi "<%s>" -editor.patch=Applica Patch +editor.patch=Applica patch editor.patching=Patching: -editor.new_patch=Nuova Patch +editor.new_patch=Nuova patch editor.commit_message_desc=Aggiungi una descrizione estesa facoltativa… editor.signoff_desc=Aggiungi "firmato da" dal committer alla fine del messaggio di log di commit. editor.commit_directly_to_this_branch=Fai un commit direttamente sul ramo %[1]s. @@ -1251,7 +1251,7 @@ editor.no_changes_to_show=Non ci sono cambiamenti da mostrare. editor.fail_to_update_file_summary=Messaggio d'errore: editor.push_rejected_no_message=La modifica è stata rifiutata dal server senza un messaggio. Controlla Git hooks. editor.push_rejected=La modifica è stata rifiutata dal server. Controlla Git hooks. -editor.push_rejected_summary=Messaggio Di Rifiuto Completo: +editor.push_rejected_summary=Messaggio completo di rifiuto: editor.add_subdir=Aggiungi una directory… editor.no_commit_to_branch=Impossibile effettuare il commit direttamente sul ramo perché: editor.user_no_push_to_branch=L'utente non può immettere nel ramo @@ -1284,7 +1284,7 @@ commit.cherry-pick-content=Seleziona il ramo su cui fare una selezione selettiva commitstatus.error=Errore commitstatus.pending=In sospeso -ext_issues=Accesso a segnalazioni esterne +ext_issues=Segnalazioni esterne projects=Progetti projects.desc=Gestisci segnalazioni e richieste di modifica nelle schede di progetto. projects.description=Descrizione (opzionale) @@ -1312,8 +1312,8 @@ projects.close=Chiudi issues.desc=Organizza le segnalazioni di bug, attività e traguardi. issues.filter_assignees=Filtra assegnatario -issues.filter_milestones=Filtra Traguardo -issues.filter_projects=Filtra Progetti +issues.filter_milestones=Filtra traguardo +issues.filter_projects=Filtra progetto issues.filter_labels=Filtra etichetta issues.filter_reviewers=Filtra revisore issues.new=Nuova segnalazione @@ -1428,9 +1428,9 @@ issues.context.quote_reply=Cita risposta issues.context.reference_issue=Crea riferimento in una nuova segnalazione issues.context.edit=Modifica issues.context.delete=Elimina -issues.close_comment_issue=Commenta e chiudi +issues.close_comment_issue=Chiudi con commento issues.reopen_issue=Riapri -issues.reopen_comment_issue=Commenta e riapri +issues.reopen_comment_issue=Riapri con commento issues.create_comment=Commento issues.closed_at=`ha chiuso questa segnalazione %s` issues.reopened_at=`ha riaperto questa segnalazione %s` @@ -1489,8 +1489,8 @@ issues.lock.notice_3=- Puoi sempre sbloccare questa segnalazione in futuro. issues.unlock.notice_1=- Tuttɜ potranno commentare nuovamente questa segnalazione. issues.unlock.notice_2=- Puoi sempre chiudere nuovamente questa segnalazione in futuro. issues.lock.reason=Motivo per il blocco -issues.lock.title=Blocca la conversazione su questa issue. -issues.unlock.title=Sblocca la conversazione su questa issue. +issues.lock.title=Blocca conversazione +issues.unlock.title=Sblocca conversazione issues.comment_on_locked=Non puoi commentare una segnalazione bloccata. issues.delete=Elimina issues.delete.title=Eliminare la segnalazione? @@ -1566,8 +1566,8 @@ issues.review.left_comment=lascia un commento issues.review.content.empty=Devi lasciare un commento che indichi la modifica richiesta. issues.review.reject=ha richiesto dei cambiamenti %s issues.review.wait=è stato richiesto per la revisione %s -issues.review.add_review_request=revisione richiesta da %s %s -issues.review.remove_review_request=ha rimosso la richiesta di revisione per %s %s +issues.review.add_review_request=revisione richiesta da %[1]s %[2]s +issues.review.remove_review_request=ha rimosso la richiesta di revisione per %[1]s %[2]s issues.review.remove_review_request_self=ha rifiutato di revisionare %s issues.review.pending=In sospeso issues.review.reviewers=Revisori @@ -1659,15 +1659,15 @@ pulls.merge_commit_id=L'ID del commit di merge pulls.require_signed_wont_sign=Il ramo richiede commit firmati ma questa fusione non verrà firmata pulls.invalid_merge_option=Non è possibile utilizzare l'opzione di fusione selezionata per questa richiesta di modifica. -pulls.merge_conflict=Unione non riuscita: C'è stato un conflitto durante l'operazione. Suggerimento: Prova una strategia diversa +pulls.merge_conflict=Fusione non riuscita: C'è stato un conflitto durante l'operazione. Suggerimento: Prova una strategia diversa pulls.merge_conflict_summary=Messaggio di errore -pulls.rebase_conflict=Merge non riuscito: c'è stato un conflitto durante il rebase dell'commit: %[1]s. Suggerimento: Prova una strategia diversa +pulls.rebase_conflict=Fusione non riuscita: C'è stato un conflitto durante il rebase dell'commit: %[1]s. Suggerimento: Prova una strategia diversa pulls.rebase_conflict_summary=Messaggio di errore pulls.unrelated_histories=Unione fallita: gli Head del ramo da unire e la base non condividono una storia cronologica in comune. Suggerimento: prova una strategia diversa -pulls.merge_out_of_date=Unione fallita: Durante la generazione del merge, la base è stata aggiornata. Suggerimento: Riprova. -pulls.head_out_of_date=Unione non riuscita: durante la generazione della fusione, la testa è stata aggiornata. Suggerimento: Riprova. +pulls.merge_out_of_date=Fusione fallita: Durante la generazione della fusione, la base è stata aggiornata. Suggerimento: Riprova. +pulls.head_out_of_date=Fusione non riuscita: durante la generazione della fusione, la testa è stata aggiornata. Suggerimento: Riprova. pulls.push_rejected=Immissione respinta. Rivedi gli hooks Git per questo repositorio. -pulls.push_rejected_summary=Messaggio Di Rifiuto Completo +pulls.push_rejected_summary=Messaggio completo di rifiuto pulls.push_rejected_no_message=Immissione respinta: nessun messaggio remoto. Controlla gli hooks di Git per questo repositorio pulls.open_unmerged_pull_exists=`Non è possibile riaprire questa pull request perché ne esiste un'altra (#%d) con proprietà identiche.` pulls.status_checking=Alcuni controlli sono in sospeso @@ -1936,7 +1936,7 @@ settings.add_collaborator_success=Lə collaborante è statə aggiuntə. settings.add_collaborator_inactive_user=Non posso aggiungere un*utente inattivə come collaborante. settings.add_collaborator_duplicate=Lə collaborante è già statə aggiuntə a questo repositorio. settings.delete_collaborator=Rimuovi -settings.collaborator_deletion=Rimuovi collaborante +settings.collaborator_deletion=Rimuovi collaboratore settings.collaborator_deletion_desc=Rimuovere unə collaborante ne revocherà l'accesso a questo repositorio. Continuare? settings.remove_collaborator_success=Lə collaborante è statə rimossə. settings.org_not_allowed_to_be_collaborator=Le organizzazioni non possono essere aggiunte come collaborante. @@ -2003,9 +2003,9 @@ settings.event_issues_desc=Segnalazione aperta, chiusa, riaperta o modificata. settings.event_issue_assign=Assegno settings.event_issue_assign_desc=Issue assegnata o non assegnata. settings.event_issue_label=Etichette -settings.event_issue_label_desc=Etichette delle segnalazioni aggiornate o cancellate. +settings.event_issue_label_desc=Etichette delle segnalazioni aggiunte o rimosse. settings.event_issue_milestone=Traguardi -settings.event_issue_milestone_desc=Obiettivo raggiunto o abbandonato. +settings.event_issue_milestone_desc=Traguardo aggiunto, rimosso o modificato. settings.event_issue_comment=Commenti settings.event_issue_comment_desc=Commento issue creato, modificato o rimosso. settings.event_header_pull_request=Eventi di richieste di modifiche @@ -2356,7 +2356,7 @@ mirror_address_protocol_invalid = L'URL fornito è invalido. Solo posizioni http stars_remove_warning = Questo rimuoverà tutte le stelle da questo repositorio. blame.ignore_revs = Le revisioni in .git-blame-ignore-revs sono ignorate. Clicca qui per bypassare e vedere la vista incolpa normale. archive.title = Questo repositorio è archiviato. Puoi vedere i file e clonarlo, ma non puoi immettere o aprire segnalazioni o richieste di modifica. -archive.title_date = Questo repositorio è stato archiviato in data %s. Puoi vedere i file e clonarlo, ma non puoi immettere né aprire segnalazioni o richieste di modifica. +archive.title_date = Questo repositorio è stato archiviato in data %s. Puoi vedere i file e clonarlo, ma non puoi fare cambiamenti al suo stato, come immettere o aprire segnalazioni o richieste di modifica. form.name_pattern_not_allowed = La sequenza "%s" non è ammessa nel nome di un repositorio. migrate.invalid_local_path = Il percorso locale è invalido. Non esiste o non è una cartella. migrate.migrating_failed.error = Impossibile migrare: %s @@ -2628,7 +2628,7 @@ settings.add_webhook.invalid_path = Il percorso non deve contenere dei component settings.enforce_on_admins = Imponi questa regola agli amministratori del repository release.system_generated = Questo allegato è stato generato automaticamente. pulls.ready_for_review = Pronto alla revisione? -editor.commit_id_not_matching = L'ID del commit non combacia con quello del commit che stavi modificando. Conferma le tue modifiche su un nuovo ramo, poi fondilo col ramo desiderato. +editor.commit_id_not_matching = Il file è cambiato mentre lo stavi modificando. Fai il commit su un nuovo ramo, poi fondilo col ramo desiderato. commits.search_branch = Questo ramo settings.rename_branch_failed_protected = Non è possibile rinominare il ramo %s perché è un ramo protetto. settings.event_pull_request_enforcement = Imposizione @@ -2877,61 +2877,14 @@ first_page=Prima last_page=Ultima total=Totale: %d -dashboard.statistic=Riepilogo -dashboard.operations=Operazioni di manutenzione -dashboard.system_status=Stato del sistema -dashboard.operation_name=Nome Operazione -dashboard.operation_switch=Cambia -dashboard.operation_run=Esegui dashboard.clean_unbind_oauth=Elimina connessione OAuth slegate dashboard.clean_unbind_oauth_success=Tutte le connessione OAuth slegate sono state eliminate. -dashboard.task.started=Compito iniziato: %[1]s -dashboard.task.process=Compito: %[1]s -dashboard.task.error=Errore in Attività: %[1]s: %[3]s -dashboard.task.finished=Compito: %[1]s iniziato da %[2]s ha finito -dashboard.task.unknown=Attività sconosciuta: %[1]s -dashboard.cron.started=Cron Avviato: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.error=Errore in Cron: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s ha finito dashboard.delete_inactive_accounts=Elimina tutti gli account non attivati -dashboard.delete_inactive_accounts.started=Attività di eliminazione degli account non attivati iniziata. dashboard.delete_repo_archives=Elimina tutti gli archivi dei progetti (ZIP, TAR.GZ, ecc..) -dashboard.delete_repo_archives.started=Attività di eliminazione degli archivi del repository iniziata. dashboard.delete_missing_repos=Elimina tutti i repository mancanti dei loro file Git -dashboard.delete_missing_repos.started=Elimina tutti i repository mancanti dei loro file Git. -dashboard.delete_generated_repository_avatars=Elimina gli avatar generati nelle repository -dashboard.update_mirrors=Aggiorna specchi -dashboard.repo_health_check=Controlla integrità di tutti i repository -dashboard.check_repo_stats=Controlla tutte le statistiche del repository -dashboard.archive_cleanup=Elimina vecchi archivi del repository -dashboard.deleted_branches_cleanup=Pulisci i rami eliminati -dashboard.update_migration_poster_id=Aggiorna gli ID del poster di migrazione -dashboard.git_gc_repos=Esegui la garbage collection su tutti i repository -dashboard.resync_all_sshkeys=Aggiornare il file ".ssh/authorized_keys" con le chiavi SSH di Forgejo. -dashboard.resync_all_sshprincipals=Aggiorna il file ".ssh/authorized_keys" con le chiavi principali SSH Forgejo. -dashboard.resync_all_hooks=Sincronizza nuovamente gli hook di pre-ricezione, di aggiornamento e di post-ricezione di tutti i progetti -dashboard.reinit_missing_repos=Reinizializza tutti i repository Git mancanti per i quali esistono cambiamenti registrati esistenti -dashboard.sync_external_users=Sincronizza dati utente esterno -dashboard.cleanup_hook_task_table=Pulisci tabella hook_task -dashboard.cleanup_packages=Pulizia pacchetti scaduti dashboard.delete_old_actions=Elimina tutte le vecchie azioni dal database -dashboard.delete_old_actions.started=Elimina tutte le vecchie azioni dal database iniziate. -dashboard.update_checker=Controllore dell'aggiornamento -dashboard.delete_old_system_notices=Elimina tutte le vecchie notifiche di sistema dal database - users.user_manage_panel=Gestici profili utente users.new_account=Crea account utente -users.name=Nome utente -users.full_name=Nome completo -users.activated=Attivato -users.admin=Amministratore -users.restricted=Limitato -users.2fa=2FA -users.repos=Repo -users.created=Creato -users.last_login=Ultimo accesso -users.never_login=Mai effettuato l'accesso users.send_register_notify=Invia notifica di registrazione utente users.edit=Modifica users.auth_source=Fonte di autenticazione @@ -2972,31 +2925,11 @@ emails.duplicate_active=Questo indirizzo email risulta già attivo per un altro emails.change_email_header=Aggiorna proprietà email orgs.org_manage_panel=Gestisci organizzazioni -orgs.name=Nome -orgs.teams=Team -orgs.members=Membri -orgs.new_orga=Nuova organizzazione - repos.repo_manage_panel=Gestisci progetti repos.unadopted=Progetti non adottati repos.unadopted.no_more=Nessun repositorio non adottato trovato. -repos.owner=Proprietario -repos.name=Nome repos.private=Privati -repos.issues=Segnalazioni -repos.size=Dimensione - packages.package_manage_panel=Gestisci pacchetti -packages.total_size=Dimensione totale: %s -packages.owner=Proprietario -packages.creator=Creatore -packages.name=Nome -packages.version=Versione -packages.type=Tipo -packages.repository=Repository -packages.size=Dimensione -packages.published=Pubblicata - defaulthooks=Richiami HTTP predefiniti defaulthooks.add_webhook=Aggiungi Webhook predefinito defaulthooks.update_webhook=Aggiorna Webhook predefinito @@ -3115,39 +3048,17 @@ config.offline_mode=Modalità locale config.disable_router_log=Disattivare log del router config.run_user=Nome utente con cui eseguire config.run_mode=Modalità di esecuzione -config.git_version=Versione Git config.repo_root_path=Percorso radice del repositorio config.lfs_root_path=Percorso radice LFS config.log_file_root_path=Percorso dei log config.script_type=Tipo di script config.reverse_auth_user=Utente autenticazione reverse proxy -config.ssh_config=Configurazione SSH -config.ssh_enabled=Attivo -config.ssh_start_builtin_server=Usa il server incorporato -config.ssh_domain=Dominio server SSH -config.ssh_port=Porta -config.ssh_listen_port=Porta in ascolto -config.ssh_root_path=Percorso radice -config.ssh_key_test_path=Percorso chiave di test -config.ssh_keygen_path=Percorso keygen ("ssh-keygen") -config.ssh_minimum_key_size_check=Verifica delle dimensioni minime della chiave -config.ssh_minimum_key_sizes=Dimensioni minime della chiave - config.lfs_config=Configurazione LFS config.lfs_enabled=Abilitato config.lfs_content_path=Percorso del contenuto LFS config.lfs_http_auth_expiry=Scadenza autenticazione LFS HTTP -config.db_config=Configurazione base di dati -config.db_type=Tipo -config.db_host=Host -config.db_name=Nome -config.db_user=Nome utente -config.db_schema=Schema -config.db_ssl_mode=SSL -config.db_path=Percorso - config.service_config=Configurazione servizio config.register_email_confirm=Richiedi conferma email per registrarsi config.disable_register=Disattiva auto registrazione @@ -3176,19 +3087,6 @@ config.queue_length=Lunghezza della coda config.deliver_timeout=Tempo limite di consegna config.skip_tls_verify=Salta autenticazione TLS -config.mailer_config=Configurazione Mailer -config.mailer_enabled=Attivo -config.mailer_enable_helo=Abilita HELO -config.mailer_name=Nome -config.mailer_protocol=Protocollo -config.mailer_smtp_addr=Indirizzo SMTP -config.mailer_smtp_port=Porta SMTP -config.mailer_user=Utente -config.mailer_use_sendmail=Utilizza Sendmail -config.mailer_sendmail_path=Percorso Sendmail -config.mailer_sendmail_args=Argomenti aggiuntivi per Sendmail -config.mailer_sendmail_timeout=Timeout Sendmail -config.mailer_use_dummy=Dummy config.test_email_placeholder=Email (es. test@example.com) config.send_test_mail=Invia email di prova @@ -3215,18 +3113,6 @@ config.picture_service=Servizio foto config.disable_gravatar=Disabilita Gravatar config.enable_federated_avatar=Attiva gli avatar federati -config.git_config=Configurazione Git -config.git_disable_diff_highlight=Disattiva sintassi evidenziate per le differenze -config.git_max_diff_lines=Numero massimo di righe delle differenze (per singolo file) -config.git_max_diff_line_characters=Numero massimo di caratteri delle differenze (per singola riga) -config.git_max_diff_files=Numero massimo di file differenze mostrati -config.git_gc_args=Parametri GC -config.git_migrate_timeout=Timeout per la migrazione -config.git_mirror_timeout=Timeout per l'aggiornamento dello specchio -config.git_clone_timeout=Tempo limite operazione di clone -config.git_pull_timeout=Tempo limite operazione di prelievo -config.git_gc_timeout=Timeout operazione GC - config.log_config=Configurazione log config.disabled_logger=Disabilitato config.access_log_mode=Modalità log di accesso @@ -3264,24 +3150,14 @@ notices.type_2=Attività notices.desc=Descrizione notices.op=Op. notices.delete_success=Gli avvisi di sistema sono stati eliminati. -users.remote = Remoto monitor.stats = Statistiche integrations = Integrazioni -users.reserved = Riservato notices.operations = Operazioni -users.bot = Bot config.send_test_mail_submit = Invia -dashboard.cron.cancelled = Cron: %[1]s cancellato: %[3]s -dashboard.new_version_hint = Forgejo %s è ora disponibile; stai eseguendo %s. Controlla il blog per ulteriori dettagli. -dashboard.sync_repo_branches = Sincronizza rami omessi dai dati Git nella base di dati -dashboard.gc_lfs = Oggetti meta LFS riciclati -dashboard.sync_tag.started = Sincronizzazione dei tag iniziata self_check = Auto controllo identity_access = Identità e accesso assets = Risorse codice settings = Impostazioni amministratore -dashboard.task.cancelled = Attività: %[1]s cancellata: %[3]s -dashboard.sync_repo_tags = Sincronizza tag dai dati Git alla base di dati users.new_success = Il profilo utente "%s" è stato creato. users.still_own_packages = Questo utente possiede ancora uno o più pacchetti, elimina questi pacchetti prima. auths.oauth2_map_group_to_team = Associa gruppi reclamati a squadre di organizzazioni. (opzionale - richiede il nome reclamo sopra) @@ -3291,21 +3167,12 @@ monitor.processes_count = %d processi monitor.download_diagnosis_report = Scarica relazione diagnostica config.app_data_path = Percorso dati dell'applicazione packages.cleanup = Pulisci dati scaduti -dashboard.cleanup_actions = Pulisci log scaduti e artefatti dalle azioni -dashboard.stop_endless_tasks = Termina attività senza fine -dashboard.start_schedule_tasks = Inizia pianificazione attività -dashboard.cancel_abandoned_jobs = Cancella incarichi abbandonati auths.login_source_exist = La fonte di autenticazione "%s" esiste già. auths.invalid_openIdConnectAutoDiscoveryURL = URL di auto scoperta invalido (questo deve essere un URL valido che inizia con http:// o con https://) config.access_log_template = Modello log di accesso config.set_setting_failed = Impossibile impostare il parametro %s auths.unable_to_initialize_openid = Impossibile inizializzare OpenID Connect Provider: %s -dashboard.stop_zombie_tasks = Termina attività zombie -dashboard.sync_branch.started = Sincronizzazione dei rami iniziata -dashboard.rebuild_issue_indexer = Ricostruzione dell'indicizzatore delle segnalazioni emails.change_email_text = Sei sicuro di voler aggiornare questo indirizzo email? -repos.lfs_size = Dimensione LFS -packages.unreferenced_size = Dimensione senza riferimenti: %s packages.cleanup.success = Dati scaduti puliti correttamente defaulthooks.desc = I richiami HTTP fanno automaticamente richieste POST al server innescati da alcuni eventi di Forgejo. I richiami HTTP definiti qui sono predefiniti e saranno copiati in tutti i nuovi progetti. Leggi di più nella guida sui richiami HTTP. auths.oauth2_map_group_to_team_removal = Rimuovi utenti dalle squadre sincronizzate se l'utente non appartiene al gruppo corrispondente. @@ -3493,7 +3360,7 @@ exact_tooltip = Includi solo i risultati che corrispondono esattamente al termin issue_kind = Cerca segnalazioni… pull_kind = Cerca richieste… exact = Corrispondenza esatta -regexp_tooltip = Interpretare il termine di ricerca come espressione regolare +regexp_tooltip = Interpreta il termine di ricerca come espressione regolare regexp = Espressione regolare union_tooltip = Include i risultati che combaciano con una qualsiasi delle parole chiave separate da spazi union = Parole chiavi diff --git a/options/locale/locale_ja-JP.ini b/options/locale/locale_ja-JP.ini index f4cbb22f49..6dcba7d376 100644 --- a/options/locale/locale_ja-JP.ini +++ b/options/locale/locale_ja-JP.ini @@ -2846,76 +2846,14 @@ last_page=最後 total=合計: %d settings=管理設定 -dashboard.new_version_hint=Forgejo %s が入手可能になりました。 現在実行しているのは %s です。 詳細は ブログ を確認してください。 -dashboard.statistic=サマリー -dashboard.operations=メンテナンス操作 -dashboard.system_status=システム状況 -dashboard.operation_name=操作の名称 -dashboard.operation_switch=切り替え -dashboard.operation_run=実行 dashboard.clean_unbind_oauth=関連付けられていないOAuth接続を削除 dashboard.clean_unbind_oauth_success=関連付けられていないOAuth接続をすべて削除しました。 -dashboard.task.started=タスクを開始しました: %[1]s -dashboard.task.process=タスク: %[1]s -dashboard.task.cancelled=タスク: %[1]s をキャンセル: %[3]s -dashboard.task.error=タスクでエラー: %[1]s: %[3]s -dashboard.task.finished=タスク: %[2]s が開始したタスク %[1]s が完了 -dashboard.task.unknown=不明なタスクです: %[1]s -dashboard.cron.started=Cronを開始しました: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.cancelled=Cron: %[1]s をキャンセル: %[3]s -dashboard.cron.error=Cronでエラー: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s が完了 dashboard.delete_inactive_accounts=アクティベートされていないアカウントをすべて削除 -dashboard.delete_inactive_accounts.started=アクティベートされていないアカウントをすべて削除するタスクを開始しました。 dashboard.delete_repo_archives=リポジトリのアーカイブ (ZIP, TAR.GZ, etc..) をすべて削除 -dashboard.delete_repo_archives.started=リポジトリアーカイブをすべて削除するタスクを開始しました。 dashboard.delete_missing_repos=Gitファイルが存在しないリポジトリをすべて削除 -dashboard.delete_missing_repos.started=Gitファイルが存在しないリポジトリをすべて削除するタスクを開始しました。 -dashboard.delete_generated_repository_avatars=自動生成したリポジトリアバターを削除 -dashboard.sync_repo_branches=Gitデータからデータベースへ不足しているブランチを同期 -dashboard.update_mirrors=ミラーの更新 -dashboard.repo_health_check=全リポジトリのヘルスチェック -dashboard.check_repo_stats=全リポジトリの統計情報を更新 -dashboard.archive_cleanup=古いリポジトリアーカイブの削除 -dashboard.deleted_branches_cleanup=削除ブランチのクリーンアップ -dashboard.update_migration_poster_id=移行する投稿者IDの更新 -dashboard.git_gc_repos=すべてのリポジトリでガベージコレクションを実行 -dashboard.resync_all_sshkeys=Forgejo SSH キーを使用して".ssh/authorized_keys"ファイルを更新します。 -dashboard.resync_all_sshprincipals=Forgejo SSH プリンシパルを使用して".ssh/authorized_principals"ファイルを更新します。 -dashboard.resync_all_hooks=すべてのリポジトリの Git フックを再同期します (pre-receive、update、post-receive、proc-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.delete_old_actions=データベースから古い操作履歴をすべて削除 -dashboard.delete_old_actions.started=データベースからの古い操作履歴の削除を開始しました。 -dashboard.update_checker=更新チェック -dashboard.delete_old_system_notices=データベースから古いシステム通知をすべて削除 -dashboard.gc_lfs=LFSメタオブジェクトのガベージコレクション -dashboard.stop_zombie_tasks=ゾンビタスクを停止 -dashboard.stop_endless_tasks=終わらないタスクを停止 -dashboard.cancel_abandoned_jobs=放置されたままのジョブをキャンセル -dashboard.start_schedule_tasks=スケジュールタスクを開始 -dashboard.sync_branch.started=ブランチの同期を開始しました -dashboard.rebuild_issue_indexer=イシューインデクサーの再構築 - users.user_manage_panel=ユーザーアカウント管理 users.new_account=ユーザーアカウントを作成 -users.name=ユーザー名 -users.full_name=フルネーム -users.activated=アクティベート済み -users.admin=管理者 -users.restricted=制限あり -users.reserved=予約済み -users.bot=Bot -users.remote=リモート -users.2fa=2FA -users.repos=リポジトリ -users.created=作成日 -users.last_login=前回のサインイン -users.never_login=未サインイン users.send_register_notify=ユーザーに登録メールを送る users.new_success=ユーザーアカウント "%s" を作成しました。 users.edit=編集 @@ -2961,35 +2899,13 @@ emails.change_email_header=メール設定の更新 emails.change_email_text=このメールアドレスで更新してもよろしいですか? orgs.org_manage_panel=組織の管理 -orgs.name=名称 -orgs.teams=チーム -orgs.members=メンバー -orgs.new_orga=新しい組織 - repos.repo_manage_panel=リポジトリの管理 repos.unadopted=未登録リポジトリ repos.unadopted.no_more=未登録のリポジトリはありません -repos.owner=オーナー -repos.name=名称 repos.private=プライベート -repos.issues=イシュー -repos.size=サイズ -repos.lfs_size=LFSサイズ - packages.package_manage_panel=パッケージ管理 -packages.total_size=合計サイズ: %s -packages.unreferenced_size=非参照サイズ: %s packages.cleanup=期限切れデータを掃除する packages.cleanup.success=期限切れのデータを正常にクリーンアップしました -packages.owner=オーナー -packages.creator=作成者 -packages.name=名前 -packages.version=バージョン -packages.type=タイプ -packages.repository=リポジトリ -packages.size=サイズ -packages.published=配布 - defaulthooks=デフォルトWebhook defaulthooks.desc=Webhookは、特定のForgejoイベントのトリガーが発生した際に、自動的にHTTP POSTリクエストをサーバーへ送信するものです。 ここで定義されたWebhookはデフォルトとなり、全ての新規リポジトリにコピーされます。 詳しくはWebhooksガイドをご覧下さい。 defaulthooks.add_webhook=デフォルトWebhookの追加 @@ -3118,7 +3034,6 @@ config.offline_mode=ローカルモード config.disable_router_log=ルーターのログが無効 config.run_user=実行ユーザー名 config.run_mode=実行モード -config.git_version=Gitバージョン config.app_data_path=Appデータパス config.repo_root_path=リポジトリのルートパス config.lfs_root_path=LFSルートパス @@ -3126,32 +3041,11 @@ config.log_file_root_path=ログの保存先パス config.script_type=スクリプトの種類 config.reverse_auth_user=リバースプロキシ認証ユーザー -config.ssh_config=SSH設定 -config.ssh_enabled=有効 -config.ssh_start_builtin_server=ビルトインサーバーを使用 -config.ssh_domain=SSHサーバーのドメイン -config.ssh_port=ポート -config.ssh_listen_port=待受ポート -config.ssh_root_path=ルートパス -config.ssh_key_test_path=キーテストパス -config.ssh_keygen_path=キージェネレータ("ssh-keygen")パス -config.ssh_minimum_key_size_check=最小キー長のチェック -config.ssh_minimum_key_sizes=最小キー長 - config.lfs_config=LFS設定 config.lfs_enabled=有効 config.lfs_content_path=LFS保存先パス config.lfs_http_auth_expiry=LFSのHTTP認証有効時間 -config.db_config=データベース設定 -config.db_type=タイプ -config.db_host=ホスト -config.db_name=データベース名 -config.db_user=ユーザー名 -config.db_schema=スキーマ -config.db_ssl_mode=SSL -config.db_path=パス - config.service_config=サービス設定 config.register_email_confirm=登録にはメールによる確認が必要 config.disable_register=セルフ登録無効 @@ -3180,19 +3074,6 @@ config.queue_length=キューの長さ config.deliver_timeout=送信タイムアウト config.skip_tls_verify=TLS検証を省略 -config.mailer_config=メーラー設定 -config.mailer_enabled=有効 -config.mailer_enable_helo=HELO有効 -config.mailer_name=名称 -config.mailer_protocol=プロトコル -config.mailer_smtp_addr=SMTPホスト -config.mailer_smtp_port=SMTPポート -config.mailer_user=ユーザー -config.mailer_use_sendmail=Sendmailを使う -config.mailer_sendmail_path=Sendmailのパス -config.mailer_sendmail_args=Sendmailの追加引数 -config.mailer_sendmail_timeout=Sendmail のタイムアウト -config.mailer_use_dummy=Dummy config.test_email_placeholder=Email (例 test@example.com) config.send_test_mail=テストメールを送信 config.send_test_mail_submit=送信 @@ -3222,18 +3103,6 @@ config.picture_service=画像サービス config.disable_gravatar=Gravatarが無効 config.enable_federated_avatar=フェデレーテッド・アバター有効 -config.git_config=Git設定 -config.git_disable_diff_highlight=Diffのシンタックスハイライトが無効 -config.git_max_diff_lines=ファイルあたりの最大差分行数 -config.git_max_diff_line_characters=1行あたりの最大差分文字数 -config.git_max_diff_files=差分を表示する最大ファイル数 -config.git_gc_args=GC引数 -config.git_migrate_timeout=移行タイムアウト -config.git_mirror_timeout=ミラー更新タイムアウト -config.git_clone_timeout=クローン操作のタイムアウト -config.git_pull_timeout=プル操作のタイムアウト -config.git_gc_timeout=GC操作のタイムアウト - config.log_config=ログ設定 config.logger_name_fmt=ロガー: %s config.disabled_logger=無効 @@ -3279,8 +3148,6 @@ notices.desc=説明 notices.op=操作 notices.delete_success=システム通知を削除しました。 config.open_with_editor_app_help = クローン メニューの「~で開く」エディター。空のままにすると、デフォルトが使用されます。展開してデフォルトを表示します。 -dashboard.sync_repo_tags = Gitデータからデータベースにタグを同期する -dashboard.sync_tag.started = タグの同期が開始されました self_check = セルフチェック auths.tips.gmail_settings = Gmail設定: self_check.no_problem_found = まだ問題は見つかりません。 diff --git a/options/locale/locale_ka.ini b/options/locale/locale_ka.ini index d99ab6a667..462e406bd6 100644 --- a/options/locale/locale_ka.ini +++ b/options/locale/locale_ka.ini @@ -627,37 +627,13 @@ config_settings = მორგება monitor = მონიტორინგი first_page = პირველი last_page = ბოლო -dashboard.statistic = შეჯამება -dashboard.operation_run = გაშვება -users.name = მომხმარებლის სახელი -users.activated = გააქტიურებულია -users.admin = ადმინი -users.restricted = შეზღუდული -users.reserved = დაცული -users.bot = ბოტი -users.remote = დაშორებული -users.2fa = 2FA -users.repos = რეპოები -users.created = შეიქმნა users.edit = ჩასწორება users.local = ლოკალური emails.primary = ძირითადი emails.activated = გააქტიურებულია emails.filter_sort.email = ელფოსტა emails.filter_sort.name = მომხმარებლის სახელი -orgs.name = სახელი -orgs.teams = გუნდები -repos.owner = მფლობელი -repos.name = სახელი repos.private = პირადი -repos.issues = პრობლემები -repos.size = ზომა -packages.owner = მფლობელი -packages.name = სახელი -packages.version = ვერსია -packages.type = ტიპი -packages.repository = რეპოზიტორია -packages.size = ზომა auths.name = სახელი auths.type = ტიპი auths.enabled = ჩართულია @@ -667,20 +643,7 @@ auths.host = ჰოსტი auths.port = პორტი auths.oauth2_tenant = ტენანტი auths.tips = რჩევები -config.ssh_enabled = ჩართულია -config.ssh_port = პორტი config.lfs_enabled = ჩართულია -config.db_type = ტიპი -config.db_host = ჰოსტი -config.db_name = სახელი -config.db_user = მომხმარებლის სახელი -config.db_schema = სქემა -config.db_ssl_mode = SSL -config.db_path = ბილიკი -config.mailer_name = სახელი -config.mailer_protocol = პროტოკოლი -config.mailer_user = მომხმარებელი -config.mailer_use_dummy = სულელი config.oauth_enabled = ჩართულია config.disabled_logger = გამორთულია monitor.stats = სტატისტიკა @@ -698,11 +661,6 @@ notices.type_2 = ამოცანა notices.desc = აღწერა notices.op = ოპ. config.send_test_mail_submit = გაგზავნა -packages.creator = შემქმნელი -dashboard.operation_switch = გადართვა -orgs.members = წევრები -packages.published = გამოქვეყნებულია -config.mailer_enabled = ჩართულია [action] review_dismissed_reason = მიზეზი: diff --git a/options/locale/locale_kab.ini b/options/locale/locale_kab.ini index 71d7d508a1..b1b1cef091 100644 --- a/options/locale/locale_kab.ini +++ b/options/locale/locale_kab.ini @@ -412,17 +412,9 @@ mailer_password = Awal n uɛeddi SMTP [admin] notices.type_1 = Akufi -packages.repository = Akufi -config.db_user = Isem n useqdac -users.name = Isem n useqdac emails.filter_sort.name = Isem n useqdac notices.desc = Aglam -orgs.name = Isem -repos.name = Isem -packages.name = Isem auths.name = Isem -config.db_name = Isem -config.mailer_name = Isem monitor.name = Isem repositories = Ikufan dashboard = Tafelwit n usenqed @@ -430,55 +422,27 @@ organizations = Tuddsiwin config = Tawila config_summary = Agzul config_settings = Iɣewwaren -dashboard.statistic = Agzul -users.2fa = 2FA -config.db_ssl_mode = SSL first_page = Amezwaru last_page = Aneggaru users.edit = Ẓreg emails.filter_sort.email = Imayl -orgs.teams = Igrawen -orgs.members = Imttekkiyen -repos.owner = Bab-is -config.mailer_user = Aseqdac -users.admin = Anedbal -repos.size = Tiddi -packages.owner = Bab-is -packages.creator = Asaraw -packages.version = Lqem -packages.type = Tawsit -packages.size = Tiddi -repos.lfs_size = Tiddi LFS auths.search_page_size = Tiddi n usebter -users.full_name = Isem ummid -users.last_login = Tuqqna taneggarut users.auth_source = Tiɣbula n usesteb users.is_activated = Amiḍan-a d urmid auths.tips.gmail_settings = Iɣewwaren n Gmail: -config.ssh_config = Tawila n SSH config.domain = Taɣult n uqeddac config.server_config = Tawila n uqeddac config.app_name = Azwel n wesmel config.app_ver = Lqem n Forgejo config.app_url = URL n taffa n Forgejo -config.mailer_smtp_port = Tawwurt n SMTP -config.mailer_use_sendmail = Seqdec Sendmail config.https_only = HTTPS kan -config.git_config = Tawila n Git auths.oauth2_profileURL = URL n umaɣnu users.update_profile = Leqqem amiḍan n useqdac auths.type = Anaw auths.enabled = D urmid auths.host = Asenneftaɣ auths.port = Tawwurt -config.ssh_port = Tawwurt config.lfs_enabled = D urmid -config.db_type = Anaw -config.db_host = Asenneftaɣ -config.db_schema = Azenziɣ -config.db_path = Abrid -config.mailer_enabled = D urmid -config.mailer_protocol = Aneggaf monitor.stats = Tiddadanin config.enable_captcha = Sermed CAPTCHA notices.select_all = Fren-iten akk diff --git a/options/locale/locale_ko-KR.ini b/options/locale/locale_ko-KR.ini index 7d8ddcf5b6..1c951393d8 100644 --- a/options/locale/locale_ko-KR.ini +++ b/options/locale/locale_ko-KR.ini @@ -1379,7 +1379,7 @@ milestones.filter_sort.name = 이름 org_name_holder=조직 이름 org_full_name_holder=조직 별명 create_org=새로운 조직 -repo_updated=업데이트됨 %s +repo_updated=%s 마지막 업데이트 members=멤버 teams=팀 lower_members=회원 @@ -1452,23 +1452,8 @@ first_page=처음 last_page=마지막 total=총: %d -dashboard.statistic=요약 -dashboard.system_status=시스템 상태 -dashboard.operation_name=작업 명 -dashboard.operation_switch=스위치 -dashboard.operation_run=실행 -dashboard.git_gc_repos=모든 저장소 가비지 콜렉트 -dashboard.sync_external_users=외부 사용자 데이터 동기화 users.user_manage_panel=사용자 계정 관리 users.new_account=사용자 계정 생성 -users.name=사용자명 -users.full_name=성명 -users.activated=활성화됨 -users.admin=관리자 -users.repos=저장소 -users.created=작성일 -users.last_login=마지막 로그인 -users.never_login=로그인 한 적이 없음 users.send_register_notify=사용자 등록 알림 전송 users.edit=수정하기 users.auth_source=인증 소스 @@ -1490,26 +1475,8 @@ users.deletion_success=사용자 계정이 삭제되었습니다. emails.activated=활성화됨 orgs.org_manage_panel=조직 관리 -orgs.name=이름 -orgs.teams=팀 -orgs.members=멤버 -orgs.new_orga=새 조직 - repos.repo_manage_panel=저장소 관리 -repos.owner=소유자 -repos.name=이름 repos.private=비공개 -repos.issues=이슈 -repos.size=크기 - -packages.owner=소유자 -packages.name=이름 -packages.type=유형 -packages.repository=저장소 -packages.size=크기 - - - auths.auth_manage_panel=인증 소스 관리 auths.new=인증 소스 추가 auths.name=이름 @@ -1571,34 +1538,14 @@ config.offline_mode=로컬 모드 config.disable_router_log=라우터 로그 비활성화 config.run_user=실행 사용자명 config.run_mode=실행 모드 -config.git_version=Git 버전 config.repo_root_path=저장소 최상위 경로 config.lfs_root_path=LFS 루트 경로 config.log_file_root_path=로그 경로 config.script_type=스크립트 유형 config.reverse_auth_user=역방향 사용자 인증 -config.ssh_config=SSH 설정 -config.ssh_enabled=활성화됨 -config.ssh_start_builtin_server=내장 서버 사용 -config.ssh_port=포트 -config.ssh_listen_port=수신 대기 포트 -config.ssh_root_path=최상위 경로 -config.ssh_key_test_path=주 테스트 경로 -config.ssh_keygen_path=키 생성 ('ssh-keygen') 경로 -config.ssh_minimum_key_size_check=최소 키 사이즈 검사 -config.ssh_minimum_key_sizes=최소 키 사이즈 - config.lfs_enabled=활성화됨 -config.db_config=데이터베이스 설정 -config.db_type=유형 -config.db_host=호스트 -config.db_name=이름 -config.db_user=사용자명 -config.db_ssl_mode=SSL -config.db_path=경로 - config.service_config=서비스 설정 config.register_email_confirm=가입시 이메일 확인 필수 config.disable_register=사용자 등록 거부 @@ -1623,13 +1570,6 @@ config.queue_length=큐 길이 config.deliver_timeout=시간 제한 사용 config.skip_tls_verify=TLS 검증 건너뛰기 -config.mailer_enabled=활성화됨 -config.mailer_name=이름 -config.mailer_smtp_port=SMTP 포트 -config.mailer_user=사용자 -config.mailer_use_sendmail=Sendmail 사용 -config.mailer_sendmail_path=Sendmail 경로 -config.mailer_sendmail_args=Sendmail 추가 인수 config.send_test_mail=테스트 이메일 전송 config.oauth_config=OAuth 설정 @@ -1654,18 +1594,6 @@ config.picture_service=이미지 서비스 config.disable_gravatar=Gravatar 사용안함 config.enable_federated_avatar=연합 아바타 사용 -config.git_config=깃 설정 -config.git_disable_diff_highlight=변경 사항 구문 강조 비활성화 -config.git_max_diff_lines=변경사항 최대 표시 줄 수 (단일 파일에 대해) -config.git_max_diff_line_characters=변경사항 최대 표시 문자 수 (단일 행에 대해) -config.git_max_diff_files=변경사항 최대 파일 개 수 (표시 되는) -config.git_gc_args=가비지 콜렉션 인수 -config.git_migrate_timeout=마이그레이션 제한 시간 -config.git_mirror_timeout=미러 업데이트 시간 제한 -config.git_clone_timeout=복제 작업 시간 제한 -config.git_pull_timeout=끌어오기 작업 시간 제한 -config.git_gc_timeout=가비지 콜렉션 작업 시간 제한 - config.log_config=로그 설정 diff --git a/options/locale/locale_kw.ini b/options/locale/locale_kw.ini index ac8dd8a41a..6f39975f39 100644 --- a/options/locale/locale_kw.ini +++ b/options/locale/locale_kw.ini @@ -931,6 +931,8 @@ regenerate_scratch_token_desc = Mar kellowgh agas alhwedh yaghheans po hwi re de twofa_disabled = Gwirheans dewkamm re beu marowhys. scan_this_image = Arhwilasewgh an skeusen ma gans agas app reythheans: twofa_enrolled = Agas akont re beu rolys yn sewen. Gwithewgh agas alhwedh yaghheans undevnydh yn le saw, ny vydh diskwedhys arta. +webauthn_delete_key_desc = Mar dileowgh alhwedh saweder hwi ny yllir omgelmi gans dhir. Pesya? +webauthn_key_loss_warning = Mar kellowgh agas alhwedhow sawder, hwi a wra kelli hedhas dh'gas akont. [repo] repo_name = Hanow gwithva diff --git a/options/locale/locale_lv-LV.ini b/options/locale/locale_lv-LV.ini index 79a2e1a08f..d6b86b5dc0 100644 --- a/options/locale/locale_lv-LV.ini +++ b/options/locale/locale_lv-LV.ini @@ -2885,76 +2885,14 @@ last_page=Pēdējā total=Kopā: %d settings=Pārvaldīšanas iestatījumi -dashboard.new_version_hint=Ir pieejama Forgejo %s, pašlaik darbojas %s. Vairāk informācijas ir atrodama emuārā. -dashboard.statistic=Kopsavilkums -dashboard.operations=Uzturēšanas darbības -dashboard.system_status=Sistēmas stāvoklis -dashboard.operation_name=Darbības nosaukums -dashboard.operation_switch=Pārslēgt -dashboard.operation_run=Palaist dashboard.clean_unbind_oauth=Notīrīt nepiesaistītos OAuth savienojumus dashboard.clean_unbind_oauth_success=Visi nepiesaistītie OAuth savienojumu tika izdzēsti. -dashboard.task.started=Uzsākts uzdevums: %[1]s -dashboard.task.process=Uzdevums: %[1]s -dashboard.task.cancelled=Uzdevums: %[1]s atcelts: %[3]s -dashboard.task.error=Kļūda uzdevuma izpildē: %[1]s: %[3]s -dashboard.task.finished=Uzdevums: %[1]s, ko iniciēja %[2]s ir izpildīts -dashboard.task.unknown=Nezināms uzdevums: %[1]s -dashboard.cron.started=Uzsākts Cron: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.cancelled=Cron: %[1]s atcelts: %[3]s -dashboard.cron.error=Cron kļūda: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s pabeigts dashboard.delete_inactive_accounts=Izdzēst visus neaktivētos kontus -dashboard.delete_inactive_accounts.started=Ir uzsākts visu neaktivēto kontu izdzēšanas uzdevums. dashboard.delete_repo_archives=Izdzēst visus glabātavu arhīvus (ZIP, TAR.GZ utt.) -dashboard.delete_repo_archives.started=Visu glabātavas arhīvu izdzēšanas uzdevums ir uzsākts. dashboard.delete_missing_repos=Izdzēst visas glabātavas, kurām trūkst Git datņu -dashboard.delete_missing_repos.started=Uzsākts uzdevums visu glabātavu, kurām trūkst Git datņu, izdzēšanai. -dashboard.delete_generated_repository_avatars=Izdzēst izveidotos glabātavu attēlus -dashboard.sync_repo_branches=Sinhronizēšana datubāzēs izlaida zarus no Git datiem -dashboard.update_mirrors=Atjaunināt spoguļglabātavas -dashboard.repo_health_check=Pārbaudīt visu glabātavu darbspēju -dashboard.check_repo_stats=Pārbaudīt visu glabātavas apkopojumu -dashboard.archive_cleanup=Izdzēst vecos glabātavu arhīvus -dashboard.deleted_branches_cleanup=Notīrīt izdzēstos zarus -dashboard.update_migration_poster_id=Atjaunināt pārcelšanas ierosinātāja identifikatorus -dashboard.git_gc_repos=Veikt drazu savākšanu visās glabātavās -dashboard.resync_all_sshkeys=Atjaunināt datni ".ssh/authorized_keys" ar Forgejo SSH atslēgām. -dashboard.resync_all_sshprincipals=Atjaunināt datni ".ssh/authorized_principals" ar Forgejo SSH identitātēm. -dashboard.resync_all_hooks=Atkārtoti sinhronizēt visu glabātavau Git aizķeres (`pre-receive`, `update`, `post-receive`, `proc-receive`, …) -dashboard.reinit_missing_repos=Atkārtoti sāknēt visas trūkstošās Git glabātavas, par kurām ir ieraksti -dashboard.sync_external_users=Sinhronizēt ārējo lietotāju datus -dashboard.cleanup_hook_task_table=Iztīrīt tabulu hook_task -dashboard.cleanup_packages=Notīrīt novecojušās pakotnes -dashboard.cleanup_actions=Notīrīt darbību izbeigušos žurnālus un artefaktus dashboard.delete_old_actions=Izdzēst visas novecojušās darbības no datubāzes -dashboard.delete_old_actions.started=Uzsākta visu novecojušo darbību izdzēšana no datubāzes. -dashboard.update_checker=Atjauninājumu pārbaudītājs -dashboard.delete_old_system_notices=Dzēst vecos sistēmas paziņojumus no datubāzes -dashboard.gc_lfs=Veikt atkritumu uzkopšanas darbus LFS meta objektiem -dashboard.stop_zombie_tasks=Apturēt darbību zombijuzdevumus -dashboard.stop_endless_tasks=Apturēt bezgalīgus darbību uzdevumus -dashboard.cancel_abandoned_jobs=Atcelt pamestus darbību darbus -dashboard.start_schedule_tasks=Uzsākt paredzētos darbību uzdevumus -dashboard.sync_branch.started=Uzsākta zaru sinhronizēšana -dashboard.rebuild_issue_indexer=Pārbūvēt pieteikumu indeksētāju - users.user_manage_panel=Pārvaldīt lietotāju kontus users.new_account=Izveidot lietotāja kontu -users.name=Lietotājvārds -users.full_name=Pilns vārds -users.activated=Aktivēts -users.admin=Pārvaldītājs -users.restricted=Ierobežots -users.reserved=Aizņemts -users.bot=Robotprogrammatūra -users.remote=Attāls -users.2fa=2FA -users.repos=Glabātavas -users.created=Izveidots -users.last_login=Pēdējā pieteikšanās -users.never_login=Pieteikšanās nekad nav notikusi users.send_register_notify=Paziņot par reģistrāciju e-pastā users.new_success=Lietotāja konts "%s" tika izveidots. users.edit=Labot @@ -3000,35 +2938,13 @@ emails.change_email_header=Atjaunināt e-pasta īpašības emails.change_email_text=Vai tiešām atjaunināt šo e-pasta adresi? orgs.org_manage_panel=Pārvaldīt apvienības -orgs.name=Nosaukums -orgs.teams=Komandas -orgs.members=Dalībnieki -orgs.new_orga=Jauna apvienība - repos.repo_manage_panel=Pārvaldīt glabātavas repos.unadopted=Nepieņemtās glabātavas repos.unadopted.no_more=Nav atrasta neviena nepieņemta glabātava. -repos.owner=Īpašnieks -repos.name=Nosaukums repos.private=Privāta -repos.issues=Pieteikumi -repos.size=Izmērs -repos.lfs_size=LFS lielums - packages.package_manage_panel=Pārvaldīt pakotnes -packages.total_size=Kopējais lielums: %s -packages.unreferenced_size=Lielums bez atsauces: %s packages.cleanup=Notīrīt novecojušos datus packages.cleanup.success=Izbeigušies dati sekmīgi notīrīti -packages.owner=Īpašnieks -packages.creator=Izveidotājs -packages.name=Nosaukums -packages.version=Versija -packages.type=Veids -packages.repository=Glabātava -packages.size=Izmērs -packages.published=Laista klajā - defaulthooks=Noklusējuma tīmekļa aizķeres defaulthooks.desc=Tīmekļa aizķeres automātiski nosūta HTTP POST pieprasījumus serverim, kad iestājas noteikti Forgejo notikumi. Šeit esošās tīmekļa aizķeres ir noklusējuma, un tās tiks ievietotas visās jaunajās glabātavās. Vairāk ir lasāms norādēs par tīmekļa aizķerēm. defaulthooks.add_webhook=Pievienot noklusējuma tīmekļa aizķeri @@ -3157,7 +3073,6 @@ config.offline_mode=Bezsaistes režīms config.disable_router_log=Atspējot maršrutētāja žurnālu config.run_user=Lietotājs, ar kuru palaist config.run_mode=Palaišanas veids -config.git_version=Git versija config.app_data_path=Lietotnes datu ceļš config.repo_root_path=Glabātavu atrašanās vieta config.lfs_root_path=LFS pamatmapes ceļš @@ -3165,32 +3080,11 @@ config.log_file_root_path=Žurnālu atrašanās vieta config.script_type=Skripta veids config.reverse_auth_user=Apvērstā starpniekservera autentificēšanās lietotājs -config.ssh_config=SSH konfigurācija -config.ssh_enabled=Iespējots -config.ssh_start_builtin_server=Izmantot iebūvēto serveri -config.ssh_domain=SSH servera domēna vārds -config.ssh_port=Ports -config.ssh_listen_port=Klausīšanās ports -config.ssh_root_path=Atrašanās vieta -config.ssh_key_test_path=Atslēgu pārbaudes ceļš -config.ssh_keygen_path=Keygen ("ssh-keygen") atrašanās vieta -config.ssh_minimum_key_size_check=Mazākā pieļaujamā atslēgas lieluma pārbaude -config.ssh_minimum_key_sizes=Mazākie pieļaujamie atslēgu lielumi - config.lfs_config=LFS konfigurācija config.lfs_enabled=Iespējots config.lfs_content_path=LFS satura atrašanās vieta config.lfs_http_auth_expiry=LFS HTTP pilnvarošanas derīguma laiks -config.db_config=Datubāzes konfigurācija -config.db_type=Veids -config.db_host=Resursdators -config.db_name=Nosaukums -config.db_user=Lietotājvārds -config.db_schema=Shēma -config.db_ssl_mode=SSL -config.db_path=Ceļš - config.service_config=Pakalpojuma konfigurācija config.register_email_confirm=Pieprasīt e-pasta adreses apstiprināšanu, lai reģistrētos config.disable_register=Atspējot pašreģistrēšanos @@ -3218,19 +3112,6 @@ config.queue_length=Rindsaraksta garums config.deliver_timeout=Piegādes noildze config.skip_tls_verify=Izlaist TLS pārbaudi -config.mailer_config=Pasta sūtītāja konfigurācija -config.mailer_enabled=Iespējota -config.mailer_enable_helo=Iespējot HELO -config.mailer_name=Nosaukums -config.mailer_protocol=Protokols -config.mailer_smtp_addr=SMTP saimniekdators -config.mailer_smtp_port=SMTP ports -config.mailer_user=Lietotājs -config.mailer_use_sendmail=Izmantot Sendmail -config.mailer_sendmail_path=Sendmail ceļš -config.mailer_sendmail_args=Papildu Sendmail argumenti -config.mailer_sendmail_timeout=Sendmail noildze -config.mailer_use_dummy=Tukšs config.test_email_placeholder=E-pasts (piemēram, test@example.com) config.send_test_mail=Nosūtīt pārbaudes e-pasta ziņojumu config.send_test_mail_submit=Sūtīt @@ -3260,18 +3141,6 @@ config.picture_service=Attēlu pakalpojums config.disable_gravatar=Atspējot Gravatar config.enable_federated_avatar=Iespējot vienotos profila attēlus -config.git_config=Git konfigurācija -config.git_disable_diff_highlight=Atspējot salīdzināšanas sintakses iekrāsošanu -config.git_max_diff_lines=Lielākais salīdzināmo rindu skaits datnē -config.git_max_diff_line_characters=Lielākais rindas salīdzināmo rakstzīmju skaits -config.git_max_diff_files=Lielākais parādāmo salīdzināmo datņu skaits -config.git_gc_args=GC argumenti -config.git_migrate_timeout=Pārcelšanas noildze -config.git_mirror_timeout=Spoguļglabātavas atjaunināšanas noildze -config.git_clone_timeout=Klonēšanas darbības noildze -config.git_pull_timeout=Atgādāšanas darbības noildze -config.git_gc_timeout=GC darbības noildze - config.log_config=Žurnāla konfigurācija config.logger_name_fmt=Žurnalizētājs: %s config.disabled_logger=Atspējots @@ -3333,7 +3202,6 @@ self_check.database_fix_mysql = MySQL/MariaDB lietotāji var izmantot komandu "f config.app_slogan = Servera sauklis config.allow_dots_in_usernames = Ļaut lietotājiem izmantot punktus savā lietotājvārdā. Neietekmē esošos kontus. users.restricted.description = Ļaut mijiedarbību tikai ar glabātavām un apvienībām, kurās šis lietotājs ir pievienots kā līdzdalībnieks. Tas neļauj piekļūt šī servera publiskajām glabātavām. -dashboard.sync_tag.started = Uzsākta birku sinhronizēšana users.organization_creation.description = Ļaut jaunu apvienību izveidošanu. users.block.description = Liegt šī lietotāja mijiedarbību ar šo serveri caur tā kontu un neļaut pieteikšanos. users.admin.description = Nodrošināt šim lietotājam pilnu piekļuvi visām pārvaldīšanas iespējām ar tīmekļa saskarni un API. @@ -3345,7 +3213,6 @@ emails.delete_primary_email_error = Nevar izdzēst galveno e-pasta adresi. auths.tips.gmail_settings = Gmail iestatījumi: users.activated.description = E-pasta adreses apliecināšanas pabeigšana. Neaktivēta konta īpašnieks nevarēs pieteikties, kamēr e-pasta adreses apliecināšana nebūs pabeigta. auths.default_domain_name = Noklusējuma domēna vārds, kas tiek izmantots e-pasta adresēs -dashboard.sync_repo_tags = Datubāzē sinhronizēt birkas no Git datiem monitor.duration = Ilgums (s) [action] diff --git a/options/locale/locale_ml-IN.ini b/options/locale/locale_ml-IN.ini index e68ec7e99e..6b18dce3d5 100644 --- a/options/locale/locale_ml-IN.ini +++ b/options/locale/locale_ml-IN.ini @@ -673,29 +673,6 @@ settings.event_issues=ഇഷ്യൂകള്‍ [org] [admin] -repos.issues=ഇഷ്യൂകള്‍ - - - - - - - - - - - - - - - - - - - - - - [action] diff --git a/options/locale/locale_nb_NO.ini b/options/locale/locale_nb_NO.ini index bb9c6eaefb..570763dc52 100644 --- a/options/locale/locale_nb_NO.ini +++ b/options/locale/locale_nb_NO.ini @@ -159,7 +159,7 @@ code_search_unavailable = Kodesøk er ikke tilgjengelig. Kontakt administratoren user_kind = Søk i brukere… [auth] -verify = Bekreft +verify = Verifiser sign_up_button = Opprett konto nå. change_unconfirmed_email_error = Kan ikke endre e-postadresse: %v login_userpass = Logg inn @@ -267,7 +267,7 @@ buttons.bold.tooltip = Legg til uthevet tekst (Ctrl+B / ⌘B) buttons.italic.tooltip = Legg til kursiv text (Ctrl+I / ⌘I) buttons.list.unordered.tooltip = Legg til punktliste buttons.list.ordered.tooltip = Legg til nummerert liste -buttons.link.tooltip = Legg til link +buttons.link.tooltip = Legg til link (Ctrl+K / ⌘K) buttons.quote.tooltip = Siter tekst buttons.mention.tooltip = Nevn en bruker eller team buttons.list.task.tooltip = Legg til liste over saker @@ -467,16 +467,151 @@ n_commit_few = %s innsendelser commits.commits = Innsendelser n_branch_few = %s utgreining n_tag_few = %s etiketter -tags = Etiketter +tags = Tagger commit_graph.select = Velg utgreining branches = Utgreining find_file.go_to_file = Finn en fil find_file.no_matching = Ingen samsvarende filer funnet pulls.merged = Flettet pulls.tab_conversation = Diskusjon +admin.manage_flags = Administrer flagg +admin.update_flags = Oppdater flagg +new_from_template = Bruk en mal +new_advanced = Avanserte innstillinger +new_advanced_expand = Klikk for å utvide +owner = Eier +size_format = %[1]s: %[2]s, %[3]s: %[4]s +template = Mal +template_select = Velg en mal +visibility = Synlighet +visibility_description = Kun eieren eller organisasjonens medlemmer, hvis de har rettigheter, vil kunne se det. +use_template = Bruk denne malen +open_with_editor = Åpne med %s +download_zip = Last ned ZIP +download_tar = Last ned TAR.GZ +download_bundle = Last ned BUNDLE +repo_desc = Beskrivelse +repo_desc_helper = Fyll inn en kort beskrivelse (valgfritt) +repo_gitignore_helper = Velg .gitignore-maler +repo_gitignore_helper_desc = Velg hvilke filer som ikke skal spores fra en liste over maler for vanlige språk. Typiske artefakter fra hvert språks byggeverktøy er inkludert i .gitignore som standard. +issue_labels = Etiketter +issue_labels_helper = Velg et etikettsett +license = Lisens +license_helper = Velg en lisensfil +license_helper_desc = En lisens styrer hva andre kan og ikke kan gjøre med koden din. Er du usikker på hvilken som er rett for ditt prosjekt? Se Velg en lisens. +object_format = Objektformat [settings] no_activity = Ingen nylig aktivitet +profile = Profil +account = Konto +appearance = Utseende +security = Sikkerhet +avatar = Profilbilde +ssh_gpg_keys = SSH- / GPG-nøkler +applications = Applikasjoner +orgs = Organisasjoner +twofa = Tofaktorautentisering (TOTP) +organization = Organisasjoner +webauthn = Tofaktorautentisering (sikkerhetsnøkler) +blocked_users = Blokkerte brukere +storage_overview = Lagringsoversikt +quota = Kvote +public_profile = Offentlig profil +biography_placeholder = Fortell andre litt om deg selv! (Markdown er støttet) +location_placeholder = Del din omtrentlige lokasjon med andre +profile_desc = Om deg +password_username_disabled = Ikke-lokale brukere har ikke lov til å endre sitt brukernavn. Vennligst kontakt din nettstedsadministrator for flere detaljer. +full_name = Fullt navn +website = Nettside +location = Lokasjon +pronouns = Pronomen +pronouns_unspecified = Uspesifisert +update_theme = Endre tema +update_profile = Oppdater profil +update_language = Endre språk +update_language_not_found = Språket "%s" er ikke tilgjengelig. +update_language_success = Språket har blitt oppdatert. +update_profile_success = Din profil har blitt oppdatert. +change_username_prompt = Obs: Å endre brukernavnet ditt endrer også konto-URLen din. +change_username_redirect_prompt = Det gamle brukernavnet vil omdirigeres frem til noen andre tar det i bruk. +cancel = Avbryt +language = Språk +language.title = Standardspråk +language.description = Dette språket blir lagret på din konto og blir brukt som standard når du logger inn. +language.localization_project = Hjelp oss å oversette Forgejo til ditt språk! Mer info. +ui = Tema +hints = Tips +update_hints = Oppdater tips +update_hints_success = Tips har blitt oppdatert. +hidden_comment_types = Skjulte kommentartyper +comment_type_group_reference = Referanse +comment_type_group_label = Etikett +comment_type_group_milestone = Milepæl +comment_type_group_title = Tittel +comment_type_group_deadline = Tidsfrist +comment_type_group_dependency = Avhengighet +comment_type_group_lock = Låsstatus +comment_type_group_project = Prosjekt +saved_successfully = Dine innstillinger ble lagret. +keep_activity_private = Skjul aktivitet fra profilsiden +lookup_avatar_by_mail = Finn profilbilde fra e-postadresse +enable_custom_avatar = Bruk egendefinert profilbilde +choose_new_avatar = Velg nytt profilbilde +update_avatar = Oppdater profilbilde +delete_current_avatar = Slett aktivt profilbilde +uploaded_avatar_not_a_image = Filen som ble lastet opp er ikke et bilde. +uploaded_avatar_is_too_big = Filen som ble lastet opp (%d KiB) er større enn maksgrensen (%d KiB). +update_avatar_success = Ditt profilbilde har blitt oppdatert. +update_user_avatar_success = Brukerens profilbilde har blitt oppdatert. +change_password = Endre passord +update_password = Oppdater passord +old_password = Nåværende passord +new_password = Nytt passord +retype_new_password = Bekreft nytt passord +password_incorrect = Det nåværende passordet er feil. +change_password_success = Passordet ditt har blitt oppdatert. Fra nå av må du bruke det nye passordet når du logger inn. +password_change_disabled = Ikke-lokale brukere kan ikke oppdatere passordet sitt gjennom Forgejo-nettsiden. +manage_emails = Administrer e-postadresser +manage_themes = Standardtema +manage_openid = OpenID-adresser +email_desc = Din primære e-postadresse vil bli brukt til varslinger, gjenoppretting av passord og, gitt at den ikke er skjult, nettbaserte Git-operasjoner. +theme_desc = Dette temaet vil bli brukt for nettgrensesnittet når du er logget inn. +primary = Primær +activated = Aktivert +requires_activation = Krever aktivering +primary_email = Sett til primær +activate_email = Send aktivering +activations_pending = Venter på aktivering +can_not_add_email_activations_pending = Det er en ventende aktivering, prøv igjen om et par minutter om du vil legge til en ny e-postadresse. +delete_email = Fjern +email_deletion = Fjern e-postadresse +email_deletion_success = E-postadressen har blitt fjernet. +theme_update_success = Ditt tema ble oppdatert. +theme_update_error = Det valgte temaet finnes ikke. +openid_deletion = Fjern OpenID-adresse +openid_deletion_desc = Fjerning av denne OpenID-adressen fra kontoen din vil hindre deg å logge inn med den. Vil du fortsette? +openid_deletion_success = OpenID-adressen har blitt fjernet. +add_new_email = Legg til e-postadresse +add_new_openid = Legg til ny OpenID URI +add_email = Legg til e-postadresse +add_openid = Legg til OpenID URI +add_email_confirmation_sent = En bekreftelses-e-post har blitt sendt til "%s". For å bekrefte e-postadressen, sjekk innboksen din og følg den gitte linken innen %s. +add_email_success = Den nye e-postadressen har blitt lagt til. +email_preference_set_success = E-postinnstillinger har blitt oppdatert. +add_openid_success = Den nye OpenID-adressen har blitt lagt til. +keep_email_private = Skjul e-postadresse +keep_pronouns_private = Vis pronomen kun til påloggede brukere +keep_pronouns_private.description = Dette vil skjule pronomenene dine for besøkende som ikke er logget inn. +openid_desc = OpenID lar deg delegere autentisering til en ekstern leverandør. +manage_ssh_keys = Administrer SSH-nøkler +can_read_info = Les +can_write_info = Skriv +key_state_desc = Denne nøkkelen har blitt brukt innenfor de siste 7 dagene +show_openid = Vis på profil +hide_openid = Skjul fra profil +ssh_disabled = SSH er deaktivert +ssh_externally_managed = Denne SSH-nøkkelen administreres eksternt for brukeren [git.filemode] normal_file = Normal fil @@ -513,4 +648,125 @@ removed_security_key.text_1 = Sikkerhetsnøkkelen «%[1]s» ble akkurat fjernet account_security_caution.text_1 = Hvis dette var deg, så kan du trygt ignorere denne e-posten. account_security_caution.text_2 = Hvis dette ikke var deg, så kan noen ha fått uautorisert tilgang til kontoen din. Ta kontakt med administratorene for denne siden. totp_enrolled.subject = Du har aktivert TOTP som 2FA-metode -totp_enrolled.text_1.no_webauthn = Du har akkurat slått på TOTP for kontoen din. Dette betyr at for alle fremtidige innlogginger må du bruke TOTP som en 2FA-metode. \ No newline at end of file +totp_enrolled.text_1.no_webauthn = Du har akkurat slått på TOTP for kontoen din. Dette betyr at for alle fremtidige innlogginger må du bruke TOTP som en 2FA-metode. +removed_security_key.no_2fa = Det er ikke lenger satt opp noen 2FA-metoder, hvilket betyr at det ikke lenger er nødvendig å bruke 2FA for å logge inn på kontoen din. +totp_enrolled.text_1.has_webauthn = Du har akkurat slått på TOTP for kontoen din. Dette betyr at for alle fremtidige innlogginger må du bruke TOTP som en 2FA-metode, eller bruke en av dine sikkerhetsnøkler. +issue.x_mentioned_you = @%s nevnte deg: +issue.action.close = @%[1]s lukket #%[2]d. +issue.action.reopen = @%[1]s gjenåpnet #%[2]d. +issue.action.new = @%[1]s opprettet #%[2]d. +release.title = Tittel: %s +release.downloads = Nedlastinger: +release.download.zip = Kildekode (ZIP) +release.download.targz = Kildekode (TAR.GZ) +team_invite.subject = %[1]s har invitert deg til å bli med i organisasjonen %[2]s +team_invite.text_1 = %[1]s har invitert deg til å bli med i teamet %[2]s i organisasjonen %[3]s. +team_invite.text_2 = Klikk på den følgende linken for å bli med i teamet: +team_invite.text_3 = Obs: Denne invitasjonen var beregnet for %[1]s. Hvis du ikke forventet denne invitasjonen, kan du ignorere denne e-posten. + +[modal] +yes = Ja +no = Nei +confirm = Bekreft +cancel = Avbryt + +[form] +UserName = Brukernavn +FullName = Fullt navn +Description = Beskrivelse +Pronouns = Pronomen +Biography = Biografi +Website = Nettside +Location = Lokasjon +Email = E-postadresse +Password = Passord +Retype = Bekreft passord +TreeName = Filsti +Content = Innhold +require_error = ` kan ikke være tomt.` +alpha_dash_error = ` burde bare inneholde alfanumeriske tegn, bindestrek ("-") og understrek ("_").` +alpha_dash_dot_error = ` burde bare inneholde alfanumeriske tegn, bindestrek ("-"), understrek ("_") og punktum (".").` +git_ref_name_error = ` må være et gyldig Git referansenavn.` +size_error = ` må være størrelse %s.` +min_size_error = ` må inneholde minst %s tegn.` +max_size_error = ` må ikke inneholde mer enn %s tegn.` +email_error = ` er ikke en gyldig e-postadresse.` +url_error = `"%s" er ikke en gyldig URL.` +include_error = ` må inneholde delstrengen "%s".` +glob_pattern_error = ` globmønsteret er ugyldig: %s.` +regex_pattern_error = ` regex-mønsteret er ugyldig: %s.` +unknown_error = Ukjent feil: +captcha_incorrect = CAPTCHA-koden er feil. +password_not_match = Passordene er ikke like. +lang_select_error = Velg et språk fra listen. +username_been_taken = Brukernavnet er allerede tatt. +username_change_not_local_user = Ikke-lokale brukere har ikke lov til å endre brukernavnet sitt. +username_claiming_cooldown = Brukernavnet kan ikke tas i bruk fordi dets beskyttelsesperiode ikke er over enda. Det kan tas i bruk %[1]s. +org_name_been_taken = Organisasjonsnavnet er allerede tatt. +team_name_been_taken = Teamnavnet er allerede tatt. +email_been_used = E-postadressen er allerede i bruk. +email_invalid = E-postadressen er ugyldig. +email_domain_is_not_allowed = Domenet til brukerens e-postadresse %s er i konflikt med EMAIL_DOMAIN_ALLOWLIST eller EMAIL_DOMAIN_BLOCKLIST. Sørg for at du har oppgitt riktig e-postadresse. +openid_been_used = OpenID-adressen "%s" er allerede i bruk. +username_password_incorrect = Brukernavn eller passord er feil. +password_complexity = Passordet møter ikke kompleksitetskravene: +password_lowercase_one = Minst én liten bokstav +password_uppercase_one = Minst én stor bokstav +password_digit_one = Minst ett tall +password_special_one = Minst ett spesialtegn (tegnsetting, paranteser, anførselstegn osv.) +enterred_invalid_org_name = Organisasjonsnavnet du oppgav er ikke riktig. +enterred_invalid_owner_name = Navnet på ny eier er ikke gyldig. +enterred_invalid_password = Passordet du oppgav er feil. +unset_password = Brukeren har ikke satt et passord. +unsupported_login_type = Innloggingstypen er ikke støttet for å slette kontoen. +user_not_exist = Brukeren eksisterer ikke. +team_not_exist = Teamet finnes ikke. +last_org_owner = Du kan ikke fjerne den siste brukeren fra "owners"-teamet. Det må være minst én eier for en organisasjon. +cannot_add_org_to_team = En organisasjon kan ikke bli lagt til som et teammedlem. +duplicate_invite_to_team = Brukeren var allerede invitert som et teammedlem. +organization_leave_success = Du har forlatt organisasjonen %s. +invalid_ssh_key = Klarte ikke å verifisere SSH-nøkkelen din: %s +invalid_gpg_key = Klarte ikke å verifisere GPG-nøkkelen din: %s +must_use_public_key = Nøkkelen du har oppgitt er en privat nøkkel. Du må ikke laste opp din private nøkkel noen steder. Bruk din offentlige nøkkel i stedet. +unable_verify_ssh_key = SSH-nøkkelen kan ikke verifiseres, dobbeltsjekk at den er riktig. +auth_failed = Autentisering mislykkes: %v +still_has_org = Din konto er medlem av en eller flere organisasjoner, forlat disse først. +still_own_packages = Din konto eier en eller flere pakker, slett disse først. +org_still_own_packages = Denne organisasjonen eier fortsatt en eller flere pakker, slett disse først. +admin_cannot_delete_self = Du kan ikke slette deg selv når du er administrator. Fjern dine egne administratorrettigheter først. + +[user] +activity = Offentlig aktivitet +followers.title.one = Følger +followers.title.few = Følgere +following.title.one = Følger +following.title.few = Følger +followers_one = %d følger +followers_few = %d følgere +following_one = %d følgende +following_few = %d følgende +follow = Følg +unfollow = Slutt å følge +block_user = Blokker bruker +block_user.detail = Vær oppmerksom på at å blokkere en bruker har andre effekter, slik som: +block_user.detail_1 = Du vil stoppe å følge hverandre og vil ikke ha mulighet til å følge hverandre. +follow_blocked_user = Du kan ikke følge denne brukeren fordi du har blokkert brukeren eller denne har blokkert deg. +code = Kode +projects = Prosjekter +overview = Oversikt +block = Blokker +unblock = Fjern blokkering +user_bio = Biografi +email_visibility.limited = Din e-postadresse er synlig for alle påloggede brukere +show_on_map = Vis dette stedet på et kart +settings = Brukerinnstillinger +disabled_public_activity = Denne brukeren har deaktivert offentlig synlighet av aktiviteten. +public_activity.visibility_hint.self_public = Din aktivitet er synlig for alle, utenom interaksjoner i private områder. Konfigurer. +public_activity.visibility_hint.admin_public = Denne aktiviteten er synlig for alle, men som administrator kan du også se interaksjoner i private områder. +public_activity.visibility_hint.self_private = Denne aktiviteten er kun synlig for deg og instansadministratorer. Konfigurer. +public_activity.visibility_hint.admin_private = Denne aktiviteten er synlig for deg fordi du er en administrator, men brukeren ønsker at den forblir privat. +public_activity.visibility_hint.self_private_profile = Din aktivitet er kun synlig for deg og for instansadministratorer fordi profilen din er privat. Konfigurer. +form.name_reserved = Brukernavnet "%s" er reservert. +form.name_pattern_not_allowed = Mønsteret "%s" er ikke tillatt i et brukernavn. +form.name_chars_not_allowed = Brukernavnet "%s" inneholder ugyldige tegn. +change_avatar = Bytt profilbilde… \ No newline at end of file diff --git a/options/locale/locale_nds.ini b/options/locale/locale_nds.ini index 2476d7c16f..53580c3d47 100644 --- a/options/locale/locale_nds.ini +++ b/options/locale/locale_nds.ini @@ -1872,7 +1872,7 @@ settings.pulls.allow_rebase_update = Verlöven, Haalvörslag-Twieg dör Umbasere settings.pulls.default_delete_branch_after_merge = Haalvörslag-Twieg na de Tosamenföhren automatisk lösken settings.pulls.default_allow_edits_from_maintainers = Bewarkens vun Liddmaten normaal verlöven settings.releases_desc = Repositorium-Publizerens anknipsen -settings.packages_desc = Repositorium-Paketlist anknipsen +settings.packages_desc = Paket-Verknüppen anknipsen settings.projects_desc = Repositorium-Projekten anknipsen settings.admin_settings = Chef-Instellens settings.admin_code_indexer = Quelltext-Indizerer @@ -2715,69 +2715,14 @@ last_page = Leste config_settings = Instellens total = All tosamen: %d settings = Chef-Instellens -dashboard.statistic = Tosamenfaten -dashboard.operations = Plegens-Aktioonen -dashboard.new_version_hint = Forgejo %s is nu verföögbaar, du hest %s. Kiek de Blog för mehr Informatioonen an. -dashboard.delete_generated_repository_avatars = Maakte Repositoriums-Kontobillers lösken -dashboard.sync_repo_tags = Markens vun Git-Daten to de Datenbank spegeln -dashboard.update_mirrors = Spegels vernejen -dashboard.repo_health_check = Gesundheids-Överprüfen för all Repositoriums -dashboard.check_repo_stats = De Statistiken vun all Repositoriums överprüfen -dashboard.deleted_branches_cleanup = Lösket Twiegen uprümen -dashboard.git_gc_repos = Up all Repositoriums de Müll avhalen -dashboard.resync_all_sshprincipals = De ».ssh/authorized_principals«-Datei mit de SSH-Höövdmannen vun Forgejo vernejen. -dashboard.reinit_missing_repos = All fehlend Git-Repositoriums neei inrichten, för wat dat Uptekens gifft -dashboard.cleanup_packages = Avlopen Paketen uprümen -dashboard.cleanup_actions = Avlopen Utgaven un Objekten vun Aktioonen uprümen -dashboard.system_status = Systeem-Tostand -dashboard.operation_switch = Wesseln -dashboard.operation_run = Utföhren dashboard.clean_unbind_oauth_success = All unverbunnen OAuth-Verbinnens sünd wegdaan worden. -dashboard.task.process = Upgaav: %[1]s -dashboard.task.cancelled = Upgaav: %[1]s ofbroken: %[3]s -dashboard.task.error = Fehler in Upgaav: %[1]s: %[3]s -dashboard.task.unknown = Unbekannte Upgaav: %[1]s -dashboard.cron.started = Hett Tiedplaan begunnen: %[1]s -dashboard.cron.error = Fehler im Tiedplaan: %s: %[3]s -dashboard.delete_inactive_accounts.started = Upgaav, um all nich aktiveerten Konten to lösken, begunnen. dashboard.delete_repo_archives = All Repositoriums-Archiven (ZIP, TAR.GZ, usw. …) lösken -dashboard.delete_missing_repos.started = Upgaav, um all Repositoriums sünner Git-Dateien to lösken, begunnen. dashboard.delete_missing_repos = All Repositoriums sünner Git-Dateien lösken -dashboard.task.finished = Upgaav: %[1]s vun %[2]s begunnen is daan worden -dashboard.cron.finished = Tiedplaan: %[1]s is daan worden -dashboard.operation_name = Aktioons-Naam -dashboard.cron.process = Tiedplaan: %[1]s -dashboard.cron.cancelled = Tiedplaan: %[1]s ofbroken: %[3]s -dashboard.resync_all_sshkeys = De ».ssh/authorized_keys«-Datei mit de SSH-Slötels vun Forgejo vernejen. -dashboard.task.started = Hett Upgaav begunnen: %[1]s dashboard.delete_inactive_accounts = All nich aktiveerten Konten lösken -dashboard.delete_repo_archives.started = Upgaav, um all Repositoriums-Archiven to lösken, begunnen. -dashboard.archive_cleanup = Olle Repositoriums-Archiven lösken -dashboard.resync_all_hooks = De Git-Hakens in all Repositoriums weer vernejen (»pre-receive«, »update«, »post-receive«, »proc-receive«, …) dashboard.clean_unbind_oauth = Unverbunnen OAuth-Verbinnens uprümen -dashboard.sync_repo_branches = Fehlend Twiegen vun Git-Daten to de Datenbank spegeln -dashboard.update_migration_poster_id = Umtreck-Autor-IDs vernejen -dashboard.cleanup_hook_task_table = hook_task-Tabell uprümen -dashboard.sync_external_users = Frömde Brukerdaten vernejen dashboard.delete_old_actions = All olles Doon ut de Datenbank lösken -dashboard.update_checker = Vernejens-Sööker -dashboard.delete_old_system_notices = All ollen Systeemnarichten ut de Datenbank lösken -dashboard.gc_lfs = In LFS-Meta-Objekten de Müll avhalen -dashboard.stop_zombie_tasks = Spöök-Aktioonen-Upgaven anhollen -dashboard.stop_endless_tasks = Aktioonen-Upgaven sünner Enn anhollen -dashboard.cancel_abandoned_jobs = Verlaten Aktioonen-Upgaven ofbreken -dashboard.sync_branch.started = Twieg-Vernejen begunnen users.user_manage_panel = Brukerkonten verwalten users.new_account = Brukerkonto maken -users.name = Brukernaam -users.full_name = Kumpleter Naam -users.activated = Aktiveert -users.admin = Chef -users.restricted = Begrenzt -users.reserved = Vörbehollen -users.created = Maakt -users.last_login = Tolest anmellt -users.never_login = Nie anmellt users.send_register_notify = E-Mail-Naricht över dat Registreren schicken users.new_success = Dat Brukerkonto »%s« is maakt worden. users.edit = Bewarken @@ -2794,17 +2739,9 @@ users.is_admin = Chefkonto users.admin.description = Deesem Bruker kumpleten Togriep to all Chef-Aktioonen geven, wat mit de Internett-Schnittstee un de API gahn. users.is_restricted = Begrenztes Konto users.allow_git_hook = Kann Git-Hakens maken -users.bot = Bot -users.2fa = 2FA -dashboard.sync_tag.started = Mark-Vernejen begunnen -dashboard.rebuild_issue_indexer = Gefall-Indizerer neei bauen users.activated.description = Of dat E-Mail-Utwiesen ofsluten is. De Eegner vun eenem nich aktiveerten Konto kann sik nich anmellen, bit dat E-Mail-Utwiesen ofsluten is. users.max_repo_creation_desc = (Giff -1 in, um de Normaalweert vun de Instanz to bruken.) -dashboard.start_schedule_tasks = Aktioonen-Upgaven mit Tiedplaan begünnen -users.remote = Frömd users.max_repo_creation = Hoogste Tahl vun Repositoriums -dashboard.delete_old_actions.started = Hett begunnen, all olles Doon ut de Datenbank to lösken. -users.repos = Repos users.restricted.description = Verlööv blots, mit de Repositoriums un Vereenigungen to warken, waar deeser Bruker as Mitarbeider hentoföögt is. Dat verhinnert Togriep to publiken Repositoriums in deeser Instanz. users.allow_git_hook_tooltip = Git-Hakens worden as de BS-Bruker utföhrt, unner well Forgejo löppt, un hebben dat sülve Maat an Host-Togriep. Also könen Brukers mit de Git-Haak-Recht all Forgejo-Repositoriums ankieken un bewarken un ok de Datenbank, wat Forgejo bruukt. Also könen se ok Chef-Rechten för Forgejo kriegen. users.allow_import_local = Kann stedenwies Repositoriums importeren @@ -2837,32 +2774,13 @@ emails.delete_desc = Willst du deese E-Mail-Adress würrelk wegdoon? emails.deletion_success = De E-Mail-Adress is wegdaan worden. emails.delete_primary_email_error = Du kannst de Höövd-E-Mail nich wegdoon. orgs.org_manage_panel = Vereenigungen verwalten -orgs.name = Naam -orgs.teams = Klottjen -orgs.members = Liddmaten -orgs.new_orga = Neje Vereenigung repos.repo_manage_panel = Repositoriums verwalten repos.unadopted = Repositoriums sünner Eegner repos.unadopted.no_more = Keene Repositoriums sünner Eegner funnen. -repos.owner = Eegner -repos.name = Naam repos.private = Privaat -repos.issues = Gefallens -repos.size = Grött -repos.lfs_size = LFS-Grött packages.package_manage_panel = Paketen verwalten -packages.total_size = Grött all tosamen: %s -packages.unreferenced_size = Unbenöömt Grött: %s packages.cleanup = Avlopen Daten uprümen packages.cleanup.success = Avlopen Daten uprüümt -packages.owner = Eegner -packages.creator = Maker -packages.name = Naam -packages.version = Versioon -packages.type = Aard -packages.repository = Repositorium -packages.size = Grött -packages.published = Publizeert defaulthooks = Normaale Internett-Hakens defaulthooks.add_webhook = Normaalen Internett-Haak hentofögen defaulthooks.update_webhook = Normaalen Internett-Haak vernejen @@ -2988,30 +2906,11 @@ config.offline_mode = Stedenwies-Modus config.disable_router_log = Router-Utgaav utknipsen config.run_user = Bruker för ’t Utföhren config.run_mode = Utföhrens-Aard -config.git_version = Git-Versioon config.lfs_root_path = LFS-Ruut-Padd config.script_type = Schrievens-Aard -config.ssh_config = SSH-Inrichten -config.ssh_enabled = Anknipst -config.ssh_start_builtin_server = Inbaut Server bruken -config.ssh_domain = SSH-Server-Domään -config.ssh_port = Poort -config.ssh_listen_port = Tohören-Poort -config.ssh_root_path = Ruutpadd -config.ssh_key_test_path = Slöteltestpadd -config.ssh_minimum_key_size_check = Minnste Slötelgrött prüfen -config.ssh_minimum_key_sizes = Minnste Slötelgröten config.lfs_config = LFS-Inrichten config.lfs_enabled = Anknipst config.lfs_content_path = LFS-Inholls-Padd -config.db_config = Datenbank-Inrichten -config.db_type = Aard -config.db_host = Host -config.db_name = Naam -config.db_user = Brukernaam -config.db_schema = Schema -config.db_ssl_mode = SSL -config.db_path = Padd config.register_email_confirm = E-Mail-Utwiesen bi’m Registreren verlangen config.disable_register = Sülvst-Registreren utknipsen config.reverse_auth_user = Umdreiht-Proxy-Anmell-Bruker @@ -3034,17 +2933,6 @@ config.webhook_config = Internett-Haak-Inrichten config.queue_length = Slang-Längde config.deliver_timeout = Lever-Tied-Överweggahn config.skip_tls_verify = TLS-Utwiesen överspringen -config.mailer_config = E-Mailer-Inrichten -config.mailer_enabled = Anknipst -config.mailer_enable_helo = HELO anknipsen -config.mailer_name = Naam -config.mailer_smtp_addr = SMTP-Host -config.mailer_smtp_port = SMTP-Poort -config.mailer_user = Bruker -config.mailer_use_sendmail = Sendmail bruken -config.mailer_sendmail_path = Sendmail-Padd -config.mailer_sendmail_args = Wiedere Argumenten för Sendmail -config.mailer_sendmail_timeout = Sendmail-Tied-Överweggahn config.test_email_placeholder = E-Mail (to’n Bispööl test@example.com) config.send_test_mail = Test-E-Mail schicken config.send_test_mail_submit = Schicken @@ -3060,7 +2948,6 @@ config.cache_test = Tüskenspieker testen config.cache_test_failed = Kunn de Tüskenspieker nich nakieken: %v. config.cache_test_succeeded = Tüskenspieker-Test daankregen, hett eene Antwoord in %s kregen. config.session_config = Sitzungs-Inrichten -config.mailer_use_dummy = Muster config.cache_item_ttl = Tüskenspieker-Ding-TTL config.session_provider = Sitzungs-Anbeder config.provider_config = Anbeder-Inrichten @@ -3073,17 +2960,6 @@ config.picture_config = Bill- und Kontobill-Inrichten config.picture_service = Billdeenst config.disable_gravatar = Gravatar utknipsen config.enable_federated_avatar = Verdeelte Kontobillers anknipsen -config.git_config = Git-Inrichten -config.git_disable_diff_highlight = Syntax-Vörheven im Unnerscheed utknipsen -config.git_max_diff_lines = Hoogste Unnerscheeds-Riegen pro Datei -config.git_max_diff_line_characters = Hoogste Unnerscheeds-Bookstavens pro Rieg -config.git_max_diff_files = Hoogste Tahl vun Unnerscheeds-Dateien wiest -config.git_gc_args = GC-Argumenten -config.git_migrate_timeout = Umtreck-Tied-Överweggahn -config.git_mirror_timeout = Spegel-Vernejens-Tied-Överweggahn -config.git_clone_timeout = Klonen-Tied-Överweggahn -config.git_pull_timeout = Haal-Tied-Överweggahn -config.git_gc_timeout = GC-Tied-Överweggahn config.log_config = Utgaav-Inrichten config.logger_name_fmt = Utgever: %s config.disabled_logger = Utknipst @@ -3121,7 +2997,7 @@ notices.type_2 = Upgaav notices.desc = Beschrieven notices.op = Up. notices.view_detail_header = Naricht-Informatioonen -self_check.no_problem_found = Noch keen Probleem funnen. +self_check.no_problem_found = Noch keene Probleemen funnen. self_check.database_collation_mismatch = Verwacht, dat de Datenbank deese Kollatioon bruukt: %s self_check.database_collation_case_insensitive = Datenbank bruukt eene Kollatioon %s, wat eene unklünige Kollatioon is. Forgejo kann twaar daarmit warken, aver dat kann rare Fallen geven, waar dat nich so warkt as verwacht. self_check.database_fix_mysql = Brukers vun MySQL of MariaDB könen de Oorder »forgejo doctor convert« bruken, um de Kollatioons-Problemen oftohelpen, of du kannst dat Probleem ofhelpen, indeem du vun Hand de SQL-Oorders »ALTER … COLLATE …« bruukst. @@ -3133,7 +3009,6 @@ config.set_setting_failed = Instellen %s to setten fehlslagen monitor.execute_times = Utföhrens auths.tip.openid_connect = Bruuk de Utförsken-URL för OpenID-Verbinnen (/.well-known/openid-configuration), um de Ennpunkten antogeven auths.login_source_of_type_exist = Eenen Anmellens-Quell vun deeser Aard gifft dat al. -config.mailer_protocol = Protokoll auths.tip.facebook = Vermark een nejes Programm up %s un föög dat Produkt »Facebook-Anmellen« hento config.custom_conf = Inricht-Dateipadd config.app_data_path = Programmdatenpadd @@ -3145,7 +3020,6 @@ notices.delete_success = De Systeem-Narichtens sünd wegdaan worden. config.repo_root_path = Repositoriums-Ruut-Padd config.allow_only_internal_registration = Registreren blots dör Forgejo sülvst verlöven config.allow_only_external_registration = Registreren blots dör frömde Deensten verlöven -config.ssh_keygen_path = Slötelmakens-Padd (»ssh-keygen«) config.open_with_editor_app_help = De »Mit … opmaken«-Bewarkers im Kloon-Menü. Wenn du dat leeg lettst, word de Normaalweert bruukt. Verwieder, um de Normaalweert antokieken. auths.tip.yandex = Maak een nejes Programm up %s. Köör deese Verlöövnissen ut de Deel »Yandex.Passport API« ut: »Togriep up E-Mail-Adress«, »Togriep up Bruker-Kontobill« un »Togriep up Brukernaam, Vörnaam un Achternaam, Geschlecht« monitor.duration = Düür (s) diff --git a/options/locale/locale_nl-NL.ini b/options/locale/locale_nl-NL.ini index 50d5dfd7d8..377cef6350 100644 --- a/options/locale/locale_nl-NL.ini +++ b/options/locale/locale_nl-NL.ini @@ -80,7 +80,7 @@ preview=Voorbeeld loading=Laden… error=Fout -error404=De pagina die u probeert te bereiken bestaat niet, is verwijderd of u bent niet bevoegd om deze te bekijken. +error404=De pagina die u probeert te bereiken bestaat niet, is verwijderd of u bent niet bevoegd om deze te bekijken. never=Nooit @@ -770,7 +770,7 @@ add_key=Sleutel toevoegen ssh_desc=Deze publieke SSH sleutels worden geassocieerd met uw account. De bijbehorende private sleutels geven volledige toegang toe tot je repositories. SSH sleutels die geverifieerd zijn kunnen gebruikt worden om SSH-ondertekende Git commits te verifiëren. principal_desc=Deze SSH-certificaatverantwoordelijken zijn gekoppeld aan uw account en geven volledige toegang tot uw repositories. gpg_desc=Deze publieke GPG-sleutels zijn gekoppeld aan je account en worden gebruikt om je commits te verifiëren. Bewaar je privésleutels veilig, omdat ze het mogelijk maken om commits met jouw identiteit te ondertekenen. -ssh_helper=Weet u niet hoe? Lees dan onze handleiding voor het genereren van SSH sleutels of voor algemene SSH problemen. +ssh_helper=Weet u niet hoe? Lees dan onze handleiding voor het genereren van SSH-sleutels of voor het oplossen van veelvoorkomende problemen met SSH. gpg_helper=Hulp nodig? Neem een kijkje op de GitHub handleiding over GPG. key_content_ssh_placeholder=Begint met "ssh-ed25519", "ssh-rsa", "ecdsa-sha2-nistp256", "ecdsa-sha2-nistp384", "ecdsa-sha2-nistp521", "sk-ecdsa-sha2-nistp256@openssh.com", of "sk-ssh-ed25519@openssh.com" key_content_gpg_placeholder=Begint met "-----BEGIN PGP PUBLIC KEY BLOCK-----" @@ -974,7 +974,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 “Meer activeren” hint 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 onderdelen hebben ingeschakeld. pronouns = Persoonlijke voornaamwoord pronouns_unspecified = Ongedefinieerd language.title = Standaard taal @@ -1065,7 +1065,7 @@ mirror_address_desc=Voeg alle vereiste inloggegevens toe in de autorisatie secti mirror_lfs=Grote bestandsopslag (LFS) mirror_lfs_desc=Activeer spiegelen van LFS-gegevens. mirror_lfs_endpoint=LFS eindpunt -mirror_lfs_endpoint_desc=Synchronisatie zal proberen de kloon-url te gebruiken om de LFS-serverte bepalen. Je kan ook een aangepast eindpunt opgeven als de LFS-gegevens ergens anders zijn opgeslagen. +mirror_lfs_endpoint_desc=Synchronisatie zal proberen de kloon-url te gebruiken om de LFS-serverte bepalen. Je kan ook een aangepast eindpunt opgeven als de LFS-gegevens van de repository ergens anders zijn opgeslagen. mirror_last_synced=Laatst gesynchroniseerd mirror_password_placeholder=(Ongewijzigd) mirror_password_blank_placeholder=(Niet ingesteld) @@ -1147,7 +1147,7 @@ unwatch=Negeren watch=Volgen unstar=Ontster star=Ster -fork=Vork +fork=Afsplitsing download_archive=Download repository no_desc=Geen omschrijving @@ -1525,7 +1525,7 @@ issues.due_date_form_edit=Bewerk issues.due_date_form_remove=Verwijder issues.due_date_not_set=Geen vervaldatum ingesteld. issues.due_date_added=heeft %[2]s de deadline %[1]s toegevoegd -issues.due_date_modified=de vervaldatum van %[2]s is gewijzigd naar %[1]s[3]s +issues.due_date_modified=de vervaldatum van %[2]s is gewijzigd naar %[1]s%[3]s issues.due_date_remove=heeft %[2]s de deadline %[1]s verwijderd issues.due_date_overdue=Over tijd issues.due_date_invalid=De deadline is ongeldig of buiten bereik. Gebruik het formaat "jjjj-mm-dd'. @@ -1547,11 +1547,11 @@ issues.dependency.pr_close_blocked=Je moet alle issues die deze pull request blo issues.dependency.blocks_short=Blokkeert issues.dependency.blocked_by_short=Afhankelijk van issues.dependency.remove_header=Verwijder afhankelijkheid -issues.dependency.issue_remove_text=Hiermee wordt de afhankelijkheid van deze kwestie verwijderd. Doorgaan? +issues.dependency.issue_remove_text=Hiermee wordt de afhankelijkheid van dit probleem verwijderd. Doorgaan? issues.dependency.pr_remove_text=Hiermee wordt de afhankelijkheid van deze pull request verwijderd. Doorgaan? issues.dependency.setting=Schakel afhankelijkheden voor issues en pull requests in -issues.dependency.add_error_same_issue=Je kan een kwestie niet afhankelijk maken van zichzelf. -issues.dependency.add_error_dep_issue_not_exist=De afhankelijke kwestie bestaat niet. +issues.dependency.add_error_same_issue=Je kan een probleem niet afhankelijk maken van zichzelf. +issues.dependency.add_error_dep_issue_not_exist=Het afhankelijke probleem bestaat niet. issues.dependency.add_error_dep_not_exist=Afhankelijkheid bestaat niet. issues.dependency.add_error_dep_exists=Afhankelijkheid bestaat al. issues.dependency.add_error_cannot_create_circular=Je kan geen afhankelijkheid maken waarbij twee issues elkaar blokkeren. @@ -1848,7 +1848,7 @@ settings.use_internal_issue_tracker=Gebruik ingebouwde issue tracker settings.use_external_issue_tracker=Gebruik externe issue tracker settings.external_tracker_url=URL van externe issue-tracker settings.external_tracker_url_error=De URL van de externe wiki is geen geldige URL. -settings.external_tracker_url_desc=Bezoekers worden naar de externe kwestie-tracker doorverwezen als ze op het kwestie-tabblad klikken. +settings.external_tracker_url_desc=Bezoekers worden naar de externe probleemtracker doorverwezen als ze op het probleem-tabblad klikken. settings.tracker_url_format=URL-formaat externe issuetracker settings.tracker_url_format_error=Het URL-formaat van de externe wiki is geen geldige URL. settings.tracker_issue_style=Nummerformaat van de externe issue-tracker @@ -1856,7 +1856,7 @@ settings.tracker_issue_style.numeric=Nummeriek settings.tracker_issue_style.alphanumeric=Alfanummeriek settings.tracker_issue_style.regexp=Reguliere expressie settings.tracker_issue_style.regexp_pattern=Reguliere expressie patroon -settings.tracker_url_format_desc=Gebruik de aanduidingen {user}, {repo} en {index} voor de gebruikersnaam, repositorynaam en kwestie-index. +settings.tracker_url_format_desc=Gebruik de aanduidingen {user}, {repo} en {index} voor de gebruikersnaam, repositorynaam en probleem-index. settings.enable_timetracker=Tijdregistratie inschakelen settings.allow_only_contributors_to_track_time=Sta alleen bijdragers toe tijdregistratie te gebruiken settings.pulls_desc=Repository pull requests inschakelen @@ -2321,7 +2321,7 @@ issues.label_archive = Label archiveren issues.label_exclusive_warning = Eventuele conflicterende scoped labels worden verwijderd bij het bewerken van de labels van een issue of pull request. issues.unpin_comment = ontpind dit %s pulls.show_changes_since_your_last_review = Wijzigingen weergeven sinds je laatste beoordeling -mirror_address_url_invalid = De opgegeven URL is ongeldig. Zorg ervoor dat de onderdelen van de URL correct worden geëscape. +mirror_address_url_invalid = De opgegeven URL is ongeldig. Zorg ervoor dat de onderdelen van de URL correct worden geëscaped. desc.sha256 = SHA256 form.name_reserved = De repository naam "%s" is gereserveerd. form.name_pattern_not_allowed = Het patroon "%s" is niet toegestaan in een repository naam. @@ -2457,7 +2457,7 @@ pulls.reopen_failed.base_branch = De pull request kan niet worden heropend, omda pulls.reopen_failed.head_branch = De pull request kan niet worden heropend, omdat de head branch niet meer bestaat. pulls.auto_merge_newly_scheduled_comment = `deze pull request is gepland om automatisch samen te voegen als alle controles succesvol zijn %[1]s` settings.protect_status_check_matched = Overeengekomen -settings.archive.text = Het archiveren van de repo zal het volledig alleen-lezen maken. Het zal worden verborgen op het dashboard. Niemand (zelfs u niet!) kan nieuwe commits, issues of pull requests maken. +settings.archive.text = Het archiveren van de repo zal het volledig alleen-lezen maken. Het zal worden verborgen op het dashboard. Niemand (zelfs u niet!) kan nieuwe commits, issues of pull requests maken. Het is aangeraden om de reden van archivering te documenteren om toekomstige ontwikkelaars die de repository willen forken te helpen. settings.unarchive.button = Repo unarchiveren branch.deletion_success = Branch "%s" is verwijderd. branch.deletion_failed = Het verwijderen van de branch "%s" is mislukt. @@ -2574,7 +2574,7 @@ 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 = Eenheden +settings.units.units = Onderdelen 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 @@ -2872,55 +2872,12 @@ first_page=Eerste last_page=Laatste total=Totaal: %d -dashboard.statistic=Overzicht -dashboard.operations=Onderhoudswerkzaamheden -dashboard.system_status=Systeemstatus -dashboard.operation_name=Bewerking naam -dashboard.operation_switch=Omschakelen -dashboard.operation_run=Uitvoeren dashboard.clean_unbind_oauth=Niet-verbonden OAuth verbindingen opschonen dashboard.clean_unbind_oauth_success=Alle ongebonden OAuth verbindingen zijn verwijderd. -dashboard.task.started=Taak gestart: %[1]s -dashboard.task.process=Taak: %[1]s -dashboard.task.error=Fout in taak: %[1]s: %[3]s -dashboard.task.finished=Taak: %[1]s gestart door %[2]s is voltooid -dashboard.task.unknown=Onbekende taak: %[1]s -dashboard.cron.started=Gestarte cron: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.error=Fout in cron: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s is klaar dashboard.delete_inactive_accounts=Verwijder alle niet geactiveerde accounts -dashboard.delete_inactive_accounts.started=Verwijder alle niet geactiveerde accounts taak gestart. -dashboard.delete_repo_archives.started=Verwijder alle repositoryarchieven taak gestart. dashboard.delete_missing_repos=Verwijder alle repositories waarvan hun Git bestanden missen -dashboard.delete_missing_repos.started=Verwijder alle repositories die hun Git bestanden missen taak gestart. -dashboard.delete_generated_repository_avatars=Verwijder gegenereerde repository avatars -dashboard.update_mirrors=Mirrors bijwerken -dashboard.repo_health_check=Controleer alle repositories -dashboard.check_repo_stats=Bekijk alle repository statistieken -dashboard.archive_cleanup=Verwijder oude repositories archieven -dashboard.deleted_branches_cleanup=Verwijderde branches opschonen -dashboard.update_migration_poster_id=Werk migratie-poster IDs bij -dashboard.git_gc_repos=Voer garbage collectie uit voor alle repositories -dashboard.resync_all_sshkeys=Werk de ".ssh/authorized_keys" bestand bij met Forgejo SSH sleutels. -dashboard.resync_all_sshprincipals=Update het ".ssh/authorized_principals" bestand met Forgejo SSH verantwoordelijken. -dashboard.resync_all_hooks=Git hooks van alle repositories opnieuw synchroniseren (pre-receive, update en, post-receive hooks van alle repositories, proc-receive, ...) -dashboard.reinit_missing_repos=Herinitialiseer alle ontbrekende Git repositories waarvoor records bestaan -dashboard.sync_external_users=Externe gebruikersgegevens synchroniseren -dashboard.delete_old_system_notices=Verwijder alle oude systeemmededelingen uit de database - users.user_manage_panel=Gebruikersaccounts beheren users.new_account=Gebruikersaccount aanmaken -users.name=Gebruikersnaam -users.full_name=Volledige naam -users.activated=Geactiveerd -users.admin=Beheerder -users.restricted=Beperkt -users.2fa=2FA -users.repos=Repos -users.created=Aangemaakt -users.last_login=Laatste keer ingelogd -users.never_login=Nooit ingelogd users.send_register_notify=Via e-mail informeren over registratie users.edit=Bewerken users.auth_source=Authenticatiebron @@ -2957,29 +2914,12 @@ emails.duplicate_active=Dit e-mailadres is al actief voor een andere gebruiker. emails.change_email_header=Update e-mail eigenschappen orgs.org_manage_panel=Organisaties beheren -orgs.name=Naam -orgs.teams=Teams -orgs.members=Leden -orgs.new_orga=Nieuwe organisatie - repos.repo_manage_panel=Repositories beheren repos.unadopted=Niet-geadopteerde repositories repos.unadopted.no_more=Geen niet-geadopteerde repositories gevonden. -repos.owner=Eigenaar -repos.name=Naam repos.private=Prive -repos.issues=Issues -repos.size=Grootte - -packages.owner=Eigenaar -packages.name=Naam -packages.type=Type -packages.repository=Opslagplaats -packages.size=Grootte - - systemhooks=Systeem webhooks -systemhooks.add_webhook=Systeem Webhook toevoegen +systemhooks.add_webhook=Systeem-webhook toevoegen systemhooks.update_webhook=Systeem-webhook bijwerken auths.new=Authenticatiebron toevoegen @@ -2996,17 +2936,17 @@ auths.host=Host auths.port=Poort auths.bind_dn=Binden DN auths.bind_password=Bind wachtwoord -auths.user_base=Gebruikers zoek base -auths.user_dn=User DN -auths.attribute_username=Gebruikersnaam attribuut +auths.user_base=Zoekbasis voor gebruikers +auths.user_dn=Gebruikers-DN +auths.attribute_username=Gebruikersnaam-attribuut auths.attribute_username_placeholder=Laat leeg om de gebruikersnaam in Forgejo te gebruiken. -auths.attribute_name=Voornaam attribuut -auths.attribute_surname=Achternaam attribuut -auths.attribute_mail=E-mail attribuut -auths.attribute_ssh_public_key=Publieke SSH sleutel attribuut -auths.attributes_in_bind=Verkrijg attributes van de bind DN context -auths.allow_deactivate_all=Laat een leeg zoekresultaat toe om alle gebruikers te deactiveren -auths.use_paged_search=Gebruik paged zoeken +auths.attribute_name=Voornaam-attribuut +auths.attribute_surname=Achternaam-attribuut +auths.attribute_mail=E-mail-attribuut +auths.attribute_ssh_public_key=Publieke SSH-sleutelattribuut +auths.attributes_in_bind=Verkrijg attributen van de bind-DN-context +auths.allow_deactivate_all=Sta een leeg zoekresultaat toe om alle gebruikers te deactiveren +auths.use_paged_search=Gebruik gepagineerd zoeken auths.search_page_size=Paginagrootte auths.filter=Gebruikersfilter auths.admin_filter=Beheerdersfilter @@ -3021,8 +2961,8 @@ auths.smtpport=SMTP-poort auths.allowed_domains=Toegelaten domeinen auths.allowed_domains_helper=Laat leeg om alle domeinen toe te staan. Meerdere domeinen scheiden met een komma (","). auths.skip_tls_verify=TLS-verificatie overslaan -auths.pam_service_name=PAM servicenaam -auths.oauth2_provider=OAuth2 provider +auths.pam_service_name=PAM-servicenaam +auths.oauth2_provider=OAuth2-aanbieder auths.oauth2_clientID=Client-ID (sleutel) auths.oauth2_clientSecret=Client-secret auths.openIdConnectAutoDiscoveryURL=OpenID Connect Automatische Ontdekking URL @@ -3060,38 +3000,17 @@ config.offline_mode=Lokale modus config.disable_router_log=Router-log uitschakelen config.run_user=Gebruiker om als uit te voeren config.run_mode=Uitvoer modus -config.git_version=Git versie config.repo_root_path=Repository basis pad config.lfs_root_path=LFS rootpad config.log_file_root_path=Log-pad config.script_type=Script soort config.reverse_auth_user=Reverse proxy verificatie gebruiker -config.ssh_config=SSH-configuratie -config.ssh_enabled=Ingeschakeld -config.ssh_start_builtin_server=Gebruik de ingebouwde server -config.ssh_port=Poort -config.ssh_listen_port=Luisterpoort -config.ssh_root_path=Root-pad -config.ssh_key_test_path=Pad voor key-tests -config.ssh_keygen_path=Pad van keygen ("ssh-keygen") -config.ssh_minimum_key_size_check=Controleer minimale key-lengte -config.ssh_minimum_key_sizes=Minimale key-lengtes - config.lfs_config=LFS configuratie config.lfs_enabled=Ingeschakeld config.lfs_content_path=LFS inhoudspad config.lfs_http_auth_expiry=LFS HTTP auth vervaltijd -config.db_config=Databaseconfiguratie -config.db_type=Type -config.db_host=Host -config.db_name=Naam -config.db_user=Gebruikersnaam -config.db_schema=Schema -config.db_ssl_mode=SSL -config.db_path=Pad - config.service_config=Serviceconfiguratie config.register_email_confirm=E-mailbevestiging vereist bij registreren config.disable_register=Schakel zelf registratie uit @@ -3119,15 +3038,6 @@ config.queue_length=Lengte van wachtrij config.deliver_timeout=Bezorging verlooptijd config.skip_tls_verify=TLS-verificatie overslaan -config.mailer_enabled=Ingeschakeld -config.mailer_name=Naam -config.mailer_smtp_port=SMTP poort -config.mailer_user=Gebruiker -config.mailer_use_sendmail=Gebruik Sendmail -config.mailer_sendmail_path=Sendmail pad -config.mailer_sendmail_args=Extra argumenten voor Sendmail -config.mailer_sendmail_timeout=Sendmail time-out -config.mailer_use_dummy=Dummy config.test_email_placeholder=E-mailadres (bijv. test@example.com) config.send_test_mail=Test e-mail verzenden @@ -3154,17 +3064,6 @@ config.picture_service=Foto service config.disable_gravatar=Gravatar uitschakelen config.enable_federated_avatar=Federated avatars toestaan -config.git_config=Git configuratie -config.git_disable_diff_highlight=Diff syntax highlighting uitschakelen -config.git_max_diff_lines=Max diff regels per bestand -config.git_max_diff_files=Max. getoonde diff-bestanden -config.git_gc_args=GC-argumenten -config.git_migrate_timeout=Migratie time-out -config.git_mirror_timeout=Time-out mirror update -config.git_clone_timeout=Kloon operatie timeout -config.git_pull_timeout=Pull operatie timeout -config.git_gc_timeout=GC operatie timeout - config.log_config=Logconfiguratie config.disabled_logger=Uitgeschakeld config.access_log_mode=Toegangslog-modus @@ -3201,7 +3100,7 @@ notices.desc=Beschrijving notices.op=Op. notices.delete_success=De systeemmeldingen zijn verwijderd. notices.operations = Operaties -self_check.no_problem_found = Nog geen probleem gevonden. +self_check.no_problem_found = Nog geen problemen gevonden. self_check.database_collation_mismatch = Verwacht dat de database collatie gebruikt: %s users.new_success = De gebruikersaccount "%s" is aangemaakt. users.cannot_delete_self = Je kunt jezelf niet verwijderen @@ -3210,14 +3109,8 @@ users.still_own_packages = Deze gebruiker bezit nog steeds één of meerdere pak users.reset_2fa = 2FA opnieuw instellen users.details = Gebruikersgegevens emails.change_email_text = Weet je zeker dat je dit e-mailadres wilt bijwerken? -repos.lfs_size = LFS grootte packages.package_manage_panel = Pakketten beheren -packages.total_size = Totale grootte: %s -packages.unreferenced_size = Grootte waarnaar niet wordt verwezen: %s packages.cleanup.success = Verlopen gegevens succesvol opgeschoond -packages.creator = Maker -packages.version = Versie -packages.published = Gepubliceerd defaulthooks = Standaard webhooks defaulthooks.update_webhook = Standaard webhook bijwerken auths.auth_manage_panel = Authenticatiebronnen beheren @@ -3226,33 +3119,17 @@ auths.oauth2_group_claim_name = Claimnaam die groepsnamen geeft voor deze bron. auths.oauth2_admin_group = Groepsclaimwaarde voor beheerdersgebruikers. (Optioneel - vereist bovenstaande claimnaam) auths.oauth2_map_group_to_team = Breng geclaimde groepen in kaart voor organisatieteams. (Optioneel - vereist bovenstaande claimnaam) users.purge_help = Verwijder de gebruiker en alle repositories, organisaties en pakketten die eigendom zijn van de gebruiker. Alle reacties en issues geplaatst door deze gebruiker zullen ook worden verwijderd. -users.bot = Bot auths.oauth2_required_claim_name_helper = Stel deze naam in om het aanmelden vanuit deze bron te beperken tot gebruikers met een claim met deze naam auths.oauth2_restricted_group = Groepsclaimwaarde voor beperkte gebruikers. (Optioneel - vereist bovenstaande claimnaam) packages.cleanup = Verlopen gegevens opschonen defaulthooks.add_webhook = Standaard webhook toevoegen auths.oauth2_required_claim_value_helper = Stel deze waarde in om het aanmelden vanuit deze bron te beperken tot gebruikers met een claim met deze naam en waarde -users.remote = Externe -users.reserved = Gereserveerd 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 webhooks guide. 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 webhooks guide. hooks = Webhooks integrations = Integraties -dashboard.new_version_hint = Forgejo %s is nu beschikbaar, u gebruikt versie %s. Zie de blog voor meer details. -dashboard.sync_repo_tags = Tags synchroniseren van git data naar database -dashboard.cleanup_hook_task_table = Tabel hook_task opschonen -dashboard.cleanup_packages = Verlopen pakketten opschonen -dashboard.cleanup_actions = Verlopen logs en artefacten van actions opschonen -dashboard.delete_old_actions.started = Het verwijderen van alle oude activiteiten uit de database is gestart. -dashboard.update_checker = Update checker -dashboard.stop_zombie_tasks = Zombietaken stoppen -dashboard.stop_endless_tasks = Eindeloze taken stoppen -dashboard.start_schedule_tasks = Start geplande taken -dashboard.sync_branch.started = Branch synchronisatie is gestart -dashboard.sync_tag.started = Tag synchronisatie is gestart -auths.attribute_avatar = Avatar attribuut +auths.attribute_avatar = Avatar-attribuut auths.enable_ldap_groups = LDAP-groepen inschakelen auths.ms_ad_sa = MS AD zoekattributen dashboard.delete_old_actions = Verwijder alle oude activiteiten uit de database @@ -3260,14 +3137,10 @@ identity_access = Identiteit & toegang assets = Code assets auths.helo_hostname_helper = Hostnaam verzonden met HELO. Laat leeg om huidige hostnaam te versturen. self_check = Zelfcontrole -dashboard.cron.cancelled = Cron: %[1]s geannuleerd: %[3]s dashboard.delete_repo_archives = Verwijder alle archieven van repository (ZIP, TAR.GZ, enz.) -dashboard.cancel_abandoned_jobs = Verlaten jobs annuleren auths.helo_hostname = HELO hostnaam settings = Beheerdersinstellingen -dashboard.task.cancelled = Taak: %[1]s geannuleerd: %[3]s auths.force_smtps = SMTPS Forceren -dashboard.sync_repo_branches = Synchroniseren gemiste branches van git data naar database monitor.processes_count = %d Processen monitor.process.children = Kinderen self_check.database_inconsistent_collation_columns = Database gebruikt collatie %s, maar deze kolommen gebruiken onjuiste collaties. Dit kan onverwachte problemen veroorzaken. @@ -3275,26 +3148,23 @@ monitor.stacktrace = Stacktrace monitor.download_diagnosis_report = Diagnoserapport downloaden self_check.database_collation_case_insensitive = Database gebruikt collatie %s, wat een ongevoelige collatie is. Hoewel Forgejo ermee kan werken, kunnen er enkele zeldzame gevallen zijn die niet werken zoals verwacht. self_check.database_fix_mysql = Voor MySQL/MariaDB gebruikers zou je het "forgejo doctor convert" commando kunnen gebruiken om de collatieproblemen op te lossen, of je zou het probleem ook kunnen oplossen door "ALTER ... COLLATE ..." SQL's handmatig op te lossen. -dashboard.gc_lfs = LFS meta-objecten afval opruimen auths.map_group_to_team = Breng LDAP-groepen in kaart voor organisatieteams (laat het veld leeg om over te slaan) auths.oauth2_required_claim_name = Verplichte claimnaam auths.oauth2_scopes = Aanvullende scopes auths.skip_local_two_fa_helper = Niet ingesteld betekent dat lokale gebruikers met 2FA nog steeds 2FA moeten passeren om in te loggen auths.skip_local_two_fa = Lokale 2FA overslaan -auths.oauth2_icon_url = Pictogram URL -auths.pam_email_domain = PAM e-maildomein (optioneel) +auths.oauth2_icon_url = URL naar Pictogram +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 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. auths.login_source_exist = De authenticatiebron "%s" bestaat al. config.test_mail_sent = Er is een testmail verzonden naar "%s". config.test_mail_failed = Er is geen testmail verzonden naar "%s": %v config.access_log_template = Sjabloon voor toegangslogboek config.logger_name_fmt = Logger: %s -config.git_max_diff_line_characters = Max diff tekens per regel auths.map_group_to_team_removal = Gebruikers verwijderen uit gesynchroniseerde teams als gebruiker niet tot overeenkomstige LDAP-groep behoort config.send_test_mail_submit = Stuur auths.unable_to_initialize_openid = OpenID Connect Provider kan niet worden geïnitialiseerd: %s @@ -3311,11 +3181,7 @@ config.set_setting_failed = Instelling %s mislukt om te zetten auths.oauth2_tenant = Tenant config.domain = Serverdomein config.app_data_path = Pad voor app-gegevens -config.mailer_smtp_addr = SMTP-adres -config.mailer_protocol = Protocol -config.mailer_enable_helo = HELO inschakelen auths.oauth2_map_group_to_team_removal = Verwijder gebruikers uit gesynchroniseerde teams als de gebruiker niet tot de overeenkomstige groep behoort. -config.mailer_config = Mailer configuratie config_settings = Instellingen auths.tips.gmail_settings = Gmail instellingen: config_summary = Samenvatting diff --git a/options/locale/locale_pl-PL.ini b/options/locale/locale_pl-PL.ini index 7354373710..e46cb7e074 100644 --- a/options/locale/locale_pl-PL.ini +++ b/options/locale/locale_pl-PL.ini @@ -426,7 +426,7 @@ password_pwned = Wybrane hasło znajduje się na tutaj⁣, aby rozpocząć nową sesję. +invalid_code_forgot_password = Twój kod potwierdzający jest niepoprawny lub wygasł. Naciśnij tutaj⁣⁣, aby rozpocząć nową sesję. invalid_password = Twoje hasło nie zgadza się z hasłem, które zostało użyte do stworzenia konta. reset_password_wrong_user = Jesteś zalogowany(-a) jako %s, ale link odzyskujący jest dla %s oauth.signin.error.access_denied = Wniosek o autoryzację został odrzucony. @@ -2876,57 +2876,14 @@ first_page=Pierwsza last_page=Ostatnia total=Ogółem: %d -dashboard.statistic=Podsumowanie -dashboard.operations=Operacje konserwacji -dashboard.system_status=Status strony -dashboard.operation_name=Nazwa operacji -dashboard.operation_switch=Przełącz -dashboard.operation_run=Uruchom dashboard.clean_unbind_oauth=Usuń wychodzące połączenia OAuth dashboard.clean_unbind_oauth_success=Wszystkie połączenia wychodzące OAuth zostały usunięte. -dashboard.task.started=Rozpoczęto zadanie: %[1]s -dashboard.task.process=Zadanie: %[1]s -dashboard.task.error=Błąd w zadaniu: %[1]s: %[3]s -dashboard.task.finished=Zadanie: %[1]s rozpoczęte przez %[2]s zostało ukończone -dashboard.task.unknown=Nieznane zadanie: %[1]s -dashboard.cron.started=Uruchomiono Crona: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.error=Błąd w Cronie: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s zakończony dashboard.delete_inactive_accounts=Usuń wszystkie nieaktywowane konta -dashboard.delete_inactive_accounts.started=Zadanie usuwania nieaktywowanych kont zostało rozpoczęte. dashboard.delete_repo_archives=Usuń wszystkie archiwa repozytoriów (ZIP, TAR.GZ, itp..) -dashboard.delete_repo_archives.started=Zadanie usuwania archiwów repozytoriów zostało rozpoczęte. dashboard.delete_missing_repos=Usuń wszystkie repozytoria, które nie mają plików Gita -dashboard.delete_missing_repos.started=Zadanie usuwania repozytoriów, które nie mają plików Gita, zostało rozpoczęte. -dashboard.delete_generated_repository_avatars=Usuń wygenerowane awatary repozytoriów -dashboard.update_mirrors=Aktualizuj kopie lustrzane -dashboard.repo_health_check=Sprawdź stan wszystkich repozytoriów -dashboard.check_repo_stats=Sprawdź statystyki wszystkich repozytoriów -dashboard.archive_cleanup=Usuń stare archiwa repozytoriów -dashboard.deleted_branches_cleanup=Wyczyść usunięte galęzie -dashboard.git_gc_repos=Wykonaj zbieranie śmieci ze wszystkich repozytoriów -dashboard.resync_all_sshkeys=Zaktualizuj plik '.ssh/authorized_keys' z kluczami SSH Forgejo. -dashboard.resync_all_sshprincipals=Zaktualizuj plik ".ssh/authorized_principals" z podmiotami SSH Forgejo. -dashboard.resync_all_hooks=Ponownie synchronizuj hooki Git we wszystkich repozytoriach (pre-receive, update, post-receive, proc-receive, …) -dashboard.reinit_missing_repos=Ponownie zainicjalizuj wszystkie brakujące repozytoria Git, dla których istnieją rekordy -dashboard.sync_external_users=Synchronizuj zewnętrzne dane użytkownika -dashboard.cleanup_hook_task_table=Wyczyść tabelę hook_task dashboard.delete_old_actions=Usuń wszystkie stare akcje z bazy danych -dashboard.delete_old_actions.started=Usuwanie wszystkich starych akcji z bazy danych rozpoczęte. - users.user_manage_panel=Zarządzanie kontami użytkowników users.new_account=Utwórz konto użytkownika -users.name=Nazwa użytkownika -users.full_name=Imię i nazwisko -users.activated=Aktywny -users.admin=Administrator -users.restricted=Ograniczone -users.2fa=2FA -users.repos=Repozytoria -users.created=Utworzony -users.last_login=Ostatnie logowanie -users.never_login=Nigdy nie zalogował(a) się users.send_register_notify=Wyślij użytkownikowi powiadomienie o rejestracji users.edit=Edytuj users.auth_source=Źródło uwierzytelniania @@ -2964,33 +2921,17 @@ emails.duplicate_active=Ten e-mail jest już aktywny dla innego użytkownika. emails.change_email_header=Aktualizuj właściwości adresu e-mail orgs.org_manage_panel=Zarządzanie organizacjami -orgs.name=Nazwa -orgs.teams=Zespoły -orgs.members=Członkowie -orgs.new_orga=Nowa organizacja - repos.repo_manage_panel=Zarządzanie repozytoriami repos.unadopted=Nieprzyjęte repozytoria repos.unadopted.no_more=Nie znaleziono więcej nieadoptowanych repozytoriów. -repos.owner=Właściciel -repos.name=Nazwa repos.private=Prywatne -repos.issues=Zgłoszenia -repos.size=Rozmiar - -packages.owner=Właściciel -packages.name=Nazwa -packages.type=Typ -packages.repository=Repozytorium -packages.size=Rozmiar - defaulthooks=Domyślne webhooki -defaulthooks.add_webhook=Dodaj domyślny Webhook -defaulthooks.update_webhook=Zaktualizuj domyślny Webhook +defaulthooks.add_webhook=Dodaj domyślny webhook +defaulthooks.update_webhook=Zaktualizuj domyślny webhook systemhooks=Webhooki systemowe -systemhooks.add_webhook=Dodaj Webhook Systemowy -systemhooks.update_webhook=Aktualizuj Webhook Systemowy +systemhooks.add_webhook=Dodaj webhook systemowy +systemhooks.update_webhook=Aktualizuj webhook systemowy auths.auth_manage_panel=Zarządzanie źródłami uwierzytelniania auths.new=Dodaj źródło uwierzytelniania @@ -3079,38 +3020,17 @@ config.offline_mode=Tryb lokalny config.disable_router_log=Wyłącz dziennik routera config.run_user=Uruchom jako nazwa użytkownika config.run_mode=Tryb uruchamienia -config.git_version=Wersja Git config.repo_root_path=Ścieżka główna repozytoriów config.lfs_root_path=Ścieżka główna katalogu LFS config.log_file_root_path=Ścieżka dla logów config.script_type=Typ skryptu config.reverse_auth_user=Użytkownik odwrotnego proxy -config.ssh_config=Konfiguracja SSH -config.ssh_enabled=Włączone -config.ssh_start_builtin_server=Wykorzystaj wbudowany serwer -config.ssh_port=Port -config.ssh_listen_port=Port nasłuchiwania -config.ssh_root_path=Ścieżka do katalogu głównego -config.ssh_key_test_path=Ścieżka do klucza testowego -config.ssh_keygen_path=Ścieżka do generatora ('ssh-keygen') -config.ssh_minimum_key_size_check=Sprawdzanie minimalnej długości klucza -config.ssh_minimum_key_sizes=Minimalne rozmiary kluczy - config.lfs_config=Konfiguracja LFS config.lfs_enabled=Włączone config.lfs_content_path=Ścieżka zawartości LFS config.lfs_http_auth_expiry=Wygasanie uwierzytelnienia LFS HTTP -config.db_config=Konfiguracja bazy danych -config.db_type=Typ -config.db_host=Serwer -config.db_name=Nazwa -config.db_user=Nazwa użytkownika -config.db_schema=Schemat -config.db_ssl_mode=SSL -config.db_path=Ścieżka - config.service_config=Konfiguracja usługi config.register_email_confirm=Wymagaj potwierdzenia adresu e-mail przy rejestracji config.disable_register=Wyłącz samodzielną rejestrację @@ -3138,14 +3058,6 @@ config.queue_length=Długość kolejki config.deliver_timeout=Limit czasu doręczenia config.skip_tls_verify=Pomiń weryfikację TLS -config.mailer_enabled=Włączona -config.mailer_name=Nazwa -config.mailer_smtp_port=Port SMTP -config.mailer_user=Użytkownik -config.mailer_use_sendmail=Używaj Sendmail -config.mailer_sendmail_path=Ścieżka Sendmail -config.mailer_sendmail_args=Dodatkowe argumenty Sendmail -config.mailer_sendmail_timeout=Limit czasu Sendmail config.test_email_placeholder=Email (np. test@example.com) config.send_test_mail=Wyślij testową wiadomość e-mail @@ -3172,18 +3084,6 @@ config.picture_service=Usługa obrazów config.disable_gravatar=Wyłącz Gravatar config.enable_federated_avatar=Włącz federowane awatary -config.git_config=Konfiguracja Git -config.git_disable_diff_highlight=Wyłącz wyróżnianie składni diff -config.git_max_diff_lines=Maksymalna liczba linii diff na plik -config.git_max_diff_line_characters=Maksymalna liczba znaków diff na linię -config.git_max_diff_files=Maksymalna liczba plików diff -config.git_gc_args=Argumenty GC -config.git_migrate_timeout=Limit czasu migracji -config.git_mirror_timeout=Limit czasu aktualizacji kopii lustrzanej -config.git_clone_timeout=Limit czasu operacji klonowania -config.git_pull_timeout=Limit czasu dla operacji pull -config.git_gc_timeout=Limit czasu operacji GC - config.log_config=Konfiguracja dziennika config.disabled_logger=Wyłączone config.access_log_mode=Tryb dziennika dostępu @@ -3221,41 +3121,20 @@ notices.delete_success=Powiadomienia systemu zostały usunięte. monitor.last_execution_result = Wynik monitor.process.children = Dzieci integrations = Integracje -users.bot = Bot -packages.version = Wersja -packages.creator = Twórca notices.operations = Operacje config.send_test_mail_submit = Wyślij -packages.published = Opublikowane -config.mailer_protocol = Protokół monitor.stats = Statystyki -users.remote = Zdalnie config_summary = Podsumowanie config_settings = Ustawienia assets = Zasoby kodu -dashboard.cleanup_packages = Wyczyść przedawnione pakiety -dashboard.delete_old_system_notices = Usuń wszystkie stare powiadomienia systemowe z bazy danych users.details = Szczegóły użytkownika emails.deletion_success = Adres e-mail został usunięty. emails.delete_primary_email_error = Nie możesz usunąć głównego adresu e-mail. users.purge_help = Wymusza usunięcie użytkownika razem z jakimikolwiek repozytoriami, organizacjami, oraz pakietami których ten użytkownik jest właścicielem. Wszystkie komentarze i zgłoszenia przez tego użytkownika również zostaną usunięte. -dashboard.sync_branch.started = Synchronizacja gałęzi rozpoczęta -dashboard.cancel_abandoned_jobs = Anuluj porzucone prace akcji -users.reserved = Zarezerwowane -dashboard.task.cancelled = Zadanie: %[1]s anulowane: %[3]s -dashboard.sync_repo_branches = Synchronizuj pominięte gałęzie z danych Git do bazy danych -dashboard.sync_repo_tags = Synchronizuj tagi z danych Git do bazy danych settings = Ustawienia administratora -dashboard.stop_zombie_tasks = Zatrzymaj zadania zombi akcji users.cannot_delete_self = Nie możesz usunąć sam(a) siebie packages.cleanup.success = Pomyślnie wyczyszczono przedawnione dane -dashboard.sync_tag.started = Synchronizacja tagu rozpoczęta -dashboard.gc_lfs = Wywołaj GC na metaobiektach LFS -dashboard.stop_endless_tasks = Zatrzymaj niekończące się zadania akcji -repos.lfs_size = Wielkość LFS packages.package_manage_panel = Zarządzaj pakietami -dashboard.cleanup_actions = Wyczyść przedawnione logi i artefakty z akcji -dashboard.rebuild_issue_indexer = Przebuduj indekser zgłoszeń users.new_success = Konto użytkownika "%s" zostało utworzone. users.purge = Pozbądź się użytkownika users.activated.description = Zakończenie weryfikacji e-mail. Właściciel nieaktywowanego konta nie będzie mógł się zalogować dopóki weryfikacja e-mail nie została zakończona. @@ -3268,21 +3147,15 @@ users.still_own_packages = Ten użytkownik nadal jest właścicielem jednego lub emails.change_email_text = Czy jesteś pewien(-na), że chcesz zaktualizować ten adres e-mail? emails.delete = Usuń adres e-mail emails.delete_desc = Czy jesteś pewien(-na), że chcesz usunąć ten adres e-mail? -packages.total_size = Wielkość całkowita: %s -packages.unreferenced_size = Nieodniesiona wielkość: %s packages.cleanup = Wyczyść przedawnione dane defaulthooks.desc = Webhooki automatycznie wykonują żądania HTTP POST do serwera kiedy pewne wydarzenia Forgejo zostają wywołane. Webhooki zdefiniowane tutaj są domyślne i będą kopiowane do wszystkich nowych repozytoriów. Przeczytaj więcej w przewodniku webhooków. -dashboard.new_version_hint = Forgejo %s jest już dostępne, w tej chwili korzystasz z %s. Sprawdź szczegóły na blogu. identity_access = Tożsamość i dostęp -dashboard.cron.cancelled = Cron: %[1]s anulowany: %[3]s config.domain = Domena serwera -config.mailer_config = Konfiguracja Mailer auths.tip.gitea = Zarejestruj nową aplikację OAuth2. Przewodnik można znaleźć na %s auths.unable_to_initialize_openid = Nie można zainicjalizować Dostawcy Uwierzytelniania OpenID Connect: %s auths.force_smtps = Wymuś SMTPS auths.helo_hostname = Nazwa hosta HELO self_check = Autoweryfikacja -config.mailer_enable_helo = Włącz HELO auths.tips.gmail_settings = Ustawienia Gmail: auths.map_group_to_team_removal = Usuń użytkowników z synchronizowanych zespołów jeżeli użytkownik nie należy do odpowiadającej grupy LDAP auths.enable_ldap_groups = Włącz grupy LDAP @@ -3295,11 +3168,10 @@ monitor.download_diagnosis_report = Pobierz raport diagnostyczny auths.skip_local_two_fa_helper = Pozostawienie tej opcji jako odznaczonej oznacza, że użytkownicy lokalni z aktywowanym 2FA nadal będą musieli przejść 2FA by móc się zalogować config.app_slogan = Slogan instancji config.test_mail_failed = Nie udało się wysłać testowego e-maila do "%s": %v -config.mailer_use_dummy = Testowa config.cache_test_failed = Nie udało się zbadać pamięci podręcznej: %v. config.cache_test = Przetestuj Pamięć Podręczną monitor.processes_count = %d Procesów -self_check.no_problem_found = Nie znaleziono jeszcze żadnych problemów. +self_check.no_problem_found = Nie znaleziono żadnych problemów. config.cache_test_succeeded = Test pamięci podręcznej zakończony powodzeniem, otrzymano odpowiedź w ciągu %s. auths.login_source_exist = Źródło uwierzytelniania "%s" już istnieje. auths.new_success = Uwierzytelnianie "%s" została dodana. @@ -3310,19 +3182,14 @@ auths.default_domain_name = Domyślna nazwa domeny używana do adresu e-mail config.allow_dots_in_usernames = Zezwól użytkownikom na użycie kropek w ich nazwach użytkowników. Nie wpływa na już istniejące konta. config.open_with_editor_app_help = Edytory dostępne w menu klonowania "Otwórz przy pomocy". Jeżeli pozostawione puste, ustawienie domyślne będzie użyte. Rozwiń by zobaczyć ustawienie domyślne. monitor.duration = Okres (s) -config.ssh_domain = Domena serwera SSH -config.mailer_smtp_addr = Host SMTP auths.tip.gitlab_new = Zarejestruj nową aplikację na %s auths.oauth2_scopes = Dodatkowe zakresy auths.tips.oauth2.general.tip = Podczas rejestrowania nowego uwierzytelniania OAuth2, callback/przekierowanie URL powinno być: auths.oauth2_group_claim_name = Nazwa oświadczenia określającego nazwy grup dla tego źródła. (Opcjonalne) -dashboard.update_migration_poster_id = Aktualizuj ID autora migracji config.access_log_template = Szablon dziennika dostępu -dashboard.start_schedule_tasks = Uruchomienie zaplanowanych zadań akcji config.logger_name_fmt = Dziennik: %s self_check.database_collation_case_insensitive = Baza danych korzysta z układu sortowania %s, dla którego nie ma znaczenia wielkość liter. Mimo, że Forgejo mógłoby działać z tym ustawieniem poprawnie, mogą wydarzyć się rzadkie przypadki, które nie będą działać zgodnie z oczekiwaniami. auths.helo_hostname_helper = Nazwa hosta wysyłana z HELO. Aby wysłać bieżącą nazwę hosta, pozostaw puste. -dashboard.update_checker = Sprawdzanie aktualizacji auths.oauth2_required_claim_name_helper = Ustaw tę nazwę by ograniczyć logowanie z tego źródła dla użytkowników z oświadczeniem o tej nazwie auths.group_attribute_list_users = Atrybut grupy zawierający listę użytkowników auths.attribute_avatar = Atrybut awatara diff --git a/options/locale/locale_pt-BR.ini b/options/locale/locale_pt-BR.ini index 7e505b6920..27c3978415 100644 --- a/options/locale/locale_pt-BR.ini +++ b/options/locale/locale_pt-BR.ini @@ -121,7 +121,7 @@ value=Valor go_back = Voltar view = Visualizar copy_hash = Copiar hash -tracked_time_summary = Resumo do tempo de rastreamento baseado em filtros da lista de issues +tracked_time_summary = Resumo do tempo rastreado baseado em filtros da lista de issues confirm_delete_artifact = Tem certeza de que deseja excluir o artefato "%s"? filter = Filtro filter.clear = Limpar filtros @@ -239,7 +239,7 @@ err_empty_db_path=O caminho do banco de dados SQLite3 não pode ser em branco. no_admin_and_disable_registration=Você não pode desabilitar o auto-cadastro do usuário sem criar uma conta de administrador. err_empty_admin_password=A senha do administrador não pode ser em branco. err_empty_admin_email=O e-mail do administrador não pode ser em branco. -err_admin_name_is_reserved=Nome de usuário do administrador é inválido, nome de usuário está reservado +err_admin_name_is_reserved=Nome de usuário administrador é inválido, este nome já está reservado err_admin_name_pattern_not_allowed=Nome de usuário administrador é inválido, o nome de usuário corresponde a um padrão reservado err_admin_name_is_invalid=Nome de usuário do administrador inválido @@ -277,7 +277,7 @@ server_service_title=Configurações do servidor e serviços de terceiros offline_mode=Habilitar modo local offline_mode.description=Desabilitar redes de entrega de conteúdo (CDNs) de terceiros e fornecer todos os recursos localmente. disable_gravatar=Desabilitar o gravatar -disable_gravatar.description=Desabilitar o uso do Gravatar e avatar de fontes de terceiros. Um avatar padrão será usado a menos que um usuário localmente carrega um avatar. +disable_gravatar.description=Desabilitar o uso do Gravatar e avatar de fontes de terceiros. Um avatar padrão será usado a menos que um usuário localmente carregue um avatar. federated_avatar_lookup=Habilitar avatares federados federated_avatar_lookup.description=Buscar avatares usando Libravatar. disable_registration=Somente administradores podem criar novas contas @@ -286,9 +286,9 @@ allow_only_external_registration.description=Usuários apenas poderão criar nov openid_signin=Habilitar acesso via OpenID openid_signin.description=Habilitar o acesso de usuários via OpenID. openid_signup=Habilitar cadastros via OpenID -openid_signup.description=Permitir que os usuários criem contas com OpenID se o autorregistro estiver habilitado. +openid_signup.description=Permitir que os usuários criem contas com OpenID se o autocadastro estiver habilitado. enable_captcha=Habilitar CAPTCHA ao registrar -enable_captcha.description=Impor validação por CAPTCHA para cadastro de usuários. +enable_captcha.description=Exigir validação por CAPTCHA para cadastro de usuários. require_sign_in_view=Apenas usuários logados podem visualizar páginas require_sign_in_view.description=Limitar acesso ao conteúdo apenas aos usuários autenticados. Visitantes só poderão acessar as páginas de autenticação. admin_setting.description=Criar uma conta de administrador é opcional. O primeiro usuário cadastrado automaticamente se tornará um administrador. @@ -320,7 +320,7 @@ no_reply_address=Domínio de e-mail oculto no_reply_address_helper=Nome de domínio para usuários com endereço de e-mail oculto. Por exemplo, o nome de usuário "joe" será registrado no Git como "joe@noreply.example.org" se o domínio de e-mail oculto estiver definido como "noreply.example.org". password_algorithm=Algoritmo de hash de senhas invalid_password_algorithm=Algoritmo de hash de senha inválido -password_algorithm_helper=Escolha o algoritmo de hash para as senhas. Diferentes algoritmos têm requerimentos e forças diversos. O algoritmo argon2 é bastante seguro, mas usa muita memória e pode ser inapropriado para sistemas com menos recursos. +password_algorithm_helper=Escolha o algoritmo de hash para as senhas. Diferentes algoritmos têm requisitos e forças diversos. O algoritmo argon2 é bastante seguro, mas usa muita memória e pode ser inapropriado para sistemas com menos recursos. enable_update_checker=Verificar por atualizações automaticamente env_config_keys=Configuração do ambiente env_config_keys_prompt=As seguintes variáveis de ambiente também serão aplicadas ao seu arquivo de configuração: @@ -428,7 +428,7 @@ authorization_failed_desc=A autorização falhou porque detectamos uma solicita password_pwned=A senha que você escolheu faz parte de uma lista de senhas roubadas expostas anteriormente em violações de dados. Tente novamente com uma senha diferente e considere alterar essa senha em outro lugar também. password_pwned_err=Não foi possível concluir a requisição ao HaveIBeenPwned change_unconfirmed_email_error = Erro ao alterar o endereço de e-mail: %v -change_unconfirmed_email_summary = Alterar o endereço de e-mail que o e-mail de ativação será enviado para. +change_unconfirmed_email_summary = Alterar o endereço de e-mail para onde enviar mensagens de ativação. last_admin = Não é possível remover o último administrador. Deve existir ao menos um usuário administrador. change_unconfirmed_email = Se você colocou o endereço de e-mail errado durante o cadastro, você pode alterá-lo abaixo, e uma confirmação será enviada para o novo endereço. hint_register = Precisa de uma conta? Registre-se agora. @@ -667,7 +667,7 @@ followers.title.few = seguidores public_activity.visibility_hint.self_private = Sua atividade está visível apenas para você e para os administradores da instância. Configurar. public_activity.visibility_hint.self_public = Sua atividade está visível para todos, exceto as interações em espaços privados. Clique para configurar. public_activity.visibility_hint.admin_public = Sua atividade está visível para todos, mas como um administrador você também pode ver interações em espaços privados. -public_activity.visibility_hint.admin_private = Essa atividade está visível para você porque você é um administrador, mas o usuário dejesa que ela seja mantida em privado. +public_activity.visibility_hint.admin_private = Essa atividade está visível para você porque você é um administrador, mas o usuário deseja que ela seja mantida em privado. public_activity.visibility_hint.self_private_profile = Sua atividade só é visível para você e para os administradores do servidor porque seu perfil é privado. Configurar. [settings] @@ -922,8 +922,8 @@ passcode_invalid=Esse código de acesso é inválido. Tente novamente. twofa_enrolled=Sua conta foi inscrita na autenticação de dois fatores. Armazene seu token de recuperação de uso único (%s) em um local seguro, pois ele não será exibido novamente. twofa_failed_get_secret=Falha ao obter o segredo. -webauthn_desc=Chaves de segurança são dispositivos de hardware que contém chaves de criptografia. Elas podem ser usadas para autenticação de dois fatores. A chave de segurança deve suportar o padrão WebAuthnn Authenticator. -webauthn_register_key=Adicionar chave +webauthn_desc=Chaves de segurança são dispositivos de hardware que contém chaves de criptografia. Elas podem ser usadas para autenticação de dois fatores. A chave de segurança deve suportar o padrão WebAuthn Authenticator. +webauthn_register_key=Adicionar chave de segurança webauthn_nickname=Apelido webauthn_delete_key=Remover chave webauthn_delete_key_desc=Se você remover uma chave de segurança, não será possível utilizá-la para fazer login. Continuar? @@ -931,8 +931,8 @@ webauthn_delete_key_desc=Se você remover uma chave de segurança, não será po manage_account_links=Contas vinculadas manage_account_links_desc=Estas contas externas estão vinculadas a sua conta de Forgejo. link_account=Vincular conta -remove_account_link=Remover conta -remove_account_link_desc=A exclusão da chave SSH revogará o acesso à sua conta. Continuar? +remove_account_link=Remover conta vinculada +remove_account_link_desc=A remoção de uma conta vinculada revogará o acesso dessa conta à sua conta do Forgejo. Continuar? remove_account_link_success=A conta vinculada foi removida. hooks.desc=Adicione webhooks que serão acionados para todos os repositórios que você possui. @@ -991,7 +991,7 @@ keep_pronouns_private.description = Isto irá esconder seus pronomes de visitant storage_overview = Visão geral de armazenamento quota = Cota quota.applies_to_org = As seguintes regras de cota se aplicam a esta organização -quota.rule.exceeded = Excedido +quota.rule.exceeded = Excedida quota.rule.no_limit = Ilimitado quota.sizes.all = Tudo quota.sizes.repos.all = Repositórios @@ -1002,7 +1002,7 @@ quota.sizes.git.lfs = LFS Git quota.sizes.assets.all = Assets quota.sizes.assets.attachments.all = Anexos quota.sizes.assets.attachments.issues = Anexos de issue -quota.sizes.assets.attachments.releases = Anexos de release +quota.sizes.assets.attachments.releases = Anexos de lançamento quota.sizes.assets.artifacts = Artefatos quota.sizes.assets.packages.all = Pacotes quota.sizes.wiki = Wiki @@ -1934,10 +1934,10 @@ activity.title.unresolved_conv_1=%d conversa não resolvida activity.title.unresolved_conv_n=%d conversas não resolvidas activity.unresolved_conv_desc=Estas issues foram recentemente alteradas e pull requests ainda não foram resolvidos. activity.unresolved_conv_label=Aberta -activity.title.releases_1=%d release +activity.title.releases_1=%d lançamento activity.title.releases_n=%d lançamentos activity.title.releases_published_by=%s publicada(s) por %s -activity.published_release_label=Release +activity.published_release_label=Lançamento activity.no_git_activity=Não houve nenhuma atividade de commit neste período. activity.git_stats_exclude_merges=Excluindo merges, activity.git_stats_author_1=%d autor @@ -2025,7 +2025,7 @@ settings.pulls.enable_autodetect_manual_merge=Habilitar a detecção automática settings.pulls.allow_rebase_update=Ativar atualização do branch do pull request por rebase settings.pulls.default_delete_branch_after_merge=Excluir o branch de pull request após o merge por padrão settings.pulls.default_allow_edits_from_maintainers=Permitir edições de mantenedores por padrão -settings.releases_desc=Habilitar releases no repositório +settings.releases_desc=Habilitar lançamentos no repositório settings.packages_desc=Habilitar registro de pacotes do repositório settings.projects_desc=Habilitar projetos do repositório settings.actions_desc=Habilitar pipelines integradas de CI/CD com Forgejo Actions @@ -2400,9 +2400,9 @@ releases.desc=Acompanhe as versões e downloads do projeto. release.releases=Versões release.detail=Detalhes da versão release.tags=Tags -release.new_release=Nova release +release.new_release=Nova versão release.draft=Rascunho -release.prerelease=Pré-release +release.prerelease=Pré-lançamento release.stable=Estável release.compare=Comparar release.edit=Editar @@ -2420,15 +2420,15 @@ release.tag_helper_existing=Tag existente. release.title=Título da versão release.title_empty=O título não pode estar em branco. release.message=Descreva esta versão -release.prerelease_desc=Marcar como pré-release +release.prerelease_desc=Marcar como pré-lançamento release.prerelease_helper=Marcar esta versão como inadequada para uso em produção. release.cancel=Cancelar -release.publish=Publicar release +release.publish=Publicar versão release.save_draft=Salvar rascunho -release.edit_release=Atualizar release -release.delete_release=Excluir release +release.edit_release=Atualizar versão +release.delete_release=Excluir versão release.delete_tag=Excluir tag -release.deletion=Excluir release +release.deletion=Excluir versão release.deletion_success=A versão foi excluída. release.deletion_tag_desc=A tag será excluída do repositório. Conteúdo do repositório e histórico permanecerão inalterados. Continuar? release.deletion_tag_success=A tag foi excluída. @@ -2673,11 +2673,11 @@ release.type_attachment = Anexo release.type_external_asset = Recurso externo release.asset_name = Nome do recurso release.asset_external_url = URL Externa -release.hide_archive_links_helper = Esconder automaticamente arquivos de código fonte gerados para esse release. Por exemplo, se você estiver enviando os seus manualmente. +release.hide_archive_links_helper = Esconder automaticamente arquivos de código fonte gerados para esse lançamento. Por exemplo, se você estiver enviando os seus manualmente. branch.delete_desc = Apagar um branch é permanente. Ainda que o branch apagado possa continuar a existir por um breve período antes de ser realmente apagado, isso NÃO PODE ser desfeito na maioria dos casos. Continuar? release.add_external_asset = Adicionar componente externo release.invalid_external_url = URL externo inválido: "%s" -release.deletion_desc = Eliminar um release apenas o remove do Forgejo. Isso não irá afetar a tag no Git, o conteúdo do seu repositório ou o histórico. Continuar? +release.deletion_desc = Eliminar um lançamento apenas o remove do Forgejo. Isso não irá afetar a tag no Git, o conteúdo do seu repositório ou o histórico. Continuar? issues.all_title = Todas issues.new.assign_to_me = Designar a mim settings.discord_icon_url.exceeds_max_length = A URL do ícone precisa ter 2048 caracteres ou menos @@ -2708,7 +2708,7 @@ issues.reaction.add = Adicionar reação issues.reaction.alt_few = %[1]s reagiu com %[2]s. issues.reaction.alt_many = %[1]s e mais %[2]d reagiram com %[3]s. summary_card_alt = Cartão de resumo do repositório %s -release.summary_card_alt = Cartão de resumo de um release intitulado "%s" no repositório %s +release.summary_card_alt = Cartão de resumo de um lançamento intitulado "%s" no repositório %s archive.pull.noreview = Este repositório está arquivado. Não é possível revisar propostas. editor.commit_email = Email de commit commits.view_single_diff = Ver modificações neste arquivo introduzidas neste commit @@ -2881,67 +2881,14 @@ first_page=Primeira last_page=Última total=Total: %d -dashboard.new_version_hint=Uma nova versão está disponível: %s. Versão atual: %s. Visite o blog para mais informações. -dashboard.statistic=Resumo -dashboard.operations=Operações de manutenção -dashboard.system_status=Status do sistema -dashboard.operation_name=Nome da operação -dashboard.operation_switch=Trocar -dashboard.operation_run=Executar dashboard.clean_unbind_oauth=Limpar conexões OAuth não vinculadas dashboard.clean_unbind_oauth_success=Todas as conexões de OAuth não vinculadas foram excluídas. -dashboard.task.started=Tarefa Iniciada: %[1]s -dashboard.task.process=Tarefa: %[1]s -dashboard.task.error=Erro na Tarefa: %[1]s: %[3]s -dashboard.task.finished=Tarefa: %[1]s iniciada por %[2]s foi finalizada -dashboard.task.unknown=Tarefa desconhecida: %[1]s -dashboard.cron.started=Cron Iniciado: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.error=Erro no Cron: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s terminou dashboard.delete_inactive_accounts=Excluir todas as contas não ativadas -dashboard.delete_inactive_accounts.started=A tarefa de apagar todas as contas não ativadas foi iniciada. dashboard.delete_repo_archives=Excluir todos os arquivos dos repositórios (ZIP, TAR.GZ, etc..) -dashboard.delete_repo_archives.started=A tarefa de remover todos os arquivos foi iniciada. dashboard.delete_missing_repos=Excluir todos os repositórios que não possuem seus arquivos Git -dashboard.delete_missing_repos.started=Foi iniciada a tarefa de excluir todos os repositórios que não têm arquivos Git. -dashboard.delete_generated_repository_avatars=Excluir avatares gerados do repositório -dashboard.update_mirrors=Atualizar espelhos -dashboard.repo_health_check=Verificar estado de saúde de todos os repositórios -dashboard.check_repo_stats=Verificar estatísticas de todos os repositórios -dashboard.archive_cleanup=Apagar arquivos antigos de repositório -dashboard.deleted_branches_cleanup=Realizar limpeza de branches apagados -dashboard.update_migration_poster_id=Sincronizar os IDs do remetente da migração -dashboard.git_gc_repos=Coleta de lixo em todos os repositórios -dashboard.resync_all_sshkeys=Atualizar o arquivo ".ssh/authorized_keys" com as chaves SSH do Forgejo. -dashboard.resync_all_sshprincipals=Atualizar o arquivo ".ssh/authorized_principals" com os principals SSH do Forgejo. -dashboard.resync_all_hooks=Ressincronizar hooks Git de todos os repositórios (pre-receive, update, post-receive, proc-receive, …) -dashboard.reinit_missing_repos=Reinicializar todos os repositórios Git perdidos cujos registros existem -dashboard.sync_external_users=Sincronizar dados de usuário externo -dashboard.cleanup_hook_task_table=Limpar tabela hook_task -dashboard.cleanup_packages=Limpar pacotes expirados dashboard.delete_old_actions=Excluir todas as atividades antigas do banco de dados -dashboard.delete_old_actions.started=A exclusão de todas as atividades antigas do banco de dados foi iniciada. -dashboard.update_checker=Verificador de atualização -dashboard.delete_old_system_notices=Excluir todos os avisos de sistema antigos do banco de dados -dashboard.gc_lfs=Coletar lixos dos meta-objetos LFS -dashboard.stop_zombie_tasks=Parar tarefas de Actions zumbis -dashboard.stop_endless_tasks=Parar tarefas de Actions intermináveis -dashboard.cancel_abandoned_jobs=Cancelar trabalhos abandonados de Actions - users.user_manage_panel=Gerenciar contas de usuário users.new_account=Criar conta de usuário -users.name=Nome de usuário -users.full_name=Nome completo -users.activated=Ativado -users.admin=Administrador -users.restricted=Restrito -users.remote=Remoto -users.2fa=2FA -users.repos=Repositórios -users.created=Criado -users.last_login=Último acesso -users.never_login=Nunca entrou users.send_register_notify=Notificar sobre cadastros via e-mail users.new_success=Usuário "%s" criado. users.edit=Editar @@ -2986,34 +2933,12 @@ emails.duplicate_active=Este endereço de e-mail já está em uso por outro usu emails.change_email_header=Atualizar propriedades do e-mail orgs.org_manage_panel=Gerenciar organizações -orgs.name=Nome -orgs.teams=Equipes -orgs.members=Membros -orgs.new_orga=Nova organização - repos.repo_manage_panel=Gerenciar repositórios repos.unadopted=Repositórios não adotados repos.unadopted.no_more=Não foram encontrados repositórios não adotados. -repos.owner=Proprietário(a) -repos.name=Nome repos.private=Privado -repos.issues=Issues -repos.size=Tamanho -repos.lfs_size=Tamanho do LFS - packages.package_manage_panel=Gerenciar pacotes -packages.total_size=Tamanho total: %s -packages.unreferenced_size=Tamanho não referenciado: %s packages.cleanup=Limpar dados expirados -packages.owner=Proprietário -packages.creator=Criador -packages.name=Nome -packages.version=Versão -packages.type=Tipo -packages.repository=Repositório -packages.size=Tamanho -packages.published=Publicado - defaulthooks=Webhooks padrão defaulthooks.add_webhook=Adicionar Webhook Padrão defaulthooks.update_webhook=Atualizar Webhook Padrão @@ -3139,39 +3064,17 @@ config.offline_mode=Modo local config.disable_router_log=Desabilitar log do roteador config.run_user=Executar como este usuário config.run_mode=Modo de execução -config.git_version=Versão do Git config.repo_root_path=Localização raiz do repositório config.lfs_root_path=Localização raiz de LFS config.log_file_root_path=Localização do log config.script_type=Tipo de script config.reverse_auth_user=Usuário de autenticação do proxy reverso -config.ssh_config=Configuração de SSH -config.ssh_enabled=Habilitado -config.ssh_start_builtin_server=Usar o servidor embutido -config.ssh_domain=Domínio do servidor SSH -config.ssh_port=Porta -config.ssh_listen_port=Porta de escuta -config.ssh_root_path=Caminho raiz -config.ssh_key_test_path=Localização de teste para chave -config.ssh_keygen_path=Localização do gerador de chaves ("ssh-keygen") -config.ssh_minimum_key_size_check=Verificar tamanho mínimo da chave -config.ssh_minimum_key_sizes=Tamanhos mínimos da chave - config.lfs_config=Configuração de LFS config.lfs_enabled=Habilitado config.lfs_content_path=Localização do conteúdo LFS config.lfs_http_auth_expiry=Tempo de expiração da autenticação HTTP de LFS -config.db_config=Configuração do banco de dados -config.db_type=Tipo -config.db_host=Servidor -config.db_name=Nome -config.db_user=Nome de usuário -config.db_schema=Esquema -config.db_ssl_mode=SSL -config.db_path=Caminho - config.service_config=Configuração do serviço config.register_email_confirm=Exigir confirmação de e-mail para se cadastrar config.disable_register=Desabilitar autocadastro @@ -3200,19 +3103,6 @@ config.queue_length=Tamanho da fila config.deliver_timeout=Tempo limite de entrega config.skip_tls_verify=Ignorar verificação de TLS -config.mailer_config=Configuração de envio de e-mails -config.mailer_enabled=Habilitado -config.mailer_enable_helo=Ativar HELO -config.mailer_name=Nome -config.mailer_protocol=Protocolo -config.mailer_smtp_addr=Host SMTP -config.mailer_smtp_port=Porta SMTP -config.mailer_user=Usuário -config.mailer_use_sendmail=Usar o Sendmail -config.mailer_sendmail_path=Localização do Sendmail -config.mailer_sendmail_args=Argumentos extras para o Sendmail -config.mailer_sendmail_timeout=Tempo limite do Sendmail -config.mailer_use_dummy=Dummy config.test_email_placeholder=E-mail (por exemplo, teste@exemplo.com.br) config.send_test_mail=Enviar e-mail de teste config.send_test_mail_submit=Enviar @@ -3242,18 +3132,6 @@ config.picture_service=Serviço de imagens config.disable_gravatar=Desabilitar o gravatar config.enable_federated_avatar=Habilitar avatares federados -config.git_config=Configuração do Git -config.git_disable_diff_highlight=Desabilitar realce de sintaxe em diffs -config.git_max_diff_lines=Máximo de linhas por arquivo em diffs -config.git_max_diff_line_characters=Máximo de caracteres por linha em diffs -config.git_max_diff_files=Máximo de arquivos de diff exibidos -config.git_gc_args=Argumentos do GC -config.git_migrate_timeout=Tempo limite de migração -config.git_mirror_timeout=Tempo limite para atualização de espelhos -config.git_clone_timeout=Tempo limite para operações de clonagem -config.git_pull_timeout=Tempo limite para operações de pull -config.git_gc_timeout=Tempo limite para operação de GC - config.log_config=Configuração de log config.logger_name_fmt=Logger: %s config.disabled_logger=Desabilitado @@ -3300,13 +3178,9 @@ notices.op=Op. notices.delete_success=Os avisos do sistema foram excluídos. identity_access = Identidade e acesso settings = Configurações de administrador -users.bot = Robô -dashboard.start_schedule_tasks = Iniciar tarefas de Actions programadas -users.reserved = Reservado emails.change_email_text = Tem certeza de que deseja atualizar este endereço de e-mail? self_check = Autoverificação auths.tip.gitea = Registre um novo aplicativo OAuth2. A documentação pode ser encontrada em %s/ -dashboard.sync_tag.started = Sincronização de tags iniciada self_check.no_problem_found = Por enquanto não há algum problema. config_settings = Configurações config_summary = Resumo @@ -3314,30 +3188,23 @@ auths.tips.gmail_settings = Configurações do Gmail: auths.tip.gitlab_new = Registre um novo aplicativo em %s config.app_slogan = Slogan do servidor auths.default_domain_name = Domínio padrão usado para o endereço de e-mail -dashboard.sync_repo_tags = Sincronizar etiquetas do Git para o banco de dados config.app_data_path = Caminho dos dados do aplicativo -dashboard.task.cancelled = Tarefa: %[1]s cancelada: %[3]s -dashboard.sync_branch.started = Sincronização de ramos iniciada -dashboard.sync_repo_branches = Sincronizar ramos perdidos do Git para o banco de dados packages.cleanup.success = Os dados expirados foram limpos com sucesso systemhooks.desc = Os webhooks fazem automaticamente solicitações HTTP POST para um servidor quando certos eventos Forgejo são acionados. Os webhooks definidos aqui atuarão em todos os repositórios do sistema, então, considere quaisquer implicações de desempenho que isso possa ter. Leia mais no guia de webhooks. defaulthooks.desc = Os webhooks fazem automaticamente solicitações HTTP POST para um servidor quando certos eventos Forgejo são acionados. Os webhooks definidos aqui são padrões e serão copiados para todos os novos repositórios. Leia mais no guia de webhooks. self_check.database_fix_mysql = Para usuários do MySQL/MariaDB, você pode usar o comando "forgejo doctor convert" para corrigir os problemas de ordenamento, ou também pode corrigir o problema usando "ALTER ... COLLATE ..." SQLs manualmente. config.cache_test_succeeded = Teste de cache bem-sucedido, obteve uma resposta em %s. self_check.database_inconsistent_collation_columns = O banco de dados está usando o ordenamento %s, mas essas colunas estão usando ordenamentos incompatíveis. Isso pode causar alguns problemas inesperados. -dashboard.rebuild_issue_indexer = Reconstruir indexador de problemas assets = Ativos de código config.open_with_editor_app_help = Os editores "Abrir com" para o menu clone. Se deixado em branco, o padrão será usado. Expanda para ver o padrão. config.cache_test_slow = Teste de cache bem-sucedido, mas a resposta é lenta: %s. config.cache_test = Cache de Teste config.cache_test_failed = Falha ao sondar o cache: %v. self_check.database_collation_mismatch = Esperar que o banco de dados use o ordenamento: %s -dashboard.cleanup_actions = Limpar logs expirados e artefatos de Actions emails.delete = Excluir endereço de email emails.delete_primary_email_error = Você não pode excluir o email principal. emails.deletion_success = O endereço de email foi excluído. emails.delete_desc = Tem certeza de que deseja excluir este endereço de e-mail? -dashboard.cron.cancelled = Cron: %[1]s cancelado: %[3]s users.activated.description = Conclusão da verificação de e-mail. O proprietário de uma conta não ativada não poderá efetuar login até que a verificação de e-mail seja concluída. users.block.description = Bloquear este usuário de interagir com este serviço através de sua conta e proibir o login. users.admin.description = Conceda a este usuário acesso total a todos os recursos administrativos disponíveis por meio da interface do usuário da Web e da API. @@ -3374,7 +3241,7 @@ mirror_sync_create=sincronizou a nova referência %[3]s para mirror_sync_delete=referência excluída e sincronizada %[2]s em %[3]s do espelhamento approve_pull_request=`aprovou %[3]s#%[2]s` reject_pull_request=`sugeriu modificações para %[3]s#%[2]s` -publish_release=`lançou o release "%[4]s" em %[3]s` +publish_release=`lançou %[4]s em %[3]s` review_dismissed=`descartou a revisão de %[4]s para %[3]s#%[2]s` review_dismissed_reason=Motivo: create_branch=criou o branch %[3]s em %[4]s @@ -3511,8 +3378,8 @@ issues.read = Leitura: Visualizar e criar issues e comentários. code.write = Escrita: Fazer push para o repositório, criar branches e tags. issues.write = Escrita: Encerrar issues e gerir metadados como rótulos, marcos, responsáveis, prazos e dependências. pulls.read = Leitura: Ler e criar propostas de revisão. -releases.read = Leitura: Visualizar e baixar releases. -releases.write = Escrita: Publicar editar e apagar releases e seus recursos. +releases.read = Leitura: Visualizar e baixar lançamentos. +releases.write = Escrita: Publicar editar e apagar lançamentos e seus recursos. wiki.read = Leitura: Ler a wiki integrada e o histórico dela. wiki.write = Escrita: Criar, alterar e apagar páginas na wiki integrada. projects.read = Ler: Acesse os painéis de projetos do repositório. diff --git a/options/locale/locale_pt-PT.ini b/options/locale/locale_pt-PT.ini index cede616bce..c7553cdce8 100644 --- a/options/locale/locale_pt-PT.ini +++ b/options/locale/locale_pt-PT.ini @@ -2882,78 +2882,14 @@ last_page=Última total=total: %d settings=Configurações de administração -dashboard.new_version_hint=O Forgejo %s está disponível, você está a correr a versão %s. Verifique o blog para mais detalhes. -dashboard.statistic=Resumo -dashboard.operations=Operações de manutenção -dashboard.system_status=Estado do sistema -dashboard.operation_name=Nome da operação -dashboard.operation_switch=Comutar -dashboard.operation_run=Executar dashboard.clean_unbind_oauth=Limpar conexões OAuth não vinculadas dashboard.clean_unbind_oauth_success=Todas as conexões OAuth não vinculadas foram eliminadas. -dashboard.task.started=Tarefa iniciada: %[1]s -dashboard.task.process=Tarefa: %[1]s -dashboard.task.cancelled=Tarefa: %[1]s cancelada: %[3]s -dashboard.task.error=Erro na tarefa: %[1]s: %[3]s -dashboard.task.finished=Tarefa: %[1]s iniciada por %[2]s foi concluída -dashboard.task.unknown=Tarefa desconhecida: %[1]s -dashboard.cron.started=Cron iniciado: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.cancelled=Cron: %[1]s cancelado: %[3]s -dashboard.cron.error=Erro no cron: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s concluído dashboard.delete_inactive_accounts=Eliminar todas as contas que não tenham sido habilitadas -dashboard.delete_inactive_accounts.started=Foi iniciada a eliminação de todas as contas que não foram habilitadas. dashboard.delete_repo_archives=Eliminar todos os arquivos dos repositórios (ZIP, TAR.GZ, etc) -dashboard.delete_repo_archives.started=Foi iniciada a tarefa de eliminação de todos os repositórios arquivados. dashboard.delete_missing_repos=Eliminar todos os repositórios que não tenham os seus ficheiros Git -dashboard.delete_missing_repos.started=Foi iniciada a tarefa de eliminação de todos os repositórios que não têm ficheiros git. -dashboard.delete_generated_repository_avatars=Eliminar avatares gerados do repositório -dashboard.sync_repo_branches=Sincronizar ramos perdidos de dados do Git para a base de dados -dashboard.sync_repo_tags=Sincronizar etiquetas dos dados do Git para a base de dados -dashboard.update_mirrors=Sincronizar réplicas -dashboard.repo_health_check=Verificar a saúde de todos os repositórios -dashboard.check_repo_stats=Verificar as estatísticas de todos os repositórios -dashboard.archive_cleanup=Eliminar arquivos de repositórios antigos -dashboard.deleted_branches_cleanup=Limpar ramos eliminados -dashboard.update_migration_poster_id=Sincronizar os IDs do remetente da migração -dashboard.git_gc_repos=Fazer a recolha do lixo em todos os repositórios -dashboard.resync_all_sshkeys=Sincronizar o ficheiro ".ssh/authorized_keys" com as chaves SSH do Forgejo. -dashboard.resync_all_sshprincipals=Modificar o ficheiro ".ssh/authorized_principals" com os protagonistas SSH do Forgejo. -dashboard.resync_all_hooks=Voltar a sincronizar automatismos Git de todos os repositórios (pre-receive, update, post-receive, proc-receive, …) -dashboard.reinit_missing_repos=Reinicializar todos os repositórios Git em falta para os quais existam registos -dashboard.sync_external_users=Sincronizar dados externos do utilizador -dashboard.cleanup_hook_task_table=Limpar tabela hook_task -dashboard.cleanup_packages=Limpar pacotes expirados -dashboard.cleanup_actions=Limpar registos e artefactos expirados das operações dashboard.delete_old_actions=Eliminar todos os trabalhos antigos da base de dados -dashboard.delete_old_actions.started=Foi iniciado o processo de eliminação de todos os trabalhos antigos da base de dados. -dashboard.update_checker=Verificador de novas versões -dashboard.delete_old_system_notices=Eliminar todas as notificações do sistema antigas da base de dados -dashboard.gc_lfs=Recolher lixo dos meta-elementos LFS -dashboard.stop_zombie_tasks=Parar tarefas de operações zombies -dashboard.stop_endless_tasks=Parar tarefas de operações intermináveis -dashboard.cancel_abandoned_jobs=Cancelar trabalhos de operações abandonados -dashboard.start_schedule_tasks=Iniciar tarefas de operações de agendamento -dashboard.sync_branch.started=Sincronização de ramos iniciada -dashboard.sync_tag.started=Sincronização de etiquetas iniciada -dashboard.rebuild_issue_indexer=Reconstruir indexador de questões - users.user_manage_panel=Gerir contas de utilizador users.new_account=Criar conta de utilizador -users.name=Nome de utilizador -users.full_name=Nome completo -users.activated=Em uso -users.admin=Admin. -users.restricted=Restrita -users.reserved=Reservado -users.bot=Bot -users.remote=Remoto -users.2fa=Autenticação em dois passos -users.repos=Repos. -users.created=Criada -users.last_login=Último acesso -users.never_login=Nunca acedeu users.send_register_notify=Notificar sobre o registo via email users.new_success=A conta de utilizador "%s" foi criada. users.edit=Editar @@ -2999,35 +2935,13 @@ emails.change_email_header=Modificar propriedades do email emails.change_email_text=Tem a certeza que quer modificar este endereço de email? orgs.org_manage_panel=Gerir organizações -orgs.name=Nome -orgs.teams=Equipas -orgs.members=Membros -orgs.new_orga=Nova organização - repos.repo_manage_panel=Gerir repositórios repos.unadopted=Repositórios não adotados repos.unadopted.no_more=Não foram encontrados repositórios não adotados. -repos.owner=Proprietário(a) -repos.name=Nome repos.private=Privado -repos.issues=Questões -repos.size=Tamanho -repos.lfs_size=Tamanho do LFS - packages.package_manage_panel=Gerir pacotes -packages.total_size=Tamanho total: %s -packages.unreferenced_size=Tamanho não referenciado: %s packages.cleanup=Limpar dados expirados packages.cleanup.success=Limpou os dados expirados com sucesso -packages.owner=Proprietário -packages.creator=Criador -packages.name=Nome -packages.version=Versão -packages.type=Tipo -packages.repository=Repositório -packages.size=Tamanho -packages.published=Publicado - defaulthooks=Automatismos web predefinidos defaulthooks.desc=Os automatismos web fazem pedidos HTTP POST automaticamente a um servidor quando são despoletados determinados eventos do Forgejo. Os automatismos web definidos aqui são os predefinidos e serão copiados para todos os novos repositórios. Leia mais no guia de automatismos web. defaulthooks.add_webhook=Adicionar automatismo web predefinido @@ -3156,7 +3070,6 @@ config.offline_mode=Modo local config.disable_router_log=Desabilitar registos do encaminhador (router) config.run_user=Executa com este nome de utilizador config.run_mode=Modo de execução -config.git_version=Versão do Git config.app_data_path=Localização dos dados da aplicação config.repo_root_path=Localização dos repositórios config.lfs_root_path=Localização dos LFS @@ -3164,32 +3077,11 @@ config.log_file_root_path=Localização dos registos config.script_type=Tipo de script config.reverse_auth_user=Utilizador de autenticação do reverse proxy -config.ssh_config=Configuração SSH -config.ssh_enabled=Habilitado -config.ssh_start_builtin_server=Usar servidor integrado -config.ssh_domain=Domínio do servidor SSH -config.ssh_port=Porto -config.ssh_listen_port=Porto de escuta -config.ssh_root_path=Localização base -config.ssh_key_test_path=Localização do teste das chaves -config.ssh_keygen_path=Localização do gerador de chaves ("ssh-keygen") -config.ssh_minimum_key_size_check=Verificação de tamanho mínimo da chave -config.ssh_minimum_key_sizes=Tamanhos mínimos da chave - config.lfs_config=Configuração do LFS config.lfs_enabled=Habilitado config.lfs_content_path=Localização do conteúdo LFS config.lfs_http_auth_expiry=Prazo da autenticação LFS HTTP -config.db_config=Configuração da base de dados -config.db_type=Tipo -config.db_host=Servidor -config.db_name=Nome -config.db_user=Nome de utilizador -config.db_schema=Esquema -config.db_ssl_mode=SSL -config.db_path=Localização - config.service_config=Configuração do serviço config.register_email_confirm=Exigir confirmação de email para se inscrever config.disable_register=Desabilitar a auto-inscrição @@ -3217,19 +3109,6 @@ config.queue_length=Comprimento da fila config.deliver_timeout=Prazo da entrega config.skip_tls_verify=Ignorar validação TLS -config.mailer_config=Configuração de envio de email -config.mailer_enabled=Habilitado -config.mailer_enable_helo=Habilitar HELO -config.mailer_name=Nome -config.mailer_protocol=Protocolo -config.mailer_smtp_addr=Anfitrião SMTP -config.mailer_smtp_port=Porto do SMTP -config.mailer_user=Utilizador -config.mailer_use_sendmail=Usar o sendmail -config.mailer_sendmail_path=Localização do sendmail -config.mailer_sendmail_args=Argumentos extras para o sendmail -config.mailer_sendmail_timeout=Tempo limite do Sendmail -config.mailer_use_dummy=Fictício config.test_email_placeholder=Email (ex.: teste@exemplo.com) config.send_test_mail=Enviar email de teste config.send_test_mail_submit=Enviar @@ -3259,18 +3138,6 @@ config.picture_service=Serviço de imagem config.disable_gravatar=Desabilitar o Gravatar config.enable_federated_avatar=Habilitar avatares federados -config.git_config=Configuração do Git -config.git_disable_diff_highlight=Desabilitar o realce de sintaxe no diff -config.git_max_diff_lines=Número máximo de linhas diff por ficheiro -config.git_max_diff_line_characters=Número máximos de caracteres diff por linha -config.git_max_diff_files=Número máximo de ficheiros diff a serem apresentados -config.git_gc_args=Argumentos da recolha de lixo -config.git_migrate_timeout=Prazo da migração -config.git_mirror_timeout=Prazo para a sincronização da réplica -config.git_clone_timeout=Prazo da operação de clonagem -config.git_pull_timeout=Prazo da operação de puxar -config.git_gc_timeout=Prazo da operação de recolha de lixo - config.log_config=Configuração do registo config.logger_name_fmt=Registador: %s config.disabled_logger=Desabilitado diff --git a/options/locale/locale_ro.ini b/options/locale/locale_ro.ini index ec266dfd90..b304bb86e6 100644 --- a/options/locale/locale_ro.ini +++ b/options/locale/locale_ro.ini @@ -539,4 +539,15 @@ CommitSummary = Rezumatul commit-urilor CommitMessage = Mesajul commit-ului CommitChoice = Alegerea commit-ului TreeName = Locația fișierului -Content = Conținut \ No newline at end of file +Content = Conținut +PayloadUrl = URL pentru payload +require_error = ` nu poate fi gol.` +alpha_dash_error = ` trebuie să conțină doar caractere alfanumerice, dash ("-") și underscore ("_").` +alpha_dash_dot_error = ` trebuie să conțină doar caractere alfanumerice, dash ("-"), underscore ("_") și punct (".").` +unknown_error = Eroare necunoscută: +captcha_incorrect = Codul CAPTCHA este incorect. +password_not_match = Parolele nu se potrivesc. +lang_select_error = Selectează o limbă din listă. +username_been_taken = Numele de utilizator este deja luat. +username_change_not_local_user = Nu este permis ca utilizatorii non-locali să își schimbe numele de utilizator. +repo_name_been_taken = Numele de repository este deja luat. \ No newline at end of file diff --git a/options/locale/locale_ru-RU.ini b/options/locale/locale_ru-RU.ini index 43e21a0c18..a349d5c744 100644 --- a/options/locale/locale_ru-RU.ini +++ b/options/locale/locale_ru-RU.ini @@ -2882,71 +2882,14 @@ first_page=Первая last_page=Последняя total=Всего: %d -dashboard.new_version_hint=Доступна новая версия Forgejo %s, вы используете %s. Более подробную информацию читайте в блоге. -dashboard.statistic=Статистика -dashboard.operations=Обслуживание -dashboard.system_status=Состояние системы -dashboard.operation_name=Имя операции -dashboard.operation_switch=Переключить -dashboard.operation_run=Запуск dashboard.clean_unbind_oauth=Очистить список незавершённых авторизаций OAuth dashboard.clean_unbind_oauth_success=Все незавершённые связи OAuth были удалены. -dashboard.task.started=Началось задание: %[1]s -dashboard.task.process=Задание: %[1]s -dashboard.task.cancelled=Задание %[1]s отменено: %[3]s -dashboard.task.error=Ошибка в задании: %[1]s: %[3]s -dashboard.task.finished=Задание %[1]s, начатое %[2]s, завершено -dashboard.task.unknown=Неизвестное задание: %[1]s -dashboard.cron.started=Планировщик запущен: %[1]s -dashboard.cron.process=Планировщик: %[1]s -dashboard.cron.cancelled=Планировщик: %[1]s отменено: %[3]s -dashboard.cron.error=Ошибка в запланированном задании: %s: %[3]s -dashboard.cron.finished=Планировщик: %[1]s завершено dashboard.delete_inactive_accounts=Удалить все неактивированные учётные записи -dashboard.delete_inactive_accounts.started=Удаление всех неактивированных учётных записей началось. dashboard.delete_repo_archives=Удалить все архивы репозиториев (ZIP, TAR.GZ и др...) -dashboard.delete_repo_archives.started=Удаление всех архивов репозитория началось. dashboard.delete_missing_repos=Удалить все записи о репозиториях с отсутствующими файлами Git -dashboard.delete_missing_repos.started=Начато удаление всех репозиториев без Git-файлов. -dashboard.delete_generated_repository_avatars=Удалить сгенерированные картинки репозиториев -dashboard.update_mirrors=Обновить зеркала -dashboard.repo_health_check=Проверка состояния всех репозиториев -dashboard.check_repo_stats=Проверить всю статистику репозитория -dashboard.archive_cleanup=Удалить старые архивы репозитория -dashboard.deleted_branches_cleanup=Очистка удалённых ветвей -dashboard.update_migration_poster_id=Обновить ИД плакатов миграции -dashboard.git_gc_repos=Выполнить сборку мусора для всех репозиториев -dashboard.resync_all_sshkeys=Обновить SSH-ключи Forgejo в файле «.ssh/authorized_keys». -dashboard.resync_all_sshprincipals=Обновить учётные данные SSH Forgejo в файле «.ssh/authorized_principals». -dashboard.resync_all_hooks=Синхронизировать Git-хуки во всех репозиториях (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.delete_old_actions=Удалить все старые активности из базы данных -dashboard.delete_old_actions.started=Запущено удаление всех старых активностей из БД. -dashboard.update_checker=Проверка обновлений -dashboard.delete_old_system_notices=Удалить все старые системные уведомления из базы данных -dashboard.gc_lfs=Выполнить сборку мусора метаобъектов LFS -dashboard.stop_zombie_tasks=Остановить зомби-задания Действий -dashboard.stop_endless_tasks=Остановить непрекращающиеся задания Действий -dashboard.cancel_abandoned_jobs=Отменить брошенные задания Действий -dashboard.start_schedule_tasks=Запустить запланированные задания Действий - users.user_manage_panel=Управление пользователями users.new_account=Создать новую уч. запись -users.name=Имя пользователя -users.full_name=Полное имя -users.activated=Активирован -users.admin=Администратор -users.restricted=Ограничен -users.reserved=Резерв -users.bot=Бот -users.2fa=2ФА -users.repos=Репозитории -users.created=Регистрация -users.last_login=Последний вход -users.never_login=Никогда не входил users.send_register_notify=Уведомить о регистрации по эл. почте users.new_success=Учётная запись «%s» создана. users.edit=Редактировать @@ -2992,38 +2935,16 @@ emails.change_email_header=Обновить свойства эл. почты emails.change_email_text=Вы уверены, что хотите обновить этот адрес эл. почты? orgs.org_manage_panel=Управление организациями -orgs.name=Название -orgs.teams=Команды -orgs.members=Участники -orgs.new_orga=Создать организацию - repos.repo_manage_panel=Управление репозиториями repos.unadopted=Непринятые репозитории repos.unadopted.no_more=Непринятые репозитории не найдены. -repos.owner=Владелец -repos.name=Название repos.private=Частный -repos.issues=Задачи -repos.size=Размер -repos.lfs_size=Размер LFS - packages.package_manage_panel=Управление пакетами -packages.total_size=Общий размер: %s -packages.unreferenced_size=Неуказанный размер: %s packages.cleanup=Очистить устаревшие данные packages.cleanup.success=Очистка устаревших данных успешно завершена -packages.owner=Владелец -packages.creator=Автор -packages.name=Наименование -packages.version=Версия -packages.type=Тип -packages.repository=Репозиторий -packages.size=Размер -packages.published=Опубликовано - defaulthooks=Стандартные веб-хуки defaulthooks.add_webhook=Добавить стандартный Веб-хук -defaulthooks.update_webhook=Обновить стандартный Веб-хук +defaulthooks.update_webhook=Обновить стандартный веб-хук systemhooks=Системные веб-хуки systemhooks.add_webhook=Добавить системный веб-хук @@ -3145,7 +3066,6 @@ config.offline_mode=Локальный режим config.disable_router_log=Отключение журнала маршрутизатора config.run_user=Работа под пользователем config.run_mode=Режим работы -config.git_version=Версия git config.app_data_path=Путь к данным приложения config.repo_root_path=Путь до каталога репозиториев config.lfs_root_path=Корневой путь LFS @@ -3153,32 +3073,11 @@ config.log_file_root_path=Путь журналов config.script_type=Тип сценария config.reverse_auth_user=Пользователь для авторизации на обратном прокси -config.ssh_config=Конфигурация SSH -config.ssh_enabled=SSH включён -config.ssh_start_builtin_server=Использовать встроенный сервер -config.ssh_domain=Домен SSH сервера -config.ssh_port=Порт -config.ssh_listen_port=Прослушиваемый порт -config.ssh_root_path=Корневой путь -config.ssh_key_test_path=Путь к тестовому ключу -config.ssh_keygen_path=Путь до генератора ключей («ssh-keygen») -config.ssh_minimum_key_size_check=Проверка минимального размер ключа -config.ssh_minimum_key_sizes=Минимальные размеры ключей - config.lfs_config=Конфигурация LFS config.lfs_enabled=Включено config.lfs_content_path=Путь к содержимому LFS config.lfs_http_auth_expiry=Срок действия HTTP-аутентификации LFS -config.db_config=Конфигурация базы данных -config.db_type=Тип -config.db_host=Сервер -config.db_name=Имя -config.db_user=Пользователь -config.db_schema=Схема -config.db_ssl_mode=SSL -config.db_path=Путь - config.service_config=Конфигурация служб config.register_email_confirm=Требовать подтверждение по эл. почте для регистрации config.disable_register=Саморегистрация отключена @@ -3207,19 +3106,6 @@ config.queue_length=Длина очереди config.deliver_timeout=Задержка доставки config.skip_tls_verify=Пропуск проверки TLS -config.mailer_config=Конфигурация почтового сервера -config.mailer_enabled=Почта включена -config.mailer_enable_helo=Включить HELO -config.mailer_name=Имя -config.mailer_protocol=Протокол -config.mailer_smtp_addr=Адрес SMTP -config.mailer_smtp_port=Порт SMTP -config.mailer_user=Пользователь -config.mailer_use_sendmail=Использовать Sendmail -config.mailer_sendmail_path=Путь Sendmail -config.mailer_sendmail_args=Дополнительные аргументы для Sendmail -config.mailer_sendmail_timeout=Истечение ожидания Sendmail -config.mailer_use_dummy=Заглушка config.test_email_placeholder=Эл. почта (например, test@example.com) config.send_test_mail=Отправить тестовое письмо config.send_test_mail_submit=Отправить @@ -3249,18 +3135,6 @@ config.picture_service=Служба изображений config.disable_gravatar=Отключить Gravatar config.enable_federated_avatar=Федерированные изображения профилей -config.git_config=Конфигурация Git -config.git_disable_diff_highlight=Отключить подсветку синтаксиса при сравнении -config.git_max_diff_lines=Макс. количество строк в файле при сравнении -config.git_max_diff_line_characters=Макс. количество символов в строке при сравнении -config.git_max_diff_files=Макс. отображаемое количество файлов при сравнении -config.git_gc_args=Аргументы сборщика мусора -config.git_migrate_timeout=Ограничение времени переносов -config.git_mirror_timeout=Ограничение времени на синхронизацию зеркала -config.git_clone_timeout=Ограничение времени операций клонирования -config.git_pull_timeout=Ограничение времени на получение изменений -config.git_gc_timeout=Ограничение времени на сборку мусора - config.log_config=Конфигурация журнала config.logger_name_fmt=Журнал: %s config.disabled_logger=Отключен @@ -3305,25 +3179,18 @@ notices.type_2=Задание notices.desc=Описание notices.op=Oп. notices.delete_success=Уведомления системы были удалены. -self_check.no_problem_found = Пока проблем не обнаружено. +self_check.no_problem_found = Пока проблем не выявлено. auths.tip.gitea = Зарегистрируйте новое приложение OAuth2. Доступна инструкция: %s auths.tips.oauth2.general.tip = При регистрации нового приложения OAuth2 ссылка обратного перенаправления должна быть: self_check.database_fix_mysql = Пользователи MySQL и MariaDB могут исправить проблемы с сопоставлением командой "forgejo doctor convert". Также можно вручную вписать "ALTER ... COLLATE ..." в SQL. -dashboard.cleanup_actions = Удалить устаревшие журналы и артефакты Действий -dashboard.sync_repo_branches = Синхронизировать ветви из Git в базу данных assets = Кодовые объекты -dashboard.sync_tag.started = Начата синхронизация тегов settings = Админ. настройки self_check.database_collation_case_insensitive = БД использует нечувствительное сопоставление %s. Хоть Forgejo и будет работать, могут возникать случаи с неожиданным поведением. self_check.database_inconsistent_collation_columns = БД использует сопоставление %s, но эти столбцы используют перемешанные сопоставления. Это может вызывать неожиданные проблемы. -dashboard.sync_branch.started = Начата синхронизация ветвей -dashboard.sync_repo_tags = Синхронизировать теги Git-репозиториев в базу данных self_check.database_collation_mismatch = Ожидается, что БД использует сопоставление: %s self_check = Самопроверка -dashboard.rebuild_issue_indexer = Пересобрать индексатор задач systemhooks.desc = Веб-хуки автоматически совершают POST запросы до указанного HTTP сервера, когда в Forgejo происходят определённые события. Заданные здесь веб-хуки будут срабатывать во всех репозиториях на этом сервере и могут привести к проблемам с производительностью. Подробнее о веб-хуках. defaulthooks.desc = Веб-хуки автоматически совершают POST запросы до указанного HTTP сервера, когда в Forgejo происходят определённые события. Заданные здесь веб-хуки используются по умолчанию и будут добавлены во все новые репозитории. Подробнее о веб-хуках. -users.remote = Дистанц config_summary = Сводка config.open_with_editor_app_help = Приложения для "Открыть в" в меню. Оставьте пустым для приложений по умолчанию. Разверните для просмотра. config_settings = Настройки diff --git a/options/locale/locale_si-LK.ini b/options/locale/locale_si-LK.ini index bc07de0e6f..6372ba11c2 100644 --- a/options/locale/locale_si-LK.ini +++ b/options/locale/locale_si-LK.ini @@ -1917,57 +1917,14 @@ first_page=පළමු last_page=පසුගිය total=මුළු: %d -dashboard.statistic=සාරාංශය -dashboard.operations=නඩත්තු මෙහෙයුම් -dashboard.system_status=පද්ධතියේ තත්වය -dashboard.operation_name=මෙහෙයුමේ නම -dashboard.operation_switch=මාරුවන්න -dashboard.operation_run=ධාවනය dashboard.clean_unbind_oauth=පිරිසිදු නොබැඳි OAUTH සම්බන්ධතා dashboard.clean_unbind_oauth_success=සියලුම නොබැඳි OAUTH සම්බන්ධතා මකා දමා ඇත. -dashboard.task.started=ආරම්භ කාර්යය:%[1]s -dashboard.task.process=කාර්යය:%[1]s -dashboard.task.error=කාර්යයයේ දෝෂය:%[1]s:%[3]s -dashboard.task.finished=කාර්යය:%[1]s[2]s විසින් ආරම්භ කර ඇත -dashboard.task.unknown=නොදන්නා කාර්යය:%[1]s -dashboard.cron.started=ආරම්භ Con:%[1]s -dashboard.cron.process=ක්රෝන්:%[1]s -dashboard.cron.error=ක්රෝන් හි දෝෂය: %s:%[3]s -dashboard.cron.finished=ක්රෝන්:%[1]s අවසන් වී ඇත dashboard.delete_inactive_accounts=සියලුම අක්රීය ගිණුම් මකන්න -dashboard.delete_inactive_accounts.started=සියලුම අක්රීය ගිණුම් කාර්යය ආරම්භ කර මකා දමන්න. dashboard.delete_repo_archives=සියලුම ගබඩාවන් 'ලේඛනාගාරය මකන්න (ZIP, TAR.GZ, ආදිය..) -dashboard.delete_repo_archives.started=සියලුම ගබඩාවල් ලේඛනාගාර කාර්යය ආරම්භ කිරීම මකන්න. dashboard.delete_missing_repos=ඔවුන්ගේ Git ගොනු අතුරුදහන් වූ සියලුම ගබඩාවන් මකන්න -dashboard.delete_missing_repos.started=සියළුම ගබඩාවන් මකා දමන්න Git ගොනු කාර්යය ආරම්භ විය. -dashboard.delete_generated_repository_avatars=ජනනය කරන ලද නිධි අවතාරය මකන්න -dashboard.update_mirrors=දර්පණ යාවත්කාලීන කරන්න -dashboard.repo_health_check=සෞඛ්ය සියලු ගබඩාවලදී පරීක්ෂා -dashboard.check_repo_stats=සියළුම කෝෂ්ඨවල සංඛ්‍යාලේඛන පරීක්‍ෂා කරන්න -dashboard.archive_cleanup=පැරණි නිධි ලේඛනාගාරය මකන්න -dashboard.deleted_branches_cleanup=මකාදැමූ ශාඛා පිරිසිදු කිරීම -dashboard.update_migration_poster_id=සංක්රමණ පෝස්ටර් යාවත්කාලීන කිරීම -dashboard.git_gc_repos=කසළ සියලු ගබඩාවල් එකතු කරයි -dashboard.resync_all_sshkeys=Forgejo SSH යතුරු සමඟ '.ssh/authorized_keys' ගොනුව යාවත්කාලීන කරන්න. -dashboard.resync_all_sshprincipals=Forgejo SSH විදුහල්පතිවරුන් සමඟ '.ssh/authorized_විදුහල්පති' ගොනුව යාවත්කාලීන කරන්න. -dashboard.resync_all_hooks=පෙර ලැබීමට, යාවත්කාලීන කිරීමට සහ සියලු ගබඩාවන් නැවත ලබා ගැනීමට කොකු නැවත සකස් කරන්න. -dashboard.reinit_missing_repos=අතුරුදහන් වූ සියලුම ගිට් නිධි නැවත ආරම්භ කිරීම -dashboard.sync_external_users=බාහිර පරිශීලක දත්ත සමමුහූර්තනය -dashboard.cleanup_hook_task_table=පිරිසිදු hook_task වගුව dashboard.delete_old_actions=සියලු පැරණි ක්රියා දත්ත සමුදායෙන් මකන්න -dashboard.delete_old_actions.started=දත්ත සමුදාය ආරම්භ සිට සියලු පැරණි ක්රියා මකන්න. - users.user_manage_panel=පරිශීලක ගිණුම් කළමනාකරණය users.new_account=පරිශීලක ගිණුමක් සාදන්න -users.name=පරිශීලක නාමය -users.full_name=සම්පූර්ණ නම -users.activated=සක්රිය -users.admin=පරිපාලක -users.restricted=සීමා -users.repos=කෝෂ්ඨය -users.created=සෑදීම -users.last_login=අවසන් සංඥා දී -users.never_login=කවදාවත් සිග්නෙඩ්-දී users.send_register_notify=පරිශීලක ලියාපදිංචි දැනුම්දීම යවන්න users.edit=සංස්කරණය users.auth_source=සත්යාපන මූලාශ්රය @@ -2005,26 +1962,10 @@ emails.duplicate_active=මෙම විද්යුත් තැපැල් emails.change_email_header=විද්යුත් ගුණාංග යාවත්කාලීන කරන්න orgs.org_manage_panel=සංවිධාන කළමනාකරණය -orgs.name=නම -orgs.teams=කණ්ඩායම් -orgs.members=සාමාජිකයින් -orgs.new_orga=නව සංවිධානය - repos.repo_manage_panel=කෝෂ්ඨ කළමනාකරණය repos.unadopted=සම්මත නොකළ ගබඩාවලදී repos.unadopted.no_more=තවත් සම්මත නොකළ ගබඩාවක් සොයාගත නොහැකි විය -repos.owner=හිමිකරු -repos.name=නම repos.private=පෞද්ගලික -repos.issues=ගැටළු -repos.size=ප්‍රමාණය - -packages.owner=හිමිකරු -packages.name=නම -packages.type=වර්ගය -packages.repository=කෝෂ්ඨය -packages.size=ප්‍රමාණය - defaulthooks=පෙරනිමි වෙබ් කොකු defaulthooks.add_webhook=පෙරනිමි වෙබ් හූක් එකතු කරන්න defaulthooks.update_webhook=පෙරනිමි වෙබ් හූක් යාවත්කාලීන කරන්න @@ -2130,38 +2071,17 @@ config.offline_mode=දේශීය ප්රකාරය config.disable_router_log=Router ලොග් අක්රීය config.run_user=පරිශීලක නාමය ලෙස ධාවනය config.run_mode=ධාවනය ප්රකාරය -config.git_version=ගිට් අනුවාදය config.repo_root_path=ගබඩාව මූල මාර්ගය config.lfs_root_path=LFS මූල මාර්ගය config.log_file_root_path=ලොග් මාර්ගය config.script_type=ස්ක්රිප්ට් වර්ගය config.reverse_auth_user=ප්රතිලෝම පරිශීලක සත්යාපන -config.ssh_config=SSH වින්යාසය -config.ssh_enabled=සබල කර ඇත -config.ssh_start_builtin_server=Built-දී සේවාදායකය භාවිතා -config.ssh_domain=SSH සේවාදායකය වසම් -config.ssh_port=වරාය -config.ssh_listen_port=සවන් වරාය -config.ssh_root_path=මූල මාර්ගය -config.ssh_key_test_path=ප්රධාන ටෙස්ට් මාර්ගය -config.ssh_keygen_path=Keygen ('ssh-keygen') මාර්ගය -config.ssh_minimum_key_size_check=අවම කී ප්රමාණය පරීක්ෂා -config.ssh_minimum_key_sizes=අවම යතුරෙහි ප්‍රමාණ - config.lfs_config=LFS වින්යාසය config.lfs_enabled=සබල කර ඇත config.lfs_content_path=LFS අන්තර්ගත මාර්ගය config.lfs_http_auth_expiry=LFS HTTP හෝත් කල් ඉකුත්වන -config.db_config=දත්ත සමුදායෙහි වින්‍යාසය -config.db_type=වර්ගය -config.db_host=සත්කාරක -config.db_name=නම -config.db_user=පරිශීලක නාමය -config.db_schema=යෝජනා ක්රමය -config.db_path=මාර්ගය - config.service_config=සේවාවේ වින්‍යාසය config.register_email_confirm=ලියාපදිංචි වීමට විද්යුත් තැපැල් තහවුරු කිරීම අවශ්ය වේ config.disable_register=ස්වයං ලියාපදිංචිය අක්රීය කරන්න @@ -2189,14 +2109,6 @@ config.queue_length=පෝලිම් දිග config.deliver_timeout=කාලය ගලවාගන්න config.skip_tls_verify=TLS සත්යාපනය මඟ හරින්න -config.mailer_enabled=සබල කර ඇත -config.mailer_name=නම -config.mailer_smtp_port=ප්රශ්නය විසඳිලා වරාය -config.mailer_user=පරිශීලක -config.mailer_use_sendmail=සෙන්ඩ්මේල් භාවිතා කරන්න -config.mailer_sendmail_path=සෙන්ඩ්මේල් මාර්ගය -config.mailer_sendmail_args=Sendmail වෙත අමතර තර්ක -config.mailer_sendmail_timeout=සෙන්ඩ්මේල් වේලාව config.test_email_placeholder=වි-තැපෑල (උදා. පරීක්‍ෂාව@උදාහරණය.ලංකා) config.send_test_mail=අත්හදා බැලීමේ වි-තැපෑල යවන්න @@ -2223,18 +2135,6 @@ config.picture_service=පින්තුරය සේවා config.disable_gravatar=ග්‍රැවටාර් අබල කරන්න config.enable_federated_avatar=ෆෙඩරල් අවතාර් සක්රීය කරන්න -config.git_config=ගිට් වින්‍යාසය -config.git_disable_diff_highlight=ඩිෆ් සයින්ටැක්ස් ඉස්මතු කරන්න අක්රීය කරන්න -config.git_max_diff_lines=මැක්ස් ඩිෆ් ලයින්ස් (තනි ගොනුවක් සඳහා) -config.git_max_diff_line_characters=මැක්ස් ඩිෆ් චරිත (තනි රේඛාවක් සඳහා) -config.git_max_diff_files=මැක්ස් ඩිෆ් ගොනු (පෙන්වීමට) -config.git_gc_args=GC තර්ක -config.git_migrate_timeout=සංක්රමණ කාලය -config.git_mirror_timeout=මිරර් යාවත්කාලීන වේලාව -config.git_clone_timeout=පරිගණක ක්රිඩාවට සමාන මෙහෙයුම් කාලය -config.git_pull_timeout=මෙහෙයුම කාල ඉමුද අදින්න -config.git_gc_timeout=GC මෙහෙයුම කාලය - config.log_config=ලොග් වින්යාසය config.disabled_logger=අබල කර ඇත config.access_log_mode=ප්රවේශ ලොග් ප්රකාරය diff --git a/options/locale/locale_sk-SK.ini b/options/locale/locale_sk-SK.ini index 829d8eaffe..39c85fd2ed 100644 --- a/options/locale/locale_sk-SK.ini +++ b/options/locale/locale_sk-SK.ini @@ -1309,16 +1309,7 @@ teams.all_repositories_helper=Tím má prístup ku všetkým repozitárom. Výbe repositories=Repozitáre hooks=Webhooky -dashboard.delete_generated_repository_avatars=Odstrániť vygenerované avatary repozitárov - - - - -repos.owner=Vlastník repos.private=Súkromný -packages.owner=Vlastník -packages.repository=Repozitár - defaulthooks=Defaultné webhooky defaulthooks.add_webhook=Pridať defaultný webhook defaulthooks.update_webhook=Aktualizovať defaultný webhook @@ -1332,8 +1323,6 @@ auths.oauth2_tokenURL=Token URL config.app_ver=Verzia Forgejo config.app_url=Základná URL Forgejo -config.ssh_enabled=Povolené - config.lfs_enabled=Povolené @@ -1341,9 +1330,6 @@ config.default_keep_email_private=Skrývanie e-mail adries ako predvolené config.webhook_config=Nastavenie webhooku -config.mailer_enabled=Povolené -config.mailer_enable_helo=Povolené HELO - config.oauth_enabled=Povolené diff --git a/options/locale/locale_sl.ini b/options/locale/locale_sl.ini index ca991b53b4..feb24727a3 100644 --- a/options/locale/locale_sl.ini +++ b/options/locale/locale_sl.ini @@ -227,21 +227,10 @@ users.purge_help = Prisilno izbrišite uporabnika in vsa skladišča, organizaci auths.restricted_filter_helper = Pustite prazno, če ne želite nastaviti nobenega uporabnika kot omejenega. Uporabite zvezdico ("*"), če želite vse uporabnike, ki se ne ujemajo z administratorskim filtrom, nastaviti kot omejene. auths.tip.twitter = Pojdite na %s, ustvarite aplikacijo in preverite, ali je omogočena možnost "Allow this application to be used to Sign in with Twitter" auths.tip.yandex = Ustvarite novo aplikacijo na spletnem mestu %s. V razdelku "Yandex.Passport API" izberite naslednja dovoljenja: "Dostop do e-poštnega naslova", "Dostop do avatarja uporabnika" in "Dostop do uporabniškega imena, imena in priimka, spola" -config.git_migrate_timeout = Časovna omejitev migracije -config.git_gc_args = Argumenti GC -config.git_max_diff_files = Prikazane največje razlike v datotekah notices.system_notice_list = Sistemska obvestila monitor.cron = Opravila Cron config.access_log_template = Predloga dnevnika dostopa config.access_log_mode = Način beleženja dostopa -config.git_gc_timeout = GC Časovni rok delovanja -config.git_pull_timeout = Potegnite Časovni rok delovanja -config.git_clone_timeout = Časovni limit operacije kloniranja -config.git_mirror_timeout = Časovna omejitev posodobitve zrcala -config.git_max_diff_lines = Največ razlikovalnih vrstic na datoteko -config.git_disable_diff_highlight = Onemogočite razlikovanje sintakse -config.git_config = Konfiguracija Git -config.git_max_diff_line_characters = Največ različnih znakov na vrstico notices.view_detail_header = Podrobnosti obvestila config.log_config = Konfiguracija dnevnika config.allow_dots_in_usernames = Uporabnikom dovolite uporabo pik v uporabniških imenih. Ne vpliva na obstoječe račune. diff --git a/options/locale/locale_sr-SP.ini b/options/locale/locale_sr-SP.ini index 7e2fea2e88..56276a5529 100644 --- a/options/locale/locale_sr-SP.ini +++ b/options/locale/locale_sr-SP.ini @@ -546,29 +546,12 @@ first_page=Први last_page=Последњи total=Укупно: %d -dashboard.operation_name=Име операције -dashboard.operation_switch=Пребаци -dashboard.operation_run=Покрени -users.activated=Активиран -users.admin=Администратор -users.repos=репоси -users.created=Креирано users.edit=Уреди users.auth_source=Извор аутентикације users.local=Локално -orgs.name=Име -orgs.teams=Тимови -orgs.members=Чланови - -repos.owner=Власник -repos.name=Име repos.private=Приватно -repos.issues=Задаци - - - auths.name=Име auths.type=Тип auths.enabled=Омогућено @@ -599,23 +582,6 @@ config.repo_root_path=Пут до корена репозиторијума config.script_type=Врста скрипта config.reverse_auth_user=Корисничко име за обрнуту аутентикацију (reverse proxy) -config.ssh_config=ССХ конфигурација -config.ssh_enabled=Активирано -config.ssh_port=Порт -config.ssh_listen_port=Порт за слушање -config.ssh_root_path=Основни пут -config.ssh_key_test_path=Пут до кључа -config.ssh_keygen_path=Пут до генератора кључева ('ssh-keygen') -config.ssh_minimum_key_size_check=Провера минималне величине кључа -config.ssh_minimum_key_sizes=Минимална величина кључа - - -config.db_config=Конфигурација базе података -config.db_type=Тип -config.db_host=Хост -config.db_name=Име -config.db_path=Пут - config.service_config=Подешавања сервиса config.show_registration_button=Прикажи дугме за регистрацију config.active_code_lives=Дужина трајанја активацијског кода @@ -624,10 +590,6 @@ config.webhook_config=Подешавања Webhook config.queue_length=Дужина реда config.deliver_timeout=Време до отказивање слања -config.mailer_enabled=Омогућено -config.mailer_name=Име -config.mailer_user=Корисник - config.oauth_config=Подешавања OAuth config.oauth_enabled=Укључено @@ -649,18 +611,6 @@ config.picture_service=Услуга за слике config.disable_gravatar=Онемогући Gravatar config.enable_federated_avatar=Омогући Federated Avatars -config.git_config=Git конфигурација -config.git_disable_diff_highlight=Онемогући бојење синтаксе када гледате разлике -config.git_max_diff_lines=Максималан број редова с разликама по фајлу -config.git_max_diff_line_characters=Максималан број карактера с разликама по реду -config.git_max_diff_files=Максималан број измењених датотека (приказаних) -config.git_gc_args=Аргументи cкупљања смећа (GC) -config.git_migrate_timeout=Време до отказања миграције -config.git_mirror_timeout=Време до отазање синхронизацији огледала -config.git_clone_timeout=Време до отказивања клонирањем -config.git_pull_timeout=Време до отказивања pull операцији -config.git_gc_timeout=Време до отказивања cакупљање смећа - config.log_config=Kонфигурација журнала monitor.cron=Cron задаци monitor.name=Име diff --git a/options/locale/locale_sv-SE.ini b/options/locale/locale_sv-SE.ini index d786a17f0f..6d1f050a5d 100644 --- a/options/locale/locale_sv-SE.ini +++ b/options/locale/locale_sv-SE.ini @@ -2864,30 +2864,11 @@ first_page=Första last_page=Sista total=Totalt: %d -dashboard.statistic=Översikt -dashboard.operations=Operationer för underhåll -dashboard.system_status=Systemstatus -dashboard.operation_name=Operationsnamn -dashboard.operation_switch=Byt till -dashboard.operation_run=Kör dashboard.clean_unbind_oauth=Rena obundna OAuth anslutningar dashboard.clean_unbind_oauth_success=Alla obundna OAuth anslutningar har raderats. dashboard.delete_missing_repos=Ta bort alla kodförråd som saknar filer specifika för Git -dashboard.delete_generated_repository_avatars=Ta bort genererade profilbilder för kodförrådet -dashboard.git_gc_repos=Rensa skräpfiler i samtliga kodförråd -dashboard.resync_all_hooks=Återsynkronisera pre-receive-, update- och post-receive-krokar för alla kodförråd -dashboard.reinit_missing_repos=Återinitialisera alla saknade kodförråd för vilka det finns poster -dashboard.sync_external_users=Synkronisera extern användardata users.user_manage_panel=Hantera användarkonton users.new_account=Skapa användarkonto -users.name=Användarnamn -users.full_name=Fullständigt namn -users.activated=Aktiverad -users.admin=Administratör -users.repos=Kodförråd -users.created=Skapad -users.last_login=Senaste inloggning -users.never_login=Aldrig loggat in users.send_register_notify=Meddela om registrering via e-post users.edit=Redigera users.auth_source=Autentiseringskälla @@ -2917,25 +2898,8 @@ emails.filter_sort.name=Användarnamn emails.filter_sort.name_reverse=Användarnamn (omvänt) orgs.org_manage_panel=Hantera organisationer -orgs.name=Namn -orgs.teams=Team -orgs.members=Medlemmar -orgs.new_orga=Ny organisation - repos.repo_manage_panel=Hantera kodförråd -repos.owner=Ägare -repos.name=Namn repos.private=Privat -repos.issues=Ärenden -repos.size=Storlek - -packages.owner=Ägare -packages.name=Namn -packages.type=Typ -packages.repository=Kodförråd -packages.size=Storlek - - systemhooks=Systemwebbkrokar auths.auth_manage_panel=Hantera autentiseringkällor @@ -3013,35 +2977,14 @@ config.offline_mode=Lokalt läge config.disable_router_log=Inaktivera routerloggning config.run_user=Användare att köra som config.run_mode=Exekveringsläge -config.git_version=Git-version config.repo_root_path=Rotsökväg för kodförråd config.lfs_root_path=LFS rotsökväg config.log_file_root_path=Sökväg för loggar config.script_type=Skripttyp config.reverse_auth_user=Autentiseringsanvändare för omvänd proxy -config.ssh_config=SSH-konfiguration -config.ssh_enabled=Aktiverad -config.ssh_start_builtin_server=Använd inbyggd server -config.ssh_port=Port -config.ssh_listen_port=Lyssningsport -config.ssh_root_path=Rotsökväg -config.ssh_key_test_path=Testsökväg för nyckel -config.ssh_keygen_path=Sökväg för nyckelgenerator ("ssh-keygen") -config.ssh_minimum_key_size_check=Kontroll av minsta tillåtna nyckelstorlek -config.ssh_minimum_key_sizes=Minsta tillåtna nyckelstorlek - config.lfs_enabled=Aktiverad -config.db_config=Databaskonfiguration -config.db_type=Typ -config.db_host=Värd -config.db_name=Namn -config.db_user=Användarnamn -config.db_schema=Schema -config.db_ssl_mode=SSL -config.db_path=Sökväg - config.service_config=Tjänstkonfiguration config.register_email_confirm=Kräv e-postbekräftelse för att registrera config.disable_register=Inaktivera självregistrering @@ -3064,13 +3007,6 @@ config.queue_length=Kölängd config.deliver_timeout=Tidsfrist för leverans config.skip_tls_verify=Skippa TLS-verifiering -config.mailer_enabled=Aktiverad -config.mailer_name=Namn -config.mailer_smtp_port=SMTP-port -config.mailer_user=Användare -config.mailer_use_sendmail=Använd Sendmail -config.mailer_sendmail_path=Sökväg för sendmail -config.mailer_sendmail_args=Extra argument till sendmail config.send_test_mail=Skicka testmeddelande config.oauth_config=OAuth-konfiguration @@ -3095,18 +3031,6 @@ config.picture_service=Bildtjänst config.disable_gravatar=Inaktivera Gravatar config.enable_federated_avatar=Aktivera federerade avatarer -config.git_config=Git-konfiguration -config.git_disable_diff_highlight=Inaktivera syntaxmarkering i diffar -config.git_max_diff_lines=Maximalt antal diff-rader per fil -config.git_max_diff_line_characters=Maximalt antal diff-karaktärer per rad -config.git_max_diff_files=Maximalt antal diff-filer att visa -config.git_gc_args=Skräpsamlarargument -config.git_migrate_timeout=Migreringstimeout -config.git_mirror_timeout=Tidsfrist för spegeluppdatering -config.git_clone_timeout=Tidsfrist för kloning -config.git_pull_timeout=Tidsfrist för dragning -config.git_gc_timeout=Tidsfrist för skräpsamling - config.log_config=Loggkonfiguration config.disabled_logger=Inaktiverad config.xorm_log_sql=Logga SQL @@ -3137,19 +3061,12 @@ notices.type_2=Uppgift notices.desc=Beskrivning notices.op=Op. notices.delete_success=Systemnotifikationer har blivit raderade. -users.2fa = 2FA -users.reserved = Reserverad self_check.database_fix_mysql = För MySQL/MariaDB-användare så kan du använda kommandot ”forgejo doctor convert” för att åtgärda problemet med kollateringen, eller så kan du åtgärda det genom att manuellt använda SQL "ALTER ... COLLATE ...". -users.bot = Bott -users.remote = Fjärråtkomst users.restricted.description = Tillåt endast interaktion med kodförråd och organisationer där den här användaren finns tillagd som medarbetare. Det förhindrar tillgång till allmänna kodförråd i den här instansen. users.is_restricted = Begränsat konto self_check.database_inconsistent_collation_columns = Databasen använder kollateringen %s, men de här kolumner använder felanpassade kollateringar. Det kan komma att orsaka oväntade problem. hooks = webbkrokar integrations = Integrationer -packages.creator = Skapare -packages.version = Version -config.mailer_protocol = Protokoll config.send_test_mail_submit = Skicka monitor.stats = Statistik monitor.last_execution_result = Resultat @@ -3168,49 +3085,9 @@ identity_access = Identitet & åtkomst assets = Kodtillgångar emails = Användares e-post config_summary = Sammanfattning -dashboard.new_version_hint = Forgejo %s är nu tillgänglig, du kör %s. Se bloggen för mer detaljer. -dashboard.task.started = Startade uppgift: %[1]s -dashboard.task.process = Uppgift: %[1]s -dashboard.task.cancelled = Uppgift: %[1]s avbruten: %[3]s -dashboard.task.error = Fel i uppgift: %[1]s: %[3]s -dashboard.task.finished = Uppgift: %[1]s startad av %[2]s har slutförts -dashboard.task.unknown = Okänd uppgift: %[1]s -dashboard.cron.started = Startade Cron: %[1]s -dashboard.cron.process = Cron: %[1]s -dashboard.cron.cancelled = Cron: %[1]s avbruten: %[3]s -dashboard.cron.error = Fel i Cron: %s: %[3]s -dashboard.cron.finished = Cron: %[1]s har slutförts dashboard.delete_inactive_accounts = Radera alla oaktiverade konton -dashboard.delete_inactive_accounts.started = Uppgift att radera alla oaktiverade konton startad. dashboard.delete_repo_archives = Radera alla kodförrådsarkiv (ZIP, TAR.GZ, osv.) -dashboard.delete_repo_archives.started = Uppgift att radera alla kodförrådsarkiv startad. -dashboard.delete_missing_repos.started = Uppgift att radera alla kodförråd som saknar Git-filer startad. -dashboard.sync_repo_branches = Synkronisera saknade grenar från Git-data till databas -dashboard.sync_repo_tags = Synkronisera taggar från Git-data till databas -dashboard.update_mirrors = Uppdatera speglar -dashboard.repo_health_check = Hälsokontrollera alla kodförråd -dashboard.check_repo_stats = Kontrollera all kodförrådsstatistik -dashboard.archive_cleanup = Radera gamla kodförrådsarkiv -dashboard.deleted_branches_cleanup = Städa raderade grenar -dashboard.update_migration_poster_id = Uppdatera migrationsuppläggares ID:n -dashboard.resync_all_sshkeys = Uppdatera filen ".ssh/authorized_keys" med Forgejo SSH-nycklar. -dashboard.resync_all_sshprincipals = Uppdatera filen ".ssh/authorized_principals" med Forgejo SSH-certifikatnamn. -dashboard.cleanup_hook_task_table = Städa hook_task-tabellen -dashboard.cleanup_packages = Städa utgångna paket -dashboard.cleanup_actions = Städa utgångna loggar och artefakter från actions dashboard.delete_old_actions = Radera alla gamla aktiviteter från databasen -dashboard.delete_old_actions.started = Radering av alla gamla aktiviteter från databasen startad. -dashboard.update_checker = Uppdateringskontroll -dashboard.delete_old_system_notices = Radera alla gamla systemmeddelanden från databasen -dashboard.gc_lfs = Skräpsamla LFS-metaobjekt -dashboard.stop_zombie_tasks = Stoppa zombie actions-uppgifter -dashboard.stop_endless_tasks = Stoppa oändliga actions-uppgifter -dashboard.cancel_abandoned_jobs = Avbryt övergivna actions-jobb -dashboard.start_schedule_tasks = Starta schemalagda actions-uppgifter -dashboard.sync_branch.started = Grensynkronisering startad -dashboard.sync_tag.started = Taggsynkronisering startad -dashboard.rebuild_issue_indexer = Återuppbygg ärendeindexerare -users.restricted = Begränsad users.new_success = Användarkontot "%s" har skapats. users.activated.description = Slutförande av e-postverifiering. Ägaren av ett oaktiverat konto kommer inte kunna logga in förrän e-postverifieringen är slutförd. users.block.description = Blockera den här användare från att interagera med den här tjänst genom deras konto och förbjud inloggning. @@ -3234,12 +3111,8 @@ emails.deletion_success = E-postadressen har raderats. emails.delete_primary_email_error = Du kan inte radera den primära e-postadressen. repos.unadopted = Oadopterade kodförråd repos.unadopted.no_more = Inga oadopterade kodförråd hittades. -repos.lfs_size = LFS-storlek -packages.total_size = Total storlek: %s -packages.unreferenced_size = Orefererad storlek: %s packages.cleanup = Städa utgången data packages.cleanup.success = Städade utgången data framgångsrikt -packages.published = Publicerad defaulthooks = Standardwebbkrokar defaulthooks.desc = Webbkrokar gör automatiskt HTTP POST-förfrågningar till en server när vissa Forgejo-händelser utlöses. Webbkrokar definierade här är standard och kopieras till alla nya kodförråd. Läs mer i webbkroksguiden. defaulthooks.add_webhook = Lägg till standardwebbkrok @@ -3290,7 +3163,6 @@ auths.invalid_openIdConnectAutoDiscoveryURL = Ogiltig Auto Discovery-URL (det h config.app_slogan = Instansslogan config.custom_file_root_path = Anpassad filrotsökväg config.app_data_path = Sökväg för appdata -config.ssh_domain = SSH-serverdomän config.lfs_content_path = Sökväg för LFS-innehåll config.lfs_http_auth_expiry = Utgångstid för LFS HTTP-autentisering config.allow_only_internal_registration = Tillåt registrering endast genom Forgejo @@ -3299,11 +3171,6 @@ config.reset_password_code_lives = Utgångstid för återställningskod config.allow_dots_in_usernames = Tillåt användare att använda punkter i sina användarnamn. Påverkar inte befintliga konton. config.default_visibility_organization = Standardsynlighet för nya organisationer config.default_enable_dependencies = Aktivera ärendeberoenden som standard -config.mailer_config = E-postkonfiguration -config.mailer_enable_helo = Aktivera HELO -config.mailer_smtp_addr = SMTP-värd -config.mailer_sendmail_timeout = Sendmail-tidsgräns -config.mailer_use_dummy = Dummy config.test_email_placeholder = E-post (t.ex. test@example.com) config.test_mail_failed = Det gick inte att skicka testmeddelande till "%s": %v config.test_mail_sent = Ett testmeddelande har skickats till "%s". diff --git a/options/locale/locale_ta.ini b/options/locale/locale_ta.ini index 8801c32888..f70f305e53 100644 --- a/options/locale/locale_ta.ini +++ b/options/locale/locale_ta.ini @@ -371,10 +371,10 @@ hint_login = ஏற்கனவே கணக்கு உள்ளதா? இப்போதே பதிவு செய்யவும். sign_up_button = இப்போதே பதிவு செய்யுங்கள். sign_up_successful = கணக்கு வெற்றிகரமாக உருவாக்கப்பட்டது. வருக! -confirmation_mail_sent_prompt = ஒரு புதிய உறுதிப்படுத்தல் மின்னஞ்சல் %sக்கு அனுப்பப்பட்டது. பதிவு செயல்முறையை முடிக்க, உங்கள் இன்பாக்சைச் சரிபார்த்து, அடுத்த %s க்குள் வழங்கப்பட்ட இணைப்பைப் பின்தொடரவும். மின்னஞ்சல் தவறாக இருந்தால், நீங்கள் உள்நுழைந்து மற்றொரு உறுதிப்படுத்தல் மின்னஞ்சலை வேறு முகவரிக்கு அனுப்புமாறு கோரலாம். +confirmation_mail_sent_prompt = ஒரு புதிய உறுதிப்படுத்தல் மின்னஞ்சல் %s க்கு அனுப்பப்பட்டது. பதிவுச் செயல்முறையை முடிக்க, உங்கள் இன்பாக்சைச் சரிபார்த்து, அடுத்த %s க்குள் வழங்கப்பட்ட இணைப்பைப் பின்தொடரவும். மின்னஞ்சல் தவறாக இருந்தால், நீங்கள் உள்நுழைந்து மற்றொரு உறுதிப்படுத்தல் மின்னஞ்சலை வேறு முகவரிக்கு அனுப்புமாறு கோரலாம். must_change_password = உங்கள் கடவுச்சொல்லை புதுப்பிக்கவும் allow_password_change = கடவுச்சொல்லை மாற்ற பயனர் தேவை (பரிந்துரைக்கப்படுகிறது) -reset_password_mail_sent_prompt = உறுதிப்படுத்தல் மின்னஞ்சல் %sக்கு அனுப்பப்பட்டது. கணக்கு மீட்டெடுப்பு செயல்முறையை முடிக்க, உங்கள் இன்பாக்சைச் சரிபார்த்து, அடுத்த %sக்குள் வழங்கப்பட்ட இணைப்பைப் பின்தொடரவும். +reset_password_mail_sent_prompt = உறுதிப்படுத்தல் மின்னஞ்சல் %s க்கு அனுப்பப்பட்டது. கணக்கு மீட்டெடுப்பு செயல்முறையை முடிக்க, உங்கள் இன்பாக்சைச் சரிபார்த்து, அடுத்த %s க்குள் வழங்கப்பட்ட இணைப்பைப் பின்தொடரவும். active_your_account = உங்கள் கணக்கை இயக்கவும் account_activated = கணக்கு செயல்படுத்தப்பட்டது prohibit_login = கணக்கு இடைநிறுத்தப்பட்டுள்ளது @@ -441,9 +441,9 @@ link_not_working_do_paste = இணைப்பு வேலை செய்ய hi_user_x = வணக்கம் %s, activate_account = உங்கள் கணக்கை இயக்கவும் activate_account.text_1 = வணக்கம் %[1]s, %[2]s இல் பதிவு செய்ததற்கு நன்றி! -activate_account.text_2 = %sக்குள் உங்கள் கணக்கைச் செயல்படுத்த, பின்வரும் இணைப்பைக் சொடுக்கு செய்யவும்: +activate_account.text_2 = %s க்குள் உங்கள் கணக்கைச் செயல்படுத்த, பின்வரும் இணைப்பைக் சொடுக்கு செய்யவும்: activate_email = உங்கள் மின்னஞ்சல் முகவரியைச் சரிபார்க்கவும் -activate_email.text = %sக்குள் உங்கள் மின்னஞ்சல் முகவரியைச் சரிபார்க்க பின்வரும் இணைப்பைக் சொடுக்கு செய்யவும்: +activate_email.text = %s க்குள் உங்கள் மின்னஞ்சல் முகவரியைச் சரிபார்க்க பின்வரும் இணைப்பைக் சொடுக்கு செய்யவும்: admin.new_user.subject = புதிய பயனர் %s இப்போது பதிவு செய்துள்ளார் admin.new_user.user_info = பயனர் செய்தி admin.new_user.text = நிர்வாகி குழுவிலிருந்து இந்தப் பயனரை நிர்வகிக்க இங்கே சொடுக்கு செய்யவும். @@ -452,7 +452,7 @@ register_notify.text_1 = இது %sக்கான உங்கள் பத register_notify.text_2 = உங்கள் பயனர்பெயரைப் பயன்படுத்தி உங்கள் கணக்கில் உள்நுழைய முடியாது: %is register_notify.text_3 = உங்களுக்காக வேறு யாராவது இந்தக் கணக்கை உருவாக்கினால், முதலில் நீங்கள் உங்கள் கடவுச்சொல்லை அமைக்க வேண்டும். reset_password = உங்கள் கணக்கை மீட்டெடுக்கவும் -reset_password.text = இது நீங்கள் என்றால், %sக்குள் உங்கள் கணக்கை மீட்டெடுக்க பின்வரும் இணைப்பைக் சொடுக்கு செய்யவும்: +reset_password.text = இது நீங்கள் என்றால், %s க்குள் உங்கள் கணக்கை மீட்டெடுக்க பின்வரும் இணைப்பைக் சொடுக்கு செய்யவும்: password_change.subject = உங்கள் கடவுச்சொல் மாற்றப்பட்டுள்ளது password_change.text_1 = உங்கள் கணக்கிற்கான கடவுச்சொல் இப்போது மாற்றப்பட்டது. primary_mail_change.subject = உங்கள் முதன்மை அஞ்சல் மாற்றப்பட்டது @@ -635,11 +635,11 @@ email_visibility.limited = உங்கள் மின்னஞ்சல் ம show_on_map = இந்த இடத்தை வரைபடத்தில் காட்டு settings = பயனர் அமைப்புகள் disabled_public_activity = இந்தப் பயனர் செயல்பாட்டின் பொதுத் தெரிவுநிலையை முடக்கியுள்ளார். -public_activity.visibility_hint.self_public = உங்கள் செயல்பாடு, தனிப்பட்ட ச்பேச்களில் தொடர்புகளைத் தவிர, அனைவருக்கும் தெரியும். கட்டமைக்கவும். +public_activity.visibility_hint.self_public = உங்கள் செயல்பாடு, தனிப்பட்ட ச்பேச்களில் தொடர்புகளைத் தவிர, அனைவருக்கும் தெரியும். கட்டமை. public_activity.visibility_hint.admin_public = இந்தச் செயல்பாடு அனைவருக்கும் தெரியும், ஆனால் ஒரு நிர்வாகியாக நீங்கள் தனிப்பட்ட இடங்களிலும் தொடர்புகளைப் பார்க்கலாம். -public_activity.visibility_hint.self_private = உங்கள் செயல்பாடு உங்களுக்கும் நிகழ்வு நிர்வாகிகளுக்கும் மட்டுமே தெரியும். கட்டமைக்கவும். +public_activity.visibility_hint.self_private = உங்கள் செயல்பாடு உங்களுக்கும் நிகழ்வு நிர்வாகிகளுக்கும் மட்டுமே தெரியும். கட்டமை. public_activity.visibility_hint.admin_private = நீங்கள் நிர்வாகியாக இருப்பதால் இந்தச் செயல்பாடு உங்களுக்குத் தெரியும், ஆனால் இது தனிப்பட்டதாக இருக்க வேண்டும் என்று பயனர் விரும்புகிறார். -public_activity.visibility_hint.self_private_profile = உங்கள் சுயவிவரம் தனிப்பட்டதாக இருப்பதால், உங்கள் செயல்பாடு உங்களுக்கும் நிகழ்வு நிர்வாகிகளுக்கும் மட்டுமே தெரியும். கட்டமைக்கவும். +public_activity.visibility_hint.self_private_profile = உங்கள் சுயவிவரம் தனிப்பட்டதாக இருப்பதால், உங்கள் செயல்பாடு உங்களுக்கும் நிகழ்வு நிர்வாகிகளுக்கும் மட்டுமே தெரியும். கட்டமை. form.name_reserved = பயனர் பெயர் "%s" ஒதுக்கப்பட்டுள்ளது. form.name_pattern_not_allowed = பயனர்பெயரில் "%s" முறை அனுமதிக்கப்படவில்லை. form.name_chars_not_allowed = "%s" என்ற பயனர் பெயர் தவறான எழுத்துகளைக் கொண்டுள்ளது. @@ -859,7 +859,7 @@ select_permissions = அனுமதிகளைத் தேர்ந்தெ permission_no_access = அணுகல் இல்லை permission_read = படிக்கவும் permission_write = படிக்கவும் எழுதவும் -access_token_desc = தேர்ந்தெடுக்கப்பட்ட கிள்ளாக்கு அனுமதிகள் தொடர்புடைய API வழிகளுக்கு மட்டுமே அங்கீகாரத்தை வரம்பிடுகின்றன. மேலும் தகவலுக்கு ஆவணத்தைப் படிக்கவும். +access_token_desc = தேர்ந்தெடுக்கப்பட்ட கிள்ளாக்கு அனுமதிகள் தொடர்புடைய பநிஇ வழிகளுக்கு மட்டுமே அங்கீகாரத்தை வரம்பிடுகின்றன. மேலும் தகவலுக்கு ஆவணத்தைப் படிக்கவும். at_least_one_permission = கிள்ளாக்கை உருவாக்க குறைந்தபட்சம் ஒரு அனுமதியைத் தேர்ந்தெடுக்க வேண்டும் permissions_list = அனுமதிகள்: manage_oauth2_applications = OAuth2 பயன்பாடுகளை நிர்வகிக்கவும் @@ -924,7 +924,7 @@ orgs_none = நீங்கள் எந்த நிறுவனத்தில repos_none = உங்களிடம் எந்த களஞ்சியங்களும் இல்லை. blocked_users_none = தடுக்கப்பட்ட பயனர்கள் யாரும் இல்லை. delete_account = உங்கள் கணக்கை நீக்கவும் -delete_prompt = இந்த செயல்பாடு உங்கள் பயனர் கணக்கை நிரந்தரமாக நீக்கிவிடும். அதை தவிர்க்க முடியாது. +delete_prompt = இந்தச் செயல்பாடு உங்கள் பயனர் கணக்கை நிரந்தரமாக நீக்கிவிடும். அதை தவிர்க்க முடியாது. delete_with_all_comments = உங்கள் கணக்கு %s ஐ விட சிறியது. பேய் கருத்துகளைத் தவிர்க்க, அனைத்து சிக்கல்/PR கருத்துகளும் அதனுடன் நீக்கப்படும். confirm_delete_account = நீக்குவதை உறுதிப்படுத்தவும் delete_account_title = பயனர் கணக்கை நீக்கவும் @@ -971,7 +971,7 @@ admin.enabled_flags = களஞ்சியத்திற்காக கொட admin.update_flags = கொடிகளைப் புதுப்பிக்கவும் admin.failed_to_replace_flags = களஞ்சியக் கொடிகளை மாற்றுவதில் தோல்வி admin.flags_replaced = களஞ்சியக் கொடிகள் மாற்றப்பட்டன -new_repo_helper = ஒரு களஞ்சியத்தில் மறுபார்வை வரலாறு உட்பட அனைத்து திட்ட கோப்புகளும் உள்ளன. ஏற்கனவே வேறொரு இடத்தில் புரவலன் செய்கிறீர்களா? இடம்பெயர்வு களஞ்சியத்தை. +new_repo_helper = ஒரு களஞ்சியத்தில் மறுபார்வை வரலாறு உட்பட அனைத்து திட்டக் கோப்புகளும் உள்ளன. ஏற்கனவே வேறொரு இடத்தில் புரவலன் செய்கிறீர்களா? இடம்பெயர்வு களஞ்சியத்தை. new_from_template = ஒரு டெம்ப்ளேட்டைப் பயன்படுத்தவும் new_from_template_description = இந்த நிகழ்வில் ஏற்கனவே உள்ள களஞ்சிய டெம்ப்ளேட்டைத் தேர்ந்தெடுத்து அதன் அமைப்புகளைப் பயன்படுத்தலாம். new_advanced = மேம்பட்ட அமைப்புகள் @@ -1013,7 +1013,7 @@ issue_labels = சிட்டைகள் issue_labels_helper = சிட்டை தொகுப்பைத் தேர்ந்தெடுக்கவும் license = உரிமம் license_helper = உரிமக் கோப்பைத் தேர்ந்தெடுக்கவும் -license_helper_desc = உங்கள் குறியீட்டைக் கொண்டு மற்றவர்கள் என்ன செய்ய முடியும் மற்றும் செய்யக்கூடாது என்பதை உரிமம் நிர்வகிக்கிறது. உங்கள் திட்டத்திற்கு எது சரியானது என்று உறுதியாக தெரியவில்லையா? உரிமத்தைத் தேர்ந்தெடு என்பதைப் பார்க்கவும். +license_helper_desc = உங்கள் குறியீட்டைக் கொண்டு மற்றவர்கள் என்ன செய்ய முடியும் மற்றும் செய்யக் கூடாது என்பதை உரிமம் நிர்வகிக்கிறது. உங்கள் திட்டத்திற்கு எது சரியானது என்று உறுதியாகத் தெரியவில்லையா? உரிமத்தைத் தேர்ந்தெடு என்பதைப் பார்க்கவும். object_format = பொருள் வடிவம் object_format_helper = களஞ்சியத்தின் பொருள் வடிவம். பின்னர் மாற்ற முடியாது. SHA1 மிகவும் இணக்கமானது. readme = README @@ -1064,7 +1064,7 @@ delete_preexisting = ஏற்கனவே உள்ள கோப்புகள delete_preexisting_content = %s இல் கோப்புகளை நீக்கவும் delete_preexisting_success = %s இல் ஏற்றுக்கொள்ளப்படாத கோப்புகள் நீக்கப்பட்டன blame_prior = இந்த மாற்றத்திற்கு முன் பழியைப் பார்க்கவும் -blame.ignore_revs = .git-blame-ignore-revs இல் திருத்தங்களைப் புறக்கணிக்கிறது. புறக்கணிக்க இங்கே சொடுக்கு செய்து சாதாரண பழி பார்வையைப் பார்க்கவும். +blame.ignore_revs = .git-blame-ignore-revs இல் திருத்தங்களைப் புறக்கணிக்கிறது. புறக்கணிக்க இங்கே சொடுக்கு செய்து சாதாரண பழி பார்வையைப் பார். blame.ignore_revs.failed = .git-blame-ignore-revs இல் திருத்தங்களை புறக்கணிக்க முடியவில்லை. author_search_tooltip = அதிகபட்சம் 30 பயனர்களைக் காட்டுகிறது summary_card_alt = %s களஞ்சியத்தின் சுருக்க அட்டை @@ -1542,7 +1542,7 @@ issues.label_exclusive = பிரத்தியேகமானது issues.label_archive = காப்பக சிட்டை issues.label_archived_filter = காப்பகப்படுத்தப்பட்ட லேபிள்களைக் காட்டு issues.label_archive_tooltip = காப்பகப்படுத்தப்பட்ட லேபிள்கள் சிட்டை மூலம் தேடும் போது பரிந்துரைகளில் இருந்து இயல்பாக விலக்கப்படும். -issues.label_exclusive_desc = மற்ற scope/ லேபிள்களுடன் இருவழி பிரத்தியேகமாக இருக்க லேபிளுக்கு scope/item என்று பெயரிடவும். +issues.label_exclusive_desc = மற்ற scope/ லேபிள்களுடன் இருவழி பிரத்தியேகமாக இருக்க சிட்டைக்கு scope/item என்று பெயரிடவும். issues.label_exclusive_warning = சிக்கல் அல்லது கோரிக்கையை இழுக்கும் லேபிள்களைத் திருத்தும்போது முரண்படும் நோக்கமுள்ள லேபிள்கள் அகற்றப்படும். issues.label_count = %d லேபிள்கள் issues.label_open_issues = %d திறந்த சிக்கல்கள்/கோரிக்கைகளை இழுக்கவும் @@ -2178,7 +2178,7 @@ settings.remove_team_success = களஞ்சியத்திற்கான settings.add_webhook = வெப்ஊக்கைச் சேர்க்கவும் settings.add_webhook.invalid_channel_name = Webhook சேனலின் பெயர் காலியாக இருக்கக்கூடாது மேலும் # எழுத்துக்குறி மட்டும் இருக்கக்கூடாது. settings.add_webhook.invalid_path = பாதையில் "" என்ற பகுதி இருக்கக்கூடாது அல்லது ".." அல்லது வெற்று சரம். இது ஒரு சாய்வுடன் தொடங்கவோ முடிக்கவோ முடியாது. -settings.hooks_desc = சில Forgejo நிகழ்வுகள் தூண்டப்படும் போது Webhooks தானாகவே HTTP POST கோரிக்கைகளை சர்வருக்கு செய்யும். webhooks வழிகாட்டியில் மேலும் படிக்கவும். +settings.hooks_desc = சில Forgejo நிகழ்வுகள் தூண்டப்படும்போது Webhooks தானாகவே HTTP POST கோரிக்கைகளைச் சர்வருக்கு செய்யும். webhooks வழிகாட்டியில் மேலும் படிக்கவும். settings.webhook_deletion = வெப்ஊக்கை அகற்று settings.webhook_deletion_desc = வெப்ஊக்கை அகற்றுவது அதன் அமைப்புகளையும் டெலிவரி வரலாற்றையும் நீக்குகிறது. தொடரவா? settings.webhook_deletion_success = வெப்ஊக் அகற்றப்பட்டது. @@ -2307,7 +2307,7 @@ settings.sourcehut_builds.manifest_path = வெளிப்படையான settings.sourcehut_builds.visibility = வேலை தெரிவுநிலை settings.sourcehut_builds.secrets = இரகசியங்கள் settings.sourcehut_builds.secrets_helper = உருவாக்க ரகசியங்களுக்கான வேலை அணுகலை வழங்கவும் (ரகசியங்கள்: ரோ மானியம் தேவை) -settings.sourcehut_builds.access_token_helper = JOBS:RW மானியம் உள்ள அணுகல் கிள்ளாக்கு. ரகசிய அணுகலுடன் builds.sr.ht டோக்கனை அல்லது builds.sr.ht கிள்ளாக்கை உருவாக்கவும்.. +settings.sourcehut_builds.access_token_helper = JOBS:RW மானியமுள்ள அணுகல் கிள்ளாக்கு. ரகசிய அணுகலுடன் builds.sr.ht டோக்கனை அல்லது builds.sr.ht கிள்ளாக்கை உருவாக்கவும்.. settings.deploy_keys = விசைகளை வரிசைப்படுத்து settings.add_deploy_key = வரிசைப்படுத்து விசையைச் சேர்க்கவும் settings.deploy_key_desc = வரிசைப்படுத்து விசைகள் களஞ்சியத்தில் படிக்க மட்டுமே அல்லது படிக்க-எழுத அணுகலைக் கொண்டிருக்கலாம். @@ -2729,7 +2729,7 @@ teams.invite_team_member.list = நிலுவையில் உள்ள அ teams.delete_team_title = குழுவை நீக்கு teams.delete_team_desc = ஒரு குழுவை நீக்குவது அதன் உறுப்பினர்களிடமிருந்து களஞ்சிய அணுகலை ரத்து செய்கிறது. தொடரவா? teams.delete_team_success = அணி நீக்கப்பட்டது. -teams.admin_permission_desc = இந்தக் குழு நிர்வாகி அணுகலை வழங்குகிறது: உறுப்பினர்கள் குழுக் களஞ்சியங்களில் இருந்து படிக்கலாம், தள்ளலாம் மற்றும் கூட்டுப்பணியாளர்களைச் சேர்க்கலாம். +teams.admin_permission_desc = இந்தக் குழு நிர்வாகி அணுகலை வழங்குகிறது: உறுப்பினர்கள் குழுக் களஞ்சியங்களிலிருந்து படிக்கலாம், தள்ளலாம் மற்றும் கூட்டுப்பணியாளர்களைச் சேர்க்கலாம். teams.remove_all_repos_desc = இது அணியிலிருந்து அனைத்து களஞ்சியங்களையும் அகற்றும். teams.add_all_repos_desc = இது அனைத்து அமைப்பின் களஞ்சியங்களையும் குழுவில் சேர்க்கும். teams.add_nonexistent_repo = நீங்கள் சேர்க்க முயற்சிக்கும் களஞ்சியம் இல்லை, முதலில் அதை உருவாக்கவும். @@ -2765,77 +2765,14 @@ first_page = முதலில் last_page = கடைசியாக total = மொத்தம்: %d settings = நிர்வாக அமைப்புகள் -dashboard.new_version_hint = Forgejo %s இப்போது கிடைக்கிறது, நீங்கள் %sஐ இயக்குகிறீர்கள். மேலும் விவரங்களுக்கு வலைப்பதிவை பார்க்கவும். -dashboard.statistic = சுருக்கம் -dashboard.operations = பராமரிப்பு நடவடிக்கைகள் -dashboard.system_status = அமைப்பின் நிலை -dashboard.operation_name = ஆபரேசன் பெயர் -dashboard.operation_switch = ஆளி, நிலைமாறி -dashboard.operation_run = ஓடு dashboard.clean_unbind_oauth = வரம்பற்ற OAuth இணைப்புகளை தூய்மை செய்யவும் dashboard.clean_unbind_oauth_success = அனைத்து வரம்பற்ற OAuth இணைப்புகளும் நீக்கப்பட்டன. -dashboard.task.started = தொடங்கப்பட்ட பணி: %[1]s -dashboard.task.process = பணி: %[1]s -dashboard.task.cancelled = பணி: %[1]s ரத்து செய்யப்பட்டது: %[3]s -dashboard.task.error = பணியில் பிழை: %[1]s: %[3]s -dashboard.task.finished = பணி: %[2]s ஆல் தொடங்கப்பட்ட %[1]s முடிந்தது -dashboard.task.unknown = அறியப்படாத பணி: %[1]s -dashboard.cron.started = தொடங்கப்பட்ட கிரான்: %[1]s -dashboard.cron.process = கிரான்: %[1]s -dashboard.cron.cancelled = கிரான்: %[1]s ரத்து செய்யப்பட்டது: %[3]s -dashboard.cron.error = Cron இல் பிழை: %s: %[3]s -dashboard.cron.finished = கிரான்: %[1]s முடிந்தது dashboard.delete_inactive_accounts = செயல்படுத்தப்படாத அனைத்து கணக்குகளையும் நீக்கவும் -dashboard.delete_inactive_accounts.started = தொடங்கப்பட்ட அனைத்து செயல்படுத்தப்படாத கணக்குகளையும் நீக்கும் பணி. dashboard.delete_repo_archives = அனைத்து களஞ்சியங்களின் காப்பகங்களையும் நீக்கவும் (ZIP, TAR.GZ போன்றவை..) -dashboard.delete_repo_archives.started = அனைத்து களஞ்சிய காப்பகங்களை நீக்கும் பணி தொடங்கப்பட்டது. dashboard.delete_missing_repos = Git கோப்புகள் இல்லாத அனைத்து களஞ்சியங்களையும் நீக்கவும் -dashboard.delete_missing_repos.started = Git கோப்புகள் பணி தொடங்கப்பட்டதில் விடுபட்ட அனைத்து களஞ்சியங்களையும் நீக்கவும். -dashboard.delete_generated_repository_avatars = உருவாக்கப்பட்ட களஞ்சிய அவதாரங்களை நீக்கவும் -dashboard.sync_repo_branches = தவறவிட்ட கிளைகளை Git தரவிலிருந்து தரவுத்தளத்திற்கு ஒத்திசைக்கவும் -dashboard.sync_repo_tags = குறிச்சொற்களை Git தரவிலிருந்து தரவுத்தளத்திற்கு ஒத்திசைக்கவும் -dashboard.update_mirrors = கண்ணாடிகளைப் புதுப்பிக்கவும் -dashboard.repo_health_check = அனைத்து களஞ்சியங்களையும் சுகாதாரம் சரிபார்க்கவும் -dashboard.check_repo_stats = அனைத்து களஞ்சிய புள்ளிவிவரங்களையும் சரிபார்க்கவும் -dashboard.archive_cleanup = பழைய களஞ்சிய காப்பகங்களை நீக்கவும் -dashboard.deleted_branches_cleanup = நீக்கப்பட்ட கிளைகளை தூய்மை செய்யவும் -dashboard.update_migration_poster_id = இடம்பெயர்வு போச்டர் ஐடிகளைப் புதுப்பிக்கவும் -dashboard.git_gc_repos = குப்பைகள் அனைத்து களஞ்சியங்களையும் சேகரிக்கின்றன -dashboard.resync_all_sshkeys = Forgejo பாஓடு விசைகளுடன் ".ssh/authorized_keys" கோப்பைப் புதுப்பிக்கவும். -dashboard.resync_all_sshprincipals = Forgejo பாஓடு முதன்மைகளுடன் ".ssh/authorized_principals" கோப்பைப் புதுப்பிக்கவும். -dashboard.resync_all_hooks = அனைத்து களஞ்சியங்களின் அறிவிலி ஊக்குகளை மீண்டும் ஒத்திசை (முன் பெறுதல், புதுப்பித்தல், பெறப்பட்ட பின் பெறுதல், ...) -dashboard.reinit_missing_repos = பதிவுகள் இருக்கும் அனைத்து விடுபட்ட Git களஞ்சியங்களையும் மீண்டும் துவக்கவும் -dashboard.sync_external_users = வெளிப்புற பயனர் தரவை ஒத்திசைக்கவும் -dashboard.cleanup_hook_task_table = ஊக்_டாச்க் டேபிளை தூய்மை செய்யவும் -dashboard.cleanup_packages = காலாவதியான தொகுப்புகளை தூய்மை செய்யவும் -dashboard.cleanup_actions = செயல்களில் இருந்து காலாவதியான பதிவுகள் மற்றும் கலைப்பொருட்களை தூய்மை செய்யவும் dashboard.delete_old_actions = தரவுத்தளத்திலிருந்து அனைத்து பழைய செயல்பாடுகளையும் நீக்கவும் -dashboard.delete_old_actions.started = தொடங்கப்பட்ட தரவுத்தளத்திலிருந்து அனைத்து பழைய செயல்பாடுகளையும் நீக்கவும். -dashboard.update_checker = புதுப்பிப்பு சரிபார்ப்பு -dashboard.delete_old_system_notices = தரவுத்தளத்திலிருந்து அனைத்து பழைய கணினி அறிவிப்புகளையும் நீக்கவும் -dashboard.gc_lfs = குப்பை LFS மேவு பொருட்களை சேகரிக்கிறது -dashboard.stop_zombie_tasks = சாம்பி செயல் பணிகளை நிறுத்துங்கள் -dashboard.stop_endless_tasks = முடிவற்ற செயல் பணிகளை நிறுத்துங்கள் -dashboard.cancel_abandoned_jobs = கைவிடப்பட்ட செயல்கள் வேலைகளை நீக்கறல் -dashboard.start_schedule_tasks = அட்டவணை செயல் பணிகளைத் தொடங்கவும் -dashboard.sync_branch.started = கிளை ஒத்திசைவு தொடங்கியது -dashboard.sync_tag.started = குறிச்சொல் ஒத்திசைவு தொடங்கியது -dashboard.rebuild_issue_indexer = வெளியீட்டு அட்டவணையை மீண்டும் உருவாக்கவும் users.user_manage_panel = பயனர் கணக்குகளை நிர்வகிக்கவும் users.new_account = பயனர் கணக்கை உருவாக்கவும் -users.name = பயனர் பெயர் -users.full_name = முழுப் பெயர் -users.activated = செயல்படுத்தப்பட்டது -users.admin = நிர்வாகி -users.restricted = கட்டுப்படுத்தப்பட்டது -users.reserved = ஒதுக்கப்பட்டது -users.bot = பாட் -users.remote = ரிமோட் -users.2fa = 2FA -users.repos = பதிவுகள் -users.created = உருவாக்கப்பட்டது -users.last_login = கடைசி உள்நுழைவு -users.never_login = உள்நுழையவில்லை users.send_register_notify = பதிவு பற்றி மின்னஞ்சல் மூலம் தெரிவிக்கவும் users.new_success = பயனர் கணக்கு "%s" உருவாக்கப்பட்டது. users.edit = தொகு @@ -2889,39 +2826,20 @@ emails.delete_desc = இந்த மின்னஞ்சல் முகவர emails.deletion_success = மின்னஞ்சல் முகவரி நீக்கப்பட்டது. emails.delete_primary_email_error = முதன்மை மின்னஞ்சலை நீக்க முடியாது. orgs.org_manage_panel = நிறுவனங்களை நிர்வகிக்கவும் -orgs.name = பெயர் -orgs.teams = அணிகள் -orgs.members = உறுப்பினர்கள் -orgs.new_orga = புதிய அமைப்பு repos.repo_manage_panel = களஞ்சியங்களை நிர்வகிக்கவும் repos.unadopted = ஏற்றுக்கொள்ளப்படாத களஞ்சியங்கள் repos.unadopted.no_more = ஏற்றுக்கொள்ளப்படாத களஞ்சியங்கள் எதுவும் இல்லை. -repos.owner = உரிமையாளர் -repos.name = பெயர் -repos.issues = சிக்கல்கள் -repos.size = அளவு -repos.lfs_size = LFS அளவு packages.package_manage_panel = தொகுப்புகளை நிர்வகிக்கவும் -packages.total_size = மொத்த அளவு: %s -packages.unreferenced_size = குறிப்பிடப்படாத அளவு: %s packages.cleanup = காலாவதியான தரவை தூய்மை செய்யவும் packages.cleanup.success = காலாவதியான தரவு வெற்றிகரமாக தூய்மை செய்யப்பட்டது -packages.owner = உரிமையாளர் -packages.creator = படைப்பாளி -packages.name = பெயர் -packages.version = பதிப்பு -packages.type = வகை -packages.repository = களஞ்சியம் -packages.size = அளவு -packages.published = வெளியிடப்பட்டது defaulthooks = இயல்புநிலை வெப்ஊக்குகள் -defaulthooks.desc = சில Forgejo நிகழ்வுகள் தூண்டப்படும் போது Webhooks தானாகவே HTTP POST கோரிக்கைகளை சர்வருக்கு செய்யும். இங்கே வரையறுக்கப்பட்ட Webhookகள் இயல்புநிலை மற்றும் அனைத்து புதிய களஞ்சியங்களிலும் நகலெடுக்கப்படும். webhooks வழிகாட்டியில் மேலும் படிக்கவும். -defaulthooks.add_webhook = இயல்புநிலை வெப்ஊக்கைச் சேர்க்கவும் -defaulthooks.update_webhook = இயல்புநிலை வெப்ஊக்கைப் புதுப்பிக்கவும் +defaulthooks.desc = சில Forgejo நிகழ்வுகள் தூண்டப்படும்போது Webhooks தானாகவே HTTP POST கோரிக்கைகளைச் சர்வருக்கு செய்யும். இங்கே வரையறுக்கப்பட்ட Webhookகள் இயல்புநிலை மற்றும் அனைத்து புதிய களஞ்சியங்களிலும் நகலெடுக்கப்படும். webhooks வழிகாட்டியில் மேலும் படிக்கவும். +defaulthooks.add_webhook = இயல்புநிலை வெப்ஊக்கைச் சேர் +defaulthooks.update_webhook = இயல்புநிலை வெப்ஊக்கைப் புதுப்பி systemhooks = கணினி வெப்ஊக்குகள் -systemhooks.desc = சில Forgejo நிகழ்வுகள் தூண்டப்படும் போது Webhooks தானாகவே HTTP POST கோரிக்கைகளை சர்வருக்கு செய்யும். இங்கே வரையறுக்கப்பட்டுள்ள Webhookகள் கணினியில் உள்ள அனைத்து களஞ்சியங்களிலும் செயல்படும், எனவே இது ஏதேனும் செயல்திறன் தாக்கங்களை ஏற்படுத்தலாம். webhooks வழிகாட்டியில் மேலும் படிக்கவும். -systemhooks.add_webhook = கணினி வெப்ஊக்கைச் சேர்க்கவும் -systemhooks.update_webhook = சிச்டம் வெப்ஊக்கைப் புதுப்பிக்கவும் +systemhooks.desc = சில Forgejo நிகழ்வுகள் தூண்டப்படும்போது Webhooks தானாகவே HTTP POST கோரிக்கைகளைச் சர்வருக்கு செய்யும். இங்கே வரையறுக்கப்பட்டுள்ள Webhookகள் கணினியில் உள்ள அனைத்து களஞ்சியங்களிலும் செயல்படும், எனவே இது ஏதேனும் செயல்திறன் தாக்கங்களை ஏற்படுத்தலாம். webhooks வழிகாட்டியில் மேலும் படிக்கவும். +systemhooks.add_webhook = கணினி வெப்ஊக்கைச் சேர் +systemhooks.update_webhook = சிச்டம் வெப்ஊக்கைப் புதுப்பி auths.auth_manage_panel = அங்கீகார ஆதாரங்களை நிர்வகிக்கவும் auths.new = அங்கீகார மூலத்தைச் சேர்க்கவும் auths.name = பெயர் @@ -3040,35 +2958,15 @@ config.offline_mode = உள்ளக பயன்முறை config.disable_router_log = திசைவி பதிவை முடக்கு config.run_user = என இயக்க பயனர் config.run_mode = இயக்க முறை -config.git_version = Git பதிப்பு config.app_data_path = பயன்பாட்டு தரவு பாதை config.repo_root_path = களஞ்சிய ரூட் பாதை config.log_file_root_path = பதிவு பாதை config.script_type = ச்கிரிப்ட் வகை config.reverse_auth_user = ரிவர்ச் பதிலாள் அங்கீகார பயனர் -config.ssh_config = பாஓடு கட்டமைப்பு -config.ssh_enabled = இயக்கப்பட்டது -config.ssh_start_builtin_server = உள்ளமைக்கப்பட்ட சேவையகத்தைப் பயன்படுத்தவும் -config.ssh_domain = பாஓடு சர்வர் டொமைன் -config.ssh_port = துறைமுகம் -config.ssh_listen_port = லிசன் துறைமுகம் -config.ssh_root_path = ரூட் பாதை -config.ssh_key_test_path = முக்கிய சோதனை பாதை -config.ssh_keygen_path = கீசென் ("ssh-keygen") பாதை -config.ssh_minimum_key_size_check = குறைந்தபட்ச விசை அளவு சரிபார்ப்பு -config.ssh_minimum_key_sizes = குறைந்தபட்ச முக்கிய அளவுகள் config.lfs_config = LFS கட்டமைப்பு config.lfs_enabled = இயக்கப்பட்டது config.lfs_content_path = LFS உள்ளடக்க பாதை config.lfs_http_auth_expiry = LFS HTTP அங்கீகார காலாவதி நேரம் -config.db_config = தரவுத்தள கட்டமைப்பு -config.db_type = வகை -config.db_host = விருந்தோம்பி -config.db_name = பெயர் -config.db_user = பயனர் பெயர் -config.db_schema = திட்டம் -config.db_ssl_mode = SSL -config.db_path = பாதை config.service_config = பணி கட்டமைப்பு config.register_email_confirm = பதிவு செய்ய மின்னஞ்சல் உறுதிப்படுத்தல் தேவை config.disable_register = தன்வய பதிவை முடக்கு @@ -3095,19 +2993,6 @@ config.webhook_config = Webhook கட்டமைப்பு config.queue_length = வரிசை நீளம் config.deliver_timeout = காலாவதியை வழங்கவும் config.skip_tls_verify = TLS சரிபார்ப்பைத் தவிர்க்கவும் -config.mailer_config = அஞ்சல் அமைப்பு -config.mailer_enabled = இயக்கப்பட்டது -config.mailer_enable_helo = HELOவை இயக்கு -config.mailer_name = பெயர் -config.mailer_protocol = நெறிமுறை -config.mailer_smtp_addr = SMTP புரவலன் -config.mailer_smtp_port = SMTP துறைமுகம் -config.mailer_user = பயனர் -config.mailer_use_sendmail = அனுப்பு அஞ்சல் பயன்படுத்தவும் -config.mailer_sendmail_path = அனுப்பு அஞ்சல் பாதை -config.mailer_sendmail_args = Sendmailக்கு கூடுதல் வாதங்கள் -config.mailer_sendmail_timeout = அனுப்பு அஞ்சல் நேரம் முடிந்தது -config.mailer_use_dummy = போலி config.test_email_placeholder = மின்னஞ்சல் (எ.கா. test@example.com) config.send_test_mail = சோதனை மின்னஞ்சலை அனுப்பவும் config.send_test_mail_submit = அனுப்பு @@ -3133,17 +3018,6 @@ config.picture_config = படம் மற்றும் அவதார் config.disable_gravatar = கிராவதார் ஐ முடக்கு config.enable_federated_avatar = ஒருங்கிணைந்த அவதாரங்களை இயக்கு config.open_with_editor_app_help = நகலி மெனுவிற்கான "உடன் திற" எடிட்டர்கள். காலியாக இருந்தால், இயல்புநிலை பயன்படுத்தப்படும். இயல்புநிலையைப் பார்க்க விரிவாக்கவும். -config.git_config = Git கட்டமைப்பு -config.git_disable_diff_highlight = டிஃப் தொடரியல் சிறப்பம்சத்தை முடக்கு -config.git_max_diff_lines = ஒரு கோப்பிற்கு அதிகபட்ச வேறுபாடு கோடுகள் -config.git_max_diff_line_characters = ஒரு வரிக்கு அதிகபட்ச வேறுபாடு எழுத்துக்கள் -config.git_max_diff_files = அதிகபட்ச வேறுபாடு கோப்புகள் காட்டப்பட்டுள்ளன -config.git_gc_args = GC வாதங்கள் -config.git_migrate_timeout = இடம்பெயர்வு நேரம் முடிந்தது -config.git_mirror_timeout = மிரர் புதுப்பிப்பு நேரம் முடிந்தது -config.git_clone_timeout = நகலி ஆபரேசன் காலாவதியானது -config.git_pull_timeout = புல் ஆபரேசன் நேரம் முடிந்தது -config.git_gc_timeout = GC ஆபரேசன் நேரம் முடிந்தது config.log_config = பதிவு கட்டமைப்பு config.logger_name_fmt = பதிவர்: %s config.disabled_logger = முடக்கப்பட்டது @@ -3180,7 +3054,7 @@ notices.type_2 = பணி notices.desc = விவரம் notices.op = ஒப். notices.delete_success = கணினி அறிவிப்புகள் நீக்கப்பட்டன. -self_check.no_problem_found = இதுவரை எந்த பிரச்சனையும் கண்டறியப்படவில்லை. +self_check.no_problem_found = இதுவரை எந்தப் பிரச்சனையும் கண்டறியப்படவில்லை. self_check.database_collation_mismatch = தரவுத்தளமானது தொகுப்பைப் பயன்படுத்தும் என எதிர்பார்க்கலாம்: %s self_check.database_collation_case_insensitive = தரவுத்தளமானது %s தொகுப்பைப் பயன்படுத்துகிறது, இது ஒரு உணர்வற்ற தொகுப்பாகும். Forgejo இதனுடன் வேலை செய்ய முடியும் என்றாலும், எதிர்பார்த்தபடி செயல்படாத சில அரிதான நிகழ்வுகள் இருக்கலாம். self_check.database_inconsistent_collation_columns = தரவுத்தளம் %s தொகுப்பைப் பயன்படுத்துகிறது, ஆனால் இந்த நெடுவரிசைகள் பொருந்தாத தொகுப்புகளைப் பயன்படுத்துகின்றன. இது சில எதிர்பாராத பிரச்சனைகளை ஏற்படுத்தலாம். @@ -3272,7 +3146,7 @@ management = இரகசியங்களை நிர்வகிக்கவ [actions] runs.no_workflows.help_write_access = Forgejo செயல்களை எப்படி தொடங்குவது என்று தெரியவில்லையா? உங்கள் முதல் பணிப்பாய்வுகளை எழுத, பயனர் ஆவணத்தில் விரைவான தொடக்கத்தைப் பார்க்கவும், பின்னர் உங்கள் வேலையைச் செய்ய ஒரு Forgejo ரன்னர் அமைக்கவும். -runs.no_workflows.help_no_write_access = Forgejo செயல்கள் பற்றி அறிய, ஆவணங்களை பார்க்கவும். +runs.no_workflows.help_no_write_access = Forgejo செயல்கள்பற்றி அறிய, ஆவணங்களை பார்க்கவும். runs.no_runs = பணிப்பாய்வு இன்னும் இயங்கவில்லை. runs.empty_commit_message = (வெற்று உறுதி செய்தி) runs.expire_log_message = மரத்தடிகள் மிகவும் பழமையானதாக இருந்ததால், சுத்தப்படுத்தப்பட்டுள்ளது. diff --git a/options/locale/locale_th.ini b/options/locale/locale_th.ini index ef25055540..9ad568ce62 100644 --- a/options/locale/locale_th.ini +++ b/options/locale/locale_th.ini @@ -2765,77 +2765,14 @@ first_page = แรก last_page = สุดท้าย total = ทั้งหมด: %d settings = การตั้งค่าผู้ดูแลระบบ -dashboard.new_version_hint = Forgejo %s พร้อมใช้งานแล้ว คุณกำลังใช้ %s ตรวจสอบ บล็อก สำหรับรายละเอียดเพิ่มเติม -dashboard.statistic = สรุป -dashboard.operations = การดำเนินการบำรุงรักษา -dashboard.system_status = สถานะระบบ -dashboard.operation_name = ชื่อการดำเนินการ -dashboard.operation_switch = สวิตช์ -dashboard.operation_run = เรียกใช้ dashboard.clean_unbind_oauth = ล้างการเชื่อมต่อ OAuth ที่ไม่ได้ผูก dashboard.clean_unbind_oauth_success = ลบการเชื่อมต่อ OAuth ที่ไม่ได้ผูกทั้งหมดแล้ว -dashboard.task.started = เริ่มงาน: %[1]s -dashboard.task.process = งาน: %[1]s -dashboard.task.cancelled = งาน: %[1]s ถูกยกเลิก: %[3]s -dashboard.task.error = ข้อผิดพลาดในงาน: %[1]s: %[3]s -dashboard.task.finished = งาน: %[1]s ที่เริ่มโดย %[2]s เสร็จสิ้นแล้ว -dashboard.task.unknown = งานที่ไม่รู้จัก: %[1]s -dashboard.cron.started = เริ่ม Cron: %[1]s -dashboard.cron.process = Cron: %[1]s -dashboard.cron.cancelled = Cron: %[1]s ถูกยกเลิก: %[3]s -dashboard.cron.error = ข้อผิดพลาดใน Cron: %s: %[3]s -dashboard.cron.finished = Cron: %[1]s เสร็จสิ้นแล้ว dashboard.delete_inactive_accounts = ลบบัญชีที่ไม่ได้เปิดใช้งานทั้งหมด -dashboard.delete_inactive_accounts.started = เริ่มงานลบบัญชีที่ไม่ได้เปิดใช้งานทั้งหมดแล้ว dashboard.delete_repo_archives = ลบไฟล์เก็บถาวรของที่เก็บทั้งหมด (ZIP, TAR.GZ, ฯลฯ) -dashboard.delete_repo_archives.started = เริ่มงานลบไฟล์เก็บถาวรของที่เก็บทั้งหมดแล้ว dashboard.delete_missing_repos = ลบที่เก็บทั้งหมดที่ไม่มีไฟล์ Git -dashboard.delete_missing_repos.started = เริ่มงานลบที่เก็บทั้งหมดที่ไม่มีไฟล์ Git แล้ว -dashboard.delete_generated_repository_avatars = ลบอวาตาร์ที่เก็บที่สร้างขึ้น -dashboard.sync_repo_branches = ซิงค์สาขาที่พลาดจากข้อมูล Git ไปยังฐานข้อมูล -dashboard.sync_repo_tags = ซิงค์แท็กจากข้อมูล Git ไปยังฐานข้อมูล -dashboard.update_mirrors = อัปเดตมิเรอร์ -dashboard.repo_health_check = ตรวจสอบสุขภาพที่เก็บทั้งหมด -dashboard.check_repo_stats = ตรวจสอบสถิติที่เก็บทั้งหมด -dashboard.archive_cleanup = ลบไฟล์เก็บถาวรของที่เก็บเก่า -dashboard.deleted_branches_cleanup = ล้างสาขาที่ถูกลบ -dashboard.update_migration_poster_id = อัปเดต ID ผู้โพสต์การย้าย -dashboard.git_gc_repos = เก็บขยะที่เก็บทั้งหมด -dashboard.resync_all_sshkeys = อัปเดตไฟล์ ".ssh/authorized_keys" ด้วยคีย์ SSH ของ Forgejo -dashboard.resync_all_sshprincipals = อัปเดตไฟล์ ".ssh/authorized_principals" ด้วย Principal SSH ของ Forgejo -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 = ล้างบันทึกและอาร์ติแฟกต์ที่หมดอายุจากการดำเนินการ dashboard.delete_old_actions = ลบกิจกรรมเก่าทั้งหมดออกจากฐานข้อมูล -dashboard.delete_old_actions.started = เริ่มลบกิจกรรมเก่าทั้งหมดออกจากฐานข้อมูลแล้ว -dashboard.update_checker = ตัวตรวจสอบการอัปเดต -dashboard.delete_old_system_notices = ลบประกาศของระบบเก่าทั้งหมดออกจากฐานข้อมูล -dashboard.gc_lfs = เก็บขยะอ็อบเจกต์เมตา LFS -dashboard.stop_zombie_tasks = หยุดงานการดำเนินการซอมบี้ -dashboard.stop_endless_tasks = หยุดงานการดำเนินการที่ไม่สิ้นสุด -dashboard.cancel_abandoned_jobs = ยกเลิกงานการดำเนินการที่ถูกทอดทิ้ง -dashboard.start_schedule_tasks = เริ่มงานการดำเนินการตามกำหนดเวลา -dashboard.sync_branch.started = เริ่มการซิงค์สาขาแล้ว -dashboard.sync_tag.started = เริ่มการซิงค์แท็กแล้ว -dashboard.rebuild_issue_indexer = สร้างดัชนีปัญหาใหม่ users.user_manage_panel = จัดการบัญชีผู้ใช้ users.new_account = สร้างบัญชีผู้ใช้ -users.name = ชื่อผู้ใช้ -users.full_name = ชื่อเต็ม -users.activated = เปิดใช้งานแล้ว -users.admin = ผู้ดูแลระบบ -users.restricted = จำกัด -users.reserved = สงวนไว้ -users.bot = บอท -users.remote = ระยะไกล -users.2fa = 2FA -users.repos = ที่เก็บ -users.created = สร้างแล้ว -users.last_login = ลงชื่อเข้าใช้ล่าสุด -users.never_login = ไม่เคยลงชื่อเข้าใช้ users.send_register_notify = แจ้งเตือนเกี่ยวกับการลงทะเบียนทางอีเมล users.new_success = สร้างบัญชีผู้ใช้ "%s" แล้ว users.edit = แก้ไข @@ -2889,31 +2826,12 @@ emails.delete_desc = คุณแน่ใจหรือไม่ว่าต emails.deletion_success = ที่อยู่อีเมลถูกลบแล้ว emails.delete_primary_email_error = คุณไม่สามารถลบอีเมลหลักได้ orgs.org_manage_panel = จัดการองค์กร -orgs.name = ชื่อ -orgs.teams = ทีม -orgs.members = สมาชิก -orgs.new_orga = องค์กรใหม่ repos.repo_manage_panel = จัดการที่เก็บ repos.unadopted = ที่เก็บที่ยังไม่ได้นำมาใช้ repos.unadopted.no_more = ไม่พบที่เก็บที่ยังไม่ได้นำมาใช้ -repos.owner = เจ้าของ -repos.name = ชื่อ -repos.issues = ปัญหา -repos.size = ขนาด -repos.lfs_size = ขนาด LFS packages.package_manage_panel = จัดการแพ็คเกจ -packages.total_size = ขนาดทั้งหมด: %s -packages.unreferenced_size = ขนาดที่ไม่ได้อ้างอิง: %s packages.cleanup = ล้างข้อมูลที่หมดอายุ packages.cleanup.success = ล้างข้อมูลที่หมดอายุสำเร็จแล้ว -packages.owner = เจ้าของ -packages.creator = ผู้สร้าง -packages.name = ชื่อ -packages.version = เวอร์ชัน -packages.type = ประเภท -packages.repository = ที่เก็บ -packages.size = ขนาด -packages.published = เผยแพร่แล้ว defaulthooks = เว็บฮุกเริ่มต้น defaulthooks.desc = เว็บฮุกจะส่งคำขอ HTTP POST ไปยังเซิร์ฟเวอร์โดยอัตโนมัติเมื่อมีเหตุการณ์ Forgejo บางอย่างเกิดขึ้น เว็บฮุกที่กำหนดที่นี่เป็นค่าเริ่มต้นและจะถูกคัดลอกไปยังที่เก็บใหม่ทั้งหมด อ่านเพิ่มเติมใน คู่มือเว็บฮุก defaulthooks.add_webhook = เพิ่มเว็บฮุกเริ่มต้น @@ -3040,35 +2958,15 @@ config.offline_mode = โหมดโลคัล config.disable_router_log = ปิดใช้งานบันทึกเราเตอร์ config.run_user = ผู้ใช้ที่จะเรียกใช้เป็น config.run_mode = โหมดการทำงาน -config.git_version = เวอร์ชัน Git config.app_data_path = พาธข้อมูลแอป config.repo_root_path = พาธรากของที่เก็บ config.log_file_root_path = พาธบันทึก config.script_type = ประเภทสคริปต์ config.reverse_auth_user = ผู้ใช้การยืนยันตัวตนพร็อกซีย้อนกลับ -config.ssh_config = การกำหนดค่า SSH -config.ssh_enabled = เปิดใช้งาน -config.ssh_start_builtin_server = ใช้เซิร์ฟเวอร์ในตัว -config.ssh_domain = โดเมนเซิร์ฟเวอร์ SSH -config.ssh_port = พอร์ต -config.ssh_listen_port = พอร์ตฟัง -config.ssh_root_path = พาธราก -config.ssh_key_test_path = พาธทดสอบคีย์ -config.ssh_keygen_path = พาธ Keygen ("ssh-keygen") -config.ssh_minimum_key_size_check = การตรวจสอบขนาดคีย์ขั้นต่ำ -config.ssh_minimum_key_sizes = ขนาดคีย์ขั้นต่ำ config.lfs_config = การกำหนดค่า LFS config.lfs_enabled = เปิดใช้งาน config.lfs_content_path = พาธเนื้อหา LFS config.lfs_http_auth_expiry = เวลาหมดอายุการยืนยันตัวตน HTTP ของ LFS -config.db_config = การกำหนดค่าฐานข้อมูล -config.db_type = ประเภท -config.db_host = โฮสต์ -config.db_name = ชื่อ -config.db_user = ชื่อผู้ใช้ -config.db_schema = สคีมา -config.db_ssl_mode = SSL -config.db_path = พาธ config.service_config = การกำหนดค่าบริการ config.register_email_confirm = ต้องมีการยืนยันทางอีเมลเพื่อลงทะเบียน config.disable_register = ปิดใช้งานการลงทะเบียนด้วยตนเอง @@ -3095,19 +2993,6 @@ config.webhook_config = การกำหนดค่าเว็บฮุก config.queue_length = ความยาวคิว config.deliver_timeout = หมดเวลาการจัดส่ง config.skip_tls_verify = ข้ามการตรวจสอบ TLS -config.mailer_config = การกำหนดค่า Mailer -config.mailer_enabled = เปิดใช้งาน -config.mailer_enable_helo = เปิดใช้งาน HELO -config.mailer_name = ชื่อ -config.mailer_protocol = โปรโตคอล -config.mailer_smtp_addr = โฮสต์ SMTP -config.mailer_smtp_port = พอร์ต SMTP -config.mailer_user = ผู้ใช้ -config.mailer_use_sendmail = ใช้ Sendmail -config.mailer_sendmail_path = พาธ Sendmail -config.mailer_sendmail_args = อาร์กิวเมนต์เพิ่มเติมสำหรับ Sendmail -config.mailer_sendmail_timeout = หมดเวลา Sendmail -config.mailer_use_dummy = Dummy config.test_email_placeholder = อีเมล (เช่น test@example.com) config.send_test_mail = ส่งอีเมลทดสอบ config.send_test_mail_submit = ส่ง @@ -3133,17 +3018,6 @@ config.picture_config = การกำหนดค่ารูปภาพแ config.disable_gravatar = ปิดใช้งาน Gravatar config.enable_federated_avatar = เปิดใช้งานอวาตาร์แบบรวมศูนย์ config.open_with_editor_app_help = ตัวแก้ไข "เปิดด้วย" สำหรับเมนูโคลน หากเว้นว่างไว้ จะใช้ค่าเริ่มต้น ขยายเพื่อดูค่าเริ่มต้น -config.git_config = การกำหนดค่า Git -config.git_disable_diff_highlight = ปิดใช้งานการเน้นไวยากรณ์ diff -config.git_max_diff_lines = จำนวนบรรทัด diff สูงสุดต่อไฟล์ -config.git_max_diff_line_characters = จำนวนอักขระ diff สูงสุดต่อบรรทัด -config.git_max_diff_files = จำนวนไฟล์ diff สูงสุดที่แสดง -config.git_gc_args = อาร์กิวเมนต์ GC -config.git_migrate_timeout = หมดเวลาการย้าย -config.git_mirror_timeout = หมดเวลาการอัปเดตมิเรอร์ -config.git_clone_timeout = หมดเวลาการดำเนินการโคลน -config.git_pull_timeout = หมดเวลาการดำเนินการดึง -config.git_gc_timeout = หมดเวลาการดำเนินการ GC config.log_config = การกำหนดค่าบันทึก config.logger_name_fmt = Logger: %s config.disabled_logger = ปิดใช้งาน diff --git a/options/locale/locale_tok.ini b/options/locale/locale_tok.ini index bb485b94fb..0ed8a3a5b9 100644 --- a/options/locale/locale_tok.ini +++ b/options/locale/locale_tok.ini @@ -6,7 +6,7 @@ home = open dashboard = ijo sin explore = o alasa help = o pana e sona -logo = sitelen pi ilo Posejo li lon poka sewi. jan li ken ala lukin e sitelen la, ona li lukin e toki "sitelen". +logo = sitelen pi ilo Forgejo link_account = o wan e nimi sign_up = o pali e nimi sign_in = o pana e nimi diff --git a/options/locale/locale_tr-TR.ini b/options/locale/locale_tr-TR.ini index 766a17df43..7132b079a1 100644 --- a/options/locale/locale_tr-TR.ini +++ b/options/locale/locale_tr-TR.ini @@ -18,7 +18,7 @@ template=Şablon language=Dil notifications=Bildirimler active_stopwatch=Etkin zaman takipçisi -tracked_time_summary=Konu listesi süzgeçlerine dayanan takip edilen zamanın özeti +tracked_time_summary=Sorun listesindeki filtrelere göre takip edilen sürenin özeti create_new=Oluştur… user_profile_and_more=Profil ve ayarlar… signed_in_as=Giriş yapan: @@ -123,7 +123,7 @@ confirm_delete_selected=Tüm seçili öğeleri gerçekten silmek istiyor musunuz name=İsim value=Değer copy_generic = Panoya kopyala -filter = Süzgeç +filter = Filtrele filter.not_archived = Arşivlenmemiş filter.clear = Süzgeçleri temizle filter.is_archived = Arşivlenmiş @@ -198,7 +198,7 @@ string.desc=Z - A [error] occurred=Bir hata oluştu -report_message=Bunun bir Forgejo hatası olduğunu düşünüyorsanız, lütfen Codeberg sayfasında sorunu arayın veya gerekiyorsa yeni bir sorun oluşturun. +report_message=Eğer bunun bir Forgejo hatası olduğunu düşünüyorsanız, lütfen Codeberg'de ilgili sorunları arayın, gerekirse yeni bir sorun bildirimi oluşturun (açın). not_found=Hedef bulunamadı. network_error=Ağ hatası server_internal = İç sunucu hatası @@ -455,7 +455,7 @@ activate_email.text=E posta adresinizi doğrulamak için lütfen %s için register_notify=%s'ya Hoş Geldiniz register_notify.text_1=bu %s için kayıt onay e postanızdır! -register_notify.text_2=Artık %s kullanıcı adı ile oturum açabilirsiniz. +register_notify.text_2=Kullanıcı adınızla hesabınıza giriş yapabilirsiniz: %s register_notify.text_3=Eğer bu hesap sizin için oluşturulduysa, lütfen önce şifrenizi ayarlayın. reset_password=Hesabınızı kurtarın @@ -516,7 +516,7 @@ password_change.text_1 = Hesabınızın parolası değişti. totp_enrolled.subject = TOTP, 2 aşamalı giriş yöntemi olarak aktifleştirildi totp_enrolled.text_1.no_webauthn = TOTP'yi hesabınız için aktifleştirdiniz. Bundan dolayı gelecekte hesabınıza giriş yaparken 2 aşamalı giriş yöntemi olarak TOTP kullanmanız gerekecek. totp_enrolled.text_1.has_webauthn = TOTP'yi hesabınız için aktifleştirdiniz. Bu sayede gelecekte hesabınıza giriş yaparken 2 aşamalı giriş yöntemi olarak güvenlik anahtarlarınızın yanında TOTP'yi de kullanabilirsiniz. -primary_mail_change.text_1 = Hesabınızın ana e-posta adresi, %[1]s olarak değiştirildi. Bundan dolayı bu e-posta adresi hesabınızla alakalı e-posta bildirimlerini almayacak. +primary_mail_change.text_1 = Hesabınızın birincil e-posta adresi az önce %[1]s olarak değiştirildi. Bu, bu e-posta adresine artık hesabınızla ilgili e-posta bildirimleri gönderilmeyeceği anlamına gelir. totp_disabled.no_2fa = Artık herhangi bir iki aşamalı giriş yönteminiz ayarlanmış bulunmamakta, yani hesabınıza giriş yaparken iki aşamalı giriş yapmanıza gerek kalmamıştır. removed_security_key.no_2fa = Artık herhangi bir iki aşamalı giriş yönteminiz ayarlanmış bulunmamakta, yani hesabınıza giriş yaparken iki aşamalı giriş yapmanıza gerek kalmamıştır. @@ -651,7 +651,7 @@ settings=Kullanıcı ayarları form.name_reserved=`"%s" kullanıcı adı rezerve edilmiş.` form.name_pattern_not_allowed=Kullanıcı adında "%s" deseni kullanılamaz. -form.name_chars_not_allowed=`"%s" kullanıcı adı geçersiz karakterler içeriyor.` +form.name_chars_not_allowed="%s" kullanıcı adı geçersiz karakterler içeriyor. following.title.few = Takip edilenler public_activity.visibility_hint.admin_private = Bu aktivite yönetici olduğunuz için açıktır ama kullanıcı gizli kalmasını tercih etmiştir. block_user = Kullanıcıyı engelle @@ -666,7 +666,7 @@ followers.title.one = Takipçi block = Engelle public_activity.visibility_hint.self_private = Aktiviteniz sadece size ve oluşum yöneticilerine açıktır. Değiştir. followers_one = %d takipçi -block_user.detail_2 = Bu kullanıcı sahip olduğunuz depolar, açtığınız sorunlar ve yaptığınız yorumlar ile etkileşime geçemeyecek. +block_user.detail_2 = Bu kullanıcı, sahip olduğunuz depolarla veya oluşturduğunuz sorunlar ile ve yorumlar ile etkileşimde bulunamayacaktır. block_user.detail_1 = Birbirinizden takipten çıkacak ve birbirinizi takip edemeyeceksiniz. block_user.detail = Bu kullanıcıyı engellediğinizde: block_user.detail_3 = Birbirinizi depo işbirlikçileri olarak ekleyemeyeceksiniz. @@ -692,7 +692,7 @@ webauthn=Güvenlik Anahtarları public_profile=Herkese açık profil biography_placeholder=Diğerlerine kendiniz hakkında birşeyler söyleyin! (Markdown destekleniyor) location_placeholder=Yaklaşık konumunuzu başkalarıyla paylaşın -profile_desc=Profilinizin başkalarına nasıl gösterildiğini yönetin. Ana e-posta adresiniz bildirimler, parola kurtarma ve web tabanlı Git işlemleri için kullanılacaktır. +profile_desc=Hakkında password_username_disabled=Yerel olmayan kullanıcılara kullanıcı adlarını değiştirme izni verilmemiştir. Daha fazla bilgi edinmek için lütfen site yöneticisi ile iletişime geçiniz. full_name=Ad Soyad website=Web Sitesi @@ -774,7 +774,7 @@ add_new_email=Yeni E-posta Adresi Ekle add_new_openid=Yeni OpenID URI'si Ekle add_email=E-posta Adresi Ekle add_openid=Açık Kimlik URI 'si ekle -add_email_confirmation_sent=`"%s" adresine bir doğrulama e-postası gönderildi. E-postanızı doğrulamak için %s içinde gelen kutunuzu kontrol ediniz.` +add_email_confirmation_sent="%s" adresine bir doğrulama e-postası gönderildi. E-postanızı doğrulamak için %s içinde gelen kutunuzu kontrol ediniz. add_email_success=Yeni e-posta adresi eklendi. email_preference_set_success=E-posta tercihi başarıyla ayarlandı. add_openid_success=Yeni OpenID adresi eklendi. @@ -979,7 +979,7 @@ keep_activity_private.description = Şu anki halka açık aktiviten keep_pronouns_private.description = Bu giriş yapmamış ziyaretçilerden zamirleri gizleyecektir. storage_overview = Depolamaya genel bakış quota = Kota -change_username_redirect_prompt.with_cooldown.one = Eski kullanıcı adı %[1]d günlük korunma döneminin ardından herkes tarafından kullanılabilir hale gelecek. Korunma dönemi süresince eski kullanıcı adını tekrar alabilirsin. +change_username_redirect_prompt.with_cooldown.one = Eski kullanıcı adı, %[1]d günlük bir bekleme süresinin ardından herkes tarafından kullanılabilir hale gelecektir. Bekleme süresi boyunca eski kullanıcı adını geri alabilirsiniz. change_username_redirect_prompt.with_cooldown.few = Eski kullanıcı adı %[1]d günlük korunma döneminin ardından herkes tarafından kullanılabilir hale gelecek. Korunma dönemi süresince eski kullanıcı adını tekrar alabilirsin. language.localization_project = Forgejo'yu kendi lisanında çevirmemize yardımcı ol! Daha fazla bilgi edin. additional_repo_units_hint = Ek depo birimlerini etkinleştirmeyi öner @@ -1015,14 +1015,14 @@ quota.sizes.assets.packages.all = Paketler quota.sizes.wiki = Viki [repo] -new_repo_helper=Bir depo, sürüm geçmişi dahil tüm proje dosyalarını içerir. Zaten başka bir yerde mi barındırıyorsunuz? Depoyu taşıyın. +new_repo_helper=Bir depo, revizyon geçmişi dahil olmak üzere tüm proje dosyalarını içerir. Başka bir yerde zaten bir depo barındırıyor musunuz? Depoyu taşıyın. owner=Sahibi owner_helper=Bazı organizasyonlar, en çok depo sayısı sınırı nedeniyle açılır menüde görünmeyebilir. repo_name=Depo İsmi repo_name_helper=İyi bir depo ismi kısa, akılda kalıcı ve özgün anahtar kelimelerden oluşur. repo_size=Depo Boyutu template=Şablon -template_select=Bir şablon seçin. +template_select=Bir şablon seçin template_helper=Depoyu şablon yap template_description=Şablon depoları, kullanıcıların aynı dizin yapısı, dosyaları ve isteğe bağlı ayarlarla yeni depoları oluşturmasına izin verir. visibility=Görünürlük @@ -1048,17 +1048,17 @@ generate_from=Şuradan Oluştur repo_desc=Açıklama repo_desc_helper=Kısa açıklama girin (isteğe bağlı) repo_lang=Dil -repo_gitignore_helper=.gitignore şablonlarını seç. +repo_gitignore_helper=.gitignore şablonlarınızı seçin repo_gitignore_helper_desc=Sık kullanılan diller için bir şablon listesinden hangi dosyaların izlenmeyeceğini seçin. Her dilin oluşturma araçları tarafından oluşturulan tipik yapılar, varsayılan olarak .gitignore dosyasına dahil edilmiştir. -issue_labels=Konu Etiketleri -issue_labels_helper=Bir konu etiket seti seçin. +issue_labels=Etiketler +issue_labels_helper=Bir etiket seti seçin license=Lisans -license_helper=Bir lisans dosyası seçin. -license_helper_desc=Bir lisans, başkalarının kodunuzla neler yapıp yapamayacağını yönetir. Projeniz için hangisinin doğru olduğundan emin değil misiniz? Lisans seçme konusuna bakın +license_helper=Bir lisans dosyası seçin +license_helper_desc=Bir lisans, başkalarının kodunuzla neleri yapabileceğini ve neleri yapamayacağını belirler. Projeniz için hangisinin uygun olduğundan emin değil misiniz? Bir lisans seç 'e bakın. readme=README -readme_helper=Bir README dosyası şablonu seçin. +readme_helper=Bir README dosyası şablonu seçin readme_helper_desc=Projeniz için eksiksiz bir açıklama yazabileceğiniz yer burasıdır. -auto_init=Depoyu başlat (.gitignore, Lisans ve README dosyalarını ekler) +auto_init=Depoyu başlat create_repo=Depo Oluştur default_branch=Varsayılan Dal default_branch_label=varsayılan @@ -1103,7 +1103,7 @@ author_search_tooltip=En fazla 30 kullanıcı görüntüler tree_path_not_found.commit=%[1]s yolu, %[2]s işlemesinde mevcut değil tree_path_not_found.branch=%[1]s yolu, %[2]s dalında mevcut değil -tree_path_not_found.tag=%[1]s yolu, %[2]s etiketinde mevcut değil +tree_path_not_found.tag=%[1]s yolu, %[2]s anahtar kelimesinde (tag'inde) mevcut değil transfer.accept=Aktarımı kabul Et transfer.accept_desc=`"%s" tarafına aktar` @@ -1129,8 +1129,8 @@ template.issue_labels=Sorun etiketleri template.one_item=En az bir şablon öğesi seçmelisiniz template.invalid=Bir şablon deposu seçmelisiniz -archive.title=Bu depo arşivlendi. Dosyaları görüntüleyip klonlayabilirsiniz ancak katkılar gönderemez, yeni sorun ve birleştirme isteği oluşturamaz veya yorum yapamazsınız yani durumunu değiştiremezsiniz. -archive.title_date=Bu depo %s tarihinde arşivlendi. Dosyaları görüntüleyip klonlayabilirsiniz ancak katkılar gönderemez, yeni sorun ve birleştirme isteği oluşturamaz veya yorum yapamazsınız yani durumunu değiştiremezsiniz. +archive.title=Bu depo arşivlenmiştir. Dosyaları görüntüleyebilir ve depoyu klonlayabilirsiniz, ancak yeni sorunlar, çekme istekleri veya yorumlar oluşturmak ya da itme (push) işlemi gibi durumlarda herhangi bir değişiklik yapamazsınız. +archive.title_date=Bu depo %s tarihinde arşivlenmiştir. Dosyaları görüntüleyebilir ve depoyu klonlayabilirsiniz, ancak itme (push) işlemi yapmak, yeni sorunlar, çekme istekleri veya yorumlar oluşturmak gibi herhangi bir değişiklik yapamazsınız. form.reach_limit_of_creation_1=Zaten %d depo limitinize ulaştınız. form.reach_limit_of_creation_n=Zaten %d depo limitinize ulaştınız. form.name_reserved=Depo adı "%s" rezerve edilmiş. @@ -1158,7 +1158,7 @@ migrate.migrate_items_options=Ek öğeleri taşımak için Erişim Kodu gereklid migrated_from=%[2]s konumundan göç edildi migrated_from_fake=%[1]s Konumundan Göç Edildi migrate.migrate=%s Konumundan Göç Et -migrate.migrating=%s konumundan taşınıyor ... +migrate.migrating=%s adresinden taşınıyor … migrate.migrating_failed=%s konumundan taşıma başarısız oldu. migrate.migrating_failed.error=Göç yapılamadı: %s migrate.migrating_failed_no_addr=Göç başarısız oldu. @@ -1230,8 +1230,8 @@ escape_control_characters=Kaçış Karakterli unescape_control_characters=Kaçış Karaktersiz file_copy_permalink=Kalıcı Bağlantıyı Kopyala view_git_blame=Git Suç Görüntüle -video_not_supported_in_browser=Tarayıcınız HTML5 'video' etiketini desteklemiyor. -audio_not_supported_in_browser=Tarayıcınız HTML5 'audio' etiketini desteklemiyor. +video_not_supported_in_browser=Tarayıcınız HTML5 "video" anahtar kelimesini (tag'ini) desteklemiyor. +audio_not_supported_in_browser=Tarayıcınız HTML5 "audio" anahtar kelimesini (tag'ini) desteklemiyor. stored_lfs=Git LFS ile depolandı symbolic_link=Sembolik Bağlantı executable_file=Çalıştırılabilir Dosya @@ -1421,7 +1421,7 @@ issues.choose.blank_about=Varsayılan şablondan bir konu oluşturun. issues.choose.ignore_invalid_templates=Geçersiz şablonlar göz ardı edildi issues.choose.invalid_templates=%v geçersiz şablon bulundu issues.choose.invalid_config=Konu yapılandırması hatalar içeriyor: -issues.no_ref=Bölüm/Etiket Belirtilmedi +issues.no_ref=Dal/Anahtar kelime (tag) belirtilmedi issues.create=Konu Oluştur issues.new_label=Yeni Etiket issues.new_label_placeholder=Etiket adı @@ -1533,7 +1533,7 @@ issues.reopened_at=%s sorununu yeniden açtı issues.commit_ref_at=`%s işlemesinde bu konuyu işaret etti` issues.ref_issue_from=`bu konuya referansta bulundu %[3]s %[1]s` issues.ref_pull_from=`bu değişiklik isteğine referansta bulundu %[3]s %[1]s` -issues.ref_closing_from=`bir değişiklik isteğine referansta bulundu %[3]s bu konu kapatılacak %[1]s` +issues.ref_closing_from=`Bu sorunu, onu kapatacak olan %[3]s çekme isteğinden referans almıştır, %[1]s` issues.ref_reopening_from=`bir değişiklik isteğine referansta bulundu %[3]s bu konu yeniden açılacak %[1]s` issues.ref_from=`%[1]s'den` issues.author=Yazar @@ -1603,8 +1603,8 @@ issues.lock.notice_3=- Her zaman bu konunun kilidini açabilirsiniz. issues.unlock.notice_1=- Herkes bu konuda bir kez daha yorum yapabilir. issues.unlock.notice_2=- İlerde her zaman bu konuyu kilitleyebilirsiniz. issues.lock.reason=Kilitleme nedeni -issues.lock.title=Konuşmayı kilitle. -issues.unlock.title=Konuşmanın kilidini aç. +issues.lock.title=Yazışmayı kilitle +issues.unlock.title=Yazışmanın kilidini aç issues.comment_on_locked=Kilitli bir konuya yorum yapamazsınız. issues.delete=Sil issues.delete.title=Bu konu silinsin mi? @@ -2074,7 +2074,7 @@ settings.admin_settings=Yönetici Ayarları settings.admin_enable_health_check=Depo Sağlık Kontrollerini Etkinleştir (git fsck) settings.admin_code_indexer=Kod Dizinleyici settings.admin_stats_indexer=Kod İstatistiği Dizinleyici -settings.admin_indexer_commit_sha=Son Dizinlenen SHA +settings.admin_indexer_commit_sha=En son dizinlenen(indekslenen) değişiklik(commit) settings.admin_indexer_unindexed=Dizinlenmemiş settings.reindex_button=Yeniden Dizinleme Kuyruğuna Ekle settings.reindex_requested=Yeniden Dizinleme İstendi @@ -2296,26 +2296,26 @@ settings.protect_enable_merge_desc=Yazma erişimi olan herhangi bir kimse, deği settings.protect_whitelist_committers=Beyaz Liste Kısıtlı Gönderme settings.protect_whitelist_committers_desc=Sadece beyaz listeye alınmış kullanıcıların veya takımların bu dala göndermesine izin verilir (ancak zorla gönderim yapmayın). settings.protect_whitelist_deploy_keys=Beyaz liste göndermek için yazma erişimi olan anahtarları dağıtır. -settings.protect_whitelist_users=İtme için beyaz listedeki kullanıcılar: -settings.protect_whitelist_teams=İtme için beyaz listedeki takımlar: +settings.protect_whitelist_users=İtme işlemi için beyaz listeye alınmış kullanıcılar +settings.protect_whitelist_teams=İtme işlemi için beyaz listeye alınmış takımlar settings.protect_merge_whitelist_committers=Birleştirme Beyaz Listesini Etkinleştir settings.protect_merge_whitelist_committers_desc=Yalnızca beyaz listedeki kullanıcıların veya takımların bu daldaki değişiklik isteklerini birleştirmesine izin verin. -settings.protect_merge_whitelist_users=Birleştirme için beyaz listedeki kullanıcılar: -settings.protect_merge_whitelist_teams=Birleştirme için beyaz listedeki takımlar: +settings.protect_merge_whitelist_users=Birleştirme işlemi için beyaz listeye alınmış kullanıcılar +settings.protect_merge_whitelist_teams=Birleştirme işlemi için beyaz listeye alınmış takımlar settings.protect_check_status_contexts=Durum Denetimini Etkinleştir -settings.protect_status_check_patterns=Durum denetleme desenleri: +settings.protect_status_check_patterns=Durum kontrol şemaları settings.protect_status_check_patterns_desc=Bu kurala uyan dala diğer dallar birleştirilmeden önce başarılı olması gereken durum denetlemelerini belirten desenleri girin. Her bir satır bir desen tanımlıyor. Desenler boş olamaz. settings.protect_check_status_contexts_desc=Birleştirmeden önce durum denetimlerinin geçmesini zorunlu kılın. Dalların bu kurala uyan bir dalda birleştirilebilmesi için hangi durum denetimlerinin geçmesi gerektiğini seçin. Etkinleştirildiğinde, işlemeler önce başka bir dala gönderilmeli, ardından durum denetimleri geçtikten sonra bu kuralla eşleşen bir dala birleştirilmeli veya doğrudan gönderilmelidir. Hiçbir bağlam seçilmezse, bağlamdan bağımsız olarak son işleme başarılı olmalıdır. settings.protect_check_status_contexts_list=Bu depo için geçen haftadaki durum denetimleri settings.protect_status_check_matched=Eşleşen settings.protect_invalid_status_check_pattern=Hatalı durum denetleme deseni: "%s". settings.protect_no_valid_status_check_patterns=Geçerli durum denetleme deseni yok. -settings.protect_required_approvals=Gerekli onaylar: +settings.protect_required_approvals=Gerekli onaylar settings.protect_required_approvals_desc=Değişiklik isteğini yalnızca yeterince olumlu yorumla birleştirmeye izin ver. settings.protect_approvals_whitelist_enabled=Onayları beyaz listeye giren kullanıcılar veya takımlar için kısıtla settings.protect_approvals_whitelist_enabled_desc=Yalnızca beyaz listedeki kullanıcıların veya takımların incelemeleri gerekli onaylar için dikkate alınır. Onaylı beyaz liste olmadan, yazma erişimi olan herkesin incelemeleri gerekli onaylar için dikkate alınır. -settings.protect_approvals_whitelist_users=Beyaz listedeki incelemeciler: -settings.protect_approvals_whitelist_teams=Gözden geçirme için beyaz listedeki takımlar: +settings.protect_approvals_whitelist_users=Beyaz listeye alınmış değerlendiriciler +settings.protect_approvals_whitelist_teams=Değerlendirme için beyaz listeye alınan ekipler settings.dismiss_stale_approvals=Eski onayları reddet settings.dismiss_stale_approvals_desc=Değişiklik isteğinin içeriğini değiştiren yeni işlemeler dala itildiğinde, eski onaylar reddedilir. settings.require_signed_commits=İmzalı İşleme Gerekli @@ -2323,9 +2323,9 @@ settings.require_signed_commits_desc=Reddetme, onlar imzasızsa veya doğrulanam settings.protect_branch_name_pattern=Korunmuş Dal Adı Deseni settings.protect_branch_name_pattern_desc=Korunmuş dal isim desenleri. Desen sözdizimi için belgelere bakabilirsiniz. Örnekler: main, release/** settings.protect_patterns=Desenler -settings.protect_protected_file_patterns=Korumalı dosya kalıpları (noktalı virgülle ayrılmış ';'): +settings.protect_protected_file_patterns=Korumalı dosya düzenleri (noktalı virgül ";" ile ayrılmış) settings.protect_protected_file_patterns_desc=Kullanıcının bu dalda dosya ekleme, düzenleme veya silme hakları olsa bile doğrudan değiştirilmesine izin verilmeyen korumalı dosyalar. Birden çok desen noktalı virgül (';') kullanılarak ayrılabilir. Desen sözdizimi için %[2]s belgelerine bakın. Örnekler: .drone.yml, /docs/**/*.txt. -settings.protect_unprotected_file_patterns=Korunmasız dosya desenleri (noktalı virgülle ayrılmış ';'): +settings.protect_unprotected_file_patterns=Korunmasız dosya düzenleri (noktalı virgül ";" ile ayrılmış) settings.protect_unprotected_file_patterns_desc=Kullanıcının yazma erişimi, itme kısıtlamasını atlama hakkı olduğunda doğrudan değiştirmesine izin verilen korunmasız dosyalar. Birden çok desen noktalı virgül (';') kullanılarak ayrılabilir. Desen söz dizimi için %[2]s belgelerine bakın. Örnekler: .drone.yml, /docs/**/*.txt. settings.update_protect_branch_success=Dal koruma kuralı "%s" güncellendi. settings.remove_protected_branch_success=Dal koruma kuralı "%s" kaldırıldı. @@ -2340,7 +2340,7 @@ settings.block_outdated_branch=Değişiklik isteği güncel değilse birleştirm settings.block_outdated_branch_desc=Baş dal taban dalın arkasındayken birleştirme mümkün olmayacaktır. settings.default_branch_desc=Değişiklik istekleri ve kod işlemeleri için varsayılan bir depo dalı seçin: settings.merge_style_desc=Birleştirme biçemleri -settings.default_merge_style_desc=Değişiklik istekleri için varsayılan birleştirme tarzı: +settings.default_merge_style_desc=Varsayılan birleştirme tarzı settings.choose_branch=Bir dal seç… settings.no_protected_branch=Korumalı dal yok. settings.edit_protected_branch=Düzenle @@ -2348,15 +2348,15 @@ settings.protected_branch_required_rule_name=Gerekli kural adı settings.protected_branch_duplicate_rule_name=Çakışan kural adı settings.protected_branch_required_approvals_min=Gerekli onaylar negatif olamaz. settings.tags=Etiketler -settings.tags.protection=Etiket Koruması -settings.tags.protection.pattern=Etiket Deseni +settings.tags.protection=Anahtar kelime (tag) koruması +settings.tags.protection.pattern=Anahtar kelime (tag) şablonu settings.tags.protection.allowed=İzin Verilen settings.tags.protection.allowed.users=İzin verilen kullanıcılar settings.tags.protection.allowed.teams=İzin verilen takımlar -settings.tags.protection.allowed.noone=Hiç kimse -settings.tags.protection.create=Etiketi Koru +settings.tags.protection.allowed.noone=Hiç kimseye +settings.tags.protection.create=Kural ekle settings.tags.protection.none=Korumalı etiket yok. -settings.tags.protection.pattern.description=Birden çok etiketi eşleştirmek için tek bir ad, glob deseni veya normal ifade kullanabilirsiniz. Daha fazlası için korumalı etiketler rehberini okuyun. +settings.tags.protection.pattern.description=Birden çok anahtar kelimeyi (tag'leri) eşleştirmek için tek bir ad, glob şablonu veya normal ifade kullanabilirsiniz. Daha fazlası için korunan anahtar kelimeler (tag'ler) rehberini okuyun. settings.bot_token=Bot Jetonu settings.chat_id=Sohbet Kimliği settings.thread_id=İş Parçacığı ID @@ -2370,7 +2370,7 @@ settings.archive.success=Depo başarıyla arşivlendi. settings.archive.error=Depoyu arşivlemeye çalışırken bir hata oluştu. Daha fazla ayrıntı için günlüğe bakın. settings.archive.error_ismirror=Yansılanmış bir depoyu arşivleyemezsiniz. settings.archive.branchsettings_unavailable=Depo arşivlenirse dal ayarları kullanılamaz. -settings.archive.tagsettings_unavailable=Depo arşivlenmişse etiket ayarları kullanılamaz. +settings.archive.tagsettings_unavailable=Arşivlenmiş depolarda anahtar kelime (tag) ayarları kullanılamaz. settings.unarchive.button=Depoyu Arşivden Çıkar settings.unarchive.header=Bu Depoyu Arşivden Çıkar settings.unarchive.text=Depoyu arşivden çıkarmak, yeni sorunların ve değişiklik isteklerinin yanı sıra işleme ve itme yeteneğini de geri kazandıracaktır. @@ -2391,12 +2391,12 @@ settings.lfs_invalid_locking_path=Geçersiz yol: %s settings.lfs_invalid_lock_directory=Dizin kilitlenemiyor: %s settings.lfs_lock_already_exists=Kilit zaten var: %s settings.lfs_lock=Kilitle -settings.lfs_lock_path=Kilitlenecek dosya yolu... +settings.lfs_lock_path=Kilitlenecek dosya yolu… settings.lfs_locks_no_locks=Kilit yok settings.lfs_lock_file_no_exist=Kilitli dosya varsayılan dalda mevcut değil settings.lfs_force_unlock=Kilidi Açmaya Zorla settings.lfs_pointers.found=Bulunan %d blob işaretçi(leri) - %d ilişkili, %d ilişkilendirilmemiş (%d mağazadan eksik) -settings.lfs_pointers.sha=Blob SHA +settings.lfs_pointers.sha=Blob hash'i settings.lfs_pointers.oid=OID settings.lfs_pointers.inRepo=Depoda settings.lfs_pointers.exists=Mağazada var @@ -2494,7 +2494,7 @@ release.publish=Sürümü Yayınla release.save_draft=Taslağı Kaydet release.edit_release=Sürümü Güncelle release.delete_release=Sürümü Sil -release.delete_tag=Etiketi Sil +release.delete_tag=Anahtar kelimeyi (tag'i) sil release.deletion=Sürümü Sil release.deletion_desc=Bir sürümü silmek onu sadece Forgejo'dan kaldırır. Git etiketini, deponuzun içeriğini veya geçmişini etkilemez. Devam edilsin mi? release.deletion_success=Sürüm silindi. @@ -2506,7 +2506,7 @@ release.tag_name_protected=Etiket ismi korumalıdır. release.tag_already_exist=Bu etiket adı zaten var. release.downloads=İndirmeler release.add_tag_msg=Sürümün başlığını ve içeriğini etiket mesajı olarak kullanın. -release.add_tag=Yalnızca Etiket Oluştur +release.add_tag=Anahtar kelime (tag) oluştur release.releases_for=%s sürümleri release.tags_for=%s etiketleri @@ -2538,23 +2538,23 @@ branch.included=Dahil branch.create_new_branch=Şu daldan dal oluştur: branch.confirm_create_branch=Dal oluştur branch.warning_rename_default_branch=Varsayılan dalın adını değiştiriyorsunuz. -branch.rename_branch_to=`"%s" adını şuna değiştir:` +branch.rename_branch_to="%s" dalının adı değiştiriliyor. branch.create_branch_operation=Dal oluştur branch.new_branch=Yeni dal oluştur branch.new_branch_from=`"%s" dalından yeni dal oluştur` branch.renamed=%s dalının adı %s olarak değiştirildi. -tag.create_tag=%s etiketi oluştur +tag.create_tag=%s anahtar kelimesi (tag'i) oluştur tag.create_tag_operation=Etiket oluştur tag.confirm_create_tag=Etiket oluştur tag.create_tag_from=`"%s" kullanarak yeni etiket oluştur` tag.create_success=`"%s" etiketi oluşturuldu.` -topic.manage_topics=Konuları Yönet +topic.manage_topics=Konu başlıklarını (topic'leri) Yönet topic.done=Bitti topic.count_prompt=25'ten fazla konu seçemezsiniz -topic.format_prompt=Konular bir harf veya rakamla başlamalı, kısa çizgi ('-') ve nokta ('.') içerebilir ve en fazla 35 karakter uzunluğunda olabilir. Harfler küçük harf olmalıdır. +topic.format_prompt=Konu başlıkları (topic'ler) bir harf veya rakamla başlamalı, kısa çizgi karakterleri ("-") ve nokta karakterleri (".") içerebilir ve en fazla 35 karakter uzunluğunda olabilir. Harfler küçük harf olmalıdır. find_file.go_to_file=Dosyaya git find_file.no_matching=Eşleşen dosya bulunamadı @@ -2595,7 +2595,7 @@ editor.push_out_of_date = İtme eskimiş. commits.search_branch = Bu Dal issues.edit.already_changed = Konuya yapılan değişiklikler kaydedilemiyor. İçerik başka kullanıcı tarafından değiştirilmiş gözüküyor. Diğerlerinin değişikliklerinin üzerine yazmamak için lütfen sayfayı yenileyin ve tekrar düzenlemeye çalışın pulls.edit.already_changed = Değişiklik isteğine yapılan değişiklikler kaydedilemiyor. İçerik başka kullanıcı tarafından değiştirilmiş gözüküyor. Diğerlerinin değişikliklerinin üzerine yazmamak için lütfen sayfayı yenileyin ve tekrar düzenlemeye çalışın -pulls.nothing_to_compare_have_tag = Seçili dal/etiket aynı. +pulls.nothing_to_compare_have_tag = Seçili dallar/anahtar kelimeler aynıdır. pulls.fast_forward_only_merge_pull_request = Sadece ileri sarma comments.edit.already_changed = Yoruma yapılan değişiklikler kaydedilemiyor. İçerik başka kullanıcı tarafından değiştirilmiş gözüküyor. Diğerlerinin değişikliklerinin üzerine yazmamak için lütfen sayfayı yenileyin ve tekrar düzenlemeye çalışın milestones.filter_sort.name = Ad @@ -2664,9 +2664,10 @@ issues.author.tooltip.pr = Bu kullanıcı, bu birleştirme isteğinin sahibi. issues.archived_label_description = (Arşivlenmiş) %s issues.review.add_review_requests = %[2]s, %[1]s tarafından incelenmesi talep etti issues.review.remove_review_requests = %[2]s, %[1]s tarafından incelenme talebini kaldırdı +activity.published_tag_label = Anahtar kelime (tag) [graphs] -component_loading = %s yükleniyor... +component_loading = %s yükleniyor… component_loading_failed = %s yüklenemedi component_loading_info = Bu biraz sürebilir… component_failed_to_load = Beklenmedik bir hata oluştu. @@ -2809,76 +2810,14 @@ last_page=Son total=Toplam: %d settings=Yönetici Ayarları -dashboard.new_version_hint=Forgejo %s şimdi hazır, %s çalıştırıyorsunuz. Ayrıntılar için blog'a bakabilirsiniz. -dashboard.statistic=Özet -dashboard.operations=Bakım İşlemleri -dashboard.system_status=Sistem Durumu -dashboard.operation_name=İşlem Adı -dashboard.operation_switch=Geç -dashboard.operation_run=Çalıştır dashboard.clean_unbind_oauth=Bağsız OAuth bağlantılarını temizle dashboard.clean_unbind_oauth_success=Tüm bağsız OAuth bağlantıları silindi. -dashboard.task.started=Görev Başlatıldı: %[1]s -dashboard.task.process=Görev: %[1]s -dashboard.task.cancelled=Görev: %[1]s iptal edildi: %[3]s -dashboard.task.error=Görevde Hata: %[1]s: %[3]s -dashboard.task.finished=Görev: %[1]s %[2]s tarafından başlatıldı ve bitti -dashboard.task.unknown=Bilinmeyen görev: %[1]s -dashboard.cron.started=Cron Başlatıldı: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.cancelled=Cron: %[1]s iptal edildi: %[3]s -dashboard.cron.error=Cron Hatası: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s bitti dashboard.delete_inactive_accounts=Etkinleştirilmemiş tüm hesapları sil -dashboard.delete_inactive_accounts.started=Etkinleştirilmemiş tüm hesapları silme görevi başladı. dashboard.delete_repo_archives=Tüm depoların arşivlerini (ZIP, TAR.GZ, vb.) sil -dashboard.delete_repo_archives.started=Tüm depo arşivlerini silme görevi başladı. dashboard.delete_missing_repos=Git dosyaları eksik olan tüm depoları sil -dashboard.delete_missing_repos.started=Git dosyaları eksik olan tüm depoları silme görevi başladı. -dashboard.delete_generated_repository_avatars=Oluşturulan depo resimlerini sil -dashboard.sync_repo_branches=Eşzamanlama git verisinden veritabanlarına dalları kaçırdı -dashboard.update_mirrors=Yansıları Güncelle -dashboard.repo_health_check=Tüm depoların sağlığını denetle -dashboard.check_repo_stats=Tüm depo istatistiklerini denetle -dashboard.archive_cleanup=Eski depo arşivlerini sil -dashboard.deleted_branches_cleanup=Silinen dalları temizle -dashboard.update_migration_poster_id=Taşıma poster kimliklerini güncelle -dashboard.git_gc_repos=Depolardaki çöpleri topla -dashboard.resync_all_sshkeys='.ssh/authority_keys' dosyasını Forgejo SSH anahtarlarıyla güncelle. -dashboard.resync_all_sshprincipals='.ssh/authorized_principals' dosyasını Forgejo SSH sorumlularıyla güncelleyin. -dashboard.resync_all_hooks=Tüm depoların alma öncesi, güncelleme ve alma sonrası kancalarını yeniden senkronize edin. -dashboard.reinit_missing_repos=Kayıtları bulunanlar için tüm eksik Git depolarını yeniden başlat -dashboard.sync_external_users=Harici kullanıcı verisini senkronize et -dashboard.cleanup_hook_task_table=Hook_task tablosunu temizleme -dashboard.cleanup_packages=Süresi dolmuş paketleri temizleme -dashboard.cleanup_actions=Eylemlerin süresi geçmiş günlük ve yapılarını temizle dashboard.delete_old_actions=Veritabanından tüm eski eylemleri sil -dashboard.delete_old_actions.started=Veritabanından başlatılan tüm eski eylemleri silin. -dashboard.update_checker=Denetleyiciyi güncelle -dashboard.delete_old_system_notices=Veritabanından tüm eski sistem bildirimlerini sil -dashboard.gc_lfs=LFS üst nesnelerin atıklarını temizle -dashboard.stop_zombie_tasks=Zombi görevleri durdur -dashboard.stop_endless_tasks=Daimi görevleri durdur -dashboard.cancel_abandoned_jobs=Terkedilmiş görevleri iptal et -dashboard.start_schedule_tasks=Zamanlanmış görevleri başlat -dashboard.sync_branch.started=Dal Eşzamanlaması başladı -dashboard.rebuild_issue_indexer=Konu indeksini yeniden oluştur - users.user_manage_panel=Kullanıcı Hesap Yönetimi users.new_account=Yeni Kullanıcı Hesabı -users.name=Kullanıcı Adı -users.full_name=Tam İsim -users.activated=Aktifleştirilmiş -users.admin=Yönetici -users.restricted=Kısıtlanmış -users.reserved=Rezerve -users.bot=Bot -users.remote=Uzak -users.2fa=2FD -users.repos=Depolar -users.created=Oluşturuldu -users.last_login=Son Oturum Açma -users.never_login=Hiç Oturum Açılmadı users.send_register_notify=Kullanıcı Kayıt Bildirimi Gönder users.new_success=`"%s" kullanıcı hesabı oluşturuldu.` users.edit=Düzenle @@ -2924,35 +2863,13 @@ emails.change_email_header=E-posta Özelliklerini Güncelle emails.change_email_text=Bu e-posta adresini güncellemek istediğinizden emin misiniz? orgs.org_manage_panel=Organizasyon Yönetimi -orgs.name=İsim -orgs.teams=Takımlar -orgs.members=Üyeler -orgs.new_orga=Yeni Organizasyon - repos.repo_manage_panel=Depo Yönetimi repos.unadopted=Kabul Edilmemiş Depolar -repos.unadopted.no_more=Kabul edilmemiş başka depo bulunamadı -repos.owner=Sahibi -repos.name=İsim +repos.unadopted.no_more=Benimsenmemiş depolar bulunamadı. repos.private=Özel -repos.issues=Konular -repos.size=Boyut -repos.lfs_size=LFS Boyutu - packages.package_manage_panel=Paket Yönetimi -packages.total_size=Toplam Boyut: %s -packages.unreferenced_size=Referanssız Boyut: %s packages.cleanup=Süresi dolmuş veriyi temizle packages.cleanup.success=Süresi dolmuş veri başarıyla temizlendi -packages.owner=Sahibi -packages.creator=Oluşturan -packages.name=İsim -packages.version=Sürüm -packages.type=Tür -packages.repository=Depo -packages.size=Boyut -packages.published=Yayınlandı - defaulthooks=Varsayılan web kancaları defaulthooks.desc=Web Kancaları, belirli Forgejo olayları tetiklendiğinde otomatik olarak HTTP POST isteklerini sunucuya yapar. Burada tanımlanan Web kancaları varsayılandır ve tüm yeni depolara kopyalanır. web kancaları kılavuzunda daha fazla bilgi edinin. defaulthooks.add_webhook=Varsayılan Web İstemcisi Ekle @@ -3081,7 +2998,6 @@ config.offline_mode=Yerel Kip config.disable_router_log=Yönlendirici Log'larını Devre Dışı Bırak config.run_user=Şu Kullanıcı Olarak Çalıştır config.run_mode=Çalıştırma Modu -config.git_version=Git Sürümü config.app_data_path=Uygulama Veri Yolu config.repo_root_path=Depo Kök Yolu config.lfs_root_path=LFS Kök Dizini @@ -3089,32 +3005,11 @@ config.log_file_root_path=Günlük Dosyası Yolu config.script_type=Betik Türü config.reverse_auth_user=Tersine Yetkilendirme Kullanıcısı -config.ssh_config=SSH Yapılandırması -config.ssh_enabled=Aktif -config.ssh_start_builtin_server=Yerleşik Sunucuyu Kullan -config.ssh_domain=SSH Sunucusu Alan Adı -config.ssh_port=Bağlantı Noktası -config.ssh_listen_port=Port'u Dinle -config.ssh_root_path=Kök Yol -config.ssh_key_test_path=Anahtar Test Yolu -config.ssh_keygen_path=Keygen ('ssh-keygen') Yolu -config.ssh_minimum_key_size_check=Minimum Anahtar Uzunluğu Kontrolü -config.ssh_minimum_key_sizes=Minimum Anahtar Uzunlukları - config.lfs_config=LFS Yapılandırması config.lfs_enabled=Etkin config.lfs_content_path=LFS İçerik Yolu config.lfs_http_auth_expiry=LFS HTTP Yetkilendirme Süresi -config.db_config=Veritabanı Yapılandırması -config.db_type=Türü -config.db_host=Sunucu -config.db_name=İsim -config.db_user=Kullanıcı adı -config.db_schema=Şema -config.db_ssl_mode=SSL -config.db_path=Yol - config.service_config=Servis Yapılandırması config.register_email_confirm=Kayıt Olmak İçin E-posta Onayı Gereksin config.disable_register=Kullanıcı Kaydını Devre Dışı Bırak @@ -3142,24 +3037,11 @@ config.queue_length=Kuyruk Uzunluğu config.deliver_timeout=Dağıtım Zaman Aşımı config.skip_tls_verify=TLS Doğrulamasını Geç -config.mailer_config=Mailer Yapılandırması -config.mailer_enabled=Aktif -config.mailer_enable_helo=HELO'yu etkinleştir -config.mailer_name=İsim -config.mailer_protocol=Protokol -config.mailer_smtp_addr=SMTP Adresi -config.mailer_smtp_port=SMTP Portu -config.mailer_user=Kullanıcı -config.mailer_use_sendmail=Sendmail Kullan -config.mailer_sendmail_path=Sendmail Yolu -config.mailer_sendmail_args=Sendmail İçin İlave Değişkenler -config.mailer_sendmail_timeout=Sendmail Zaman Aşımı -config.mailer_use_dummy=Sahte config.test_email_placeholder=E-posta (ör. test@example.com) config.send_test_mail=Test E-postası Gönder config.send_test_mail_submit=Gönder config.test_mail_failed=`"%s" adresine deneme e-postası gönderilemedi: %v` -config.test_mail_sent=`"%s" adresine bir deneme e-postası gönderildi.` +config.test_mail_sent="%s" adresine bir deneme e-postası gönderildi. config.oauth_config=OAuth Yapılandırması config.oauth_enabled=Aktif @@ -3184,18 +3066,6 @@ config.picture_service=Resim Servisi config.disable_gravatar=Gravatar Hizmet Dışı config.enable_federated_avatar=Birleştirilmiş Avatarları Etkinleştir -config.git_config=Git Yapılandırması -config.git_disable_diff_highlight=Değişiklik Sözdizimi Vurgusunu Devre Dışı Bırak -config.git_max_diff_lines=Maksimum Değişiklik Satırı (tek bir dosya için) -config.git_max_diff_line_characters=Maksimum Değişiklik Karakteri (tek bir satır için) -config.git_max_diff_files=Maksimum Değişiklik Dosyaları (gösterilecek) -config.git_gc_args=GC Argümanları -config.git_migrate_timeout=Göç işlemi zaman aşımı -config.git_mirror_timeout=Yansı Güncelleme Zaman Aşımı -config.git_clone_timeout=Klonlama İşlemi Zaman Aşımı -config.git_pull_timeout=Çekme İşlemi Zaman Aşımı -config.git_gc_timeout=GC İşlemi Zaman Aşımı - config.log_config=Log Yapılandırması config.logger_name_fmt=Günlükçü: %s config.disabled_logger=Devre Dışı @@ -3245,7 +3115,6 @@ notices.delete_success=Sistem bildirimleri silindi. self_check = Öz Denetim config_summary = Özet config_settings = Ayarlar -dashboard.sync_repo_tags = Etiketleri git verisinden veritabanına eşitle emails.delete = E-postayı Sil emails.delete_desc = Bu e-posta adresini silmek istediğinizden emin misiniz? emails.deletion_success = E-posta adresi silindi. @@ -3276,7 +3145,7 @@ auto_merge_pull_request=`%[3]s#%[2]s değişiklik isteği ot transfer_repo=depo %s %s'a aktarıldı push_tag=%[3]s etiketini %[4]s dalına gönderdi delete_tag=%[2]s etiketi %[3]s deposundan silindi -delete_branch=%[3]s deposundan %[2]s dalı silindi +delete_branch=%[3]s 'ndan %[2]s dalı silindi compare_branch=Karşılaştır compare_commits=%d işlemeyi karşılaştır compare_commits_general=İşlemeleri karşılaştır @@ -3285,7 +3154,7 @@ mirror_sync_create=%[3]s yeni referansını, %[3]s adresindeki %[2]s referansını eşitledi ve sildi approve_pull_request=`%[3]s#%[2]s değişiklik isteğini onayladı` reject_pull_request=`%[3]s#%[2]s için değişiklikler önerdi` -publish_release=`%[3]s deposu için "%[4]s" sürümü yayınlandı` +publish_release=` %[4]s 'de, saat %[3]s'de yayınlandı` review_dismissed=`%[3]s#%[2]s için %[4]s yorumunu reddetti` review_dismissed_reason=Sebep: create_branch=%[4]s deposunda %[3]s dalını oluşturdu @@ -3406,4 +3275,7 @@ regexp_tooltip = Arama terimini düzenli ifade olarak yorumla union = Anahtar sözcük -[munits.data] \ No newline at end of file +[munits.data] + +[repo.permissions] +code.write = Write: Depoya itele (push et), dallar ve anahtar kelimeler (tag'ler) oluştur. \ No newline at end of file diff --git a/options/locale/locale_uk-UA.ini b/options/locale/locale_uk-UA.ini index 7f713b9d87..b0c1210e02 100644 --- a/options/locale/locale_uk-UA.ini +++ b/options/locale/locale_uk-UA.ini @@ -542,7 +542,7 @@ CommitSummary=Підсумок коміту CommitMessage=Повідомлення коміту CommitChoice=Вибір коміту TreeName=Шлях до файлу -Content=Зміст +Content=Bміст require_error=` не може бути порожнім.` alpha_dash_error=` повинен містити тільки літерно-цифрові символи, дефіс («-») та підкреслення («_»).` @@ -1617,11 +1617,11 @@ pulls.unrelated_histories=Не вдалося об’єднати: head та bas pulls.merge_out_of_date=Не вдалося об’єднати: base було оновлено, поки відбувалося об’єднання. Підказка: спробуйте знову. pulls.push_rejected_summary=Повне повідомлення про відхилення pulls.open_unmerged_pull_exists=`Ви не можете знову відкрити, оскільки вже існує запит на злиття (#%d) з такою ж інформацією про злиття і в очікуванні.` -pulls.status_checking=Деякі перевірки ще не завершено +pulls.status_checking=Деякі перевірки очікують виконання pulls.status_checks_success=Усі перевірки завершено успішно -pulls.status_checks_warning=Декілька перевірок завершилися з попередженнями -pulls.status_checks_failure=Декілька перевірок не були успішними -pulls.status_checks_error=Декілька перевірок завершилися з помилками +pulls.status_checks_warning=Деякі перевірки повідомили про попередження +pulls.status_checks_failure=Деякі перевірки завершилися невдало +pulls.status_checks_error=Деякі перевірки повідомили про помилки pulls.status_checks_requested=Обов’язково pulls.status_checks_details=Подробиці pulls.update_branch=Оновити гілку шляхом злиття @@ -2213,7 +2213,7 @@ commit.cherry-pick-header = Висмикнути: %s commit.cherry-pick-content = Оберіть гілку, на яку висмикнути: pulls.expand_files = Розгорнути всі файли pulls.collapse_files = Згорнути всі файли -settings.packages_desc = Увімкнути реєстр пакунків репозиторію +settings.packages_desc = Увімкнути прив’язку пакунків issues.role.contributor_helper = У цьому репозиторії є коміти цього користувача. contributors.contribution_type.deletions = Видалення contributors.contribution_type.filter_label = Вид внеску: @@ -2880,58 +2880,14 @@ first_page=Перша last_page=Остання total=Разом: %d -dashboard.statistic=Підсумок -dashboard.operations=Технічне обслуговування -dashboard.system_status=Стан системи -dashboard.operation_name=Назва операції -dashboard.operation_switch=Перемкнути -dashboard.operation_run=Запустити dashboard.clean_unbind_oauth=Очистити список незавершених авторизацій OAuth dashboard.clean_unbind_oauth_success=Усі незавершені зв’язки OAuth видалено. -dashboard.task.started=Запущено завдання: %[1]s -dashboard.task.process=Завдання: %[1]s -dashboard.task.error=Помилка у завданні: %[1]s:%[3]s -dashboard.task.finished=Завершилося завдання, яке запустив %[2]s: %[1]s -dashboard.task.unknown=Невідоме завдання: %[1]s -dashboard.cron.started=Запущено Cron: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.error=Помилка в Cron: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s завершено dashboard.delete_inactive_accounts=Видалити всі неактивовані облікові записи -dashboard.delete_inactive_accounts.started=Запущено завдання видалення всі неактивованих облікових записів. dashboard.delete_repo_archives=Видалити всі архіви репозиторіїв (ZIP, TAR.GZ тощо) -dashboard.delete_repo_archives.started=Запущено завдання видалення всіх архівів репозиторіїв. dashboard.delete_missing_repos=Видалити всі записи про репозиторії з відсутніми файлами Git -dashboard.delete_missing_repos.started=Запущено завдання видалення всіх репозиторіїв, в яких відсутні файли Git. -dashboard.delete_generated_repository_avatars=Видалити репозиторій з згенерованими аватарами -dashboard.update_mirrors=Оновити дзеркала -dashboard.repo_health_check=Перевірка стану всіх репозиторіїв -dashboard.check_repo_stats=Перевірити статистику всіх репозиторіїв -dashboard.archive_cleanup=Видалити старі архіви репозиторіїв -dashboard.deleted_branches_cleanup=Прибрати видалені гілки -dashboard.update_migration_poster_id=Оновити перенесені ID авторів -dashboard.git_gc_repos=Виконати очистку сміття для всіх репозиторіїв -dashboard.resync_all_sshkeys=Оновити файл «.ssh/authorized_keys» з SSH-ключами Forgejo. -dashboard.resync_all_sshprincipals=Оновити файл «.ssh/authorized_principals» з SSH-принципалами Forgejo. -dashboard.resync_all_hooks=Пересинхронізувати Git-хуки в усіх репозиторіях (pre-receive, update, post-receive, proc-receive тощо) -dashboard.reinit_missing_repos=Переініціалізувати всі Git-репозиторії, для яких існують записи -dashboard.sync_external_users=Синхронізувати дані зовнішніх користувачів -dashboard.cleanup_hook_task_table=Очистити таблицю hook_task dashboard.delete_old_actions=Видалити всі старі активності з бази даних -dashboard.delete_old_actions.started=Розпочато видалення всіх старих активностей з бази даних. - users.user_manage_panel=Керування обліковими записами users.new_account=Створити обліковий запис -users.name=Ім’я користувача -users.full_name=Повне ім’я -users.activated=Активовано -users.admin=Адміністратор -users.restricted=Обмежено -users.2fa=2FA -users.repos=Репозиторії -users.created=Створено -users.last_login=Останній вхід -users.never_login=Ніколи не входив users.send_register_notify=Повідомити про реєстрацію на електронну пошту users.edit=Редагувати users.auth_source=Джерело автентифікації @@ -2941,7 +2897,7 @@ users.password_helper=Залиште пароль порожнім, щоб не users.update_profile_success=Обліковий запис користувача оновлено. users.edit_account=Редагувати обліковий запис users.max_repo_creation=Максимальна кількість репозиторіїв -users.max_repo_creation_desc=(Введіть -1, щоб використовувати глобальний ліміт за замовчуванням.) +users.max_repo_creation_desc=(Уведіть -1, щоб використовувати глобальний ліміт за замовчуванням.) users.is_activated=Активований обліковий запис users.prohibit_login=Призупинений обліковий запис users.is_admin=Обліковий запис адміністратора @@ -2969,26 +2925,10 @@ emails.duplicate_active=Ця електронна адреса вже актив emails.change_email_header=Оновити властивості електронної пошти orgs.org_manage_panel=Керування організаціями -orgs.name=Назва -orgs.teams=Команди -orgs.members=Учасники -orgs.new_orga=Нова організація - repos.repo_manage_panel=Керування репозиторіями repos.unadopted=Неприйняті репозиторії repos.unadopted.no_more=Не знайдено неприйнятих репозиторіїв. -repos.owner=Власник -repos.name=Назва repos.private=Приватний -repos.issues=Задачі -repos.size=Розмір - -packages.owner=Власник -packages.name=Назва -packages.type=Тип -packages.repository=Репозиторій -packages.size=Розмір - defaulthooks=Вебхуки за замовчуванням defaulthooks.add_webhook=Додати вебхук за замовчуванням defaulthooks.update_webhook=Оновити вебхук за замовчуванням @@ -3094,39 +3034,17 @@ config.offline_mode=Локальний режим config.disable_router_log=Вимкнути журнал роутера config.run_user=Користувач, від якого запустити config.run_mode=Режим виконання -config.git_version=Версія Git config.repo_root_path=Шлях до кореня репозиторію config.lfs_root_path=Кореневий шлях LFS config.log_file_root_path=Шлях до файлу журналу config.script_type=Тип скрипту config.reverse_auth_user=Користувач для авторизації на зворотному проксі -config.ssh_config=Конфігурація SSH -config.ssh_enabled=Увімкнено -config.ssh_start_builtin_server=Використовувати вбудований сервер -config.ssh_domain=Домен сервера SSH -config.ssh_port=Порт -config.ssh_listen_port=Порт, що прослуховується -config.ssh_root_path=Шлях до кореня -config.ssh_key_test_path=Шлях до тестового ключа -config.ssh_keygen_path=Шлях до генератора ключів («ssh-keygen») -config.ssh_minimum_key_size_check=Перевірка мінімального розміру ключа -config.ssh_minimum_key_sizes=Мінімальні розміри ключів - config.lfs_config=Конфігурація LFS config.lfs_enabled=Увімкнено config.lfs_content_path=Шлях до вмісту LFS config.lfs_http_auth_expiry=Термін дії LFS HTTP-автентифікації -config.db_config=Конфігурація бази даних -config.db_type=Тип -config.db_host=Хост -config.db_name=Ім’я -config.db_user=Ім’я користувача -config.db_schema=Схема -config.db_ssl_mode=SSL -config.db_path=Шлях - config.service_config=Конфігурація сервісу config.register_email_confirm=Вимагати підтвердити електронну пошту для реєстрації config.disable_register=Вимкнути самостійну реєстрацію @@ -3154,14 +3072,6 @@ config.queue_length=Довжина черги config.deliver_timeout=Тайм-аут доставки config.skip_tls_verify=Пропустити перевірку TLS -config.mailer_enabled=Увімкнено -config.mailer_name=Ім’я -config.mailer_smtp_port=Порт SMTP -config.mailer_user=Користувач -config.mailer_use_sendmail=Використовувати Sendmail -config.mailer_sendmail_path=Шлях до Sendmail -config.mailer_sendmail_args=Додаткові аргументи для Sendmail -config.mailer_sendmail_timeout=Тайм-аут Sendmail config.test_email_placeholder=Адреса електронної пошти (наприклад, test@example.com) config.send_test_mail=Надіслати тестового листа @@ -3188,18 +3098,6 @@ config.picture_service=Сервіс зображень config.disable_gravatar=Вимкнути Gravatar config.enable_federated_avatar=Увімкнути федеровані аватари -config.git_config=Конфігурація Git -config.git_disable_diff_highlight=Вимкнути підсвітку синтаксису diff -config.git_max_diff_lines=Максимум рядків на файл при порівнянні -config.git_max_diff_line_characters=Максимум символів на рядок при порівнянні -config.git_max_diff_files=Максимум файлів для показу при порівнянні -config.git_gc_args=Аргументи збирача сміття -config.git_migrate_timeout=Тайм-аут перенесення -config.git_mirror_timeout=Тайм-аут оновлення дзеркала -config.git_clone_timeout=Тайм-аут операції клонування -config.git_pull_timeout=Тайм-аут операції отримання змін -config.git_gc_timeout=Тайм-аут операції збирача сміття - config.log_config=Конфігурація журналу config.disabled_logger=Вимкнено config.access_log_mode=Режим журналювання доступу @@ -3237,28 +3135,19 @@ notices.op=Оп. notices.delete_success=Сповіщення системи видалено. self_check = Самоперевірка integrations = Інтеграції -packages.total_size = Загальний розмір: %s -packages.unreferenced_size = Розмір без посилань: %s -packages.creator = Творець -packages.version = Версія packages.package_manage_panel = Керування пакунками -packages.published = Опубліковано notices.operations = Дії packages.cleanup = Очистити недійсні дані packages.cleanup.success = Недійсні дані успішно очищено users.still_own_packages = Цей користувач досі володіє одним чи більше пакунками, спочатку видаліть ці пакунки. users.purge_help = Примусово видалити користувача і будь-які репозиторії, організації та пакунки, якими він володіє. Всі коментарі та задачі, створені цим користувачем, також будуть видалені. -dashboard.cleanup_packages = Очистити непридатні пакунки monitor.last_execution_result = Результат -repos.lfs_size = Розмір LFS config.allow_dots_in_usernames = Дозволити використання крапки в іменах користувачів. Не впливає на облікові записи, що вже існують. -config.mailer_enable_helo = Увімкнути HELO users.organization_creation.description = Дозволити створення нових організацій. users.cannot_delete_self = Ви не можете видалити себе monitor.processes_count = %d процесів monitor.stacktrace = Траса стека config.send_test_mail_submit = Надіслати -users.bot = Бот monitor.stats = Статистика users.new_success = Обліковий запис «%s» створено. config_settings = Налаштування @@ -3268,11 +3157,7 @@ config.app_slogan = Гасло екземпляра auths.tip.gitea = Зареєструйте нову програму OAuth. Інструкцію можна знайти на %s auths.tip.gitlab_new = Зареєструйте нову програму на %s monitor.duration = Тривалість (с) -users.reserved = Зарезервовано systemhooks.desc = Вебхуки автоматично сповіщають HTTP-сервер POST-запитами, коли в Forgejo відбуваються певні події. Вказані тут вебхуки спрацьовуватимуть для всіх репозиторіїв системи, тож врахуйте всі ймовірні наслідки для швидкодії. Докладніше — в посібнику з вебхуків. -dashboard.cleanup_actions = Очистити прострочені журнали й артефакти від Дій -dashboard.gc_lfs = Виконати очистку сміття метаоб’єктів LFS -dashboard.new_version_hint = Вийшла %s версія Forgejo, ви використовуєте %s. Докладніше читайте у блозі. self_check.database_collation_case_insensitive = База даних використовує зіставлення %s, яке є нечутливим до регістру. Forgejo може працювати з ним, однак можливі рідкісні випадки, коли щось працюватиме не так, як очікувалося. self_check.database_inconsistent_collation_columns = База даних використовує зіставлення %s, але ці стовпчики використовують невідповідні зіставлення. Це може спричинити деякі несподівані проблеми. self_check.database_fix_mysql = Користувачі MySQL та MariaDB можуть скористатися командою «forgejo doctor convert», щоб виправити проблеми зіставлення, або виправити проблему вручну за допомогою «ALTER ... COLLATE ...» SQL. @@ -3285,25 +3170,16 @@ config.test_mail_sent = Тестового листа надіслано «%s». emails.deletion_success = Адресу електронної пошти видалено. emails.delete_primary_email_error = Ви не можете видалити основну адресу електронної пошти. emails.change_email_text = Ви впевнені, що хочете оновити цю адресу електронної пошти? -dashboard.sync_branch.started = Розпочато синхронізацію гілок -dashboard.sync_tag.started = Розпочато синхронізацію тегів auths.tips.gmail_settings = Налаштування Gmail: -dashboard.task.cancelled = Завдання: %[1]s скасовано: %[3]s -config.mailer_protocol = Протокол -dashboard.cron.cancelled = Cron: %[1]s скасовано: %[3]s defaulthooks.desc = Вебхуки автоматично сповіщають HTTP-сервер POST-запитами, коли в Forgejo відбуваються певні події. Вказані тут вебхуки є типовими і будуть скопійовані до всіх нових репозиторіїв. Докладніше — в посібнику з вебхуків. assets = Ресурси коду auths.invalid_openIdConnectAutoDiscoveryURL = Неправильна URL-адреса автоматичного виявлення (повинна бути дійсна URL-адреса, що починається з http:// або https://) settings = Налаштування адміністратора -dashboard.start_schedule_tasks = Запустити заплановані завдання Дій config.logger_name_fmt = Журнал: %s config.set_setting_failed = Не вдалося встановити параметр %s config.access_log_template = Шаблон журналу доступу -dashboard.cancel_abandoned_jobs = Скасувати покинуті завдання Дій monitor.download_diagnosis_report = Завантажити діагностичний звіт auths.oauth2_map_group_to_team_removal = Видаляти користувачів із синхронізованих команд, якщо користувачі не належать до відповідної групи. -config.mailer_smtp_addr = Адреса SMTP -dashboard.update_checker = Перевірка оновлень auths.map_group_to_team_removal = Видаляти користувачів із синхронізованих команд, якщо користувачі не належать до відповідної групи LDAP auths.enable_ldap_groups = Увімкнути групи LDAP auths.unable_to_initialize_openid = Не вдалося ініціалізувати постачальника OpenID Connect: %s @@ -3312,10 +3188,8 @@ config.cache_test_slow = Перевірку кешу завершено успі config.cache_test_succeeded = Перевірку кешу завершено успішно, відповідь отримано через %s. config.cache_test = Перевірити кеш config.cache_test_failed = Не вдалося перевірити кеш: %v. -dashboard.rebuild_issue_indexer = Перебудувати індексатор задач users.details = Дані користувача auths.login_source_exist = Джерело автентифікації «%s» вже існує. -dashboard.delete_old_system_notices = Видалити всі старі сповіщення системи з бази даних users.purge = Повністю видалити користувач_ку auths.tips.oauth2.general.tip = При реєстрації нової програми OAuth2 URL-адреса зворотного виклику/переспрямування повинна бути: auths.attribute_avatar = Атрибут аватара @@ -3333,13 +3207,6 @@ identity_access = Ідентифікація і доступ users.activated.description = Завершення перевірки електронної пошти. Власник неактивованого облікового запису не зможе ввійти, допоки не підтвердить свою адресу електронної пошти. users.block.description = Заборонити цьому користувачу користуватися цим сервісом через їх обліковий запис та заборонити вхід до їхнього облікового запису. users.admin.description = Надати цьому користувачу доступ до всіх адміністративних функцій через інтерфейс та API. -config.mailer_config = Налаштування пошти -config.mailer_use_dummy = Болванка -dashboard.sync_repo_branches = Синхронізувати відсутні гілки з даних Git в базу даних -dashboard.sync_repo_tags = Синхронізувати теги з даних Git із базою даних -dashboard.stop_zombie_tasks = Зупинити зомбі-завдання Дій -dashboard.stop_endless_tasks = Зупинити нескінченні завдання Дій -users.remote = Віддалено users.restricted.description = Дозволити взаємодію лише з репозиторіями та організаціями, куди цього користувача додано як співавтора. Це запобігає доступу до публічних репозиторіїв на цьому екземплярі. auths.verify_group_membership = Перевірити членство у групі в LDAP (залиште фільтр порожнім, щоб пропустити) auths.oauth2_scopes = Додаткові області @@ -3350,7 +3217,7 @@ config.open_with_editor_app_help = Редактори «Відкрити в» д [action] create_repo=створює репозиторій %s rename_repo=перейменовує репозиторій з %[1]s на %[3]s -commit_repo=надслає зміни (push) до %[3]s в %[4]s +commit_repo=надсилає зміни (push) до %[3]s в %[4]s create_issue=`відкриває задачу %[3]s#%[2]s` close_issue=`закриває задачу %[3]s#%[2]s` reopen_issue=`повторно відкриває задачу %[3]s#%[2]s` @@ -3504,7 +3371,7 @@ runner_kind = Шукати ранери… test = Це тестовий текст. Він не відображається в інтерфейсі користувача Forgejo, а використовується з метою тестування [repo.permissions] -packages.read = Читання: дивитись та завантажити пакунки, призначені до репозиторію. +packages.read = Читання: дивитись і завантажувати пакунки, призначені до репозиторію. packages.write = Запис: публікувати та видаляти пакунки, призначені до репозиторію. releases.write = Запис: публікувати, змінювати і видаляти випуски та їхні ресурси. pulls.read = Читання: дивитись і створювати запити на злиття. diff --git a/options/locale/locale_vi.ini b/options/locale/locale_vi.ini index f8f5eba9d5..d92957d907 100644 --- a/options/locale/locale_vi.ini +++ b/options/locale/locale_vi.ini @@ -1443,9 +1443,6 @@ code.write = Ghi: Gửi lên kho mã, tạo các nhánh và các nhãn. [admin] config.open_with_editor_app_help = Các trình soạn thảo "Mở bằng" cho menu nhân bản. Nếu để trống, cái mặc định sẽ được dùng. Mở rộng để xem cái mặc định. -config.git_clone_timeout = Thời gian tối đa Thao tác Nhân bản -dashboard.sync_repo_tags = Đồng bộ hoá các nhãn từ dữ liệu Git đến cơ sở dữ liệu -dashboard.sync_tag.started = Đã bắt đầu đồng bộ hoá nhãn [action] merge_pull_request = ` đã hợp nhất yêu cầu kéo %[3]s#%[2]s` diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini index 2a6686b2ec..d251a036d5 100644 --- a/options/locale/locale_zh-CN.ini +++ b/options/locale/locale_zh-CN.ini @@ -41,7 +41,7 @@ repository=仓库 organization=组织 mirror=镜像 new_mirror=创建镜像 -new_fork=创建派生仓库 +new_fork=创建分叉仓库 new_project=创建项目 new_project_column=创建列 admin_panel=网站管理 @@ -54,7 +54,7 @@ all=所有 sources=原创 mirrors=镜像 collaborative=协作 -forks=派生 +forks=分叉 activities=最近活动 pull_requests=合并请求 @@ -127,8 +127,8 @@ filter = 筛选 filter.clear = 清除条件 filter.is_archived = 已存档 filter.not_archived = 未存档 -filter.is_fork = 是派生 -filter.not_fork = 不是派生 +filter.is_fork = 是分叉 +filter.not_fork = 不是分叉 filter.is_mirror = 是镜像 filter.not_mirror = 不是镜像 filter.is_template = 是模板 @@ -361,7 +361,7 @@ organizations=组织 go_to=转到 code=代码 code_last_indexed_at=最后索引于%s -relevant_repositories_tooltip=派生的、缺少主题、图标和描述的仓库已被隐藏。 +relevant_repositories_tooltip=分叉的、缺少主题、图标和描述的仓库已被隐藏。 relevant_repositories=只显示相关的仓库,显示未过滤结果。 [auth] @@ -787,7 +787,7 @@ ssh_desc=这些SSH公钥已经关联到你的账号。相应的私钥拥有完 principal_desc=这些已关联到你的账号的SSH证书主体将有你的所有仓库的完全访问权。 gpg_desc=这些GPG公钥已经关联到你的账号,并用于验证您的提交。请妥善保管你的私钥,因为这些私钥可以以你的身份签名提交。 ssh_helper=需要帮助?请查看如何生成SSH密钥常见SSH问题寻找答案。 -gpg_helper=需要帮助吗?建议看一看GitHub 关于GPG的指南。 +gpg_helper=需要帮助吗?建议看一看关于GPG的指南。 key_content_ssh_placeholder=以“ssh-ed25519”、“ssh-rsa”、“ecdsa-sha2-nistp256”、“ecdsa-sha2-nistp384”、“ecdsa-sha2-nistp521”、“sk-ecdsa-sha2-nistp256@openssh.com”或“sk-ssh-ed25519@openssh.com”开头 key_content_gpg_placeholder=以“-----BEGIN PGP PUBLIC KEY BLOCK-----”开头 add_new_principal=添加规则 @@ -1026,16 +1026,16 @@ visibility=可见性 visibility_description=只有组织所有人或拥有权利的组织成员才能看到。 visibility_helper=将仓库设为私有 visibility_helper_forced=站点管理员强制要求新仓库为私有。 -visibility_fork_helper=(修改该值将会影响到所有派生仓库) +visibility_fork_helper=(修改该值将会影响到所有分叉仓库) clone_helper=不知道如何克隆?查看帮助。 -fork_repo=派生仓库 -fork_from=派生自 -already_forked=你已经派生过%s -fork_to_different_account=派生到其他账号 -fork_visibility_helper=无法更改派生仓库的可见性。 -fork_branch=要复制到派生的分支 +fork_repo=分叉仓库 +fork_from=分叉自 +already_forked=你已经分叉过%s +fork_to_different_account=分叉到其他账号 +fork_visibility_helper=无法更改分叉仓库的可见性。 +fork_branch=要复制到分叉的分支 all_branches=所有分支 -fork_no_valid_owners=这个代码仓库无法被派生,因为没有有效的所有者。 +fork_no_valid_owners=这个代码仓库无法被分叉,因为没有有效的所有者。 use_template=使用此模板 download_zip=下载ZIP download_tar=下载TAR.GZ @@ -1083,7 +1083,7 @@ mirror_password_help=更改用户名以删除已储存的密码。 watchers=关注者 stargazers=称赞者 stars_remove_warning=这将清除此仓库的所有点赞数。 -forks=派生仓库 +forks=分叉 reactions_more=再加载 %d unit_disabled=站点管理员已禁用此仓库单元。 language_other=其它 @@ -1163,17 +1163,17 @@ migrate.migrating_failed=从%s迁移失败。 migrate.migrating_failed.error=迁移失败:%s migrate.migrating_failed_no_addr=迁移失败。 mirror_from=镜像自地址 -forked_from=派生自 +forked_from=分叉自 generated_from=生成自 -fork_from_self=无法派生您拥有的仓库。 -fork_guest_user=请先登录再派生此仓库。 +fork_from_self=无法分叉您拥有的仓库。 +fork_guest_user=请先登录再分叉此仓库。 watch_guest_user=请登录后再关注此仓库。 star_guest_user=请登录后再点赞此仓库。 unwatch=取消关注 watch=关注 unstar=取消点赞 star=点赞 -fork=派生 +fork=分叉 download_archive=下载此仓库 more_operations=更多操作 @@ -1210,7 +1210,7 @@ release=版本发布 releases=版本发布 tag=Git标签 released_this=发布 -file.title=%s位于%s +file.title=%s(%s) file_raw=原始文件 file_history=历史 file_view_source=源码模式 @@ -1262,7 +1262,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=您必须先派生这个仓库才能对此文件进行修改操作。 +editor.fork_before_edit=您必须先分叉这个仓库才能对此文件进行修改操作。 editor.delete_this_file=删除文件 editor.must_have_write_access=您必须具有写权限才能对此文件进行修改操作。 editor.file_delete_success=文件%s已被删除。 @@ -1398,23 +1398,23 @@ issues.filter_reviewers=筛选评审员 issues.new=创建议题 issues.new.title_empty=标题不能为空 issues.new.labels=标签 -issues.new.no_label=暂无标签 +issues.new.no_label=无 issues.new.clear_labels=清除选中的标签 issues.new.projects=项目 issues.new.clear_projects=清除选中的项目 -issues.new.no_projects=暂无项目 +issues.new.no_projects=无 issues.new.open_projects=开放中的项目 issues.new.closed_projects=已关闭的项目 issues.new.no_items=无可选项 issues.new.milestone=里程碑 -issues.new.no_milestone=暂无里程碑 +issues.new.no_milestone=无 issues.new.clear_milestone=清除选中的里程碑 issues.new.open_milestone=开放中的里程碑 issues.new.closed_milestone=已关闭的里程碑 issues.new.assignees=指派成员 issues.new.clear_assignees=取消指派成员 -issues.new.no_assignees=未指派成员 -issues.new.no_reviewers=暂无评审员 +issues.new.no_assignees=无 +issues.new.no_reviewers=无 issues.choose.get_started=开始 issues.choose.open_external_link=开启 issues.choose.blank=默认模板 @@ -1490,8 +1490,8 @@ issues.filter_sort.nearduedate=到期日从近到远 issues.filter_sort.farduedate=到期日从远到近 issues.filter_sort.moststars=点赞由多到少 issues.filter_sort.feweststars=点赞由少到多 -issues.filter_sort.mostforks=派生由多到少 -issues.filter_sort.fewestforks=派生由少到多 +issues.filter_sort.mostforks=分叉由多到少 +issues.filter_sort.fewestforks=分叉由少到多 issues.action_open=开放 issues.action_close=关闭 issues.action_label=标签 @@ -1534,7 +1534,7 @@ issues.reopened_at=重新打开了此议题 %s issues.commit_ref_at=从提交中引用了此议题 %s issues.ref_issue_from=引用了此议题%[3]s %[1]s issues.ref_pull_from=引用了此合并请求%[3]s %[1]s -issues.ref_closing_from=a href="%[2]s">从合并请求%[3]s引用了此议题,该合并请求会关闭此议题 %[1]s +issues.ref_closing_from=从合并请求%[3]s引用了此议题,该合并请求会关闭此议题 %[1]s issues.ref_reopening_from=从合并请求%[3]s引用了此议题,该合并请求会重新打开此议题 %[1]s issues.ref_from=来自%[1]s issues.author=作者 @@ -1761,7 +1761,7 @@ pulls.cannot_merge_work_in_progress=此合并请求被标记为正在进行的 pulls.still_in_progress=仍在进行中? pulls.add_prefix=添加%s前缀 pulls.remove_prefix=删除%s前缀 -pulls.data_broken=此合并请求因为派生仓库信息缺失而中断。 +pulls.data_broken=此合并请求因为分叉仓库信息缺失而中断。 pulls.files_conflicted=有更改与目标分支冲突。 pulls.is_checking=正在进行合并冲突检测,请稍后再试。 pulls.is_ancestor=此分支已经包含在目标分支中,没有更改可以合并。 @@ -2074,7 +2074,7 @@ settings.pulls.allow_rebase_update=允许通过变基更新拉取请求分支 settings.pulls.default_delete_branch_after_merge=默认合并后删除合并请求分支 settings.pulls.default_allow_edits_from_maintainers=默认开启允许维护者编辑 settings.releases_desc=启用版本发布 -settings.packages_desc=启用仓库软件包注册中心 +settings.packages_desc=允许链接软件包 settings.projects_desc=启用仓库项目 settings.actions_desc=使用Forgejo Actions启用集成CI/CD管道 settings.admin_settings=管理员设置 @@ -2095,9 +2095,9 @@ settings.convert_confirm=转换仓库 settings.convert_succeed=此镜像仓库已经转换为普通仓库。 settings.convert_fork=转换为普通仓库 settings.convert_fork_desc=您可以将该镜像仓库转换为普通仓库,但此操作不可逆。 -settings.convert_fork_notices_1=该操作会将派生仓库转换为普通仓库,但该操作不可逆。 +settings.convert_fork_notices_1=该操作会将分叉仓库转换为普通仓库,但该操作不可逆。 settings.convert_fork_confirm=转换仓库 -settings.convert_fork_succeed=此派生仓库已经转换为普通仓库。 +settings.convert_fork_succeed=此分叉仓库已经转换为普通仓库。 settings.transfer.title=转让仓库所有权 settings.transfer.rejected=代码库转移被拒绝。 settings.transfer.success=代码库转移成功。 @@ -2135,7 +2135,7 @@ settings.delete=删除本仓库 settings.delete_desc=删除仓库是永久的,无法撤消。 settings.delete_notices_1=-此操作不可被回滚。 settings.delete_notices_2=-此操作将永久删除仓库%s,包括Git数据、议题、评论、百科和协作者的操作权限。 -settings.delete_notices_fork_1=-在此仓库删除后,它的派生仓库将变成独立仓库。 +settings.delete_notices_fork_1=-在此仓库删除后,它的分叉仓库将变成独立仓库。 settings.deletion_success=仓库已被删除。 settings.update_settings_success=仓库设置已更新。 settings.update_settings_no_unit=该代码库应该至少允许某种形式的交互。 @@ -2200,8 +2200,8 @@ settings.event_create=创建 settings.event_create_desc=创建分支或标签。 settings.event_delete=删除 settings.event_delete_desc=分支或标签已删除。 -settings.event_fork=派生 -settings.event_fork_desc=仓库被派生。 +settings.event_fork=分叉 +settings.event_fork_desc=仓库被分叉。 settings.event_wiki=百科 settings.event_wiki_desc=创建、重命名、编辑或删除了百科页面。 settings.event_release=版本发布 @@ -2374,7 +2374,7 @@ settings.matrix.room_id=房间ID settings.matrix.message_type=消息类型 settings.archive.button=存档仓库 settings.archive.header=存档此仓库 -settings.archive.text=存档后,仓库将变为完全只读并从首页隐藏。没有人能够推送新的提交(你也不能!)、打开议题及合并请求。建议记录存档的原因,以便引导未来计划从派生本仓库的开发者。 +settings.archive.text=存档后,仓库将变为完全只读并从首页隐藏。没有人能够推送新的提交(你也不能!)、打开议题及合并请求。建议记录存档的原因,以便引导未来计划从分叉本仓库的开发者。 settings.archive.success=仓库已成功存档。 settings.archive.error=仓库在存档时出现异常。请通过日志获取详细信息。 settings.archive.error_ismirror=不能存档镜像仓库。 @@ -2608,7 +2608,7 @@ pulls.made_using_agit = AGit activity.navbar.pulse = 动态 activity.navbar.code_frequency = 代码频率 activity.navbar.recent_commits = 近期提交 -pulls.agit_explanation = 该合并请求是用AGit工作流创建的。使用AGit,贡献者无需派生或创建分支就可以直接通过 “git push” 提出更改代码。 +pulls.agit_explanation = 该合并请求是用AGit工作流创建的。使用AGit,贡献者无需分叉或创建分支就可以直接通过 “git push” 提出更改代码。 commits.search_branch = 此分支 open_with_editor = 使用%s打开 settings.rename_branch_failed_protected = 无法重命名受保护的分支%s。 @@ -2883,78 +2883,14 @@ last_page=末页 total=总计:%d settings=管理设置 -dashboard.new_version_hint=Forgejo %s现已可用,您正在运行%s。查看博客了解详情。 -dashboard.statistic=摘要 -dashboard.operations=维护操作 -dashboard.system_status=系统状态 -dashboard.operation_name=操作名称 -dashboard.operation_switch=开关 -dashboard.operation_run=执行 dashboard.clean_unbind_oauth=清理未绑定的OAuth连接 dashboard.clean_unbind_oauth_success=所有未绑定的OAuth连接已被删除。 -dashboard.task.started=已开始任务:%[1]s -dashboard.task.process=任务:%[1]s -dashboard.task.cancelled=任务:%[1]s已取消:%[3]s -dashboard.task.error=任务中的错误:%[1]s:%[3]s -dashboard.task.finished=任务:%[2]s启动的%[1]s已完成 -dashboard.task.unknown=未知任务:%[1]s -dashboard.cron.started=已开始计划任务:%[1]s -dashboard.cron.process=计划任务:%[1]s -dashboard.cron.cancelled=定时任务:%[1]s已取消:%[3]s -dashboard.cron.error=任务中的错误:%s:%[3]s -dashboard.cron.finished=任务:%[1]s已经完成 dashboard.delete_inactive_accounts=删除所有未激活的帐户 -dashboard.delete_inactive_accounts.started=删除所有未激活的账户任务已启动。 dashboard.delete_repo_archives=删除所有仓库的存档(ZIP、TAR.GZ等) -dashboard.delete_repo_archives.started=删除所有仓库存档任务已启动。 dashboard.delete_missing_repos=删除所有丢失Git文件的仓库 -dashboard.delete_missing_repos.started=删除所有丢失Git文件的仓库任务已启动。 -dashboard.delete_generated_repository_avatars=删除生成的仓库头像 -dashboard.sync_repo_branches=将缺少的分支从Git数据同步到数据库 -dashboard.sync_repo_tags = 同步Git数据中的标签至数据库 -dashboard.update_mirrors=更新镜像仓库 -dashboard.repo_health_check=对所有仓库健康检查 -dashboard.check_repo_stats=检查所有仓库统计 -dashboard.archive_cleanup=删除旧的仓库存档 -dashboard.deleted_branches_cleanup=清理已删除的分支 -dashboard.update_migration_poster_id=更新迁移的发布者ID -dashboard.git_gc_repos=对仓库进行垃圾回收 -dashboard.resync_all_sshkeys=使用Forgejo的SSH密钥更新“.ssh/authorized_keys”文件。 -dashboard.resync_all_sshprincipals=使用Forgejo的SSH规则更新“.ssh/authorized_principals”文件。 -dashboard.resync_all_hooks=重新同步所有仓库的Git钩子(pre-receive、update、post-receive、proc-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.delete_old_actions=从数据库中删除所有旧操作记录 -dashboard.delete_old_actions.started=已开始从数据库中删除所有旧操作记录。 -dashboard.update_checker=更新检查器 -dashboard.delete_old_system_notices=从数据库中删除所有旧系统通知 -dashboard.gc_lfs=垃圾回收LFS元数据 -dashboard.stop_zombie_tasks=停止僵尸操作任务 -dashboard.stop_endless_tasks=停止无休止的操作任务 -dashboard.cancel_abandoned_jobs=取消放弃的操作任务 -dashboard.start_schedule_tasks=开始安排操作任务 -dashboard.sync_branch.started=分支同步已开始 -dashboard.sync_tag.started = 标签同步已开始 -dashboard.rebuild_issue_indexer=重建议题索引 - users.user_manage_panel=管理用户帐户 users.new_account=创建新帐户 -users.name=用户名 -users.full_name=全名 -users.activated=已激活 -users.admin=管理员 -users.restricted=受限 -users.reserved=保留 -users.bot=机器人 -users.remote=远程 -users.2fa=两步验证 -users.repos=仓库数 -users.created=创建时间 -users.last_login=上次登录 -users.never_login=从未登录 users.send_register_notify=通过邮件发送注册通知 users.new_success=用户账户'%s'已被创建。 users.edit=修改 @@ -3000,35 +2936,13 @@ emails.change_email_header=更新电子邮件属性 emails.change_email_text=您确定要更新该电子邮件地址吗? orgs.org_manage_panel=组织管理 -orgs.name=名称 -orgs.teams=团队 -orgs.members=成员 -orgs.new_orga=创建新的组织 - repos.repo_manage_panel=仓库管理 repos.unadopted=未收录仓库 repos.unadopted.no_more=找不到更多未被收录的仓库。 -repos.owner=所有者 -repos.name=名称 repos.private=私有 -repos.issues=议题数 -repos.size=大小 -repos.lfs_size=LFS大小 - packages.package_manage_panel=软件包管理 -packages.total_size=总大小:%s -packages.unreferenced_size=未引用大小:%s packages.cleanup=清理过期数据 packages.cleanup.success=清理过期数据成功 -packages.owner=所有者 -packages.creator=创建者 -packages.name=名称 -packages.version=版本 -packages.type=类型 -packages.repository=仓库 -packages.size=大小 -packages.published=已发布 - defaulthooks=默认Web钩子 defaulthooks.desc=当某些Forgejo事件触发时,Web钩子自动向服务器发出HTTP POST请求。这里定义的Web钩子是默认配置,将被复制到所有新的仓库中。详情请访问Web钩子指南。 defaulthooks.add_webhook=添加默认Web钩子 @@ -3157,7 +3071,6 @@ config.offline_mode=离线模式 config.disable_router_log=关闭路由日志 config.run_user=以用户名运行 config.run_mode=运行模式 -config.git_version=Git版本 config.app_data_path=应用数据路径 config.repo_root_path=仓库根目录 config.lfs_root_path=LFS根目录 @@ -3165,32 +3078,11 @@ config.log_file_root_path=日志路径 config.script_type=脚本类型 config.reverse_auth_user=反向代理认证用户 -config.ssh_config=SSH配置 -config.ssh_enabled=启用 -config.ssh_start_builtin_server=使用内置SSH服务器 -config.ssh_domain=SSH服务器域名 -config.ssh_port=端口 -config.ssh_listen_port=监听端口 -config.ssh_root_path=根目录 -config.ssh_key_test_path=密钥测试路径 -config.ssh_keygen_path=密钥生成器(“ssh-keygen”)路径 -config.ssh_minimum_key_size_check=密钥最小长度检查 -config.ssh_minimum_key_sizes=密钥最小长度限制 - config.lfs_config=LFS配置 config.lfs_enabled=启用 config.lfs_content_path=LFS内容存放目录 config.lfs_http_auth_expiry=LFS HTTP身份验证过期时间 -config.db_config=数据库配置 -config.db_type=类型 -config.db_host=主机 -config.db_name=数据库名称 -config.db_user=用户名 -config.db_schema=架构模式 -config.db_ssl_mode=SSL -config.db_path=数据库路径 - config.service_config=服务配置 config.register_email_confirm=需要电子邮件确认注册 config.disable_register=禁止用户注册 @@ -3219,19 +3111,6 @@ config.queue_length=队列长度 config.deliver_timeout=推送超时 config.skip_tls_verify=跳过TLS验证 -config.mailer_config=邮件配置 -config.mailer_enabled=启用服务 -config.mailer_enable_helo=启用HELO -config.mailer_name=任务名称 -config.mailer_protocol=协议 -config.mailer_smtp_addr=SMTP地址 -config.mailer_smtp_port=SMTP端口 -config.mailer_user=发送者帐号 -config.mailer_use_sendmail=使用Sendmail -config.mailer_sendmail_path=Sendmail路径 -config.mailer_sendmail_args=Sendmail的额外参数 -config.mailer_sendmail_timeout=Sendmail超时 -config.mailer_use_dummy=Dummy config.test_email_placeholder=电子邮址(例如:test@example.com) config.send_test_mail=发送测试邮件 config.send_test_mail_submit=发送 @@ -3261,18 +3140,6 @@ config.picture_service=图片服务 config.disable_gravatar=禁用Gravatar头像 config.enable_federated_avatar=启用联邦头像 -config.git_config=Git配置 -config.git_disable_diff_highlight=禁用差异对比语法高亮 -config.git_max_diff_lines=差异对比显示的最大行数(单个文件) -config.git_max_diff_line_characters=差异对比显示的最大字符数(单行) -config.git_max_diff_files=差异对比显示的最大文件数 -config.git_gc_args=GC参数 -config.git_migrate_timeout=迁移操作超时 -config.git_mirror_timeout=镜像更新操作超时 -config.git_clone_timeout=克隆操作超时 -config.git_pull_timeout=拉取操作超时 -config.git_gc_timeout=GC操作超时 - config.log_config=日志配置 config.logger_name_fmt=日志:%s config.disabled_logger=禁用 @@ -3443,7 +3310,7 @@ workflow.enable=启用工作流 workflow.enable_success=工作流"%s"已成功启用。 workflow.disabled=工作流已禁用。 -need_approval_desc=该工作流由派生仓库的合并请求所触发,需要批准方可运行。 +need_approval_desc=该工作流由分叉仓库的合并请求所触发,需要批准方可运行。 variables.id_not_exist=ID为 %d 的变量不存在。 workflow.dispatch.trigger_found = 此工作流有workflow_dispatch事件触发器。 @@ -3496,7 +3363,7 @@ issue_kind = 搜索议题…… pull_kind = 搜索合并请求…… exact_tooltip = 仅包含与搜索词精确匹配的结果 union_tooltip = 包括与以空格分隔的关键字中任意一个相匹配的结果 -union = 交集 +union = 关键字 regexp = 正则表达式 regexp_tooltip = 将搜索内容解释为正则表达式 diff --git a/options/locale/locale_zh-HK.ini b/options/locale/locale_zh-HK.ini index becef6d682..831189ee67 100644 --- a/options/locale/locale_zh-HK.ini +++ b/options/locale/locale_zh-HK.ini @@ -806,43 +806,16 @@ first_page=首頁 last_page=末頁 total=總計:%d -dashboard.operation_name=操作名稱 -dashboard.operation_switch=開關 -dashboard.operation_run=執行 dashboard.clean_unbind_oauth=清理未綁定OAuth的連結 dashboard.clean_unbind_oauth_success=所有未綁定 OAuth 的連結已刪除。 -dashboard.reinit_missing_repos=重新初始化所有遺失具已存在記錄的Git 儲存庫 -dashboard.sync_external_users=同步外部使用者資料 -users.full_name=組織全名 -users.activated=已啟用 -users.admin=管理員 -users.repos=儲存庫數 -users.created=建立時間 users.edit=編輯 users.auth_source=認證源 users.local=本地 emails.activated=已啟用 orgs.org_manage_panel=組織管理 -orgs.name=組織名稱 -orgs.teams=團隊數 -orgs.members=成員數 - repos.repo_manage_panel=儲存庫管理 -repos.owner=所有者 -repos.name=儲存庫名稱 repos.private=私有庫 -repos.issues=問題數 -repos.size=大小 - -packages.owner=管理員 -packages.name=組織名稱 -packages.type=認證類型 -packages.repository=儲存庫 -packages.size=大小 - - - auths.name=認證名稱 auths.type=認證類型 auths.enabled=已啟用 @@ -886,30 +859,13 @@ config.server_config=伺服器設定 config.custom_conf=設定檔案路徑 config.disable_router_log=關閉路由日誌 config.run_mode=執行模式 -config.git_version=Git 版本 config.repo_root_path=儲存庫目錄 config.lfs_root_path=LFS 根目錄 config.script_type=腳本類型 config.reverse_auth_user=反向代理認證 -config.ssh_config=SSH 設定 -config.ssh_enabled=已啟用 -config.ssh_port=埠 -config.ssh_listen_port=監聽埠 -config.ssh_root_path=根路徑 -config.ssh_key_test_path=金鑰測試路徑 -config.ssh_keygen_path=金鑰產生 (' ssh-keygen ') 路徑 -config.ssh_minimum_key_size_check=金鑰最小大小檢查 -config.ssh_minimum_key_sizes=金鑰最小大小 - config.lfs_enabled=已啟用 -config.db_config=資料庫設定 -config.db_type=資料庫類型 -config.db_host=主機地址 -config.db_name=資料庫名稱 -config.db_path=資料庫路徑 - config.service_config=服務設定 config.show_registration_button=顯示註冊按鈕 config.active_code_lives=啟用用戶連結有效期 @@ -919,11 +875,6 @@ config.queue_length=隊列長度 config.deliver_timeout=推送超時 config.skip_tls_verify=略過 TLS 驗證 -config.mailer_enabled=啟用服務 -config.mailer_name=發送者名稱 -config.mailer_smtp_port=SMTP 主機端口 -config.mailer_user=發送者帳號 - config.oauth_config=社交帳號設定 config.oauth_enabled=啟用服務 @@ -945,18 +896,6 @@ config.picture_service=圖片服務 config.disable_gravatar=禁用 Gravatar 頭像 config.enable_federated_avatar=開啟聯合頭像 -config.git_config=Git 設定 -config.git_disable_diff_highlight=禁用比較語法高亮 -config.git_max_diff_lines=Max Diff 線 (對於單個檔) -config.git_max_diff_line_characters=最大比較的字元 (單行) -config.git_max_diff_files=Max Diff 檔 (顯示) -config.git_gc_args=GC 參數 -config.git_migrate_timeout=移動超時 -config.git_mirror_timeout=鏡像更新超時 -config.git_clone_timeout=複製操作超時 -config.git_pull_timeout=操作超時 -config.git_gc_timeout=GC 操作超時 - config.log_config=日誌設定 diff --git a/options/locale/locale_zh-TW.ini b/options/locale/locale_zh-TW.ini index 7f55fd662d..ed89d490e7 100644 --- a/options/locale/locale_zh-TW.ini +++ b/options/locale/locale_zh-TW.ini @@ -245,7 +245,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 根目錄 @@ -276,11 +276,11 @@ server_service_title=伺服器和第三方服務設定 offline_mode=啟用本地模式 offline_mode.description=停用第三方內容傳遞網路並在本地提供所有資源。 disable_gravatar=停用 Gravatar -disable_gravatar.description=停用 Gravatar 或其他第三方大頭貼來源。除非使用者將自己的大頭貼上傳至站點,否則將使用預設的大頭貼作為使用者的大頭貼。 +disable_gravatar.description=停用 Gravatar 或其他第三方大頭貼來源。除非使用者將自己的大頭貼上傳至實例,否則將使用預設的大頭貼作為使用者的大頭貼。 federated_avatar_lookup=啟用聯邦式大頭貼 federated_avatar_lookup.description=使用 Libravatar 尋找大頭貼。 disable_registration=停用自助註冊 -disable_registration.description=只有站點管理員才能建立新的使用者帳號。強烈建議保持註冊處於停用狀態,除非你打算運作公共站點並準備處理大量垃圾帳號。 +disable_registration.description=只有實例管理員才能建立新的使用者帳號。強烈建議保持註冊處於停用狀態,除非你打算運作公共實例並準備處理大量垃圾帳號。 allow_only_external_registration.description=使用者只能使用配置的外部服務來建立新帳號。 openid_signin=啟用 OpenID 登入 openid_signin.description=允許使用者透過 OpenID 登入。 @@ -328,7 +328,7 @@ smtp_from_invalid = 郵件寄件人的地址無效 config_location_hint = 這些設定將被儲存在: allow_dots_in_usernames = 允許使用者在使用者名稱中使用英文句點。不影響既有帳號。 enable_update_checker_helper_forgejo = 透過檢查 release.forgejo.org 的 DNS TXT 記錄來定期檢查新的 Forgejo 版本。 -app_slogan = 站點標語 +app_slogan = 實例標語 app_slogan_helper = 在這裡輸入您站點的標語。留空來停用。 allow_only_external_registration = 僅允許透過外部服務註冊 @@ -424,7 +424,7 @@ change_unconfirmed_email_summary = 更改接收帳號啟用信的信箱地址。 change_unconfirmed_email = 如果您在註冊帳號時寫錯了信箱地址,您可以在下面更改它。您會在這個新地址收到一封確認信。 change_unconfirmed_email_error = 無法更改信箱地址:%v last_admin = 您無法刪除最後一個管理員。必須至少有一個管理員。 -prohibit_login_desc = 你的帳號已被暫停與站點互動。聯絡站點管理員以重新獲得存取權限。 +prohibit_login_desc = 你的帳號已被暫停與實例互動。聯絡實例管理員以重新獲得存取權限。 sign_up_successful = 已成功建立帳號。歡迎! invalid_code_forgot_password = 您的確認代碼無效或已過期。點擊這裡來開始一個新的連線階段。 reset_password_wrong_user = 您以 %s 登入,但是帳號復原連結是給 %s 的 @@ -664,10 +664,10 @@ followers.title.few = 位追蹤者 following.title.one = 關注中 following.title.few = 關注中 public_activity.visibility_hint.admin_private = 由於你是管理員,因此你可以看到此活動,但使用者希望將其保持私密。 -public_activity.visibility_hint.self_private_profile = 由於你的個人資料是私密的,因此只有你和站點管理員可以看到你的活動。配置。 +public_activity.visibility_hint.self_private_profile = 由於你的個人資料是私密的,因此只有你和實例管理員可以看到你的活動。配置。 public_activity.visibility_hint.self_public = 除私人空間的互動外,你的活動對所有人都可見。配置。 public_activity.visibility_hint.admin_public = 每個人都可以看到此活動,但作為管理員,你還可以看到私人空間中的互動。 -public_activity.visibility_hint.self_private = 你的活動僅對你和站點管理員可見。配置。 +public_activity.visibility_hint.self_private = 你的活動僅對你和實例管理員可見。配置。 [settings] profile=個人資料 @@ -973,8 +973,8 @@ webauthn_key_loss_warning = 如果您弄丟了您的安全金鑰,您將無法 user_unblock_success = 已成功解除對此使用者的封鎖。 webauthn_alternative_tip = 您可能想新增一個額外的驗證方法。 user_block_success = 已成功封鎖此使用者。 -access_token_desc = 選擇的符記僅授權相對應的 API路徑。請參閱文件來了解更多。 -oauth2_application_locked = 可以在組態中設定 Forgejo 預先註冊一些 OAuth2 應用程式。為了避免不可預料的情況,它們無法被編輯或是移除。請參閱 OAuth2 文件來了解更多。 +access_token_desc = 選擇的權杖僅授權相對應的 API 路徑。請參閱文件以了解更多資訊。 +oauth2_application_locked = 可以在組態中設定 Forgejo 預先註冊一些 OAuth2 應用程式。為了避免不可預料的情況,它們無法被編輯或是移除。請參閱 OAuth2 文件以了解更多。 hidden_comment_types_description = 在這裡選取的留言種類將不會顯示於問題頁面中。舉例來說,核取「標籤」將隱藏所有「使用者新增/移除了<標籤>」留言。 authorized_oauth2_applications_description = 您已授權給這些第三方應用程式取用您的 Forgejo 個人帳號的權限。請撤銷您不再使用的應用程式的權限。 language.localization_project = 幫助我們翻譯 Forgejo 至您的語言!了解更多。 @@ -982,7 +982,7 @@ language.description = 這個語言會被儲存至您的帳號,並被用作您 user_block_yourself = 你不能封鎖自己。 change_username_redirect_prompt.with_cooldown.one = 舊的使用者名稱將在 %[1]d 天的冷卻期後對所有人開放。你仍然可以在冷卻期內重新獲得舊的使用者名稱。 change_username_redirect_prompt.with_cooldown.few = 舊的使用者名稱將在 %[1]d 天的冷卻期後對所有人開放。你仍然可以在冷卻期內重新獲得舊的使用者名稱。 -keep_activity_private.description = 你的公開活動只有你和站點管理員可見。 +keep_activity_private.description = 你的公開活動只有你和實例管理員可見。 quota.rule.exceeded = 已超出 quota.sizes.assets.packages.all = 軟體包 storage_overview = 儲存空間概覽 @@ -995,9 +995,9 @@ quota.sizes.assets.attachments.all = 附件 quota.sizes.assets.artifacts = 製品 quota.sizes.wiki = 百科 quota = 配額 -access_token_regeneration = 重新產生存取符記 -access_token_regeneration_desc = 重新產生存取符記將會撤銷使用該符記的應用程式對您帳號的存取權限,此操作無法還原。是否繼續? -regenerate_token_success = 符記已重新產生。使用該符記的應用程式將不再具有你帳號的存取權限,必須更新為新的符記後才能繼續使用。 +access_token_regeneration = 重新產生存取權杖 +access_token_regeneration_desc = 重新產生存取權杖將會撤銷使用該權杖的應用程式對您帳號的存取權限,此操作無法還原。是否繼續? +regenerate_token_success = 權杖已重新產生。使用該權杖的應用程式將不再具有你帳號的存取權限,必須更新為新的權杖後才能繼續使用。 quota.applies_to_user = 以下配額規則適用於您的帳號 quota.applies_to_org = 以下配額規則適用於此組織 quota.rule.exceeded.helper = 符合此規則的物件總大小已超出配額限制。 @@ -1124,7 +1124,7 @@ migrate_options_lfs_endpoint.description.local=同時也支援本地伺服器路 migrate_repo=遷移儲存庫 migrate.clone_address=從 URL 遷移 / Clone migrate.clone_address_desc=現有儲存庫的 HTTP(S) 或 Git 「clone」 URL -migrate.github_token_desc=由於 GitHub API 的速率限制,您可在此輸入一個或多個由半形逗號「,」分隔的符記來加快遷移速度。警告:濫用此功能可能會違反該服務提供者的政策並導致帳號被封鎖。 +migrate.github_token_desc=由於 GitHub API 的速率限制,您可在此輸入一個或多個由半形逗號「,」分隔的權杖來加快遷移速度。警告:濫用此功能可能會違反該服務提供者的政策並導致帳號被封鎖。 migrate.clone_local_path=或者是本地端伺服器路徑 migrate.permission_denied=您並沒有導入本地儲存庫的權限。 migrate.permission_denied_blocked=您無法從未允許的主機匯入,請聯絡管理員檢查以下設定值 ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS。 @@ -2105,7 +2105,7 @@ settings.event_pull_request_sync_desc=分支已自動與目標分支同步更新 settings.event_package=軟體包 settings.event_package_desc=已在儲存庫中建立或刪除軟體包。 settings.branch_filter=分支篩選 -settings.branch_filter_desc=推送、建立分支、刪除分支事件的白名單,請使用 glob 比對式樣。如果留白或輸入*,所有分支的事件都會被回報。語法參見 %[2]s。範例:master, {master,release*}。 +settings.branch_filter_desc=推送、建立分支、刪除分支事件的白名單,請使用 glob 比對式樣。如果留白或輸入*,所有分支的事件都會被回報。語法請參見 %[2]s 文件。範例:master{master,release*}。 settings.authorization_header=Authorization 標頭 settings.authorization_header_desc=存在時將將包含此 Authorization 標頭在請求中。例: %s。 settings.active=啟用 @@ -2605,7 +2605,7 @@ new_advanced = 進階設定 new_advanced_expand = 點擊以展開 editor.commit_email = 提交電子信箱 archive.pull.noreview = 此儲存庫已封存。你不能審閱合併請求。 -settings.matrix.access_token_helper = 建議為此設定一個專用的 Matrix 帳號。存取符記可以從 Element 網路使用者端(於私人/隱身分頁)> 使用者選單(左上角)> 所有設定 > 幫助和關於 > 進階 > 存取符記(位於 Homeserver 網址正下方)檢索。關閉私人/隱身分頁(登出將使存取符記失效)。 +settings.matrix.access_token_helper = 建議為此設定一個專用的 Matrix 帳號。存取權杖可以從 Element 網路使用者端(於私人/隱身分頁)> 使用者選單(左上角)> 所有設定 > 幫助和關於 > 進階 > 存取權杖(位於 Homeserver 網址正下方)檢索。關閉私人/隱身分頁(登出將使存取權杖失效)。 release.title = 發行標題 settings.protect_patterns = 式樣 mirror_use_ssh.helper = 當你選擇此選項時,Forgejo 將透過 Git SSH 鏡像儲存庫並為你建立金鑰對。你必須確保已產生的公鑰已有授權才能推送至目標儲存庫。選擇此選項時,你不能使用基於密碼的授權。 @@ -2645,7 +2645,7 @@ pulls.edit.already_changed = 無法儲存對合併請求的變更。看起來內 settings.add_collaborator_blocked_our = 無法新增協作者,因為儲存庫擁有者已封鎖他們。 issues.edit.already_changed = 無法儲存對問題的變更。看起來內容已被另一個使用者變更。請重新整理頁面並嘗試再次編輯以避免覆蓋其變更 settings.federation_following_repos = 關注儲存庫的網址。以半形分號「;」分隔,沒有空格。 -settings.federation_not_enabled = 你的站點上未啟用聯邦。 +settings.federation_not_enabled = 你的實例上未啟用聯邦。 settings.federation_apapiurl = 此儲存庫的聯邦網址。將其複製並貼上至另一個儲存庫的聯邦設定中作為關注儲存庫的網址。 settings.enter_repo_name = 準確輸入擁有者和儲存庫名稱,如下所示: settings.wiki_rename_branch_main = 規範化百科分支名稱 @@ -2675,7 +2675,7 @@ pulls.recently_pushed_new_branches = 你已於 %[2]s 推送分支 登入以建立新的合併請求。 issues.num_reviews_one = %d 則審閱 issues.num_reviews_few = %d 則審閱 -new_from_template_description = 你可以選擇此站點上現有的儲存庫範本並套用其設定。 +new_from_template_description = 你可以選擇此實例上現有的儲存庫範本並套用其設定。 auto_init_description = 使用 README 開始 Git 歷史記錄並可選擇新增 License 和 .gitignore 檔案。 issues.reaction.add = 新增反應 issues.reaction.alt_few = %[1]s 對 %[2]s 做出了反應。 @@ -2693,7 +2693,7 @@ settings.protect_invalid_status_check_pattern = 狀態檢查模式無效: 「%s settings.ignore_stale_approvals_desc = 不計算在較舊提交上進行的核可(過時的審核)作為合併請求的核可數量。如果過時的審核已經被捨棄,則無關緊要。 settings.tags.protection.pattern.description = 您可以使用單一名稱或 glob 模式或正則表達式來匹配多個標籤。詳情請參閱 受保護標籤指南。 settings.thread_id = 線程 ID -settings.archive.text = 封存儲存庫將使其完全變為唯讀。它將從儀表板中隱藏。沒有人(甚至包括您!)將能夠進行新的提交,或打開任何問題或合併請求。 +settings.archive.text = 封存儲存庫將使其完全變為唯讀。它將從儀表板中隱藏。沒有人(甚至包括您!)將能夠進行新的提交,或打開任何問題或合併請求。建議記錄封存原因,以協助未來計畫 Fork 此儲存庫的開發者理解相關背景。 diff.comment.add_line_comment = 新增行評論 pulls.editable = 可以編輯 settings.units.units = 功能 @@ -2725,7 +2725,7 @@ settings.event_action_success_desc = Action 執行成功。 settings.sourcehut_builds.manifest_path = 建置清單路徑 settings.sourcehut_builds.visibility = 作業可見性 settings.event_action_failure_desc = Action 執行以失敗結束。 -settings.protect_branch_name_pattern_desc = 受保護分支名稱的模式。請參閱文件說明以了解模式語法。範例:main、release/** +settings.protect_branch_name_pattern_desc = 受保護分支名稱的模式。請參閱文件以了解模式語法。範例:main、release/** settings.sourcehut_builds.access_token_helper = 具有 JOBS:RW 權限的存取權杖。請在 meta.sr.ht 上產生一個 builds.sr.ht 權杖,或一個 具有機密存取權限的 builds.sr.ht 權杖。 settings.matrix.room_id_helper = 可從 Element 網頁版客戶端取得 Room ID:進入房間設定 > 進階 > Internal room ID。範例:%s。 settings.web_hook_name_sourcehut_builds = SourceHut Builds @@ -2877,66 +2877,14 @@ first_page=首頁 last_page=末頁 total=總計:%d -dashboard.new_version_hint=現已推出 Forgejo %s,您正在執行 %s。詳情請參閱部落格的說明。 -dashboard.statistic=摘要 -dashboard.operations=維護作業 -dashboard.system_status=系統狀態 -dashboard.operation_name=作業名稱 -dashboard.operation_switch=開關 -dashboard.operation_run=執行 dashboard.clean_unbind_oauth=清理未綁定的 OAuth 連結 dashboard.clean_unbind_oauth_success=所有未綁定的 OAuth 連結已刪除。 -dashboard.task.started=已開始的任務: %[1]s -dashboard.task.process=任務: %[1]s -dashboard.task.error=任務中的錯誤: %[1]s: %[3]s -dashboard.task.finished=任務: 已完成由 %[2]s 啟動的 %[1]s -dashboard.task.unknown=未知的任務: %[1]s -dashboard.cron.started=已開始的 Cron: %[1]s -dashboard.cron.process=Cron: %[1]s -dashboard.cron.error=Cron 中的錯誤: %s: %[3]s -dashboard.cron.finished=Cron: %[1]s 已完成 dashboard.delete_inactive_accounts=刪除所有未啟用帳號 -dashboard.delete_inactive_accounts.started=刪除所有未啟用帳號的任務已啟動。 dashboard.delete_repo_archives=刪除所有儲存庫存檔 (ZIP、TAR.GZ 等) -dashboard.delete_repo_archives.started=刪除所有儲存庫存檔的任務已啟動。 dashboard.delete_missing_repos=刪除所有遺失 Git 檔案的儲存庫 -dashboard.delete_missing_repos.started=刪除所有遺失 Git 檔案的儲存庫的任務已啟動。 -dashboard.delete_generated_repository_avatars=刪除自動產生的儲存庫大頭貼 -dashboard.update_mirrors=更新鏡像 -dashboard.repo_health_check=對所有儲存庫進行健康檢查 -dashboard.check_repo_stats=檢查所有儲存庫的統計資料 -dashboard.archive_cleanup=刪除舊的儲存庫存檔 -dashboard.deleted_branches_cleanup=清理已刪除的分支 -dashboard.update_migration_poster_id=更新遷移發布者 ID -dashboard.git_gc_repos=對所有儲存庫進行垃圾回收 -dashboard.resync_all_sshkeys=使用 Forgejo 的 SSH 金鑰更新「.ssh/authorized_keys」檔案。 -dashboard.resync_all_sshprincipals=使用 Forgejo 的 SSH 規則更新「.ssh/authorized_principals」檔案。 -dashboard.resync_all_hooks=重新同步所有儲存庫的 Git hooks(pre-receive、update、post-receive、proc-receive 等) -dashboard.reinit_missing_repos=重新初始化所有記錄存在但遺失的 Git 儲存庫 -dashboard.sync_external_users=同步外部使用者資料 -dashboard.cleanup_hook_task_table=清理 hook_task 資料表 -dashboard.cleanup_packages=清理過期的軟體包 dashboard.delete_old_actions=從資料庫刪除所有舊操作紀錄 -dashboard.delete_old_actions.started=從資料庫刪除所有舊操作紀錄的任務已啟動。 -dashboard.update_checker=更新檢查器 -dashboard.delete_old_system_notices=從資料庫刪除所有舊系統提示 -dashboard.gc_lfs=對 LFS meta objects 進行垃圾回收 -dashboard.stop_zombie_tasks=停止殭屍 Actions 任務 -dashboard.stop_endless_tasks=停止永不停止的 Actions 任務 -dashboard.cancel_abandoned_jobs=取消已放棄的 Actions 作業 - users.user_manage_panel=使用者帳號管理 users.new_account=建立使用者帳號 -users.name=帳號 -users.full_name=全名 -users.activated=已啟用 -users.admin=管理員 -users.restricted=受限 -users.2fa=兩步驟驗證 -users.repos=儲存庫數 -users.created=建立時間 -users.last_login=上次登入 -users.never_login=從未登入 users.send_register_notify=透過電子郵件傳送註冊通知 users.new_success=已建立新帳號「%s」。 users.edit=編輯 @@ -2979,32 +2927,11 @@ emails.duplicate_active=此信箱已被其他使用者使用。 emails.change_email_header=更新電子信箱屬性 orgs.org_manage_panel=組織管理 -orgs.name=名稱 -orgs.teams=團隊數 -orgs.members=成員數 -orgs.new_orga=新增組織 - repos.repo_manage_panel=儲存庫管理 repos.unadopted=未接管的儲存庫 repos.unadopted.no_more=找不到未接管的儲存庫。 -repos.owner=所有者 -repos.name=名稱 repos.private=私有 -repos.issues=問題數 -repos.size=大小 - packages.package_manage_panel=軟體包管理 -packages.total_size=總大小:%s -packages.unreferenced_size=未參考大小:%s -packages.owner=所有者 -packages.creator=建立者 -packages.name=名稱 -packages.version=版本 -packages.type=類型 -packages.repository=儲存庫 -packages.size=大小 -packages.published=已發布 - defaulthooks=預設 Webhook defaulthooks.add_webhook=新增預設 Webhook defaulthooks.update_webhook=更新預設 Webhook @@ -3093,7 +3020,7 @@ auths.tips=幫助提示 auths.tips.oauth2.general=OAuth2 認證 auths.tip.oauth2_provider=OAuth2 提供者 auths.tip.bitbucket=註冊新的 OAuth 使用者端並加入權限「Account - Read」。網址:%s -auths.tip.nextcloud=在您的站點上,於選單「設定 -> 安全性 -> OAuth 2.0 客戶端」註冊新的 OAuth 客戶端 +auths.tip.nextcloud=在您的實例上,於選單「設定 -> 安全性 -> OAuth 2.0 客戶端」註冊新的 OAuth 客戶端 auths.tip.dropbox=建立新的 App。網址:%s auths.tip.facebook=註冊新的應用程式並新增產品「Facebook 登入」。網址:%s auths.tip.github=註冊新的 OAuth 應用程式。網址:%s @@ -3129,39 +3056,17 @@ config.offline_mode=本地模式 config.disable_router_log=停用路由日誌 config.run_user=以使用者執行 config.run_mode=執行模式 -config.git_version=Git 版本 config.repo_root_path=儲存庫根路徑 config.lfs_root_path=LFS 根路徑 config.log_file_root_path=日誌路徑 config.script_type=腳本類型 config.reverse_auth_user=反向代理認證使用者 -config.ssh_config=SSH 設定 -config.ssh_enabled=已啟用 -config.ssh_start_builtin_server=使用內建伺服器 -config.ssh_domain=SSH 伺服器域名 -config.ssh_port=連接埠 -config.ssh_listen_port=監聽埠 -config.ssh_root_path=根路徑 -config.ssh_key_test_path=金鑰測試路徑 -config.ssh_keygen_path=金鑰產生(ssh-keygen)路徑 -config.ssh_minimum_key_size_check=金鑰最小大小檢查 -config.ssh_minimum_key_sizes=金鑰最小大小 - config.lfs_config=LFS 設定 config.lfs_enabled=已啟用 config.lfs_content_path=LFS 內容路徑 config.lfs_http_auth_expiry=LFS HTTP 驗證有效時間 -config.db_config=資料庫組態 -config.db_type=資料庫類型 -config.db_host=主機地址 -config.db_name=名稱 -config.db_user=使用者名稱 -config.db_schema=結構描述 -config.db_ssl_mode=SSL -config.db_path=資料庫路徑 - config.service_config=服務設定 config.register_email_confirm=要求註冊時確認電子郵件 config.disable_register=停用自助註冊 @@ -3189,19 +3094,6 @@ config.queue_length=佇列長度 config.deliver_timeout=傳送逾時 config.skip_tls_verify=略過 TLS 驗證 -config.mailer_config=郵件程式設定 -config.mailer_enabled=啟用服務 -config.mailer_enable_helo=啟用 HELO -config.mailer_name=發送者名稱 -config.mailer_protocol=協定 -config.mailer_smtp_addr=SMTP 位址 -config.mailer_smtp_port=SMTP 連接埠 -config.mailer_user=發送者帳號 -config.mailer_use_sendmail=使用 Sendmail -config.mailer_sendmail_path=Sendmail 路徑 -config.mailer_sendmail_args=Sendmail 參數 -config.mailer_sendmail_timeout=Sendmail 逾時 -config.mailer_use_dummy=Dummy config.test_email_placeholder=電子信箱 (例:test@example.com) config.send_test_mail=寄送測試郵件 config.test_mail_failed=傳送測試郵件至「%s」時失敗: %v @@ -3230,18 +3122,6 @@ config.picture_service=圖片服務 config.disable_gravatar=停用 Gravatar config.enable_federated_avatar=啟用聯邦式大頭貼 -config.git_config=Git 設定 -config.git_disable_diff_highlight=停用比較語法高亮 -config.git_max_diff_lines=差異比較時顯示的最多行數 -config.git_max_diff_line_characters=差異比較時顯示的最多字元數 -config.git_max_diff_files=差異比較時顯示的最多檔案數 -config.git_gc_args=GC 參數 -config.git_migrate_timeout=遷移逾時 -config.git_mirror_timeout=鏡像更新逾時 -config.git_clone_timeout=拓製逾時 -config.git_pull_timeout=Pull 作業逾時 -config.git_gc_timeout=GC 作業逾時 - config.log_config=日誌設定 config.disabled_logger=已停用 config.access_log_mode=存取日誌模式 @@ -3284,20 +3164,12 @@ notices.delete_success=已刪除系統提示。 settings = 管理員設定 emails.change_email_text = 您確定要更新這個電子信箱地址嗎? monitor.download_diagnosis_report = 下載診斷報告 -dashboard.task.cancelled = 作業:%[1]s 已被取消:%[3]s -dashboard.cron.cancelled = 定時作業:%[1]s 已被取消:%[3]s -dashboard.cleanup_actions = 清理過期的 Action 日誌和物件 -users.bot = 機器人 -users.remote = 遠端 config.access_log_template = 存取日誌範本 monitor.stats = 統計資料 self_check.no_problem_found = 未發現任何問題。 config.send_test_mail_submit = 寄送 users.details = 使用者詳細資訊 assets = 程式碼資產 -dashboard.sync_branch.started = 分支同步已開始 -dashboard.rebuild_issue_indexer = 重建問題索引 -repos.lfs_size = LFS 大小 packages.cleanup = 清除過期的資料 packages.cleanup.success = 已成功清除過期資料 monitor.processes_count = %d 個程序 @@ -3306,18 +3178,15 @@ config.cache_test = 測試快取 config_settings = 設定 config_summary = 概要 emails.delete = 刪除電子信箱地址 -dashboard.sync_tag.started = 標籤同步已開始 -users.reserved = 已保留 auths.tips.gmail_settings = Gmail 設定: config.app_data_path = 應用程式資料路徑 integrations = 整合 emails.delete_primary_email_error = 你無法刪除主要電子郵件。 emails.deletion_success = 該電子郵件地址已被刪除。 emails.delete_desc = 你確定你要刪除此電子郵件地址嗎? -dashboard.start_schedule_tasks = 開始計劃 Actions 任務 auths.default_domain_name = 用於電子郵件地址的預設域名 users.organization_creation.description = 允許建立新組織。 -config.app_slogan = 站點口號 +config.app_slogan = 實例口號 self_check = 自助檢查 config.logger_name_fmt = 日誌:%s self_check.database_fix_mysql = 對於 MySQL/MariaDB 的使用者,你可以使用命令「forgejo doctor convert」來修復排序規則問題,或者你也可以手動透過「ALTER ... COLLATE ...」SQL 修復問題。 @@ -3330,16 +3199,14 @@ config.cache_test_succeeded = 快取測試成功,在 %s 內收到回應。 config.cache_test_failed = 無法探測快取:%v。 self_check.database_collation_case_insensitive = 資料庫正在使用排序規則 %s,這是一種不敏感的排序規則。雖然 Forgejo 可以與其配合使用,但是在一些罕見情況下可能會出現無法如預期運作的情況。 config.open_with_editor_app_help = 拓製選單中的「開啟方式」編輯器。如果留空則將使用預設值。展開以查看預設值。 -dashboard.sync_repo_tags = 將標籤從 Git 資料同步至資料庫 self_check.database_collation_mismatch = 期望資料庫使用的排序規則:%s config.allow_dots_in_usernames = 允許使用者在使用者名稱中使用點。不會影響現有帳號。 -dashboard.sync_repo_branches = 將缺少的分支從 Git 資料同步至資料庫 defaulthooks.desc = 當某些 Forgejo 事件觸發時,Webhook 會自動向伺服器發出 HTTP POST 請求。此處定義的 Webhook 是預設的,將複製至所有新的儲存庫中。更多資訊請參考Webhook 指南。 users.local_import.description = 允許從伺服器的本機檔案系統匯入儲存庫。這可能是個安全問題。 config.cache_test_slow = 快取測試成功,但是回應很慢:%s。 users.activated.description = 完成電子郵件驗證。未啟動帳號的擁有者將無法登入,直至電子郵件驗證完成。 auths.tips.oauth2.general.tip = 當註冊新的 OAuth2 驗證時,回呼/重新導向網址應該是: -users.restricted.description = 僅允許與將此使用者新增為合作者的儲存庫和組織進行互動。這會阻止存取此站點上的公共儲存庫。 +users.restricted.description = 僅允許與將此使用者新增為合作者的儲存庫和組織進行互動。這會阻止存取此實例上的公共儲存庫。 users.admin.description = 授予此使用者透過網頁介面和 API 提供的所有管理功能的完全存取權。 auths.tip.gitea = 註冊一個新的 OAuth2 應用程式。指南可在 %s 找到 diff --git a/options/locale_next/locale_ar.json b/options/locale_next/locale_ar.json index a2358fd17b..2d1400037c 100644 --- a/options/locale_next/locale_ar.json +++ b/options/locale_next/locale_ar.json @@ -1,4 +1,41 @@ { + "admin.users.never_login": "لم يلج قَط", + "admin.users.last_login": "آخر ولوج", + "admin.users.created": "أُنشئ", + "admin.users.repos": "المستودعات", + "admin.users.reserved": "محجوز", + "admin.users.restricted": "مقيَّد", + "admin.users.admin": "المدير", + "admin.users.activated": "مُفعّل", + "admin.users.full_name": "الاسم الكامل", + "admin.users.name": "اسم المستخدم", + "admin.packages.size": "الحجم", + "admin.packages.repository": "المستودع", + "admin.packages.type": "النوع", + "admin.packages.version": "النُسخة", + "admin.packages.name": "الاسم", + "admin.packages.creator": "المُنشئ", + "admin.packages.owner": "المالك", + "admin.packages.total_size": "إجمالي الحجم: %s", + "admin.repos.size": "الحجم", + "admin.repos.issues": "المسائل", + "admin.repos.name": "الاسم", + "admin.repos.owner": "المالك", + "admin.orgs.new_orga": "منظمة جديدة", + "admin.orgs.members": "الأعضاء", + "admin.orgs.teams": "الفِرق", + "admin.orgs.name": "الاسم", + "admin.dashboard.rebuild_issue_indexer": "أعد بناء مُفهرِس المسائل", + "admin.dashboard.delete_old_system_notices": "احذف كل إشعارات النظام القديمة من قاعدة البيانات", + "admin.dashboard.update_checker": "فاحص التحديث", + "admin.dashboard.resync_all_sshkeys": "حدّث ملف '.ssh/authorized_keys' بمفاتيح SSH لفورجيو.", + "admin.dashboard.sync_repo_tags": "زامن الوسوم من بيانات جِت إلى قاعدة البيانات", + "admin.dashboard.delete_generated_repository_avatars": "احذف الصورة الرمزية المولّدة للمستودع", + "admin.dashboard.sync_tag.started": "بدأ تزامن الوسوم", + "admin.dashboard.operation_name": "اسم العملية", + "admin.dashboard.system_status": "حالة النظام", + "admin.dashboard.operations": "عمليات الصيانة", + "admin.dashboard.statistic": "الملخص", "admin.monitor.queue.settings.changed": "تم تحديث الإعدادات", "admin.monitor.queue.settings.submit": "حدّث الإعدادات", "admin.monitor.queue.type": "النوع", diff --git a/options/locale_next/locale_az.json b/options/locale_next/locale_az.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/options/locale_next/locale_az.json @@ -0,0 +1 @@ +{} diff --git a/options/locale_next/locale_bg.json b/options/locale_next/locale_bg.json index 9b833c070d..e678948e58 100644 --- a/options/locale_next/locale_bg.json +++ b/options/locale_next/locale_bg.json @@ -1,4 +1,36 @@ { + "admin.config.db.path": "Път", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.user": "Потребителско име", + "admin.config.db.name": "Име", + "admin.config.db.type": "Тип", + "admin.config.mailer.user": "Потребител", + "admin.config.mailer.protocol": "Протокол", + "admin.config.mailer.name": "Име", + "admin.config.git.version": "Git версия", + "admin.config.git.header": "Git конфигурация", + "admin.config.ssh.header": "SSH конфигурация", + "admin.users.bot": "Бот", + "admin.users.admin": "Админ", + "admin.users.full_name": "Пълно име", + "admin.users.name": "Потребителско име", + "admin.packages.size": "Размер", + "admin.packages.repository": "Хранилище", + "admin.packages.type": "Тип", + "admin.packages.version": "Версия", + "admin.packages.name": "Име", + "admin.packages.creator": "Създател", + "admin.packages.owner": "Притежател", + "admin.packages.total_size": "Общ размер: %s", + "admin.repos.size": "Размер", + "admin.repos.issues": "Задачи", + "admin.repos.name": "Име", + "admin.repos.owner": "Притежател", + "admin.orgs.new_orga": "Нова организация", + "admin.orgs.members": "Участници", + "admin.orgs.teams": "Екипи", + "admin.orgs.name": "Име", + "admin.dashboard.new_version_hint": "Forgejo %s вече е наличен, вие изпълнявате %s. Проверете блога за повече подробности.", "admin.monitor.queue.type": "Тип", "admin.monitor.queue": "Опашка: %s", "admin.monitor.queues": "Опашки", diff --git a/options/locale_next/locale_ca.json b/options/locale_next/locale_ca.json index 95db3f2943..28ab51ede2 100644 --- a/options/locale_next/locale_ca.json +++ b/options/locale_next/locale_ca.json @@ -1,4 +1,117 @@ { + "admin.config.db.path": "Camí", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Esquema", + "admin.config.db.user": "Nom d'usuari", + "admin.config.db.name": "Nom", + "admin.config.db.host": "Amfitrió", + "admin.config.db.type": "Tipus", + "admin.config.db.header": "Configuració de la base de dades", + "admin.config.mailer.user": "Usuari", + "admin.config.mailer.smtp.port": "Port SMTP", + "admin.config.mailer.smtp.addr": "Amfitrió SMTP", + "admin.config.mailer.enable_helo": "Habilita HELO", + "admin.config.mailer.protocol": "Protocol", + "admin.config.mailer.sendmail.timeout": "Temps d'espera per Sendmail", + "admin.config.mailer.sendmail.args": "Arguments extra per Sendmail", + "admin.config.mailer.sendmail.path": "Camí de Sendmail", + "admin.config.mailer.sendmail.use": "Usa Sendmail", + "admin.config.mailer.name": "Nom", + "admin.config.mailer.enabled": "Habilitat", + "admin.config.mailer.header": "Configuració del remitent", + "admin.config.git.version": "Versió de Git", + "admin.config.ssh.minimum_key_sizes": "Mides mínimes de clau", + "admin.config.ssh.minimum_key_size_check": "Comprovació mínima de la mida de clau", + "admin.config.ssh.keygen_path": "Camí keygen (\"ssh-keygen\")", + "admin.config.ssh.key_test_path": "Camí al test de clau", + "admin.config.ssh.root_path": "Camí arrel", + "admin.config.ssh.listen_port": "Port d'escolta", + "admin.config.ssh.port": "Port", + "admin.config.ssh.domain": "Domini del servidor SSH", + "admin.config.ssh.use_builtin_server": "Usa el servidor integrat", + "admin.config.ssh.enabled": "Habilitat", + "admin.config.ssh.header": "Configuració SSH", + "admin.users.never_login": "Mai ha iniciat sessió", + "admin.users.last_login": "Darrer inici de sessió", + "admin.users.created": "Creats", + "admin.users.repos": "Repos", + "admin.users.2fa": "A2F", + "admin.users.remote": "Remot", + "admin.users.bot": "Bot", + "admin.users.reserved": "Reservat", + "admin.users.restricted": "Restringit", + "admin.users.admin": "Administrador", + "admin.users.activated": "Activat", + "admin.users.full_name": "Nom complet", + "admin.users.name": "Nom d'usuari", + "admin.packages.published": "Publicat", + "admin.packages.size": "Mida", + "admin.packages.repository": "Repositori", + "admin.packages.type": "Tipus", + "admin.packages.version": "Versió", + "admin.packages.name": "Nom", + "admin.packages.creator": "Creador", + "admin.packages.owner": "Propietari", + "admin.packages.unreferenced_size": "Mida sense referenciar: %s", + "admin.packages.total_size": "Mida total: %s", + "admin.repos.lfs_size": "Mida LFS", + "admin.repos.size": "Mida", + "admin.repos.issues": "Problemes", + "admin.repos.name": "Nom", + "admin.repos.owner": "Propietari", + "admin.orgs.new_orga": "Nova organització", + "admin.orgs.members": "Membres", + "admin.orgs.teams": "Equips", + "admin.orgs.name": "Nom", + "admin.dashboard.rebuild_issue_indexer": "Reconstruir l'indexador d'incidències", + "admin.dashboard.cancel_abandoned_jobs": "Cancel·lar feines d'accions abandonades", + "admin.dashboard.stop_endless_tasks": "Aturar tasques d'accions infinites", + "admin.dashboard.stop_zombie_tasks": "Aturar tasques d'accions zombi", + "admin.dashboard.gc_lfs": "Recull la brossa d'objectes meta LFS", + "admin.dashboard.delete_old_system_notices": "Eliminar totes les notificacions de sistema antigues de la base de dades", + "admin.dashboard.update_checker": "Comprovador d'actualització", + "admin.dashboard.cleanup_actions": "Netejar registres i artefactes d'accions caducats", + "admin.dashboard.cleanup_packages": "Netejar paquets caducats", + "admin.dashboard.cleanup_hook_task_table": "Netejar la taula hook_task", + "admin.dashboard.sync_external_users": "Sincronitzar dades d'usuari externes", + "admin.dashboard.reinit_missing_repos": "Reinicialitza tots els repositoris Git que falten i que tenen registres", + "admin.dashboard.resync_all_hooks": "Resincronitzar els ganxos Git de tots els repositoris (pre-receive, update, post-receive, proc-receive, …)", + "admin.dashboard.resync_all_sshprincipals": "Actualitzar el fitxer \".ssh/authorized_principals\" amb els principals SSH de Forgejo.", + "admin.dashboard.resync_all_sshkeys": "Actualitzar el fitxer \".ssh/authorized_keys\" amb les claus SSH de Forgejo.", + "admin.dashboard.git_gc_repos": "Recull la brossa de tots els repositoris", + "admin.dashboard.update_migration_poster_id": "Actualitza les ID de l'autor de migració", + "admin.dashboard.deleted_branches_cleanup": "Netejar branques eliminades", + "admin.dashboard.archive_cleanup": "Suprimir els arxius de repositori antics", + "admin.dashboard.check_repo_stats": "Comprovar totes les estadístiques del repositori", + "admin.dashboard.repo_health_check": "Comprovar la salut de tots els repositoris", + "admin.dashboard.update_mirrors": "Actualitzar les rèpliques", + "admin.dashboard.sync_repo_tags": "Sincronitzar les etiquetes de les dades de Git a la base de dades", + "admin.dashboard.sync_repo_branches": "La sincronització ha ignorat branques de les dades Git a la base de dades", + "admin.dashboard.delete_generated_repository_avatars": "Suprimir els avatars de repositori generats", + "admin.dashboard.sync_tag.started": "S'ha iniciat la sincronització d'etiquetes", + "admin.dashboard.sync_branch.started": "S'ha iniciat la sincronització de branca", + "admin.dashboard.delete_old_actions.started": "Eliminar totes les activitats antigues des que s'ha iniciat la base de dades.", + "admin.dashboard.delete_missing_repos.started": "S'ha iniciat la tasca per suprimir tots els repositoris que no tinguin els fitxers de Git.", + "admin.dashboard.delete_repo_archives.started": "S'ha iniciat la tasca per suprimir tots els arxius dels repositoris.", + "admin.dashboard.delete_inactive_accounts.started": "S'ha iniciat la tasca per suprimir tots els comptes no activats.", + "admin.dashboard.cron.finished": "Cron: %[1]s ha finalitzat", + "admin.dashboard.cron.error": "Error amb Cron: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s cancel·lat: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Cron iniciat: %[1]s", + "admin.dashboard.task.unknown": "Tasca desconeguda: %[1]s", + "admin.dashboard.task.finished": "Tasca: %[1] iniciada per %[2s] ha finalitzat", + "admin.dashboard.task.error": "Error en la tasca: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Tasca: %[1]s cancel·lada: %[3]s", + "admin.dashboard.task.process": "Tasca: %[1]s", + "admin.dashboard.task.started": "Tasca iniciada: %[1]s", + "admin.dashboard.operation_run": "Executar", + "admin.dashboard.operation_switch": "Intercanvia", + "admin.dashboard.operation_name": "Nom d'operació", + "admin.dashboard.system_status": "Estat del sistema", + "admin.dashboard.operations": "Operacions de manteniment", + "admin.dashboard.statistic": "Resum", + "admin.dashboard.new_version_hint": "Forgejo %s és ara disponible, esteu executant %s. Comprova el blog per més detalls.", "admin.monitor.queue.type": "Tipus", "admin.monitor.queue.name": "Nom", "admin.users.list_status_filter.not_2fa_enabled": "A2F desactivada", @@ -656,5 +769,90 @@ "actions.runners.edit_runner.regenerate_token_label": "Regenera testimoni", "actions.runners.edit_runner.regenerate_token_help": "El testimoni actual s'invalidarà immediatament. Rebreu un nou testimoni en la pàgina següent.", "actions.runners.edit_runner.save_button": "Desa", - "actions.runners.edit_runner.cancel_button": "Cancel·la" + "actions.runners.edit_runner.cancel_button": "Cancel·la", + "admin.config.federation.digest_algorithm": "Algoritme del resum de signatura", + "admin.system_status.profiling_bucket_hash_table_obtained": "S'ha obtingut el perfil de contenidor de la taula hash", + "admin.system_status.other_system_allocation_obtained": "S'ha obtingut un altre sistema d'assignació", + "admin.system_status.gc_times": "Vegades del GC", + "admin.monitor.queues": "Cues", + "admin.monitor.queue": "Cua: %s", + "admin.monitor.queue.exemplar": "Tipus Exemplar", + "admin.monitor.queue.numberworkers": "Nombre de treballadors", + "admin.monitor.queue.activeworkers": "Treballadors actius", + "admin.monitor.queue.maxnumberworkers": "Nombre màxim de treballadors", + "admin.monitor.queue.numberinqueue": "Número en cua", + "admin.monitor.queue.review_add": "Revisa / afegeix treballadors", + "admin.monitor.queue.settings.title": "Configuració d'agrupament", + "admin.monitor.queue.settings.description": "Els agrupaments creixen dinàmicament en resposta al blocat de la cua de treballadors.", + "admin.monitor.queue.settings.maxnumberworkers": "Nombre màxim de treballadors", + "admin.monitor.queue.settings.maxnumberworkers.placeholder": "Actualment %[1]d", + "admin.monitor.queue.settings.maxnumberworkers.error": "El nombre màxim de treballadors ha de ser un nombre", + "admin.monitor.queue.settings.submit": "Actualitza la configuració", + "admin.monitor.queue.settings.changed": "Configuració actualitzada", + "admin.monitor.queue.settings.remove_all_items": "Elimina'ls tots", + "admin.monitor.queue.settings.remove_all_items.success": "S'ha eliminat tots els ítems de la cua.", + "settings.authorized_integrations": "Integracions Autoritzades", + "settings.manage_authorized_integrations": "Integracions autoritzades", + "settings.authorized_integration.desc": "Les integracions autoritzades permeten a Forgejo rebre JWTs signades, validar-ne les demandes amb regles, i permetre'n accés a les API de Forgejo.", + "settings.authorized_integration.ui.generic": "JWT Genèric", + "settings.authorized_integration.ui.forgejo_actions_local": "Accions Forgejo (Local)", + "settings.authorized_integration.none": "Encara no s'han configurat integracions autoritzades.", + "settings.authorized_integration.field.name": "Nom", + "settings.authorized_integration.field.description": "Descripció", + "settings.authorized_integration.field.description.placeholder": "Usada per publicar paquets quan ...", + "settings.authorized_integration.field.audience": "Audiència (demanda aud)", + "settings.authorized_integration.field.issuer": "Emissor (demanda iss)", + "settings.authorized_integration.field.claim_rules": "JSON de Regles de Demanda", + "settings.authorized_integration.claims.generic": "Regles JWT Genèriques", + "settings.authorized_integration.perms.title": "Capacitats Permeses", + "settings.authorized_integration.copy_audience": "Copia l'audiència al porta-retalls", + "notification.pin": "Fixa la notificació", + "packages.assets": "Recursos", + "packages.alpine.registry.info": "Escolliu $branch i $repository de la llista següent.", + "packages.arch.version.makedepends": "Crea dependències", + "packages.arch.version.checkdepends": "Comprova dependències", + "packages.container.digest": "Resumeix", + "packages.debian.registry.info": "Escolliu $distribution i $component de la llista següent.", + "packages.nuget.dependency.framework": "Framework Objectiu", + "actions.status.diagnostics.waiting": { + "one": "Esperant un executor amb l'etiqueta: %s", + "many": "Esperant un executor amb les etiquetes: %s", + "other": "Esperant un executor amb les etiquetes: %s" + }, + "actions.runners.runner_setup.title": "Configura l'executor %s", + "actions.runners.show_registration_token": "Mostra el testimoni de registre", + "actions.runners.update_runner.success": "S'ha editat l'executor correctament", + "actions.runners.update_runner.failed": "No s'ha pogut editar l'executor", + "actions.runners.delete_runner.header": "Confirmeu l'eliminació d'aquest executor", + "actions.runners.delete_runner.notice": "Si hi ha cap tasca activa en aquest executor, s'aturarà i es marcarà com a fallada. Això pot trencar el flux de construcció.", + "actions.runners.delete_runner.success": "S'ha eliminat l'executor correctament", + "actions.runners.delete_runner.failed": "No s'ha pogut eliminar l'executor", + "actions.runners.runner_details.page_title": "Executor %s", + "actions.runners.runner_details.labels_note": "Les etiquetes de l'executor es defineixen en el fitxer de configuració de Forgejo Runner o es passen com a opcions de línia de comandes. Aquestes s'actualitzen cada cop que Forgejo Runner estableix una connexió amb Forgejo.", + "actions.runners.runner_setup.page_title": "Configura l'executor %s", + "actions.runners.runner_setup.list_of_runners_link": "Llista d'executors", + "actions.runners.runner_setup.last_chance_copying_token": "Copieu el testimoni ara, ja que no el podreu tornar a veure més tard!", + "actions.runners.runner_setup.button_copy_uuid_aria": "Copia l'UUID de l'executor", + "actions.runners.runner_setup.button_copy_token_aria": "Copia el testimoni de l'executor", + "actions.runners.runner_setup.heading_using_configuration": "Usant el fitxer de configuració de l'executor", + "actions.runners.runner_setup.configuration_snippet_aria": "Fragment per afegir en la configuració de l'executor", + "actions.runners.runner_setup.program_options_snippet_aria": "Com invocar forgejo-runner", + "actions.runners.runner_setup.instruction_replace_connection_name": "Reemplaça el nom de la connexió (forgejo, per exemple) amb el valor que vulgueu.", + "actions.runners.runner_setup.heading_using_options": "Usant opcions de programa", + "actions.runners.runner_setup.instruction_advanced_configurations": "Per a configurar Forgejo Runner en contenidors o amb configuracions avançades, vegeu la documentació.", + "actions.runners.none": "No hi ha executors disponibles", + "actions.runners.reset_registration_token.token": "Testimoni de Registre (Obsolet)", + "actions.runners.reset_registration_token.button": "Reinicia el testimoni de registre", + "actions.runners.reset_registration_token.success": "S'ha reiniciat el testimoni de registre correctament", + "actions.runs.all_workflows": "Tots els fluxos de treball", + "actions.runs.status": "Estatus", + "actions.runs.actors_no_select": "Tots els actors", + "actions.runs.status_no_select": "Tots els estatus", + "actions.runs.no_results": "No hi ha resultats coincidents.", + "actions.runs.no_workflows": "Encara no hi ha fluxos de treball.", + "editor.search": "Cerca", + "editor.replace": "Reemplaça", + "editor.replace_all": "Reemplaça tots", + "actions.runs.workflow": "Flux de treball", + "actions.runs.invalid_workflow_helper": "El fitxer de configuració del flux de treball no és vàlid. Si us plau, comproveu el fitxer de configuració: %s" } diff --git a/options/locale_next/locale_cs-CZ.json b/options/locale_next/locale_cs-CZ.json index c62f8c5cc8..b562a8749f 100644 --- a/options/locale_next/locale_cs-CZ.json +++ b/options/locale_next/locale_cs-CZ.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Cesta", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Schéma", + "admin.config.db.user": "Uživatelské jméno", + "admin.config.db.name": "Název", + "admin.config.db.host": "Server", + "admin.config.db.type": "Typ", + "admin.config.db.header": "Nastavení databáze", + "admin.config.mailer.user": "Uživatel", + "admin.config.mailer.smtp.port": "Port SMTP", + "admin.config.mailer.smtp.addr": "Hostitel SMTP", + "admin.config.mailer.enable_helo": "Povolit HELO", + "admin.config.mailer.protocol": "Protokol", + "admin.config.mailer.use_dummy": "Fiktivní", + "admin.config.mailer.sendmail.timeout": "Časový limit Sendmail", + "admin.config.mailer.sendmail.args": "Dodatečné argumenty pro Sendmail", + "admin.config.mailer.sendmail.path": "Cesta k Sendmail", + "admin.config.mailer.sendmail.use": "Použít Sendmail", + "admin.config.mailer.name": "Název", + "admin.config.mailer.enabled": "Zapnutý", + "admin.config.mailer.header": "Nastavení odesílání e-mailů", + "admin.config.git.gc_timeout": "Časový limit operace GC", + "admin.config.git.pull_timeout": "Časový limit operace Pull", + "admin.config.git.clone_timeout": "Časový limit operace klonování", + "admin.config.git.mirror_timeout": "Časový limit aktualizace zrcadla", + "admin.config.git.migrate_timeout": "Časový limit migrace", + "admin.config.git.gc_args": "Argumenty GC", + "admin.config.git.diff.max_files": "Maximální počet zobrazených rozdílných souborů", + "admin.config.git.diff.max_line_characters": "Maximální počet zobrazených rozdílných znaků", + "admin.config.git.diff.max_lines": "Maximální počet rozdílových řádků na soubor", + "admin.config.git.disable_diff_highlight": "Zakázat zvýraznění syntaxe v zobrazení rozdílů", + "admin.config.git.version": "Verze Gitu", + "admin.config.git.header": "Konfigurace Gitu", + "admin.config.ssh.minimum_key_sizes": "Minimální velikosti klíčů", + "admin.config.ssh.minimum_key_size_check": "Kontrola minimální velikosti klíčů", + "admin.config.ssh.keygen_path": "Cesta ke generátoru klíčů („ssh-keygen“)", + "admin.config.ssh.key_test_path": "Cesta testu klíčů", + "admin.config.ssh.root_path": "Kořenová cesta", + "admin.config.ssh.listen_port": "Port pro naslouchání", + "admin.config.ssh.port": "Port", + "admin.config.ssh.domain": "Doména SSH serveru", + "admin.config.ssh.use_builtin_server": "Použít vestavěný server", + "admin.config.ssh.enabled": "Zapnutý", + "admin.config.ssh.header": "Nastavení SSH", + "admin.users.never_login": "Nikdy nepřihlášen", + "admin.users.last_login": "Poslední přihlášení", + "admin.users.created": "Vytvořen", + "admin.users.repos": "Repozitáře", + "admin.users.2fa": "2FA", + "admin.users.remote": "Vzdálený", + "admin.users.bot": "Bot", + "admin.users.reserved": "Rezervováno", + "admin.users.restricted": "Omezený", + "admin.users.admin": "Správce", + "admin.users.activated": "Aktivován", + "admin.users.full_name": "Celé jméno", + "admin.users.name": "Uživatelské jméno", + "admin.packages.published": "Publikováno", + "admin.packages.size": "Velikost", + "admin.packages.repository": "Repozitář", + "admin.packages.type": "Typ", + "admin.packages.version": "Verze", + "admin.packages.name": "Název", + "admin.packages.creator": "Tvůrce", + "admin.packages.owner": "Vlastník", + "admin.packages.unreferenced_size": "Neodkazovaná velikost: %s", + "admin.packages.total_size": "Celková velikost: %s", + "admin.repos.lfs_size": "Velikost LFS", + "admin.repos.size": "Velikost", + "admin.repos.issues": "Problémy", + "admin.repos.name": "Název", + "admin.repos.owner": "Vlastník", + "admin.orgs.new_orga": "Nová organizace", + "admin.orgs.members": "Členové", + "admin.orgs.teams": "Týmy", + "admin.orgs.name": "Název", + "admin.dashboard.rebuild_issue_indexer": "Přestavit indexer vydání", + "admin.dashboard.start_schedule_tasks": "Spustit akce naplánovaných úloh", + "admin.dashboard.cancel_abandoned_jobs": "Zrušit akce opuštěných úloh", + "admin.dashboard.stop_endless_tasks": "Zastavit akce nekonečných úloh", + "admin.dashboard.stop_zombie_tasks": "Zastavit akce zombie úloh", + "admin.dashboard.gc_lfs": "Sbírat garbage z LFS meta objektů", + "admin.dashboard.delete_old_system_notices": "Odstranit všechna stará systémová upozornění z databáze", + "admin.dashboard.update_checker": "Kontrola aktualizací", + "admin.dashboard.cleanup_actions": "Vymazat prošlé protokoly a artefakty z akcí", + "admin.dashboard.cleanup_packages": "Vyčistit prošlé balíčky", + "admin.dashboard.cleanup_hook_task_table": "Vyčistit tabulku hook_task", + "admin.dashboard.sync_external_users": "Synchronizovat externí uživatelská data", + "admin.dashboard.reinit_missing_repos": "Znovu inicializovat všechny chybějící repozitáře, pro které existují záznamy", + "admin.dashboard.resync_all_hooks": "Znovu synchronizovat Git hooky všech repozitářů („před přijetím“, „aktualizace“, „po přijetí“, …)", + "admin.dashboard.resync_all_sshprincipals": "Aktualizovat soubor „.ssh/authorized_principals“ pomocí Forgejo SSH Principal certifikátů.", + "admin.dashboard.resync_all_sshkeys": "Aktualizovat soubor „.ssh/authorized_keys“ pomocí klíčů SSH služby Forgejo.", + "admin.dashboard.git_gc_repos": "Provést úklid všech repozitářů", + "admin.dashboard.update_migration_poster_id": "Aktualizovat ID autora migrace", + "admin.dashboard.deleted_branches_cleanup": "Vyčistit odstraněné větve", + "admin.dashboard.archive_cleanup": "Smazat staré archivy repozitářů", + "admin.dashboard.check_repo_stats": "Zkontrolovat všechny statistiky repositáře", + "admin.dashboard.repo_health_check": "Kontrola stavu všech repozitářů", + "admin.dashboard.update_mirrors": "Upravit zrcadla", + "admin.dashboard.sync_repo_tags": "Synchronizovat značky z dat Gitu do databáze", + "admin.dashboard.sync_repo_branches": "Synchronizovat vynechané větve z dat Gitu do databáze", + "admin.dashboard.delete_generated_repository_avatars": "Odstranit vygenerované avatary repozitářů", + "admin.dashboard.sync_tag.started": "Synchronizace značek spuštěna", + "admin.dashboard.sync_branch.started": "Synchronizace větví spuštěna", + "admin.dashboard.delete_old_actions.started": "Spuštěno odstraňování všech starých aktivit z databáze.", + "admin.dashboard.delete_missing_repos.started": "Spuštěna úloha mazání všech repozitářů, které nemají Git soubory.", + "admin.dashboard.delete_repo_archives.started": "Spuštěna úloha smazání všech archivovaných repozitářů.", + "admin.dashboard.delete_inactive_accounts.started": "Spuštěna úloha mazání všech neaktivovaných účtů.", + "admin.dashboard.cron.finished": "Naplánovaná úloha: %[1]s skončila", + "admin.dashboard.cron.error": "Chyba v naplánované úloze: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Naplánovaná úloha: %[1]s zrušena: %[3]s", + "admin.dashboard.cron.process": "Naplánovaná úloha: %[1]s", + "admin.dashboard.cron.started": "Začala naplánovaná úloha: %[1]s", + "admin.dashboard.task.unknown": "Neznámá úloha: %[1]s", + "admin.dashboard.task.finished": "Úloha: %[1]s začala %[2]s skončila", + "admin.dashboard.task.error": "Chyba v úloze: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Úloha: %[1]s zrušean: %[3]s", + "admin.dashboard.task.process": "Úloha: %[1]s", + "admin.dashboard.task.started": "Zahájena úloha: %[1]s", + "admin.dashboard.operation_run": "Spustit", + "admin.dashboard.operation_switch": "Přepnout", + "admin.dashboard.operation_name": "Název operace", + "admin.dashboard.system_status": "Stav systému", + "admin.dashboard.operations": "Operace údržby", + "admin.dashboard.statistic": "Souhrn", + "admin.dashboard.new_version_hint": "Forgejo %s je nyní k dispozici, aktuálně používáte verzi %s. Pro více informací viz blog.", "admin.monitor.queue.settings.remove_all_items.success": "Všechny položky ve frontě byly odstraněny.", "admin.monitor.queue.settings.remove_all_items": "Odstranit vše", "admin.monitor.queue.settings.changed": "Nastavení upravena", @@ -8,7 +134,7 @@ "admin.monitor.queue.settings.maxnumberworkers": "Maximální počet workerů", "admin.monitor.queue.settings.description": "Pooly dynamicky rostou podle blokování fronty jejich workerů.", "admin.monitor.queue.settings.title": "Nastavení poolu", - "admin.monitor.queue.review_add": "Posoudit / přidat workery", + "admin.monitor.queue.review_add": "Zkontrolovat / přidat workery", "admin.monitor.queue.numberinqueue": "Číslo ve frontě", "admin.monitor.queue.maxnumberworkers": "Maximální počet workerů", "admin.monitor.queue.activeworkers": "Aktivní workery", @@ -28,7 +154,7 @@ "admin.users.list_status_filter.is_admin": "Administrátor", "admin.users.list_status_filter.not_active": "Neaktivní", "admin.users.list_status_filter.is_active": "Aktivní", - "admin.users.list_status_filter.reset": "Obnovit", + "admin.users.list_status_filter.reset": "Resetovat", "admin.users.list_status_filter.menu_text": "Filtr", "admin.system_status.gc_times": "Časy GC", "admin.system_status.last_gc_pause": "Poslední pauza GC", @@ -62,9 +188,9 @@ "markup.filepreview.lines": "Řádky %[1]d až %[2]d v souboru %[3]s", "markup.filepreview.line": "Řádek %[1]d v souboru %[2]s", "actions.variables.update.success": "Proměnná byla upravena.", - "actions.variables.update.failed": "Úprava proměnné se nezdařila.", + "actions.variables.update.failed": "Nepodařilo se upravit proměnnou.", "actions.variables.creation.success": "Proměnná „%s“ byla přidána.", - "actions.variables.creation.failed": "Přidání proměnné se nezdařilo.", + "actions.variables.creation.failed": "Nepodařilo se přidat proměnnou.", "actions.variables.deletion.success": "Proměnná byla odstraněna.", "actions.variables.deletion.failed": "Nepodařilo se odstranit proměnnou.", "actions.variables.not_found": "Nepodařilo se najít proměnnou.", @@ -771,5 +897,45 @@ "repo.files.caption": "Soubory repozitáře (poslední revize jako první)", "repo.files.filename": "Název souboru", "repo.files.last_commit_message": "Zpráva poslední revize", - "repo.files.last_commit_date": "Datum poslední revize" + "repo.files.last_commit_date": "Datum poslední revize", + "actions.runs.delete.error_could_not_load_run": "Nepodařilo se načíst běh pro odstranění.", + "actions.runs.delete.error_could_not_delete_run": "Nepodařilo se odstranit běh.", + "actions.runs.delete.button": "Odstranit běh", + "actions.runs.delete.error": "Nepodařilo se odstranit běh workflow.", + "actions.runs.delete.confirm_action": "Opravdu chcete odstranit tento běh workflow?", + "settings.authorized_integrations": "Autorizované integrace", + "settings.manage_authorized_integrations": "Autorizované integrace", + "settings.authorized_integration.desc": "Autorizované integrace umožňují službě Forgejo získávat podepsaná JWT, ověřovat jejich tvrzení na základě nastavených pravidel a udělovat jim přístup k rozhraním API.", + "settings.authorized_integration.ui.generic": "Obecné JWT", + "settings.authorized_integration.ui.forgejo_actions_local": "Forgejo Actions (lokální)", + "settings.authorized_integration.none": "V tuto chvíli nejsou nastaveny žádné autorizované integrace.", + "settings.authorized_integration.field.name": "Název", + "settings.authorized_integration.field.description": "Popis", + "settings.authorized_integration.field.description.placeholder": "Používáno ke zveřejnění balíčků při …", + "settings.authorized_integration.field.audience": "Audience (nárok aud)", + "settings.authorized_integration.field.issuer": "Vydavatel (nárok iss)", + "settings.authorized_integration.field.claim_rules": "JSON pravidel nároků", + "settings.authorized_integration.claims.generic": "Obecná pravidla JWT", + "settings.authorized_integration.perms.title": "Povolené funkce", + "settings.authorized_integration.copy_audience": "Kopírovat audienci do schránky", + "repo.pulls.status_checks_skipped": "Přeskočeno", + "repo.packages.visibility_warning": "Tento repozitář je soukromý, ale odkazované balíčky jsou veřejné (majitel %s je veřejný).", + "settings.authorized_integration.edit": "Upravit", + "settings.authorized_integration.edit_page_title": "Autorizovaná integrace %s", + "settings.authorized_integration.create_page_title": "Vytvořit autorizovanou integraci", + "settings.authorized_integration.save": "Uložit autorizovanou integraci", + "settings.authorized_integration.create": "Vytvořit autorizovanou integraci", + "settings.authorized_integration.create_success": "Vytvořena autorizovaná integrace: %s", + "settings.authorized_integration.name.required": "Je vyžadován název autorizované integrace.", + "settings.authorized_integration.issuer.invalid": "Nepodařilo se ověřit vydavatele: %s", + "settings.authorized_integration.claim_rules.invalid": "Nepodařilo se ověřit pravidla nárokování: %s", + "settings.authorized_integration.specified_repos_none": "Autorizované integrace s určenými repozitáři musí mít alespoň jeden repozitář.", + "settings.authorized_integration.specified_repos_and_public_only": "Autorizované integrace s určenými repozitáři nelze kombinovat s rozsahem pouze pro veřejnost.", + "settings.authorized_integration.specified_repos_and_invalid_scope": "Autorizované integrace s určenými repozitáři lze použít pouze s rozsahy read:issue, write:issue, read:repository a write:repository.", + "settings.authorized_integration.add": "Přidat autorizovanou integraci", + "settings.authorized_integration.delete.header": "Odstranit autorizovanou integraci", + "settings.authorized_integration.delete.body": "Odstranění autorizované integrace odvolá přístup integrující aplikace k vašemu účtu. Tato akce je trvalá a nevratná. Vytvoření nové autorizované integrace nebude mít stejný nárok Audience (aud). Pokračovat?", + "settings.authorized_integration.deleted": "Autorizovaná integrace byla úspěšně odstraněna.", + "admin.auths.oauth2_dyn_group_maps": "Dynamicky přidat uživatele do týmů v závislosti na dynamickém mapování skupin. (Volitelné)", + "admin.auths.oauth2_dyn_group_maps_removal": "Dynamicky odebrat uživatele ze všech týmů, do kterých uživatel není přidán, v závislosti na mapování skupin." } diff --git a/options/locale_next/locale_da.json b/options/locale_next/locale_da.json index d863f0529d..35dbf78806 100644 --- a/options/locale_next/locale_da.json +++ b/options/locale_next/locale_da.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Sti", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Skematisk", + "admin.config.db.user": "Brugernavn", + "admin.config.db.name": "Navn", + "admin.config.db.host": "Vært", + "admin.config.db.type": "Type", + "admin.config.db.header": "Database konfiguration", + "admin.config.mailer.user": "Bruger", + "admin.config.mailer.smtp.port": "SMTP-port", + "admin.config.mailer.smtp.addr": "SMTP vært", + "admin.config.mailer.enable_helo": "Aktiver HELO", + "admin.config.mailer.protocol": "Protokol", + "admin.config.mailer.use_dummy": "Attrapp", + "admin.config.mailer.sendmail.timeout": "Sendmail timeout", + "admin.config.mailer.sendmail.args": "Ekstra argumenter til Sendmail", + "admin.config.mailer.sendmail.path": "Sendmail sti", + "admin.config.mailer.sendmail.use": "Brug Sendmail", + "admin.config.mailer.name": "Navn", + "admin.config.mailer.enabled": "Aktiveret", + "admin.config.mailer.header": "Mailer konfiguration", + "admin.config.git.gc_timeout": "GC Operation timeout", + "admin.config.git.pull_timeout": "Pull Operation timeout", + "admin.config.git.clone_timeout": "Klone Operation timeout", + "admin.config.git.mirror_timeout": "Spejlopdateringstimeout", + "admin.config.git.migrate_timeout": "Migration timeout", + "admin.config.git.gc_args": "GC argumenter", + "admin.config.git.diff.max_files": "Max diff filer vist", + "admin.config.git.diff.max_line_characters": "Maks. diff-tegn pr. linje", + "admin.config.git.diff.max_lines": "Max diff-linjer pr. fil", + "admin.config.git.disable_diff_highlight": "Deaktiver diff-syntaksfremhævning", + "admin.config.git.version": "Git version", + "admin.config.git.header": "Git konfiguration", + "admin.config.ssh.minimum_key_sizes": "Minimum nøglestørrelser", + "admin.config.ssh.minimum_key_size_check": "Minimum nøglestørrelse kontrol", + "admin.config.ssh.keygen_path": "Keygen (\"ssh-keygen\") sti", + "admin.config.ssh.key_test_path": "Nøgleteststi", + "admin.config.ssh.root_path": "Rodsti", + "admin.config.ssh.listen_port": "Lyt port", + "admin.config.ssh.port": "Port", + "admin.config.ssh.domain": "SSH server domæne", + "admin.config.ssh.use_builtin_server": "Brug indbygget server", + "admin.config.ssh.enabled": "Aktiveret", + "admin.config.ssh.header": "SSH konfiguration", + "admin.users.never_login": "Aldrig logget ind", + "admin.users.last_login": "Sidst logget ind", + "admin.users.created": "Oprettet", + "admin.users.repos": "Depoter", + "admin.users.2fa": "2FA", + "admin.users.remote": "Remote", + "admin.users.bot": "Bot", + "admin.users.reserved": "Reserveret", + "admin.users.restricted": "Begrænset", + "admin.users.admin": "Admin", + "admin.users.activated": "Aktiveret", + "admin.users.full_name": "Fulde navn", + "admin.users.name": "Brugernavn", + "admin.packages.published": "Offentliggjort", + "admin.packages.size": "Størrelse", + "admin.packages.repository": "Depot", + "admin.packages.type": "Type", + "admin.packages.version": "Version", + "admin.packages.name": "Navn", + "admin.packages.creator": "Skaber", + "admin.packages.owner": "Ejer", + "admin.packages.unreferenced_size": "Ikke-referencestørrelse: %s", + "admin.packages.total_size": "Samlet størrelse: %s", + "admin.repos.lfs_size": "LFS størrelse", + "admin.repos.size": "Størrelse", + "admin.repos.issues": "Problemer", + "admin.repos.name": "Navn", + "admin.repos.owner": "Ejer", + "admin.orgs.new_orga": "Ny organisation", + "admin.orgs.members": "Medlemmer", + "admin.orgs.teams": "Teams", + "admin.orgs.name": "Navn", + "admin.dashboard.rebuild_issue_indexer": "Genopbyg problemindekser", + "admin.dashboard.start_schedule_tasks": "Start planlæg handlingsopgaver", + "admin.dashboard.cancel_abandoned_jobs": "Annuller forladte handlingsjob", + "admin.dashboard.stop_endless_tasks": "Stop endeløse handlingsopgaver", + "admin.dashboard.stop_zombie_tasks": "Stop zombiehandlingsopgaver", + "admin.dashboard.gc_lfs": "Affaldssamler LFS-metaobjekter", + "admin.dashboard.delete_old_system_notices": "Slet alle gamle systemmeddelelser fra databasen", + "admin.dashboard.update_checker": "Opdateringskontrol", + "admin.dashboard.cleanup_actions": "Oprydning af udløbne logfiler og artefakter fra handlinger", + "admin.dashboard.cleanup_packages": "Ryd udløbne pakker", + "admin.dashboard.cleanup_hook_task_table": "Oprydning hook_task tabel", + "admin.dashboard.sync_external_users": "Synkroniser eksterne brugerdata", + "admin.dashboard.reinit_missing_repos": "Geninitialiser alle manglende Git-depoter, som der findes poster for", + "admin.dashboard.resync_all_hooks": "Gensynkroniser Git hooks for alle depoter (pre-receive, update, post-receive, proc-receive,...)", + "admin.dashboard.resync_all_sshprincipals": "Opdater \".ssh/authorized_principals\" filen med Forgejo SSH principals.", + "admin.dashboard.resync_all_sshkeys": "Opdater filen \".ssh/authorized_keys\" med Forgejo SSH-nøgler.", + "admin.dashboard.git_gc_repos": "Samle alt affald fra alle depoter", + "admin.dashboard.update_migration_poster_id": "Opdater migrationsplakat-id'er", + "admin.dashboard.deleted_branches_cleanup": "Ryd op i slettede grene", + "admin.dashboard.archive_cleanup": "Slet gamle depotarkiver", + "admin.dashboard.check_repo_stats": "Tjek alle depotstatistikker", + "admin.dashboard.repo_health_check": "Sundhedstjek alle depoter", + "admin.dashboard.update_mirrors": "Opdater spejle", + "admin.dashboard.sync_repo_tags": "Synkroniser tags fra Git-data til database", + "admin.dashboard.sync_repo_branches": "Synkroniser mistede grene fra Git-data til databasen", + "admin.dashboard.delete_generated_repository_avatars": "Slet genererede depot avatarer", + "admin.dashboard.sync_tag.started": "Tag-synkronisering er startet", + "admin.dashboard.sync_branch.started": "Gren synkronisering startede", + "admin.dashboard.delete_old_actions.started": "Slet alle gamle aktiviteter fra den påbegyndte database.", + "admin.dashboard.delete_missing_repos.started": "Slet alle depoter, der mangler deres Git-filopgave startet.", + "admin.dashboard.delete_repo_archives.started": "Slet alle repository arkiver opgave startet.", + "admin.dashboard.delete_inactive_accounts.started": "Slet alle uaktiverede konti opgave startet.", + "admin.dashboard.cron.finished": "Cron: %[1]s er færdig", + "admin.dashboard.cron.error": "Fejl i Cron: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s annulleret: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Startede Cron: %[1]s", + "admin.dashboard.task.unknown": "Ukendt opgave: %[1]s", + "admin.dashboard.task.finished": "Opgave: %[1]s startet af %[2]s er afsluttet", + "admin.dashboard.task.error": "Fejl i Opgave: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Opgave: %[1]s annulleret: %[3]s", + "admin.dashboard.task.process": "Opgave: %[1]s", + "admin.dashboard.task.started": "Startet opgave: %[1]s", + "admin.dashboard.operation_run": "Kør", + "admin.dashboard.operation_switch": "Skift", + "admin.dashboard.operation_name": "Operations navn", + "admin.dashboard.system_status": "System status", + "admin.dashboard.operations": "Vedligeholdelses operationer", + "admin.dashboard.statistic": "Oversigt", + "admin.dashboard.new_version_hint": "Forgejo %s er nu tilgængelig, du kører %s. Tjek bloggen for flere detaljer.", "admin.monitor.queue.settings.remove_all_items.success": "Alle varer i køen er blevet fjernet.", "admin.monitor.queue.settings.remove_all_items": "Slet alle", "admin.monitor.queue.settings.changed": "Indstillinger opdateret", diff --git a/options/locale_next/locale_de-DE.json b/options/locale_next/locale_de-DE.json index b2ab8e138e..b8ba57a95c 100644 --- a/options/locale_next/locale_de-DE.json +++ b/options/locale_next/locale_de-DE.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Verzeichnis", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Schema", + "admin.config.db.user": "Benutzername", + "admin.config.db.name": "Name", + "admin.config.db.host": "Host", + "admin.config.db.type": "Typ", + "admin.config.db.header": "Datenbankkonfiguration", + "admin.config.mailer.user": "Benutzer", + "admin.config.mailer.smtp.port": "SMTP-Port", + "admin.config.mailer.smtp.addr": "SMTP-Host", + "admin.config.mailer.enable_helo": "HELO aktivieren", + "admin.config.mailer.protocol": "Protokoll", + "admin.config.mailer.use_dummy": "Dummy", + "admin.config.mailer.sendmail.timeout": "Sendmail-Timeout", + "admin.config.mailer.sendmail.args": "Zusätzliche Argumente für Sendmail", + "admin.config.mailer.sendmail.path": "Sendmail-Pfad", + "admin.config.mailer.sendmail.use": "Sendmail benutzen", + "admin.config.mailer.name": "Name", + "admin.config.mailer.enabled": "Aktiviert", + "admin.config.mailer.header": "Mailer-Konfiguration", + "admin.config.git.gc_timeout": "Zeitlimit für GC", + "admin.config.git.pull_timeout": "Zeitlimit für Pull", + "admin.config.git.clone_timeout": "Zeitlimit für Klon", + "admin.config.git.mirror_timeout": "Zeitlimit für Spiegel-Aktualisierung", + "admin.config.git.migrate_timeout": "Zeitlimit für Migration", + "admin.config.git.gc_args": "GC-Argumente", + "admin.config.git.diff.max_files": "Max. Diff-Dateien (Angezeigte)", + "admin.config.git.diff.max_line_characters": "Max. Diff-Zeichen (in einer Zeile)", + "admin.config.git.diff.max_lines": "Max. Diff-Zeilen (in einer Datei)", + "admin.config.git.disable_diff_highlight": "Diff-Syntaxhervorhebung ausschalten", + "admin.config.git.version": "Git-Version", + "admin.config.git.header": "Git-Konfiguration", + "admin.config.ssh.minimum_key_sizes": "Mindestschlüssellängen", + "admin.config.ssh.minimum_key_size_check": "Prüfung der Mindestschlüssellänge", + "admin.config.ssh.keygen_path": "Keygen-Pfad („ssh-keygen“)", + "admin.config.ssh.key_test_path": "Schlüssel-Test-Pfad", + "admin.config.ssh.root_path": "Wurzelverzeichnis", + "admin.config.ssh.listen_port": "Listen-Port", + "admin.config.ssh.port": "Port", + "admin.config.ssh.domain": "SSH-Server-Domain", + "admin.config.ssh.use_builtin_server": "Eingebauten Server verwenden", + "admin.config.ssh.enabled": "Aktiviert", + "admin.config.ssh.header": "SSH-Konfiguration", + "admin.users.never_login": "Hat sich noch nie eingeloggt", + "admin.users.last_login": "Letzte Anmeldung", + "admin.users.created": "Registriert am", + "admin.users.repos": "Repos", + "admin.users.2fa": "2FA", + "admin.users.remote": "Remote", + "admin.users.bot": "Bot", + "admin.users.reserved": "Reserviert", + "admin.users.restricted": "Eingeschränkt", + "admin.users.admin": "Administrator", + "admin.users.activated": "Aktiviert", + "admin.users.full_name": "Vollständiger Name", + "admin.users.name": "Benutzername", + "admin.packages.published": "Veröffentlicht", + "admin.packages.size": "Größe", + "admin.packages.repository": "Repository", + "admin.packages.type": "Typ", + "admin.packages.version": "Version", + "admin.packages.name": "Name", + "admin.packages.creator": "Ersteller", + "admin.packages.owner": "Besitzer", + "admin.packages.unreferenced_size": "Nicht referenzierte Größe: %s", + "admin.packages.total_size": "Gesamtgröße: %s", + "admin.repos.lfs_size": "LFS-Größe", + "admin.repos.size": "Größe", + "admin.repos.issues": "Issues", + "admin.repos.name": "Name", + "admin.repos.owner": "Besitzer", + "admin.orgs.new_orga": "Neue Organisation", + "admin.orgs.members": "Mitglieder", + "admin.orgs.teams": "Teams", + "admin.orgs.name": "Name", + "admin.dashboard.rebuild_issue_indexer": "Issue-Indexer neu bauen", + "admin.dashboard.start_schedule_tasks": "Terminierte Actions-Aufgaben starten", + "admin.dashboard.cancel_abandoned_jobs": "Aufgegebene Actions-Jobs abbrechen", + "admin.dashboard.stop_endless_tasks": "Endlose Actions-Aufgaben stoppen", + "admin.dashboard.stop_zombie_tasks": "Zombie-Actions-Aufgaben stoppen", + "admin.dashboard.gc_lfs": "Garbage-Collection für LFS-Meta-Objekte ausführen", + "admin.dashboard.delete_old_system_notices": "Alle alten Systemmeldungen aus der Datenbank löschen", + "admin.dashboard.update_checker": "Update-Checker", + "admin.dashboard.cleanup_actions": "Abgelaufene Logs und Artefakte von Actions bereinigen", + "admin.dashboard.cleanup_packages": "Veraltete Pakete bereinigen", + "admin.dashboard.cleanup_hook_task_table": "Hook-Task-Tabelle bereinigen", + "admin.dashboard.sync_external_users": "Externe Benutzerdaten synchronisieren", + "admin.dashboard.reinit_missing_repos": "Alle Git-Repositorys neu einlesen, für die Einträge existieren", + "admin.dashboard.resync_all_hooks": "Hooks für alle Repositorys erneut synchronisieren (pre-receive, update, post-receive, proc-receive, …)", + "admin.dashboard.resync_all_sshprincipals": "Aktualisiere die Datei „.ssh/authorized_principals“ mit Forgejo-SSH-Principals.", + "admin.dashboard.resync_all_sshkeys": "Die Datei „.ssh/authorized_keys“ mit Forgejo-SSH-Schlüsseln aktualisieren.", + "admin.dashboard.git_gc_repos": "Garbage-Collection für alle Repositorys ausführen", + "admin.dashboard.update_migration_poster_id": "Migrations-Poster-IDs aktualisieren", + "admin.dashboard.deleted_branches_cleanup": "Gelöschte Branches bereinigen", + "admin.dashboard.archive_cleanup": "Alte Repository-Archive löschen", + "admin.dashboard.check_repo_stats": "Überprüfe alle Repository-Statistiken", + "admin.dashboard.repo_health_check": "Health-Prüfungen für alle Repositorys ausführen", + "admin.dashboard.update_mirrors": "Spiegel aktualisieren", + "admin.dashboard.sync_repo_tags": "Tags aus Git-Daten zu Datenbank synchronisieren", + "admin.dashboard.sync_repo_branches": "Fehlende Branches aus den Git-Daten in die Datenbank synchronisieren", + "admin.dashboard.delete_generated_repository_avatars": "Generierte Repository-Avatare löschen", + "admin.dashboard.sync_tag.started": "Tag-Synchronisierung gestartet", + "admin.dashboard.sync_branch.started": "Synchronisierung der Branches gestartet", + "admin.dashboard.delete_old_actions.started": "Löschen aller alten Aktivitäten aus der Datenbank gestartet.", + "admin.dashboard.delete_missing_repos.started": "Alle Repositorys löschen, die den Git-Dateien-Task nicht gestartet haben.", + "admin.dashboard.delete_repo_archives.started": "Löschen aller Repository-Archive gestartet.", + "admin.dashboard.delete_inactive_accounts.started": "Löschen aller nicht aktivierten Account-Aufgabe gestartet.", + "admin.dashboard.cron.finished": "Cron: %[1]s ist beendet", + "admin.dashboard.cron.error": "Fehler in Cron: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s abgebrochen: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Cron gestartet: %[1]s", + "admin.dashboard.task.unknown": "Unbekannte Aufgabe: %[1]s", + "admin.dashboard.task.finished": "Aufgabe: %[1]s, gestartet von %[2]s, wurde beendet", + "admin.dashboard.task.error": "Fehler in Aufgabe: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Aufgabe: %[1]s abgebrochen: %[3]s", + "admin.dashboard.task.process": "Aufgabe: %[1]s", + "admin.dashboard.task.started": "Aufgabe gestartet: %[1]s", + "admin.dashboard.operation_run": "Ausführen", + "admin.dashboard.operation_switch": "Wechseln", + "admin.dashboard.operation_name": "Name der Operation", + "admin.dashboard.system_status": "System-Status", + "admin.dashboard.operations": "Wartungsoperationen", + "admin.dashboard.statistic": "Übersicht", + "admin.dashboard.new_version_hint": "Forgejo %s ist jetzt verfügbar, deine derzeitige Version ist %s. Weitere Details findest du im Blog.", "admin.monitor.queue.settings.remove_all_items.success": "Alle Elemente in der Warteschlange wurden entfernt.", "admin.monitor.queue.settings.remove_all_items": "Alle entfernen", "admin.monitor.queue.settings.changed": "Einstellungen aktualisiert", @@ -751,5 +877,57 @@ "repo.files.caption": "Repository-Dateien (neuester Commit zuerst)", "repo.files.filename": "Dateiname", "repo.files.last_commit_message": "Letzte Commit-Nachricht", - "repo.files.last_commit_date": "Letztes Commit-Datum" + "repo.files.last_commit_date": "Letztes Commit-Datum", + "settings.authorized_integrations": "Autorisierte Integrationen", + "settings.manage_authorized_integrations": "Autorisierte Integrationen", + "settings.authorized_integration.desc": "Autorisierte Integrationen erlauben es Forgejo, signierte JWTs zu empfangen, ihre Claims gegen die konfigurierten Regeln zu validieren und ihnen zu erlauben, auf Forgejos APIs zuzugreifen.", + "settings.authorized_integration.ui.generic": "Generisches JWT", + "settings.authorized_integration.ui.forgejo_actions_local": "Forgejo Actions (Lokal)", + "settings.authorized_integration.none": "Es sind aktuell keine autorisierten Integrationen konfiguriert.", + "settings.authorized_integration.field.name": "Name", + "settings.authorized_integration.field.description": "Beschreibung", + "settings.authorized_integration.field.description.placeholder": "Verwendet zur Veröffentlichung von Paketen bei …", + "settings.authorized_integration.field.audience": "Publikum (aud-Behauptung)", + "settings.authorized_integration.field.issuer": "Issuer (iss-Claim)", + "settings.authorized_integration.field.claim_rules": "Claim-Regeln-JSON", + "settings.authorized_integration.claims.generic": "Generische JWT-Regeln", + "settings.authorized_integration.perms.title": "Erlaubte Fähigkeiten", + "settings.authorized_integration.copy_audience": "Publikum in Zwischenablage kopieren", + "actions.runs.delete.error_could_not_load_run": "Zu löschender Run konnte nicht geladen werden.", + "actions.runs.delete.error_could_not_delete_run": "Run konnte nicht gelöscht werden.", + "actions.runs.delete.button": "Run löschen", + "actions.runs.delete.error": "Der Workflow-Run konnte nicht gelöscht werden.", + "actions.runs.delete.confirm_action": "Möchtest du wirklich diesen Workflow-Run löschen?", + "settings.authorized_integration.forgejo_actions_local.event.label": "Ereignis:", + "repo.pulls.status_checks_skipped": "Übersprungen", + "settings.authorized_integration.create_page_title": "Autorisierte Integration erstellen", + "settings.authorized_integration.create": "Autorisierte Integration erstellen", + "settings.authorized_integration.create_success": "Autorisierte Integration erstellt: %s", + "settings.authorized_integration.add": "Autorisierte Integration hinzufügen", + "settings.authorized_integration.delete.header": "Autorisierte Integration löschen", + "settings.authorized_integration.deleted": "Die autorisierte Integration wurde erfolgreich gelöscht.", + "settings.authorized_integration.forgejo_actions_local.select_repo": "Auswählen", + "settings.authorized_integration.forgejo_actions_local.git_ref.label": "Git-Referenz:", + "settings.authorized_integration.edit": "Bearbeiten", + "settings.authorized_integration.edit_page_title": "Autorisierte Integration %s", + "settings.authorized_integration.save": "Autorisierte Integration speichern", + "settings.authorized_integration.name.required": "Der Name der autorisierten Integration wird benötigt.", + "repo.packages.visibility_warning": "Dieses Repository ist privat, aber verknüpfte Pakete sind öffentlich (Besitzer %s ist öffentlich).", + "settings.authorized_integration.issuer.invalid": "Validierung des Issue-Einreichers fehlgeschlagen: %s", + "settings.authorized_integration.claim_rules.invalid": "Validierung der Claim-Regeln fehlgeschlagen: %s", + "settings.authorized_integration.specified_repos_none": "Autorisierte Integrationen mit festgelegten Repositorys müssen mindestens ein Repository haben.", + "settings.authorized_integration.specified_repos_and_public_only": "Autorisierte Integrationen mit festgelegten Repositorys können nicht mit dem Scope „Nur öffentlich“ kombiniert werden.", + "settings.authorized_integration.specified_repos_and_invalid_scope": "Autorisierte Integrationen mit festgelegten Repositorys können nur mit den Scopes „read:issue“, „write:issue“, „read:repository“ und „write:repository“ benutzt werden.", + "settings.authorized_integration.delete.body": "Wenn eine autorisierte Integration gelöscht wird, wird dies den Zugang auf Ihr Konto für die integrierende Anwendung widerrufen. Dies ist permament und kann nicht rückgängig gemacht werden. Das Erstellen einer neuen Integration wird nicht das selbe Publikum (aud-Claim) haben. Fortfahren?", + "settings.authorized_integration.forgejo_actions_local.select_repository": "Repository auswählen: (Forgejo Actions muss im Repository aktiviert sein)", + "settings.authorized_integration.forgejo_actions_local.description": "Forgejo Actions wird in der Lage sein, auf Forgejo zuzugreifen, einerseits mit Hilfe dieser Autorisierten Integration von einem einzelnen ausgewählten Repository aus, und andererseits, falls die Ausführung die unten definierten Bedingungen erfüllt.", + "settings.authorized_integration.forgejo_actions_local.repo.required": "Das „Forgejo Actions“-Quellrepository muss ausgewählt sein.", + "settings.authorized_integration.forgejo_actions_local.workflow_file.label": "Workflow-Datei (ohne Verzeichnis):", + "settings.authorized_integration.forgejo_actions_local.workflow_file.help": "Falls leer, wird jeder Workflow zugelassen. Siehe die %[2]s-Dokumentation für die Muster-Syntax.
Beispiele: testing.yml, test-*.yml.", + "settings.authorized_integration.forgejo_actions_local.workflow_file.error": "Fehler beim Parsen der Workflow-Datei: %s", + "settings.authorized_integration.forgejo_actions_local.git_ref.help": "Falls leer, wird jede Referenz zugelassen. Siehe die %[2]s-Dokumentation für die Muster-Syntax.
Beispiele: refs/heads/main, refs/pull/*/head.", + "settings.authorized_integration.forgejo_actions_local.git_ref.error": "Fehler beim Parsen von git-Referenz: %s", + "settings.authorized_integration.forgejo_actions_local.event.help": "Falls keine Ereignisse ausgewählt wurden, wird jedes Ereignis zugelassen.", + "admin.auths.oauth2_dyn_group_maps": "Benutzer dynamisch zu Teams basierend auf den dynamischen Gruppen-Zuteilungen hinzufügen. (Optional)", + "admin.auths.oauth2_dyn_group_maps_removal": "Dynamisch Benutzer von allen Teams entfernen, falls der Benutzer nicht basierend auf den Gruppen-Mappings hinzugefügt wird." } diff --git a/options/locale_next/locale_el-GR.json b/options/locale_next/locale_el-GR.json index ee9e48e977..3345d15cc8 100644 --- a/options/locale_next/locale_el-GR.json +++ b/options/locale_next/locale_el-GR.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Διαδρομή", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Σχήμα", + "admin.config.db.user": "Όνομα Χρήστη", + "admin.config.db.name": "Όνομα", + "admin.config.db.host": "Διακομιστής", + "admin.config.db.type": "Τύπος", + "admin.config.db.header": "Ρυθμίσεις βάσης δεδομένων", + "admin.config.mailer.user": "Χρήστης", + "admin.config.mailer.smtp.port": "Θύρα SMTP", + "admin.config.mailer.smtp.addr": "Διεύθυνση SMTP", + "admin.config.mailer.enable_helo": "Ενεργοποίηση HELO", + "admin.config.mailer.protocol": "Πρωτόκολλο", + "admin.config.mailer.use_dummy": "Ψεύτικο", + "admin.config.mailer.sendmail.timeout": "Χρονικό όριο Sendmail", + "admin.config.mailer.sendmail.args": "Επιπλέον παράμετροι για το Sendmail", + "admin.config.mailer.sendmail.path": "Τοποθεσία Sendmail", + "admin.config.mailer.sendmail.use": "Χρήση Sendmail", + "admin.config.mailer.name": "Όνομα", + "admin.config.mailer.enabled": "Ενεργοποιημένο", + "admin.config.mailer.header": "Ρυθμίσεις αλληλογραφίας", + "admin.config.git.gc_timeout": "Χρονικό όριο λειτουργίας GC", + "admin.config.git.pull_timeout": "Χρονικό όριο pull", + "admin.config.git.clone_timeout": "Χρονικό όριο κλωνοποίησης", + "admin.config.git.mirror_timeout": "Χρονικό όριο ενημέρωσης ειδώλου", + "admin.config.git.migrate_timeout": "Χρονικό όριο μεταφοράς", + "admin.config.git.gc_args": "Παράμετροι GC", + "admin.config.git.diff.max_files": "Μέγιστος αριθμός εμφανιζόμενων αρχείων ανά diff", + "admin.config.git.diff.max_line_characters": "Μέγιστος αριθμός χαρακτήρων diff ανά γραμμή", + "admin.config.git.diff.max_lines": "Μέγιστες γραμμές diff ανά αρχείο", + "admin.config.git.disable_diff_highlight": "Απενεργοποίηση επισήμανσης σύνταξης diff", + "admin.config.git.version": "Έκδοση Git", + "admin.config.git.header": "Ρυθμίσεις Git", + "admin.config.ssh.minimum_key_sizes": "Ελάχιστα μεγέθη κλειδιών", + "admin.config.ssh.minimum_key_size_check": "Έλεγχος ελάχιστου μεγέθους κλειδιού", + "admin.config.ssh.keygen_path": "Διαδρομή keygen («ssh-keygen»)", + "admin.config.ssh.key_test_path": "Διαδρομή δοκιμής κλειδιού", + "admin.config.ssh.root_path": "Τοποθεσία root", + "admin.config.ssh.listen_port": "Θύρα ακρόασης (Listen port)", + "admin.config.ssh.port": "Θύρα", + "admin.config.ssh.domain": "Domain διακομιστή SSH", + "admin.config.ssh.use_builtin_server": "Χρήση ενσωματωμένου διακομιστή", + "admin.config.ssh.enabled": "Ενεργοποιημένο", + "admin.config.ssh.header": "Ρυθμίσεις SSH", + "admin.users.never_login": "Καμία σύνδεση", + "admin.users.last_login": "Τελευταία σύνδεση", + "admin.users.created": "Δημιουργήθηκε", + "admin.users.repos": "Αποθετήρια", + "admin.users.2fa": "2FA", + "admin.users.remote": "Απομακρυσμένο", + "admin.users.bot": "Ρομπότ", + "admin.users.reserved": "Δεσμευμένο", + "admin.users.restricted": "Περιορισμένος", + "admin.users.admin": "Διαχειριστής", + "admin.users.activated": "Ενεργοποιήθηκε", + "admin.users.full_name": "Πλήρες όνομα", + "admin.users.name": "Όνομα Χρήστη", + "admin.packages.published": "Δημοσιευμένα", + "admin.packages.size": "Μέγεθος", + "admin.packages.repository": "Αποθετήριο", + "admin.packages.type": "Τύπος", + "admin.packages.version": "Έκδοση", + "admin.packages.name": "Όνομα", + "admin.packages.creator": "Δημιουργός", + "admin.packages.owner": "Ιδιοκτήτης", + "admin.packages.unreferenced_size": "Μέγεθος χωρίς αναφορά: %s", + "admin.packages.total_size": "Συνολικό μέγεθος: %s", + "admin.repos.lfs_size": "Μέγεθος LFS", + "admin.repos.size": "Μέγεθος", + "admin.repos.issues": "Ζητήματα", + "admin.repos.name": "Όνομα", + "admin.repos.owner": "Ιδιοκτήτης", + "admin.orgs.new_orga": "Νέος οργανισμός", + "admin.orgs.members": "Μέλη", + "admin.orgs.teams": "Ομάδες", + "admin.orgs.name": "Όνομα", + "admin.dashboard.rebuild_issue_indexer": "Αναδόμηση ευρετηρίου ζητημάτων", + "admin.dashboard.start_schedule_tasks": "Έναρξη προγραμματισμένων εργασιών", + "admin.dashboard.cancel_abandoned_jobs": "Ακύρωση εγκαταλελειμμένων εργασιών", + "admin.dashboard.stop_endless_tasks": "Διακοπή ατελείωτων εργασιών", + "admin.dashboard.stop_zombie_tasks": "Διακοπή των ζόμπι εργασιών δράσεων", + "admin.dashboard.gc_lfs": "Συλλογή απορριμάτων στα μετα-αντικείμενα LFS", + "admin.dashboard.delete_old_system_notices": "Διαγραφή όλων των παλιών ειδοποιήσεων συστήματος από τη βάση δεδομένων", + "admin.dashboard.update_checker": "Ελεγκτής ενημερώσεων", + "admin.dashboard.cleanup_actions": "Καθαρισμός ληγμένων καταγραφών και συνημμένων από τις δράσεις", + "admin.dashboard.cleanup_packages": "Εκκαθάριση ληγμένων πακέτων", + "admin.dashboard.cleanup_hook_task_table": "Εκκαθάριση πίνακα hook_task", + "admin.dashboard.sync_external_users": "Συγχρονισμός δεδομένων εξωτερικών χρηστών", + "admin.dashboard.reinit_missing_repos": "Επανεκκινήστε όλα τα αποθετήρια Git που λείπουν και για τα οποία υπάρχουν εγγραφές", + "admin.dashboard.resync_all_hooks": "Επανασυγχρονισμός των Git hook όλων των αποθετηρίων (pre-receive, update, post-receive, proc-receive, …)", + "admin.dashboard.resync_all_sshprincipals": "Ενημέρωση του αρχείου «.ssh/authorized_principals» με τις αρχές SSH του Forgejo.", + "admin.dashboard.resync_all_sshkeys": "Ενημέρωση του αρχείου «.ssh/authorized_keys» με τα κλειδιά SSH του Forgejo.", + "admin.dashboard.git_gc_repos": "Garbage collect όλων των αποθετηρίων", + "admin.dashboard.update_migration_poster_id": "Ενημέρωση των ID συντακτών στη μεταγκατάσταση", + "admin.dashboard.deleted_branches_cleanup": "Εκκαθάριση διαγραμμένων κλάδων", + "admin.dashboard.archive_cleanup": "Διαγραφή παλαιών αρχείων λήψης αποθετηρίων", + "admin.dashboard.check_repo_stats": "Έλεγχος όλων των στατιστικών αποθετηρίων", + "admin.dashboard.repo_health_check": "Έλεγχος υγείας σε όλα τα αποθετήρια", + "admin.dashboard.update_mirrors": "Ενημέρωση ειδώλων", + "admin.dashboard.sync_repo_tags": "Συγχρονισμός tag, χρησιμοποιώντας τα δεδομένα git στην βάση δεδομένων", + "admin.dashboard.sync_repo_branches": "Συγχρονισμός κλάδων που λείπουν, χρησιμοποιώντας τα δεδομένα git στην βάση δεδομένων", + "admin.dashboard.delete_generated_repository_avatars": "Διαγραφή παραγμένων εικόνων αποθετηρίων", + "admin.dashboard.sync_tag.started": "Ξεκίνησε ο συγχρονισμός των ετικετών", + "admin.dashboard.sync_branch.started": "Ξεκίνησε ο συγχρονισμός των κλάδων", + "admin.dashboard.delete_old_actions.started": "Ξεκίνησε η διαγραφή όλων των παλιών δραστηριοτήτων από τη βάση δεδομένων.", + "admin.dashboard.delete_missing_repos.started": "Η διαγραφή όλων των αποθετηρίων που δεν έχουν αρχεία Git τους, ξεκίνησε.", + "admin.dashboard.delete_repo_archives.started": "Η διαγραφή όλων των αρχείων λήψης του αποθετηρίου ξεκίνησε.", + "admin.dashboard.delete_inactive_accounts.started": "Η διαγραφή όλων των μη ενεργοποιημένων λογαριασμών ξεκίνησε.", + "admin.dashboard.cron.finished": "Προγραμματισμένη Εργασία: %[1]s τελείωσε", + "admin.dashboard.cron.error": "Σφάλμα στη προγραμματισμένη εργασία: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Προγραμματισμένη εργασία: %[1]s ακυρώθηκε: %[3]s", + "admin.dashboard.cron.process": "Προγραμματισμένη Εργασία: %[1]s", + "admin.dashboard.cron.started": "Εκκίνηση Προγραμματισμένης Εργασίας: %[1]s", + "admin.dashboard.task.unknown": "Άγνωστη εργασία: %[1]s", + "admin.dashboard.task.finished": "Εργασία: %[1]s που εκκινήθηκε από %[2]s τελείωσε", + "admin.dashboard.task.error": "Σφάλμα στην Εργασία: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Εργασία: %[1]ακυρώθηκε: %[3]s", + "admin.dashboard.task.process": "Εργασία: %[1]s", + "admin.dashboard.task.started": "Εκκίνηση Εργασίας: %[1]s", + "admin.dashboard.operation_run": "Εκτέλεση", + "admin.dashboard.operation_switch": "Αλλαγή", + "admin.dashboard.operation_name": "Όνομα Λειτουργίας", + "admin.dashboard.system_status": "Κατάσταση συστήματος", + "admin.dashboard.operations": "Λειτουργίες συντήρησης", + "admin.dashboard.statistic": "Περίληψη", + "admin.dashboard.new_version_hint": "Το Forgejo %s είναι διαθέσιμο, χρησιμοποιείτε το %s. Ανατρέξτε στο blog για περισσότερες λεπτομέρειες.", "admin.monitor.queue.settings.remove_all_items.success": "Όλα τα αντικείμενα στην ουρά αφαιρέθηκαν.", "admin.monitor.queue.settings.remove_all_items": "Αφαίρεση όλων", "admin.monitor.queue.settings.changed": "Οι ρυθμίσεις ενημερώθηκαν", @@ -335,7 +461,7 @@ "migrate.items.labels": "Σήματα", "migrate.items.issues": "Ζητήματα", "migrate.items.pull_requests": "Pull requests", - "migrate.items.merge_requests": "Merge requests", + "migrate.items.merge_requests": "Αιτήματα συγχώνευσης", "migrate.items.releases": "Κυκλοφορίες", "migrate.in_progress.git": "Τα δεδομένα Git μεταφέρονται", "migrate.in_progress.topics": "Τα θέματα μεταφέρονται", @@ -479,7 +605,7 @@ "actions.status.success": "Επιτυχία", "actions.status.failure": "Αποτυχία", "actions.status.cancelled": "Ακυρώθηκε", - "actions.status.skipped": "Παρακάμφθηκε", + "actions.status.skipped": "Έγινε παράλειψη", "actions.status.blocked": "Αποκλείστηκε", "actions.runners": "Εκτελεστές", "actions.runners.runner_manage_panel": "Διαχείριση εκτελεστών", @@ -617,5 +743,45 @@ "actions.runners.runner_setup.button_copy_token_aria": "Αντιγραφή διακριτικού εκτελεστή", "actions.runners.show_registration_token": "Εμφάνιση διακριτικού εγγραφής", "actions.runners.token": "Διακριτικό", - "settings.specific_repo_access": "Πρόσβαση Αποθετηρίου" + "settings.specific_repo_access": "Πρόσβαση αποθετηρίου", + "repo.files.filename": "Όνομα αρχείου", + "admin.federation.host.port": "Θύρα", + "admin.federation.host.software_name": "Λογισμικό", + "repo.pulls.status_checks_skipped": "Έγινε παράλειψη", + "admin.federation.host.created": "Δημιουργήθηκε", + "admin.federation.host.updated": "Ενημερώθηκε", + "admin.federation.host.latest_activity": "Τελευταία δραστηριότητα", + "admin.federation.users": "Χρήστες", + "settings.new_access_token": "Νέο διακριτικό πρόσβασης", + "settings.permissions_access_specific_repositories": "Συγκεκριμένα αποθετήρια", + "settings.access_token.selected_repositories": { + "one": "Επιλεγμένο αποθετήριο (%d)", + "other": "Επιλεγμένα αποθετήρια (%d)" + }, + "settings.access_token.available_repositories": "Διαθέσιμα αποθετήρια", + "settings.access_token.no_repositories_selected": "Κανένα αποθετήριο επιλεγμένο.", + "settings.access_token.no_repositories_found": "Δεν βρέθηκαν αποθετήρια.", + "settings.access_token.remove": "Αφαίρεση %s", + "settings.authorized_integration.edit": "Επεξεργασία", + "settings.authorized_integration.field.name": "Όνομα", + "settings.authorized_integration.field.description": "Περιγραφή", + "settings.authorized_integration.field.description.placeholder": "Χρησιμοποιείται για να δημοσιεύει πακέτα όταν ...", + "settings.authorized_integration.forgejo_actions_local.event.label": "Συμβάν:", + "settings.authorized_integration.forgejo_actions_local.event.help": "Εάν δεν έχει επιλεγεί κανένα συμβάν, τότε θα επιτραπούν όλα τα συμβάντα.", + "user.activitypub_feed.feed": "Ροή Fediverse", + "user.activitypub_feed.no_activity": "Καμία δραστηριότητα fediverse", + "user.activitypub_feed.is_empty": "Η ροή σας στο fediverse είναι άδεια.", + "user.activitypub_feed.posted_on": "Δημοσιεύτηκε στο %[1]s", + "user.activitypub_feed.original_source": "Αρχική πηγή", + "actions.runners.ephemeral": "Εφήμερος", + "actions.runners.version": "Έκδοση", + "actions.runs.delete.button": "Διαγραφή εκτέλεσης", + "actions.runs.delete.error": "Δεν ήταν δυνατή η διαγραφή της εκτέλεσης της ροής εργασίας.", + "actions.runs.delete.confirm_action": "Σίγουρα θέλετε να διαγράψετε αυτήν την εκτέλεση της ροής εργασίας;", + "actions.runs.delete.error_could_not_load_run": "Δεν ήταν δυνατή η φόρτωση της εκτέλεσης προς διαγραφή.", + "actions.runs.delete.error_could_not_delete_run": "Δεν ήταν δυνατή η διαγραφή της εκτέλεσης.", + "members.add_member": "Προσθήκη μέλους", + "members.user": "Χρήστης", + "members.user_already_member": "Αυτός ο χρήστης είναι ήδη μέλος του οργανισμού.", + "members.no_team_selected": "Τα μέλη του οργανισμού πρέπει να ανήκουν σε τουλάχιστον μια ομάδα." } diff --git a/options/locale_next/locale_en-US.json b/options/locale_next/locale_en-US.json index dcc084f679..12be581273 100644 --- a/options/locale_next/locale_en-US.json +++ b/options/locale_next/locale_en-US.json @@ -119,7 +119,15 @@ "migrate.in_progress.labels": "Migrating labels", "migrate.in_progress.releases": "Migrating releases", "migrate.in_progress.issues": "Migrating issues", + "migrate.in_progress.issues.progress": { + "one": "Migrated %[1]d issue", + "other": "Migrated %[1]d issues" + }, "migrate.in_progress.pulls": "Migrating pull requests", + "migrate.in_progress.pulls.progress": { + "one": "Migrated %[1]d pull request", + "other": "Migrated %[1]d pull requests" + }, "migrate.cancel.title": "Cancel migration", "migrate.cancel.confirmation": "Do you want to cancel this migration?", "repo.issue_indexer.title": "Issue Indexer", @@ -129,6 +137,7 @@ "search.fuzzy_tooltip": "Include results is an approximate match to the search term", "repo.settings.push_mirror.branch_filter.label": "Branch filter (optional)", "repo.settings.push_mirror.branch_filter.description": "Branches to be mirrored. Leave blank to mirror all branches. See %[2]s documentation for syntax. Examples: main, release/*", + "repo.settings.units.more_units_disable_hint": "The \"Enable more\" hint can be disabled in User settings > Appearance.", "incorrect_root_url": "This Forgejo instance is configured to be served on \"%s\". You are currently viewing Forgejo through a different URL, which may cause parts of the application to break. The canonical URL is controlled by Forgejo admins via the ROOT_URL setting in the app.ini.", "themes.names.forgejo-auto": "Forgejo (follow system theme)", "themes.names.forgejo-light": "Forgejo light", @@ -178,6 +187,50 @@ "admin.config.federation.get_headers": "Signed GET headers", "admin.config.federation.post_headers": "Signed POST headers", "admin.config.moderation_config": "Moderation configuration", + "admin.config.ssh.header": "SSH configuration", + "admin.config.ssh.enabled": "Enabled", + "admin.config.ssh.use_builtin_server": "Use built-in server", + "admin.config.ssh.domain": "SSH server domain", + "admin.config.ssh.port": "Port", + "admin.config.ssh.listen_port": "Listen port", + "admin.config.ssh.root_path": "Root path", + "admin.config.ssh.key_test_path": "Key test path", + "admin.config.ssh.keygen_path": "Keygen (\"ssh-keygen\") path", + "admin.config.ssh.minimum_key_size_check": "Minimum key size check", + "admin.config.ssh.minimum_key_sizes": "Minimum key sizes", + "admin.config.git.header": "Git configuration", + "admin.config.git.version": "Git version", + "admin.config.git.disable_diff_highlight": "Disable diff syntax highlighting", + "admin.config.git.diff.max_lines": "Max diff lines per file", + "admin.config.git.diff.max_line_characters": "Max diff characters per line", + "admin.config.git.diff.max_files": "Max diff files shown", + "admin.config.git.gc_args": "GC arguments", + "admin.config.git.migrate_timeout": "Migration timeout", + "admin.config.git.mirror_timeout": "Mirror Update timeout", + "admin.config.git.clone_timeout": "Clone Operation timeout", + "admin.config.git.pull_timeout": "Pull Operation timeout", + "admin.config.git.gc_timeout": "GC Operation timeout", + "admin.config.mailer.header": "Mailer configuration", + "admin.config.mailer.enabled": "Enabled", + "admin.config.mailer.name": "Name", + "admin.config.mailer.sendmail.use": "Use Sendmail", + "admin.config.mailer.sendmail.path": "Sendmail path", + "admin.config.mailer.sendmail.args": "Extra Arguments to Sendmail", + "admin.config.mailer.sendmail.timeout": "Sendmail timeout", + "admin.config.mailer.use_dummy": "Dummy", + "admin.config.mailer.protocol": "Protocol", + "admin.config.mailer.enable_helo": "Enable HELO", + "admin.config.mailer.smtp.addr": "SMTP host", + "admin.config.mailer.smtp.port": "SMTP port", + "admin.config.mailer.user": "User", + "admin.config.db.header": "Database configuration", + "admin.config.db.type": "Type", + "admin.config.db.host": "Host", + "admin.config.db.name": "Name", + "admin.config.db.user": "Username", + "admin.config.db.schema": "Schema", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.path": "Path", "admin.moderation.moderation_reports": "Moderation reports", "admin.moderation.reports": "Reports", "admin.moderation.no_open_reports": "There are currently no open reports.", @@ -224,6 +277,19 @@ "admin.users.list_status_filter.not_2fa_enabled": "2FA disabled", "admin.users.is_bot": "Bot account", "admin.users.bot.description": "Mark the account as a bot.", + "admin.users.name": "Username", + "admin.users.full_name": "Full name", + "admin.users.activated": "Activated", + "admin.users.admin": "Admin", + "admin.users.restricted": "Restricted", + "admin.users.reserved": "Reserved", + "admin.users.bot": "Bot", + "admin.users.remote": "Remote", + "admin.users.2fa": "2FA", + "admin.users.repos": "Repos", + "admin.users.created": "Created", + "admin.users.last_login": "Last sign-in", + "admin.users.never_login": "Never signed in", "admin.monitor.queues": "Queues", "admin.monitor.queue": "Queue: %s", "admin.monitor.queue.name": "Name", @@ -243,6 +309,25 @@ "admin.monitor.queue.settings.changed": "Settings updated", "admin.monitor.queue.settings.remove_all_items": "Remove all", "admin.monitor.queue.settings.remove_all_items.success": "All items in the queue have been removed.", + "admin.orgs.name": "Name", + "admin.orgs.teams": "Teams", + "admin.orgs.members": "Members", + "admin.orgs.new_orga": "New organization", + "admin.repos.owner": "Owner", + "admin.repos.name": "Name", + "admin.repos.issues": "Issues", + "admin.repos.size": "Size", + "admin.repos.lfs_size": "LFS size", + "admin.packages.total_size": "Total size: %s", + "admin.packages.unreferenced_size": "Unreferenced size: %s", + "admin.packages.owner": "Owner", + "admin.packages.creator": "Creator", + "admin.packages.name": "Name", + "admin.packages.version": "Version", + "admin.packages.type": "Type", + "admin.packages.repository": "Repository", + "admin.packages.size": "Size", + "admin.packages.published": "Published", "moderation.report.mark_as_handled": "Mark as handled", "moderation.report.mark_as_ignored": "Mark as ignored", "moderation.action.account.delete": "Delete account", @@ -297,6 +382,56 @@ "admin.dashboard.remove_resolved_reports": "Remove resolved reports", "admin.dashboard.actions_action_user": "Revoke Forgejo Actions trust for inactive users", "admin.dashboard.transfer_lingering_logs": "Transfer actions logs of finished actions jobs from the database to storage", + "admin.dashboard.new_version_hint": "Forgejo %s is now available, you are running %s. Check the blog for more details.", + "admin.dashboard.statistic": "Summary", + "admin.dashboard.operations": "Maintenance operations", + "admin.dashboard.system_status": "System status", + "admin.dashboard.operation_name": "Operation Name", + "admin.dashboard.operation_switch": "Switch", + "admin.dashboard.operation_run": "Run", + "admin.dashboard.task.started": "Started Task: %[1]s", + "admin.dashboard.task.process": "Task: %[1]s", + "admin.dashboard.task.cancelled": "Task: %[1]s canceled: %[3]s", + "admin.dashboard.task.error": "Error in Task: %[1]s: %[3]s", + "admin.dashboard.task.finished": "Task: %[1]s started by %[2]s has finished", + "admin.dashboard.task.unknown": "Unknown task: %[1]s", + "admin.dashboard.cron.started": "Started Cron: %[1]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s canceled: %[3]s", + "admin.dashboard.cron.error": "Error in Cron: %s: %[3]s", + "admin.dashboard.cron.finished": "Cron: %[1]s has finished", + "admin.dashboard.delete_inactive_accounts.started": "Delete all unactivated accounts task started.", + "admin.dashboard.delete_repo_archives.started": "Delete all repository archives task started.", + "admin.dashboard.delete_missing_repos.started": "Delete all repositories missing their Git files task started.", + "admin.dashboard.delete_old_actions.started": "Delete all old activities from database started.", + "admin.dashboard.sync_branch.started": "Branch sync started", + "admin.dashboard.sync_tag.started": "Tag sync started", + "admin.dashboard.delete_generated_repository_avatars": "Delete generated repository avatars", + "admin.dashboard.sync_repo_branches": "Sync missed branches from Git data to database", + "admin.dashboard.sync_repo_tags": "Sync tags from Git data to database", + "admin.dashboard.update_mirrors": "Update mirrors", + "admin.dashboard.repo_health_check": "Health check all repositories", + "admin.dashboard.check_repo_stats": "Check all repository statistics", + "admin.dashboard.archive_cleanup": "Delete old repository archives", + "admin.dashboard.deleted_branches_cleanup": "Clean-up deleted branches", + "admin.dashboard.update_migration_poster_id": "Update migration poster IDs", + "admin.dashboard.git_gc_repos": "Garbage collect all repositories", + "admin.dashboard.resync_all_sshkeys": "Update the \".ssh/authorized_keys\" file with Forgejo SSH keys.", + "admin.dashboard.resync_all_sshprincipals": "Update the \".ssh/authorized_principals\" file with Forgejo SSH principals.", + "admin.dashboard.resync_all_hooks": "Resynchronize Git hooks of all repositories (pre-receive, update, post-receive, proc-receive, …)", + "admin.dashboard.reinit_missing_repos": "Reinitialize all missing Git repositories for which records exist", + "admin.dashboard.sync_external_users": "Synchronize external user data", + "admin.dashboard.cleanup_hook_task_table": "Clean up hook_task table", + "admin.dashboard.cleanup_packages": "Clean up expired packages", + "admin.dashboard.cleanup_actions": "Clean up expired logs and artifacts from actions", + "admin.dashboard.update_checker": "Update checker", + "admin.dashboard.delete_old_system_notices": "Delete all old system notices from database", + "admin.dashboard.gc_lfs": "Garbage collect LFS meta objects", + "admin.dashboard.stop_zombie_tasks": "Stop zombie actions tasks", + "admin.dashboard.stop_endless_tasks": "Stop endless actions tasks", + "admin.dashboard.cancel_abandoned_jobs": "Cancel abandoned actions jobs", + "admin.dashboard.start_schedule_tasks": "Start schedule actions tasks", + "admin.dashboard.rebuild_issue_indexer": "Rebuild issue indexer", "admin.config.security": "Security configuration", "admin.config.global_2fa_requirement.title": "Global two-factor requirement", "admin.config.global_2fa_requirement.none": "No", diff --git a/options/locale_next/locale_es-ES.json b/options/locale_next/locale_es-ES.json index a98e2e3d66..fc80586d59 100644 --- a/options/locale_next/locale_es-ES.json +++ b/options/locale_next/locale_es-ES.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Ruta", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Esquema", + "admin.config.db.user": "Nombre de usuario", + "admin.config.db.name": "Nombre", + "admin.config.db.host": "Host", + "admin.config.db.type": "Tipo", + "admin.config.db.header": "Configuración de base de datos", + "admin.config.mailer.user": "Usuario", + "admin.config.mailer.smtp.port": "Puerto SMTP", + "admin.config.mailer.smtp.addr": "Hospedaje SMTP", + "admin.config.mailer.enable_helo": "Habilitar HELO", + "admin.config.mailer.protocol": "Protocolo", + "admin.config.mailer.use_dummy": "Dummy", + "admin.config.mailer.sendmail.timeout": "Vencimiento de Sendmail", + "admin.config.mailer.sendmail.args": "Argumentos adicionales por Sendmail", + "admin.config.mailer.sendmail.path": "Ruta de Sendmail", + "admin.config.mailer.sendmail.use": "Usar Sendmail", + "admin.config.mailer.name": "Nombre", + "admin.config.mailer.enabled": "Activado", + "admin.config.mailer.header": "Configuración del cartero", + "admin.config.git.gc_timeout": "Vencimiento de operación de GC", + "admin.config.git.pull_timeout": "Vencimiento de operación de pull", + "admin.config.git.clone_timeout": "Vencimiento de operación de clonado", + "admin.config.git.mirror_timeout": "Vencimiento de actualización de réplica", + "admin.config.git.migrate_timeout": "Vencimiento de migración", + "admin.config.git.gc_args": "Argumentos de GC", + "admin.config.git.diff.max_files": "Diff de archivos máxima mostrada", + "admin.config.git.diff.max_line_characters": "Caracteres de diff máx por línea", + "admin.config.git.diff.max_lines": "Líneas de diff máximas por archivo", + "admin.config.git.disable_diff_highlight": "Inhabilitar resaltado de diff de sintaxis", + "admin.config.git.version": "Versión de Git", + "admin.config.git.header": "Configuración de Git", + "admin.config.ssh.minimum_key_sizes": "Tamaños de clave mínimos", + "admin.config.ssh.minimum_key_size_check": "Comprobante de tamaño de clave mínimo", + "admin.config.ssh.keygen_path": "Ruta del generador de claves (\"ssh-keygen\")", + "admin.config.ssh.key_test_path": "Ruta de la clave de prueba", + "admin.config.ssh.root_path": "Ruta raíz", + "admin.config.ssh.listen_port": "Puerto de escucha", + "admin.config.ssh.port": "Puerto", + "admin.config.ssh.domain": "Dominio del servidor SSH", + "admin.config.ssh.use_builtin_server": "Utilizar servidor integrado", + "admin.config.ssh.enabled": "Habilitado", + "admin.config.ssh.header": "Configuración SSH", + "admin.users.never_login": "No ha ingresado", + "admin.users.last_login": "Último registro", + "admin.users.created": "Creado", + "admin.users.repos": "Repositorios", + "admin.users.2fa": "2FA", + "admin.users.remote": "Remoto", + "admin.users.bot": "Bot", + "admin.users.reserved": "Reservado", + "admin.users.restricted": "Restringido", + "admin.users.admin": "Administrador", + "admin.users.activated": "Activado", + "admin.users.full_name": "Nombre completo", + "admin.users.name": "Nombre de usuario", + "admin.packages.published": "Publicado", + "admin.packages.size": "Tamaño", + "admin.packages.repository": "Repositorio", + "admin.packages.type": "Tipo", + "admin.packages.version": "Versión", + "admin.packages.name": "Nombre", + "admin.packages.creator": "Creador", + "admin.packages.owner": "Propietario", + "admin.packages.unreferenced_size": "Tamaño sin referencia: %s", + "admin.packages.total_size": "Tamaño total: %s", + "admin.repos.lfs_size": "Tamaño LFS", + "admin.repos.size": "Tamaño", + "admin.repos.issues": "Incidencias", + "admin.repos.name": "Nombre", + "admin.repos.owner": "Propietario", + "admin.orgs.new_orga": "Nueva organización", + "admin.orgs.members": "Miembros", + "admin.orgs.teams": "Equipos", + "admin.orgs.name": "Nombre", + "admin.dashboard.rebuild_issue_indexer": "Reconstruir indexador de incidencias", + "admin.dashboard.start_schedule_tasks": "Iniciar tareas programadas", + "admin.dashboard.cancel_abandoned_jobs": "Cancelar trabajos abandonados", + "admin.dashboard.stop_endless_tasks": "Detiene tareas de acciones interminables", + "admin.dashboard.stop_zombie_tasks": "Detener tareas zombie", + "admin.dashboard.gc_lfs": "Recoger basura meta-objetos LFS", + "admin.dashboard.delete_old_system_notices": "Borrar todos los avisos antiguos del sistema de la base de datos", + "admin.dashboard.update_checker": "Buscador de actualizaciones", + "admin.dashboard.cleanup_actions": "Acciones de limpieza de registros expirados y artefactos", + "admin.dashboard.cleanup_packages": "Limpiar paquetes caducados", + "admin.dashboard.cleanup_hook_task_table": "Limpiar la tabla hook_task", + "admin.dashboard.sync_external_users": "Sincronizar datos de usuario externo", + "admin.dashboard.reinit_missing_repos": "Reiniciar todos los repositorios Git faltantes de los que existen registros", + "admin.dashboard.resync_all_hooks": "Resincronizar los hooks de todos los repositorios (pre-recepción, actualización, post-recepción, procesamiento de recepción, etc.)", + "admin.dashboard.resync_all_sshprincipals": "Actualiza el archivo '.ssh/authorized_principals' con los principales del certificado SSH de Forgejo.", + "admin.dashboard.resync_all_sshkeys": "Actualiza el archivo '.ssh/authorized_keys' con claves SSH de Forgejo.", + "admin.dashboard.git_gc_repos": "Ejecutar la recolección de basura en los repositorios", + "admin.dashboard.update_migration_poster_id": "Actualizar ID de usuario en migraciones", + "admin.dashboard.deleted_branches_cleanup": "Limpiar ramas eliminadas", + "admin.dashboard.archive_cleanup": "Eliminar archivos antiguos de los repositorios", + "admin.dashboard.check_repo_stats": "Comprobar todas las estadísticas de todos los repositorios", + "admin.dashboard.repo_health_check": "Chequear de estado de salud de todos los repositorios", + "admin.dashboard.update_mirrors": "Actualizar réplicas", + "admin.dashboard.sync_repo_tags": "Sincronizar etiquetas de Git con la base de datos", + "admin.dashboard.sync_repo_branches": "Sincronizar ramas perdidas de los datos de git a la base de datos", + "admin.dashboard.delete_generated_repository_avatars": "Eliminar avatares generados del repositorio", + "admin.dashboard.sync_tag.started": "Sincronización de etiquetas iniciada", + "admin.dashboard.sync_branch.started": "Inició la sincronización de ramas", + "admin.dashboard.delete_old_actions.started": "Eliminar todas las actividades antiguas de la base de datos iniciadas.", + "admin.dashboard.delete_missing_repos.started": "Se ha iniciado la tarea: \"Eliminar todos los repositorios que faltan sus archivos Git\".", + "admin.dashboard.delete_repo_archives.started": "Se ha iniciado la tarea: \"Eliminar todos los archivos del repositorios\".", + "admin.dashboard.delete_inactive_accounts.started": "Se ha iniciado la tarea: \"Eliminar todas las cuentas inactivas\".", + "admin.dashboard.cron.finished": "Cron: %[1]s ha finalizado", + "admin.dashboard.cron.error": "Error en Cron: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s cancelada: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Cron iniciado: %[1]s", + "admin.dashboard.task.unknown": "Tarea desconocida: %[1]s", + "admin.dashboard.task.finished": "Tarea: %[1]s iniciada por %[2]s ha finalizado", + "admin.dashboard.task.error": "Error en la tarea: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Tarea: %[1]s cancelada: %[3]s", + "admin.dashboard.task.process": "Tarea: %[1]s", + "admin.dashboard.task.started": "Tarea iniciada: %[1]s", + "admin.dashboard.operation_run": "Ejecutar", + "admin.dashboard.operation_switch": "Interruptor", + "admin.dashboard.operation_name": "Nombre de la operación", + "admin.dashboard.system_status": "Estado del sistema", + "admin.dashboard.operations": "Operaciones de mantenimiento", + "admin.dashboard.statistic": "Resumen", + "admin.dashboard.new_version_hint": "Forgejo %s ya está disponible, estás ejecutando %s. Revisa el blog para más detalles.", "admin.monitor.queue.settings.remove_all_items.success": "Todos los elementos en la cola han sido eliminados.", "admin.monitor.queue.settings.remove_all_items": "Eliminar todo", "admin.monitor.queue.settings.changed": "Ajustes actualizados", @@ -58,27 +184,27 @@ "admin.system_status.current_memory_usage": "Uso actual de memoria", "admin.system_status.current_goroutine": "Gorutinas actuales", "admin.system_status.server_uptime": "Tiempo de actividad del servidor", - "markup.filepreview.truncated": "La vista previa se ha truncado", + "markup.filepreview.truncated": "Vista previa truncada", "markup.filepreview.lines": "Líneas %[1]d a %[2]d en %[3]s", "markup.filepreview.line": "Línea %[1]d en %[2]s", "actions.variables.update.success": "La variable ha sido editada.", "actions.variables.update.failed": "Error al editar la variable.", - "actions.variables.creation.success": "La variable \"%s\" ha sido añadida.", - "actions.variables.creation.failed": "No se pudo agregar la variable.", + "actions.variables.creation.success": "Se ha añadido la variable «%s».", + "actions.variables.creation.failed": "No se ha añadido la variable.", "actions.variables.deletion.success": "La variable ha sido eliminada.", "actions.variables.deletion.failed": "No se pudo eliminar la variable.", "actions.variables.not_found": "No se ha encontrado la variable.", "actions.variables.edit": "Editar variable", - "actions.variables.description": "Las variables se pasarán a ciertas acciones y no se podrán leer de otro modo.", + "actions.variables.description": "Las variables se pasarán a determinadas acciones y no podrán leerse de otra forma.", "actions.variables.deletion.description": "Eliminar una variable es permanente y no se puede deshacer. ¿Continuar?", "actions.variables.deletion": "Eliminar variable", "actions.variables.none": "Aún no hay variables.", "actions.variables.creation": "Añadir variable", "actions.variables.management": "Gestión de variables", "actions.variables": "Variables", - "webauthn.error.timeout": "Tiempo de espera máximo alcanzado antes de que su clave pudiese ser leída. Por favor, cargue la página y vuelva a intentarlo.", - "webauthn.error.empty": "Debe establecer un nombre para esta clave.", - "webauthn.error.duplicated": "La clave de seguridad no está permitida para esta solicitud. Por favor, asegúrese de que la clave no está ya registrada.", + "webauthn.error.timeout": "Agotado el tiempo de espera antes de que se pudiera leer tu clave. Por favor, vuelve a cargar esta página e inténtalo de nuevo.", + "webauthn.error.empty": "Debe especificar un nombre para esta clave.", + "webauthn.error.duplicated": "La clave de seguridad no es válida para esta solicitud. Por favor, asegúrate de que la clave no esté ya registrada.", "webauthn.error.unable_to_process": "El servidor no pudo procesar su solicitud.", "webauthn.error.insecure": "WebAuthn sólo soporta conexiones seguras. Para probar sobre HTTP, puede utilizar el origen \"localhost\" o \"127.0.0.1\"", "webauthn.error.unknown": "Ha ocurrido un error desconocido. Por favor, inténtelo de nuevo.", @@ -368,7 +494,7 @@ "themes.names.forgejo-dark": "Forgejo oscuro", "themes.names.forgejo-light": "Forgejo claro", "home.welcome.no_activity": "Sin actividad", - "meta.last_line": "¡Gracias por traducir Forgejo! Esta línea no es vista por los usuarios pero sirve para otros propósitos en la gestión de la traducción. Puedes colocar un dato curioso en la traducción en lugar de traducirla.", + "meta.last_line": "¡Muchas gracias por la traducción, Forgejo!. Esta línea no es visible para los usuarios, pero se utiliza para otros fines relacionados con la gestión de la traducción. Puedes incluir un dato curioso en la traducción, en lugar de traducirla.", "relativetime.now": "ahora", "relativetime.mins": { "one": "hace %d minuto", @@ -646,5 +772,20 @@ "teams.remove_all_repos.modal.header": "Retira todos los repositorios", "admin.auths.oauth2_quota_group_map_removal": "Retire los usuarios desde los grupos de cuota sincronizados si el usuario no pertenece al grupo correspondiente.", "actions.runners.list_runners.delete_button": "Eliminar", - "actions.runners.list_runners.delete_button_aria": "Eliminar" + "actions.runners.list_runners.delete_button_aria": "Eliminar", + "form.RunnerName": "Nombre", + "graphs.recent_commits.title": "Número de instantáneas (commit) en el último año", + "graphs.code_frequency.title": "Frecuencia de códigos a lo largo de la historia de {0}", + "repo.files.caption": "Archivos del repositorio (primero la última confirmación)", + "repo.files.filename": "Nombre del archivo", + "repo.files.last_commit_message": "Mensaje del último instantánea", + "repo.files.last_commit_date": "Fecha de la última instantánea", + "admin.federation.host.fqdn": "FQDN", + "admin.federation.host.schema": "Esquema", + "moderation.users.cannot_suspend_admins": "Los usuarios con privilegios de administrador no pueden ser bloqueados.", + "actions.status.diagnostics.waiting": { + "one": "A la espera de un proceso con la siguiente etiqueta: %s", + "many": "A la espera de un proceso con las siguientes etiquetas: %s", + "other": "A la espera de un proceso con las siguientes etiquetas: %s" + } } diff --git a/options/locale_next/locale_et.json b/options/locale_next/locale_et.json index c3246e4185..3d0ef768db 100644 --- a/options/locale_next/locale_et.json +++ b/options/locale_next/locale_et.json @@ -104,5 +104,6 @@ "repo.pulls.poster_trust_once": "Luba üks kord", "repo.pulls.poster_trust_always": "Luba alati", "repo.pulls.poster_trust_revoke": "Tühista", - "migrate.select.title": "Migreeri hoidla" + "migrate.select.title": "Migreeri hoidla", + "repo.files.filename": "Failinimi" } diff --git a/options/locale_next/locale_fa-IR.json b/options/locale_next/locale_fa-IR.json index 91c2e5f3bd..f1f62ab7bb 100644 --- a/options/locale_next/locale_fa-IR.json +++ b/options/locale_next/locale_fa-IR.json @@ -1,4 +1,99 @@ { + "admin.config.db.path": "مسیر", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "شماتیک", + "admin.config.db.user": "نام‎کاربری", + "admin.config.db.name": "نام", + "admin.config.db.host": "میزبان", + "admin.config.db.type": "نوع", + "admin.config.db.header": "تنظیمات پایگاه داده", + "admin.config.mailer.user": "کاربر", + "admin.config.mailer.smtp.port": "گذرگاه(پورت) SMTP", + "admin.config.mailer.sendmail.timeout": "مهلت زمانی ارسال نامه", + "admin.config.mailer.sendmail.args": "برهان های اضافی برای ارسال مستقیم ایمیل", + "admin.config.mailer.sendmail.path": "مسیر ارسال ایمیل مستقیم", + "admin.config.mailer.sendmail.use": "استفاده از ارسال رایانامه (ایمیل) مستقیم", + "admin.config.mailer.name": "نام", + "admin.config.mailer.enabled": "فعال شده", + "admin.config.git.gc_timeout": "زمان آستانه ی عملیات GC", + "admin.config.git.pull_timeout": "زمان آستانه ی عملیات واکشی", + "admin.config.git.clone_timeout": "زمان آستانه ی عملیات Clone", + "admin.config.git.mirror_timeout": "زمان آستانه در به روز رسانی قرینه", + "admin.config.git.migrate_timeout": "آستانه ی زمان مهاجرت", + "admin.config.git.gc_args": "آرگومان های GC", + "admin.config.git.diff.max_files": "حداکثر فایل های Diff (برای نمایش)", + "admin.config.git.diff.max_line_characters": "حداکثر کاراکتر در Diff (برای یک خط)", + "admin.config.git.diff.max_lines": "حداکثر خط برای Diff (برای یک فایل)", + "admin.config.git.disable_diff_highlight": "غیرفعال کردن برجسته سازی در Diff", + "admin.config.git.version": "نسخه‌ی Git", + "admin.config.git.header": "پیکربندی Git", + "admin.config.ssh.minimum_key_sizes": "حداقل اندازه‌ی کلید ها", + "admin.config.ssh.minimum_key_size_check": "بررسی حداقل طول کلید", + "admin.config.ssh.keygen_path": "مسیر فایل ssh-keygen", + "admin.config.ssh.key_test_path": "مسیر کلید آزمایش", + "admin.config.ssh.root_path": "مسیر ریشه", + "admin.config.ssh.listen_port": "گوش دادن به پورت", + "admin.config.ssh.port": "درگاه (پورت)", + "admin.config.ssh.domain": "دامنه سرور SSH", + "admin.config.ssh.use_builtin_server": "استفاده از ساخته سرور", + "admin.config.ssh.enabled": "فعال شده", + "admin.config.ssh.header": "پیکربندی SSH", + "admin.users.never_login": "هرگز وارد نشده", + "admin.users.last_login": "آخرین ورود", + "admin.users.created": "ایجاد شده", + "admin.users.repos": "مخازن", + "admin.users.2fa": "2FA", + "admin.users.restricted": "محصور", + "admin.users.admin": "مدیر", + "admin.users.activated": "فعال شده", + "admin.users.full_name": "نام کامل", + "admin.users.name": "نام‎کاربری", + "admin.packages.size": "اندازه", + "admin.packages.repository": "مخزن", + "admin.packages.type": "نوع", + "admin.packages.name": "نام", + "admin.packages.owner": "مالک", + "admin.repos.size": "اندازه", + "admin.repos.issues": "مسائل", + "admin.repos.name": "نام", + "admin.repos.owner": "مالک", + "admin.orgs.new_orga": "سازمان جدید", + "admin.orgs.members": "اعضاء", + "admin.orgs.teams": "تیم‌ها", + "admin.orgs.name": "نام", + "admin.dashboard.cleanup_hook_task_table": "جدول hook_task تمیز کردن", + "admin.dashboard.sync_external_users": "همگام سازی اطلاعات کاربر خارجی", + "admin.dashboard.reinit_missing_repos": "تمامی مخازنی که سوابقشان وجود دارند مجدداً گیت آنها مفقود شده است مجدداً مقدمات آنها فراهم شود", + "admin.dashboard.resync_all_hooks": "همگام سازی مجدد hook های pre-receive و update و post-receive برای تمامی مخازن.", + "admin.dashboard.resync_all_sshprincipals": "فایل '.ssh/authorized_principals' را با اصول Forgejo SSH به روز کنید.", + "admin.dashboard.resync_all_sshkeys": "فایل '.ssh/authorized_keys' را با کلیدهای Forgejo SSH به روز کنید.", + "admin.dashboard.git_gc_repos": "متراکم کردن تمامی زباله‌های مخازن", + "admin.dashboard.update_migration_poster_id": "شناسه های پوستر مهاجرت را به روز کنید", + "admin.dashboard.deleted_branches_cleanup": "شاخه های حذف شده را پاک کنید", + "admin.dashboard.archive_cleanup": "آرشیوهای انبار قدیمی را حذف کنید", + "admin.dashboard.check_repo_stats": "تمام آمار انبارها چک شود", + "admin.dashboard.repo_health_check": "سلامت تمام انبار ها چک شود", + "admin.dashboard.update_mirrors": "میرور ها بروزرسانی شود", + "admin.dashboard.delete_generated_repository_avatars": "حذف آواتار هایی که برای مخزن تولید شده اند", + "admin.dashboard.delete_old_actions.started": "حذف تمام اقدامات قدیمی از پایگاه داده شروع شده است.", + "admin.dashboard.delete_missing_repos.started": "تسک تمام انبار هایی که فایل های گیتشان از دست رفته شروع شد.", + "admin.dashboard.delete_repo_archives.started": "تسک حذف تمام آرشیو های انبار شروع شد.", + "admin.dashboard.delete_inactive_accounts.started": "تسک حذف تمام حساب های کاربری غیرفعال شروع شد.", + "admin.dashboard.cron.finished": "Cron: %[1]s پایان یافته است", + "admin.dashboard.cron.error": "خطا در Cron: %s: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Cron شروع شده: %[1]s", + "admin.dashboard.task.unknown": "تسک ناشناخته: %[1]s", + "admin.dashboard.task.finished": "تسک: %[1]s شروع شده توسط %[2]s پایان یافته است", + "admin.dashboard.task.error": "خطا در تسک: %[1]s: %[3]s", + "admin.dashboard.task.process": "تسک: %[1]s", + "admin.dashboard.task.started": "تسک شروع شده: %[1]s", + "admin.dashboard.operation_run": "اجرا", + "admin.dashboard.operation_switch": "تعویض", + "admin.dashboard.operation_name": "نام عملیات", + "admin.dashboard.system_status": "وضعیت سامانه", + "admin.dashboard.operations": "عملیات‌های نگهداری", + "admin.dashboard.statistic": "چکیده", "admin.monitor.queue.settings.changed": "تنظیمات تازه شد", "admin.monitor.queue.settings.submit": "بالا بردن ساماندهی", "admin.monitor.queue.settings.maxnumberworkers.error": "حداکثر تعداد کارگران باید یک عدد باشد", diff --git a/options/locale_next/locale_fi-FI.json b/options/locale_next/locale_fi-FI.json index 11de17d613..7362596ec1 100644 --- a/options/locale_next/locale_fi-FI.json +++ b/options/locale_next/locale_fi-FI.json @@ -1,4 +1,108 @@ { + "admin.config.db.path": "Polku", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Skeema", + "admin.config.db.user": "Käyttäjänimi", + "admin.config.db.name": "Nimi", + "admin.config.db.host": "Isäntä", + "admin.config.db.type": "Tyyppi", + "admin.config.db.header": "Tietokannan asetukset", + "admin.config.mailer.user": "Käyttäjä", + "admin.config.mailer.smtp.port": "SMTP-portti", + "admin.config.mailer.smtp.addr": "SMTP-isäntä", + "admin.config.mailer.enable_helo": "Ota HELO käyttöön", + "admin.config.mailer.protocol": "Protokolla", + "admin.config.mailer.sendmail.timeout": "Sendmailin aikakatkaisu", + "admin.config.mailer.sendmail.args": "Lisäargumentit Sendmailille", + "admin.config.mailer.sendmail.path": "Sendmail-polku", + "admin.config.mailer.sendmail.use": "Käytä Sendmailia", + "admin.config.mailer.name": "Nimi", + "admin.config.mailer.enabled": "Käytössä", + "admin.config.mailer.header": "Postittimen asetukset", + "admin.config.git.gc_timeout": "Roskienkeruun aikakatkaisu", + "admin.config.git.pull_timeout": "Vetotoimenpiteen aikakatkaisu", + "admin.config.git.clone_timeout": "Kloonaustoimenpiteen aikakatkaisu", + "admin.config.git.mirror_timeout": "Peilin päivityksen aikakatkaisu", + "admin.config.git.migrate_timeout": "Migraation aikakatkaisu", + "admin.config.git.gc_args": "Roskienkeruu-argumentit", + "admin.config.git.diff.max_files": "Diff-tiedostoja enintään näytettäväksi", + "admin.config.git.diff.max_line_characters": "Diff-merkkejä enintään riviä kohden", + "admin.config.git.diff.max_lines": "Diff-rivejä enintään tiedostoa kohden", + "admin.config.git.disable_diff_highlight": "Poista diff-syntaksin korostus käytöstä", + "admin.config.git.version": "Git-versio", + "admin.config.git.header": "Git-asetukset", + "admin.config.ssh.minimum_key_sizes": "Avaimen vähimmäiskoot", + "admin.config.ssh.minimum_key_size_check": "Avaimen vähimmäiskoon tarkistus", + "admin.config.ssh.keygen_path": "Keygen-polku ('ssh-keygen')", + "admin.config.ssh.key_test_path": "Avaimen testipolku", + "admin.config.ssh.root_path": "Juuren polku", + "admin.config.ssh.listen_port": "Kuuntele porttia", + "admin.config.ssh.port": "Portti", + "admin.config.ssh.domain": "SSH-palvelimen verkkotunnus", + "admin.config.ssh.use_builtin_server": "Käytä sisäänrakennettua palvelinta", + "admin.config.ssh.enabled": "Käytössä", + "admin.config.ssh.header": "SSH-asetukset", + "admin.users.never_login": "Ei koskaan kirjautunut", + "admin.users.last_login": "Viimeksi kirjautunut", + "admin.users.created": "Luotu", + "admin.users.repos": "Tietovarastot", + "admin.users.2fa": "2FA", + "admin.users.remote": "Etä", + "admin.users.bot": "Botti", + "admin.users.reserved": "Varattu", + "admin.users.restricted": "Rajoitettu", + "admin.users.admin": "Ylläpito", + "admin.users.activated": "Aktivoitu", + "admin.users.full_name": "Koko nimi", + "admin.users.name": "Käyttäjänimi", + "admin.packages.published": "Julkaistu", + "admin.packages.size": "Koko", + "admin.packages.repository": "Tietovarasto", + "admin.packages.type": "Tyyppi", + "admin.packages.version": "Versio", + "admin.packages.name": "Nimi", + "admin.packages.creator": "Luoja", + "admin.packages.owner": "Omistaja", + "admin.packages.total_size": "Koko yhteensä: %s", + "admin.repos.lfs_size": "LFS:n koko", + "admin.repos.size": "Koko", + "admin.repos.issues": "Ongelmat", + "admin.repos.name": "Nimi", + "admin.repos.owner": "Omistaja", + "admin.orgs.new_orga": "Uusi organisaatio", + "admin.orgs.members": "Jäsenet", + "admin.orgs.teams": "Tiimit", + "admin.orgs.name": "Nimi", + "admin.dashboard.update_checker": "Päivitysten tarkistaja", + "admin.dashboard.cleanup_packages": "Siivoa vanhentuneet paketit", + "admin.dashboard.cleanup_hook_task_table": "Siivoa koukku -_tehtävätaulukko", + "admin.dashboard.sync_external_users": "Synkronoi ulkoinen käyttäjädata", + "admin.dashboard.resync_all_sshprincipals": "Päivitä \".ssh/authorized_principals\"-tiedosto Forgejon SSH-prinsipaaleilla.", + "admin.dashboard.resync_all_sshkeys": "Päivitä \".ssh/authorized_keys\"-tiedosto Forgejo:n SSH-avaimilla.", + "admin.dashboard.deleted_branches_cleanup": "Siivoa poistetut haarat", + "admin.dashboard.archive_cleanup": "Poista vanhat tietovarastojen arkistot", + "admin.dashboard.check_repo_stats": "Tarkista kaikkien tietovarastojen tilastot", + "admin.dashboard.repo_health_check": "Tee terveystarkastus kaikille tietovarastoille", + "admin.dashboard.update_mirrors": "Päivitä peilit", + "admin.dashboard.sync_tag.started": "Tagisynkronointi aloitettu", + "admin.dashboard.sync_branch.started": "Haarasynkronointi aloitettu", + "admin.dashboard.delete_repo_archives.started": "Poista kaikki tietovarastojen arkistot -tehtävä aloitettu.", + "admin.dashboard.delete_inactive_accounts.started": "Poista kaikki aktivoimattomat tilit -tehtävä aloitettu.", + "admin.dashboard.cron.finished": "Cron: %[1]s on valmistunut", + "admin.dashboard.cron.error": "Virhe Cronissa: %s: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Käynnistetty Cron: %[1]s", + "admin.dashboard.task.unknown": "Tuntematon tehtävä: %[1]s", + "admin.dashboard.task.error": "Virhe tehtävässä: %[1]s: %[3]s", + "admin.dashboard.task.process": "Tehtävä: %[1]s", + "admin.dashboard.task.started": "Käynnistetty tehtävä: %[1]s", + "admin.dashboard.operation_run": "Suorita", + "admin.dashboard.operation_switch": "Vaihda", + "admin.dashboard.operation_name": "Toimenpiteen nimi", + "admin.dashboard.system_status": "Järjestelmän tila", + "admin.dashboard.operations": "Huoltotoimet", + "admin.dashboard.statistic": "Yhteenveto", + "admin.dashboard.new_version_hint": "Forgejo %s on nyt saatavilla. Käytössäsi on %s. Lue lisätietoja blogista.", "admin.monitor.queue.settings.remove_all_items.success": "Kaikki jonossa olleet tietueet on poistettu.", "admin.monitor.queue.settings.remove_all_items": "Poista kaikki", "admin.monitor.queue.settings.changed": "Asetukset päivitetty", @@ -111,7 +215,7 @@ "notification.mark_all_as_read": "Merkitse kaikki luetuiksi", "notification.subscriptions": "Tilaukset", "notification.watching": "Tarkkaillaan", - "notification.no_subscriptions": "Ei tilauksia", + "notification.no_subscriptions": "Sinulla ei ole tilauksia.", "dropzone.default_message": "Pudota tiedostot tähän tai napsauta tästä lähettääksesi tiedoston.", "dropzone.invalid_input_type": "Tätä tyyppiä olevia tiedostoja ei voi lähettää.", "dropzone.file_too_big": "Tiedoston koko ({{filesize}} Mt) ylittää enimmäisrajan ({{maxFilesize}} Mt).", @@ -272,7 +376,7 @@ "incorrect_root_url": "Tämä Forgejo-instanssi on määritetty toimimaan osoitteessa \"%s\". Tarkastelet tällä hetkellä Forgejoa eri URL-osoitteen kautta, mikä saattaa aiheuttaa sovelluksen osien toimimattomuutta. Virallinen URL-osoite on Forgejo-ylläpitäjien hallinnoima ROOT_URL-asetus app.ini -tiedostossa.", "themes.names.forgejo-auto": "Forgejo (käyttöjärjestelmän määrittelemä teema)", "home.welcome.activity_hint": "Syötteelläsi ei ole vielä mitään. Toimenpiteesi ja toimintasi tietovarastoissa, joita seuraat ilmaantuvat tälle sivulle.", - "home.explore_repos": "Tutustu tietovarastoihin", + "home.explore_repos": "Tutki tietovarastoja", "home.explore_users": "Tutki käyttäjiä", "home.explore_orgs": "Tutki organisaatioita", "error.not_found.title": "Sivua ei löytynyt", @@ -486,7 +590,7 @@ "repo.issues.filter_modified.hint": "Suodata viimeisimmän muokkauspäivän perusteella", "search.syntax": "Hakusyntaksi", "keys.verify.token.hint": "Poletti on voimassa vain 1 minuutin. Hanki uusi jos se vanheni.", - "admin.moderation.moderation_reports": "Moderaatioraportit", + "admin.moderation.moderation_reports": "Lievennysraportit", "migrate.pagure.private_issues.summary": "Yksityiset ongelmat (valinnainen)", "teams.add_all_repos.modal.header": "Lisää kaikki tietovarastot", "teams.remove_all_repos.modal.header": "Poista kaikki tietovarastot", @@ -510,5 +614,117 @@ "mail.issue.action.close_by_commit": "%[1]s sulki %[2]s kommitissa %[3]s.", "editor.search": "Hae", "editor.replace": "Korvaa", - "editor.replace_all": "Korvaa kaikki" + "editor.replace_all": "Korvaa kaikki", + "repo.files.filename": "Tiedostonimi", + "repo.files.last_commit_message": "Viimeisin sitoumusviesti", + "repo.files.last_commit_date": "Viimeisin sitoumuspäivämäärä", + "repo.issues.filter_assignee.hint": "Suodata määritetyn käyttäjän mukaan", + "repo.issues.filter_sort.hint_with_placeholder": "Lajittele mukaan: %s", + "issues.filters.labels.exclude": "Sulje pois nimiö", + "issues.filters.labels.unexclude": "Tyhjennä poissulkeminen", + "repo.pulls.auto_merge.no_permission": "Sinulla ei ole oikeutta peruuttaa tämän vetopyynnön automaattista yhdistämistä.", + "repo.pulls.poster_manage_approval": "Hallinnoi hyväksyntää", + "repo.pulls.poster_requires_approval": "Jotkin työnkulut odottavat arvostelemista.", + "repo.pulls.poster_requires_approval.tooltip": "Tämän vetopyynnön tekijää ei voida luottaa suorittamaan haaroitetusta tietovarastosta tai AGit:lla luodun vetopyynnön laukaisemia työnkulkuja. `pull_request`-tapahtuman laukaisemat työnkulut eivät käynnisty ennen kuin ne on hyväksytty.", + "repo.pulls.poster_is_trusted": "Tämän vetopyynnön tekijään luotetaan aina työnkulkujen suorittamista.", + "repo.pulls.poster_is_trusted.tooltip": "Tämän vetopyynnön tekijään luotetaan nimenomaisesti, jotta hän voi suorittaa `pull_request`-tapahtumien laukaisemia työnkulkuja.", + "repo.pulls.poster_trust_deny.tooltip": "Hyväksyntää odottavat työnkulut peruutetaan.", + "repo.pulls.poster_trust_once.tooltip": "`pull_request`-tapahtuman laukaisemat työnkulut suoritetaan tässä sitoumuksessa, mutta se on hyväksyttävä kaikille tuleville sitoumuksille, jotka lähetetään tähän vetopyyntöön.", + "repo.pulls.poster_trust_always.tooltip": "`pull_request`-tapahtuman laukaisemat työnkulut suoritetaan tässä sitoumuksessa, eikä tästä vetopyynnöstä tai saman käyttäjän kirjoittamista tulevista vetopyynnöistä tulevia suorituksia tarvitse hyväksyä.", + "repo.pulls.poster_trust_revoke": "Peruuta", + "repo.pulls.poster_trust_revoke.tooltip": "Tämän vetopyynnön tekijään ei enää luoteta `pull_request`-tapahtuman laukaisemien työnkulkujen suorittamiseen, vaan jokainen suoritus on hyväksyttävä manuaalisesti.", + "repo.view.gitmodules_too_large": "Tiedosto .gitmodules on liian suuri ja se ohitetaan (esimerkiksi API-kutsuissa)", + "migrate.select.title": "Siirrä tietovarasto", + "repo.issue_indexer.title": "Ongelmaindeksoija", + "search.fuzzy_tooltip": "Sisällytä tulokset on hakutermiä vastaava likimääräinen osuma", + "install.ssh_authorized_keys_inspection_error": "Olemassa olevan authorized_keys-tiedoston tarkastus epäonnistui: %v", + "install.ssh_authorized_keys_unexpected_key": "SSH:n käyttöönotto Forgejossa on ristiriidassa tiedoston kanssa, joka sijaitsee %s:ssa ja sisältää olemassa olevat SSH-avaimet. Ehdotuksia: käytä Forgejolle erillistä järjestelmäkäyttäjää tai poista SSH käytöstä.", + "admin.federation.federation": "Liittovaltio", + "admin.federation.hosts": "Isännät", + "admin.federation.hosts.title": "Liittovaltion isännät", + "admin.federation.hosts.manage_panel": "Hallitse liittovaltion isäntiä", + "admin.federation.hosts.details_panel": "Liittovaltion isännän yksityiskohdat", + "admin.federation.hosts.show_details": "Näytä isännän yksityiskohdat", + "admin.federation.host.id": "Tunnus", + "admin.federation.host.schema": "Kaava", + "admin.federation.host.port": "Portti", + "admin.federation.host.software_name": "Ohjelmisto", + "admin.federation.host.created": "Luotu", + "admin.federation.host.updated": "Päivitetty", + "admin.federation.host.latest_activity": "Viimeisin toiminta", + "admin.federation.users": "Käyttäjät", + "admin.federation.users.title": "Liittoutuneet käyttäjät", + "admin.federation.users.manage_panel": "Hallitse liittoutuneita käyttäjiä", + "admin.federation.users.show_local_user": "Näytä paikallisen käyttäjän yksityiskohdat", + "admin.federation.user.id": "Tunnus", + "admin.federation.user.user_id": "Paikallinen käyttäjätunnus", + "admin.federation.user.external_id": "Ulkoinen käyttäjätunnus", + "admin.federation.user.inbox_path": "Saapuneet-laatikon polku", + "admin.config.federation": "Liittovaltion kokoonpano", + "admin.config.federation.enabled": "Käytössä", + "admin.config.federation.share_user_statistics": "Jaa käyttäjätilastoja muiden isäntien kanssa", + "admin.config.federation.max_size": "Sallittu vastauksen enimmäiskoko", + "admin.config.federation.signature_enforced": "Vaadi HTTP-allekirjoitukset", + "admin.config.federation.signature_algorithms": "Allekirjoitusalgoritmit", + "admin.config.federation.digest_algorithm": "Allekirjoituksen tiivistealgoritmi", + "admin.config.federation.get_headers": "Allekirjoitetut GET-otsikot", + "admin.config.federation.post_headers": "Allekirjoitetut POST-otsikot", + "admin.config.moderation_config": "Lievennyksen kokoonpano", + "admin.system_status.memory_free_times": "Muistin vapautumiset", + "repo.files.caption": "Tietovaraston tiedostot (viimeisin kommitti ensin)", + "repo.pulls.status_checks_skipped": "Ohitettu", + "repo.packages.visibility_warning": "Tämä tietovarasto on yksityinen, mutta linkitetyt paketit ovat julkisia (omistaja %s on julkinen).", + "admin.federation.host.fqdn": "FQDN", + "settings.new_access_token": "Uusi pääsypoletti", + "settings.permissions_access_specific_repositories": "Määritetyt tietovarastot", + "settings.access_token.selected_repositories": { + "one": "Valittu tietovarasto (%d)", + "other": "Valitut tietovarastot (%d)" + }, + "settings.access_token.available_repositories": "Saatavilla olevat tietovarastot", + "settings.access_token.no_repositories_selected": "Tietovarastoja ei ole valittu.", + "settings.access_token.no_repositories_found": "Tietovarastoja ei löytynyt.", + "settings.access_token.remove": "Poista %s", + "settings.access_token.resource_all_help": "Salli pääsy kaikkiin resursseihin.", + "settings.access_token.resource_public_only_help": "Rajoita pääsy julkisiin tietovarastoihin ja organisaatioihin.", + "settings.access_token.resource_specific_repo_help": "Rajoita pääsy määritettyihin tietovarastoihin. Pelkkä lukuoikeus sallitaan kaikkiin julkisiin tietovarastoihin. Vain käyttöoikeudet, jotka sallivat pääsyn tietovarastoihin ja ongelmiin, voidaan ottaa käyttöön.", + "settings.access_token.admin_disabled": "Ylläpito-oikeudet on poistettu käytöstä.", + "settings.authorized_integrations": "Valtuutetut integraatiot", + "settings.manage_authorized_integrations": "Valtuutetut integraatiot", + "settings.authorized_integration.desc": "Valtuutetut integraatiot sallivat Forgejon vastaanottaa allekirjoitettuja JWT:itä, validoida niiden väitteet määrittetyjä sääntöjä vasten, ja sallia niiden pääsy Forgejon rajapintoja vasten.", + "settings.authorized_integration.ui.generic": "Geneerinen JWT", + "settings.authorized_integration.none": "Valtuutettuja integraatioita ei ole määritetty.", + "settings.authorized_integration.edit": "Muokkaa", + "settings.authorized_integration.edit_page_title": "Valtuutettu integraatio %s", + "settings.authorized_integration.create_page_title": "Luo valtuutettu integraatio", + "settings.authorized_integration.save": "Tallenna valtuutettu integraatio", + "settings.authorized_integration.create": "Luo valtuutettu integraatio", + "settings.authorized_integration.create_success": "Luotu valtuutettu integraatio: %s", + "settings.authorized_integration.field.name": "Nimi", + "settings.authorized_integration.field.description": "Kuvaus", + "settings.authorized_integration.name.required": "Valtuutetun integraation nimi vaaditaan.", + "settings.authorized_integration.add": "Lisää valtuutettu integraatio", + "settings.authorized_integration.delete.header": "Poista valtuutettu integraatio", + "settings.authorized_integration.deleted": "Valtuutettu integraatio on poistettu.", + "user.activitypub_feed.feed": "Fediverse-syöte", + "user.activitypub_feed.no_activity": "Ei fediverse-toimintaa", + "user.activitypub_feed.is_empty": "Fediverse-syötteesi on tyhjä.", + "user.activitypub_feed.original_source": "Alkuperäinen lähde", + "packages.common.install": "Asenna tämä paketti suorittamalla seuraava komento:", + "packages.common.registry": "Määritä tämä rekisteri komentoriviltä:", + "packages.common.repository": "Tietovaraston tiedot", + "actions.runners.edit_runner.name_label": "Nimi", + "actions.runners.edit_runner.description_label": "Kuvaus", + "actions.runners.edit_runner.save_button": "Tallenna", + "actions.runners.edit_runner.cancel_button": "Peruuta", + "actions.secrets.edit_button": "Muokkaa salaisuutta \"%s\"", + "actions.secrets.mutation.header": "Muokkaa salaisuutta \"%s\"", + "actions.secrets.mutation.success_message": "Salaisuus \"%s\" on päivitetty.", + "actions.secrets.mutation.failure_message": "Salaisuutta \"%s\" ei voitu päivittää.", + "members.add_member": "Lisää jäsen", + "members.user": "Käyttäjä", + "members.user_already_member": "Tämä käyttäjä on jo organisaation jäsen.", + "members.no_team_selected": "Organisaation jäsenten tulee kuulua vähintään yhteen tiimiin.", + "pulls.manual_merge.copy.button": "Kopioi yhdistämiskommitin viesti", + "form.RunnerName": "Nimi" } diff --git a/options/locale_next/locale_fil.json b/options/locale_next/locale_fil.json index 0b3a418f44..30c8d7be72 100644 --- a/options/locale_next/locale_fil.json +++ b/options/locale_next/locale_fil.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Path", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Schema", + "admin.config.db.user": "Username", + "admin.config.db.name": "Pangalan", + "admin.config.db.host": "Host", + "admin.config.db.type": "Uri", + "admin.config.db.header": "Configuration ng database", + "admin.config.mailer.user": "Gumagamit", + "admin.config.mailer.smtp.port": "Port ng SMTP", + "admin.config.mailer.smtp.addr": "Host ng SMTP", + "admin.config.mailer.enable_helo": "I-enable ang HELO", + "admin.config.mailer.protocol": "Protocol", + "admin.config.mailer.use_dummy": "Dummy", + "admin.config.mailer.sendmail.timeout": "Timeout ng Sendmail", + "admin.config.mailer.sendmail.args": "Extra na argument sa Sendmail", + "admin.config.mailer.sendmail.path": "Path ng sendmail", + "admin.config.mailer.sendmail.use": "Gumamit ng Sendmail", + "admin.config.mailer.name": "Pangalan", + "admin.config.mailer.enabled": "Naka-enable", + "admin.config.mailer.header": "Configuration ng mailer", + "admin.config.git.gc_timeout": "Timeout on operasyon ng GC", + "admin.config.git.pull_timeout": "Timeout ng operasyon ng paghila", + "admin.config.git.clone_timeout": "Timeout ng operasyon na pag-clone", + "admin.config.git.mirror_timeout": "Timeout ng pag-update ng mirror", + "admin.config.git.migrate_timeout": "Timeout ng paglipat", + "admin.config.git.gc_args": "Mga argument ng GC", + "admin.config.git.diff.max_files": "Pinakamataas na mga diff file na ipapakita", + "admin.config.git.diff.max_line_characters": "Pinakamataas na mga character ng diff bawat linya", + "admin.config.git.diff.max_lines": "Pinakamataas na mga linya ng diff bawat file", + "admin.config.git.disable_diff_highlight": "I-disable ang diff syntax highlighting", + "admin.config.git.version": "Bersyon ng Git", + "admin.config.git.header": "Configuration ng git", + "admin.config.ssh.minimum_key_sizes": "Mga pinakamababang laki ng key", + "admin.config.ssh.minimum_key_size_check": "Pinakamababang key size check", + "admin.config.ssh.keygen_path": "Path ng keygen (\"ssh-keygen\")", + "admin.config.ssh.key_test_path": "Path ng key test", + "admin.config.ssh.root_path": "Root path", + "admin.config.ssh.listen_port": "Listen port", + "admin.config.ssh.port": "Port", + "admin.config.ssh.domain": "Server domain ng SSH", + "admin.config.ssh.use_builtin_server": "Gamitin ang built-in server", + "admin.config.ssh.enabled": "Naka-enable", + "admin.config.ssh.header": "Configuration ng SSH", + "admin.users.never_login": "Hindi nag-sign in kailanman", + "admin.users.last_login": "Huling nag sign-in", + "admin.users.created": "Ginawa", + "admin.users.repos": "Mga Repo", + "admin.users.2fa": "2FA", + "admin.users.remote": "Remote", + "admin.users.bot": "Bot", + "admin.users.reserved": "Nakareserba", + "admin.users.restricted": "Pinaghihigpitan", + "admin.users.admin": "Tagapangasiwa", + "admin.users.activated": "Naka-activate", + "admin.users.full_name": "Buong pangalan", + "admin.users.name": "Username", + "admin.packages.published": "Na-publish", + "admin.packages.size": "Laki", + "admin.packages.repository": "Repositoryo", + "admin.packages.type": "Uri", + "admin.packages.version": "Bersyon", + "admin.packages.name": "Pangalan", + "admin.packages.creator": "Gumawa", + "admin.packages.owner": "May-ari", + "admin.packages.unreferenced_size": "Hindi sinangguniang laki: %s", + "admin.packages.total_size": "Kabuuang laki: %s", + "admin.repos.lfs_size": "Laki ng LFS", + "admin.repos.size": "Laki", + "admin.repos.issues": "Mga isyu", + "admin.repos.name": "Pangalan", + "admin.repos.owner": "May-ari", + "admin.orgs.new_orga": "Bagong organisasyon", + "admin.orgs.members": "Mga miyembro", + "admin.orgs.teams": "Mga koponan", + "admin.orgs.name": "Pangalan", + "admin.dashboard.rebuild_issue_indexer": "Gawin muli ang indexef ng isyu", + "admin.dashboard.start_schedule_tasks": "Simulan ang mga naka-iskedyul na aksyon ng task", + "admin.dashboard.cancel_abandoned_jobs": "Kanselahin ang mga naiwang aksyon ng trabaho", + "admin.dashboard.stop_endless_tasks": "Itigil ang mga hindi natatapos na aksyon ng task", + "admin.dashboard.stop_zombie_tasks": "Itigil ang mga zombie action task", + "admin.dashboard.gc_lfs": "I-garbage collect ang mga LFS meta object", + "admin.dashboard.delete_old_system_notices": "Burahin ang lahat ng mga lumang paunawa ng sistema mula sa database", + "admin.dashboard.update_checker": "Tagasuri ng update", + "admin.dashboard.cleanup_actions": "Linisin ang mga nag-expire na log at artifact mula sa mga aksyon", + "admin.dashboard.cleanup_packages": "Linisin ang mga na-expire na package", + "admin.dashboard.cleanup_hook_task_table": "Linisin ang hook_task table", + "admin.dashboard.sync_external_users": "I-synchronize ang panlabas na user data", + "admin.dashboard.reinit_missing_repos": "Muling pagsasaayos ng lahat ng nawawalang mga repositori ng Git kung saan umiiral ang mga tala", + "admin.dashboard.resync_all_hooks": "I-resychronize ang mga Git hook ng lahat ng mga repositoryo (pre-receive, post-receive, proc-receive, …)", + "admin.dashboard.resync_all_sshprincipals": "I-update ang \".ssh/authorized_principals\" file sa mga principal ng Forgejo SSH.", + "admin.dashboard.resync_all_sshkeys": "I-update ang \".ssh/authorized_keys\" file sa mga key ng Forgejo SSH.", + "admin.dashboard.git_gc_repos": "I-garbage collect ang lahat ng mga repositoryo", + "admin.dashboard.update_migration_poster_id": "I-update ang mga migration poster ID", + "admin.dashboard.deleted_branches_cleanup": "Linisin ang mga binurang branch", + "admin.dashboard.archive_cleanup": "Burahin ang mga lumang archive ng repositoryo", + "admin.dashboard.check_repo_stats": "Suriin ang lahat ng istatistika ng repositoryo", + "admin.dashboard.repo_health_check": "Suriin ang kalusugan ng lahat ng mga repositoryo", + "admin.dashboard.update_mirrors": "I-update ang mga mirror", + "admin.dashboard.sync_repo_tags": "I-sync ang mga tag mula sa Git data sa database", + "admin.dashboard.sync_repo_branches": "I-sync ang mga nawawalang branch mula sa Git data sa database", + "admin.dashboard.delete_generated_repository_avatars": "Burahin ang mga na-generate na avatar ng repositoryo", + "admin.dashboard.sync_tag.started": "Nasimulan ang pag-sync ng mga tag", + "admin.dashboard.sync_branch.started": "Nasimulan ang pag-sync ng mga branch", + "admin.dashboard.delete_old_actions.started": "Nasimula na ang burahin ang lahat ng mga lumang aktibidad mula sa database.", + "admin.dashboard.delete_missing_repos.started": "Nasimula na ang utos na burahin ang lahat ng mga repositoryo na nawawalan ng kanilang mga Git file.", + "admin.dashboard.delete_repo_archives.started": "Nasimulan na ang utos na burahin ang lahat ng mga archive ng repositoryo.", + "admin.dashboard.delete_inactive_accounts.started": "Sinumulan na ang utos na burahin ang lahat ng mga hindi na-activate na account.", + "admin.dashboard.cron.finished": "Cron: natapos na ang %[1]s", + "admin.dashboard.cron.error": "Error sa Cron: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s ay kinansela: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Sinumulan ang Cron: %[1]s", + "admin.dashboard.task.unknown": "Hindi kilalang utos: %[1]s", + "admin.dashboard.task.finished": "Utos: %[1]s na sinumulan ni %[2]s ay natapos na", + "admin.dashboard.task.error": "Error sa Utos: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Utos: %[1]s ay kinansela: %[3]s", + "admin.dashboard.task.process": "Utos: %[1]s", + "admin.dashboard.task.started": "Sinimulan ang Utos: %[1]s", + "admin.dashboard.operation_run": "Patakbuhin", + "admin.dashboard.operation_switch": "Palitan", + "admin.dashboard.operation_name": "Pangalan ng Operasyon", + "admin.dashboard.system_status": "Status ng sistema", + "admin.dashboard.operations": "Mga operasyon ng pagpapanatili", + "admin.dashboard.statistic": "Buod", + "admin.dashboard.new_version_hint": "Available na ang Forgejo %s, tumatakbo ka ng %s. Suriin ang blog para sa karagdagang detalye.", "admin.monitor.queue.settings.remove_all_items.success": "Tinanggal na ang lahat ng mga item sa queue.", "admin.monitor.queue.settings.remove_all_items": "Tanggalin lahat", "admin.monitor.queue.settings.changed": "Na-update ang mga setting", diff --git a/options/locale_next/locale_fr-FR.json b/options/locale_next/locale_fr-FR.json index 68d76f83f3..b4a7208f6e 100644 --- a/options/locale_next/locale_fr-FR.json +++ b/options/locale_next/locale_fr-FR.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Emplacement", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Schéma", + "admin.config.db.user": "Nom d'utilisateur", + "admin.config.db.name": "Nom", + "admin.config.db.host": "Hôte", + "admin.config.db.type": "Type", + "admin.config.db.header": "Configuration de la base de données", + "admin.config.mailer.user": "Utilisateur", + "admin.config.mailer.smtp.port": "Port SMTP", + "admin.config.mailer.smtp.addr": "Adresse SMTP", + "admin.config.mailer.enable_helo": "Activer HELO", + "admin.config.mailer.protocol": "Protocole", + "admin.config.mailer.use_dummy": "Factice", + "admin.config.mailer.sendmail.timeout": "Délai d’attente de Sendmail", + "admin.config.mailer.sendmail.args": "Arguments supplémentaires pour Sendmail", + "admin.config.mailer.sendmail.path": "Chemin d’accès à Sendmail", + "admin.config.mailer.sendmail.use": "Utiliser Sendmail", + "admin.config.mailer.name": "Nom", + "admin.config.mailer.enabled": "Activé", + "admin.config.mailer.header": "Configuration du service SMTP", + "admin.config.git.gc_timeout": "Délai imparti pour l'opération \"GC\"", + "admin.config.git.pull_timeout": "Délai imparti pour l'opération \"Pull\"", + "admin.config.git.clone_timeout": "Délai imparti pour l'opération \"clone\"", + "admin.config.git.mirror_timeout": "Délai imparti pour mettre à jour le miroir", + "admin.config.git.migrate_timeout": "Délai imparti pour une migration", + "admin.config.git.gc_args": "Arguments de GC", + "admin.config.git.diff.max_files": "Nombre max de fichiers de diff (à afficher)", + "admin.config.git.diff.max_line_characters": "Nombre max de caractères de diff (pour une seule ligne)", + "admin.config.git.diff.max_lines": "Lignes de diff Max (pour un seul fichier)", + "admin.config.git.disable_diff_highlight": "Désactiver la surbrillance syntaxique de diff", + "admin.config.git.version": "Version de Git", + "admin.config.git.header": "Configuration de Git", + "admin.config.ssh.minimum_key_sizes": "Tailles de clé minimales", + "admin.config.ssh.minimum_key_size_check": "Vérification de la longueur de clé minimale", + "admin.config.ssh.keygen_path": "Chemin vers le générateur de clefs (\"ssh-keygen\")", + "admin.config.ssh.key_test_path": "Chemin de test des clés", + "admin.config.ssh.root_path": "Emplacement racine", + "admin.config.ssh.listen_port": "Port d'écoute", + "admin.config.ssh.port": "Port", + "admin.config.ssh.domain": "Domaine du serveur SSH", + "admin.config.ssh.use_builtin_server": "Utiliser le serveur incorporé", + "admin.config.ssh.enabled": "Activé", + "admin.config.ssh.header": "Configuration SSH", + "admin.users.never_login": "Jamais connecté", + "admin.users.last_login": "Dernière connexion", + "admin.users.created": "Créés", + "admin.users.repos": "Dépôts", + "admin.users.2fa": "2FA", + "admin.users.remote": "Distant", + "admin.users.bot": "Robot", + "admin.users.reserved": "Réservé", + "admin.users.restricted": "Restreint", + "admin.users.admin": "Administrateur", + "admin.users.activated": "Activé", + "admin.users.full_name": "Nom complet", + "admin.users.name": "Nom d'utilisateur", + "admin.packages.published": "Publiés", + "admin.packages.size": "Taille", + "admin.packages.repository": "Dépôt", + "admin.packages.type": "Type", + "admin.packages.version": "Version", + "admin.packages.name": "Nom", + "admin.packages.creator": "Créateur", + "admin.packages.owner": "Propriétaire", + "admin.packages.unreferenced_size": "Taille non référencée : %s", + "admin.packages.total_size": "Taille totale : %s", + "admin.repos.lfs_size": "Taille LFS", + "admin.repos.size": "Taille", + "admin.repos.issues": "Tickets", + "admin.repos.name": "Nom", + "admin.repos.owner": "Propriétaire", + "admin.orgs.new_orga": "Nouvelle organisation", + "admin.orgs.members": "Membres", + "admin.orgs.teams": "Équipes", + "admin.orgs.name": "Nom", + "admin.dashboard.rebuild_issue_indexer": "Reconstruire l’indexeur des issues", + "admin.dashboard.start_schedule_tasks": "Démarrer les actions planifiées", + "admin.dashboard.cancel_abandoned_jobs": "Annuler les actions abandonnées", + "admin.dashboard.stop_endless_tasks": "Arrêter les actions sans fin", + "admin.dashboard.stop_zombie_tasks": "Arrêter les actions zombies", + "admin.dashboard.gc_lfs": "Épousseter les métaobjets LFS", + "admin.dashboard.delete_old_system_notices": "Supprimer toutes les anciennes observations de la base de données", + "admin.dashboard.update_checker": "Vérificateur de mise à jour", + "admin.dashboard.cleanup_actions": "Nettoyer les journaux et les artefacts des actions obsolètes", + "admin.dashboard.cleanup_packages": "Nettoyer des paquets expirés", + "admin.dashboard.cleanup_hook_task_table": "Nettoyer la table hook_task", + "admin.dashboard.sync_external_users": "Synchroniser les données de l’utilisateur externe", + "admin.dashboard.reinit_missing_repos": "Réinitialiser tous les dépôts Git manquants pour lesquels un enregistrement existe", + "admin.dashboard.resync_all_hooks": "Re-synchroniser les déclencheurs Git de tous les dépôts (pre-receive, update, post-receive, proc-receive, ...)", + "admin.dashboard.resync_all_sshprincipals": "Mettre à jour le fichier « .ssh/authorized_principals » avec les principaux de Forgejo SSH.", + "admin.dashboard.resync_all_sshkeys": "Mettre à jour le fichier « ssh/authorized_keys » avec les clés SSH Forgejo.", + "admin.dashboard.git_gc_repos": "Exécuter le ramasse-miette des dépôts", + "admin.dashboard.update_migration_poster_id": "Actualiser les ID des affiches de migration", + "admin.dashboard.deleted_branches_cleanup": "Nettoyer les branches supprimées", + "admin.dashboard.archive_cleanup": "Supprimer les archives des vieux dépôts", + "admin.dashboard.check_repo_stats": "Voir les statistiques de tous les dépôts", + "admin.dashboard.repo_health_check": "Vérifier l'état de santé de tous les dépôts", + "admin.dashboard.update_mirrors": "Actualiser les miroirs", + "admin.dashboard.sync_repo_tags": "Synchroniser les étiquettes depuis Git vers la base de donnée", + "admin.dashboard.sync_repo_branches": "Synchroniser les branches manquantes depuis Git vers la base de donnée", + "admin.dashboard.delete_generated_repository_avatars": "Supprimer les avatars de dépôt générés", + "admin.dashboard.sync_tag.started": "La synchronisation des étiquettes a commencé", + "admin.dashboard.sync_branch.started": "Début de la synchronisation des branches", + "admin.dashboard.delete_old_actions.started": "Suppression de toutes les anciennes activités de la base de données démarrée.", + "admin.dashboard.delete_missing_repos.started": "Tâche de suppression de tous les dépôts sans fichiers Git démarrée.", + "admin.dashboard.delete_repo_archives.started": "Tâche de suppression de toutes les archives de dépôts démarrée.", + "admin.dashboard.delete_inactive_accounts.started": "Tâche de suppression de tous les comptes inactifs démarrée.", + "admin.dashboard.cron.finished": "Tâche récurrente %[1]s terminée", + "admin.dashboard.cron.error": "Erreur dans la tâche récurrente %s : %[3]s", + "admin.dashboard.cron.cancelled": "Tâche récurrente %[1]s annulée : %[3]s", + "admin.dashboard.cron.process": "Tâche récurrente : %[1]s", + "admin.dashboard.cron.started": "Tâche planifiée démarrée : %[1]s", + "admin.dashboard.task.unknown": "Tâche inconnue : %[1]s", + "admin.dashboard.task.finished": "Tâche : %[1]s démarrée par %[2]s est terminée", + "admin.dashboard.task.error": "Erreur dans la tâche : %[1]s : %[3]s", + "admin.dashboard.task.cancelled": "Tâche %[1]s annulée : %[3]s", + "admin.dashboard.task.process": "Tâche : %[1]s", + "admin.dashboard.task.started": "Tâche démarrée : %[1]s", + "admin.dashboard.operation_run": "Exécuter", + "admin.dashboard.operation_switch": "Basculer", + "admin.dashboard.operation_name": "Nom de l'Opération", + "admin.dashboard.system_status": "État du système", + "admin.dashboard.operations": "Opérations de maintenance", + "admin.dashboard.statistic": "Résumé", + "admin.dashboard.new_version_hint": "Forgejo %s est maintenant disponible, vous utilisez %s. Consultez le blog pour plus de détails.", "admin.monitor.queue.settings.remove_all_items.success": "Tous les éléments de la file d'attente ont été effacés.", "admin.monitor.queue.settings.remove_all_items": "Tout effacer", "admin.monitor.queue.settings.changed": "Paramètres mis à jour", @@ -99,9 +225,9 @@ "other": "" }, "counters.n_tags": { - "one": "%s étiquettes", - "many": "%s étiquettes", - "other": "" + "one": "%s tag", + "many": "%s tags", + "other": "%s tags" }, "counters.n_releases": { "one": "%s publication", @@ -186,7 +312,7 @@ "packages.arch.version.provides": "Fournit", "packages.arch.version.groups": "Groupe", "packages.arch.version.optdepends": "Dépendances optionnelles", - "packages.arch.version.makedepends": "Faire des dépendances", + "packages.arch.version.makedepends": "Dépendances de compilation", "packages.arch.version.checkdepends": "Vérifier les dépendances", "packages.arch.version.conflicts": "Conflits", "packages.arch.version.replaces": "Remplace", @@ -292,14 +418,14 @@ "packages.owner.settings.chef.keypair": "Générer une paire de clés", "packages.owner.settings.chef.keypair.description": "Les requêtes envoyées au registre Chef doivent être signées cryptographiquement à des fin d'authentification. Lorsqu'une paire de clés est générée, seule la clé publique est conservée dans Forgejo. La clé privée est fournie afin que vous puissiez l'utiliser avec knife. La génération d'une nouvelle clé remplace la précédente.", "fork.n_forks": { - "one": "%s bifurcation", - "many": "%s bifurcations", - "other": "" + "one": "%s fork", + "many": "%s forks", + "other": "%s forks" }, "stars.n_stars": { "one": "%s étoiles", "many": "%s étoiles", - "other": "" + "other": "%s étoiles" }, "release.n_downloads": { "one": "%s téléchargement", @@ -319,7 +445,7 @@ "search.milestone_kind": "Recherche dans les jalons…", "discussion.locked": "Cette discussion a été bloqué. Les commentaires sont limités aux contributeurs.", "relativetime.now": "maintenant", - "relativetime.future": "dans le future", + "relativetime.future": "dans le futur", "relativetime.mins": { "one": "il y a %d minute", "many": "il y a %d minutes", @@ -439,17 +565,17 @@ "migrate.items.wiki": "Wiki", "migrate.items.milestones": "Jalons", "migrate.items.labels": "Labels", - "migrate.items.issues": "Tickets", - "migrate.items.pull_requests": "Demandes d'ajout", - "migrate.items.merge_requests": "Demandes de fusion", + "migrate.items.issues": "Issues", + "migrate.items.pull_requests": "Pull requests", + "migrate.items.merge_requests": "Merge requests", "migrate.items.releases": "Publications", "migrate.in_progress.git": "Migration des données Git", "migrate.in_progress.topics": "Migration des sujets", "migrate.in_progress.milestones": "Migration des jalons", "migrate.in_progress.labels": "Migration des labels", "migrate.in_progress.releases": "Migration des publications", - "migrate.in_progress.issues": "Migration des tickets", - "migrate.in_progress.pulls": "Migration des demandes d'ajout", + "migrate.in_progress.issues": "Migration des issues", + "migrate.in_progress.pulls": "Migration des pull requests", "migrate.cancel.title": "Annuler la migration", "migrate.cancel.confirmation": "Voulez-vous abandonner cette migration ?", "admin.dashboard.remove_resolved_reports": "Supprimer les signalements résolus", @@ -460,13 +586,13 @@ "admin.moderation.reports": "Signalements", "admin.moderation.no_open_reports": "Il n'y a actuellement aucun signalement ouvert.", "warning.repository.out_of_sync": "La représentation en base de données de ce dépôt est désynchronisée. Si cet avertissement s'affiche toujours après avoir poussé un commit sur ce dépôt, veuillez contacter l'administrateur.", - "repo.pulls.already_merged": "Fusion échouée : Cette demande d'ajout a déjà été fusionnée.", + "repo.pulls.already_merged": "Merge échoué : Cette pull request a déjà été mergée.", "migrate.form.error.url_credentials": "L'URL contient des identifiants, mettez-les dans les champs utilisateur et mot de passe respectivement", "settings.twofa_reenroll": "Réenregistrer l'authentification à deux facteurs", "settings.twofa_reenroll.description": "Réenregistrer votre authentification à deux facteurs", "user.ghost.tooltip": "Cet utilisateur a été supprimé, ou ne peut pas être trouvé.", "og.repo.summary_card.alt_description": "Fiche récapitulative du dépôt %[1]s, décrit comme : %[2]s", - "repo.commit.load_tags_failed": "Impossible de charger les étiquettes à cause d'une erreur interne", + "repo.commit.load_tags_failed": "Impossible de charger les tags à cause d'une erreur interne", "actions.runs.view_most_recent_run": "Voir l'exécution la plus récente", "actions.runs.viewing_out_of_date_run": "Vous consultez une exécution obsolète de cette tâche qui a été lancée le %[1]s.", "actions.runs.run_attempt_label": "Tentative d'exécution #%[1]s (%[2]s)", @@ -531,10 +657,10 @@ "repo.pulls.maintainers_can_edit": "Les mainteneurs peuvent modifier cette pull request.", "repo.pulls.maintainers_cannot_edit": "Les mainteneurs ne peuvent pas éditer cette pull request.", "mail.issue.action.close_by_commit": "%[1]s a fermé %[2]s dans le commit %[3]s.", - "migrate.pagure.private_issues.summary": "Tickets privés (Optionnel)", - "migrate.pagure.private_issues.description": "Cette fonctionnalité est conçue pour créer un deuxième dépôt contenant uniquement des tickets privés de votre projet Pagure à des fins d'archive. Premièrement, effectuer une migration normale (sans jeton) pour importer tout le contenu public. Ensuite, si vous avez des tickets privés à préserver, créez un dépôt séparé en utilisant cette option de jeton pour archiver ces tickets privés.", - "migrate.pagure.private_issues.warning": "Assurez-vous de définir la visibilité du dépôt ci-dessus à Privé si vous utilisez la clé API pour importer des tickets privés. Cela empêche d'exposer accidentellement du contenu privé dans un dépôt public.", - "migrate.pagure.token.placeholder": "Seulement pour créer des archives de tickets privés", + "migrate.pagure.private_issues.summary": "Issues privées (Optionnel)", + "migrate.pagure.private_issues.description": "Cette fonctionnalité est conçue pour créer un deuxième dépôt contenant uniquement des issues privées de votre projet Pagure à des fins d'archive. Premièrement, effectuer une migration normale (sans jeton) pour importer tout le contenu public. Ensuite, si vous avez des issues privées à préserver, créez un dépôt séparé en utilisant cette option de jeton pour archiver ces issues privées.", + "migrate.pagure.private_issues.warning": "Assurez-vous de définir la visibilité du dépôt ci-dessus à Privé si vous utilisez la clé API pour importer des issues privées. Cela empêche d'exposer accidentellement du contenu privé dans un dépôt public.", + "migrate.pagure.token.placeholder": "Seulement pour créer des archives d'issues privées", "actions.workflow.pre_execution_error": "Le workflow n'a pas été exécuté en raison d'une erreur qui a bloqué la tentative d'exécution.", "watch.n_watchers": { "one": "%s observateur", @@ -561,7 +687,7 @@ "repo.issues.filter_assignee.hint": "Filtrer par utilisateur assigné", "repo.issues.filter_reviewers.hint": "Filtrer par l'utilisateur qui a examiné", "repo.issues.filter_mention.hint": "Filtrer par utilisateur mentionné", - "repo.issues.filter_modified.hint": "Filtrer par la dernière date modifiée", + "repo.issues.filter_modified.hint": "Filtrer par dernière date de modification", "search.syntax": "Syntaxe de recherche", "admin.dashboard.transfer_lingering_logs": "Transférer les journaux des actions terminées de la base de données au stockage", "actions.status.diagnostics.waiting": { @@ -581,7 +707,7 @@ "moderation.action.account.delete": "Supprimer le compte", "moderation.action.account.suspend": "Suspendre le compte", "moderation.action.repo.delete": "Supprimer le dépôt", - "moderation.action.issue.delete": "Supprimer le ticket", + "moderation.action.issue.delete": "Supprimer l'issue", "moderation.action.comment.delete": "Supprimer le commentaire", "moderation.unknown_action": "Action inconnue", "moderation.users.cannot_suspend_self": "Vous ne pouvez pas vous suspendre vous même.", @@ -590,13 +716,13 @@ "moderation.users.already_suspended": "Le compte est déjà suspendu.", "moderation.users.suspend_success": "Le compte a été suspendu.", "moderation.users.cannot_delete_admins": "Les utilisateurs avec les droits d'administration ne peuvent pas être supprimés.", - "moderation.issue.deletion_success": "Le ticket a été supprimé.", + "moderation.issue.deletion_success": "L'issue a été supprimée.", "moderation.comment.deletion_success": "Le commentaire a été supprimé.", "actions.workflow.incomplete_matrix_missing_job": "Impossible d'évaluer `strategy.matrix` de la tâche %[1]s : la tâche %[2]s n'est pas dans la liste `needs` de la tâche %[1]s (%[3]s).", - "actions.workflow.incomplete_matrix_missing_output": "Impossible d'évaluer `strategy.matrix` de la tâche %[1]s : la tâche %[2]s n'a pas de sortie %[3]s.", + "actions.workflow.incomplete_matrix_missing_output": "Impossible d'évaluer `strategy.matrix` de la tâche %[1]s : la sortie %[3]s manque dans la tâche %[2]s.", "actions.workflow.incomplete_matrix_unknown_cause": "Impossible d'évaluer `strategy.matrix` de la tâche %[1]s : erreur inconnue.", "actions.workflow.incomplete_runson_missing_job": "Impossible d'évaluer les `runs-on` de la tâche %[1]s : la tâche %[2]s n'est pas dans la liste des `needs` de la tâche %[1]s (%[3]s).", - "actions.workflow.incomplete_runson_missing_output": "Impossible d'évaluer les `runs-on` de la tâche %[1]s : la tâche %[2]s n'a pas de sortie %[3]s.", + "actions.workflow.incomplete_runson_missing_output": "Impossible d'évaluer les `runs-on` de la tâche %[1]s : la sortie %[3]s manque dans la tâche %[2]s.", "actions.workflow.incomplete_runson_missing_matrix_dimension": "Impossible d'évaluer les `runs-on` de la tâche %[1]s : la dimension matricielle %[2]s n'existe pas.", "actions.workflow.incomplete_runson_unknown_cause": "Impossible d'évaluer `runs-on` de la tâche %[1]s : erreur inconnue.", "admin.auths.oauth2_quota_group_map_removal": "Supprimer les utilisateurs des groupes de quotas synchronisés si l'utilisateur n'appartient pas au groupe correspondant.", @@ -622,7 +748,7 @@ "actions.secrets.creation.value_description": "La valeur d'un secret peut être n'importe quel texte. Les caractères spéciaux sont conservés. Les CRLF (saut de ligne au format Microsoft) sont automatiquement convertis en LF. Encodez la valeur en Base64 si les sauts de ligne doivent être conservés.", "actions.variables.mutation.name_description": "Le nom d'une variable ne peut contenir que des lettres, nombres, ou `_`. Il ne peut pas être nommé CI ou commencer par FORGEJO_, GITEA_, GITHUB_, ou un nombre. Forgejo le convertira automatiquement en majuscules.", "actions.variables.mutation.value_description": "La valeur d'une variable peut être n'importe quel texte. Les caractères spéciaux sont conservés. Les CRLF (saut de ligne au format Microsoft) sont automatiquement convertis en LF. Encodez la valeur en Base64 si les sauts de ligne doivent être conservés.", - "repo.issues.filter_sort.hint_with_placeholder": "Trier par: %s", + "repo.issues.filter_sort.hint_with_placeholder": "Trier par : %s", "packages.common.install": "Pour installer le paquet, exécutez la commande suivante :", "packages.common.registry": "Configurez ce registre à partir de la ligne de commande suivante :", "packages.common.repository": "Informations sur le dépôt", @@ -698,7 +824,7 @@ "settings.access_token.no_repositories_found": "Aucun dépôt trouvé.", "settings.access_token.remove": "Supprimer %s", "settings.access_token.resource_public_only_help": "Limiter l'accès aux dépôts et aux organisations publiques.", - "settings.access_token.resource_specific_repo_help": "Limiter l'accès à une liste spécifique de dépôts. L'accès en lecture seule est autorisé sur tous les dépôts publiques. Seules les permissions permettant l'accès aux dépôts et aux tickets peuvent être activées.", + "settings.access_token.resource_specific_repo_help": "Limiter l'accès à une liste spécifique de dépôts. L'accès en lecture seule est autorisé sur tous les dépôts publiques. Seules les permissions permettant l'accès aux dépôts et aux issues peuvent être activées.", "settings.access_token.admin_disabled": "Les autorisations administratives sont désactivées.", "actions.runners.token": "Jeton", "actions.runners.ephemeral.no": "non", @@ -725,5 +851,19 @@ "repo.files.filename": "Fichier", "repo.files.last_commit_message": "Dernier message de commit", "repo.files.last_commit_date": "Date du dernier commit", - "admin.federation.host.created": "Créé" + "admin.federation.host.created": "Créé", + "admin.federation.host.software_name": "Programme", + "admin.federation.users.title": "Utilisateurs fédérés", + "admin.federation.users.manage_panel": "Gérer les utilisateurs fédérés", + "admin.federation.users.show_local_user": "Montrer les détails de l'utilisateur local", + "admin.config.federation.signature_algorithms": "Algorithmes de signature", + "admin.config.federation.digest_algorithm": "Algorithme de hachage de signature", + "user.activitypub_feed.original_source": "Source originale", + "actions.runners.runner_setup.instruction_advanced_configurations": "Pour configurer l'exécuteur Forgejo dans des conteneurs ou pour des configurations avancées, consultez la documentation.", + "actions.workflow.rerun_impossible": "Le workflow ne peut pas être relancé.", + "actions.workflow.job_rerun_impossible": "La tâche ne peut pas être relancé.", + "members.add_member": "Ajouter un membre", + "members.user": "Utilisateur", + "members.user_already_member": "Cet utilisateur est déjà membre de l'organisation.", + "members.no_team_selected": "Les membres de l'organisation doivent appartenir à au moins une équipe." } diff --git a/options/locale_next/locale_fr_CA.json b/options/locale_next/locale_fr_CA.json new file mode 100644 index 0000000000..89b729b634 --- /dev/null +++ b/options/locale_next/locale_fr_CA.json @@ -0,0 +1,869 @@ +{ + "admin.config.db.path": "Emplacement", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Schéma", + "admin.config.db.user": "Nom d'utilisateur", + "admin.config.db.name": "Nom", + "admin.config.db.host": "Hôte", + "admin.config.db.type": "Type", + "admin.config.db.header": "Configuration de la base de données", + "admin.config.mailer.user": "Utilisateur", + "admin.config.mailer.smtp.port": "Port SMTP", + "admin.config.mailer.smtp.addr": "Adresse SMTP", + "admin.config.mailer.enable_helo": "Activer HELO", + "admin.config.mailer.protocol": "Protocole", + "admin.config.mailer.use_dummy": "Factice", + "admin.config.mailer.sendmail.timeout": "Délai d’attente de Sendmail", + "admin.config.mailer.sendmail.args": "Arguments supplémentaires pour Sendmail", + "admin.config.mailer.sendmail.path": "Chemin d’accès à Sendmail", + "admin.config.mailer.sendmail.use": "Utiliser Sendmail", + "admin.config.mailer.name": "Nom", + "admin.config.mailer.enabled": "Activé", + "admin.config.mailer.header": "Configuration du service SMTP", + "admin.config.git.gc_timeout": "Délai imparti pour l'opération \"GC\"", + "admin.config.git.pull_timeout": "Délai imparti pour l'opération \"Pull\"", + "admin.config.git.clone_timeout": "Délai imparti pour l'opération \"clone\"", + "admin.config.git.mirror_timeout": "Délai imparti pour mettre à jour le miroir", + "admin.config.git.migrate_timeout": "Délai imparti pour une migration", + "admin.config.git.gc_args": "Arguments de GC", + "admin.config.git.diff.max_files": "Nombre max de fichiers de diff (à afficher)", + "admin.config.git.diff.max_line_characters": "Nombre max de caractères de diff (pour une seule ligne)", + "admin.config.git.diff.max_lines": "Lignes de diff Max (pour un seul fichier)", + "admin.config.git.disable_diff_highlight": "Désactiver la surbrillance syntaxique de diff", + "admin.config.git.version": "Version de Git", + "admin.config.git.header": "Configuration de Git", + "admin.config.ssh.minimum_key_sizes": "Tailles de clé minimales", + "admin.config.ssh.minimum_key_size_check": "Vérification de la longueur de clé minimale", + "admin.config.ssh.keygen_path": "Chemin vers le générateur de clefs (\"ssh-keygen\")", + "admin.config.ssh.key_test_path": "Chemin de test des clés", + "admin.config.ssh.root_path": "Emplacement racine", + "admin.config.ssh.listen_port": "Port d'écoute", + "admin.config.ssh.port": "Port", + "admin.config.ssh.domain": "Domaine du serveur SSH", + "admin.config.ssh.use_builtin_server": "Utiliser le serveur incorporé", + "admin.config.ssh.enabled": "Activé", + "admin.config.ssh.header": "Configuration SSH", + "admin.users.never_login": "Jamais connecté", + "admin.users.last_login": "Dernière connexion", + "admin.users.created": "Créés", + "admin.users.repos": "Dépôts", + "admin.users.2fa": "2FA", + "admin.users.remote": "Distant", + "admin.users.bot": "Robot", + "admin.users.reserved": "Réservé", + "admin.users.restricted": "Restreint", + "admin.users.admin": "Administrateur", + "admin.users.activated": "Activé", + "admin.users.full_name": "Nom complet", + "admin.users.name": "Nom d'utilisateur", + "admin.packages.published": "Publiés", + "admin.packages.size": "Taille", + "admin.packages.repository": "Dépôt", + "admin.packages.type": "Type", + "admin.packages.version": "Version", + "admin.packages.name": "Nom", + "admin.packages.creator": "Créateur", + "admin.packages.owner": "Propriétaire", + "admin.packages.unreferenced_size": "Taille non référencée : %s", + "admin.packages.total_size": "Taille totale : %s", + "admin.repos.lfs_size": "Taille LFS", + "admin.repos.size": "Taille", + "admin.repos.issues": "Tickets", + "admin.repos.name": "Nom", + "admin.repos.owner": "Propriétaire", + "admin.orgs.new_orga": "Nouvelle organisation", + "admin.orgs.members": "Membres", + "admin.orgs.teams": "Équipes", + "admin.orgs.name": "Nom", + "admin.dashboard.rebuild_issue_indexer": "Reconstruire l’indexeur des tickets", + "admin.dashboard.start_schedule_tasks": "Démarrer les actions planifiées", + "admin.dashboard.cancel_abandoned_jobs": "Annuler les actions abandonnées", + "admin.dashboard.stop_endless_tasks": "Arrêter les actions sans fin", + "admin.dashboard.stop_zombie_tasks": "Arrêter les actions zombies", + "admin.dashboard.gc_lfs": "Épousseter les métaobjets LFS", + "admin.dashboard.delete_old_system_notices": "Supprimer toutes les anciennes observations de la base de données", + "admin.dashboard.update_checker": "Vérificateur de mise à jour", + "admin.dashboard.cleanup_actions": "Nettoyer les journaux et les artefacts des actions obsolètes", + "admin.dashboard.cleanup_packages": "Nettoyer des paquets expirés", + "admin.dashboard.cleanup_hook_task_table": "Nettoyer la table hook_task", + "admin.dashboard.sync_external_users": "Synchroniser les données de l’utilisateur externe", + "admin.dashboard.reinit_missing_repos": "Réinitialiser tous les dépôts Git manquants pour lesquels un enregistrement existe", + "admin.dashboard.resync_all_hooks": "Re-synchroniser les déclencheurs Git de tous les dépôts (pre-receive, update, post-receive, proc-receive, ...)", + "admin.dashboard.resync_all_sshprincipals": "Mettre à jour le fichier « .ssh/authorized_principals » avec les principaux de Forgejo SSH.", + "admin.dashboard.resync_all_sshkeys": "Mettre à jour le fichier « ssh/authorized_keys » avec les clés SSH Forgejo.", + "admin.dashboard.git_gc_repos": "Exécuter le ramasse-miette des dépôts", + "admin.dashboard.update_migration_poster_id": "Actualiser les ID des affiches de migration", + "admin.dashboard.deleted_branches_cleanup": "Nettoyer les branches supprimées", + "admin.dashboard.archive_cleanup": "Supprimer les archives des vieux dépôts", + "admin.dashboard.check_repo_stats": "Voir les statistiques de tous les dépôts", + "admin.dashboard.repo_health_check": "Vérifier l'état de santé de tous les dépôts", + "admin.dashboard.update_mirrors": "Actualiser les miroirs", + "admin.dashboard.sync_repo_tags": "Synchroniser les étiquettes depuis Git vers la base de donnée", + "admin.dashboard.sync_repo_branches": "Synchroniser les branches manquantes depuis Git vers la base de donnée", + "admin.dashboard.delete_generated_repository_avatars": "Supprimer les avatars de dépôt générés", + "admin.dashboard.sync_tag.started": "La synchronisation des étiquettes a commencé", + "admin.dashboard.sync_branch.started": "Début de la synchronisation des branches", + "admin.dashboard.delete_old_actions.started": "Suppression de toutes les anciennes activités de la base de données démarrée.", + "admin.dashboard.delete_missing_repos.started": "Tâche de suppression de tous les dépôts sans fichiers Git démarrée.", + "admin.dashboard.delete_repo_archives.started": "Tâche de suppression de toutes les archives de dépôts démarrée.", + "admin.dashboard.delete_inactive_accounts.started": "Tâche de suppression de tous les comptes inactifs démarrée.", + "admin.dashboard.cron.finished": "Tâche récurrente %[1]s terminée", + "admin.dashboard.cron.error": "Erreur dans la tâche récurrente %s : %[3]s", + "admin.dashboard.cron.cancelled": "Tâche récurrente %[1]s annulée : %[3]s", + "admin.dashboard.cron.process": "Tâche récurrente : %[1]s", + "admin.dashboard.cron.started": "Tâche planifiée démarrée : %[1]s", + "admin.dashboard.task.unknown": "Tâche inconnue : %[1]s", + "admin.dashboard.task.finished": "Tâche : %[1]s démarrée par %[2]s est terminée", + "admin.dashboard.task.error": "Erreur dans la tâche : %[1]s : %[3]s", + "admin.dashboard.task.cancelled": "Tâche %[1]s annulée : %[3]s", + "admin.dashboard.task.process": "Tâche : %[1]s", + "admin.dashboard.task.started": "Tâche démarrée : %[1]s", + "admin.dashboard.operation_run": "Exécuter", + "admin.dashboard.operation_switch": "Basculer", + "admin.dashboard.operation_name": "Nom de l'Opération", + "admin.dashboard.system_status": "État du système", + "admin.dashboard.operations": "Opérations de maintenance", + "admin.dashboard.statistic": "Résumé", + "admin.dashboard.new_version_hint": "Forgejo %s est maintenant disponible, vous utilisez %s. Consultez le blog pour plus de détails.", + "admin.monitor.queue.settings.remove_all_items.success": "Tous les éléments de la file d'attente ont été effacés.", + "admin.monitor.queue.settings.remove_all_items": "Tout effacer", + "admin.monitor.queue.settings.changed": "Paramètres mis à jour", + "admin.monitor.queue.settings.submit": "Appliquer les paramètres", + "admin.monitor.queue.settings.maxnumberworkers.error": "Le nombre de processus doit être un nombre", + "admin.monitor.queue.settings.maxnumberworkers.placeholder": "Actuellement %[1]d", + "admin.monitor.queue.settings.maxnumberworkers": "Nombre maximale de processus", + "admin.monitor.queue.settings.description": "Les bassins croissent proportionnellement au besoin de leurs exécuteurs.", + "admin.monitor.queue.settings.title": "Paramètres du réservoir", + "admin.monitor.queue.review_add": "Examiner / ajouter des processus", + "admin.monitor.queue.numberinqueue": "Position dans la queue", + "admin.monitor.queue.maxnumberworkers": "Nombre maximal de processus", + "admin.monitor.queue.activeworkers": "Processus actifs", + "admin.monitor.queue.numberworkers": "Nombre de processus", + "admin.monitor.queue.exemplar": "Type d'exemple", + "admin.monitor.queue.type": "Type", + "admin.monitor.queue.name": "Nom", + "admin.monitor.queue": "File d'attente : %s", + "admin.monitor.queues": "Files d'attente", + "admin.users.list_status_filter.not_2fa_enabled": "2FA désactivé", + "admin.users.list_status_filter.is_2fa_enabled": "2FA Activé", + "admin.users.list_status_filter.not_prohibit_login": "Autorisé à se connecter", + "admin.users.list_status_filter.is_prohibit_login": "Interdit de connexion", + "admin.users.list_status_filter.not_restricted": "Non restreint", + "admin.users.list_status_filter.is_restricted": "Restreint", + "admin.users.list_status_filter.not_admin": "Non administrateur", + "admin.users.list_status_filter.is_admin": "Administrateur", + "admin.users.list_status_filter.not_active": "Inactif", + "admin.users.list_status_filter.is_active": "Actif", + "admin.users.list_status_filter.reset": "Réinitialiser", + "admin.users.list_status_filter.menu_text": "Filtrer", + "admin.system_status.gc_times": "Nombres de GC", + "admin.system_status.last_gc_pause": "Dernière pause GC", + "admin.system_status.total_gc_pause": "Pause totale GC", + "admin.system_status.last_gc_time": "Temps depuis le dernier GC", + "admin.system_status.next_gc_recycle": "Prochain recyclage GC", + "admin.system_status.other_system_allocation_obtained": "Autres allocation système obtenue", + "admin.system_status.gc_metadata_obtained": "Métadonnées GC obtenues", + "admin.system_status.profiling_bucket_hash_table_obtained": "Profilage de seau de table de hashage obtenu", + "admin.system_status.mcache_structures_obtained": "Structures MCache obtenues", + "admin.system_status.mcache_structures_usage": "Utilisation des structures MCache", + "admin.system_status.mspan_structures_obtained": "Structures MSpan obtenues", + "admin.system_status.mspan_structures_usage": "Utilisation des structures MSpan", + "admin.system_status.stack_memory_obtained": "Mémoire pile obtenue", + "admin.system_status.bootstrap_stack_usage": "Utilisation pile bootstrap", + "admin.system_status.heap_objects": "Objets tas (Heap)", + "admin.system_status.heap_memory_released": "Mémoire tas (Heap) libérée", + "admin.system_status.heap_memory_in_use": "Utilisation mémoire tas (Heap)", + "admin.system_status.heap_memory_idle": "Mémoire tas (Heap) au repos", + "admin.system_status.heap_memory_obtained": "Mémoire tas (Heap) obtenue", + "admin.system_status.current_heap_usage": "Utilisation Tas (Heap)", + "admin.system_status.memory_free_times": "Nombre de libérations de mémoire", + "admin.system_status.memory_allocate_times": "Allocations de mémoire", + "admin.system_status.pointer_lookup_times": "Nombre de Consultations Pointeur", + "admin.system_status.memory_obtained": "Mémoire obtenue", + "admin.system_status.total_memory_allocated": "Mémoire totale allouée", + "admin.system_status.current_memory_usage": "Utilisation Mémoire actuelle", + "admin.system_status.current_goroutine": "Goroutines actuelles", + "admin.system_status.server_uptime": "Uptime du serveur", + "markup.filepreview.truncated": "L'aperçu a été tronqué", + "markup.filepreview.lines": "Lignes %[1]d jusqu'à %[2]d dans %[3]s", + "markup.filepreview.line": "Ligne %[1]d dans %[2]s", + "actions.variables.update.success": "La variable a bien été modifiée.", + "actions.variables.update.failed": "Impossible d’éditer la variable.", + "actions.variables.creation.success": "La variable « %s » a été ajoutée.", + "actions.variables.creation.failed": "Impossible d'ajouter la variable.", + "actions.variables.deletion.success": "La variable a bien été retirée.", + "actions.variables.deletion.failed": "Impossible de retirer la variable.", + "actions.variables.not_found": "La variable n'a pas été trouvée.", + "actions.variables.edit": "Modifier la variable", + "actions.variables.description": "Les variables sont passées aux actions et ne peuvent être lues autrement.", + "actions.variables.deletion.description": "La suppression d’une variable est permanente et ne peut être défaite. Continuer ?", + "actions.variables.deletion": "Retirer la variable", + "actions.variables.none": "Il n'y a pas encore de variables.", + "actions.variables.creation": "Ajouter une variable", + "actions.variables.management": "Gestion des variables", + "actions.variables": "Variables", + "webauthn.error.timeout": "Le délai d'attente imparti a été atteint avant que votre clé ne puisse être lue. Veuillez recharger la page pour réessayer.", + "webauthn.error.empty": "Vous devez définir un nom pour cette clé.", + "webauthn.error.duplicated": "La clé de sécurité n'est pas autorisée pour cette demande. Veuillez vous assurer que la clé n'est pas déjà enregistrée.", + "webauthn.error.unable_to_process": "Le serveur n'a pas pu traiter votre demande.", + "webauthn.error.insecure": "`WebAuthn ne prend en charge que les connexions sécurisées. Pour les tests via HTTP, vous pouvez utiliser l'origine \"localhost\" ou \"127.0.0.1\"`", + "webauthn.error.unknown": "Une erreur indéterminée s'est produite. Veuillez réessayer.", + "webauthn.unsupported_browser": "Votre navigateur ne prend actuellement pas en charge WebAuthn.", + "webauthn.error": "Impossible de lire votre clé de sécurité.", + "webauthn.use_twofa": "Utilisez l'authentification à deux facteurs avec votre téléphone", + "webauthn.press_button": "Veuillez appuyer sur le bouton de votre clé de sécurité…", + "webauthn.sign_in": "Appuyez sur le bouton de votre clé de sécurité. Si votre clé de sécurité n'a pas de bouton, réinsérez-la.", + "webauthn.insert_key": "Insérez votre clé de sécurité", + "counters.n_commits": { + "one": "%s commit", + "many": "%s commits", + "other": "" + }, + "counters.n_branches": { + "one": "%s branch", + "many": "%s branches", + "other": "" + }, + "counters.n_tags": { + "one": "%s étiquettes", + "many": "%s étiquettes", + "other": "" + }, + "counters.n_releases": { + "one": "%s publication", + "many": "%s publications", + "other": "" + }, + "gpg.default_key": "Signé avec la clé par défaut", + "gpg.error.extract_sign": "Impossible d'extraire la signature", + "gpg.error.generate_hash": "Impossible de générer la chaine de hachage de la révision", + "gpg.error.no_committer_account": "Aucun compte lié à l'adresse e-mail de l'auteur", + "gpg.error.no_gpg_keys_found": "Aucune clé n'a été trouvée pour cette signature dans la base de données", + "gpg.error.not_signed_commit": "Révision non signée", + "gpg.error.failed_retrieval_gpg_keys": "Impossible de récupérer la clé liée au compte de l'auteur", + "gpg.error.probable_bad_signature": "AVERTISSEMENT ! Bien qu'il y ait une clé avec cet ID dans la base de données, il ne vérifie pas ce commit ! Ce commit est SUSPECT.", + "gpg.error.probable_bad_default_signature": "AVERTISSEMENT ! Bien que la clé par défaut ait cet ID, elle ne vérifie pas ce commit ! Ce commit est SUSPECT.", + "notification.notifications": "Notifications", + "notification.unread": "Non lue(s)", + "notification.read": "Lue(s)", + "notification.no_unread": "Aucune notification non lue.", + "notification.no_read": "Aucune notification lue.", + "notification.pin": "Épingler la notification", + "notification.mark_as_read": "Marquer comme lu", + "notification.mark_as_unread": "Marquer comme non lue", + "notification.mark_all_as_read": "Tout marquer comme lu", + "notification.subscriptions": "Abonnements", + "notification.watching": "Suivi", + "notification.no_subscriptions": "Vous n'avez pas d'abonnements.", + "dropzone.default_message": "Déposez les fichiers ou cliquez ici pour téléverser.", + "dropzone.invalid_input_type": "Les fichiers de ce type ne peuvent pas être téléversés.", + "dropzone.file_too_big": "La taille du fichier ({{filesize}} Mo) dépasse la taille maximale ({{maxFilesize}} Mo).", + "dropzone.remove_file": "Supprimer le fichier", + "munits.data.b": "o", + "munits.data.kib": "Kio", + "munits.data.mib": "Mio", + "munits.data.gib": "Gio", + "munits.data.tib": "Tio", + "munits.data.pib": "Pio", + "munits.data.eib": "Eio", + "packages.title": "Paquets", + "packages.empty": "Il n'y a pas de paquets pour le moment.", + "packages.empty.documentation": "Pour plus d'informations sur le registre de paquets, voir la documentation.", + "packages.empty.repo": "Avez-vous téléchargé un paquet, mais il n'est pas affiché ici ? Allez dans les paramètres du paquet et liez le à ce dépôt.", + "packages.registry.documentation": "Pour plus d’informations sur le registre %s, voir la documentation.", + "packages.filter.type": "Type", + "packages.filter.type.all": "Tous", + "packages.filter.no_result": "Votre filtre n'affiche aucun résultat.", + "packages.filter.container.tagged": "Balisé", + "packages.filter.container.untagged": "Débalisé", + "packages.published_by": "%[1]s publié par %[3]s", + "packages.published_by_in": "%[1]s publié par %[3]s en %[5]s", + "packages.pub.install": "Pour installer le paquet en utilisant Dart, exécutez la commande suivante :", + "packages.installation": "Installation", + "packages.about": "À propos de ce paquet", + "packages.requirements": "Exigences", + "packages.dependencies": "Dépendances", + "packages.keywords": "Mots-clés", + "packages.details": "Détails", + "packages.details.author": "Auteur", + "packages.details.project_site": "Site du projet", + "packages.details.repository_site": "Site du dépôt", + "packages.details.documentation_site": "Site de la documentation", + "packages.details.license": "Licence", + "packages.assets": "Ressources", + "packages.versions": "Versions", + "packages.versions.view_all": "Voir tout", + "packages.dependency.id": "ID", + "packages.dependency.version": "Version", + "packages.search_in_external_registry": "Rechercher dans %s", + "packages.alpine.registry": "Configurez ce registre en ajoutant l’URL dans votre fichier /etc/apk/repositories :", + "packages.alpine.registry.key": "Téléchargez la clé RSA publique du registre dans le dossier /etc/apk/keys/ pour vérifier la signature de l'index :", + "packages.alpine.registry.info": "Choisissez $branch et $repository dans la liste ci-dessous.", + "packages.alpine.repository.branches": "Branches", + "packages.alpine.repository.repositories": "Dépôts", + "packages.alpine.repository.architectures": "Architectures", + "packages.arch.pacman.helper.gpg": "Ajouter un certificat de confiance pour pacman :", + "packages.arch.pacman.repo.multi": "%s a la même version dans différentes distributions.", + "packages.arch.pacman.repo.multi.item": "Configuration pour %s", + "packages.arch.pacman.conf": "Ajouter un serveur associées à la distribution et l'architecture dans /etc/pacman.conf :", + "packages.arch.pacman.sync": "Synchroniser le paquet avec pacman :", + "packages.arch.version.properties": "Propriétés de version", + "packages.arch.version.description": "Description", + "packages.arch.version.provides": "Fournit", + "packages.arch.version.groups": "Groupe", + "packages.arch.version.optdepends": "Dépendances optionnelles", + "packages.arch.version.makedepends": "Dépendances de compilation", + "packages.arch.version.checkdepends": "Vérifier les dépendances", + "packages.arch.version.conflicts": "Conflits", + "packages.arch.version.replaces": "Remplace", + "packages.arch.version.backup": "Sauvegarde", + "packages.cargo.registry": "Configurez ce registre dans le fichier de configuration Cargo (par exemple ~/.cargo/config.toml) :", + "packages.cargo.install": "Pour installer le paquet en utilisant Cargo, exécutez la commande suivante :", + "packages.chef.registry": "Configurer ce registre dans votre fichier ~/.chef/config.rb :", + "packages.composer.registry": "Configurez ce registre dans votre fichier ~/.composer/config.json :", + "packages.composer.install": "Pour installer le paquet en utilisant Composer, exécutez la commande suivante :", + "packages.composer.dependencies.development": "Dépendances de développement", + "packages.conan.install": "Pour installer le paquet en utilisant Conan, exécutez la commande suivante :", + "packages.conda.registry": "Configurez ce registre en tant que dépôt Conda dans le fichier .condarc :", + "packages.conda.install": "Pour installer le paquet en utilisant Conda, exécutez la commande suivante :", + "packages.container.images.title": "Images", + "packages.container.details.type": "Type d'image", + "packages.container.details.platform": "Plateforme", + "packages.container.pull": "Tirez l'image depuis un terminal :", + "packages.container.digest": "Empreinte", + "packages.container.multi_arch": "SE / Arch", + "packages.container.layers": "Calques d'image", + "packages.container.labels": "Labels", + "packages.container.labels.key": "Clé", + "packages.container.labels.value": "Valeur", + "packages.cran.registry": "Configurez ce registre dans le fichier Rprofile.site :", + "packages.debian.registry.info": "Choisissez $distribution et $component dans la liste ci-dessous.", + "packages.debian.repository.distributions": "Distributions", + "packages.debian.repository.components": "Composants", + "packages.debian.repository.architectures": "Architectures", + "packages.generic.download": "Télécharger le paquet depuis un terminal :", + "packages.go.install": "Installer le paquet à partir de la ligne de commande :", + "packages.maven.registry": "Configurez ce registre dans le fichier pom.xml de votre projet :", + "packages.maven.install": "Pour utiliser le paquet, inclure ce qui suit dans le bloc dependencies dans le fichier pom.xml :", + "packages.maven.install2": "Exécuter dans un terminal :", + "packages.maven.download": "Pour télécharger la dépendance, exécutez dans un terminal :", + "packages.nuget.install": "Pour installer le paquet en utilisant NuGet, exécutez la commande suivante :", + "packages.nuget.dependency.framework": "Cadriciel cible", + "packages.npm.registry": "Configurez ce registre dans le fichier .npmrc de votre projet :", + "packages.npm.install": "Pour installer le paquet en utilisant npm, exécutez la commande suivante :", + "packages.npm.install2": "ou ajoutez-le au fichier package.json :", + "packages.npm.dependencies.development": "Dépendances de développement", + "packages.npm.dependencies.bundle": "Bundles de dépendances", + "packages.npm.dependencies.peer": "Dépendances de pairs", + "packages.npm.dependencies.optional": "Dépendances optionnelles", + "packages.npm.details.tag": "Balise", + "packages.pypi.requires": "Nécessite Python", + "packages.pypi.install": "Pour installer le paquet en utilisant pip, exécutez la commande suivante :", + "packages.rpm.distros.redhat": "sur les distributions basées sur RedHat", + "packages.rpm.distros.suse": "sur les distributions basées sur SUSE", + "packages.rpm.repository.architectures": "Architectures", + "packages.rpm.repository.multiple_groups": "Ce paquet est disponible dans plusieurs groupes.", + "packages.alt.install": "Installer le paquet", + "packages.alt.setup": "Ajouter un dépôt à la liste des dépôts connecté (choisissez l'architecture nécessaire à la place de \"_arch\") :", + "packages.alt.repository.architectures": "Architectures", + "packages.alt.repository.multiple_groups": "Ce paquet est disponible dans plusieurs groupes.", + "packages.rubygems.install": "Pour installer le paquet en utilisant gem, exécutez la commande suivante :", + "packages.rubygems.install2": "ou ajoutez-le au Gemfile :", + "packages.rubygems.dependencies.runtime": "Dépendances d'exécution", + "packages.rubygems.dependencies.development": "Dépendances de développement", + "packages.rubygems.required.ruby": "Nécessite Ruby en version", + "packages.rubygems.required.rubygems": "Nécessite RubyGem en version", + "packages.swift.install": "Ajoutez le paquet dans votre fichier Package.swift :", + "packages.swift.install2": "et exécutez la commande suivante :", + "packages.vagrant.install": "Pour ajouter une machine Vagrant, exécutez la commande suivante :", + "packages.settings.link": "Lier ce paquet à un dépôt", + "packages.settings.link.description": "Si vous liez un paquet à dépôt, le paquet sera inclus dans sa liste des paquets.", + "packages.settings.link.select": "Sélectionner un dépôt", + "packages.settings.link.button": "Actualiser le lien du dépôt", + "packages.settings.link.success": "Le lien du dépôt a été mis à jour avec succès.", + "packages.settings.link.error": "Impossible de mettre à jour le lien du dépôt.", + "packages.settings.delete": "Supprimer le paquet", + "packages.settings.delete.description": "Supprimer un paquet est permanent et irréversible.", + "packages.settings.delete.notice": "Vous êtes sur le point de supprimer %s (%s). Cette opération est irréversible, êtes-vous sûr ?", + "packages.settings.delete.success": "Le paquet a été supprimé.", + "packages.settings.delete.error": "Impossible de supprimer le paquet.", + "packages.owner.settings.cargo.title": "Index du registre cargo", + "packages.owner.settings.cargo.initialize": "Initialiser l'index", + "packages.owner.settings.cargo.initialize.description": "Un dépôt Git d’index spécial est nécessaire pour utiliser le registre Cargo. Utiliser cette option va (re)créer le dépôt et le configurer automatiquement.", + "packages.owner.settings.cargo.initialize.error": "Impossible d'initialiser l'index de Cargo : %v", + "packages.owner.settings.cargo.initialize.success": "L'index Cargo a été créé avec succès.", + "packages.owner.settings.cargo.rebuild": "Reconstruire l'index", + "packages.owner.settings.cargo.rebuild.description": "La reconstruction peut être utile si l'index n'est pas synchronisé avec les paquets Cargo stockés.", + "packages.owner.settings.cargo.rebuild.error": "Impossible de reconstruire l'index Cargo : %v", + "packages.owner.settings.cargo.rebuild.success": "L'index Cargo a été reconstruit avec succès.", + "packages.owner.settings.cargo.rebuild.no_index": "Incapable de reconstruire, index non initialisé.", + "packages.owner.settings.cleanuprules.title": "Règles de nettoyage", + "packages.owner.settings.cleanuprules.add": "Ajouter une règle de nettoyage", + "packages.owner.settings.cleanuprules.edit": "Modifier la règle de nettoyage", + "packages.owner.settings.cleanuprules.none": "Aucune règle de nettoyage disponible. Veuillez consulter la documentation.", + "packages.owner.settings.cleanuprules.preview": "Aperçu des règles de nettoyage", + "packages.owner.settings.cleanuprules.preview.overview": "%d paquets sont programmés pour être supprimés.", + "packages.owner.settings.cleanuprules.preview.none": "La règle de nettoyage ne correspond à aucun paquet.", + "packages.owner.settings.cleanuprules.pattern_full_match": "Appliquer le motif au nom complet du paquet", + "packages.owner.settings.cleanuprules.keep.title": "Les versions qui correspondent à ces règles sont conservées, même si elles correspondent à une règle de suppression ci-dessous.", + "packages.owner.settings.cleanuprules.keep.count": "Garder le plus récent", + "packages.owner.settings.cleanuprules.keep.pattern": "Garder les versions correspondantes", + "packages.owner.settings.cleanuprules.keep.pattern.container": "La version latest est toujours conservée pour les paquets Container.", + "packages.owner.settings.cleanuprules.remove.title": "Les versions qui correspondent à ces règles sont supprimées, sauf si une règle ci-dessus dit de les garder.", + "packages.owner.settings.cleanuprules.remove.days": "Supprimer les versions antérieures à", + "packages.owner.settings.cleanuprules.remove.pattern": "Supprimer les versions correspondantes", + "packages.owner.settings.cleanuprules.success.update": "La règle de nettoyage a été mise à jour.", + "packages.owner.settings.cleanuprules.success.delete": "La règle de nettoyage a été supprimée.", + "packages.owner.settings.chef.title": "Dépôt Chef", + "packages.owner.settings.chef.keypair": "Générer une paire de clés", + "packages.owner.settings.chef.keypair.description": "Les requêtes envoyées au registre Chef doivent être signées cryptographiquement à des fin d'authentification. Lorsqu'une paire de clés est générée, seule la clé publique est conservée dans Forgejo. La clé privée est fournie afin que vous puissiez l'utiliser avec knife. La génération d'une nouvelle clé remplace la précédente.", + "fork.n_forks": { + "one": "%s bifurcation", + "many": "%s bifurcations", + "other": "" + }, + "stars.n_stars": { + "one": "%s étoiles", + "many": "%s étoiles", + "other": "%s étoiles" + }, + "release.n_downloads": { + "one": "%s téléchargement", + "many": "%s téléchargements", + "other": "" + }, + "repo.pulls.merged_title_desc": { + "one": "a fusionné %[1]d commit depuis %[2]s vers %[3]s %[4]s", + "many": "fusionné %[1]d de commits depuis %[2]s vers %[3]s %[4]s", + "other": "fusionné %[1]d commits depuis %[2]s vers %[3]s %[4]s" + }, + "repo.pulls.title_desc": { + "one": "veut fusionner %[1]d commit depuis %[2]s vers %[3]s", + "many": "veut fusionner %[1]d commits depuis %[2]s vers %[3]s", + "other": "" + }, + "search.milestone_kind": "Recherche dans les jalons…", + "discussion.locked": "Cette discussion a été bloqué. Les commentaires sont limités aux contributeurs.", + "relativetime.now": "maintenant", + "relativetime.future": "dans le futur", + "relativetime.mins": { + "one": "il y a %d minute", + "many": "il y a %d minutes", + "other": "il y a %d minutes" + }, + "relativetime.hours": { + "one": "il y a %d heure", + "many": "il y a %d heures", + "other": "il y a %d heures" + }, + "relativetime.days": { + "one": "il y a %d jour", + "many": "il y a %d jours", + "other": "il y a %d jours" + }, + "relativetime.months": { + "one": "il y a %d mois", + "many": "il y a %d mois", + "other": "il y a %d mois" + }, + "relativetime.years": { + "one": "il y a %d an", + "many": "il y a %d ans", + "other": "il y a %d ans" + }, + "relativetime.1day": "hier", + "relativetime.1week": "la semaine dernière", + "relativetime.1year": "l'année dernière", + "themes.names.forgejo-light": "Forgejo clair", + "themes.names.forgejo-dark": "Forgejo sombre", + "themes.names.forgejo-auto": "Forgejo (suivre le thème du système)", + "alert.asset_load_failed": "Échec du chargement des fichiers d'asset de {path}. Faites en sorte que les fichiers d'asset puissent être accessibles.", + "install.invalid_lfs_path": "Impossible de créer le root LFS au chemin spécifié : %[1]s", + "alert.range_error": " doit être un nombre entre %[1]s et %[2]s.", + "home.welcome.no_activity": "Aucune activité", + "home.welcome.activity_hint": "Il n'y a rien dans votre fil d'actualité. Les actions et activités sur les dépôts que vous suivez s'afficheront ici.", + "home.explore_repos": "Explorer les dépôts", + "home.explore_users": "Explorer les utilisateurs", + "home.explore_orgs": "Explorer les organisations", + "relativetime.weeks": { + "one": "il y a %d semaine", + "many": "il y a %d semaines", + "other": "il y a %d semaines" + }, + "error.not_found.title": "Page non trouvée", + "relativetime.1month": "le mois dernier", + "incorrect_root_url": "Cette instance Forgejo est configuré pour être servi sur \"%s\". Vous êtes actuellement en train de regarder Forgejo avec une URL différente, ce qui pourrait casser certaines parties de cette application. L'URL canonique est controllée par les administrateurs Forgejo grâce au paramètre ROOT_URL dans le app.ini.", + "meta.last_line": "Merci de traduire Forgejo ! Cette ligne n'est pas vue par les utilisateurs mais sert à d'autres fins dans la gestion de la traduction. Vous pouvez mettre une fun fact dans la traduction au lieu de la traduire. Miaou.", + "mail.actions.successful_run_after_failure": "Workflow %[1]s récupéré dans le dépôt %[2]s", + "mail.actions.successful_run_after_failure_subject": "Workflow %[1]s récupéré dans le dépôt %[2]s", + "mail.actions.not_successful_run_subject": "Workflow %[1]s a raté dans le dépôt %[2]s", + "mail.actions.not_successful_run": "Workflow %[1]s raté dans le dépôt %[2]s", + "mail.actions.run_info_cur_status": "Statut de cette exécution : %[1]s (vient de se mettre à jour de %[2]s)", + "mail.actions.run_info_previous_status": "Précédent statut de l'éxecution : %[1]s", + "moderation.reported_thank_you": "Merci pour votre signalement. L'administration a été mise au courant.", + "admin.config.moderation_config": "Configuration de la modération", + "moderation.report_content": "Signaler le contenu", + "moderation.report_abuse": "Signaler un abus", + "moderation.report_abuse_form.header": "Signaler un abus à l'administrateur", + "moderation.report_abuse_form.details": "Ce formulaire devrait être utilisé pour signaler des utilisateurs qui spam des comptes, des dépôts, des questions, des commentaires ou qui se comportent de façon inappropriée.", + "moderation.report_abuse_form.invalid": "Arguments invalides", + "moderation.report_abuse_form.already_reported": "Vous avez déjà signalisé ce contenu", + "moderation.abuse_category": "Catégorie", + "moderation.abuse_category.placeholder": "Sélectionnez une catégorie", + "moderation.abuse_category.spam": "Spam", + "moderation.abuse_category.malware": "logiciel malveillant", + "moderation.abuse_category.illegal_content": "Contenu illégal", + "moderation.abuse_category.other_violations": "Autres infractions des règles de la plateforme", + "moderation.report_remarks": "Remarques", + "moderation.report_remarks.placeholder": "Veuillez fournir quelques détails en rapport avec l'abus que vous signalez.", + "moderation.submit_report": "Soumettre le signalement", + "moderation.reporting_failed": "Impossible de soumettre le nouveau signalement : %v", + "followers.incoming.list.self.none": "Personne ne suit votre profil.", + "followers.incoming.list.none": "Personne ne suit cet utilisateur.", + "followers.outgoing.list.self.none": "Vous ne suivez personne.", + "followers.outgoing.list.none": "%s ne suit personne.", + "repo.issue_indexer.title": "Indexeur de problèmes", + "stars.list.none": "Personne n'a mis en favori ce dépôt.", + "watch.list.none": "Personne ne suit ce dépôt.", + "repo.form.cannot_create": "Tous les espaces où vous pouvez créer des dépôts a atteint la limite de dépôts.", + "admin.dashboard.cleanup_offline_runners": "Nettoyer les exécuteurs hors ligne", + "mail.actions.run_info_trigger": "Activé parce que : %[1]s par : %[2]s", + "settings.visibility.description": "La visibilité du profil affecte la capacité des autres à accéder à vos dépôts non-privés. Voir plus.", + "editor.textarea.shift_tab_hint": "Pas d'indentation sur cette ligne. Appuyez sur Maj + Tab une nouvelle fois ou sur Échap pour quitter l'éditeur.", + "avatar.constraints_hint": "L'avatar personnalisé ne doit pas dépasser une taille de %[1]s ou être plus grand que %[2]dx%[3]d pixels", + "editor.textarea.tab_hint": "Ligne déjà indentée. Appuyez sur Tab une nouvelle fois ou sur Échap pour quitter l'éditeur.", + "discussion.sidebar.reference": "Référence", + "repo.settings.push_mirror.branch_filter.label": "Filtre de branche (optionnel)", + "repo.diff.commit.next-short": "Suiv.", + "repo.diff.commit.previous-short": "Préc.", + "profile.actions.tooltip": "Plus d'actions", + "profile.edit.link": "Éditer le profil", + "keys.ssh.link": "Clé SSH", + "keys.gpg.link": "Clés GPG", + "compare.branches.title": "Comparer les branches", + "repo.settings.push_mirror.branch_filter.description": "Branches a répliquer. Laisser vide pour répliquer toutes les branches. Voir la documentation %[2]s pour la syntaxe. Exemples : main, release/*", + "mail.actions.run_info_sha": "Commit: %[1]s", + "admin.moderation.deleted_content_ref": "Le signalement avec le type %[1]v et l'identifiant %[2]d n'existe plus", + "error.must_enable_2fa": "Cette instance Forgejo exige que les utilisateurs activent l'authentification à deux facteurs avant qu'ils puissent accéder a leurs comptes. Activez-la sur  : %s", + "admin.config.global_2fa_requirement.admin": "Administrateurs", + "admin.config.global_2fa_requirement.all": "Tous les utilisateurs", + "admin.config.global_2fa_requirement.none": "Non", + "admin.config.global_2fa_requirement.title": "Exigence globale de l'authentification à deux facteurs", + "admin.config.security": "Configuration de sécurité", + "settings.must_enable_2fa": "Cette instance Forgejo exige que les utilisateurs activent l'authentification à deux facteurs avant qu'ils puissent accéder a leurs comptes.", + "settings.twofa_unroll_unavailable": "L'authentification à deux facteurs est nécessaire pour votre compte et ne peut pas être désactivée.", + "migrate.github.description": "Migrer les données depuis github.com ou GitHub Enterprise Server.", + "migrate.git.description": "Migrer uniquement un dépôt depuis n’importe quel service Git.", + "migrate.gitea.description": "Migrer les données depuis gitea.com ou d’autres instances de Gitea.", + "migrate.gitlab.description": "Migrer les données depuis gitlab.com ou d’autres instances de GitLab.", + "migrate.gogs.description": "Migrer les données depuis notabug.org ou d’autres instances de Gogs.", + "migrate.onedev.description": "Migrer les données depuis code.onedev.io ou d’autre instance de OneDev.", + "migrate.gitbucket.description": "Migrer les données depuis des instances GitBucket.", + "migrate.codebase.description": "Migrer les données depuis codebasehq.com.", + "migrate.forgejo.description": "Migrer les données depuis codeberg.org ou une autre instance Forgejo.", + "migrate.items.label": "Éléments à migrer", + "migrate.items.wiki": "Wiki", + "migrate.items.milestones": "Jalons", + "migrate.items.labels": "Labels", + "migrate.items.issues": "Tickets", + "migrate.items.pull_requests": "Demandes d'ajout", + "migrate.items.merge_requests": "Demandes de fusion", + "migrate.items.releases": "Publications", + "migrate.in_progress.git": "Migration des données Git", + "migrate.in_progress.topics": "Migration des sujets", + "migrate.in_progress.milestones": "Migration des jalons", + "migrate.in_progress.labels": "Migration des labels", + "migrate.in_progress.releases": "Migration des publications", + "migrate.in_progress.issues": "Migration des tickets", + "migrate.in_progress.pulls": "Migration des demandes d'ajout", + "migrate.cancel.title": "Annuler la migration", + "migrate.cancel.confirmation": "Voulez-vous abandonner cette migration ?", + "admin.dashboard.remove_resolved_reports": "Supprimer les signalements résolus", + "admin.auths.allow_username_change": "Autoriser le changement de nom d'utilisateur", + "admin.auths.allow_username_change.description": "Autoriser les utilisateurs à changer leur nom d'utilisateur dans les paramètres du profil", + "feed.atom.link": "Flux Atom", + "admin.moderation.moderation_reports": "Signalements de modération", + "admin.moderation.reports": "Signalements", + "admin.moderation.no_open_reports": "Il n'y a actuellement aucun signalement ouvert.", + "warning.repository.out_of_sync": "La représentation en base de données de ce dépôt est désynchronisée. Si cet avertissement s'affiche toujours après avoir poussé un commit sur ce dépôt, veuillez contacter l'administrateur.", + "repo.pulls.already_merged": "Fusion échouée : Cette demande d'ajout a déjà été fusionnée.", + "migrate.form.error.url_credentials": "L'URL contient des identifiants, mettez-les dans les champs utilisateur et mot de passe respectivement", + "settings.twofa_reenroll": "Réenregistrer l'authentification à deux facteurs", + "settings.twofa_reenroll.description": "Réenregistrer votre authentification à deux facteurs", + "user.ghost.tooltip": "Cet utilisateur a été supprimé, ou ne peut pas être trouvé.", + "og.repo.summary_card.alt_description": "Fiche récapitulative du dépôt %[1]s, décrit comme : %[2]s", + "repo.commit.load_tags_failed": "Impossible de charger les étiquettes à cause d'une erreur interne", + "actions.runs.view_most_recent_run": "Voir l'exécution la plus récente", + "actions.runs.viewing_out_of_date_run": "Vous consultez une exécution obsolète de cette tâche qui a été lancée le %[1]s.", + "actions.runs.run_attempt_label": "Tentative d'exécution #%[1]s (%[2]s)", + "actions.runs.all_workflows": "Tous les workflows", + "actions.runs.workflow": "Workflow", + "actions.runs.invalid_workflow_helper": "La configuration du flux de travail est invalide. Veuillez vérifier votre fichier %s", + "actions.runs.no_matching_online_runner.helper": "Aucun exécuteur en ligne correspondant au libellé %s", + "actions.runs.no_job_without_needs": "Le workflow doit contenir au moins une tâche sans dépendances.", + "actions.runs.no_job": "Le workflow doit au moins contenir une tâche", + "actions.runs.actor": "Acteur", + "actions.runs.status": "Statut", + "actions.runs.actors_no_select": "Tous les acteurs", + "actions.runs.status_no_select": "Touts les statuts", + "actions.runs.no_results": "Aucun résultat correspondant.", + "actions.runs.no_workflows": "Il n'y a pas encore de workflows.", + "actions.actions": "Actions", + "actions.runners": "Exécuteurs", + "actions.runners.runner_manage_panel": "Gestion des exécuteurs", + "actions.runners.new": "Créer un nouvel exécuteur", + "actions.runners.new_notice": "Comment démarrer un exécuteur", + "actions.runners.status": "Statut", + "actions.runners.status.unspecified": "Inconnu", + "actions.runners.status.idle": "Inactif", + "actions.runners.status.active": "Actif", + "actions.runners.status.offline": "Hors-ligne", + "actions.runners.name": "Nom", + "actions.runners.owner_type": "Type", + "actions.runners.description": "Description", + "actions.runners.labels": "Labels", + "actions.runners.last_online": "Dernière fois en ligne", + "actions.runners.runner_title": "Exécuteur %s", + "actions.runners.task_list.no_tasks": "Il n'y a pas de tâches ici.", + "actions.runners.task_list.run": "Exécuter", + "actions.runners.task_list.status": "Statut", + "actions.runners.task_list.repository": "Dépôt", + "actions.runners.task_list.commit": "Révision", + "actions.runners.task_list.done_at": "Fait à", + "actions.runners.update_runner.success": "Exécuteur édité avec succès", + "actions.runners.update_runner.failed": "Impossible d'éditer l'exécuteur", + "actions.runners.delete_runner.success": "Exécuteur supprimé avec succès", + "actions.runners.delete_runner.failed": "Impossible de supprimer l'Exécuteur", + "actions.runners.delete_runner.header": "Confirmer la suppression de cet exécuteur", + "actions.runners.delete_runner.notice": "Si une tâche est en cours sur cet exécuteur, elle sera terminée et marquée comme échouée. Cela risque d’interrompre le flux de travail.", + "actions.runners.none": "Aucun exécuteur disponible", + "actions.runners.reset_registration_token.button": "Réinitialiser le jeton d'enregistrement", + "actions.runners.reset_registration_token.success": "Le jeton d’inscription de l’exécuteur a été réinitialisé avec succès", + "migrate.pagure.description": "Migrer les données depuis pagure.io ou d'autres instances Pagure.", + "migrate.pagure.incorrect_url": "L'URL du dépôt source fournie est incorrecte", + "migrate.pagure.project_url": "URL du projet Pagure", + "migrate.pagure.project_example": "L'URL du projet Pagure, ex. https://pagure.io/pagure", + "migrate.pagure.token_label": "Jeton API Pagure", + "pulse.n_active_issues": { + "one": "%s ticket actif", + "many": "%s tickets actifs", + "other": "" + }, + "pulse.n_active_prs": { + "one": "%s demande d'ajout active", + "many": "%s demandes d'ajout actives", + "other": "" + }, + "repo.pulls.maintainers_can_edit": "Les mainteneurs peuvent modifier cette pull request.", + "repo.pulls.maintainers_cannot_edit": "Les mainteneurs ne peuvent pas éditer cette pull request.", + "mail.issue.action.close_by_commit": "%[1]s a fermé %[2]s dans le commit %[3]s.", + "migrate.pagure.private_issues.summary": "Tickets privés (Optionnel)", + "migrate.pagure.private_issues.description": "Cette fonctionnalité est conçue pour créer un deuxième dépôt contenant uniquement des tickets privés de votre projet Pagure à des fins d'archive. Premièrement, effectuer une migration normale (sans jeton) pour importer tout le contenu public. Ensuite, si vous avez des tickets privés à préserver, créez un dépôt séparé en utilisant cette option de jeton pour archiver ces tickets privés.", + "migrate.pagure.private_issues.warning": "Assurez-vous de définir la visibilité du dépôt ci-dessus à Privé si vous utilisez la clé API pour importer des tickets privés. Cela empêche d'exposer accidentellement du contenu privé dans un dépôt public.", + "migrate.pagure.token.placeholder": "Seulement pour créer des archives de tickets privés", + "actions.workflow.pre_execution_error": "Le workflow n'a pas été exécuté en raison d'une erreur qui a bloqué la tentative d'exécution.", + "watch.n_watchers": { + "one": "%s observateur", + "many": "%s observateurs", + "other": "%s observateurs" + }, + "actions.workflow.event_detection_error": "Impossible d'analyser les évènements supportés dans le workflow : %v", + "teams.add_all_repos.modal.header": "Ajouter tous les dépôts", + "teams.remove_all_repos.modal.header": "Supprimer tous dépôts", + "repo.pulls.poster_manage_approval": "Gérer les approbations", + "repo.pulls.poster_is_trusted": "L'auteur de la pull request est toujours approuvé à lancer le flux de travail.", + "repo.pulls.poster_is_trusted.tooltip": "L'auteur de la pull request est explicitement autorisé à lancer le flux de travail déclenché par les événements `pull_request`.", + "repo.pulls.poster_trust_deny": "Refuser", + "repo.pulls.poster_trust_deny.tooltip": "Les flux de travail en attente d'approbation seront annulés.", + "repo.pulls.poster_trust_once": "Approuver une fois", + "repo.pulls.poster_trust_once.tooltip": "Les flux de travail déclenchés par un événement `pull_request` s'exécuteront sur ce commit mais devront être approuvés pour tous les futurs commits poussés vers cette pull request.", + "repo.pulls.poster_trust_always": "Toujours approuver", + "repo.pulls.poster_trust_always.tooltip": "Les flux de travail déclenchés par un événement `pull_request` s'exécuteront sur ce commit et il n'y aura pas besoin d'approuver les exécutions à partir de cette pull request ou de futures pull request créées par le même utilisateur.", + "repo.pulls.poster_trust_revoke": "Révoquer", + "repo.pulls.poster_trust_revoke.tooltip": "L'auteur de cette pull request ne sera plus autorisé pour exécuter les flux de travail déclenchés par un événement `pull_request`, chaque exécution devra être approuvée manuellement.", + "actions.workflow.job_parsing_error": "Impossible d'analyser le processus dans le flux de travail : %v", + "keys.verify.token.hint": "Le jeton est uniquement valide pour 1 minute. Obtenez en un nouveau s'il a expiré.", + "repo.issues.filter_poster.hint": "Filtrer par auteur", + "repo.issues.filter_assignee.hint": "Filtrer par utilisateur assigné", + "repo.issues.filter_reviewers.hint": "Filtrer par l'utilisateur qui a examiné", + "repo.issues.filter_mention.hint": "Filtrer par utilisateur mentionné", + "repo.issues.filter_modified.hint": "Filtrer par dernière date de modification", + "search.syntax": "Syntaxe de recherche", + "admin.dashboard.transfer_lingering_logs": "Transférer les journaux des actions terminées de la base de données au stockage", + "actions.status.diagnostics.waiting": { + "one": "Attente d'un exécuteur avec l'étiquette suivante : %s", + "many": "Attente d'un exécuteur avec les étiquettes suivantes : %s", + "other": "" + }, + "actions.status.unknown": "Inconnu", + "actions.status.waiting": "En attente", + "actions.status.running": "En cours d'exécution", + "actions.status.success": "Succès", + "actions.status.failure": "Échec", + "actions.status.cancelled": "Annulé", + "actions.status.skipped": "Ignoré", + "actions.status.blocked": "Bloqué", + "moderation.report.mark_as_ignored": "Marquer comme ignoré", + "moderation.action.account.delete": "Supprimer le compte", + "moderation.action.account.suspend": "Suspendre le compte", + "moderation.action.repo.delete": "Supprimer le dépôt", + "moderation.action.issue.delete": "Supprimer le ticket", + "moderation.action.comment.delete": "Supprimer le commentaire", + "moderation.unknown_action": "Action inconnue", + "moderation.users.cannot_suspend_self": "Vous ne pouvez pas vous suspendre vous même.", + "moderation.users.cannot_suspend_admins": "Les utilisateurs avec les droits administrateur ne peuvent pas être suspendus.", + "moderation.users.cannot_suspend_org": "Les organisations ne peuvent pas être suspendues.", + "moderation.users.already_suspended": "Le compte est déjà suspendu.", + "moderation.users.suspend_success": "Le compte a été suspendu.", + "moderation.users.cannot_delete_admins": "Les utilisateurs avec les droits d'administration ne peuvent pas être supprimés.", + "moderation.issue.deletion_success": "Le ticket a été supprimé.", + "moderation.comment.deletion_success": "Le commentaire a été supprimé.", + "actions.workflow.incomplete_matrix_missing_job": "Impossible d'évaluer `strategy.matrix` de la tâche %[1]s : la tâche %[2]s n'est pas dans la liste `needs` de la tâche %[1]s (%[3]s).", + "actions.workflow.incomplete_matrix_missing_output": "Impossible d'évaluer `strategy.matrix` de la tâche %[1]s : la sortie %[3]s manque dans la tâche %[2]s.", + "actions.workflow.incomplete_matrix_unknown_cause": "Impossible d'évaluer `strategy.matrix` de la tâche %[1]s : erreur inconnue.", + "actions.workflow.incomplete_runson_missing_job": "Impossible d'évaluer les `runs-on` de la tâche %[1]s : la tâche %[2]s n'est pas dans la liste des `needs` de la tâche %[1]s (%[3]s).", + "actions.workflow.incomplete_runson_missing_output": "Impossible d'évaluer les `runs-on` de la tâche %[1]s : la sortie %[3]s manque dans la tâche %[2]s.", + "actions.workflow.incomplete_runson_missing_matrix_dimension": "Impossible d'évaluer les `runs-on` de la tâche %[1]s : la dimension matricielle %[2]s n'existe pas.", + "actions.workflow.incomplete_runson_unknown_cause": "Impossible d'évaluer `runs-on` de la tâche %[1]s : erreur inconnue.", + "admin.auths.oauth2_quota_group_map_removal": "Supprimer les utilisateurs des groupes de quotas synchronisés si l'utilisateur n'appartient pas au groupe correspondant.", + "issues.updated": "actualisé %s", + "search.fuzzy_tooltip": "Inclure les résultats avec une correspondance approximative avec le terme recherché", + "moderation.report.mark_as_handled": "Marquer comme traité", + "actions.workflow.incomplete_with_missing_job": "Impossible d'évaluer `with` avec la tâche %[1]s : la tâche %[2]s n'est pas dans la liste `needs` de la tâche %[1]s (%[3]s).", + "pulls.manual_merge.copy.button": "Copier le message de commit de fusion", + "editor.search": "Rechercher", + "editor.find_previous": "Recherche précédente", + "editor.find_next": "Recherche suivante", + "editor.replace": "Remplacer", + "editor.toggle_case": "Activer/désactiver la sensibilité à la casse", + "editor.toggle_regex": "Activer/désactiver l'utilisation d'expressions régulières", + "repo.view.gitmodules_too_large": "Le fichier .gitmodules est trop volumineux et sera ignoré (lors des appels API par exemple)", + "search.fuzzy": "Approximative", + "pulls.manual_merge.commit.title": "Titre de la fusion de commit", + "pulls.manual_merge.commit.body": "Contenue de la fusion de commit", + "install.ssh_authorized_keys_inspection_error": "Échec de l'inspection du fichier authorized_keys existant : %v", + "install.ssh_authorized_keys_unexpected_key": "L'activation de SSH pour Forgejo entre en conflit avec le fichier situé à %s qui contient des clés SSH existantes. Suggestions : utilisez un utilisateur système dédié à Forgejo, ou désactivez SSH.", + "admin.dashboard.actions_action_user": "Révoquer les Actions Forgejo autorisé pour les utilisateurs inactifs", + "actions.secrets.creation.name_description": "Le nom d'un secret ne peut contenir que des lettres, nombres, ou `_`. Il ne peut pas commencer par FORGEJO_, GITEA_, GITHUB_, ou un nombre. Forgejo le convertira automatiquement en majuscules.", + "actions.secrets.creation.value_description": "La valeur d'un secret peut être n'importe quel texte. Les caractères spéciaux sont conservés. Les CRLF (saut de ligne au format Microsoft) sont automatiquement convertis en LF. Encodez la valeur en Base64 si les sauts de ligne doivent être conservés.", + "actions.variables.mutation.name_description": "Le nom d'une variable ne peut contenir que des lettres, nombres, ou `_`. Il ne peut pas être nommé CI ou commencer par FORGEJO_, GITEA_, GITHUB_, ou un nombre. Forgejo le convertira automatiquement en majuscules.", + "actions.variables.mutation.value_description": "La valeur d'une variable peut être n'importe quel texte. Les caractères spéciaux sont conservés. Les CRLF (saut de ligne au format Microsoft) sont automatiquement convertis en LF. Encodez la valeur en Base64 si les sauts de ligne doivent être conservés.", + "repo.issues.filter_sort.hint_with_placeholder": "Trier par : %s", + "packages.common.install": "Pour installer le paquet, exécutez la commande suivante :", + "packages.common.registry": "Configurez ce registre à partir de la ligne de commande suivante :", + "packages.common.repository": "Informations sur le dépôt", + "repo.pulls.poster_requires_approval": "Certains workflows sont en attente de révision.", + "editor.replace_all": "Tout remplacer", + "access_token.error.specified_repos_none": "Les jetons d'accès avec des dépôts spécifiés doivent avoir au moins un dépôt.", + "editor.toggle_whole_word": "Activer/désactiver la correspondance des mots entiers", + "issues.filters.labels.exclude": "Exclure l'étiquette", + "issues.filters.labels.unexclude": "Enlever les exclusions", + "repo.pulls.auto_merge.no_permission": "Vous n'avez pas la permission d'annuler la fusion automatique de cette pull request.", + "settings.specific_repo_access": "Accès au dépôt", + "actions.runners.list_runners.edit_column": "Modifier", + "actions.runners.list_runners.delete_column": "Supprimer", + "actions.runners.create_runner.properties_fieldset": "Propriétés", + "actions.runners.create_runner.create_button": "Créer", + "actions.runners.edit_runner.properties_fieldset": "Propriétés", + "actions.runners.edit_runner.properties_options": "Options", + "actions.runners.edit_runner.description_label": "Description", + "actions.runners.edit_runner.regenerate_token_label": "Regénérer le jeton", + "actions.runners.show_registration_token": "Afficher le jeton d'enregistrement", + "settings.new_access_token": "Nouveau jeton d'accès", + "actions.runners.uuid": "UUID", + "actions.runners.ephemeral": "Éphémère", + "actions.runners.list_runners.delete_button": "Supprimer", + "actions.runners.list_runners.delete_button_aria": "Supprimer %s", + "actions.runners.list_runners.edit_button": "Modifier", + "actions.runners.list_runners.edit_button_aria": "Modifier %s", + "actions.runners.ephemeral.yes": "oui", + "repo.pulls.poster_requires_approval.tooltip": "L'auteur de cette pull request n'est pas autorisé à exécuter des workflows déclenchés par une pull request créée depuis un dépôt forké ou avec AGit. Les workflows déclenchés par un événement `pull_request` ne s'exécuteront pas tant qu'ils n'auront pas été approuvés.", + "actions.runners.task_list_repo": "Tâches récentes de ce dépôt sur cet exécuteur", + "actions.runners.task_list_org": "Tâches récentes de cet exécuteur dans cette organisation", + "actions.runners.task_list_admin": "Tâches récentes de cet exécuteur", + "actions.runners.task_list_user": "Tâches récentes de cet utilisateur sur cet exécuteur", + "actions.runners.edit_runner_button": "Éditer l'exécuteur", + "actions.runners.create_runner.page_title": "Créer un nouvel exécuteur", + "actions.runners.create_runner.title": "Créer un nouvel exécuteur", + "actions.runners.create_runner.name_label": "Nom", + "actions.runners.create_runner.description_label": "Description", + "actions.runners.create_runner.cancel_button": "Annuler", + "actions.runners.edit_runner.page_title": "Éditer l'exécuteur %s", + "actions.runners.edit_runner.title": "Éditer l'exécuteur %s", + "actions.runners.edit_runner.name_label": "Nom", + "actions.runners.edit_runner.regenerate_token_help": "Le jeton existant sera immédiatement invalidé. Vous recevrez un nouveau jeton sur la page suivante.", + "actions.runners.edit_runner.save_button": "Enregistrer", + "actions.runners.edit_runner.cancel_button": "Annuler", + "actions.runners.runner_setup.title": "Configuration de l'exécuteur %s", + "actions.runners.runner_details.page_title": "Exécuteur %s", + "actions.runners.runner_setup.page_title": "Configuration de l'exécuteur %s", + "actions.runners.runner_setup.list_of_runners_link": "Liste des exécuteurs", + "actions.runners.runner_setup.last_chance_copying_token": "Copiez le jeton maintenant, vous ne pourrez pas le revoir !", + "actions.runners.runner_setup.button_copy_uuid_aria": "Copier l'UUID de l'exécuteur", + "actions.runners.runner_setup.button_copy_token_aria": "Copier le jeton de l'exécuteur", + "actions.runners.runner_setup.program_options_snippet_aria": "Comment invoquer forgejo-runner", + "actions.runners.runner_setup.instruction_replace_connection_name": "Remplacer le nom de connexion (forgejo dans l'exemple) par une valeur de votre choix.", + "actions.runners.reset_registration_token.token": "Jeton d'enregistrement (Déprécié)", + "actions.runs.all_runs_link": "toutes les exécutions", + "actions.secrets.edit_button": "Éditer le secret \"%s\"", + "actions.secrets.mutation.header": "Éditer le secret \"%s\"", + "actions.secrets.mutation.success_message": "Le secret \"%s\" a été mis à jour.", + "actions.secrets.mutation.failure_message": "Le secret \"%s\" n'a pas pu être mis à jour.", + "actions.secrets.mutation.name_description": "Le nom d'un secret ne peut contenir que des lettres, des chiffres et des `_`. Il ne peut pas démarrer avec FORGEJO_ , GITEA_ , GITHUB_ , ou un nombre. Forgejo le convertira automatiquement en majuscules.", + "form.RunnerName": "Nom", + "graphs.recent_commits.title": "Nombre de commits au cours de l'année écoulée", + "graphs.code_frequency.title": "Fréquence de code sur l'historique de {0}", + "settings.permissions_access_specific_repositories": "Dépôts spécifiques", + "settings.access_token.selected_repositories": { + "one": "Dépôt sélectionné (%d)", + "many": "Dépôts sélectionnés (%d)", + "other": "Dépôts sélectionnés (%d)" + }, + "settings.access_token.available_repositories": "Dépôts disponibles", + "settings.access_token.no_repositories_selected": "Aucun dépôt sélectionné.", + "settings.access_token.no_repositories_found": "Aucun dépôt trouvé.", + "settings.access_token.remove": "Supprimer %s", + "settings.access_token.resource_public_only_help": "Limiter l'accès aux dépôts et aux organisations publiques.", + "settings.access_token.resource_specific_repo_help": "Limiter l'accès à une liste spécifique de dépôts. L'accès en lecture seule est autorisé sur tous les dépôts publiques. Seules les permissions permettant l'accès aux dépôts et aux tickets peuvent être activées.", + "settings.access_token.admin_disabled": "Les autorisations administratives sont désactivées.", + "actions.runners.token": "Jeton", + "actions.runners.ephemeral.no": "non", + "actions.runs.scheduled_description": "Exécution planifiée du commit %[2]s", + "actions.runs.workflow_dispatch_description": "Exécution du commit %[2]s déclenché par %[4]s", + "actions.runs.on_push_description": "Commit %[2]s poussé par %[4]s", + "migrate.select.title": "Migrer le dépôt", + "admin.federation.federation": "Fédération", + "admin.federation.hosts": "Hôtes", + "admin.federation.hosts.show_details": "Afficher les détails de l'hôte", + "admin.federation.host.id": "ID", + "admin.federation.host.schema": "Schéma", + "admin.federation.host.port": "Port", + "admin.federation.host.latest_activity": "Dernières activités", + "admin.federation.users": "Utilisateurs", + "admin.federation.user.id": "ID", + "admin.federation.user.user_id": "ID utilisateur local", + "admin.federation.user.external_id": "ID utilisateur externe", + "admin.config.federation": "Configuration de la fédération", + "admin.config.federation.enabled": "Activé", + "settings.access_token.resource_all_help": "Autoriser l'accès à toutes les ressources.", + "user.activitypub_feed.posted_on": "Posté sur %[1]s", + "actions.runners.version": "Version", + "repo.files.filename": "Fichier", + "repo.files.last_commit_message": "Dernier message de commit", + "repo.files.last_commit_date": "Date du dernier commit", + "admin.federation.host.created": "Créé", + "admin.federation.host.software_name": "Programme", + "admin.federation.users.title": "Utilisateurs fédérés", + "admin.federation.users.manage_panel": "Gérer les utilisateurs fédérés", + "admin.federation.users.show_local_user": "Montrer les détails de l'utilisateur local", + "admin.config.federation.signature_algorithms": "Algorithmes de signature", + "admin.config.federation.digest_algorithm": "Algorithme de hachage de signature", + "user.activitypub_feed.original_source": "Source originale", + "actions.runners.runner_setup.instruction_advanced_configurations": "Pour configurer l'exécuteur Forgejo dans des conteneurs ou pour des configurations avancées, consultez la documentation.", + "actions.workflow.rerun_impossible": "Le workflow ne peut pas être relancé.", + "actions.workflow.job_rerun_impossible": "La tâche ne peut pas être relancé.", + "members.add_member": "Ajouter un membre", + "members.user": "Utilisateur", + "members.user_already_member": "Cet utilisateur est déjà membre de l'organisation.", + "members.no_team_selected": "Les membres de l'organisation doivent appartenir à au moins une équipe." +} diff --git a/options/locale_next/locale_ga.json b/options/locale_next/locale_ga.json index 0ef3186852..333c4b281b 100644 --- a/options/locale_next/locale_ga.json +++ b/options/locale_next/locale_ga.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Cosán", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Scéim", + "admin.config.db.user": "Ainm úsáideora", + "admin.config.db.name": "Ainm", + "admin.config.db.host": "Óstach", + "admin.config.db.type": "Cineál", + "admin.config.db.header": "Cumraíocht Bunachar Sonraí", + "admin.config.mailer.user": "Úsáideoir", + "admin.config.mailer.smtp.port": "Calafort SMTP", + "admin.config.mailer.smtp.addr": "Óstach SMTP", + "admin.config.mailer.enable_helo": "Cumasaigh HELO", + "admin.config.mailer.protocol": "Prótacal", + "admin.config.mailer.use_dummy": "Caochadán", + "admin.config.mailer.sendmail.timeout": "Teorainn Ama Sendmail", + "admin.config.mailer.sendmail.args": "Argóintí Breise chuig Sendmail", + "admin.config.mailer.sendmail.path": "Cosán Sendmail", + "admin.config.mailer.sendmail.use": "Úsáid Sendmail", + "admin.config.mailer.name": "Ainm", + "admin.config.mailer.enabled": "Cumasaithe", + "admin.config.mailer.header": "Cumraíocht Seoltóra", + "admin.config.git.gc_timeout": "Teorainn Ama Oibriúcháin GC", + "admin.config.git.pull_timeout": "Tarraing Am Oibríochta", + "admin.config.git.clone_timeout": "Teorainn Ama Oibríochta Clón", + "admin.config.git.mirror_timeout": "Teorainn Ama Nuashonraithe Scátháin", + "admin.config.git.migrate_timeout": "Teorainn Ama Imirce", + "admin.config.git.gc_args": "Argóintí GC", + "admin.config.git.diff.max_files": "Uasmhéid comhaid difríochta a thaispeántar", + "admin.config.git.diff.max_line_characters": "Uasmhéid carachtair dhifriúla in aghaidh an líne", + "admin.config.git.diff.max_lines": "Uasmhéid línte difríochta in aghaidh an chomhaid", + "admin.config.git.disable_diff_highlight": "Díchumasaigh aibhsiú comhréir difríochta", + "admin.config.git.version": "Leagan Git", + "admin.config.git.header": "Cumraíocht Git", + "admin.config.ssh.minimum_key_sizes": "Méideanna Íosta Eochrach", + "admin.config.ssh.minimum_key_size_check": "Seiceáil Íosta Méid Eochair", + "admin.config.ssh.keygen_path": "Cosán Keygen (\"ssh-keygen\")", + "admin.config.ssh.key_test_path": "Cosán Tástáil Eochair", + "admin.config.ssh.root_path": "Cosán Fréimhe", + "admin.config.ssh.listen_port": "Éist Calafort", + "admin.config.ssh.port": "Calafort", + "admin.config.ssh.domain": "Fearainn Freastalaí SSH", + "admin.config.ssh.use_builtin_server": "Úsáid Freastalaí Ionsuite", + "admin.config.ssh.enabled": "Cumasaithe", + "admin.config.ssh.header": "Cumraíocht SSH", + "admin.users.never_login": "Níor shínigh tú isteach riamh", + "admin.users.last_login": "Sínigh Isteach Deiridh", + "admin.users.created": "Cruthaithe", + "admin.users.repos": "Stórais", + "admin.users.2fa": "2FA", + "admin.users.remote": "Iargúlta", + "admin.users.bot": "Bota", + "admin.users.reserved": "In áirithe", + "admin.users.restricted": "Srianta", + "admin.users.admin": "Riarachán", + "admin.users.activated": "Gníomhachtaithe", + "admin.users.full_name": "Ainm Iomlán", + "admin.users.name": "Ainm úsáideora", + "admin.packages.published": "Foilsithe", + "admin.packages.size": "Méid", + "admin.packages.repository": "Stóráil", + "admin.packages.type": "Cineál", + "admin.packages.version": "Leagan", + "admin.packages.name": "Ainm", + "admin.packages.creator": "Cruthaitheoir", + "admin.packages.owner": "Úinéir", + "admin.packages.unreferenced_size": "Méid gan tagairt: %s", + "admin.packages.total_size": "Méid Iomlán: %s", + "admin.repos.lfs_size": "Méid LFS", + "admin.repos.size": "Méid", + "admin.repos.issues": "Saincheisteanna", + "admin.repos.name": "Ainm", + "admin.repos.owner": "Úinéir", + "admin.orgs.new_orga": "Eagraíocht Nua", + "admin.orgs.members": "Comhaltaí", + "admin.orgs.teams": "Foirne", + "admin.orgs.name": "Ainm", + "admin.dashboard.rebuild_issue_indexer": "Atógáil innéacsóir eisiúna", + "admin.dashboard.start_schedule_tasks": "Tosaigh tascanna gníomhartha sceidealaithe", + "admin.dashboard.cancel_abandoned_jobs": "Cealaigh poist gníomhartha tréigthe", + "admin.dashboard.stop_endless_tasks": "Stop tascanna gníomhartha gan teorainn", + "admin.dashboard.stop_zombie_tasks": "Stop tascanna gníomhartha zombie", + "admin.dashboard.gc_lfs": "Bailigh truflais meta rudaí LFS", + "admin.dashboard.delete_old_system_notices": "Scrios gach seanfhógra córais ón mbunachar sonraí", + "admin.dashboard.update_checker": "Seiceoir nuashonraithe", + "admin.dashboard.cleanup_actions": "Glan suas logaí agus déantáin atá imithe in éag ó ghníomhartha", + "admin.dashboard.cleanup_packages": "Glan suas pacáistí atá imithe in éag", + "admin.dashboard.cleanup_hook_task_table": "Glan suas an tábla hook_task", + "admin.dashboard.sync_external_users": "Sioncrónaigh sonraí úsáideoirí seachtracha", + "admin.dashboard.reinit_missing_repos": "Aththosaigh gach stórais Git atá in easnamh a bhfuil taifid ann dóibh", + "admin.dashboard.resync_all_hooks": "Athshioncrónaigh crúcaí Git na stórtha uile (réamhghlacadh, nuashonrú, iarghlacadh, próiseasghlacadh, ...)", + "admin.dashboard.resync_all_sshprincipals": "Nuashonraigh an comhad \".ssh/authorized_principals\" le príomhoidí SSH Forgejo.", + "admin.dashboard.resync_all_sshkeys": "Nuashonraigh an comhad \".ssh/authorized_keys\" le heochracha SSH Forgejo.", + "admin.dashboard.git_gc_repos": "Bailíonn truflais gach stórais", + "admin.dashboard.update_migration_poster_id": "Nuashonraigh ID póstaer imir", + "admin.dashboard.deleted_branches_cleanup": "Brainsí scriosta a ghlanadh", + "admin.dashboard.archive_cleanup": "Scrios sean-chartlanna stórais", + "admin.dashboard.check_repo_stats": "Seiceáil gach staitisticí stórais", + "admin.dashboard.repo_health_check": "Seiceáil sláinte gach stóras", + "admin.dashboard.update_mirrors": "Scátháin a nuashonrú", + "admin.dashboard.sync_repo_tags": "Clibeanna sioncraigh ó shonraí git go bunachar sonraí", + "admin.dashboard.sync_repo_branches": "Sioncrónaigh brainsí caillte ó shonraí Git go bunachar sonraí", + "admin.dashboard.delete_generated_repository_avatars": "Scrios abhatáranna stórtha ginte", + "admin.dashboard.sync_tag.started": "Tosaíodh sioncrónú clibeanna", + "admin.dashboard.sync_branch.started": "Tosaíodh sioncrónú brainse", + "admin.dashboard.delete_old_actions.started": "Scrios na sean-ghníomhaíocht go léir ón mbunachar sonraí tosaithe.", + "admin.dashboard.delete_missing_repos.started": "Scrios gach stóras atá in easnamh ar a dtasc comhaid Git a thosaigh.", + "admin.dashboard.delete_repo_archives.started": "Scrios gach tasc cartlann stórais a thosaigh.", + "admin.dashboard.delete_inactive_accounts.started": "Tasc scriostha gach cuntas neamhghníomhachtaithe tosaithe.", + "admin.dashboard.cron.finished": "Cron: %[1]s críochnaithe", + "admin.dashboard.cron.error": "Earráid i gCron: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s cealaithe: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Cron tosaithe: %[1]s", + "admin.dashboard.task.unknown": "Tasc anaithnid: %[1]s", + "admin.dashboard.task.finished": "Tasc: Tá %[1]s tosaithe ag %[2]s críochnaithe", + "admin.dashboard.task.error": "Earráid sa Tasc: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Tasc: %[1]s cealaithe: %[3]s", + "admin.dashboard.task.process": "Tasc: %[1]s", + "admin.dashboard.task.started": "Tasc Tosaigh: %[1]s", + "admin.dashboard.operation_run": "Rith", + "admin.dashboard.operation_switch": "Athraigh", + "admin.dashboard.operation_name": "Ainm Oibríochta", + "admin.dashboard.system_status": "Stádas an Chórais", + "admin.dashboard.operations": "Oibríochtaí cothabhála", + "admin.dashboard.statistic": "Achoimre", + "admin.dashboard.new_version_hint": "Tá Forgejo %s ar fáil anois, tá %s á rith agat. Seiceáil an blag le haghaidh tuilleadh sonraí.", "admin.monitor.queue.settings.remove_all_items.success": "Baineadh na míreanna go léir sa scuaine.", "admin.monitor.queue.settings.remove_all_items": "Bain gach", "admin.monitor.queue.settings.changed": "Socruithe Nuashonraithe", @@ -787,7 +913,7 @@ "actions.runners.runner_setup.program_options_snippet_aria": "Conas forgejo-runner a ghairm", "actions.runners.runner_setup.instruction_replace_connection_name": "Cuir luach de do thaitin leat in ionad ainm an naisc (forgejo sa sampla).", "actions.runners.runner_setup.heading_using_options": "Ag baint úsáide as roghanna cláir", - "actions.runners.runner_setup.instruction_advanced_configurations": "Chun Forgejo Runner a chumrú agus é ag rith i gcoimeádáin nó i gcumraíochtaí ardleibhéil, féach ar an doiciméadú.", + "actions.runners.runner_setup.instruction_advanced_configurations": "Chun Forgejo Runner a chumrú ag rith i gcoimeádáin nó i gcumraíochtaí ardleibhéil, féach ar an dhoiciméadú.", "actions.runners.reset_registration_token.token": "Comhartha Clárúcháin (Imithe as Feidhm)", "actions.runs.scheduled_description": "Rith sceidealaithe de thiomnú %[2]s", "actions.runs.workflow_dispatch_description": "Rith an tiomnúcháin %[2]s spreagtha ag %[4]s", @@ -807,5 +933,9 @@ "members.no_team_selected": "Ní mór do bhaill na heagraíochta a bheith ina mbaill de fhoireann amháin ar a laghad.", "form.RunnerName": "Ainm", "graphs.recent_commits.title": "Líon na ngealltanas le bliain anuas", - "graphs.code_frequency.title": "Minicíocht chód thar stair {0}" + "graphs.code_frequency.title": "Minicíocht chód thar stair {0}", + "repo.files.caption": "Comhaid stórais (an tiomnú is déanaí ar dtús)", + "repo.files.filename": "Ainm comhaid", + "repo.files.last_commit_message": "Teachtaireacht tiomantais is déanaí", + "repo.files.last_commit_date": "Dáta tiomantais is déanaí" } diff --git a/options/locale_next/locale_gl.json b/options/locale_next/locale_gl.json index 7878b0a7f1..9b25668932 100644 --- a/options/locale_next/locale_gl.json +++ b/options/locale_next/locale_gl.json @@ -44,5 +44,32 @@ "one": "hai %d ano", "other": "hai %d anos" }, - "meta.last_line": " " + "meta.last_line": " ", + "home.welcome.no_activity": "Sen actividade", + "home.welcome.activity_hint": "Aínda non hai nada no teu feed. Tanto as túas accións como a actividade dos repositorios seguidos aparecerán aqui.", + "home.explore_repos": "Explorar repositorios", + "home.explore_users": "Explorar usuarios", + "home.explore_orgs": "Explorar organizacións", + "fork.n_forks": { + "one": "%s fork", + "other": "%s forks" + }, + "stars.list.none": "Ninguén lle dou unha estrela a este repo.", + "stars.n_stars": { + "one": "%s estrela", + "other": "%s estrelas" + }, + "watch.list.none": "Ninguén está seguindo este repo.", + "watch.n_watchers": { + "one": "%s seguidor", + "other": "%s seguidores" + }, + "followers.incoming.list.self.none": "Ninguén está seguindo o teu perfil.", + "followers.incoming.list.none": "Ninguén está seguindo este usuario.", + "repo.files.caption": "Arquivos do repositorio (os últimos commits primeiro)", + "repo.files.filename": "Nome do arquivo", + "repo.files.last_commit_message": "Mensaxe do último commit", + "repo.files.last_commit_date": "Data do último commit", + "repo.issues.filter_poster.hint": "Filtrar por autor", + "repo.issues.filter_assignee.hint": "Filtrar por usuario asignado" } diff --git a/options/locale_next/locale_hi.json b/options/locale_next/locale_hi.json index 86919e5eb4..ca12326529 100644 --- a/options/locale_next/locale_hi.json +++ b/options/locale_next/locale_hi.json @@ -93,5 +93,85 @@ "moderation.report_remarks.placeholder": "कुछ डिटेल्स बताओ जिस बारे में रिपोर्ट कर रहे हो", "moderation.submit_report": "रिपोर्ट सबमिट करो", "moderation.reporting_failed": "नयी रिपोर्ट सबमिट नहीं हो सकती", - "moderation.reported_thank_you": "रिपोर्ट के लिए शुक्रिया। एडमिन को बताया गया है" + "moderation.reported_thank_you": "रिपोर्ट के लिए शुक्रिया। एडमिन को बताया गया है", + "watch.n_watchers": { + "one": "%s निगरानीकर्ता", + "other": "%s निगरानीकर्ता" + }, + "repo.issues.filter_assignee.hint": "सौंपे गए उपयोगकर्ता द्वारा फ़िल्टर करें", + "repo.issues.filter_poster.hint": "लेखक के अनुसार फ़िल्टर करें", + "repo.files.last_commit_date": "नवीनतम कमिट की तारीख", + "repo.files.last_commit_message": "नवीनतम कमिट संदेश", + "repo.files.filename": "फ़ाइलनाम", + "repo.files.caption": "रिपॉजिटरी फ़ाइलें (नवीनतम कमिट पहले)", + "relativetime.hours": { + "one": "%d घंटा पहले", + "other": "%d घंटे पहले" + }, + "repo.pulls.merged_title_desc": { + "one": "%[2]s से %[3]s में %[1]d कमिट मर्ज किया %[4]s", + "other": "%[2]s से %[3]s में %[1]d कमिट मर्ज किए %[4]s" + }, + "repo.pulls.title_desc": { + "one": "%[2]s से %[3]s में %[1]d कमिट मर्ज करना चाहता है", + "other": "%[2]s से %[3]s में %[1]d कमिट मर्ज करना चाहते हैं" + }, + "mail.actions.successful_run_after_failure_subject": "रिपॉज़िटरी %[2]s में वर्कफ़्लो %[1]s पुनर्प्राप्त किया गया", + "mail.actions.not_successful_run_subject": "रिपॉज़िटरी %[2]s में वर्कफ़्लो %[1]s विफल हो गया", + "mail.actions.successful_run_after_failure": "रिपॉज़िटरी %[2]s में वर्कफ़्लो %[1]s पुनर्प्राप्त हो गया", + "mail.actions.not_successful_run": "रिपॉज़िटरी %[2]s में वर्कफ़्लो %[1]s विफल हो गया", + "mail.actions.run_info_cur_status": "इस रन की स्थिति: %[1]s (अभी-अभी %[2]s से अपडेट की गई)", + "mail.actions.run_info_previous_status": "पिछले रन की स्थिति: %[1]s", + "mail.actions.run_info_trigger": "ट्रिगर होने का कारण: %[1]s द्वारा: %[2]s", + "discussion.locked": "यह चर्चा लॉक कर दी गई है। टिप्पणी करना केवल योगदानकर्ताओं तक सीमित है।", + "editor.textarea.tab_hint": "पंक्ति पहले से ही इंडेंट की गई है। संपादक से बाहर निकलने के लिए फिर से Tab दबाएँ या Escape दबाएँ।", + "editor.textarea.shift_tab_hint": "इस पंक्ति पर कोई इंडेंटेशन नहीं है। संपादक से बाहर निकलने के लिए फिर से Shift + Tab दबाएँ या Escape दबाएँ।", + "admin.dashboard.cleanup_offline_runners": "ऑफ़लाइन रनर्स की सफाई करें", + "settings.visibility.description": "प्रोफ़ाइल दृश्यता दूसरों की आपके गैर-निजी रिपॉज़िटरी तक पहुँचने की क्षमता को प्रभावित करती है और जानें", + "repo.diff.commit.next-short": "अगला", + "repo.diff.commit.previous-short": "पिछला", + "og.repo.summary_card.alt_description": "रिपॉज़िटरी %[1]s का सारांश कार्ड, जिसका विवरण है: %[2]s", + "mail.actions.run_info_sha": "कमिट: %[1]s", + "discussion.sidebar.reference": "संदर्भ", + "admin.moderation.moderation_reports": "मॉडरेशन रिपोर्ट्स", + "admin.moderation.reports": "रिपोर्ट्स", + "admin.moderation.no_open_reports": "वर्तमान में कोई खुली रिपोर्ट नहीं है।", + "admin.moderation.deleted_content_ref": "प्रकार %[1]v और आईडी %[2]d वाली रिपोर्ट की गई सामग्री अब मौजूद नहीं है", + "admin.dashboard.remove_resolved_reports": "सुलझाई गई रिपोर्ट्स हटाएँ", + "compare.branches.title": "ब्रांचों की तुलना करें", + "repo.commit.load_tags_failed": "आंतरिक त्रुटि के कारण टैग लोड नहीं किए जा सके", + "admin.auths.allow_username_change": "उपयोगकर्ता नाम बदलने की अनुमति दें", + "admin.auths.allow_username_change.description": "उपयोगकर्ताओं को प्रोफ़ाइल सेटिंग्स में अपना उपयोगकर्ता नाम बदलने की अनुमति दें", + "warning.repository.out_of_sync": "इस रिपॉज़िटरी का डेटाबेस प्रतिनिधित्व सिंक्रोनाइज़ेशन से बाहर है। यदि इस रिपॉज़िटरी में कमिट पुश करने के बाद भी यह चेतावनी दिखाई देती है, तो व्यवस्थापक से संपर्क करें।", + "repo.pulls.already_merged": "मर्ज विफल हुआ: यह पुल अनुरोध पहले ही मर्ज किया जा चुका है।", + "migrate.pagure.description": "pagure.io या अन्य Pagure इंस्टेंस से डेटा माइग्रेट करें।", + "migrate.pagure.incorrect_url": "गलत स्रोत रिपॉज़िटरी URL प्रदान किया गया है", + "repo.issues.filter_modified.hint": "अंतिम संशोधन तिथि के अनुसार फ़िल्टर करें", + "repo.issues.filter_sort.hint_with_placeholder": "इसके अनुसार क्रमबद्ध करें: %s", + "issues.updated": "%s अपडेट किया गया", + "issues.filters.labels.exclude": "लेबल को बाहर रखें", + "issues.filters.labels.unexclude": "बहिष्करण साफ़ करें", + "repo.pulls.auto_merge.no_permission": "आपके पास इस पुल अनुरोध के ऑटो मर्ज को रद्द करने की अनुमति नहीं है।", + "repo.pulls.poster_manage_approval": "अनुमोदन प्रबंधित करें", + "repo.pulls.poster_requires_approval": "कुछ वर्कफ़्लो समीक्षा की प्रतीक्षा कर रहे हैं।", + "repo.pulls.poster_requires_approval.tooltip": "इस पुल अनुरोध के लेखक पर फोर्क की गई रिपॉज़िटरी या AGit से बनाए गए पुल अनुरोध द्वारा ट्रिगर किए गए वर्कफ़्लो चलाने के लिए भरोसा नहीं किया जाता है। `pull_request` इवेंट द्वारा ट्रिगर किए गए वर्कफ़्लो अनुमोदित होने तक नहीं चलेंगे।", + "repo.pulls.poster_is_trusted": "इस पुल अनुरोध के लेखक को वर्कफ़्लो चलाने के लिए हमेशा विश्वसनीय माना जाता है।", + "repo.pulls.poster_is_trusted.tooltip": "इस पुल अनुरोध के लेखक को `pull_request` इवेंट द्वारा ट्रिगर किए गए वर्कफ़्लो चलाने के लिए स्पष्ट रूप से विश्वसनीय माना जाता है।", + "repo.pulls.poster_trust_deny": "अस्वीकार करें", + "repo.pulls.maintainers_can_edit": "मेंटेनर इस पुल अनुरोध को संपादित कर सकते हैं।", + "repo.issues.filter_mention.hint": "उल्लेखित उपयोगकर्ता के अनुसार फ़िल्टर करें", + "repo.issues.filter_reviewers.hint": "समीक्षा करने वाले उपयोगकर्ता के अनुसार फ़िल्टर करें", + "repo.pulls.poster_trust_always": "हमेशा अनुमोदित करें", + "repo.pulls.poster_trust_always.tooltip": "`pull_request` इवेंट द्वारा ट्रिगर किए गए वर्कफ़्लो इस कमिट पर चलेंगे और इस पुल अनुरोध या इसी उपयोगकर्ता द्वारा बनाए गए भविष्य के पुल अनुरोधों से आने वाले रन को अनुमोदित करने की आवश्यकता नहीं होगी।", + "repo.pulls.maintainers_cannot_edit": "मेंटेनर इस पुल अनुरोध को संपादित नहीं कर सकते।", + "repo.pulls.poster_trust_deny.tooltip": "अनुमोदन की प्रतीक्षा कर रहे वर्कफ़्लो रद्द कर दिए जाएंगे।", + "repo.pulls.poster_trust_once.tooltip": "`pull_request` इवेंट द्वारा ट्रिगर किए गए वर्कफ़्लो इस कमिट पर चलेंगे, लेकिन इस पुल अनुरोध में भविष्य में पुश किए गए सभी कमिट्स के लिए उन्हें अनुमोदित करना आवश्यक होगा।", + "repo.pulls.poster_trust_revoke.tooltip": "इस पुल अनुरोध के लेखक को अब `pull_request` इवेंट द्वारा ट्रिगर किए गए वर्कफ़्लो चलाने के लिए विश्वसनीय नहीं माना जाएगा, प्रत्येक रन को मैन्युअल रूप से अनुमोदित करना होगा।", + "repo.view.gitmodules_too_large": "`.gitmodules` फ़ाइल बहुत बड़ी है और इसे अनदेखा किया जाएगा (उदाहरण के लिए API कॉल्स में)", + "repo.pulls.poster_trust_once": "एक बार अनुमोदित करें", + "repo.pulls.poster_trust_revoke": "निरस्त करें", + "search.fuzzy_tooltip": "उन परिणामों को शामिल करें जो खोज शब्द से लगभग मेल खाते हैं", + "settings.access_token.admin_disabled": "प्रशासनिक अनुमतियाँ अक्षम हैं।", + "settings.must_enable_2fa": "यह Forgejo इंस्टेंस उपयोगकर्ताओं से अपेक्षा करता है कि वे अपने खातों तक पहुँचने से पहले दो-कारक प्रमाणीकरण सक्षम करें।", + "admin.dashboard.actions_action_user": "निष्क्रिय उपयोगकर्ताओं के लिए Forgejo Actions विश्वास निरस्त करें" } diff --git a/options/locale_next/locale_hu-HU.json b/options/locale_next/locale_hu-HU.json index 4f28acaa45..adb23a0c3c 100644 --- a/options/locale_next/locale_hu-HU.json +++ b/options/locale_next/locale_hu-HU.json @@ -1,4 +1,72 @@ { + "admin.config.db.path": "Elérési út", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Séma", + "admin.config.db.user": "Felhasználónév", + "admin.config.db.name": "Név", + "admin.config.db.host": "Kiszolgáló", + "admin.config.db.type": "Típus", + "admin.config.db.header": "Adatbázis Konfiguráció", + "admin.config.mailer.user": "Felhasználó", + "admin.config.mailer.smtp.port": "SMTP port", + "admin.config.mailer.sendmail.args": "Extra Sendmail argumentumok", + "admin.config.mailer.sendmail.path": "Sendmail Elérési Útja", + "admin.config.mailer.sendmail.use": "Sendmail Használata", + "admin.config.mailer.name": "Név", + "admin.config.mailer.enabled": "Engedélyezett", + "admin.config.git.gc_timeout": "Szemétgyűjtési (GC) Időtúllépés", + "admin.config.git.pull_timeout": "Frissítési Időtúllépés", + "admin.config.git.clone_timeout": "Klónozási időtúllépés", + "admin.config.git.mirror_timeout": "Tükör Frissítési Időtúllépés", + "admin.config.git.migrate_timeout": "Migrációs Időtúllépés", + "admin.config.git.gc_args": "Szemétgyűjtő (GC) Argumentumok", + "admin.config.git.diff.max_files": "Maximális fájlok száma különbségi nézetben", + "admin.config.git.diff.max_line_characters": "Maximális karakterek száma különbségi nézetben (egy fájl esetén)", + "admin.config.git.diff.max_lines": "Maximális sorok száma különbségi nézetben (egy fájl esetén)", + "admin.config.git.disable_diff_highlight": "Különbségi nézetben a szintakszis kiemelés kikapcsolása", + "admin.config.git.version": "Git Verzió", + "admin.config.git.header": "Git Beállítás", + "admin.config.ssh.minimum_key_sizes": "Minimális kulcsok méretek", + "admin.config.ssh.minimum_key_size_check": "Kulcsok minimum méretének ellenőrzése", + "admin.config.ssh.keygen_path": "Kulcsgeneráló ('ssh-keygen') elérési útja", + "admin.config.ssh.key_test_path": "Kulcs ellenőrzés útvonala", + "admin.config.ssh.root_path": "Gyökérkönyvtár", + "admin.config.ssh.listen_port": "Figyelő port", + "admin.config.ssh.port": "Port", + "admin.config.ssh.use_builtin_server": "Beépített szerver használata", + "admin.config.ssh.enabled": "Engedélyezett", + "admin.config.ssh.header": "SSH Konfiguráció", + "admin.users.never_login": "Sosem jelentkezett be", + "admin.users.last_login": "Utolsó bejelentkezés", + "admin.users.created": "Létrehozva", + "admin.users.repos": "Tárolók", + "admin.users.restricted": "Korlátozott", + "admin.users.admin": "Rendszergazda", + "admin.users.activated": "Aktivált", + "admin.users.full_name": "Teljes név", + "admin.users.name": "Felhasználónév", + "admin.packages.size": "Méret", + "admin.packages.repository": "Tároló", + "admin.packages.type": "Típus", + "admin.packages.name": "Név", + "admin.packages.owner": "Tulajdonos", + "admin.repos.size": "Méret", + "admin.repos.issues": "Hibajegyek", + "admin.repos.name": "Név", + "admin.repos.owner": "Tulajdonos", + "admin.orgs.new_orga": "Új szervezet", + "admin.orgs.members": "Tagok", + "admin.orgs.teams": "Csoportok", + "admin.orgs.name": "Név", + "admin.dashboard.sync_external_users": "Külső felhasználói adatok szinkronizálása", + "admin.dashboard.reinit_missing_repos": "Az összes Git tároló újra-inicializálása amihez léteznek bejegyzések", + "admin.dashboard.delete_generated_repository_avatars": "Generált tároló avatarok törlése", + "admin.dashboard.operation_run": "Futtatás", + "admin.dashboard.operation_switch": "Váltás", + "admin.dashboard.operation_name": "Művelet Neve", + "admin.dashboard.system_status": "Rendszer Állapota", + "admin.dashboard.operations": "Karbantartási műveletek", + "admin.dashboard.statistic": "Összefoglaló", "admin.monitor.queue.settings.submit": "Beállítások frissítése", "admin.monitor.queue.type": "Típus", "admin.monitor.queue.name": "Név", diff --git a/options/locale_next/locale_id-ID.json b/options/locale_next/locale_id-ID.json index d0e58fcbb4..6822b7a758 100644 --- a/options/locale_next/locale_id-ID.json +++ b/options/locale_next/locale_id-ID.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Jalur", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Schema", + "admin.config.db.user": "Nama pengguna", + "admin.config.db.name": "Nama", + "admin.config.db.host": "Host", + "admin.config.db.type": "Tipe", + "admin.config.db.header": "Konfigurasi basis data", + "admin.config.mailer.user": "Pengguna", + "admin.config.mailer.smtp.port": "Port SMTP", + "admin.config.mailer.smtp.addr": "Host SMTP", + "admin.config.mailer.enable_helo": "Aktifkan HELO", + "admin.config.mailer.protocol": "Protokol", + "admin.config.mailer.use_dummy": "Dummy", + "admin.config.mailer.sendmail.timeout": "Batas waktu Sendmail", + "admin.config.mailer.sendmail.args": "Argumen tambahan untuk Sendmail", + "admin.config.mailer.sendmail.path": "Jalur Sendmail", + "admin.config.mailer.sendmail.use": "Menggunakan Sendmail", + "admin.config.mailer.name": "Nama", + "admin.config.mailer.enabled": "Diaktifkan", + "admin.config.mailer.header": "Konfigurasi mailer", + "admin.config.git.gc_timeout": "Batas waktu operasi GC", + "admin.config.git.pull_timeout": "Batas waktu operasi tarik", + "admin.config.git.clone_timeout": "Batas waktu operasi klon", + "admin.config.git.mirror_timeout": "Batas waktu pembaruan cermin", + "admin.config.git.migrate_timeout": "Batas waktu migrasi", + "admin.config.git.gc_args": "Argumen GC", + "admin.config.git.diff.max_files": "Maks file diff yang ditampilkan", + "admin.config.git.diff.max_line_characters": "Maks karakter diff per baris", + "admin.config.git.diff.max_lines": "Maks baris diff per file", + "admin.config.git.disable_diff_highlight": "Nonaktifkan penyorotan sintaks diff", + "admin.config.git.version": "Versi Git", + "admin.config.git.header": "Konfigurasi Git", + "admin.config.ssh.minimum_key_sizes": "Ukuran kunci minimum", + "admin.config.ssh.minimum_key_size_check": "Pemeriksaan ukuran kunci minimum", + "admin.config.ssh.keygen_path": "Jalur Keygen (\"ssh-keygen\")", + "admin.config.ssh.key_test_path": "Jalur uji kunci", + "admin.config.ssh.root_path": "Jalur root", + "admin.config.ssh.listen_port": "Port dengar", + "admin.config.ssh.port": "Port", + "admin.config.ssh.domain": "Domain server SSH", + "admin.config.ssh.use_builtin_server": "Gunakan server bawaan", + "admin.config.ssh.enabled": "Aktif", + "admin.config.ssh.header": "Konfigurasi SSH", + "admin.users.never_login": "Belum pernah masuk", + "admin.users.last_login": "Masuk terakhir", + "admin.users.created": "Dibuat", + "admin.users.repos": "Repo", + "admin.users.2fa": "2FA", + "admin.users.remote": "Jarak jauh", + "admin.users.bot": "Bot", + "admin.users.reserved": "Dicadangkan", + "admin.users.restricted": "Dibatasi", + "admin.users.admin": "Pengelola", + "admin.users.activated": "Diaktifkan", + "admin.users.full_name": "Nama lengkap", + "admin.users.name": "Nama pengguna", + "admin.packages.published": "Diterbitkan", + "admin.packages.size": "Ukuran", + "admin.packages.repository": "Repositori", + "admin.packages.type": "Jenis", + "admin.packages.version": "Versi", + "admin.packages.name": "Nama", + "admin.packages.creator": "Pembuat", + "admin.packages.owner": "Pemilik", + "admin.packages.unreferenced_size": "Ukuran yang tidak direferensikan: %s", + "admin.packages.total_size": "Total ukuran: %s", + "admin.repos.lfs_size": "Ukuran LFS", + "admin.repos.size": "Ukuran", + "admin.repos.issues": "Masalah", + "admin.repos.name": "Nama", + "admin.repos.owner": "Pemilik", + "admin.orgs.new_orga": "Organisasi baru", + "admin.orgs.members": "Anggota", + "admin.orgs.teams": "Tim", + "admin.orgs.name": "Nama", + "admin.dashboard.rebuild_issue_indexer": "Bangun ulang pengindeks isu", + "admin.dashboard.start_schedule_tasks": "Mulai tugas aksi terjadwal", + "admin.dashboard.cancel_abandoned_jobs": "Batalkan pekerjaan aksi yang terbengkalai", + "admin.dashboard.stop_endless_tasks": "Hentikan tugas aksi yang tidak berakhir", + "admin.dashboard.stop_zombie_tasks": "Hentikan tugas aksi yang terhenti", + "admin.dashboard.gc_lfs": "Lakukan pengumpulan sampah pada objek meta LFS", + "admin.dashboard.delete_old_system_notices": "Hapus semua pemberitahuan sistem lama dari basis data", + "admin.dashboard.update_checker": "Pemeriksa pembaruan", + "admin.dashboard.cleanup_actions": "Bersihkan log dan artefak yang kedaluwarsa dari aksi", + "admin.dashboard.cleanup_packages": "Bersihkan paket yang kedaluwarsa", + "admin.dashboard.cleanup_hook_task_table": "Bersihkan tabel hook_task", + "admin.dashboard.sync_external_users": "Sinkronkan data pengguna eksternal", + "admin.dashboard.reinit_missing_repos": "Menginstal kembali semua repositori Git yang hilang dimana ada catatan", + "admin.dashboard.resync_all_hooks": "Sinkronkan ulang hook Git dari semua repositori (pre-receive, update, post-receive, proc-receive, …)", + "admin.dashboard.resync_all_sshprincipals": "Perbarui file \".ssh/authorized_principals\" dengan prinsipal SSH Forgejo.", + "admin.dashboard.resync_all_sshkeys": "Perbarui file \".ssh/authorized_keys\" dengan kunci SSH Forgejo.", + "admin.dashboard.git_gc_repos": "Lakukan pengumpulan sampah pada semua repositori", + "admin.dashboard.update_migration_poster_id": "Perbarui ID pembuat migrasi", + "admin.dashboard.deleted_branches_cleanup": "Bersihkan cabang yang dihapus", + "admin.dashboard.archive_cleanup": "Hapus arsip repositori lama", + "admin.dashboard.check_repo_stats": "Periksa semua statistik repositori", + "admin.dashboard.repo_health_check": "Periksa kesehatan semua repositori", + "admin.dashboard.update_mirrors": "Perbarui cermin", + "admin.dashboard.sync_repo_tags": "Sinkronkan tag dari data Git ke basis data", + "admin.dashboard.sync_repo_branches": "Sinkronkan cabang yang terlewat dari data Git ke basis data", + "admin.dashboard.delete_generated_repository_avatars": "Hapus avatar repositori yang dihasilkan secara otomatis", + "admin.dashboard.sync_tag.started": "Sinkronisasi tag dimulai", + "admin.dashboard.sync_branch.started": "Sinkronisasi cabang dimulai", + "admin.dashboard.delete_old_actions.started": "Hapus semua aktivitas lama dari basis data dimulai.", + "admin.dashboard.delete_missing_repos.started": "Tugas hapus semua repositori yang file Git-nya hilang dimulai.", + "admin.dashboard.delete_repo_archives.started": "Tugas hapus semua arsip repositori dimulai.", + "admin.dashboard.delete_inactive_accounts.started": "Tugas hapus semua akun yang belum diaktifkan dimulai.", + "admin.dashboard.cron.finished": "Cron: %[1]s telah selesai", + "admin.dashboard.cron.error": "Kesalahan dalam Cron: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s dibatalkan: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Cron Dimulai: %[1]s", + "admin.dashboard.task.unknown": "Tugas tidak dikenal: %[1]s", + "admin.dashboard.task.finished": "Tugas: %[1]s yang dimulai oleh %[2]s telah selesai", + "admin.dashboard.task.error": "Kesalahan dalam Tugas: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Tugas: %[1]s dibatalkan: %[3]s", + "admin.dashboard.task.process": "Tugas: %[1]s", + "admin.dashboard.task.started": "Tugas Dimulai: %[1]s", + "admin.dashboard.operation_run": "Lari", + "admin.dashboard.operation_switch": "Beralih", + "admin.dashboard.operation_name": "Nama operasi", + "admin.dashboard.system_status": "Status sistem", + "admin.dashboard.operations": "Operasi pemeliharaan", + "admin.dashboard.statistic": "Ringkasan", + "admin.dashboard.new_version_hint": "Forgejo %s kini tersedia, Anda menjalankan %s. Periksa blog untuk detail selengkapnya.", "admin.monitor.queue.settings.remove_all_items.success": "Semua item dalam antrian telah dihapus.", "admin.monitor.queue.settings.remove_all_items": "Hapus semua", "admin.monitor.queue.settings.changed": "Pengaturan diperbarui", diff --git a/options/locale_next/locale_is-IS.json b/options/locale_next/locale_is-IS.json index fceede90e6..cf31471ff2 100644 --- a/options/locale_next/locale_is-IS.json +++ b/options/locale_next/locale_is-IS.json @@ -1,4 +1,42 @@ { + "admin.config.db.path": "Slóð", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Uppdráttur", + "admin.config.db.user": "Notandanafn", + "admin.config.db.name": "Heiti", + "admin.config.db.host": "Hýsill", + "admin.config.db.type": "Tegund", + "admin.config.mailer.user": "Notandi", + "admin.config.mailer.smtp.port": "SMTP Gátt", + "admin.config.mailer.name": "Heiti", + "admin.config.git.version": "Útgáfa Git", + "admin.config.ssh.root_path": "Grunnsslóð", + "admin.config.ssh.listen_port": "Hlustunargátt", + "admin.config.ssh.port": "Gátt", + "admin.users.created": "Búið til", + "admin.users.repos": "Söfn", + "admin.users.2fa": "Tvíþætt auðkenning", + "admin.users.admin": "Stjórnandi", + "admin.users.full_name": "Fullt Nafn", + "admin.users.name": "Notandanafn", + "admin.packages.size": "Stærð", + "admin.packages.repository": "Hugbúnaðarsafn", + "admin.packages.type": "Tegund", + "admin.packages.version": "Útgáfa", + "admin.packages.name": "Heiti", + "admin.packages.owner": "Eigandi", + "admin.packages.total_size": "Heildarstærð: %s", + "admin.repos.size": "Stærð", + "admin.repos.issues": "Vandamál", + "admin.repos.name": "Heiti", + "admin.repos.owner": "Eigandi", + "admin.orgs.members": "Meðlimar", + "admin.orgs.teams": "Lið", + "admin.orgs.name": "Heiti", + "admin.dashboard.update_mirrors": "Uppfæra Speglanir", + "admin.dashboard.operation_run": "Keyra", + "admin.dashboard.operation_switch": "Skipta", + "admin.dashboard.statistic": "Yfirlit", "admin.monitor.queue.settings.changed": "Stillingar Uppfærðar", "admin.monitor.queue.settings.submit": "Uppfæra Stillingar", "admin.monitor.queue.type": "Tegund", diff --git a/options/locale_next/locale_it-IT.json b/options/locale_next/locale_it-IT.json index 0efdd472c6..9889529f9b 100644 --- a/options/locale_next/locale_it-IT.json +++ b/options/locale_next/locale_it-IT.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Percorso", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Schema", + "admin.config.db.user": "Nome utente", + "admin.config.db.name": "Nome", + "admin.config.db.host": "Host", + "admin.config.db.type": "Tipo", + "admin.config.db.header": "Configurazione base di dati", + "admin.config.mailer.user": "Utente", + "admin.config.mailer.smtp.port": "Porta SMTP", + "admin.config.mailer.smtp.addr": "Indirizzo SMTP", + "admin.config.mailer.enable_helo": "Abilita HELO", + "admin.config.mailer.protocol": "Protocollo", + "admin.config.mailer.use_dummy": "Dummy", + "admin.config.mailer.sendmail.timeout": "Timeout Sendmail", + "admin.config.mailer.sendmail.args": "Argomenti aggiuntivi per Sendmail", + "admin.config.mailer.sendmail.path": "Percorso Sendmail", + "admin.config.mailer.sendmail.use": "Utilizza Sendmail", + "admin.config.mailer.name": "Nome", + "admin.config.mailer.enabled": "Attivo", + "admin.config.mailer.header": "Configurazione Mailer", + "admin.config.git.gc_timeout": "Timeout operazione GC", + "admin.config.git.pull_timeout": "Tempo limite operazione di prelievo", + "admin.config.git.clone_timeout": "Tempo limite operazione di clone", + "admin.config.git.mirror_timeout": "Timeout per l'aggiornamento dello specchio", + "admin.config.git.migrate_timeout": "Timeout per la migrazione", + "admin.config.git.gc_args": "Parametri GC", + "admin.config.git.diff.max_files": "Numero massimo di file differenze mostrati", + "admin.config.git.diff.max_line_characters": "Numero massimo di caratteri delle differenze (per singola riga)", + "admin.config.git.diff.max_lines": "Numero massimo di righe delle differenze (per singolo file)", + "admin.config.git.disable_diff_highlight": "Disattiva sintassi evidenziate per le differenze", + "admin.config.git.version": "Versione Git", + "admin.config.git.header": "Configurazione Git", + "admin.config.ssh.minimum_key_sizes": "Dimensioni minime della chiave", + "admin.config.ssh.minimum_key_size_check": "Verifica delle dimensioni minime della chiave", + "admin.config.ssh.keygen_path": "Percorso keygen (\"ssh-keygen\")", + "admin.config.ssh.key_test_path": "Percorso chiave di test", + "admin.config.ssh.root_path": "Percorso radice", + "admin.config.ssh.listen_port": "Porta in ascolto", + "admin.config.ssh.port": "Porta", + "admin.config.ssh.domain": "Dominio server SSH", + "admin.config.ssh.use_builtin_server": "Usa il server incorporato", + "admin.config.ssh.enabled": "Attivo", + "admin.config.ssh.header": "Configurazione SSH", + "admin.users.never_login": "Mai effettuato l'accesso", + "admin.users.last_login": "Ultimo accesso", + "admin.users.created": "Creato", + "admin.users.repos": "Repo", + "admin.users.2fa": "2FA", + "admin.users.remote": "Remoto", + "admin.users.bot": "Bot", + "admin.users.reserved": "Riservato", + "admin.users.restricted": "Limitato", + "admin.users.admin": "Amministratore", + "admin.users.activated": "Attivato", + "admin.users.full_name": "Nome completo", + "admin.users.name": "Nome utente", + "admin.packages.published": "Pubblicata", + "admin.packages.size": "Dimensione", + "admin.packages.repository": "Repository", + "admin.packages.type": "Tipo", + "admin.packages.version": "Versione", + "admin.packages.name": "Nome", + "admin.packages.creator": "Creatore", + "admin.packages.owner": "Proprietario", + "admin.packages.unreferenced_size": "Dimensione senza riferimenti: %s", + "admin.packages.total_size": "Dimensione totale: %s", + "admin.repos.lfs_size": "Dimensione LFS", + "admin.repos.size": "Dimensione", + "admin.repos.issues": "Segnalazioni", + "admin.repos.name": "Nome", + "admin.repos.owner": "Proprietario", + "admin.orgs.new_orga": "Nuova organizzazione", + "admin.orgs.members": "Membri", + "admin.orgs.teams": "Team", + "admin.orgs.name": "Nome", + "admin.dashboard.rebuild_issue_indexer": "Ricostruzione dell'indicizzatore delle segnalazioni", + "admin.dashboard.start_schedule_tasks": "Inizia pianificazione attività", + "admin.dashboard.cancel_abandoned_jobs": "Cancella incarichi abbandonati", + "admin.dashboard.stop_endless_tasks": "Termina attività senza fine", + "admin.dashboard.stop_zombie_tasks": "Termina attività zombie", + "admin.dashboard.gc_lfs": "Oggetti meta LFS riciclati", + "admin.dashboard.delete_old_system_notices": "Elimina tutte le vecchie notifiche di sistema dal database", + "admin.dashboard.update_checker": "Controllore dell'aggiornamento", + "admin.dashboard.cleanup_actions": "Pulisci log scaduti e artefatti dalle azioni", + "admin.dashboard.cleanup_packages": "Pulizia pacchetti scaduti", + "admin.dashboard.cleanup_hook_task_table": "Pulisci tabella hook_task", + "admin.dashboard.sync_external_users": "Sincronizza dati utente esterno", + "admin.dashboard.reinit_missing_repos": "Reinizializza tutti i repository Git mancanti per i quali esistono cambiamenti registrati esistenti", + "admin.dashboard.resync_all_hooks": "Sincronizza nuovamente gli hook di pre-ricezione, di aggiornamento e di post-ricezione di tutti i progetti", + "admin.dashboard.resync_all_sshprincipals": "Aggiorna il file \".ssh/authorized_keys\" con le chiavi principali SSH Forgejo.", + "admin.dashboard.resync_all_sshkeys": "Aggiornare il file \".ssh/authorized_keys\" con le chiavi SSH di Forgejo.", + "admin.dashboard.git_gc_repos": "Esegui la garbage collection su tutti i repository", + "admin.dashboard.update_migration_poster_id": "Aggiorna gli ID del poster di migrazione", + "admin.dashboard.deleted_branches_cleanup": "Pulisci i rami eliminati", + "admin.dashboard.archive_cleanup": "Elimina vecchi archivi del repository", + "admin.dashboard.check_repo_stats": "Controlla tutte le statistiche del repository", + "admin.dashboard.repo_health_check": "Controlla integrità di tutti i repository", + "admin.dashboard.update_mirrors": "Aggiorna specchi", + "admin.dashboard.sync_repo_tags": "Sincronizza tag dai dati Git alla base di dati", + "admin.dashboard.sync_repo_branches": "Sincronizza rami omessi dai dati Git nella base di dati", + "admin.dashboard.delete_generated_repository_avatars": "Elimina gli avatar generati nelle repository", + "admin.dashboard.sync_tag.started": "Sincronizzazione dei tag iniziata", + "admin.dashboard.sync_branch.started": "Sincronizzazione dei rami iniziata", + "admin.dashboard.delete_old_actions.started": "Elimina tutte le vecchie azioni dal database iniziate.", + "admin.dashboard.delete_missing_repos.started": "Elimina tutti i repository mancanti dei loro file Git.", + "admin.dashboard.delete_repo_archives.started": "Attività di eliminazione degli archivi del repository iniziata.", + "admin.dashboard.delete_inactive_accounts.started": "Attività di eliminazione degli account non attivati iniziata.", + "admin.dashboard.cron.finished": "Cron: %[1]s ha finito", + "admin.dashboard.cron.error": "Errore in Cron: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s cancellato: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Cron Avviato: %[1]s", + "admin.dashboard.task.unknown": "Attività sconosciuta: %[1]s", + "admin.dashboard.task.finished": "Compito: %[1]s iniziato da %[2]s ha finito", + "admin.dashboard.task.error": "Errore in Attività: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Attività: %[1]s cancellata: %[3]s", + "admin.dashboard.task.process": "Compito: %[1]s", + "admin.dashboard.task.started": "Compito iniziato: %[1]s", + "admin.dashboard.operation_run": "Esegui", + "admin.dashboard.operation_switch": "Cambia", + "admin.dashboard.operation_name": "Nome Operazione", + "admin.dashboard.system_status": "Stato del sistema", + "admin.dashboard.operations": "Operazioni di manutenzione", + "admin.dashboard.statistic": "Riepilogo", + "admin.dashboard.new_version_hint": "Forgejo %s è ora disponibile; stai eseguendo %s. Controlla il blog per ulteriori dettagli.", "admin.monitor.queue.settings.remove_all_items.success": "Tutti gli elementi in coda sono stati rimossi.", "admin.monitor.queue.settings.remove_all_items": "Rimuovi tutto", "admin.monitor.queue.settings.changed": "Impostazioni aggiornate", @@ -577,5 +703,16 @@ "repo.issues.filter_poster.hint": "Filtra per autore", "repo.issues.filter_assignee.hint": "Filtra per utente assegnatə", "repo.pulls.auto_merge.no_permission": "Non hai i permessi di annullare l'immissione automatica di questa richiesta di modifica.", - "repo.pulls.poster_manage_approval": "Gestisci approvazione" + "repo.pulls.poster_manage_approval": "Gestisci approvazione", + "repo.files.filename": "Nome del file", + "repo.files.last_commit_message": "Ultimo messaggio di commit", + "repo.files.last_commit_date": "Ultima data di commit", + "repo.pulls.poster_is_trusted.tooltip": "L'autore di questa richiesta di modifica è esplicitamente autorizzato ad eseguire flussi di lavoro innescati da eventi `pull_request`.", + "repo.pulls.poster_trust_deny": "Nega", + "repo.pulls.poster_trust_deny.tooltip": "I flussi di lavoro in attesa di approvazione saranno annullati.", + "repo.pulls.poster_trust_once": "Approva una volta", + "repo.pulls.poster_trust_always": "Approva sempre", + "migrate.select.title": "Migra repositorio", + "keys.verify.token.hint": "Il token è valido solamente per 1 minuto Ottieni un nuovo token se è scaduto", + "admin.federation.federation": "Federazione" } diff --git a/options/locale_next/locale_ja-JP.json b/options/locale_next/locale_ja-JP.json index f462ff4e74..d82f6cdfc9 100644 --- a/options/locale_next/locale_ja-JP.json +++ b/options/locale_next/locale_ja-JP.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "パス", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "スキーマ", + "admin.config.db.user": "ユーザー名", + "admin.config.db.name": "データベース名", + "admin.config.db.host": "ホスト", + "admin.config.db.type": "タイプ", + "admin.config.db.header": "データベース設定", + "admin.config.mailer.user": "ユーザー", + "admin.config.mailer.smtp.port": "SMTPポート", + "admin.config.mailer.smtp.addr": "SMTPホスト", + "admin.config.mailer.enable_helo": "HELO有効", + "admin.config.mailer.protocol": "プロトコル", + "admin.config.mailer.use_dummy": "Dummy", + "admin.config.mailer.sendmail.timeout": "Sendmail のタイムアウト", + "admin.config.mailer.sendmail.args": "Sendmailの追加引数", + "admin.config.mailer.sendmail.path": "Sendmailのパス", + "admin.config.mailer.sendmail.use": "Sendmailを使う", + "admin.config.mailer.name": "名称", + "admin.config.mailer.enabled": "有効", + "admin.config.mailer.header": "メーラー設定", + "admin.config.git.gc_timeout": "GC操作のタイムアウト", + "admin.config.git.pull_timeout": "プル操作のタイムアウト", + "admin.config.git.clone_timeout": "クローン操作のタイムアウト", + "admin.config.git.mirror_timeout": "ミラー更新タイムアウト", + "admin.config.git.migrate_timeout": "移行タイムアウト", + "admin.config.git.gc_args": "GC引数", + "admin.config.git.diff.max_files": "差分を表示する最大ファイル数", + "admin.config.git.diff.max_line_characters": "1行あたりの最大差分文字数", + "admin.config.git.diff.max_lines": "ファイルあたりの最大差分行数", + "admin.config.git.disable_diff_highlight": "Diffのシンタックスハイライトが無効", + "admin.config.git.version": "Gitバージョン", + "admin.config.git.header": "Git設定", + "admin.config.ssh.minimum_key_sizes": "最小キー長", + "admin.config.ssh.minimum_key_size_check": "最小キー長のチェック", + "admin.config.ssh.keygen_path": "キージェネレータ(\"ssh-keygen\")パス", + "admin.config.ssh.key_test_path": "キーテストパス", + "admin.config.ssh.root_path": "ルートパス", + "admin.config.ssh.listen_port": "待受ポート", + "admin.config.ssh.port": "ポート", + "admin.config.ssh.domain": "SSHサーバーのドメイン", + "admin.config.ssh.use_builtin_server": "ビルトインサーバーを使用", + "admin.config.ssh.enabled": "有効", + "admin.config.ssh.header": "SSH設定", + "admin.users.never_login": "未サインイン", + "admin.users.last_login": "前回のサインイン", + "admin.users.created": "作成日", + "admin.users.repos": "リポジトリ", + "admin.users.2fa": "2FA", + "admin.users.remote": "リモート", + "admin.users.bot": "Bot", + "admin.users.reserved": "予約済み", + "admin.users.restricted": "制限あり", + "admin.users.admin": "管理者", + "admin.users.activated": "アクティベート済み", + "admin.users.full_name": "フルネーム", + "admin.users.name": "ユーザー名", + "admin.packages.published": "配布", + "admin.packages.size": "サイズ", + "admin.packages.repository": "リポジトリ", + "admin.packages.type": "タイプ", + "admin.packages.version": "バージョン", + "admin.packages.name": "名前", + "admin.packages.creator": "作成者", + "admin.packages.owner": "オーナー", + "admin.packages.unreferenced_size": "非参照サイズ: %s", + "admin.packages.total_size": "合計サイズ: %s", + "admin.repos.lfs_size": "LFSサイズ", + "admin.repos.size": "サイズ", + "admin.repos.issues": "イシュー", + "admin.repos.name": "名称", + "admin.repos.owner": "オーナー", + "admin.orgs.new_orga": "新しい組織", + "admin.orgs.members": "メンバー", + "admin.orgs.teams": "チーム", + "admin.orgs.name": "名称", + "admin.dashboard.rebuild_issue_indexer": "イシューインデクサーの再構築", + "admin.dashboard.start_schedule_tasks": "スケジュールタスクを開始", + "admin.dashboard.cancel_abandoned_jobs": "放置されたままのジョブをキャンセル", + "admin.dashboard.stop_endless_tasks": "終わらないタスクを停止", + "admin.dashboard.stop_zombie_tasks": "ゾンビタスクを停止", + "admin.dashboard.gc_lfs": "LFSメタオブジェクトのガベージコレクション", + "admin.dashboard.delete_old_system_notices": "データベースから古いシステム通知をすべて削除", + "admin.dashboard.update_checker": "更新チェック", + "admin.dashboard.cleanup_actions": "Actionsから期限切れのログとアーティファクトのクリーンアップする", + "admin.dashboard.cleanup_packages": "期限切れパッケージのクリーンアップ", + "admin.dashboard.cleanup_hook_task_table": "hook_taskテーブルのクリーンアップ", + "admin.dashboard.sync_external_users": "外部ユーザーデータの同期", + "admin.dashboard.reinit_missing_repos": "レコードが存在するが見当たらないすべてのGitリポジトリを再初期化する", + "admin.dashboard.resync_all_hooks": "すべてのリポジトリの Git フックを再同期します (pre-receive、update、post-receive、proc-receive、…)", + "admin.dashboard.resync_all_sshprincipals": "Forgejo SSH プリンシパルを使用して\".ssh/authorized_principals\"ファイルを更新します。", + "admin.dashboard.resync_all_sshkeys": "Forgejo SSH キーを使用して\".ssh/authorized_keys\"ファイルを更新します。", + "admin.dashboard.git_gc_repos": "すべてのリポジトリでガベージコレクションを実行", + "admin.dashboard.update_migration_poster_id": "移行する投稿者IDの更新", + "admin.dashboard.deleted_branches_cleanup": "削除ブランチのクリーンアップ", + "admin.dashboard.archive_cleanup": "古いリポジトリアーカイブの削除", + "admin.dashboard.check_repo_stats": "全リポジトリの統計情報を更新", + "admin.dashboard.repo_health_check": "全リポジトリのヘルスチェック", + "admin.dashboard.update_mirrors": "ミラーの更新", + "admin.dashboard.sync_repo_tags": "Gitデータからデータベースにタグを同期する", + "admin.dashboard.sync_repo_branches": "Gitデータからデータベースへ不足しているブランチを同期", + "admin.dashboard.delete_generated_repository_avatars": "自動生成したリポジトリアバターを削除", + "admin.dashboard.sync_tag.started": "タグの同期が開始されました", + "admin.dashboard.sync_branch.started": "ブランチの同期を開始しました", + "admin.dashboard.delete_old_actions.started": "データベースからの古い操作履歴の削除を開始しました。", + "admin.dashboard.delete_missing_repos.started": "Gitファイルが存在しないリポジトリをすべて削除するタスクを開始しました。", + "admin.dashboard.delete_repo_archives.started": "リポジトリアーカイブをすべて削除するタスクを開始しました。", + "admin.dashboard.delete_inactive_accounts.started": "アクティベートされていないアカウントをすべて削除するタスクを開始しました。", + "admin.dashboard.cron.finished": "Cron: %[1]s が完了", + "admin.dashboard.cron.error": "Cronでエラー: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s をキャンセル: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Cronを開始しました: %[1]s", + "admin.dashboard.task.unknown": "不明なタスクです: %[1]s", + "admin.dashboard.task.finished": "タスク: %[2]s が開始したタスク %[1]s が完了", + "admin.dashboard.task.error": "タスクでエラー: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "タスク: %[1]s をキャンセル: %[3]s", + "admin.dashboard.task.process": "タスク: %[1]s", + "admin.dashboard.task.started": "タスクを開始しました: %[1]s", + "admin.dashboard.operation_run": "実行", + "admin.dashboard.operation_switch": "切り替え", + "admin.dashboard.operation_name": "操作の名称", + "admin.dashboard.system_status": "システム状況", + "admin.dashboard.operations": "メンテナンス操作", + "admin.dashboard.statistic": "サマリー", + "admin.dashboard.new_version_hint": "Forgejo %s が入手可能になりました。 現在実行しているのは %s です。 詳細は ブログ を確認してください。", "admin.monitor.queue.settings.remove_all_items.success": "キュー内のすべての項目を削除しました。", "admin.monitor.queue.settings.remove_all_items": "すべて削除", "admin.monitor.queue.settings.changed": "設定を更新しました", diff --git a/options/locale_next/locale_ka.json b/options/locale_next/locale_ka.json index bfd0bbf460..1ea4f2954f 100644 --- a/options/locale_next/locale_ka.json +++ b/options/locale_next/locale_ka.json @@ -1,4 +1,46 @@ { + "admin.config.db.path": "ბილიკი", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "სქემა", + "admin.config.db.user": "მომხმარებლის სახელი", + "admin.config.db.name": "სახელი", + "admin.config.db.host": "ჰოსტი", + "admin.config.db.type": "ტიპი", + "admin.config.mailer.user": "მომხმარებელი", + "admin.config.mailer.protocol": "პროტოკოლი", + "admin.config.mailer.use_dummy": "სულელი", + "admin.config.mailer.name": "სახელი", + "admin.config.mailer.enabled": "ჩართულია", + "admin.config.ssh.port": "პორტი", + "admin.config.ssh.enabled": "ჩართულია", + "admin.users.created": "შეიქმნა", + "admin.users.repos": "რეპოები", + "admin.users.2fa": "2FA", + "admin.users.remote": "დაშორებული", + "admin.users.bot": "ბოტი", + "admin.users.reserved": "დაცული", + "admin.users.restricted": "შეზღუდული", + "admin.users.admin": "ადმინი", + "admin.users.activated": "გააქტიურებულია", + "admin.users.name": "მომხმარებლის სახელი", + "admin.packages.published": "გამოქვეყნებულია", + "admin.packages.size": "ზომა", + "admin.packages.repository": "რეპოზიტორია", + "admin.packages.type": "ტიპი", + "admin.packages.version": "ვერსია", + "admin.packages.name": "სახელი", + "admin.packages.creator": "შემქმნელი", + "admin.packages.owner": "მფლობელი", + "admin.repos.size": "ზომა", + "admin.repos.issues": "პრობლემები", + "admin.repos.name": "სახელი", + "admin.repos.owner": "მფლობელი", + "admin.orgs.members": "წევრები", + "admin.orgs.teams": "გუნდები", + "admin.orgs.name": "სახელი", + "admin.dashboard.operation_run": "გაშვება", + "admin.dashboard.operation_switch": "გადართვა", + "admin.dashboard.statistic": "შეჯამება", "admin.monitor.queue.type": "ტიპი", "admin.monitor.queue.name": "სახელი", "admin.monitor.queues": "რიგები", diff --git a/options/locale_next/locale_kab.json b/options/locale_next/locale_kab.json index 5d874fb42d..0b81732b50 100644 --- a/options/locale_next/locale_kab.json +++ b/options/locale_next/locale_kab.json @@ -1,4 +1,40 @@ { + "admin.config.db.path": "Abrid", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Azenziɣ", + "admin.config.db.user": "Isem n useqdac", + "admin.config.db.name": "Isem", + "admin.config.db.host": "Asenneftaɣ", + "admin.config.db.type": "Anaw", + "admin.config.mailer.user": "Aseqdac", + "admin.config.mailer.smtp.port": "Tawwurt n SMTP", + "admin.config.mailer.protocol": "Aneggaf", + "admin.config.mailer.sendmail.use": "Seqdec Sendmail", + "admin.config.mailer.name": "Isem", + "admin.config.mailer.enabled": "D urmid", + "admin.config.git.header": "Tawila n Git", + "admin.config.ssh.port": "Tawwurt", + "admin.config.ssh.header": "Tawila n SSH", + "admin.users.last_login": "Tuqqna taneggarut", + "admin.users.2fa": "2FA", + "admin.users.admin": "Anedbal", + "admin.users.full_name": "Isem ummid", + "admin.users.name": "Isem n useqdac", + "admin.packages.size": "Tiddi", + "admin.packages.repository": "Akufi", + "admin.packages.type": "Tawsit", + "admin.packages.version": "Lqem", + "admin.packages.name": "Isem", + "admin.packages.creator": "Asaraw", + "admin.packages.owner": "Bab-is", + "admin.repos.lfs_size": "Tiddi LFS", + "admin.repos.size": "Tiddi", + "admin.repos.name": "Isem", + "admin.repos.owner": "Bab-is", + "admin.orgs.members": "Imttekkiyen", + "admin.orgs.teams": "Igrawen", + "admin.orgs.name": "Isem", + "admin.dashboard.statistic": "Agzul", "admin.monitor.queue.settings.remove_all_items": "Kkes-iten akk", "admin.monitor.queue.name": "Isem", "admin.users.list_status_filter.is_admin": "Anedbal", diff --git a/options/locale_next/locale_ko-KR.json b/options/locale_next/locale_ko-KR.json index b6f638bf0f..021c4d0a33 100644 --- a/options/locale_next/locale_ko-KR.json +++ b/options/locale_next/locale_ko-KR.json @@ -1,4 +1,68 @@ { + "admin.config.db.path": "경로", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.user": "사용자명", + "admin.config.db.name": "이름", + "admin.config.db.host": "호스트", + "admin.config.db.type": "유형", + "admin.config.db.header": "데이터베이스 설정", + "admin.config.mailer.user": "사용자", + "admin.config.mailer.smtp.port": "SMTP 포트", + "admin.config.mailer.sendmail.args": "Sendmail 추가 인수", + "admin.config.mailer.sendmail.path": "Sendmail 경로", + "admin.config.mailer.sendmail.use": "Sendmail 사용", + "admin.config.mailer.name": "이름", + "admin.config.mailer.enabled": "활성화됨", + "admin.config.git.gc_timeout": "가비지 콜렉션 작업 시간 제한", + "admin.config.git.pull_timeout": "끌어오기 작업 시간 제한", + "admin.config.git.clone_timeout": "복제 작업 시간 제한", + "admin.config.git.mirror_timeout": "미러 업데이트 시간 제한", + "admin.config.git.migrate_timeout": "마이그레이션 제한 시간", + "admin.config.git.gc_args": "가비지 콜렉션 인수", + "admin.config.git.diff.max_files": "변경사항 최대 파일 개 수 (표시 되는)", + "admin.config.git.diff.max_line_characters": "변경사항 최대 표시 문자 수 (단일 행에 대해)", + "admin.config.git.diff.max_lines": "변경사항 최대 표시 줄 수 (단일 파일에 대해)", + "admin.config.git.disable_diff_highlight": "변경 사항 구문 강조 비활성화", + "admin.config.git.version": "Git 버전", + "admin.config.git.header": "깃 설정", + "admin.config.ssh.minimum_key_sizes": "최소 키 사이즈", + "admin.config.ssh.minimum_key_size_check": "최소 키 사이즈 검사", + "admin.config.ssh.keygen_path": "키 생성 ('ssh-keygen') 경로", + "admin.config.ssh.key_test_path": "주 테스트 경로", + "admin.config.ssh.root_path": "최상위 경로", + "admin.config.ssh.listen_port": "수신 대기 포트", + "admin.config.ssh.port": "포트", + "admin.config.ssh.use_builtin_server": "내장 서버 사용", + "admin.config.ssh.enabled": "활성화됨", + "admin.config.ssh.header": "SSH 설정", + "admin.users.never_login": "로그인 한 적이 없음", + "admin.users.last_login": "마지막 로그인", + "admin.users.created": "작성일", + "admin.users.repos": "저장소", + "admin.users.admin": "관리자", + "admin.users.activated": "활성화됨", + "admin.users.full_name": "성명", + "admin.users.name": "사용자명", + "admin.packages.size": "크기", + "admin.packages.repository": "저장소", + "admin.packages.type": "유형", + "admin.packages.name": "이름", + "admin.packages.owner": "소유자", + "admin.repos.size": "크기", + "admin.repos.issues": "이슈", + "admin.repos.name": "이름", + "admin.repos.owner": "소유자", + "admin.orgs.new_orga": "새 조직", + "admin.orgs.members": "멤버", + "admin.orgs.teams": "팀", + "admin.orgs.name": "이름", + "admin.dashboard.sync_external_users": "외부 사용자 데이터 동기화", + "admin.dashboard.git_gc_repos": "모든 저장소 가비지 콜렉트", + "admin.dashboard.operation_run": "실행", + "admin.dashboard.operation_switch": "스위치", + "admin.dashboard.operation_name": "작업 명", + "admin.dashboard.system_status": "시스템 상태", + "admin.dashboard.statistic": "요약", "admin.monitor.queue.settings.submit": "설정 업데이트", "admin.monitor.queue.type": "유형", "admin.monitor.queue.name": "이름", diff --git a/options/locale_next/locale_lt.json b/options/locale_next/locale_lt.json index a60c96a4ae..8dabafb7c7 100644 --- a/options/locale_next/locale_lt.json +++ b/options/locale_next/locale_lt.json @@ -13,5 +13,140 @@ "webauthn.sign_in": "Paspauskite saugumo rakto mygtuką. Jei saugumo raktas neturi mygtuko, įkiškite jį iš naujo.", "webauthn.insert_key": "Įkiškite savo saugumo raktą", "search.milestone_kind": "Ieškoti gairių...", - "meta.last_line": " " + "meta.last_line": " ", + "home.welcome.no_activity": "Jokios veiklos", + "home.welcome.activity_hint": "Jūsų naujienų sraute kol nėra jokio turinio. Čia bus rodomi jūsų veiksmai ir veikla repozitorijuose, kuriuos stebite.", + "home.explore_repos": "Tyrinėti saugyklas", + "home.explore_users": "Tyrinėti vartotojus", + "home.explore_orgs": "Tyrinėti organizacijas", + "fork.n_forks": { + "one": "%s forkas", + "few": "%s forkai", + "other": "%s forkų" + }, + "stars.list.none": "Niekas nepažymėjo šios saugyklos žvaigždute.", + "watch.list.none": "Niekas nesekia šios saugyklos.", + "followers.incoming.list.self.none": "Niekas nesekia tavo profilio.", + "followers.incoming.list.none": "Niekas nesekia šio vartotojo.", + "followers.outgoing.list.self.none": "Nesekai nieko.", + "followers.outgoing.list.none": "%s nieko neseka.", + "relativetime.now": "dabar", + "relativetime.future": "ateityje", + "relativetime.mins": { + "one": "prieš %d minutę", + "few": "prieš %d minutes", + "other": "prieš %d minučių" + }, + "relativetime.hours": { + "one": "prieš %d valandą", + "few": "prieš %d valandas", + "other": "prieš %d valandų" + }, + "stars.n_stars": { + "one": "%s žvaigždė", + "few": "%s žvaigždės", + "other": "%s žvaigždžių" + }, + "watch.n_watchers": { + "one": "%s stebėtojas", + "few": "%s stebėtojai", + "other": "%s stebėtojų" + }, + "themes.names.forgejo-auto": "Forgejo (sekti sistemos temą)", + "error.not_found.title": "Puslapis nerastas", + "alert.asset_load_failed": "Nepavyko įkelti išteklių failų iš {path}. Įsitikinkite, kad išteklių failai yra pasiekiami.", + "install.invalid_lfs_path": "Nepavyko sukurti LFS šakninio katalogo nurodytame kelyje: %[1]s", + "mail.actions.successful_run_after_failure_subject": "Darbo eiga %[1]s atkurta saugykloje %[2]s", + "mail.actions.not_successful_run_subject": "Darbo eiga %[1]s nepavyko saugykloje %[2]s", + "mail.actions.successful_run_after_failure": "Darbo eiga %[1]s atkurta saugykloje %[2]s", + "mail.actions.not_successful_run": "Darbo eiga %[1]s nepavyko saugykloje %[2]s", + "mail.actions.run_info_cur_status": "Šio vykdymo būsena: %[1]s (ką tik atnaujinta iš %[2]s)", + "mail.actions.run_info_previous_status": "Ankstesnio vykdymo būsena: %[1]s", + "mail.actions.run_info_trigger": "Paleista dėl: %[1]s, autorius: %[2]s", + "discussion.locked": "Ši diskusija buvo užrakinta. Komentuoti gali tik prisidėję naudotojai.", + "relativetime.days": { + "one": "prieš %d dieną", + "few": "prieš %d dienas", + "other": "prieš %d dienų" + }, + "relativetime.weeks": { + "one": "prieš %d savaitę", + "few": "prieš %d savaites", + "other": "prieš %d savaičių" + }, + "relativetime.months": { + "one": "prieš %d mėnesį", + "few": "prieš %d mėnesius", + "other": "prieš %d mėnesių" + }, + "relativetime.years": { + "one": "prieš %d metus", + "few": "prieš %d metus", + "other": "prieš %d metų" + }, + "relativetime.1day": "vakar", + "relativetime.1week": "praėjusią savaitę", + "relativetime.1month": "praėjusį mėnesį", + "relativetime.1year": "praėjusiais metais", + "repo.files.caption": "Saugyklos failai (naujausias įsipareigojimas pirmiausia)", + "repo.files.filename": "Failo pavadinimas", + "repo.files.last_commit_message": "Naujausia įsipareigojimo žinutė", + "repo.files.last_commit_date": "Naujausio įsipareigojimo data", + "repo.issues.filter_poster.hint": "Filtruoti pagal autorių", + "repo.issues.filter_assignee.hint": "Filtruoti pagal priskirtą naudotoją", + "repo.issues.filter_reviewers.hint": "Filtruoti pagal peržiūrėjusį naudotoją", + "repo.issues.filter_mention.hint": "Filtruoti pagal paminėtą naudotoją", + "repo.issues.filter_modified.hint": "Filtruoti pagal paskutinio pakeitimo datą", + "repo.issues.filter_sort.hint_with_placeholder": "Rikiuoti pagal: %s", + "issues.updated": "atnaujinta %s", + "issues.filters.labels.exclude": "Neįtraukti žymos", + "issues.filters.labels.unexclude": "Išvalyti išskyrimą", + "repo.pulls.auto_merge.no_permission": "Neturite teisės atšaukti šios traukimo užklausos automatinio sujungimo.", + "repo.pulls.poster_manage_approval": "Tvarkyti patvirtinimą", + "repo.pulls.poster_requires_approval": "Kai kurios darbo eigos laukia peržiūros.", + "repo.pulls.poster_requires_approval.tooltip": "Šios traukimo užklausos autorius nėra laikomas patikimu vykdyti darbo eigas, kurios paleidžiamos traukimo užklausomis iš išsišakojusios saugyklos arba naudojant AGit. Darbo eigos, paleidžiamos pull_request įvykiu, nebus vykdomos, kol nebus patvirtintos.", + "repo.pulls.poster_is_trusted": "Šios traukimo užklausos autorius visada laikomas patikimu vykdyti darbo eigas.", + "repo.pulls.poster_is_trusted.tooltip": "Šios traukimo užklausos autorius yra aiškiai laikomas patikimu vykdyti darbo eigas, paleidžiamas `pull_request` įvykiais.", + "repo.pulls.poster_trust_deny": "Atmesti", + "repo.pulls.poster_trust_deny.tooltip": "Darbo eigos, laukiančios patvirtinimo, bus atšauktos.", + "repo.pulls.poster_trust_once": "Patvirtinti vieną kartą", + "repo.pulls.poster_trust_once.tooltip": "Darbo eigos, paleistos `pull_request` įvykiu, bus vykdomos šiam įsipareigojimui, tačiau visiems būsimiems į šią traukimo užklausą įkeltiems įsipareigojimams reikės patvirtinimo.", + "repo.pulls.poster_trust_always": "Visada patvirtinti", + "repo.pulls.poster_trust_always.tooltip": "Darbo eigos, paleistos `pull_request` įvykiu, bus vykdomos šiam įsipareigojimui, ir nereikės tvirtinti vykdymų iš šios ar būsimų to paties naudotojo sukurtų traukimo užklausų.", + "repo.pulls.poster_trust_revoke": "Atšaukti", + "repo.pulls.poster_trust_revoke.tooltip": "Šios traukimo užklausos autorius nebebus laikomas patikimu vykdyti darbo eigas, paleidžiamas `pull_request` įvykiu — kiekvieną vykdymą reikės patvirtinti rankiniu būdu.", + "repo.pulls.already_merged": "Sujungti nepavyko: ši traukimo užklausa jau buvo sujungta.", + "repo.pulls.merged_title_desc": { + "one": "sujungtas %[1]d įsipareigojimas iš %[2]s į%[3]s %[4]s", + "few": "sujungti %[1]d įsipareigojimai iš %[2]s į%[3]s %[4]s", + "other": "sujungta %[1]d įsipareigojimų iš %[2]s į%[3]s %[4]s" + }, + "incorrect_root_url": "Ši „Forgejo“ instancija sukonfigūruota veikti adresu „%s“. Šiuo metu žiūrite „Forgejo“ per kitą URL adresą, todėl kai kurios programos dalys gali veikti netinkamai. Kanoninį URL adresą „Forgejo“ administratoriai nustato naudodami `ROOT_URL` parametrą `app.ini` faile.", + "themes.names.forgejo-light": "Forgejo šviesi tema", + "themes.names.forgejo-dark": "Forgejo tamsi tema", + "admin.config.moderation_config": "Moderavimo konfigūracija", + "moderation.report_abuse": "Pranešti apie piktnaudžiavimą", + "moderation.report_content": "Pranešti apie turinį", + "moderation.report_abuse_form.header": "Pranešti administratoriui apie piktnaudžiavimą", + "moderation.report_abuse_form.details": "Ši forma skirta pranešti apie naudotojus, kurie kuria brukalo profilius, saugyklas, problemas, komentarus arba elgiasi netinkamai.", + "moderation.report_abuse_form.invalid": "Neteisingi argumentai", + "moderation.report_abuse_form.already_reported": "Jūs jau pranešėte apie šį turinį", + "moderation.abuse_category": "Kategorija", + "moderation.abuse_category.placeholder": "Pasirinkite kategoriją", + "moderation.abuse_category.spam": "Brukalas", + "moderation.abuse_category.malware": "Kenkėjiška programinė įranga", + "moderation.abuse_category.illegal_content": "Neteisėtas turinys", + "moderation.abuse_category.other_violations": "Kiti platformos taisyklių pažeidimai", + "moderation.report_remarks": "Pastabos", + "moderation.report_remarks.placeholder": "Prašome pateikti daugiau informacijos apie piktnaudžiavimą, apie kurį pranešate.", + "moderation.submit_report": "Pateikti pranešimą", + "moderation.reporting_failed": "Nepavyko pateikti naujo pranešimo apie piktnaudžiavimą: %v", + "moderation.reported_thank_you": "Dėkojame už jūsų pranešimą. Administracija buvo apie jį informuota.", + "repo.form.cannot_create": "Visos erdvės, kuriose galite kurti saugyklas, pasiekė saugyklų limitą.", + "repo.issue_indexer.title": "Problemų indeksuotojas", + "editor.textarea.tab_hint": "Eilutė jau įtraukta. Paspauskite Tab dar kartą arba Escape, kad išeitumėte iš redaktoriaus.", + "editor.textarea.shift_tab_hint": "Ši eilutė neturi įtraukos. Paspauskite Shift + Tab dar kartą arba Escape, kad išeitumėte iš redaktoriaus.", + "admin.dashboard.cleanup_offline_runners": "Išvalyti neprisijungusius vykdytojus", + "settings.visibility.description": "Profilio matomumas turi įtakos kitų galimybei pasiekti jūsų ne privačias saugyklas. Sužinokite daugiau.", + "avatar.constraints_hint": "Pasirinktinis avataras negali viršyti %[1]s dydžio arba būti didesnis nei %[2]dx%[3]d pikselių" } diff --git a/options/locale_next/locale_lv-LV.json b/options/locale_next/locale_lv-LV.json index 066ecfaea4..dd8dfe5774 100644 --- a/options/locale_next/locale_lv-LV.json +++ b/options/locale_next/locale_lv-LV.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Ceļš", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Shēma", + "admin.config.db.user": "Lietotājvārds", + "admin.config.db.name": "Nosaukums", + "admin.config.db.host": "Resursdators", + "admin.config.db.type": "Veids", + "admin.config.db.header": "Datubāzes konfigurācija", + "admin.config.mailer.user": "Lietotājs", + "admin.config.mailer.smtp.port": "SMTP ports", + "admin.config.mailer.smtp.addr": "SMTP saimniekdators", + "admin.config.mailer.enable_helo": "Iespējot HELO", + "admin.config.mailer.protocol": "Protokols", + "admin.config.mailer.use_dummy": "Tukšs", + "admin.config.mailer.sendmail.timeout": "Sendmail noildze", + "admin.config.mailer.sendmail.args": "Papildu Sendmail argumenti", + "admin.config.mailer.sendmail.path": "Sendmail ceļš", + "admin.config.mailer.sendmail.use": "Izmantot Sendmail", + "admin.config.mailer.name": "Nosaukums", + "admin.config.mailer.enabled": "Iespējota", + "admin.config.mailer.header": "Pasta sūtītāja konfigurācija", + "admin.config.git.gc_timeout": "GC darbības noildze", + "admin.config.git.pull_timeout": "Atgādāšanas darbības noildze", + "admin.config.git.clone_timeout": "Klonēšanas darbības noildze", + "admin.config.git.mirror_timeout": "Spoguļglabātavas atjaunināšanas noildze", + "admin.config.git.migrate_timeout": "Pārcelšanas noildze", + "admin.config.git.gc_args": "GC argumenti", + "admin.config.git.diff.max_files": "Lielākais parādāmo salīdzināmo datņu skaits", + "admin.config.git.diff.max_line_characters": "Lielākais rindas salīdzināmo rakstzīmju skaits", + "admin.config.git.diff.max_lines": "Lielākais salīdzināmo rindu skaits datnē", + "admin.config.git.disable_diff_highlight": "Atspējot salīdzināšanas sintakses iekrāsošanu", + "admin.config.git.version": "Git versija", + "admin.config.git.header": "Git konfigurācija", + "admin.config.ssh.minimum_key_sizes": "Mazākie pieļaujamie atslēgu lielumi", + "admin.config.ssh.minimum_key_size_check": "Mazākā pieļaujamā atslēgas lieluma pārbaude", + "admin.config.ssh.keygen_path": "Keygen (\"ssh-keygen\") atrašanās vieta", + "admin.config.ssh.key_test_path": "Atslēgu pārbaudes ceļš", + "admin.config.ssh.root_path": "Atrašanās vieta", + "admin.config.ssh.listen_port": "Klausīšanās ports", + "admin.config.ssh.port": "Ports", + "admin.config.ssh.domain": "SSH servera domēna vārds", + "admin.config.ssh.use_builtin_server": "Izmantot iebūvēto serveri", + "admin.config.ssh.enabled": "Iespējots", + "admin.config.ssh.header": "SSH konfigurācija", + "admin.users.never_login": "Pieteikšanās nekad nav notikusi", + "admin.users.last_login": "Pēdējā pieteikšanās", + "admin.users.created": "Izveidots", + "admin.users.repos": "Glabātavas", + "admin.users.2fa": "2FA", + "admin.users.remote": "Attāls", + "admin.users.bot": "Robotprogrammatūra", + "admin.users.reserved": "Aizņemts", + "admin.users.restricted": "Ierobežots", + "admin.users.admin": "Pārvaldītājs", + "admin.users.activated": "Aktivēts", + "admin.users.full_name": "Pilns vārds", + "admin.users.name": "Lietotājvārds", + "admin.packages.published": "Laista klajā", + "admin.packages.size": "Izmērs", + "admin.packages.repository": "Glabātava", + "admin.packages.type": "Veids", + "admin.packages.version": "Versija", + "admin.packages.name": "Nosaukums", + "admin.packages.creator": "Izveidotājs", + "admin.packages.owner": "Īpašnieks", + "admin.packages.unreferenced_size": "Lielums bez atsauces: %s", + "admin.packages.total_size": "Kopējais lielums: %s", + "admin.repos.lfs_size": "LFS lielums", + "admin.repos.size": "Izmērs", + "admin.repos.issues": "Pieteikumi", + "admin.repos.name": "Nosaukums", + "admin.repos.owner": "Īpašnieks", + "admin.orgs.new_orga": "Jauna apvienība", + "admin.orgs.members": "Dalībnieki", + "admin.orgs.teams": "Komandas", + "admin.orgs.name": "Nosaukums", + "admin.dashboard.rebuild_issue_indexer": "Pārbūvēt pieteikumu indeksētāju", + "admin.dashboard.start_schedule_tasks": "Uzsākt paredzētos darbību uzdevumus", + "admin.dashboard.cancel_abandoned_jobs": "Atcelt pamestus darbību darbus", + "admin.dashboard.stop_endless_tasks": "Apturēt bezgalīgus darbību uzdevumus", + "admin.dashboard.stop_zombie_tasks": "Apturēt darbību zombijuzdevumus", + "admin.dashboard.gc_lfs": "Veikt atkritumu uzkopšanas darbus LFS meta objektiem", + "admin.dashboard.delete_old_system_notices": "Dzēst vecos sistēmas paziņojumus no datubāzes", + "admin.dashboard.update_checker": "Atjauninājumu pārbaudītājs", + "admin.dashboard.cleanup_actions": "Notīrīt darbību izbeigušos žurnālus un artefaktus", + "admin.dashboard.cleanup_packages": "Notīrīt novecojušās pakotnes", + "admin.dashboard.cleanup_hook_task_table": "Iztīrīt tabulu hook_task", + "admin.dashboard.sync_external_users": "Sinhronizēt ārējo lietotāju datus", + "admin.dashboard.reinit_missing_repos": "Atkārtoti sāknēt visas trūkstošās Git glabātavas, par kurām ir ieraksti", + "admin.dashboard.resync_all_hooks": "Atkārtoti sinhronizēt visu glabātavau Git aizķeres (`pre-receive`, `update`, `post-receive`, `proc-receive`, …)", + "admin.dashboard.resync_all_sshprincipals": "Atjaunināt datni \".ssh/authorized_principals\" ar Forgejo SSH identitātēm.", + "admin.dashboard.resync_all_sshkeys": "Atjaunināt datni \".ssh/authorized_keys\" ar Forgejo SSH atslēgām.", + "admin.dashboard.git_gc_repos": "Veikt drazu savākšanu visās glabātavās", + "admin.dashboard.update_migration_poster_id": "Atjaunināt pārcelšanas ierosinātāja identifikatorus", + "admin.dashboard.deleted_branches_cleanup": "Notīrīt izdzēstos zarus", + "admin.dashboard.archive_cleanup": "Izdzēst vecos glabātavu arhīvus", + "admin.dashboard.check_repo_stats": "Pārbaudīt visu glabātavas apkopojumu", + "admin.dashboard.repo_health_check": "Pārbaudīt visu glabātavu darbspēju", + "admin.dashboard.update_mirrors": "Atjaunināt spoguļglabātavas", + "admin.dashboard.sync_repo_tags": "Datubāzē sinhronizēt birkas no Git datiem", + "admin.dashboard.sync_repo_branches": "Sinhronizēšana datubāzēs izlaida zarus no Git datiem", + "admin.dashboard.delete_generated_repository_avatars": "Izdzēst izveidotos glabātavu attēlus", + "admin.dashboard.sync_tag.started": "Uzsākta birku sinhronizēšana", + "admin.dashboard.sync_branch.started": "Uzsākta zaru sinhronizēšana", + "admin.dashboard.delete_old_actions.started": "Uzsākta visu novecojušo darbību izdzēšana no datubāzes.", + "admin.dashboard.delete_missing_repos.started": "Uzsākts uzdevums visu glabātavu, kurām trūkst Git datņu, izdzēšanai.", + "admin.dashboard.delete_repo_archives.started": "Visu glabātavas arhīvu izdzēšanas uzdevums ir uzsākts.", + "admin.dashboard.delete_inactive_accounts.started": "Ir uzsākts visu neaktivēto kontu izdzēšanas uzdevums.", + "admin.dashboard.cron.finished": "Cron: %[1]s pabeigts", + "admin.dashboard.cron.error": "Cron kļūda: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s atcelts: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Uzsākts Cron: %[1]s", + "admin.dashboard.task.unknown": "Nezināms uzdevums: %[1]s", + "admin.dashboard.task.finished": "Uzdevums: %[1]s, ko iniciēja %[2]s ir izpildīts", + "admin.dashboard.task.error": "Kļūda uzdevuma izpildē: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Uzdevums: %[1]s atcelts: %[3]s", + "admin.dashboard.task.process": "Uzdevums: %[1]s", + "admin.dashboard.task.started": "Uzsākts uzdevums: %[1]s", + "admin.dashboard.operation_run": "Palaist", + "admin.dashboard.operation_switch": "Pārslēgt", + "admin.dashboard.operation_name": "Darbības nosaukums", + "admin.dashboard.system_status": "Sistēmas stāvoklis", + "admin.dashboard.operations": "Uzturēšanas darbības", + "admin.dashboard.statistic": "Kopsavilkums", + "admin.dashboard.new_version_hint": "Ir pieejama Forgejo %s, pašlaik darbojas %s. Vairāk informācijas ir atrodama emuārā.", "admin.monitor.queue.settings.remove_all_items.success": "Visi rindsaraksta vienumi tika noņemti.", "admin.monitor.queue.settings.remove_all_items": "Noņemt visus", "admin.monitor.queue.settings.changed": "Iestatījumi atjaunināti", diff --git a/options/locale_next/locale_ml-IN.json b/options/locale_next/locale_ml-IN.json index c960db3be9..76f174ecd1 100644 --- a/options/locale_next/locale_ml-IN.json +++ b/options/locale_next/locale_ml-IN.json @@ -1,4 +1,5 @@ { + "admin.repos.issues": "ഇഷ്യൂകള്‍", "migrate.items.label": "മൈഗ്രേഷൻ ഇനങ്ങൾ", "migrate.items.wiki": "വിക്കി", "migrate.items.milestones": "നാഴികക്കല്ലുകള്‍", diff --git a/options/locale_next/locale_nb_NO.json b/options/locale_next/locale_nb_NO.json index 1cc4caa13c..e00f3678a1 100644 --- a/options/locale_next/locale_nb_NO.json +++ b/options/locale_next/locale_nb_NO.json @@ -129,7 +129,7 @@ "repo.issues.filter_mention.hint": "Filtrer etter nevnt bruker", "repo.issues.filter_modified.hint": "Filtrer etter sist endret dato", "repo.pulls.poster_manage_approval": "Endre godkjenning", - "repo.pulls.poster_requires_approval": "Noen workflow venter på å blir anmeldt.", + "repo.pulls.poster_requires_approval": "Noen arbeidsflyter venter på å bli vurdert.", "repo.pulls.poster_requires_approval.tooltip": "Skaperen av denne pull requesten er ikke verifisert til å kjøre workflow som blei kjørt av en pull request skapt i fra en forket repositorie eller med AGit. Workflowene som blei kjørt av `pull_request` event vil ikke kjøre inntil de blir godkjent.", "repo.pulls.poster_is_trusted": "Skaperen av denne pull requesten er alltid troverdige til å kjøre workflow-er.", "repo.pulls.poster_is_trusted.tooltip": "Skaperen av denne pull requesten har blitt eksplisitt troverdig til å kjøre workflow-er kjørt av `pull_request` event-er.", diff --git a/options/locale_next/locale_nds.json b/options/locale_next/locale_nds.json index 15d3326530..2c86e9ff4c 100644 --- a/options/locale_next/locale_nds.json +++ b/options/locale_next/locale_nds.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Padd", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Schema", + "admin.config.db.user": "Brukernaam", + "admin.config.db.name": "Naam", + "admin.config.db.host": "Host", + "admin.config.db.type": "Aard", + "admin.config.db.header": "Datenbank-Inrichten", + "admin.config.mailer.user": "Bruker", + "admin.config.mailer.smtp.port": "SMTP-Poort", + "admin.config.mailer.smtp.addr": "SMTP-Host", + "admin.config.mailer.enable_helo": "HELO anknipsen", + "admin.config.mailer.protocol": "Protokoll", + "admin.config.mailer.use_dummy": "Muster", + "admin.config.mailer.sendmail.timeout": "Sendmail-Tied-Överweggahn", + "admin.config.mailer.sendmail.args": "Wiedere Argumenten för Sendmail", + "admin.config.mailer.sendmail.path": "Sendmail-Padd", + "admin.config.mailer.sendmail.use": "Sendmail bruken", + "admin.config.mailer.name": "Naam", + "admin.config.mailer.enabled": "Anknipst", + "admin.config.mailer.header": "E-Mailer-Inrichten", + "admin.config.git.gc_timeout": "GC-Tied-Överweggahn", + "admin.config.git.pull_timeout": "Haal-Tied-Överweggahn", + "admin.config.git.clone_timeout": "Klonen-Tied-Överweggahn", + "admin.config.git.mirror_timeout": "Spegel-Vernejens-Tied-Överweggahn", + "admin.config.git.migrate_timeout": "Umtreck-Tied-Överweggahn", + "admin.config.git.gc_args": "GC-Argumenten", + "admin.config.git.diff.max_files": "Hoogste Tahl vun Unnerscheeds-Dateien wiest", + "admin.config.git.diff.max_line_characters": "Hoogste Unnerscheeds-Bookstavens pro Rieg", + "admin.config.git.diff.max_lines": "Hoogste Unnerscheeds-Riegen pro Datei", + "admin.config.git.disable_diff_highlight": "Syntax-Vörheven im Unnerscheed utknipsen", + "admin.config.git.version": "Git-Versioon", + "admin.config.git.header": "Git-Inrichten", + "admin.config.ssh.minimum_key_sizes": "Minnste Slötelgröten", + "admin.config.ssh.minimum_key_size_check": "Minnste Slötelgrött prüfen", + "admin.config.ssh.keygen_path": "Slötelmakens-Padd (»ssh-keygen«)", + "admin.config.ssh.key_test_path": "Slöteltestpadd", + "admin.config.ssh.root_path": "Ruutpadd", + "admin.config.ssh.listen_port": "Tohören-Poort", + "admin.config.ssh.port": "Poort", + "admin.config.ssh.domain": "SSH-Server-Domään", + "admin.config.ssh.use_builtin_server": "Inbaut Server bruken", + "admin.config.ssh.enabled": "Anknipst", + "admin.config.ssh.header": "SSH-Inrichten", + "admin.users.never_login": "Nie anmellt", + "admin.users.last_login": "Tolest anmellt", + "admin.users.created": "Maakt", + "admin.users.repos": "Repos", + "admin.users.2fa": "2FA", + "admin.users.remote": "Frömd", + "admin.users.bot": "Bot", + "admin.users.reserved": "Vörbehollen", + "admin.users.restricted": "Begrenzt", + "admin.users.admin": "Chef", + "admin.users.activated": "Aktiveert", + "admin.users.full_name": "Kumpleter Naam", + "admin.users.name": "Brukernaam", + "admin.packages.published": "Publizeert", + "admin.packages.size": "Grött", + "admin.packages.repository": "Repositorium", + "admin.packages.type": "Aard", + "admin.packages.version": "Versioon", + "admin.packages.name": "Naam", + "admin.packages.creator": "Maker", + "admin.packages.owner": "Eegner", + "admin.packages.unreferenced_size": "Unbenöömt Grött: %s", + "admin.packages.total_size": "Grött all tosamen: %s", + "admin.repos.lfs_size": "LFS-Grött", + "admin.repos.size": "Grött", + "admin.repos.issues": "Gefallens", + "admin.repos.name": "Naam", + "admin.repos.owner": "Eegner", + "admin.orgs.new_orga": "Neje Vereenigung", + "admin.orgs.members": "Liddmaten", + "admin.orgs.teams": "Klottjen", + "admin.orgs.name": "Naam", + "admin.dashboard.rebuild_issue_indexer": "Gefall-Indizerer neei bauen", + "admin.dashboard.start_schedule_tasks": "Aktioonen-Upgaven mit Tiedplaan begünnen", + "admin.dashboard.cancel_abandoned_jobs": "Verlaten Aktioonen-Upgaven ofbreken", + "admin.dashboard.stop_endless_tasks": "Aktioonen-Upgaven sünner Enn anhollen", + "admin.dashboard.stop_zombie_tasks": "Spöök-Aktioonen-Upgaven anhollen", + "admin.dashboard.gc_lfs": "In LFS-Meta-Objekten de Müll avhalen", + "admin.dashboard.delete_old_system_notices": "All ollen Systeemnarichten ut de Datenbank lösken", + "admin.dashboard.update_checker": "Vernejens-Sööker", + "admin.dashboard.cleanup_actions": "Avlopen Utgaven un Objekten vun Aktioonen uprümen", + "admin.dashboard.cleanup_packages": "Avlopen Paketen uprümen", + "admin.dashboard.cleanup_hook_task_table": "hook_task-Tabell uprümen", + "admin.dashboard.sync_external_users": "Frömde Brukerdaten vernejen", + "admin.dashboard.reinit_missing_repos": "All fehlend Git-Repositoriums neei inrichten, för wat dat Uptekens gifft", + "admin.dashboard.resync_all_hooks": "De Git-Hakens in all Repositoriums weer vernejen (»pre-receive«, »update«, »post-receive«, »proc-receive«, …)", + "admin.dashboard.resync_all_sshprincipals": "De ».ssh/authorized_principals«-Datei mit de SSH-Höövdmannen vun Forgejo vernejen.", + "admin.dashboard.resync_all_sshkeys": "De ».ssh/authorized_keys«-Datei mit de SSH-Slötels vun Forgejo vernejen.", + "admin.dashboard.git_gc_repos": "Up all Repositoriums de Müll avhalen", + "admin.dashboard.update_migration_poster_id": "Umtreck-Autor-IDs vernejen", + "admin.dashboard.deleted_branches_cleanup": "Lösket Twiegen uprümen", + "admin.dashboard.archive_cleanup": "Olle Repositoriums-Archiven lösken", + "admin.dashboard.check_repo_stats": "De Statistiken vun all Repositoriums överprüfen", + "admin.dashboard.repo_health_check": "Gesundheids-Överprüfen för all Repositoriums", + "admin.dashboard.update_mirrors": "Spegels vernejen", + "admin.dashboard.sync_repo_tags": "Markens vun Git-Daten to de Datenbank spegeln", + "admin.dashboard.sync_repo_branches": "Fehlend Twiegen vun Git-Daten to de Datenbank spegeln", + "admin.dashboard.delete_generated_repository_avatars": "Maakte Repositoriums-Kontobillers lösken", + "admin.dashboard.sync_tag.started": "Mark-Vernejen begunnen", + "admin.dashboard.sync_branch.started": "Twieg-Vernejen begunnen", + "admin.dashboard.delete_old_actions.started": "Hett begunnen, all olles Doon ut de Datenbank to lösken.", + "admin.dashboard.delete_missing_repos.started": "Upgaav, um all Repositoriums sünner Git-Dateien to lösken, begunnen.", + "admin.dashboard.delete_repo_archives.started": "Upgaav, um all Repositoriums-Archiven to lösken, begunnen.", + "admin.dashboard.delete_inactive_accounts.started": "Upgaav, um all nich aktiveerten Konten to lösken, begunnen.", + "admin.dashboard.cron.finished": "Tiedplaan: %[1]s is daan worden", + "admin.dashboard.cron.error": "Fehler im Tiedplaan: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Tiedplaan: %[1]s ofbroken: %[3]s", + "admin.dashboard.cron.process": "Tiedplaan: %[1]s", + "admin.dashboard.cron.started": "Hett Tiedplaan begunnen: %[1]s", + "admin.dashboard.task.unknown": "Unbekannte Upgaav: %[1]s", + "admin.dashboard.task.finished": "Upgaav: %[1]s vun %[2]s begunnen is daan worden", + "admin.dashboard.task.error": "Fehler in Upgaav: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Upgaav: %[1]s ofbroken: %[3]s", + "admin.dashboard.task.process": "Upgaav: %[1]s", + "admin.dashboard.task.started": "Hett Upgaav begunnen: %[1]s", + "admin.dashboard.operation_run": "Utföhren", + "admin.dashboard.operation_switch": "Wesseln", + "admin.dashboard.operation_name": "Aktioons-Naam", + "admin.dashboard.system_status": "Systeem-Tostand", + "admin.dashboard.operations": "Plegens-Aktioonen", + "admin.dashboard.statistic": "Tosamenfaten", + "admin.dashboard.new_version_hint": "Forgejo %s is nu verföögbaar, du hest %s. Kiek de Blog för mehr Informatioonen an.", "admin.monitor.queue.settings.remove_all_items.success": "All Dingen in de Slang sünd wegdaan worden.", "admin.monitor.queue.settings.remove_all_items": "All wegdoon", "admin.monitor.queue.settings.changed": "Instellens verneeit", @@ -751,5 +877,43 @@ "repo.files.caption": "Repositoriums-Dateien (lestes Kommitteren toeerst)", "repo.files.filename": "Dateinaam", "repo.files.last_commit_message": "Leste Kommitterens-Naricht", - "repo.files.last_commit_date": "Lestes Kommitterens-Datum" + "repo.files.last_commit_date": "Lestes Kommitterens-Datum", + "actions.runs.delete.error_could_not_load_run": "Kunn de Utföhren tum Lösken nich laden.", + "actions.runs.delete.error_could_not_delete_run": "Kunn de Utföhren nich lösken.", + "actions.runs.delete.button": "Utföhren lösken", + "actions.runs.delete.error": "Kunn de Warkwies-Utföhren nich lösken.", + "actions.runs.delete.confirm_action": "Willst du deese Warkwies-Utföhren würrelk lösken?", + "settings.authorized_integrations": "Tolaten Integratioonen", + "settings.manage_authorized_integrations": "Tolaten Integratioonen", + "settings.authorized_integration.desc": "Tolaten Integratioonen verlöven Forgejo, unnerschreven JWTs to kriegen, hör Angaven tegen inricht Regeln to överprüfen, un hör to verlöven, up de APIs vun Forgejo totogriepen.", + "settings.authorized_integration.ui.generic": "Allgemeenes JWT", + "settings.authorized_integration.ui.forgejo_actions_local": "Forgejo-Aktioonen (stedenwies)", + "settings.authorized_integration.none": "Upstünds keene tolaten Integratioonen inricht.", + "settings.authorized_integration.field.name": "Naam", + "settings.authorized_integration.field.description": "Beschrieven", + "settings.authorized_integration.field.description.placeholder": "Tum Publizeren vun Paketen bruukt wenn …", + "settings.authorized_integration.field.audience": "Tohörer (Angaav aud)", + "settings.authorized_integration.field.issuer": "Utgever (Angaav iss)", + "settings.authorized_integration.field.claim_rules": "Angaav-Regeln as JSON", + "settings.authorized_integration.claims.generic": "Regeln för allgemeene JWT", + "settings.authorized_integration.perms.title": "Verlöövt Künnen", + "settings.authorized_integration.copy_audience": "Tohörer to de Tüskenavlaag koperen", + "repo.pulls.status_checks_skipped": "Översprungen", + "repo.packages.visibility_warning": "Deeses Repositorium is privaat, aver verknüppt Paketen sünd publik (Eegner %s is publik).", + "settings.authorized_integration.edit": "Bewarken", + "settings.authorized_integration.edit_page_title": "Tolaten Integratioon %s", + "settings.authorized_integration.create_page_title": "Tolaten Integratioon maken", + "settings.authorized_integration.save": "Tolaten Integratioon sekern", + "settings.authorized_integration.create": "Tolaten Integratioon maken", + "settings.authorized_integration.create_success": "Tolaten Integratioon maakt: %s", + "settings.authorized_integration.name.required": "Een Naam för de tolaten Integratioon is nödig.", + "settings.authorized_integration.issuer.invalid": "Utgever-Nakieken fehlslagen: %s", + "settings.authorized_integration.claim_rules.invalid": "Angaav-Regeln-Nakieken fehlslagen: %s", + "settings.authorized_integration.specified_repos_none": "Tolaten Integratioonen mit angeven Repositoriums mutten tominnst een Repositorium hebben.", + "settings.authorized_integration.specified_repos_and_public_only": "Tolaten Integratioonen mit angeven Repositoriums könen nich tosamen mit de blots-publik-Rebeet bruukt worden.", + "settings.authorized_integration.specified_repos_and_invalid_scope": "Tolaten Integratioonen mit angeven Repositoriums könen blots mit de Rebeeten »read:issue«, »write:issue«, »read:repository« un »write:repository« bruukt worden.", + "settings.authorized_integration.add": "Tolaten Integratioon hentofögen", + "settings.authorized_integration.delete.header": "Tolaten Integratioon lösken", + "settings.authorized_integration.deleted": "De tolaten Integratioon is lösket worden.", + "settings.authorized_integration.delete.body": "Wenn du eene tolaten Integratioon löskest, hett de verbunnen Anwennen keenen Togriep up dien Konto mehr. Dat is för all Tieden un kann nich torüggnohmen worden. Wenn du eene neje tolaten Integratioon maakst, word se nich de sülve Tohörer-Angaav (aud) hebben. Wiedermaken?" } diff --git a/options/locale_next/locale_nl-NL.json b/options/locale_next/locale_nl-NL.json index dc49ebdccb..0cf5741731 100644 --- a/options/locale_next/locale_nl-NL.json +++ b/options/locale_next/locale_nl-NL.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Pad", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Schema", + "admin.config.db.user": "Gebruikersnaam", + "admin.config.db.name": "Naam", + "admin.config.db.host": "Host", + "admin.config.db.type": "Type", + "admin.config.db.header": "Databaseconfiguratie", + "admin.config.mailer.user": "Gebruiker", + "admin.config.mailer.smtp.port": "SMTP poort", + "admin.config.mailer.smtp.addr": "SMTP-adres", + "admin.config.mailer.enable_helo": "HELO inschakelen", + "admin.config.mailer.protocol": "Protocol", + "admin.config.mailer.use_dummy": "Dummy", + "admin.config.mailer.sendmail.timeout": "Sendmail time-out", + "admin.config.mailer.sendmail.args": "Extra argumenten voor Sendmail", + "admin.config.mailer.sendmail.path": "Sendmail pad", + "admin.config.mailer.sendmail.use": "Gebruik Sendmail", + "admin.config.mailer.name": "Naam", + "admin.config.mailer.enabled": "Ingeschakeld", + "admin.config.mailer.header": "Mailer configuratie", + "admin.config.git.gc_timeout": "GC operatie timeout", + "admin.config.git.pull_timeout": "Pull operatie timeout", + "admin.config.git.clone_timeout": "Kloon operatie timeout", + "admin.config.git.mirror_timeout": "Time-out mirror update", + "admin.config.git.migrate_timeout": "Migratie time-out", + "admin.config.git.gc_args": "GC-argumenten", + "admin.config.git.diff.max_files": "Max. getoonde diff-bestanden", + "admin.config.git.diff.max_line_characters": "Max diff tekens per regel", + "admin.config.git.diff.max_lines": "Max diff regels per bestand", + "admin.config.git.disable_diff_highlight": "Diff syntax highlighting uitschakelen", + "admin.config.git.version": "Git versie", + "admin.config.git.header": "Git configuratie", + "admin.config.ssh.minimum_key_sizes": "Minimale key-lengtes", + "admin.config.ssh.minimum_key_size_check": "Controleer minimale key-lengte", + "admin.config.ssh.keygen_path": "Pad van keygen (\"ssh-keygen\")", + "admin.config.ssh.key_test_path": "Pad voor key-tests", + "admin.config.ssh.root_path": "Root-pad", + "admin.config.ssh.listen_port": "Luisterpoort", + "admin.config.ssh.port": "Poort", + "admin.config.ssh.domain": "SSH-server domein", + "admin.config.ssh.use_builtin_server": "Gebruik de ingebouwde server", + "admin.config.ssh.enabled": "Ingeschakeld", + "admin.config.ssh.header": "SSH-configuratie", + "admin.users.never_login": "Nooit ingelogd", + "admin.users.last_login": "Laatste keer ingelogd", + "admin.users.created": "Aangemaakt", + "admin.users.repos": "Repos", + "admin.users.2fa": "2FA", + "admin.users.remote": "Externe", + "admin.users.bot": "Bot", + "admin.users.reserved": "Gereserveerd", + "admin.users.restricted": "Beperkt", + "admin.users.admin": "Beheerder", + "admin.users.activated": "Geactiveerd", + "admin.users.full_name": "Volledige naam", + "admin.users.name": "Gebruikersnaam", + "admin.packages.published": "Gepubliceerd", + "admin.packages.size": "Grootte", + "admin.packages.repository": "Opslagplaats", + "admin.packages.type": "Type", + "admin.packages.version": "Versie", + "admin.packages.name": "Naam", + "admin.packages.creator": "Maker", + "admin.packages.owner": "Eigenaar", + "admin.packages.unreferenced_size": "Grootte waarnaar niet wordt verwezen: %s", + "admin.packages.total_size": "Totale grootte: %s", + "admin.repos.lfs_size": "LFS grootte", + "admin.repos.size": "Grootte", + "admin.repos.issues": "Issues", + "admin.repos.name": "Naam", + "admin.repos.owner": "Eigenaar", + "admin.orgs.new_orga": "Nieuwe organisatie", + "admin.orgs.members": "Leden", + "admin.orgs.teams": "Teams", + "admin.orgs.name": "Naam", + "admin.dashboard.rebuild_issue_indexer": "Herbouw issue indexer", + "admin.dashboard.start_schedule_tasks": "Start geplande taken", + "admin.dashboard.cancel_abandoned_jobs": "Verlaten jobs annuleren", + "admin.dashboard.stop_endless_tasks": "Eindeloze taken stoppen", + "admin.dashboard.stop_zombie_tasks": "Zombietaken stoppen", + "admin.dashboard.gc_lfs": "LFS meta-objecten afval opruimen", + "admin.dashboard.delete_old_system_notices": "Verwijder alle oude systeemmededelingen uit de database", + "admin.dashboard.update_checker": "Update checker", + "admin.dashboard.cleanup_actions": "Verlopen logs en artefacten van actions opschonen", + "admin.dashboard.cleanup_packages": "Verlopen pakketten opschonen", + "admin.dashboard.cleanup_hook_task_table": "Tabel hook_task opschonen", + "admin.dashboard.sync_external_users": "Externe gebruikersgegevens synchroniseren", + "admin.dashboard.reinit_missing_repos": "Herinitialiseer alle ontbrekende Git repositories waarvoor records bestaan", + "admin.dashboard.resync_all_hooks": "Git hooks van alle repositories opnieuw synchroniseren (pre-receive, update en, post-receive hooks van alle repositories, proc-receive, ...)", + "admin.dashboard.resync_all_sshprincipals": "Update het \".ssh/authorized_principals\" bestand met Forgejo SSH verantwoordelijken.", + "admin.dashboard.resync_all_sshkeys": "Werk de \".ssh/authorized_keys\" bestand bij met Forgejo SSH sleutels.", + "admin.dashboard.git_gc_repos": "Voer garbage collectie uit voor alle repositories", + "admin.dashboard.update_migration_poster_id": "Werk migratie-poster IDs bij", + "admin.dashboard.deleted_branches_cleanup": "Verwijderde branches opschonen", + "admin.dashboard.archive_cleanup": "Verwijder oude repositories archieven", + "admin.dashboard.check_repo_stats": "Bekijk alle repository statistieken", + "admin.dashboard.repo_health_check": "Controleer alle repositories", + "admin.dashboard.update_mirrors": "Mirrors bijwerken", + "admin.dashboard.sync_repo_tags": "Tags synchroniseren van git data naar database", + "admin.dashboard.sync_repo_branches": "Synchroniseren gemiste branches van git data naar database", + "admin.dashboard.delete_generated_repository_avatars": "Verwijder gegenereerde repository avatars", + "admin.dashboard.sync_tag.started": "Tag synchronisatie is gestart", + "admin.dashboard.sync_branch.started": "Branch synchronisatie is gestart", + "admin.dashboard.delete_old_actions.started": "Het verwijderen van alle oude activiteiten uit de database is gestart.", + "admin.dashboard.delete_missing_repos.started": "Verwijder alle repositories die hun Git bestanden missen taak gestart.", + "admin.dashboard.delete_repo_archives.started": "Verwijder alle repositoryarchieven taak gestart.", + "admin.dashboard.delete_inactive_accounts.started": "Verwijder alle niet geactiveerde accounts taak gestart.", + "admin.dashboard.cron.finished": "Cron: %[1]s is klaar", + "admin.dashboard.cron.error": "Fout in cron: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s geannuleerd: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Gestarte cron: %[1]s", + "admin.dashboard.task.unknown": "Onbekende taak: %[1]s", + "admin.dashboard.task.finished": "Taak: %[1]s gestart door %[2]s is voltooid", + "admin.dashboard.task.error": "Fout in taak: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Taak: %[1]s geannuleerd: %[3]s", + "admin.dashboard.task.process": "Taak: %[1]s", + "admin.dashboard.task.started": "Taak gestart: %[1]s", + "admin.dashboard.operation_run": "Uitvoeren", + "admin.dashboard.operation_switch": "Omschakelen", + "admin.dashboard.operation_name": "Bewerking naam", + "admin.dashboard.system_status": "Systeemstatus", + "admin.dashboard.operations": "Onderhoudswerkzaamheden", + "admin.dashboard.statistic": "Overzicht", + "admin.dashboard.new_version_hint": "Forgejo %s is nu beschikbaar, u gebruikt versie %s. Zie de blog voor meer details.", "admin.monitor.queue.settings.remove_all_items.success": "Alle items in de wachtrij zijn verwijderd.", "admin.monitor.queue.settings.remove_all_items": "Alles verwijderen", "admin.monitor.queue.settings.changed": "Instellingen bijgewerkt", @@ -747,5 +873,9 @@ "actions.runners.uuid": "UUID", "actions.runners.list_runners.edit_column": "Aanpassen", "actions.runners.version": "Versie", - "actions.runners.list_runners.delete_button": "Verwijderen" + "actions.runners.list_runners.delete_button": "Verwijderen", + "repo.files.caption": "Bestanden in de repository (nieuwste commit bovenaan)", + "repo.files.filename": "Bestandsnaam", + "repo.files.last_commit_message": "Laatste commitbericht", + "repo.files.last_commit_date": "Datum van de laatste commit" } diff --git a/options/locale_next/locale_pl-PL.json b/options/locale_next/locale_pl-PL.json index 41e84196d8..965b937a9c 100644 --- a/options/locale_next/locale_pl-PL.json +++ b/options/locale_next/locale_pl-PL.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Ścieżka", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Schemat", + "admin.config.db.user": "Nazwa użytkownika", + "admin.config.db.name": "Nazwa", + "admin.config.db.host": "Serwer", + "admin.config.db.type": "Typ", + "admin.config.db.header": "Konfiguracja bazy danych", + "admin.config.mailer.user": "Użytkownik", + "admin.config.mailer.smtp.port": "Port SMTP", + "admin.config.mailer.smtp.addr": "Host SMTP", + "admin.config.mailer.enable_helo": "Włącz HELO", + "admin.config.mailer.protocol": "Protokół", + "admin.config.mailer.use_dummy": "Testowa", + "admin.config.mailer.sendmail.timeout": "Limit czasu Sendmail", + "admin.config.mailer.sendmail.args": "Dodatkowe argumenty Sendmail", + "admin.config.mailer.sendmail.path": "Ścieżka Sendmail", + "admin.config.mailer.sendmail.use": "Używaj Sendmail", + "admin.config.mailer.name": "Nazwa", + "admin.config.mailer.enabled": "Włączona", + "admin.config.mailer.header": "Konfiguracja Mailer", + "admin.config.git.gc_timeout": "Limit czasu operacji GC", + "admin.config.git.pull_timeout": "Limit czasu dla operacji pull", + "admin.config.git.clone_timeout": "Limit czasu operacji klonowania", + "admin.config.git.mirror_timeout": "Limit czasu aktualizacji kopii lustrzanej", + "admin.config.git.migrate_timeout": "Limit czasu migracji", + "admin.config.git.gc_args": "Argumenty GC", + "admin.config.git.diff.max_files": "Maksymalna liczba plików diff", + "admin.config.git.diff.max_line_characters": "Maksymalna liczba znaków diff na linię", + "admin.config.git.diff.max_lines": "Maksymalna liczba linii diff na plik", + "admin.config.git.disable_diff_highlight": "Wyłącz wyróżnianie składni diff", + "admin.config.git.version": "Wersja Git", + "admin.config.git.header": "Konfiguracja Git", + "admin.config.ssh.minimum_key_sizes": "Minimalne rozmiary kluczy", + "admin.config.ssh.minimum_key_size_check": "Sprawdzanie minimalnej długości klucza", + "admin.config.ssh.keygen_path": "Ścieżka do generatora ('ssh-keygen')", + "admin.config.ssh.key_test_path": "Ścieżka do klucza testowego", + "admin.config.ssh.root_path": "Ścieżka do katalogu głównego", + "admin.config.ssh.listen_port": "Port nasłuchiwania", + "admin.config.ssh.port": "Port", + "admin.config.ssh.domain": "Domena serwera SSH", + "admin.config.ssh.use_builtin_server": "Wykorzystaj wbudowany serwer", + "admin.config.ssh.enabled": "Włączone", + "admin.config.ssh.header": "Konfiguracja SSH", + "admin.users.never_login": "Nigdy nie zalogował(a) się", + "admin.users.last_login": "Ostatnie logowanie", + "admin.users.created": "Utworzony", + "admin.users.repos": "Repozytoria", + "admin.users.2fa": "2FA", + "admin.users.remote": "Zdalnie", + "admin.users.bot": "Bot", + "admin.users.reserved": "Zarezerwowane", + "admin.users.restricted": "Ograniczone", + "admin.users.admin": "Administrator", + "admin.users.activated": "Aktywny", + "admin.users.full_name": "Imię i nazwisko", + "admin.users.name": "Nazwa użytkownika", + "admin.packages.published": "Opublikowane", + "admin.packages.size": "Rozmiar", + "admin.packages.repository": "Repozytorium", + "admin.packages.type": "Typ", + "admin.packages.version": "Wersja", + "admin.packages.name": "Nazwa", + "admin.packages.creator": "Twórca", + "admin.packages.owner": "Właściciel", + "admin.packages.unreferenced_size": "Nieodniesiona wielkość: %s", + "admin.packages.total_size": "Wielkość całkowita: %s", + "admin.repos.lfs_size": "Wielkość LFS", + "admin.repos.size": "Rozmiar", + "admin.repos.issues": "Zgłoszenia", + "admin.repos.name": "Nazwa", + "admin.repos.owner": "Właściciel", + "admin.orgs.new_orga": "Nowa organizacja", + "admin.orgs.members": "Członkowie", + "admin.orgs.teams": "Zespoły", + "admin.orgs.name": "Nazwa", + "admin.dashboard.rebuild_issue_indexer": "Przebuduj indekser zgłoszeń", + "admin.dashboard.start_schedule_tasks": "Uruchomienie zaplanowanych zadań akcji", + "admin.dashboard.cancel_abandoned_jobs": "Anuluj porzucone prace akcji", + "admin.dashboard.stop_endless_tasks": "Zatrzymaj niekończące się zadania akcji", + "admin.dashboard.stop_zombie_tasks": "Zatrzymaj zadania zombi akcji", + "admin.dashboard.gc_lfs": "Wywołaj GC na metaobiektach LFS", + "admin.dashboard.delete_old_system_notices": "Usuń wszystkie stare powiadomienia systemowe z bazy danych", + "admin.dashboard.update_checker": "Sprawdzanie aktualizacji", + "admin.dashboard.cleanup_actions": "Wyczyść przedawnione logi i artefakty z akcji", + "admin.dashboard.cleanup_packages": "Wyczyść przedawnione pakiety", + "admin.dashboard.cleanup_hook_task_table": "Wyczyść tabelę hook_task", + "admin.dashboard.sync_external_users": "Synchronizuj zewnętrzne dane użytkownika", + "admin.dashboard.reinit_missing_repos": "Ponownie zainicjalizuj wszystkie brakujące repozytoria Git, dla których istnieją rekordy", + "admin.dashboard.resync_all_hooks": "Ponownie synchronizuj hooki Git we wszystkich repozytoriach (pre-receive, update, post-receive, proc-receive, …)", + "admin.dashboard.resync_all_sshprincipals": "Zaktualizuj plik \".ssh/authorized_principals\" z podmiotami SSH Forgejo.", + "admin.dashboard.resync_all_sshkeys": "Zaktualizuj plik '.ssh/authorized_keys' z kluczami SSH Forgejo.", + "admin.dashboard.git_gc_repos": "Wykonaj zbieranie śmieci ze wszystkich repozytoriów", + "admin.dashboard.update_migration_poster_id": "Aktualizuj ID autora migracji", + "admin.dashboard.deleted_branches_cleanup": "Wyczyść usunięte galęzie", + "admin.dashboard.archive_cleanup": "Usuń stare archiwa repozytoriów", + "admin.dashboard.check_repo_stats": "Sprawdź statystyki wszystkich repozytoriów", + "admin.dashboard.repo_health_check": "Sprawdź stan wszystkich repozytoriów", + "admin.dashboard.update_mirrors": "Aktualizuj kopie lustrzane", + "admin.dashboard.sync_repo_tags": "Synchronizuj tagi z danych Git do bazy danych", + "admin.dashboard.sync_repo_branches": "Synchronizuj pominięte gałęzie z danych Git do bazy danych", + "admin.dashboard.delete_generated_repository_avatars": "Usuń wygenerowane awatary repozytoriów", + "admin.dashboard.sync_tag.started": "Synchronizacja tagu rozpoczęta", + "admin.dashboard.sync_branch.started": "Synchronizacja gałęzi rozpoczęta", + "admin.dashboard.delete_old_actions.started": "Usuwanie wszystkich starych akcji z bazy danych rozpoczęte.", + "admin.dashboard.delete_missing_repos.started": "Zadanie usuwania repozytoriów, które nie mają plików Gita, zostało rozpoczęte.", + "admin.dashboard.delete_repo_archives.started": "Zadanie usuwania archiwów repozytoriów zostało rozpoczęte.", + "admin.dashboard.delete_inactive_accounts.started": "Zadanie usuwania nieaktywowanych kont zostało rozpoczęte.", + "admin.dashboard.cron.finished": "Cron: %[1]s zakończony", + "admin.dashboard.cron.error": "Błąd w Cronie: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s anulowany: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Uruchomiono Crona: %[1]s", + "admin.dashboard.task.unknown": "Nieznane zadanie: %[1]s", + "admin.dashboard.task.finished": "Zadanie: %[1]s rozpoczęte przez %[2]s zostało ukończone", + "admin.dashboard.task.error": "Błąd w zadaniu: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Zadanie: %[1]s anulowane: %[3]s", + "admin.dashboard.task.process": "Zadanie: %[1]s", + "admin.dashboard.task.started": "Rozpoczęto zadanie: %[1]s", + "admin.dashboard.operation_run": "Uruchom", + "admin.dashboard.operation_switch": "Przełącz", + "admin.dashboard.operation_name": "Nazwa operacji", + "admin.dashboard.system_status": "Status strony", + "admin.dashboard.operations": "Operacje konserwacji", + "admin.dashboard.statistic": "Podsumowanie", + "admin.dashboard.new_version_hint": "Forgejo %s jest już dostępne, w tej chwili korzystasz z %s. Sprawdź szczegóły na blogu.", "admin.monitor.queue.settings.remove_all_items.success": "Wszystkie elementy w kolejce zostały usunięte.", "admin.monitor.queue.settings.remove_all_items": "Usuń wszystkie", "admin.monitor.queue.settings.changed": "Zaktualizowano ustawienia", @@ -90,19 +216,23 @@ "webauthn.insert_key": "Podłącz swój klucz bezpieczeństwa", "counters.n_commits": { "one": "%s commit", - "many": "%s commity" + "few": "%s commity", + "many": "" }, "counters.n_branches": { "one": "%s gałąź", - "many": "%s gałęzie" + "few": "%s gałęzie", + "many": "" }, "counters.n_tags": { "one": "%s tag", - "many": "%s tagi" + "few": "%s tagi", + "many": "" }, "counters.n_releases": { "one": "%s wydanie", - "many": "%s wydań" + "few": "%s wydań", + "many": "" }, "gpg.default_key": "Podpisano domyślnym kluczem", "gpg.error.extract_sign": "Nie udało się wyłuskać podpisu", @@ -593,5 +723,7 @@ "one": "Wybrane (%d) repozytorium", "few": "Wybrane (%d) repozytoria", "many": "Wybrane (%d) repozytoriów" - } + }, + "repo.files.filename": "Nazwa pliku", + "migrate.select.title": "Migruj repozytorium" } diff --git a/options/locale_next/locale_pt-BR.json b/options/locale_next/locale_pt-BR.json index ea5832a8e4..80501bf947 100644 --- a/options/locale_next/locale_pt-BR.json +++ b/options/locale_next/locale_pt-BR.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Caminho", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Esquema", + "admin.config.db.user": "Nome de usuário", + "admin.config.db.name": "Nome", + "admin.config.db.host": "Servidor", + "admin.config.db.type": "Tipo", + "admin.config.db.header": "Configuração do banco de dados", + "admin.config.mailer.user": "Usuário", + "admin.config.mailer.smtp.port": "Porta SMTP", + "admin.config.mailer.smtp.addr": "Host SMTP", + "admin.config.mailer.enable_helo": "Ativar HELO", + "admin.config.mailer.protocol": "Protocolo", + "admin.config.mailer.use_dummy": "Dummy", + "admin.config.mailer.sendmail.timeout": "Tempo limite do Sendmail", + "admin.config.mailer.sendmail.args": "Argumentos extras para o Sendmail", + "admin.config.mailer.sendmail.path": "Localização do Sendmail", + "admin.config.mailer.sendmail.use": "Usar o Sendmail", + "admin.config.mailer.name": "Nome", + "admin.config.mailer.enabled": "Habilitado", + "admin.config.mailer.header": "Configuração de envio de e-mails", + "admin.config.git.gc_timeout": "Tempo limite para operação de GC", + "admin.config.git.pull_timeout": "Tempo limite para operações de pull", + "admin.config.git.clone_timeout": "Tempo limite para operações de clonagem", + "admin.config.git.mirror_timeout": "Tempo limite para atualização de espelhos", + "admin.config.git.migrate_timeout": "Tempo limite de migração", + "admin.config.git.gc_args": "Argumentos do GC", + "admin.config.git.diff.max_files": "Máximo de arquivos de diff exibidos", + "admin.config.git.diff.max_line_characters": "Máximo de caracteres por linha em diffs", + "admin.config.git.diff.max_lines": "Máximo de linhas por arquivo em diffs", + "admin.config.git.disable_diff_highlight": "Desabilitar realce de sintaxe em diffs", + "admin.config.git.version": "Versão do Git", + "admin.config.git.header": "Configuração do Git", + "admin.config.ssh.minimum_key_sizes": "Tamanhos mínimos da chave", + "admin.config.ssh.minimum_key_size_check": "Verificar tamanho mínimo da chave", + "admin.config.ssh.keygen_path": "Localização do gerador de chaves (\"ssh-keygen\")", + "admin.config.ssh.key_test_path": "Localização de teste para chave", + "admin.config.ssh.root_path": "Caminho raiz", + "admin.config.ssh.listen_port": "Porta de escuta", + "admin.config.ssh.port": "Porta", + "admin.config.ssh.domain": "Domínio do servidor SSH", + "admin.config.ssh.use_builtin_server": "Usar o servidor embutido", + "admin.config.ssh.enabled": "Habilitado", + "admin.config.ssh.header": "Configuração de SSH", + "admin.users.never_login": "Nunca entrou", + "admin.users.last_login": "Último acesso", + "admin.users.created": "Criado", + "admin.users.repos": "Repositórios", + "admin.users.2fa": "2FA", + "admin.users.remote": "Remoto", + "admin.users.bot": "Robô", + "admin.users.reserved": "Reservado", + "admin.users.restricted": "Restrito", + "admin.users.admin": "Administrador", + "admin.users.activated": "Ativado", + "admin.users.full_name": "Nome completo", + "admin.users.name": "Nome de usuário", + "admin.packages.published": "Publicado", + "admin.packages.size": "Tamanho", + "admin.packages.repository": "Repositório", + "admin.packages.type": "Tipo", + "admin.packages.version": "Versão", + "admin.packages.name": "Nome", + "admin.packages.creator": "Criador", + "admin.packages.owner": "Proprietário", + "admin.packages.unreferenced_size": "Tamanho não referenciado: %s", + "admin.packages.total_size": "Tamanho total: %s", + "admin.repos.lfs_size": "Tamanho do LFS", + "admin.repos.size": "Tamanho", + "admin.repos.issues": "Issues", + "admin.repos.name": "Nome", + "admin.repos.owner": "Proprietário(a)", + "admin.orgs.new_orga": "Nova organização", + "admin.orgs.members": "Membros", + "admin.orgs.teams": "Equipes", + "admin.orgs.name": "Nome", + "admin.dashboard.rebuild_issue_indexer": "Reconstruir indexador de problemas", + "admin.dashboard.start_schedule_tasks": "Iniciar tarefas de Actions programadas", + "admin.dashboard.cancel_abandoned_jobs": "Cancelar trabalhos abandonados de Actions", + "admin.dashboard.stop_endless_tasks": "Parar tarefas de Actions intermináveis", + "admin.dashboard.stop_zombie_tasks": "Parar tarefas de Actions zumbis", + "admin.dashboard.gc_lfs": "Coletar lixos dos meta-objetos LFS", + "admin.dashboard.delete_old_system_notices": "Excluir todos os avisos de sistema antigos do banco de dados", + "admin.dashboard.update_checker": "Verificador de atualização", + "admin.dashboard.cleanup_actions": "Limpar logs expirados e artefatos de Actions", + "admin.dashboard.cleanup_packages": "Limpar pacotes expirados", + "admin.dashboard.cleanup_hook_task_table": "Limpar tabela hook_task", + "admin.dashboard.sync_external_users": "Sincronizar dados de usuário externo", + "admin.dashboard.reinit_missing_repos": "Reinicializar todos os repositórios Git perdidos cujos registros existem", + "admin.dashboard.resync_all_hooks": "Ressincronizar hooks Git de todos os repositórios (pre-receive, update, post-receive, proc-receive, …)", + "admin.dashboard.resync_all_sshprincipals": "Atualizar o arquivo \".ssh/authorized_principals\" com os principals SSH do Forgejo.", + "admin.dashboard.resync_all_sshkeys": "Atualizar o arquivo \".ssh/authorized_keys\" com as chaves SSH do Forgejo.", + "admin.dashboard.git_gc_repos": "Coleta de lixo em todos os repositórios", + "admin.dashboard.update_migration_poster_id": "Sincronizar os IDs do remetente da migração", + "admin.dashboard.deleted_branches_cleanup": "Realizar limpeza de branches apagados", + "admin.dashboard.archive_cleanup": "Apagar arquivos antigos de repositório", + "admin.dashboard.check_repo_stats": "Verificar estatísticas de todos os repositórios", + "admin.dashboard.repo_health_check": "Verificar estado de saúde de todos os repositórios", + "admin.dashboard.update_mirrors": "Atualizar espelhos", + "admin.dashboard.sync_repo_tags": "Sincronizar etiquetas do Git para o banco de dados", + "admin.dashboard.sync_repo_branches": "Sincronizar ramos perdidos do Git para o banco de dados", + "admin.dashboard.delete_generated_repository_avatars": "Excluir avatares gerados do repositório", + "admin.dashboard.sync_tag.started": "Sincronização de tags iniciada", + "admin.dashboard.sync_branch.started": "Sincronização de ramos iniciada", + "admin.dashboard.delete_old_actions.started": "A exclusão de todas as atividades antigas do banco de dados foi iniciada.", + "admin.dashboard.delete_missing_repos.started": "Foi iniciada a tarefa de excluir todos os repositórios que não têm arquivos Git.", + "admin.dashboard.delete_repo_archives.started": "A tarefa de remover todos os arquivos foi iniciada.", + "admin.dashboard.delete_inactive_accounts.started": "A tarefa de apagar todas as contas não ativadas foi iniciada.", + "admin.dashboard.cron.finished": "Cron: %[1]s terminou", + "admin.dashboard.cron.error": "Erro no Cron: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s cancelado: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Cron Iniciado: %[1]s", + "admin.dashboard.task.unknown": "Tarefa desconhecida: %[1]s", + "admin.dashboard.task.finished": "Tarefa: %[1]s iniciada por %[2]s foi finalizada", + "admin.dashboard.task.error": "Erro na Tarefa: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Tarefa: %[1]s cancelada: %[3]s", + "admin.dashboard.task.process": "Tarefa: %[1]s", + "admin.dashboard.task.started": "Tarefa Iniciada: %[1]s", + "admin.dashboard.operation_run": "Executar", + "admin.dashboard.operation_switch": "Trocar", + "admin.dashboard.operation_name": "Nome da operação", + "admin.dashboard.system_status": "Status do sistema", + "admin.dashboard.operations": "Operações de manutenção", + "admin.dashboard.statistic": "Resumo", + "admin.dashboard.new_version_hint": "Uma nova versão está disponível: %s. Versão atual: %s. Visite o blog para mais informações.", "admin.monitor.queue.settings.remove_all_items.success": "Todos os itens da fila foram removidos.", "admin.monitor.queue.settings.remove_all_items": "Remover tudo", "admin.monitor.queue.settings.changed": "Configurações atualizadas", diff --git a/options/locale_next/locale_pt-PT.json b/options/locale_next/locale_pt-PT.json index 9be71cfa06..e149a587ba 100644 --- a/options/locale_next/locale_pt-PT.json +++ b/options/locale_next/locale_pt-PT.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Localização", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Esquema", + "admin.config.db.user": "Nome de utilizador", + "admin.config.db.name": "Nome", + "admin.config.db.host": "Servidor", + "admin.config.db.type": "Tipo", + "admin.config.db.header": "Configuração da base de dados", + "admin.config.mailer.user": "Utilizador", + "admin.config.mailer.smtp.port": "Porto do SMTP", + "admin.config.mailer.smtp.addr": "Anfitrião SMTP", + "admin.config.mailer.enable_helo": "Habilitar HELO", + "admin.config.mailer.protocol": "Protocolo", + "admin.config.mailer.use_dummy": "Fictício", + "admin.config.mailer.sendmail.timeout": "Tempo limite do Sendmail", + "admin.config.mailer.sendmail.args": "Argumentos extras para o sendmail", + "admin.config.mailer.sendmail.path": "Localização do sendmail", + "admin.config.mailer.sendmail.use": "Usar o sendmail", + "admin.config.mailer.name": "Nome", + "admin.config.mailer.enabled": "Habilitado", + "admin.config.mailer.header": "Configuração de envio de email", + "admin.config.git.gc_timeout": "Prazo da operação de recolha de lixo", + "admin.config.git.pull_timeout": "Prazo da operação de puxar", + "admin.config.git.clone_timeout": "Prazo da operação de clonagem", + "admin.config.git.mirror_timeout": "Prazo para a sincronização da réplica", + "admin.config.git.migrate_timeout": "Prazo da migração", + "admin.config.git.gc_args": "Argumentos da recolha de lixo", + "admin.config.git.diff.max_files": "Número máximo de ficheiros diff a serem apresentados", + "admin.config.git.diff.max_line_characters": "Número máximos de caracteres diff por linha", + "admin.config.git.diff.max_lines": "Número máximo de linhas diff por ficheiro", + "admin.config.git.disable_diff_highlight": "Desabilitar o realce de sintaxe no diff", + "admin.config.git.version": "Versão do Git", + "admin.config.git.header": "Configuração do Git", + "admin.config.ssh.minimum_key_sizes": "Tamanhos mínimos da chave", + "admin.config.ssh.minimum_key_size_check": "Verificação de tamanho mínimo da chave", + "admin.config.ssh.keygen_path": "Localização do gerador de chaves (\"ssh-keygen\")", + "admin.config.ssh.key_test_path": "Localização do teste das chaves", + "admin.config.ssh.root_path": "Localização base", + "admin.config.ssh.listen_port": "Porto de escuta", + "admin.config.ssh.port": "Porto", + "admin.config.ssh.domain": "Domínio do servidor SSH", + "admin.config.ssh.use_builtin_server": "Usar servidor integrado", + "admin.config.ssh.enabled": "Habilitado", + "admin.config.ssh.header": "Configuração SSH", + "admin.users.never_login": "Nunca acedeu", + "admin.users.last_login": "Último acesso", + "admin.users.created": "Criada", + "admin.users.repos": "Repos.", + "admin.users.2fa": "Autenticação em dois passos", + "admin.users.remote": "Remoto", + "admin.users.bot": "Bot", + "admin.users.reserved": "Reservado", + "admin.users.restricted": "Restrita", + "admin.users.admin": "Admin.", + "admin.users.activated": "Em uso", + "admin.users.full_name": "Nome completo", + "admin.users.name": "Nome de utilizador", + "admin.packages.published": "Publicado", + "admin.packages.size": "Tamanho", + "admin.packages.repository": "Repositório", + "admin.packages.type": "Tipo", + "admin.packages.version": "Versão", + "admin.packages.name": "Nome", + "admin.packages.creator": "Criador", + "admin.packages.owner": "Proprietário", + "admin.packages.unreferenced_size": "Tamanho não referenciado: %s", + "admin.packages.total_size": "Tamanho total: %s", + "admin.repos.lfs_size": "Tamanho do LFS", + "admin.repos.size": "Tamanho", + "admin.repos.issues": "Questões", + "admin.repos.name": "Nome", + "admin.repos.owner": "Proprietário(a)", + "admin.orgs.new_orga": "Nova organização", + "admin.orgs.members": "Membros", + "admin.orgs.teams": "Equipas", + "admin.orgs.name": "Nome", + "admin.dashboard.rebuild_issue_indexer": "Reconstruir indexador de questões", + "admin.dashboard.start_schedule_tasks": "Iniciar tarefas de operações de agendamento", + "admin.dashboard.cancel_abandoned_jobs": "Cancelar trabalhos de operações abandonados", + "admin.dashboard.stop_endless_tasks": "Parar tarefas de operações intermináveis", + "admin.dashboard.stop_zombie_tasks": "Parar tarefas de operações zombies", + "admin.dashboard.gc_lfs": "Recolher lixo dos meta-elementos LFS", + "admin.dashboard.delete_old_system_notices": "Eliminar todas as notificações do sistema antigas da base de dados", + "admin.dashboard.update_checker": "Verificador de novas versões", + "admin.dashboard.cleanup_actions": "Limpar registos e artefactos expirados das operações", + "admin.dashboard.cleanup_packages": "Limpar pacotes expirados", + "admin.dashboard.cleanup_hook_task_table": "Limpar tabela hook_task", + "admin.dashboard.sync_external_users": "Sincronizar dados externos do utilizador", + "admin.dashboard.reinit_missing_repos": "Reinicializar todos os repositórios Git em falta para os quais existam registos", + "admin.dashboard.resync_all_hooks": "Voltar a sincronizar automatismos Git de todos os repositórios (pre-receive, update, post-receive, proc-receive, …)", + "admin.dashboard.resync_all_sshprincipals": "Modificar o ficheiro \".ssh/authorized_principals\" com os protagonistas SSH do Forgejo.", + "admin.dashboard.resync_all_sshkeys": "Sincronizar o ficheiro \".ssh/authorized_keys\" com as chaves SSH do Forgejo.", + "admin.dashboard.git_gc_repos": "Fazer a recolha do lixo em todos os repositórios", + "admin.dashboard.update_migration_poster_id": "Sincronizar os IDs do remetente da migração", + "admin.dashboard.deleted_branches_cleanup": "Limpar ramos eliminados", + "admin.dashboard.archive_cleanup": "Eliminar arquivos de repositórios antigos", + "admin.dashboard.check_repo_stats": "Verificar as estatísticas de todos os repositórios", + "admin.dashboard.repo_health_check": "Verificar a saúde de todos os repositórios", + "admin.dashboard.update_mirrors": "Sincronizar réplicas", + "admin.dashboard.sync_repo_tags": "Sincronizar etiquetas dos dados do Git para a base de dados", + "admin.dashboard.sync_repo_branches": "Sincronizar ramos perdidos de dados do Git para a base de dados", + "admin.dashboard.delete_generated_repository_avatars": "Eliminar avatares gerados do repositório", + "admin.dashboard.sync_tag.started": "Sincronização de etiquetas iniciada", + "admin.dashboard.sync_branch.started": "Sincronização de ramos iniciada", + "admin.dashboard.delete_old_actions.started": "Foi iniciado o processo de eliminação de todos os trabalhos antigos da base de dados.", + "admin.dashboard.delete_missing_repos.started": "Foi iniciada a tarefa de eliminação de todos os repositórios que não têm ficheiros git.", + "admin.dashboard.delete_repo_archives.started": "Foi iniciada a tarefa de eliminação de todos os repositórios arquivados.", + "admin.dashboard.delete_inactive_accounts.started": "Foi iniciada a eliminação de todas as contas que não foram habilitadas.", + "admin.dashboard.cron.finished": "Cron: %[1]s concluído", + "admin.dashboard.cron.error": "Erro no cron: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s cancelado: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Cron iniciado: %[1]s", + "admin.dashboard.task.unknown": "Tarefa desconhecida: %[1]s", + "admin.dashboard.task.finished": "Tarefa: %[1]s iniciada por %[2]s foi concluída", + "admin.dashboard.task.error": "Erro na tarefa: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Tarefa: %[1]s cancelada: %[3]s", + "admin.dashboard.task.process": "Tarefa: %[1]s", + "admin.dashboard.task.started": "Tarefa iniciada: %[1]s", + "admin.dashboard.operation_run": "Executar", + "admin.dashboard.operation_switch": "Comutar", + "admin.dashboard.operation_name": "Nome da operação", + "admin.dashboard.system_status": "Estado do sistema", + "admin.dashboard.operations": "Operações de manutenção", + "admin.dashboard.statistic": "Resumo", + "admin.dashboard.new_version_hint": "O Forgejo %s está disponível, você está a correr a versão %s. Verifique o blog para mais detalhes.", "admin.monitor.queue.settings.remove_all_items.success": "Todos os itens da fila foram removidos.", "admin.monitor.queue.settings.remove_all_items": "Remover tudo", "admin.monitor.queue.settings.changed": "Configurações modificadas", @@ -767,5 +893,9 @@ "actions.runners.version": "Versão", "actions.workflow.unknown_job_in_needs": "O trabalho com o ID %[1]s faz referência a trabalhos desconhecidos em `needs`: %[2]s.", "actions.workflow.rerun_impossible": "A sequência de trabalho não pode ser executada novamente.", - "actions.workflow.job_rerun_impossible": "O trabalho não pode ser executado novamente." + "actions.workflow.job_rerun_impossible": "O trabalho não pode ser executado novamente.", + "repo.files.caption": "Ficheiros do repositório (o cometimento mais recente em primeiro lugar)", + "repo.files.filename": "Nome do ficheiro", + "repo.files.last_commit_message": "Mensagem do último cometimento", + "repo.files.last_commit_date": "Data do último cometimento" } diff --git a/options/locale_next/locale_ru-RU.json b/options/locale_next/locale_ru-RU.json index cb55dc14ac..55948dcae3 100644 --- a/options/locale_next/locale_ru-RU.json +++ b/options/locale_next/locale_ru-RU.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Путь", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Схема", + "admin.config.db.user": "Пользователь", + "admin.config.db.name": "Имя", + "admin.config.db.host": "Сервер", + "admin.config.db.type": "Тип", + "admin.config.db.header": "Конфигурация базы данных", + "admin.config.mailer.user": "Пользователь", + "admin.config.mailer.smtp.port": "Порт SMTP", + "admin.config.mailer.smtp.addr": "Адрес SMTP", + "admin.config.mailer.enable_helo": "Включить HELO", + "admin.config.mailer.protocol": "Протокол", + "admin.config.mailer.use_dummy": "Заглушка", + "admin.config.mailer.sendmail.timeout": "Истечение ожидания Sendmail", + "admin.config.mailer.sendmail.args": "Дополнительные аргументы для Sendmail", + "admin.config.mailer.sendmail.path": "Путь Sendmail", + "admin.config.mailer.sendmail.use": "Использовать Sendmail", + "admin.config.mailer.name": "Имя", + "admin.config.mailer.enabled": "Почта включена", + "admin.config.mailer.header": "Конфигурация почтового сервера", + "admin.config.git.gc_timeout": "Ограничение времени на сборку мусора", + "admin.config.git.pull_timeout": "Ограничение времени на получение изменений", + "admin.config.git.clone_timeout": "Ограничение времени операций клонирования", + "admin.config.git.mirror_timeout": "Ограничение времени на синхронизацию зеркала", + "admin.config.git.migrate_timeout": "Ограничение времени переносов", + "admin.config.git.gc_args": "Аргументы сборщика мусора", + "admin.config.git.diff.max_files": "Макс. отображаемое количество файлов при сравнении", + "admin.config.git.diff.max_line_characters": "Макс. количество символов в строке при сравнении", + "admin.config.git.diff.max_lines": "Макс. количество строк в файле при сравнении", + "admin.config.git.disable_diff_highlight": "Отключить подсветку синтаксиса при сравнении", + "admin.config.git.version": "Версия git", + "admin.config.git.header": "Конфигурация Git", + "admin.config.ssh.minimum_key_sizes": "Минимальные размеры ключей", + "admin.config.ssh.minimum_key_size_check": "Проверка минимального размер ключа", + "admin.config.ssh.keygen_path": "Путь до генератора ключей («ssh-keygen»)", + "admin.config.ssh.key_test_path": "Путь к тестовому ключу", + "admin.config.ssh.root_path": "Корневой путь", + "admin.config.ssh.listen_port": "Прослушиваемый порт", + "admin.config.ssh.port": "Порт", + "admin.config.ssh.domain": "Домен SSH сервера", + "admin.config.ssh.use_builtin_server": "Использовать встроенный сервер", + "admin.config.ssh.enabled": "SSH включён", + "admin.config.ssh.header": "Конфигурация SSH", + "admin.users.never_login": "Никогда не входил", + "admin.users.last_login": "Последний вход", + "admin.users.created": "Регистрация", + "admin.users.repos": "Репозитории", + "admin.users.2fa": "2ФА", + "admin.users.remote": "Дистанц", + "admin.users.bot": "Бот", + "admin.users.reserved": "Резерв", + "admin.users.restricted": "Ограничен", + "admin.users.admin": "Администратор", + "admin.users.activated": "Активирован", + "admin.users.full_name": "Полное имя", + "admin.users.name": "Имя пользователя", + "admin.packages.published": "Опубликовано", + "admin.packages.size": "Размер", + "admin.packages.repository": "Репозиторий", + "admin.packages.type": "Тип", + "admin.packages.version": "Версия", + "admin.packages.name": "Наименование", + "admin.packages.creator": "Автор", + "admin.packages.owner": "Владелец", + "admin.packages.unreferenced_size": "Неуказанный размер: %s", + "admin.packages.total_size": "Общий размер: %s", + "admin.repos.lfs_size": "Размер LFS", + "admin.repos.size": "Размер", + "admin.repos.issues": "Задачи", + "admin.repos.name": "Название", + "admin.repos.owner": "Владелец", + "admin.orgs.new_orga": "Создать организацию", + "admin.orgs.members": "Участники", + "admin.orgs.teams": "Команды", + "admin.orgs.name": "Название", + "admin.dashboard.rebuild_issue_indexer": "Пересобрать индексатор задач", + "admin.dashboard.start_schedule_tasks": "Запустить запланированные задания Действий", + "admin.dashboard.cancel_abandoned_jobs": "Отменить брошенные задания Действий", + "admin.dashboard.stop_endless_tasks": "Остановить непрекращающиеся задания Действий", + "admin.dashboard.stop_zombie_tasks": "Остановить зомби-задания Действий", + "admin.dashboard.gc_lfs": "Выполнить сборку мусора метаобъектов LFS", + "admin.dashboard.delete_old_system_notices": "Удалить все старые системные уведомления из базы данных", + "admin.dashboard.update_checker": "Проверка обновлений", + "admin.dashboard.cleanup_actions": "Удалить устаревшие журналы и артефакты Действий", + "admin.dashboard.cleanup_packages": "Удалить устаревшие пакеты", + "admin.dashboard.cleanup_hook_task_table": "Очистить таблицу hook_task", + "admin.dashboard.sync_external_users": "Синхронизировать данные сторонних пользователей", + "admin.dashboard.reinit_missing_repos": "Переинициализировать все отсутствующие Git репозитории, для которых существуют записи", + "admin.dashboard.resync_all_hooks": "Синхронизировать Git-хуки во всех репозиториях (pre-receive, update, post-receive, …)", + "admin.dashboard.resync_all_sshprincipals": "Обновить учётные данные SSH Forgejo в файле «.ssh/authorized_principals».", + "admin.dashboard.resync_all_sshkeys": "Обновить SSH-ключи Forgejo в файле «.ssh/authorized_keys».", + "admin.dashboard.git_gc_repos": "Выполнить сборку мусора для всех репозиториев", + "admin.dashboard.update_migration_poster_id": "Обновить ИД плакатов миграции", + "admin.dashboard.deleted_branches_cleanup": "Очистка удалённых ветвей", + "admin.dashboard.archive_cleanup": "Удалить старые архивы репозитория", + "admin.dashboard.check_repo_stats": "Проверить всю статистику репозитория", + "admin.dashboard.repo_health_check": "Проверка состояния всех репозиториев", + "admin.dashboard.update_mirrors": "Обновить зеркала", + "admin.dashboard.sync_repo_tags": "Синхронизировать теги Git-репозиториев в базу данных", + "admin.dashboard.sync_repo_branches": "Синхронизировать ветви из Git в базу данных", + "admin.dashboard.delete_generated_repository_avatars": "Удалить сгенерированные картинки репозиториев", + "admin.dashboard.sync_tag.started": "Начата синхронизация тегов", + "admin.dashboard.sync_branch.started": "Начата синхронизация ветвей", + "admin.dashboard.delete_old_actions.started": "Запущено удаление всех старых активностей из БД.", + "admin.dashboard.delete_missing_repos.started": "Начато удаление всех репозиториев без Git-файлов.", + "admin.dashboard.delete_repo_archives.started": "Удаление всех архивов репозитория началось.", + "admin.dashboard.delete_inactive_accounts.started": "Удаление всех неактивированных учётных записей началось.", + "admin.dashboard.cron.finished": "Планировщик: %[1]s завершено", + "admin.dashboard.cron.error": "Ошибка в запланированном задании: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Планировщик: %[1]s отменено: %[3]s", + "admin.dashboard.cron.process": "Планировщик: %[1]s", + "admin.dashboard.cron.started": "Планировщик запущен: %[1]s", + "admin.dashboard.task.unknown": "Неизвестное задание: %[1]s", + "admin.dashboard.task.finished": "Задание %[1]s, начатое %[2]s, завершено", + "admin.dashboard.task.error": "Ошибка в задании: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Задание %[1]s отменено: %[3]s", + "admin.dashboard.task.process": "Задание: %[1]s", + "admin.dashboard.task.started": "Началось задание: %[1]s", + "admin.dashboard.operation_run": "Запуск", + "admin.dashboard.operation_switch": "Переключить", + "admin.dashboard.operation_name": "Имя операции", + "admin.dashboard.system_status": "Состояние системы", + "admin.dashboard.operations": "Обслуживание", + "admin.dashboard.statistic": "Статистика", + "admin.dashboard.new_version_hint": "Доступна новая версия Forgejo %s, вы используете %s. Более подробную информацию читайте в блоге.", "admin.monitor.queue.settings.remove_all_items.success": "Все элементы в очереди были удалены.", "admin.monitor.queue.settings.remove_all_items": "Удалить все", "admin.monitor.queue.settings.changed": "Настройки обновлены", @@ -22,7 +148,7 @@ "admin.users.list_status_filter.is_2fa_enabled": "2ФА включена", "admin.users.list_status_filter.not_prohibit_login": "Вход разрешён", "admin.users.list_status_filter.is_prohibit_login": "Вход запрещён", - "admin.users.list_status_filter.not_restricted": "Не ограниченные", + "admin.users.list_status_filter.not_restricted": "Неограниченные", "admin.users.list_status_filter.is_restricted": "Ограниченные", "admin.users.list_status_filter.not_admin": "Не администраторы", "admin.users.list_status_filter.is_admin": "Администраторы", @@ -32,18 +158,18 @@ "admin.users.list_status_filter.menu_text": "Фильтр", "admin.system_status.gc_times": "Сборок мусора", "admin.system_status.last_gc_pause": "Последняя пауза сборщика", - "admin.system_status.total_gc_pause": "Итоговая задержка сборщика", + "admin.system_status.total_gc_pause": "Общая задержка сборщика", "admin.system_status.last_gc_time": "Прошло с последнего сбора мусора", "admin.system_status.next_gc_recycle": "Следующее высвобождение сборщиком мусора", "admin.system_status.other_system_allocation_obtained": "Прочие системные выделения памяти", - "admin.system_status.gc_metadata_obtained": "Метаданных сборщика мусора создавалось", + "admin.system_status.gc_metadata_obtained": "Метаданных сборщика мусора получено", "admin.system_status.profiling_bucket_hash_table_obtained": "Хеш-таблиц получено при профайлинге", "admin.system_status.mcache_structures_obtained": "Получено структур MCache", "admin.system_status.mcache_structures_usage": "Использование структур MCache", "admin.system_status.mspan_structures_obtained": "Структур MSpan выделялось", "admin.system_status.mspan_structures_usage": "Использование структур MSpan", "admin.system_status.stack_memory_obtained": "Стековой памяти выделялось", - "admin.system_status.bootstrap_stack_usage": "Использование стека загрузчика", + "admin.system_status.bootstrap_stack_usage": "Использование стековой памяти", "admin.system_status.heap_objects": "Объектов динамической памяти", "admin.system_status.heap_memory_released": "Освобождено динамической памяти", "admin.system_status.heap_memory_in_use": "Используемая динамическая память", @@ -80,10 +206,10 @@ "webauthn.error.empty": "Необходимо задать имя для этого ключа.", "webauthn.error.duplicated": "Этот токен авторизации не разрешен для выполнения этого запроса. Убедитесь, что токен не был зарегистрирован ранее.", "webauthn.error.unable_to_process": "Сервер не смог обработать ваш запрос.", - "webauthn.error.insecure": "WebAuthn поддерживает только безопасные соединения. Для тестирования по HTTP можно использовать \"localhost\" или \"127.0.0.1\"", - "webauthn.error.unknown": "Произошла неизвестная ошибка. Повторите попытку.", - "webauthn.unsupported_browser": "Ваш браузер в настоящее время не поддерживает WebAuthn.", - "webauthn.error": "Не удалось прочитать токен авторизации.", + "webauthn.error.insecure": "WebAuthn допускает только безопасные соединения. При тестировании по HTTP используйте «localhost» или «127.0.0.1»", + "webauthn.error.unknown": "Произошла неизвестная ошибка. Попробуйте ещё раз.", + "webauthn.unsupported_browser": "Ваш браузер не поддерживает WebAuthn.", + "webauthn.error": "Не удалось считать токен авторизации.", "webauthn.use_twofa": "Используйте двухфакторный код с вашего телефона", "webauthn.press_button": "Подтвердите действие на токене авторизации…", "webauthn.sign_in": "Подтвердите действие на токене авторизации. Если на вашем токене нет кнопки, вставьте его заново.", @@ -392,7 +518,7 @@ "moderation.abuse_category.other_violations": "Прочие нарушения правил", "moderation.report_remarks": "Подробности", "moderation.report_abuse": "Пожаловаться", - "moderation.report_remarks.placeholder": "Пожалуйста, предоставьте немного подробностей о содержимом, на которое вы жалуетесь.", + "moderation.report_remarks.placeholder": "Пожалуйста, объясните, почему вы жалуетесь на это содержимое.", "moderation.reporting_failed": "Не удалось отправить жалобу: %v", "moderation.report_content": "Пожаловаться", "moderation.report_abuse_form.already_reported": "Вы уже пожаловались на это содержимое", @@ -756,5 +882,27 @@ "actions.runners.runner_setup.page_title": "Настройка исполнителя %s", "actions.secrets.edit_button": "Изменить секрет «%s»", "actions.secrets.mutation.success_message": "Секрет «%s» был изменён.", - "actions.secrets.mutation.name_description": "Название секрета может содержать только буквы, цифры и нижние подчёркивания. Оно не может начинаться на FORGEJO_, GITEA_, GITHUB_, или на цифру. Оно будет сохранено в верхнем регистре." + "actions.secrets.mutation.name_description": "Название секрета может содержать только буквы, цифры и нижние подчёркивания. Оно не может начинаться на FORGEJO_, GITEA_, GITHUB_, или на цифру. Оно будет сохранено в верхнем регистре.", + "actions.runners.edit_runner.regenerate_token_help": "Существующий токен будет сразу же отозван. Новый токен будет предоставлен на следующей странице.", + "actions.runners.runner_details.labels_note": "Метки задаются на самом исполнителе в файле конфигурации или как аргументы запуска. Метки обновляются каждый раз, когда исполнитель устанавливает соединение с Forgejo.", + "actions.runs.scheduled_description": "Запланированный запуск для коммита %[2]s", + "settings.authorized_integration.desc": "Авторизованные интеграции позволяют Forgejo получать подписанные JWT, проверять их заявления на соответствие настроенным правилам и разрешать по ним доступ к API Forgejo.", + "settings.authorized_integration.none": "Нет настроенных авторизованных интеграций.", + "settings.authorized_integration.edit": "Изменить", + "settings.authorized_integration.edit_page_title": "Авторизованная интеграция %s", + "settings.authorized_integration.create_page_title": "Создать авторизованную интеграцию", + "settings.authorized_integration.save": "Сохранить авторизованную интеграцию", + "settings.authorized_integration.create_success": "Авторизованная интеграция создана: %s", + "settings.authorized_integration.add": "Добавить авторизованную интеграцию", + "settings.authorized_integration.field.name": "Название", + "settings.authorized_integration.field.description": "Описание", + "settings.authorized_integration.field.issuer": "Заявитель (заявление iss)", + "settings.authorized_integration.field.audience": "Аудитория (заявление aud)", + "settings.authorized_integration.issuer.invalid": "Проверка заявителя повалилась: %s", + "settings.authorized_integration.forgejo_actions_local.workflow_file.label": "Файл раб. потока (без пути каталога):", + "settings.authorized_integration.forgejo_actions_local.workflow_file.help": "Если не указан, будут разрешены все раб. потоки. Ознакомьтесь с синтаксисом в документации %[2]s.
Примеры: testing.yml, test-*.yml.", + "settings.authorized_integration.forgejo_actions_local.event.label": "Событие:", + "settings.authorized_integration.forgejo_actions_local.event.help": "Если события не выбраны, будут разрешены любые.", + "settings.authorized_integration.forgejo_actions_local.select_repo": "Выбрать", + "settings.authorized_integration.copy_audience": "Копировать аудиторию в буфер обмена" } diff --git a/options/locale_next/locale_si-LK.json b/options/locale_next/locale_si-LK.json index 2e6decc0e9..c14c2b6dd7 100644 --- a/options/locale_next/locale_si-LK.json +++ b/options/locale_next/locale_si-LK.json @@ -1,4 +1,97 @@ { + "admin.config.db.path": "මාර්ගය", + "admin.config.db.schema": "යෝජනා ක්රමය", + "admin.config.db.user": "පරිශීලක නාමය", + "admin.config.db.name": "නම", + "admin.config.db.host": "සත්කාරක", + "admin.config.db.type": "වර්ගය", + "admin.config.db.header": "දත්ත සමුදායෙහි වින්‍යාසය", + "admin.config.mailer.user": "පරිශීලක", + "admin.config.mailer.smtp.port": "ප්රශ්නය විසඳිලා වරාය", + "admin.config.mailer.sendmail.timeout": "සෙන්ඩ්මේල් වේලාව", + "admin.config.mailer.sendmail.args": "Sendmail වෙත අමතර තර්ක", + "admin.config.mailer.sendmail.path": "සෙන්ඩ්මේල් මාර්ගය", + "admin.config.mailer.sendmail.use": "සෙන්ඩ්මේල් භාවිතා කරන්න", + "admin.config.mailer.name": "නම", + "admin.config.mailer.enabled": "සබල කර ඇත", + "admin.config.git.gc_timeout": "GC මෙහෙයුම කාලය", + "admin.config.git.pull_timeout": "මෙහෙයුම කාල ඉමුද අදින්න", + "admin.config.git.clone_timeout": "පරිගණක ක්රිඩාවට සමාන මෙහෙයුම් කාලය", + "admin.config.git.mirror_timeout": "මිරර් යාවත්කාලීන වේලාව", + "admin.config.git.migrate_timeout": "සංක්රමණ කාලය", + "admin.config.git.gc_args": "GC තර්ක", + "admin.config.git.diff.max_files": "මැක්ස් ඩිෆ් ගොනු (පෙන්වීමට)", + "admin.config.git.diff.max_line_characters": "මැක්ස් ඩිෆ් චරිත (තනි රේඛාවක් සඳහා)", + "admin.config.git.diff.max_lines": "මැක්ස් ඩිෆ් ලයින්ස් (තනි ගොනුවක් සඳහා)", + "admin.config.git.disable_diff_highlight": "ඩිෆ් සයින්ටැක්ස් ඉස්මතු කරන්න අක්රීය කරන්න", + "admin.config.git.version": "ගිට් අනුවාදය", + "admin.config.git.header": "ගිට් වින්‍යාසය", + "admin.config.ssh.minimum_key_sizes": "අවම යතුරෙහි ප්‍රමාණ", + "admin.config.ssh.minimum_key_size_check": "අවම කී ප්රමාණය පරීක්ෂා", + "admin.config.ssh.keygen_path": "Keygen ('ssh-keygen') මාර්ගය", + "admin.config.ssh.key_test_path": "ප්රධාන ටෙස්ට් මාර්ගය", + "admin.config.ssh.root_path": "මූල මාර්ගය", + "admin.config.ssh.listen_port": "සවන් වරාය", + "admin.config.ssh.port": "වරාය", + "admin.config.ssh.domain": "SSH සේවාදායකය වසම්", + "admin.config.ssh.use_builtin_server": "Built-දී සේවාදායකය භාවිතා", + "admin.config.ssh.enabled": "සබල කර ඇත", + "admin.config.ssh.header": "SSH වින්යාසය", + "admin.users.never_login": "කවදාවත් සිග්නෙඩ්-දී", + "admin.users.last_login": "අවසන් සංඥා දී", + "admin.users.created": "සෑදීම", + "admin.users.repos": "කෝෂ්ඨය", + "admin.users.restricted": "සීමා", + "admin.users.admin": "පරිපාලක", + "admin.users.activated": "සක්රිය", + "admin.users.full_name": "සම්පූර්ණ නම", + "admin.users.name": "පරිශීලක නාමය", + "admin.packages.size": "ප්‍රමාණය", + "admin.packages.repository": "කෝෂ්ඨය", + "admin.packages.type": "වර්ගය", + "admin.packages.name": "නම", + "admin.packages.owner": "හිමිකරු", + "admin.repos.size": "ප්‍රමාණය", + "admin.repos.issues": "ගැටළු", + "admin.repos.name": "නම", + "admin.repos.owner": "හිමිකරු", + "admin.orgs.new_orga": "නව සංවිධානය", + "admin.orgs.members": "සාමාජිකයින්", + "admin.orgs.teams": "කණ්ඩායම්", + "admin.orgs.name": "නම", + "admin.dashboard.cleanup_hook_task_table": "පිරිසිදු hook_task වගුව", + "admin.dashboard.sync_external_users": "බාහිර පරිශීලක දත්ත සමමුහූර්තනය", + "admin.dashboard.reinit_missing_repos": "අතුරුදහන් වූ සියලුම ගිට් නිධි නැවත ආරම්භ කිරීම", + "admin.dashboard.resync_all_hooks": "පෙර ලැබීමට, යාවත්කාලීන කිරීමට සහ සියලු ගබඩාවන් නැවත ලබා ගැනීමට කොකු නැවත සකස් කරන්න.", + "admin.dashboard.resync_all_sshprincipals": "Forgejo SSH විදුහල්පතිවරුන් සමඟ '.ssh/authorized_විදුහල්පති' ගොනුව යාවත්කාලීන කරන්න.", + "admin.dashboard.resync_all_sshkeys": "Forgejo SSH යතුරු සමඟ '.ssh/authorized_keys' ගොනුව යාවත්කාලීන කරන්න.", + "admin.dashboard.git_gc_repos": "කසළ සියලු ගබඩාවල් එකතු කරයි", + "admin.dashboard.update_migration_poster_id": "සංක්රමණ පෝස්ටර් යාවත්කාලීන කිරීම", + "admin.dashboard.deleted_branches_cleanup": "මකාදැමූ ශාඛා පිරිසිදු කිරීම", + "admin.dashboard.archive_cleanup": "පැරණි නිධි ලේඛනාගාරය මකන්න", + "admin.dashboard.check_repo_stats": "සියළුම කෝෂ්ඨවල සංඛ්‍යාලේඛන පරීක්‍ෂා කරන්න", + "admin.dashboard.repo_health_check": "සෞඛ්ය සියලු ගබඩාවලදී පරීක්ෂා", + "admin.dashboard.update_mirrors": "දර්පණ යාවත්කාලීන කරන්න", + "admin.dashboard.delete_generated_repository_avatars": "ජනනය කරන ලද නිධි අවතාරය මකන්න", + "admin.dashboard.delete_old_actions.started": "දත්ත සමුදාය ආරම්භ සිට සියලු පැරණි ක්රියා මකන්න.", + "admin.dashboard.delete_missing_repos.started": "සියළුම ගබඩාවන් මකා දමන්න Git ගොනු කාර්යය ආරම්භ විය.", + "admin.dashboard.delete_repo_archives.started": "සියලුම ගබඩාවල් ලේඛනාගාර කාර්යය ආරම්භ කිරීම මකන්න.", + "admin.dashboard.delete_inactive_accounts.started": "සියලුම අක්රීය ගිණුම් කාර්යය ආරම්භ කර මකා දමන්න.", + "admin.dashboard.cron.finished": "ක්රෝන්:%[1]s අවසන් වී ඇත", + "admin.dashboard.cron.error": "ක්රෝන් හි දෝෂය: %s:%[3]s", + "admin.dashboard.cron.process": "ක්රෝන්:%[1]s", + "admin.dashboard.cron.started": "ආරම්භ Con:%[1]s", + "admin.dashboard.task.unknown": "නොදන්නා කාර්යය:%[1]s", + "admin.dashboard.task.finished": "කාර්යය:%[1]s[2]s විසින් ආරම්භ කර ඇත", + "admin.dashboard.task.error": "කාර්යයයේ දෝෂය:%[1]s:%[3]s", + "admin.dashboard.task.process": "කාර්යය:%[1]s", + "admin.dashboard.task.started": "ආරම්භ කාර්යය:%[1]s", + "admin.dashboard.operation_run": "ධාවනය", + "admin.dashboard.operation_switch": "මාරුවන්න", + "admin.dashboard.operation_name": "මෙහෙයුමේ නම", + "admin.dashboard.system_status": "පද්ධතියේ තත්වය", + "admin.dashboard.operations": "නඩත්තු මෙහෙයුම්", + "admin.dashboard.statistic": "සාරාංශය", "admin.monitor.queue.settings.changed": "සැකසුම් යාවත්කාල කෙරිණි", "admin.monitor.queue.settings.submit": "සැකසුම් යාවත්කාල කරන්න", "admin.monitor.queue.settings.maxnumberworkers.error": "මැක්ස් කම්කරුවන්ගේ සංඛ්යාව අංකයක් විය යුතුය", diff --git a/options/locale_next/locale_sk-SK.json b/options/locale_next/locale_sk-SK.json index f7c2c1c5a4..95e3f8aa2f 100644 --- a/options/locale_next/locale_sk-SK.json +++ b/options/locale_next/locale_sk-SK.json @@ -1,4 +1,11 @@ { + "admin.config.mailer.enable_helo": "Povolené HELO", + "admin.config.mailer.enabled": "Povolené", + "admin.config.ssh.enabled": "Povolené", + "admin.packages.repository": "Repozitár", + "admin.packages.owner": "Vlastník", + "admin.repos.owner": "Vlastník", + "admin.dashboard.delete_generated_repository_avatars": "Odstrániť vygenerované avatary repozitárov", "webauthn.error.timeout": "Vypršal čas na čítanie vašeho kľúča. Znova načítajte túto stránku a skúste to opäť.", "webauthn.error.empty": "Musíte nastaviť meno pre tento kľúč.", "webauthn.error.duplicated": "Bezpečnostný kľúč nie je pre túto požiadavku povolený. Uistite sa, že kľúč ešte nie je zaregistrovaný.", diff --git a/options/locale_next/locale_sl.json b/options/locale_next/locale_sl.json index 61c89d24fa..527f157622 100644 --- a/options/locale_next/locale_sl.json +++ b/options/locale_next/locale_sl.json @@ -1,4 +1,15 @@ { + "admin.config.git.gc_timeout": "GC Časovni rok delovanja", + "admin.config.git.pull_timeout": "Potegnite Časovni rok delovanja", + "admin.config.git.clone_timeout": "Časovni limit operacije kloniranja", + "admin.config.git.mirror_timeout": "Časovna omejitev posodobitve zrcala", + "admin.config.git.migrate_timeout": "Časovna omejitev migracije", + "admin.config.git.gc_args": "Argumenti GC", + "admin.config.git.diff.max_files": "Prikazane največje razlike v datotekah", + "admin.config.git.diff.max_line_characters": "Največ različnih znakov na vrstico", + "admin.config.git.diff.max_lines": "Največ razlikovalnih vrstic na datoteko", + "admin.config.git.disable_diff_highlight": "Onemogočite razlikovanje sintakse", + "admin.config.git.header": "Konfiguracija Git", "webauthn.error.timeout": "Preden je bilo mogoče prebrati vaš ključ, je bil dosežen časovni rok. Ponovno naložite to stran in poskusite znova.", "webauthn.error.empty": "Za ta ključ morate nastaviti ime.", "webauthn.error.duplicated": "Varnostni ključ za to zahtevo ni dovoljen. Prepričajte se, da ključ še ni registriran.", diff --git a/options/locale_next/locale_sr-SP.json b/options/locale_next/locale_sr-SP.json index b4f0454546..28019edfc8 100644 --- a/options/locale_next/locale_sr-SP.json +++ b/options/locale_next/locale_sr-SP.json @@ -1,4 +1,45 @@ { + "admin.config.db.path": "Пут", + "admin.config.db.name": "Име", + "admin.config.db.host": "Хост", + "admin.config.db.type": "Тип", + "admin.config.db.header": "Конфигурација базе података", + "admin.config.mailer.user": "Корисник", + "admin.config.mailer.name": "Име", + "admin.config.mailer.enabled": "Омогућено", + "admin.config.git.gc_timeout": "Време до отказивања cакупљање смећа", + "admin.config.git.pull_timeout": "Време до отказивања pull операцији", + "admin.config.git.clone_timeout": "Време до отказивања клонирањем", + "admin.config.git.mirror_timeout": "Време до отазање синхронизацији огледала", + "admin.config.git.migrate_timeout": "Време до отказања миграције", + "admin.config.git.gc_args": "Аргументи cкупљања смећа (GC)", + "admin.config.git.diff.max_files": "Максималан број измењених датотека (приказаних)", + "admin.config.git.diff.max_line_characters": "Максималан број карактера с разликама по реду", + "admin.config.git.diff.max_lines": "Максималан број редова с разликама по фајлу", + "admin.config.git.disable_diff_highlight": "Онемогући бојење синтаксе када гледате разлике", + "admin.config.git.header": "Git конфигурација", + "admin.config.ssh.minimum_key_sizes": "Минимална величина кључа", + "admin.config.ssh.minimum_key_size_check": "Провера минималне величине кључа", + "admin.config.ssh.keygen_path": "Пут до генератора кључева ('ssh-keygen')", + "admin.config.ssh.key_test_path": "Пут до кључа", + "admin.config.ssh.root_path": "Основни пут", + "admin.config.ssh.listen_port": "Порт за слушање", + "admin.config.ssh.port": "Порт", + "admin.config.ssh.enabled": "Активирано", + "admin.config.ssh.header": "ССХ конфигурација", + "admin.users.created": "Креирано", + "admin.users.repos": "репоси", + "admin.users.admin": "Администратор", + "admin.users.activated": "Активиран", + "admin.repos.issues": "Задаци", + "admin.repos.name": "Име", + "admin.repos.owner": "Власник", + "admin.orgs.members": "Чланови", + "admin.orgs.teams": "Тимови", + "admin.orgs.name": "Име", + "admin.dashboard.operation_run": "Покрени", + "admin.dashboard.operation_switch": "Пребаци", + "admin.dashboard.operation_name": "Име операције", "admin.system_status.gc_times": "Времена cакупљању смећа", "admin.system_status.last_gc_pause": "Задња пауза у cакупљању смећа", "admin.system_status.total_gc_pause": "Укупно време cакупљању смећа", diff --git a/options/locale_next/locale_sv-SE.json b/options/locale_next/locale_sv-SE.json index 953bb8fe44..c62e87c485 100644 --- a/options/locale_next/locale_sv-SE.json +++ b/options/locale_next/locale_sv-SE.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Sökväg", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Schema", + "admin.config.db.user": "Användarnamn", + "admin.config.db.name": "Namn", + "admin.config.db.host": "Värd", + "admin.config.db.type": "Typ", + "admin.config.db.header": "Databaskonfiguration", + "admin.config.mailer.user": "Användare", + "admin.config.mailer.smtp.port": "SMTP-port", + "admin.config.mailer.smtp.addr": "SMTP-värd", + "admin.config.mailer.enable_helo": "Aktivera HELO", + "admin.config.mailer.protocol": "Protokoll", + "admin.config.mailer.use_dummy": "Dummy", + "admin.config.mailer.sendmail.timeout": "Sendmail-tidsgräns", + "admin.config.mailer.sendmail.args": "Extra argument till sendmail", + "admin.config.mailer.sendmail.path": "Sökväg för sendmail", + "admin.config.mailer.sendmail.use": "Använd Sendmail", + "admin.config.mailer.name": "Namn", + "admin.config.mailer.enabled": "Aktiverad", + "admin.config.mailer.header": "E-postkonfiguration", + "admin.config.git.gc_timeout": "Tidsfrist för skräpsamling", + "admin.config.git.pull_timeout": "Tidsfrist för dragning", + "admin.config.git.clone_timeout": "Tidsfrist för kloning", + "admin.config.git.mirror_timeout": "Tidsfrist för spegeluppdatering", + "admin.config.git.migrate_timeout": "Migreringstimeout", + "admin.config.git.gc_args": "Skräpsamlarargument", + "admin.config.git.diff.max_files": "Maximalt antal diff-filer att visa", + "admin.config.git.diff.max_line_characters": "Maximalt antal diff-karaktärer per rad", + "admin.config.git.diff.max_lines": "Maximalt antal diff-rader per fil", + "admin.config.git.disable_diff_highlight": "Inaktivera syntaxmarkering i diffar", + "admin.config.git.version": "Git-version", + "admin.config.git.header": "Git-konfiguration", + "admin.config.ssh.minimum_key_sizes": "Minsta tillåtna nyckelstorlek", + "admin.config.ssh.minimum_key_size_check": "Kontroll av minsta tillåtna nyckelstorlek", + "admin.config.ssh.keygen_path": "Sökväg för nyckelgenerator (\"ssh-keygen\")", + "admin.config.ssh.key_test_path": "Testsökväg för nyckel", + "admin.config.ssh.root_path": "Rotsökväg", + "admin.config.ssh.listen_port": "Lyssningsport", + "admin.config.ssh.port": "Port", + "admin.config.ssh.domain": "SSH-serverdomän", + "admin.config.ssh.use_builtin_server": "Använd inbyggd server", + "admin.config.ssh.enabled": "Aktiverad", + "admin.config.ssh.header": "SSH-konfiguration", + "admin.users.never_login": "Aldrig loggat in", + "admin.users.last_login": "Senaste inloggning", + "admin.users.created": "Skapad", + "admin.users.repos": "Kodförråd", + "admin.users.2fa": "2FA", + "admin.users.remote": "Fjärråtkomst", + "admin.users.bot": "Bott", + "admin.users.reserved": "Reserverad", + "admin.users.restricted": "Begränsad", + "admin.users.admin": "Administratör", + "admin.users.activated": "Aktiverad", + "admin.users.full_name": "Fullständigt namn", + "admin.users.name": "Användarnamn", + "admin.packages.published": "Publicerad", + "admin.packages.size": "Storlek", + "admin.packages.repository": "Kodförråd", + "admin.packages.type": "Typ", + "admin.packages.version": "Version", + "admin.packages.name": "Namn", + "admin.packages.creator": "Skapare", + "admin.packages.owner": "Ägare", + "admin.packages.unreferenced_size": "Orefererad storlek: %s", + "admin.packages.total_size": "Total storlek: %s", + "admin.repos.lfs_size": "LFS-storlek", + "admin.repos.size": "Storlek", + "admin.repos.issues": "Ärenden", + "admin.repos.name": "Namn", + "admin.repos.owner": "Ägare", + "admin.orgs.new_orga": "Ny organisation", + "admin.orgs.members": "Medlemmar", + "admin.orgs.teams": "Team", + "admin.orgs.name": "Namn", + "admin.dashboard.rebuild_issue_indexer": "Återuppbygg ärendeindexerare", + "admin.dashboard.start_schedule_tasks": "Starta schemalagda actions-uppgifter", + "admin.dashboard.cancel_abandoned_jobs": "Avbryt övergivna actions-jobb", + "admin.dashboard.stop_endless_tasks": "Stoppa oändliga actions-uppgifter", + "admin.dashboard.stop_zombie_tasks": "Stoppa zombie actions-uppgifter", + "admin.dashboard.gc_lfs": "Skräpsamla LFS-metaobjekt", + "admin.dashboard.delete_old_system_notices": "Radera alla gamla systemmeddelanden från databasen", + "admin.dashboard.update_checker": "Uppdateringskontroll", + "admin.dashboard.cleanup_actions": "Städa utgångna loggar och artefakter från actions", + "admin.dashboard.cleanup_packages": "Städa utgångna paket", + "admin.dashboard.cleanup_hook_task_table": "Städa hook_task-tabellen", + "admin.dashboard.sync_external_users": "Synkronisera extern användardata", + "admin.dashboard.reinit_missing_repos": "Återinitialisera alla saknade kodförråd för vilka det finns poster", + "admin.dashboard.resync_all_hooks": "Återsynkronisera pre-receive-, update- och post-receive-krokar för alla kodförråd", + "admin.dashboard.resync_all_sshprincipals": "Uppdatera filen \".ssh/authorized_principals\" med Forgejo SSH-certifikatnamn.", + "admin.dashboard.resync_all_sshkeys": "Uppdatera filen \".ssh/authorized_keys\" med Forgejo SSH-nycklar.", + "admin.dashboard.git_gc_repos": "Rensa skräpfiler i samtliga kodförråd", + "admin.dashboard.update_migration_poster_id": "Uppdatera migrationsuppläggares ID:n", + "admin.dashboard.deleted_branches_cleanup": "Städa raderade grenar", + "admin.dashboard.archive_cleanup": "Radera gamla kodförrådsarkiv", + "admin.dashboard.check_repo_stats": "Kontrollera all kodförrådsstatistik", + "admin.dashboard.repo_health_check": "Hälsokontrollera alla kodförråd", + "admin.dashboard.update_mirrors": "Uppdatera speglar", + "admin.dashboard.sync_repo_tags": "Synkronisera taggar från Git-data till databas", + "admin.dashboard.sync_repo_branches": "Synkronisera saknade grenar från Git-data till databas", + "admin.dashboard.delete_generated_repository_avatars": "Ta bort genererade profilbilder för kodförrådet", + "admin.dashboard.sync_tag.started": "Taggsynkronisering startad", + "admin.dashboard.sync_branch.started": "Grensynkronisering startad", + "admin.dashboard.delete_old_actions.started": "Radering av alla gamla aktiviteter från databasen startad.", + "admin.dashboard.delete_missing_repos.started": "Uppgift att radera alla kodförråd som saknar Git-filer startad.", + "admin.dashboard.delete_repo_archives.started": "Uppgift att radera alla kodförrådsarkiv startad.", + "admin.dashboard.delete_inactive_accounts.started": "Uppgift att radera alla oaktiverade konton startad.", + "admin.dashboard.cron.finished": "Cron: %[1]s har slutförts", + "admin.dashboard.cron.error": "Fel i Cron: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s avbruten: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Startade Cron: %[1]s", + "admin.dashboard.task.unknown": "Okänd uppgift: %[1]s", + "admin.dashboard.task.finished": "Uppgift: %[1]s startad av %[2]s har slutförts", + "admin.dashboard.task.error": "Fel i uppgift: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Uppgift: %[1]s avbruten: %[3]s", + "admin.dashboard.task.process": "Uppgift: %[1]s", + "admin.dashboard.task.started": "Startade uppgift: %[1]s", + "admin.dashboard.operation_run": "Kör", + "admin.dashboard.operation_switch": "Byt till", + "admin.dashboard.operation_name": "Operationsnamn", + "admin.dashboard.system_status": "Systemstatus", + "admin.dashboard.operations": "Operationer för underhåll", + "admin.dashboard.statistic": "Översikt", + "admin.dashboard.new_version_hint": "Forgejo %s är nu tillgänglig, du kör %s. Se bloggen för mer detaljer.", "admin.monitor.queue.settings.remove_all_items.success": "Alla objekt i kön har tagits bort.", "admin.monitor.queue.settings.remove_all_items": "Ta bort alla", "admin.monitor.queue.settings.changed": "Inställningar uppdaterade", @@ -747,5 +873,24 @@ "user.activitypub_feed.original_source": "Ursprunglig källa", "actions.workflow.unknown_job_in_needs": "Jobb med ID %[1]s refererar till okända jobb i `needs`: %[2]s.", "actions.workflow.rerun_impossible": "Arbetsflödet kan inte köras om.", - "actions.workflow.job_rerun_impossible": "Jobbet kan inte köras om." + "actions.workflow.job_rerun_impossible": "Jobbet kan inte köras om.", + "repo.files.caption": "Kodförråd filer (senaste incheckning först)", + "repo.files.filename": "Filnamn", + "repo.files.last_commit_message": "Senaste incheckningsmeddelande", + "repo.files.last_commit_date": "Senaste incheckningsdatum", + "actions.runs.delete.error_could_not_load_run": "Kunde inte ladda körning för att radera.", + "actions.runs.delete.error_could_not_delete_run": "Kunde inte radera körning.", + "actions.runs.delete.button": "Radera körning", + "actions.runs.delete.error": "Kunde inte radera arbetsflöde körning.", + "actions.runs.delete.confirm_action": "Vill du verkligen ta bort den här arbetsflödeskörningen?", + "settings.authorized_integrations": "Auktoriserade integrationer", + "settings.manage_authorized_integrations": "Auktoriserade integrationer", + "settings.authorized_integration.desc": "Auktoriserade integrationer tillåter Forgejo att ta emot signerade JWT:er, validera deras anspråk mot konfigurerade regler och tillåta dem att komma åt Forgejos API:er.", + "settings.authorized_integration.ui.generic": "Generisk JWT", + "settings.authorized_integration.ui.forgejo_actions_local": "Forgejo Actions (Lokalt)", + "settings.authorized_integration.none": "Inga auktoriserade integrationer är för närvarande konfigurerade.", + "settings.authorized_integration.field.name": "Namn", + "settings.authorized_integration.field.description": "Beskrivning", + "settings.authorized_integration.field.description.placeholder": "Används för att publicera paket när ...", + "settings.authorized_integration.claims.generic": "Generiska JWT-regler" } diff --git a/options/locale_next/locale_ta.json b/options/locale_next/locale_ta.json index 44dd41629c..8d8aef87b2 100644 --- a/options/locale_next/locale_ta.json +++ b/options/locale_next/locale_ta.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "பாதை", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "திட்டம்", + "admin.config.db.user": "பயனர் பெயர்", + "admin.config.db.name": "பெயர்", + "admin.config.db.host": "விருந்தோம்பி", + "admin.config.db.type": "வகை", + "admin.config.db.header": "தரவுத்தள கட்டமைப்பு", + "admin.config.mailer.user": "பயனர்", + "admin.config.mailer.smtp.port": "SMTP துறைமுகம்", + "admin.config.mailer.smtp.addr": "SMTP புரவலன்", + "admin.config.mailer.enable_helo": "HELOவை இயக்கு", + "admin.config.mailer.protocol": "நெறிமுறை", + "admin.config.mailer.use_dummy": "போலி", + "admin.config.mailer.sendmail.timeout": "அனுப்பு அஞ்சல் நேரம் முடிந்தது", + "admin.config.mailer.sendmail.args": "Sendmailக்கு கூடுதல் வாதங்கள்", + "admin.config.mailer.sendmail.path": "அனுப்பு அஞ்சல் பாதை", + "admin.config.mailer.sendmail.use": "அனுப்பு அஞ்சல் பயன்படுத்தவும்", + "admin.config.mailer.name": "பெயர்", + "admin.config.mailer.enabled": "இயக்கப்பட்டது", + "admin.config.mailer.header": "அஞ்சல் அமைப்பு", + "admin.config.git.gc_timeout": "GC ஆபரேசன் நேரம் முடிந்தது", + "admin.config.git.pull_timeout": "புல் ஆபரேசன் நேரம் முடிந்தது", + "admin.config.git.clone_timeout": "நகலி ஆபரேசன் காலாவதியானது", + "admin.config.git.mirror_timeout": "மிரர் புதுப்பிப்பு நேரம் முடிந்தது", + "admin.config.git.migrate_timeout": "இடம்பெயர்வு நேரம் முடிந்தது", + "admin.config.git.gc_args": "GC வாதங்கள்", + "admin.config.git.diff.max_files": "அதிகபட்ச வேறுபாடு கோப்புகள் காட்டப்பட்டுள்ளன", + "admin.config.git.diff.max_line_characters": "ஒரு வரிக்கு அதிகபட்ச வேறுபாடு எழுத்துக்கள்", + "admin.config.git.diff.max_lines": "ஒரு கோப்பிற்கு அதிகபட்ச வேறுபாடு கோடுகள்", + "admin.config.git.disable_diff_highlight": "டிஃப் தொடரியல் சிறப்பம்சத்தை முடக்கு", + "admin.config.git.version": "Git பதிப்பு", + "admin.config.git.header": "Git கட்டமைப்பு", + "admin.config.ssh.minimum_key_sizes": "குறைந்தபட்ச முக்கிய அளவுகள்", + "admin.config.ssh.minimum_key_size_check": "குறைந்தபட்ச விசை அளவு சரிபார்ப்பு", + "admin.config.ssh.keygen_path": "கீசென் (\"ssh-keygen\") பாதை", + "admin.config.ssh.key_test_path": "முக்கிய சோதனை பாதை", + "admin.config.ssh.root_path": "ரூட் பாதை", + "admin.config.ssh.listen_port": "லிசன் துறைமுகம்", + "admin.config.ssh.port": "துறைமுகம்", + "admin.config.ssh.domain": "பாஓடு சர்வர் டொமைன்", + "admin.config.ssh.use_builtin_server": "உள்ளமைக்கப்பட்ட சேவையகத்தைப் பயன்படுத்தவும்", + "admin.config.ssh.enabled": "இயக்கப்பட்டது", + "admin.config.ssh.header": "பாஓடு கட்டமைப்பு", + "admin.users.never_login": "உள்நுழையவில்லை", + "admin.users.last_login": "கடைசி உள்நுழைவு", + "admin.users.created": "உருவாக்கப்பட்டது", + "admin.users.repos": "பதிவுகள்", + "admin.users.2fa": "2FA", + "admin.users.remote": "ரிமோட்", + "admin.users.bot": "பாட்", + "admin.users.reserved": "ஒதுக்கப்பட்டது", + "admin.users.restricted": "கட்டுப்படுத்தப்பட்டது", + "admin.users.admin": "நிர்வாகி", + "admin.users.activated": "செயல்படுத்தப்பட்டது", + "admin.users.full_name": "முழுப் பெயர்", + "admin.users.name": "பயனர் பெயர்", + "admin.packages.published": "வெளியிடப்பட்டது", + "admin.packages.size": "அளவு", + "admin.packages.repository": "களஞ்சியம்", + "admin.packages.type": "வகை", + "admin.packages.version": "பதிப்பு", + "admin.packages.name": "பெயர்", + "admin.packages.creator": "படைப்பாளி", + "admin.packages.owner": "உரிமையாளர்", + "admin.packages.unreferenced_size": "குறிப்பிடப்படாத அளவு: %s", + "admin.packages.total_size": "மொத்த அளவு: %s", + "admin.repos.lfs_size": "LFS அளவு", + "admin.repos.size": "அளவு", + "admin.repos.issues": "சிக்கல்கள்", + "admin.repos.name": "பெயர்", + "admin.repos.owner": "உரிமையாளர்", + "admin.orgs.new_orga": "புதிய அமைப்பு", + "admin.orgs.members": "உறுப்பினர்கள்", + "admin.orgs.teams": "அணிகள்", + "admin.orgs.name": "பெயர்", + "admin.dashboard.rebuild_issue_indexer": "வெளியீட்டு அட்டவணையை மீண்டும் உருவாக்கவும்", + "admin.dashboard.start_schedule_tasks": "அட்டவணை செயல் பணிகளைத் தொடங்கவும்", + "admin.dashboard.cancel_abandoned_jobs": "கைவிடப்பட்ட செயல்கள் வேலைகளை நீக்கறல்", + "admin.dashboard.stop_endless_tasks": "முடிவற்ற செயல் பணிகளை நிறுத்துங்கள்", + "admin.dashboard.stop_zombie_tasks": "சாம்பி செயல் பணிகளை நிறுத்துங்கள்", + "admin.dashboard.gc_lfs": "குப்பை LFS மேவு பொருட்களை சேகரிக்கிறது", + "admin.dashboard.delete_old_system_notices": "தரவுத்தளத்திலிருந்து அனைத்து பழைய கணினி அறிவிப்புகளையும் நீக்கவும்", + "admin.dashboard.update_checker": "புதுப்பிப்பு சரிபார்ப்பு", + "admin.dashboard.cleanup_actions": "செயல்களில் இருந்து காலாவதியான பதிவுகள் மற்றும் கலைப்பொருட்களை தூய்மை செய்யவும்", + "admin.dashboard.cleanup_packages": "காலாவதியான தொகுப்புகளை தூய்மை செய்யவும்", + "admin.dashboard.cleanup_hook_task_table": "ஊக்_டாச்க் டேபிளை தூய்மை செய்யவும்", + "admin.dashboard.sync_external_users": "வெளிப்புற பயனர் தரவை ஒத்திசைக்கவும்", + "admin.dashboard.reinit_missing_repos": "பதிவுகள் இருக்கும் அனைத்து விடுபட்ட Git களஞ்சியங்களையும் மீண்டும் துவக்கவும்", + "admin.dashboard.resync_all_hooks": "அனைத்து களஞ்சியங்களின் அறிவிலி ஊக்குகளை மீண்டும் ஒத்திசை (முன் பெறுதல், புதுப்பித்தல், பெறப்பட்ட பின் பெறுதல், ...)", + "admin.dashboard.resync_all_sshprincipals": "Forgejo பாஓடு முதன்மைகளுடன் \".ssh/authorized_principals\" கோப்பைப் புதுப்பிக்கவும்.", + "admin.dashboard.resync_all_sshkeys": "Forgejo பாஓடு விசைகளுடன் \".ssh/authorized_keys\" கோப்பைப் புதுப்பிக்கவும்.", + "admin.dashboard.git_gc_repos": "குப்பைகள் அனைத்து களஞ்சியங்களையும் சேகரிக்கின்றன", + "admin.dashboard.update_migration_poster_id": "இடம்பெயர்வு போச்டர் ஐடிகளைப் புதுப்பிக்கவும்", + "admin.dashboard.deleted_branches_cleanup": "நீக்கப்பட்ட கிளைகளை தூய்மை செய்யவும்", + "admin.dashboard.archive_cleanup": "பழைய களஞ்சிய காப்பகங்களை நீக்கவும்", + "admin.dashboard.check_repo_stats": "அனைத்து களஞ்சிய புள்ளிவிவரங்களையும் சரிபார்க்கவும்", + "admin.dashboard.repo_health_check": "அனைத்து களஞ்சியங்களையும் சுகாதாரம் சரிபார்க்கவும்", + "admin.dashboard.update_mirrors": "கண்ணாடிகளைப் புதுப்பிக்கவும்", + "admin.dashboard.sync_repo_tags": "குறிச்சொற்களை Git தரவிலிருந்து தரவுத்தளத்திற்கு ஒத்திசைக்கவும்", + "admin.dashboard.sync_repo_branches": "தவறவிட்ட கிளைகளை Git தரவிலிருந்து தரவுத்தளத்திற்கு ஒத்திசைக்கவும்", + "admin.dashboard.delete_generated_repository_avatars": "உருவாக்கப்பட்ட களஞ்சிய அவதாரங்களை நீக்கவும்", + "admin.dashboard.sync_tag.started": "குறிச்சொல் ஒத்திசைவு தொடங்கியது", + "admin.dashboard.sync_branch.started": "கிளை ஒத்திசைவு தொடங்கியது", + "admin.dashboard.delete_old_actions.started": "தொடங்கப்பட்ட தரவுத்தளத்திலிருந்து அனைத்து பழைய செயல்பாடுகளையும் நீக்கவும்.", + "admin.dashboard.delete_missing_repos.started": "Git கோப்புகள் பணி தொடங்கப்பட்டதில் விடுபட்ட அனைத்து களஞ்சியங்களையும் நீக்கவும்.", + "admin.dashboard.delete_repo_archives.started": "அனைத்து களஞ்சிய காப்பகங்களை நீக்கும் பணி தொடங்கப்பட்டது.", + "admin.dashboard.delete_inactive_accounts.started": "தொடங்கப்பட்ட அனைத்து செயல்படுத்தப்படாத கணக்குகளையும் நீக்கும் பணி.", + "admin.dashboard.cron.finished": "கிரான்: %[1]s முடிந்தது", + "admin.dashboard.cron.error": "Cron இல் பிழை: %s: %[3]s", + "admin.dashboard.cron.cancelled": "கிரான்: %[1]s ரத்து செய்யப்பட்டது: %[3]s", + "admin.dashboard.cron.process": "கிரான்: %[1]s", + "admin.dashboard.cron.started": "தொடங்கப்பட்ட கிரான்: %[1]s", + "admin.dashboard.task.unknown": "அறியப்படாத பணி: %[1]s", + "admin.dashboard.task.finished": "பணி: %[2]s ஆல் தொடங்கப்பட்ட %[1]s முடிந்தது", + "admin.dashboard.task.error": "பணியில் பிழை: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "பணி: %[1]s ரத்து செய்யப்பட்டது: %[3]s", + "admin.dashboard.task.process": "பணி: %[1]s", + "admin.dashboard.task.started": "தொடங்கப்பட்ட பணி: %[1]s", + "admin.dashboard.operation_run": "ஓடு", + "admin.dashboard.operation_switch": "ஆளி, நிலைமாறி", + "admin.dashboard.operation_name": "ஆபரேசன் பெயர்", + "admin.dashboard.system_status": "அமைப்பின் நிலை", + "admin.dashboard.operations": "பராமரிப்பு நடவடிக்கைகள்", + "admin.dashboard.statistic": "சுருக்கம்", + "admin.dashboard.new_version_hint": "Forgejo %s இப்போது கிடைக்கிறது, நீங்கள் %sஐ இயக்குகிறீர்கள். மேலும் விவரங்களுக்கு வலைப்பதிவை பார்க்கவும்.", "admin.monitor.queue.settings.remove_all_items.success": "வரிசையில் இருந்த அனைத்து பொருட்களும் அகற்றப்பட்டன.", "admin.monitor.queue.settings.remove_all_items": "அனைத்தையும் அகற்று", "admin.monitor.queue.settings.changed": "அமைப்புகள் புதுப்பிக்கப்பட்டன", @@ -318,7 +444,7 @@ }, "relativetime.hours": { "one": "%d மணிநேரத்திற்கு முன்பு", - "other": "%d மணிநேரங்களுக்கு முன்பு" + "other": "%d மணிநேரத்திற்கு முன்பு" }, "relativetime.days": { "one": "%d நாளுக்கு முன்பு", @@ -621,5 +747,155 @@ "actions.secrets.creation.name_description": "ஒரு மறைபொருளின் பெயரில் எழுத்துக்கள், எண்கள் மற்றும் அடிக்கோடுகள் மட்டுமே இருக்க முடியும். இது FORGEJO_, GITEA_, GITHUB_ அல்லது எண்ணுடன் தொடங்க முடியாது. Forgejo அதைத் தானாகப் பெரிய எழுத்துக்கு மாற்றும்.", "actions.secrets.creation.value_description": "ஒரு மறைபொருளின் மதிப்பு எந்த உரையாகவும் இருக்கலாம். சிறப்பு எழுத்துக்கள் தக்கவைக்கப்படுகின்றன. CRLF (Windows-style line breaks) தானாகவே LF ஆக மாற்றப்படும். வரி முறிவுகள் தக்கவைக்கப்பட வேண்டுமானால், மதிப்பை Base64 உடன் குறியிடவும்.", "actions.variables.mutation.name_description": "ஒரு மாறியின் பெயரில் எழுத்துக்கள், எண்கள் மற்றும் அடிக்கோடிட்டுகள் மட்டுமே இருக்க முடியும். இதற்கு CI என்று பெயரிட முடியாது அல்லது FORGEJO_, GITEA_, GITHUB_ அல்லது எண்ணில் தொடங்க முடியாது. Forgejo அதைத் தானாகப் பெரிய எழுத்துக்கு மாற்றும்.", - "actions.variables.mutation.value_description": "ஒரு மாறியின் மதிப்பு எந்த உரையாகவும் இருக்கலாம். சிறப்பு எழுத்துக்கள் தக்கவைக்கப்படுகின்றன. CRLF (Windows-style line breaks) தானாகவே LF ஆக மாற்றப்படும். வரி முறிவுகள் தக்கவைக்கப்பட வேண்டுமானால், மதிப்பை Base64 உடன் குறியிடவும்." + "actions.variables.mutation.value_description": "ஒரு மாறியின் மதிப்பு எந்த உரையாகவும் இருக்கலாம். சிறப்பு எழுத்துக்கள் தக்கவைக்கப்படுகின்றன. CRLF (Windows-style line breaks) தானாகவே LF ஆக மாற்றப்படும். வரி முறிவுகள் தக்கவைக்கப்பட வேண்டுமானால், மதிப்பை Base64 உடன் குறியிடவும்.", + "repo.pulls.auto_merge.no_permission": "இந்த இழுத்தல் கோரிக்கையின் தானாக ஒன்றிணைவதை ரத்துசெய்ய உங்களுக்கு இசைவு இல்லை.", + "migrate.select.title": "களஞ்சியத்தை நகர்த்தவும்", + "admin.federation.federation": "கூட்டமைப்பு", + "admin.federation.hosts": "புரவலர்கள்", + "admin.federation.hosts.title": "கூட்டமைப்பு புரவலர்கள்", + "admin.federation.hosts.manage_panel": "கூட்டமைப்பு ஓச்ட்களை நிர்வகிக்கவும்", + "admin.federation.hosts.details_panel": "கூட்டமைப்பு புரவலன் விவரங்கள்", + "admin.federation.hosts.show_details": "புரவலன் விவரங்களைக் காட்டு", + "admin.federation.host.id": "ஐடி", + "admin.federation.host.fqdn": "FQDN", + "admin.federation.host.schema": "திட்டம்", + "admin.federation.host.port": "துறைமுகம்", + "admin.federation.host.software_name": "மென்பொருள்", + "admin.federation.host.created": "உருவாக்கப்பட்டது", + "admin.federation.host.updated": "புதுப்பிக்கப்பட்டது", + "admin.federation.host.latest_activity": "அண்மைக் கால செயல்பாடு", + "admin.federation.users": "பயனர்கள்", + "admin.federation.users.title": "கூட்டமைப்பு பயனர்கள்", + "admin.federation.users.manage_panel": "கூட்டமைப்பு பயனர்களை நிர்வகிக்கவும்", + "admin.federation.users.show_local_user": "உள்ளக பயனர் விவரங்களைக் காட்டு", + "admin.federation.user.id": "அடையாளம்", + "admin.federation.user.user_id": "உள்ளக பயனர் அடையாளம்", + "admin.federation.user.external_id": "வெளிப்புற பயனர் அடையாளம்", + "admin.federation.user.inbox_path": "இன்பாக்ச் பாதை", + "admin.config.federation": "கூட்டமைப்பு கட்டமைப்பு", + "admin.config.federation.enabled": "இயக்கப்பட்டது", + "admin.config.federation.share_user_statistics": "பிற ஓச்ட்களுடன் பயனர் புள்ளிவிவரங்களைப் பகிரவும்", + "admin.config.federation.max_size": "அதிகபட்சமாக அனுமதிக்கப்பட்ட மறுமொழி அளவு", + "admin.config.federation.signature_enforced": "HTTP கையொப்பங்கள் தேவை", + "admin.config.federation.signature_algorithms": "கையொப்ப வழிமுறைகள்", + "admin.config.federation.digest_algorithm": "சிக்னேச்சர் டைசச்ட் அல்காரிதம்", + "admin.config.federation.get_headers": "GET தலைப்புகளில் கையொப்பமிடப்பட்டது", + "admin.config.federation.post_headers": "கையொப்பமிடப்பட்ட POST தலைப்புகள்", + "settings.specific_repo_access": "களஞ்சிய அணுகல்", + "settings.new_access_token": "புதிய அணுகல் கிள்ளாக்கு", + "settings.permissions_access_specific_repositories": "குறிப்பிட்ட களஞ்சியங்கள்", + "settings.access_token.selected_repositories": { + "one": "தேர்ந்தெடுக்கப்பட்ட களஞ்சியம் (%d)", + "other": "தேர்ந்தெடுக்கப்பட்ட களஞ்சியங்கள் (%d)" + }, + "settings.access_token.available_repositories": "கிடைக்கும் களஞ்சியங்கள்", + "settings.access_token.no_repositories_selected": "களஞ்சியங்கள் எதுவும் தேர்ந்தெடுக்கப்படவில்லை.", + "settings.access_token.no_repositories_found": "களஞ்சியங்கள் எதுவும் இல்லை.", + "settings.access_token.remove": "%sஐ அகற்று", + "settings.access_token.resource_all_help": "அனைத்து ஆதாரங்களுக்கும் அணுகலை அனுமதிக்கவும்.", + "settings.access_token.resource_public_only_help": "பொதுவில் உள்ள களஞ்சியங்கள் மற்றும் நிறுவனங்களுக்கான அணுகலை வரம்பிடவும்.", + "settings.access_token.resource_specific_repo_help": "களஞ்சியங்களின் குறிப்பிட்ட பட்டியலுக்கான அணுகலை வரம்பிடவும். அனைத்து பொது களஞ்சியங்களுக்கும் படிக்க மட்டுமே அணுகல் அனுமதிக்கப்படுகிறது. களஞ்சியங்கள் மற்றும் சிக்கல்களுக்கான அணுகலை அனுமதிக்கும் அனுமதிகள் மட்டுமே இயக்கப்படும்.", + "settings.access_token.admin_disabled": "நிர்வாக அனுமதிகள் முடக்கப்பட்டுள்ளன.", + "user.activitypub_feed.feed": "Fediverse ஊட்டம்", + "user.activitypub_feed.no_activity": "ஃபெடிவர் செயல்பாடு இல்லை", + "user.activitypub_feed.is_empty": "உங்கள் ஃபீடிவர்ச் ஃபீட் காலியாக உள்ளது.", + "user.activitypub_feed.hint": "இந்த ஊட்டம் நீங்கள் பின்தொடரும் fediverse கணக்குகளின் செயல்பாடுகளையும், உங்களைக் குறிப்பிட்டுள்ள கூட்டமைப்பு இடுகைகளையும் காட்டுகிறது.", + "user.activitypub_feed.posted_on": "%[1]s இல் இடுகையிடப்பட்டது", + "user.activitypub_feed.original_source": "அசல் சான்று", + "access_token.error.specified_repos_none": "குறிப்பிட்ட களஞ்சியங்களைக் கொண்ட அணுகல் டோக்கன்கள் குறைந்தபட்சம் ஒரு களஞ்சியத்தையாவது கொண்டிருக்க வேண்டும்.", + "access_token.error.specified_repos_and_public_only": "குறிப்பிட்ட களஞ்சியங்களைக் கொண்ட அணுகல் டோக்கன்களை பொது-மட்டுமே நோக்கத்துடன் இணைக்க முடியாது.", + "access_token.error.specified_repos_and_invalid_scope": "குறிப்பிட்ட களஞ்சியங்களைக் கொண்ட அணுகல் டோக்கன்கள் வாசிப்பு: வெளியீடு, எழுதுதல்: வெளியீடு, வாசிப்பு: களஞ்சியம் மற்றும் எழுதுதல்: களஞ்சிய நோக்கங்களுடன் மட்டுமே பயன்படுத்தப்படும்.", + "actions.runners.uuid": "UUID", + "actions.runners.token": "கிள்ளாக்கு", + "actions.runners.ephemeral": "எபிமரல்", + "actions.runners.version": "பதிப்பு", + "actions.runners.list_runners.edit_column": "தொகு", + "actions.runners.list_runners.delete_column": "நீக்கு", + "actions.runners.list_runners.delete_button": "நீக்கு", + "actions.runners.list_runners.delete_button_aria": "%s ஐ நீக்கு", + "actions.runners.list_runners.edit_button": "தொகு", + "actions.runners.list_runners.edit_button_aria": "%s ஐ திருத்து", + "actions.runners.ephemeral.yes": "ஆம்", + "actions.runners.ephemeral.no": "இல்லை", + "actions.runners.task_list_repo": "இந்த ரன்னரில் இந்த களஞ்சியத்தின் அண்மைக் கால பணிகள்", + "actions.runners.task_list_org": "இந்த நிறுவனத்தில் இந்த ரன்னர் மீதான அண்மைக் கால பணிகள்", + "actions.runners.task_list_admin": "இந்த ரன்னரின் அண்மைக் கால பணிகள்", + "actions.runners.task_list_user": "இந்த ரன்னரில் இந்தப் பயனரின் அண்மைக் கால பணிகள்", + "actions.runners.edit_runner_button": "திருத்து ரன்னர்", + "actions.runners.create_runner.page_title": "புதிய ரன்னர் உருவாக்கவும்", + "actions.runners.create_runner.title": "புதிய ரன்னர் உருவாக்கவும்", + "actions.runners.create_runner.properties_fieldset": "பண்புகள்", + "actions.runners.create_runner.name_label": "பெயர்", + "actions.runners.create_runner.description_label": "விவரம்", + "actions.runners.create_runner.create_button": "உருவாக்கு", + "actions.runners.create_runner.cancel_button": "ரத்துசெய்", + "actions.runners.edit_runner.page_title": "ரன்னர் %s ஐ திருத்து", + "actions.runners.edit_runner.title": "ரன்னர் %s ஐ திருத்து", + "actions.runners.edit_runner.properties_fieldset": "பண்புகள்", + "actions.runners.edit_runner.properties_options": "விருப்பங்கள்", + "actions.runners.edit_runner.name_label": "பெயர்", + "actions.runners.edit_runner.description_label": "விவரம்", + "actions.runners.edit_runner.regenerate_token_label": "கிள்ளாக்கை மீண்டும் உருவாக்கவும்", + "actions.runners.edit_runner.regenerate_token_help": "தற்போதுள்ள கிள்ளாக்கு உடனடியாக செல்லாது. அடுத்த பக்கத்தில் புதிய கிள்ளாக்கைப் பெறுவீர்கள்.", + "actions.runners.edit_runner.save_button": "சேமி", + "actions.runners.edit_runner.cancel_button": "ரத்துசெய்", + "actions.runners.runner_setup.title": "ரன்னர் %s ஐ அமைக்கவும்", + "actions.runners.show_registration_token": "பதிவு டோக்கனைக் காட்டு", + "actions.runners.runner_details.page_title": "ரன்னர் %s", + "actions.runners.runner_details.labels_note": "ரன்னர் லேபிள்கள் Forgejo Runner இன் உள்ளமைவு கோப்பில் வரையறுக்கப்பட்டுள்ளன அல்லது கட்டளை வரி விருப்பமாக அனுப்பப்படும். Forgejo ரன்னர் Forgejo உடன் இணைப்பை நிறுவும் ஒவ்வொரு முறையும் அவை புதுப்பிக்கப்படும்.", + "actions.runners.runner_setup.page_title": "ரன்னர் %s ஐ அமைக்கவும்", + "actions.runners.runner_setup.list_of_runners_link": "ஓட்டப்பந்தய வீரர்களின் பட்டியல்", + "actions.runners.runner_setup.last_chance_copying_token": "கிள்ளாக்கை மீண்டும் பார்க்க முடியாது என்பதால், அதை நகலெடுக்கவும்!", + "actions.runners.runner_setup.button_copy_uuid_aria": "ரன்னர் UUID ஐ நகலெடுக்கவும்", + "actions.runners.runner_setup.button_copy_token_aria": "ரன்னர் கிள்ளாக்கை நகலெடுக்கவும்", + "actions.runners.runner_setup.heading_using_configuration": "ரன்னர் உள்ளமைவு கோப்பைப் பயன்படுத்துதல்", + "actions.runners.runner_setup.configuration_snippet_aria": "ரன்னர் உள்ளமைவில் செருக துணுக்கு", + "actions.runners.runner_setup.program_options_snippet_aria": "ஃபோர்சோ-ரன்னரை எவ்வாறு அழைப்பது", + "actions.runners.runner_setup.instruction_replace_connection_name": "இணைப்புப் பெயரை (forgejo எடுத்துக்காட்டில்) உங்கள் விருப்பத்தின் மதிப்புடன் மாற்றவும்.", + "actions.runners.runner_setup.heading_using_options": "நிரல் விருப்பங்களைப் பயன்படுத்துதல்", + "actions.runners.runner_setup.instruction_advanced_configurations": "கொள்கலன்கள் அல்லது மேம்பட்ட உள்ளமைவுகளில் இயங்கும் Forgejo Runner ஐ உள்ளமைக்க, ஆவணத்தைப் பார்க்கவும்.", + "actions.runners.reset_registration_token.token": "பதிவு கிள்ளாக்கு (நிறுத்தப்பட்டது)", + "actions.runs.scheduled_description": "கமிட் %[2]s திட்டமிடப்பட்ட ரன்", + "actions.runs.workflow_dispatch_description": "%[2]s ரன், %[4]s தூண்டப்பட்டது", + "actions.runs.on_push_description": "உறுதி %[2]s %[4]s மூலம் தள்ளப்பட்டது", + "actions.workflow.unknown_job_in_needs": "%[1] அடையாளம் கொண்ட வேலை, `தேவைகள்`: %[2]s இல் தெரியாத வேலைகள்.", + "actions.workflow.rerun_impossible": "பணிப்பாய்வுகளை மீண்டும் இயக்க முடியாது.", + "actions.workflow.job_rerun_impossible": "வேலையை மீண்டும் இயக்க முடியாது.", + "actions.secrets.edit_button": "\"%s\" ரகசியத்தைத் திருத்து", + "actions.secrets.mutation.header": "\"%s\" ரகசியத்தைத் திருத்து", + "actions.secrets.mutation.success_message": "\"%s\" மறைபொருள் புதுப்பிக்கப்பட்டது.", + "actions.secrets.mutation.failure_message": "\"%s\" ரகசியத்தை புதுப்பிக்க முடியவில்லை.", + "actions.secrets.mutation.name_description": "ஒரு ரகசியத்தின் பெயரில் எழுத்துக்கள், எண்கள் மற்றும் அடிக்கோடுகள் மட்டுமே இருக்க முடியும். இது FORGEJO_, GITEA_, GITHUB_ அல்லது எண்ணுடன் தொடங்க முடியாது. Forgejo அதை தானாக பெரிய எழுத்துக்கு மாற்றும்.", + "actions.secrets.mutation.value_description": "ஏற்கனவே உள்ள மதிப்பு காட்டப்படாது. நீங்கள் அதை மாற்ற விரும்பவில்லை என்றால், புலத்தை காலியாக விடவும். சிறப்பு எழுத்துக்கள் தக்கவைக்கப்படுகின்றன. சிஆர்எல்எஃப் (Windows-style வரி breaks) தானாகவே எல்எஃப் ஆக மாற்றப்படும். வரி முறிவுகள் தக்கவைக்கப்பட வேண்டுமானால், மதிப்பை Base64 உடன் குறியிடவும்.", + "members.add_member": "உறுப்பினரைச் சேர்க்கவும்", + "members.user": "பயனர்", + "members.user_already_member": "இந்தப் பயனர் ஏற்கனவே நிறுவனத்தில் உறுப்பினராக உள்ளார்.", + "members.no_team_selected": "அமைப்பின் உறுப்பினர்கள் குறைந்தபட்சம் ஒரு குழுவைச் சேர்ந்தவர்களாக இருக்க வேண்டும்.", + "form.RunnerName": "பெயர்", + "graphs.recent_commits.title": "கடந்த ஆண்டில் செய்த கமிட்களின் எண்ணிக்கை", + "graphs.code_frequency.title": "{0} வரலாற்றில் குறியீடு அதிர்வெண்", + "repo.files.caption": "களஞ்சிய கோப்புகள் (சமீபத்திய பொறுப்பு முதலில்)", + "repo.files.filename": "கோப்புப்பெயர்", + "repo.files.last_commit_message": "அண்மைக் கால உறுதி செய்தி", + "repo.files.last_commit_date": "அண்மைக் கால ஒப்பந்த தேதி", + "settings.authorized_integrations": "அங்கீகரிக்கப்பட்ட ஒருங்கிணைப்புகள்", + "settings.manage_authorized_integrations": "அங்கீகரிக்கப்பட்ட ஒருங்கிணைப்புகள்", + "settings.authorized_integration.desc": "அங்கீகரிக்கப்பட்ட ஒருங்கிணைப்புகள் Forgejo கையொப்பமிடப்பட்ட JWTகளைப் பெற அனுமதிக்கின்றன, உள்ளமைக்கப்பட்ட விதிகளுக்கு எதிராக அவர்களின் உரிமைகோரல்களை சரிபார்க்கின்றன, மேலும் Forgejo இன் APIகளை அணுக அவர்களை அனுமதிக்கின்றன.", + "settings.authorized_integration.ui.generic": "பொதுவான JWT", + "settings.authorized_integration.ui.forgejo_actions_local": "Forgejo செயல்கள் (உள்ளூர்)", + "settings.authorized_integration.none": "அங்கீகரிக்கப்பட்ட ஒருங்கிணைப்புகள் எதுவும் தற்போது கட்டமைக்கப்படவில்லை.", + "settings.authorized_integration.field.name": "பெயர்", + "settings.authorized_integration.field.description": "விவரம்", + "settings.authorized_integration.field.description.placeholder": "தொகுப்புகளை வெளியிடப் பயன்படும் போது...", + "settings.authorized_integration.field.audience": "பார்வையாளர்கள் (aud உரிமைகோரல்)", + "settings.authorized_integration.field.issuer": "வழங்குபவர் (iss உரிமைகோரல்)", + "settings.authorized_integration.field.claim_rules": "உரிமைகோரல் விதிகள் சாதொபொகு", + "settings.authorized_integration.claims.generic": "பொதுவான JWT விதிகள்", + "settings.authorized_integration.perms.title": "அனுமதிக்கப்பட்ட திறன்கள்", + "settings.authorized_integration.copy_audience": "பார்வையாளர்களை இடைநிலைப்பலகைக்கு நகலெடுக்கவும்", + "actions.runs.delete.error_could_not_load_run": "நீக்குவதற்கு இயக்கத்தை ஏற்ற முடியவில்லை.", + "actions.runs.delete.error_could_not_delete_run": "ஓட்டத்தை நீக்க முடியவில்லை.", + "actions.runs.delete.button": "ஓட்டத்தை நீக்கு", + "actions.runs.delete.error": "பணிப்பாய்வு ஓட்டத்தை நீக்க முடியவில்லை.", + "actions.runs.delete.confirm_action": "இந்த பணிப்பாய்வு ஓட்டத்தை உண்மையில் நீக்க விரும்புகிறீர்களா?" } diff --git a/options/locale_next/locale_th.json b/options/locale_next/locale_th.json index 71d798c512..e9a07dbdfe 100644 --- a/options/locale_next/locale_th.json +++ b/options/locale_next/locale_th.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "พาธ", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "สคีมา", + "admin.config.db.user": "ชื่อผู้ใช้", + "admin.config.db.name": "ชื่อ", + "admin.config.db.host": "โฮสต์", + "admin.config.db.type": "ประเภท", + "admin.config.db.header": "การกำหนดค่าฐานข้อมูล", + "admin.config.mailer.user": "ผู้ใช้", + "admin.config.mailer.smtp.port": "พอร์ต SMTP", + "admin.config.mailer.smtp.addr": "โฮสต์ SMTP", + "admin.config.mailer.enable_helo": "เปิดใช้งาน HELO", + "admin.config.mailer.protocol": "โปรโตคอล", + "admin.config.mailer.use_dummy": "Dummy", + "admin.config.mailer.sendmail.timeout": "หมดเวลา Sendmail", + "admin.config.mailer.sendmail.args": "อาร์กิวเมนต์เพิ่มเติมสำหรับ Sendmail", + "admin.config.mailer.sendmail.path": "พาธ Sendmail", + "admin.config.mailer.sendmail.use": "ใช้ Sendmail", + "admin.config.mailer.name": "ชื่อ", + "admin.config.mailer.enabled": "เปิดใช้งาน", + "admin.config.mailer.header": "การกำหนดค่า Mailer", + "admin.config.git.gc_timeout": "หมดเวลาการดำเนินการ GC", + "admin.config.git.pull_timeout": "หมดเวลาการดำเนินการดึง", + "admin.config.git.clone_timeout": "หมดเวลาการดำเนินการโคลน", + "admin.config.git.mirror_timeout": "หมดเวลาการอัปเดตมิเรอร์", + "admin.config.git.migrate_timeout": "หมดเวลาการย้าย", + "admin.config.git.gc_args": "อาร์กิวเมนต์ GC", + "admin.config.git.diff.max_files": "จำนวนไฟล์ diff สูงสุดที่แสดง", + "admin.config.git.diff.max_line_characters": "จำนวนอักขระ diff สูงสุดต่อบรรทัด", + "admin.config.git.diff.max_lines": "จำนวนบรรทัด diff สูงสุดต่อไฟล์", + "admin.config.git.disable_diff_highlight": "ปิดใช้งานการเน้นไวยากรณ์ diff", + "admin.config.git.version": "เวอร์ชัน Git", + "admin.config.git.header": "การกำหนดค่า Git", + "admin.config.ssh.minimum_key_sizes": "ขนาดคีย์ขั้นต่ำ", + "admin.config.ssh.minimum_key_size_check": "การตรวจสอบขนาดคีย์ขั้นต่ำ", + "admin.config.ssh.keygen_path": "พาธ Keygen (\"ssh-keygen\")", + "admin.config.ssh.key_test_path": "พาธทดสอบคีย์", + "admin.config.ssh.root_path": "พาธราก", + "admin.config.ssh.listen_port": "พอร์ตฟัง", + "admin.config.ssh.port": "พอร์ต", + "admin.config.ssh.domain": "โดเมนเซิร์ฟเวอร์ SSH", + "admin.config.ssh.use_builtin_server": "ใช้เซิร์ฟเวอร์ในตัว", + "admin.config.ssh.enabled": "เปิดใช้งาน", + "admin.config.ssh.header": "การกำหนดค่า SSH", + "admin.users.never_login": "ไม่เคยลงชื่อเข้าใช้", + "admin.users.last_login": "ลงชื่อเข้าใช้ล่าสุด", + "admin.users.created": "สร้างแล้ว", + "admin.users.repos": "ที่เก็บ", + "admin.users.2fa": "2FA", + "admin.users.remote": "ระยะไกล", + "admin.users.bot": "บอท", + "admin.users.reserved": "สงวนไว้", + "admin.users.restricted": "จำกัด", + "admin.users.admin": "ผู้ดูแลระบบ", + "admin.users.activated": "เปิดใช้งานแล้ว", + "admin.users.full_name": "ชื่อเต็ม", + "admin.users.name": "ชื่อผู้ใช้", + "admin.packages.published": "เผยแพร่แล้ว", + "admin.packages.size": "ขนาด", + "admin.packages.repository": "ที่เก็บ", + "admin.packages.type": "ประเภท", + "admin.packages.version": "เวอร์ชัน", + "admin.packages.name": "ชื่อ", + "admin.packages.creator": "ผู้สร้าง", + "admin.packages.owner": "เจ้าของ", + "admin.packages.unreferenced_size": "ขนาดที่ไม่ได้อ้างอิง: %s", + "admin.packages.total_size": "ขนาดทั้งหมด: %s", + "admin.repos.lfs_size": "ขนาด LFS", + "admin.repos.size": "ขนาด", + "admin.repos.issues": "ปัญหา", + "admin.repos.name": "ชื่อ", + "admin.repos.owner": "เจ้าของ", + "admin.orgs.new_orga": "องค์กรใหม่", + "admin.orgs.members": "สมาชิก", + "admin.orgs.teams": "ทีม", + "admin.orgs.name": "ชื่อ", + "admin.dashboard.rebuild_issue_indexer": "สร้างดัชนีปัญหาใหม่", + "admin.dashboard.start_schedule_tasks": "เริ่มงานการดำเนินการตามกำหนดเวลา", + "admin.dashboard.cancel_abandoned_jobs": "ยกเลิกงานการดำเนินการที่ถูกทอดทิ้ง", + "admin.dashboard.stop_endless_tasks": "หยุดงานการดำเนินการที่ไม่สิ้นสุด", + "admin.dashboard.stop_zombie_tasks": "หยุดงานการดำเนินการซอมบี้", + "admin.dashboard.gc_lfs": "เก็บขยะอ็อบเจกต์เมตา LFS", + "admin.dashboard.delete_old_system_notices": "ลบประกาศของระบบเก่าทั้งหมดออกจากฐานข้อมูล", + "admin.dashboard.update_checker": "ตัวตรวจสอบการอัปเดต", + "admin.dashboard.cleanup_actions": "ล้างบันทึกและอาร์ติแฟกต์ที่หมดอายุจากการดำเนินการ", + "admin.dashboard.cleanup_packages": "ล้างแพ็คเกจที่หมดอายุ", + "admin.dashboard.cleanup_hook_task_table": "ล้างตาราง hook_task", + "admin.dashboard.sync_external_users": "ซิงโครไนซ์ข้อมูลผู้ใช้ภายนอก", + "admin.dashboard.reinit_missing_repos": "เริ่มต้นที่เก็บ Git ที่หายไปทั้งหมดที่มีระเบียนอยู่ใหม่", + "admin.dashboard.resync_all_hooks": "ซิงโครไนซ์ฮุก pre-receive, update และ post-receive ของที่เก็บทั้งหมดอีกครั้ง", + "admin.dashboard.resync_all_sshprincipals": "อัปเดตไฟล์ \".ssh/authorized_principals\" ด้วย Principal SSH ของ Forgejo", + "admin.dashboard.resync_all_sshkeys": "อัปเดตไฟล์ \".ssh/authorized_keys\" ด้วยคีย์ SSH ของ Forgejo", + "admin.dashboard.git_gc_repos": "เก็บขยะที่เก็บทั้งหมด", + "admin.dashboard.update_migration_poster_id": "อัปเดต ID ผู้โพสต์การย้าย", + "admin.dashboard.deleted_branches_cleanup": "ล้างสาขาที่ถูกลบ", + "admin.dashboard.archive_cleanup": "ลบไฟล์เก็บถาวรของที่เก็บเก่า", + "admin.dashboard.check_repo_stats": "ตรวจสอบสถิติที่เก็บทั้งหมด", + "admin.dashboard.repo_health_check": "ตรวจสอบสุขภาพที่เก็บทั้งหมด", + "admin.dashboard.update_mirrors": "อัปเดตมิเรอร์", + "admin.dashboard.sync_repo_tags": "ซิงค์แท็กจากข้อมูล Git ไปยังฐานข้อมูล", + "admin.dashboard.sync_repo_branches": "ซิงค์สาขาที่พลาดจากข้อมูล Git ไปยังฐานข้อมูล", + "admin.dashboard.delete_generated_repository_avatars": "ลบอวาตาร์ที่เก็บที่สร้างขึ้น", + "admin.dashboard.sync_tag.started": "เริ่มการซิงค์แท็กแล้ว", + "admin.dashboard.sync_branch.started": "เริ่มการซิงค์สาขาแล้ว", + "admin.dashboard.delete_old_actions.started": "เริ่มลบกิจกรรมเก่าทั้งหมดออกจากฐานข้อมูลแล้ว", + "admin.dashboard.delete_missing_repos.started": "เริ่มงานลบที่เก็บทั้งหมดที่ไม่มีไฟล์ Git แล้ว", + "admin.dashboard.delete_repo_archives.started": "เริ่มงานลบไฟล์เก็บถาวรของที่เก็บทั้งหมดแล้ว", + "admin.dashboard.delete_inactive_accounts.started": "เริ่มงานลบบัญชีที่ไม่ได้เปิดใช้งานทั้งหมดแล้ว", + "admin.dashboard.cron.finished": "Cron: %[1]s เสร็จสิ้นแล้ว", + "admin.dashboard.cron.error": "ข้อผิดพลาดใน Cron: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s ถูกยกเลิก: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "เริ่ม Cron: %[1]s", + "admin.dashboard.task.unknown": "งานที่ไม่รู้จัก: %[1]s", + "admin.dashboard.task.finished": "งาน: %[1]s ที่เริ่มโดย %[2]s เสร็จสิ้นแล้ว", + "admin.dashboard.task.error": "ข้อผิดพลาดในงาน: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "งาน: %[1]s ถูกยกเลิก: %[3]s", + "admin.dashboard.task.process": "งาน: %[1]s", + "admin.dashboard.task.started": "เริ่มงาน: %[1]s", + "admin.dashboard.operation_run": "เรียกใช้", + "admin.dashboard.operation_switch": "สวิตช์", + "admin.dashboard.operation_name": "ชื่อการดำเนินการ", + "admin.dashboard.system_status": "สถานะระบบ", + "admin.dashboard.operations": "การดำเนินการบำรุงรักษา", + "admin.dashboard.statistic": "สรุป", + "admin.dashboard.new_version_hint": "Forgejo %s พร้อมใช้งานแล้ว คุณกำลังใช้ %s ตรวจสอบ บล็อก สำหรับรายละเอียดเพิ่มเติม", "admin.monitor.queue.settings.remove_all_items.success": "ลบรายการทั้งหมดในคิวแล้ว", "admin.monitor.queue.settings.remove_all_items": "ลบทั้งหมด", "admin.monitor.queue.settings.changed": "อัปเดตการตั้งค่าแล้ว", diff --git a/options/locale_next/locale_tok.json b/options/locale_next/locale_tok.json index 344a8c4f55..c6dfda82de 100644 --- a/options/locale_next/locale_tok.json +++ b/options/locale_next/locale_tok.json @@ -4,5 +4,13 @@ "home.welcome.activity_hint": "sina pali la sona pali li lon ni.", "home.explore_repos": "o alasa e poki", "home.explore_users": "o alasa e jan", - "home.explore_orgs": "o alasa e kulupu" + "home.explore_orgs": "o alasa e kulupu", + "watch.n_watchers": "jan %s li lukin e poki ni", + "relativetime.1day": "tenpo suno poka weka", + "themes.names.forgejo-light": "nasin kule Forgejo walo", + "themes.names.forgejo-dark": "nasin kule Forgejo pimeja", + "error.not_found.title": "lipu pi lon ala", + "keys.ssh.link": "nimi len SSH", + "keys.gpg.link": "nimi len GPG", + "moderation.issue.deletion_success": "toki ni li weka" } diff --git a/options/locale_next/locale_tr-TR.json b/options/locale_next/locale_tr-TR.json index 5528274be5..853ea7868f 100644 --- a/options/locale_next/locale_tr-TR.json +++ b/options/locale_next/locale_tr-TR.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Yol", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Şema", + "admin.config.db.user": "Kullanıcı adı", + "admin.config.db.name": "İsim", + "admin.config.db.host": "Sunucu", + "admin.config.db.type": "Türü", + "admin.config.db.header": "Veritabanı Yapılandırması", + "admin.config.mailer.user": "Kullanıcı", + "admin.config.mailer.smtp.port": "SMTP Portu", + "admin.config.mailer.smtp.addr": "SMTP Adresi", + "admin.config.mailer.enable_helo": "HELO'yu etkinleştir", + "admin.config.mailer.protocol": "Protokol", + "admin.config.mailer.use_dummy": "Sahte", + "admin.config.mailer.sendmail.timeout": "Sendmail Zaman Aşımı", + "admin.config.mailer.sendmail.args": "Sendmail İçin İlave Değişkenler", + "admin.config.mailer.sendmail.path": "Sendmail Yolu", + "admin.config.mailer.sendmail.use": "Sendmail Kullan", + "admin.config.mailer.name": "İsim", + "admin.config.mailer.enabled": "Aktif", + "admin.config.mailer.header": "Mailer Yapılandırması", + "admin.config.git.gc_timeout": "GC İşlemi Zaman Aşımı", + "admin.config.git.pull_timeout": "Çekme İşlemi Zaman Aşımı", + "admin.config.git.clone_timeout": "Klonlama İşlemi Zaman Aşımı", + "admin.config.git.mirror_timeout": "Yansı Güncelleme Zaman Aşımı", + "admin.config.git.migrate_timeout": "Göç işlemi zaman aşımı", + "admin.config.git.gc_args": "GC Argümanları", + "admin.config.git.diff.max_files": "Maksimum Değişiklik Dosyaları (gösterilecek)", + "admin.config.git.diff.max_line_characters": "Maksimum Değişiklik Karakteri (tek bir satır için)", + "admin.config.git.diff.max_lines": "Maksimum Değişiklik Satırı (tek bir dosya için)", + "admin.config.git.disable_diff_highlight": "Değişiklik Sözdizimi Vurgusunu Devre Dışı Bırak", + "admin.config.git.version": "Git Sürümü", + "admin.config.git.header": "Git Yapılandırması", + "admin.config.ssh.minimum_key_sizes": "Minimum Anahtar Uzunlukları", + "admin.config.ssh.minimum_key_size_check": "Minimum Anahtar Uzunluğu Kontrolü", + "admin.config.ssh.keygen_path": "Keygen ('ssh-keygen') Yolu", + "admin.config.ssh.key_test_path": "Anahtar Test Yolu", + "admin.config.ssh.root_path": "Kök Yol", + "admin.config.ssh.listen_port": "Port'u Dinle", + "admin.config.ssh.port": "Bağlantı Noktası", + "admin.config.ssh.domain": "SSH Sunucusu Alan Adı", + "admin.config.ssh.use_builtin_server": "Yerleşik Sunucuyu Kullan", + "admin.config.ssh.enabled": "Aktif", + "admin.config.ssh.header": "SSH Yapılandırması", + "admin.users.never_login": "Hiç Oturum Açılmadı", + "admin.users.last_login": "Son Oturum Açma", + "admin.users.created": "Oluşturuldu", + "admin.users.repos": "Depolar", + "admin.users.2fa": "2FD", + "admin.users.remote": "Uzak", + "admin.users.bot": "Bot", + "admin.users.reserved": "Rezerve", + "admin.users.restricted": "Kısıtlanmış", + "admin.users.admin": "Yönetici", + "admin.users.activated": "Aktifleştirilmiş", + "admin.users.full_name": "Tam İsim", + "admin.users.name": "Kullanıcı Adı", + "admin.packages.published": "Yayınlandı", + "admin.packages.size": "Boyut", + "admin.packages.repository": "Depo", + "admin.packages.type": "Tür", + "admin.packages.version": "Sürüm", + "admin.packages.name": "İsim", + "admin.packages.creator": "Oluşturan", + "admin.packages.owner": "Sahibi", + "admin.packages.unreferenced_size": "Referanssız Boyut: %s", + "admin.packages.total_size": "Toplam Boyut: %s", + "admin.repos.lfs_size": "LFS Boyutu", + "admin.repos.size": "Boyut", + "admin.repos.issues": "Konular", + "admin.repos.name": "İsim", + "admin.repos.owner": "Sahibi", + "admin.orgs.new_orga": "Yeni Organizasyon", + "admin.orgs.members": "Üyeler", + "admin.orgs.teams": "Takımlar", + "admin.orgs.name": "İsim", + "admin.dashboard.rebuild_issue_indexer": "Konu indeksini yeniden oluştur", + "admin.dashboard.start_schedule_tasks": "Zamanlanmış görevleri başlat", + "admin.dashboard.cancel_abandoned_jobs": "Terkedilmiş görevleri iptal et", + "admin.dashboard.stop_endless_tasks": "Daimi görevleri durdur", + "admin.dashboard.stop_zombie_tasks": "Zombi görevleri durdur", + "admin.dashboard.gc_lfs": "LFS üst nesnelerin atıklarını temizle", + "admin.dashboard.delete_old_system_notices": "Veritabanından tüm eski sistem bildirimlerini sil", + "admin.dashboard.update_checker": "Denetleyiciyi güncelle", + "admin.dashboard.cleanup_actions": "Eylemlerin süresi geçmiş günlük ve yapılarını temizle", + "admin.dashboard.cleanup_packages": "Süresi dolmuş paketleri temizleme", + "admin.dashboard.cleanup_hook_task_table": "Hook_task tablosunu temizleme", + "admin.dashboard.sync_external_users": "Harici kullanıcı verisini senkronize et", + "admin.dashboard.reinit_missing_repos": "Kayıtları bulunanlar için tüm eksik Git depolarını yeniden başlat", + "admin.dashboard.resync_all_hooks": "Tüm depoların Git kancalarını yeniden eşitle/senkronize et (pre-receive, update, post-receive, proc-receive, …)", + "admin.dashboard.resync_all_sshprincipals": "'.ssh/authorized_principals' dosyasını Forgejo SSH sorumlularıyla güncelleyin.", + "admin.dashboard.resync_all_sshkeys": "'.ssh/authority_keys' dosyasını Forgejo SSH anahtarlarıyla güncelle.", + "admin.dashboard.git_gc_repos": "Depolardaki çöpleri topla", + "admin.dashboard.update_migration_poster_id": "Taşıma poster kimliklerini güncelle", + "admin.dashboard.deleted_branches_cleanup": "Silinen dalları temizle", + "admin.dashboard.archive_cleanup": "Eski depo arşivlerini sil", + "admin.dashboard.check_repo_stats": "Tüm depo istatistiklerini denetle", + "admin.dashboard.repo_health_check": "Tüm depoların sağlığını denetle", + "admin.dashboard.update_mirrors": "Yansıları Güncelle", + "admin.dashboard.sync_repo_tags": "Git verisinden veritabanına, anahtar kelimeleri (tag'leri) eşitle (senkronize et)", + "admin.dashboard.sync_repo_branches": "Eşzamanlama git verisinden veritabanlarına dalları kaçırdı", + "admin.dashboard.delete_generated_repository_avatars": "Oluşturulan depo resimlerini sil", + "admin.dashboard.sync_tag.started": "Anahtar kelime (tag) eşitleme işlemi (senkronizasyonu) başlatıldı", + "admin.dashboard.sync_branch.started": "Dal Eşzamanlaması başladı", + "admin.dashboard.delete_old_actions.started": "Veritabanından başlatılan tüm eski eylemleri silin.", + "admin.dashboard.delete_missing_repos.started": "Git dosyaları eksik olan tüm depoları silme görevi başladı.", + "admin.dashboard.delete_repo_archives.started": "Tüm depo arşivlerini silme görevi başladı.", + "admin.dashboard.delete_inactive_accounts.started": "Etkinleştirilmemiş tüm hesapları silme görevi başladı.", + "admin.dashboard.cron.finished": "Cron: %[1]s bitti", + "admin.dashboard.cron.error": "Cron Hatası: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s iptal edildi: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Cron Başlatıldı: %[1]s", + "admin.dashboard.task.unknown": "Bilinmeyen görev: %[1]s", + "admin.dashboard.task.finished": "Görev: %[1]s %[2]s tarafından başlatıldı ve bitti", + "admin.dashboard.task.error": "Görevde Hata: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "Görev: %[1]s iptal edildi: %[3]s", + "admin.dashboard.task.process": "Görev: %[1]s", + "admin.dashboard.task.started": "Görev Başlatıldı: %[1]s", + "admin.dashboard.operation_run": "Çalıştır", + "admin.dashboard.operation_switch": "Geç", + "admin.dashboard.operation_name": "İşlem Adı", + "admin.dashboard.system_status": "Sistem Durumu", + "admin.dashboard.operations": "Bakım İşlemleri", + "admin.dashboard.statistic": "Özet", + "admin.dashboard.new_version_hint": "Forgejo %s şimdi hazır, %s çalıştırıyorsunuz. Ayrıntılar için blog'a bakabilirsiniz.", "admin.monitor.queue.settings.remove_all_items.success": "Kuyruktaki tüm öğeler kaldırıldı.", "admin.monitor.queue.settings.remove_all_items": "Tümünü kaldır", "admin.monitor.queue.settings.changed": "Ayarlar güncellendi", @@ -60,7 +186,7 @@ "admin.system_status.server_uptime": "Sunucunun Ayakta Kalma Süresi", "actions.variables.update.success": "Değişken düzenlendi.", "actions.variables.update.failed": "Değişken düzenlenemedi.", - "actions.variables.creation.success": "`\"%s\" değişkeni eklendi.`", + "actions.variables.creation.success": "\"%s\" değişkeni eklendi.", "actions.variables.creation.failed": "Değişken eklenemedi.", "actions.variables.deletion.success": "Değişken kaldırıldı.", "actions.variables.deletion.failed": "Değişken kaldırılamadı.", @@ -76,7 +202,7 @@ "webauthn.error.empty": "Bu anahtar için bir isim belirlemelisiniz.", "webauthn.error.duplicated": "Güvenlik anahtarının bu istek için izni yok. Anahtarın halihazırda kayıtlı olmadığından emin olun.", "webauthn.error.unable_to_process": "Sunucu isteğinizi işleyemedi.", - "webauthn.error.insecure": "WebAuthn sadece güvenli bağlantıyı destekler. HTTP üzerinden test etmek için \"localhost\" veya \"127.0.0.1\" adreslerini kullanabilirsiniz.", + "webauthn.error.insecure": "WebAuthn(Web Kimliği) yalnızca güvenli bağlantıları destekler. HTTP üzerinden test yapmak için \"localhost\" veya \"127.0.0.1\" kaynak adresini kullanabilirsiniz", "webauthn.error.unknown": "Bilinmeyen bir hata oluştu. Lütfen tekrar deneyin.", "webauthn.unsupported_browser": "Tarayıcınız henüz WebAuthn desteklemiyor.", "webauthn.error": "Güvenlik anahtarınız okunamıyor.", @@ -125,12 +251,12 @@ "dropzone.invalid_input_type": "Bu tür dosyalar yüklenemez.", "dropzone.file_too_big": "Dosya boyutunuz ({{filesize}} MB), ({{maxFilesize}} MB) olan maksimum boyutu aşıyor.", "dropzone.remove_file": "Dosyayı Kaldır", - "munits.data.b": "B", - "munits.data.kib": "Kilobayt", - "munits.data.mib": "Megabayt", - "munits.data.gib": "Gigabayt", + "munits.data.b": "Bayt", + "munits.data.kib": "KiloByte", + "munits.data.mib": "MegaByte", + "munits.data.gib": "GigaByte", "munits.data.tib": "TiB(TeraByte)", - "munits.data.pib": "Petabayt", + "munits.data.pib": "PetaByte", "munits.data.eib": "EiB", "packages.title": "Paketler", "packages.empty": "Henüz hiçbir paket yok.", @@ -266,8 +392,8 @@ "other": "%s çatallar" }, "stars.n_stars": { - "one": "%s yıldız", - "other": "%s yıldızlar" + "one": "%s yıldızlama", + "other": "%s yıldızlamalar" }, "repo.pulls.merged_title_desc": { "one": "%[2]s 'nden gelen %[1]d değişikliği(commit'i), %[3]s 'ine %[4]s olarak birleştirildi", @@ -342,27 +468,27 @@ "repo.issue_indexer.title": "Sorun Endeksleyici", "relativetime.mins": { "one": "%d dakika önce", - "other": "%d dakikalar önce" + "other": "%d dakika_önce" }, "relativetime.hours": { "one": "%d saat önce", - "other": "%d saatler önce" + "other": "%d saat_önce" }, "relativetime.days": { "one": "%d gün önce", - "other": "%d günler önce" + "other": "%d gün_önce" }, "relativetime.weeks": { "one": "%d hafta önce", - "other": "%d haftalar önce" + "other": "%d hafta_önce" }, "relativetime.months": { "one": "%d ay önce", - "other": "%d aylar önce" + "other": "%d ay_önce" }, "relativetime.years": { "one": "%d yıl önce", - "other": "%d yıllar önce" + "other": "%d yıl_önce" }, "repo.settings.push_mirror.branch_filter.label": "Dal süzgeci (isteğe bağlı)", "repo.settings.push_mirror.branch_filter.description": "Yansıtılıcak dallar. Tüm dalları yansıtmak için boş bırakın. Sözdizimi için $[2]s dokümantasyonuna başvurun. Örneğin: main, release/*", @@ -510,24 +636,24 @@ "meta.last_line": "Steve Jobs ile Nejat İşler'in kardeş olduğunu biliyor muydunuz.", "repo.issues.filter_poster.hint": "Yazara göre filtrele", "repo.issues.filter_assignee.hint": "Atanan kullanıcıya göre filtrele", - "repo.issues.filter_reviewers.hint": "Yorum yapan kullanıcıya göre filtrele", + "repo.issues.filter_reviewers.hint": "Değerlendiren kullanıcıya göre filtrele", "repo.issues.filter_mention.hint": "Bahsedilen kullanıcıya göre filtrele", - "repo.issues.filter_modified.hint": "Son değiştirilme tarihine göre filtrele", + "repo.issues.filter_modified.hint": "Son düzenleyip değiştirilme tarihine göre filtrele", "repo.issues.filter_sort.hint_with_placeholder": "Sıralama: %s", "issues.filters.labels.exclude": "Etiketi hariç tut", "issues.filters.labels.unexclude": "Kesin olarak hariç tut", - "repo.pulls.auto_merge.no_permission": "Bu çekme isteğinin otomatik birleştirilmesini iptal etme izniniz yok.", + "repo.pulls.auto_merge.no_permission": "Bu çekme isteği'nin otomatik birleştirilmesini iptal etme izniniz yok.", "repo.pulls.poster_manage_approval": "Onay Yönetimi", "repo.pulls.poster_requires_approval": "Bazı iş akışları incelenmeyi bekliyor.", "repo.pulls.poster_requires_approval.tooltip": "Bu çekme isteğinin yazarı, çatallanmış bir depodan oluşturulan veya AGit ile oluşturulan bir çekme isteği tarafından tetiklenen iş akışlarını çalıştırma konusunda güvenilir bulunmamaktadır. `pull_request` olayıyla tetiklenen iş akışları, onaylanana kadar çalıştırılmayacaktır.", - "repo.pulls.poster_is_trusted": "Bu çekme isteği'nin yazarı her zaman güvenilir kabul edilir, workflowsiş akışlarını çalıştırma konusunda.", + "repo.pulls.poster_is_trusted": "Bu çekme isteğinin ( pull request ) yazarı a her zaman iş akışlarını/ workflows yürütme konusunda güvenilir bir yazardır.", "repo.pulls.poster_is_trusted.tooltip": "Bu çekme isteğinin yazarı, `pull_request` olayları tarafından tetiklenen iş akışlarını çalıştırma konusunda açıkça güvenilir kabul edilmektedir.", - "repo.pulls.poster_trust_deny": "Reddet (Kabul etme)", + "repo.pulls.poster_trust_deny": "Reddet", "repo.pulls.poster_trust_deny.tooltip": "Onay bekleyen iş akışları iptal edilecektir.", "repo.pulls.poster_trust_once": "Tek seferlik onayla", - "repo.pulls.poster_trust_once.tooltip": "Bir `pull_request` olayıyla tetiklenen iş akışları bu commit üzerinde çalışacak, ancak bu pull request'e gönderilecek tüm gelecekteki commit'ler için onaylanması gerekecektir.", + "repo.pulls.poster_trust_once.tooltip": "Bir `pull_request` olayıyla tetiklenen iş akışları bu commit üzerinde çalışacak, ancak bu çekme isteği'ne gönderilecek tüm gelecekteki değişiklik(commit)'ler için onaylanması gerekecektir.", "repo.pulls.poster_trust_always": "Her zaman onayla", - "repo.pulls.poster_trust_always.tooltip": "Bir `pull_request` olayıyla tetiklenen iş akışları bu commit üzerinde çalışacak ve bu pull request'ten veya aynı kullanıcı tarafından oluşturulan gelecekteki pull request'lerden gelen çalıştırmaları onaylamaya gerek kalmayacaktır.", + "repo.pulls.poster_trust_always.tooltip": "Bir `pull_request` olayıyla tetiklenen iş akışları bu değişiklik (commit) üzerinde çalışacaktır ve ayrıca bu çekme isteği'nden ya da aynı kullanıcı tarafından oluşturulan gelecekteki çekme isteklerinden gelen çalıştırma işlemlerini onaylamaya gerek kalmayacaktır.", "repo.pulls.poster_trust_revoke": "Geri al", "repo.pulls.poster_trust_revoke.tooltip": "Bu çekme isteğinin yazarı, artık `pull_request` olayıyla tetiklenen iş akışlarını çalıştırma konusunda güvenilir kabul edilmeyecek; her çalıştırma işlemi manuel olarak onaylanmalıdır.", "repo.view.gitmodules_too_large": ".gitmodules dosyası çok büyük ve (örneğin API çağrılarında) göz ardı edilecektir", @@ -658,11 +784,11 @@ "actions.runners.task_list_user": "Bu kullanıcının bu çalıştırıcıdaki son görevleri", "actions.runners.edit_runner_button": "Koşucuyu(runner) düzenle", "actions.runners.create_runner.page_title": "Yeni koşucu(runner) oluştur", - "issues.updated": "güncellenenler %s", + "issues.updated": "%s güncel", "actions.runners.create_runner.title": "Yeni çalıştırıcı oluştur", "actions.runners.create_runner.properties_fieldset": "Özellikler", "actions.runners.create_runner.name_label": "Adı", - "actions.runners.create_runner.description_label": "Açıklamasının", + "actions.runners.create_runner.description_label": "Açıklaması", "actions.runners.create_runner.create_button": "Yarat", "actions.runners.create_runner.cancel_button": "İptal et", "actions.runners.edit_runner.page_title": "%s çalıştırıcısını düzenle", @@ -743,5 +869,13 @@ "editor.toggle_whole_word": "Tam kelime eşleştirme özelliğini aç/kapat", "form.RunnerName": "Adı", "graphs.recent_commits.title": "Geçtiğimiz yılki değişiklik(commit) sayısı", - "graphs.code_frequency.title": "{0} yıllık tarih boyunca kod sıklığı" + "graphs.code_frequency.title": "{0} yıllık tarih boyunca kod sıklığı", + "repo.files.last_commit_date": "En son değişiklik(commit) tarihi", + "repo.files.caption": "Depo dosyaları (en son değişiklik(commit) ilk sırada)", + "repo.files.filename": "Dosya adı", + "repo.files.last_commit_message": "En son değişiklik(commit) mesajı", + "actions.variables.not_found": "Değişken bulunamadı.", + "markup.filepreview.line": "%[2]s 'de %[1]d Satır", + "markup.filepreview.lines": "%[3]s içindeki %[1]d ile %[2]d arasındaki Satırlar", + "markup.filepreview.truncated": "Önizleme kısaltılmıştır" } diff --git a/options/locale_next/locale_uk-UA.json b/options/locale_next/locale_uk-UA.json index 9913d47281..e61a78ed2e 100644 --- a/options/locale_next/locale_uk-UA.json +++ b/options/locale_next/locale_uk-UA.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "Шлях", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "Схема", + "admin.config.db.user": "Ім’я користувача", + "admin.config.db.name": "Ім’я", + "admin.config.db.host": "Хост", + "admin.config.db.type": "Тип", + "admin.config.db.header": "Конфігурація бази даних", + "admin.config.mailer.user": "Користувач", + "admin.config.mailer.smtp.port": "Порт SMTP", + "admin.config.mailer.smtp.addr": "Адреса SMTP", + "admin.config.mailer.enable_helo": "Увімкнути HELO", + "admin.config.mailer.protocol": "Протокол", + "admin.config.mailer.use_dummy": "Болванка", + "admin.config.mailer.sendmail.timeout": "Тайм-аут Sendmail", + "admin.config.mailer.sendmail.args": "Додаткові аргументи для Sendmail", + "admin.config.mailer.sendmail.path": "Шлях до Sendmail", + "admin.config.mailer.sendmail.use": "Використовувати Sendmail", + "admin.config.mailer.name": "Ім’я", + "admin.config.mailer.enabled": "Увімкнено", + "admin.config.mailer.header": "Налаштування пошти", + "admin.config.git.gc_timeout": "Тайм-аут операції збирача сміття", + "admin.config.git.pull_timeout": "Тайм-аут операції отримання змін", + "admin.config.git.clone_timeout": "Тайм-аут операції клонування", + "admin.config.git.mirror_timeout": "Тайм-аут оновлення дзеркала", + "admin.config.git.migrate_timeout": "Тайм-аут перенесення", + "admin.config.git.gc_args": "Аргументи збирача сміття", + "admin.config.git.diff.max_files": "Максимум файлів для показу при порівнянні", + "admin.config.git.diff.max_line_characters": "Максимум символів на рядок при порівнянні", + "admin.config.git.diff.max_lines": "Максимум рядків на файл при порівнянні", + "admin.config.git.disable_diff_highlight": "Вимкнути підсвітку синтаксису diff", + "admin.config.git.version": "Версія Git", + "admin.config.git.header": "Конфігурація Git", + "admin.config.ssh.minimum_key_sizes": "Мінімальні розміри ключів", + "admin.config.ssh.minimum_key_size_check": "Перевірка мінімального розміру ключа", + "admin.config.ssh.keygen_path": "Шлях до генератора ключів («ssh-keygen»)", + "admin.config.ssh.key_test_path": "Шлях до тестового ключа", + "admin.config.ssh.root_path": "Шлях до кореня", + "admin.config.ssh.listen_port": "Порт, що прослуховується", + "admin.config.ssh.port": "Порт", + "admin.config.ssh.domain": "Домен сервера SSH", + "admin.config.ssh.use_builtin_server": "Використовувати вбудований сервер", + "admin.config.ssh.enabled": "Увімкнено", + "admin.config.ssh.header": "Конфігурація SSH", + "admin.users.never_login": "Ніколи не входив", + "admin.users.last_login": "Останній вхід", + "admin.users.created": "Створено", + "admin.users.repos": "Репозиторії", + "admin.users.2fa": "2FA", + "admin.users.remote": "Віддалено", + "admin.users.bot": "Бот", + "admin.users.reserved": "Зарезервовано", + "admin.users.restricted": "Обмежено", + "admin.users.admin": "Адміністратор", + "admin.users.activated": "Активовано", + "admin.users.full_name": "Повне ім’я", + "admin.users.name": "Ім’я користувача", + "admin.packages.published": "Опубліковано", + "admin.packages.size": "Розмір", + "admin.packages.repository": "Репозиторій", + "admin.packages.type": "Тип", + "admin.packages.version": "Версія", + "admin.packages.name": "Назва", + "admin.packages.creator": "Творець", + "admin.packages.owner": "Власник", + "admin.packages.unreferenced_size": "Розмір без посилань: %s", + "admin.packages.total_size": "Загальний розмір: %s", + "admin.repos.lfs_size": "Розмір LFS", + "admin.repos.size": "Розмір", + "admin.repos.issues": "Задачі", + "admin.repos.name": "Назва", + "admin.repos.owner": "Власник", + "admin.orgs.new_orga": "Нова організація", + "admin.orgs.members": "Учасники", + "admin.orgs.teams": "Команди", + "admin.orgs.name": "Назва", + "admin.dashboard.rebuild_issue_indexer": "Перебудувати індексатор задач", + "admin.dashboard.start_schedule_tasks": "Запустити заплановані завдання Дій", + "admin.dashboard.cancel_abandoned_jobs": "Скасувати покинуті завдання Дій", + "admin.dashboard.stop_endless_tasks": "Зупинити нескінченні завдання Дій", + "admin.dashboard.stop_zombie_tasks": "Зупинити зомбі-завдання Дій", + "admin.dashboard.gc_lfs": "Виконати очистку сміття метаоб’єктів LFS", + "admin.dashboard.delete_old_system_notices": "Видалити всі старі сповіщення системи з бази даних", + "admin.dashboard.update_checker": "Перевірка оновлень", + "admin.dashboard.cleanup_actions": "Очистити прострочені журнали й артефакти від Дій", + "admin.dashboard.cleanup_packages": "Очистити непридатні пакунки", + "admin.dashboard.cleanup_hook_task_table": "Очистити таблицю hook_task", + "admin.dashboard.sync_external_users": "Синхронізувати дані зовнішніх користувачів", + "admin.dashboard.reinit_missing_repos": "Переініціалізувати всі Git-репозиторії, для яких існують записи", + "admin.dashboard.resync_all_hooks": "Пересинхронізувати Git-хуки в усіх репозиторіях (pre-receive, update, post-receive, proc-receive тощо)", + "admin.dashboard.resync_all_sshprincipals": "Оновити файл «.ssh/authorized_principals» з SSH-принципалами Forgejo.", + "admin.dashboard.resync_all_sshkeys": "Оновити файл «.ssh/authorized_keys» з SSH-ключами Forgejo.", + "admin.dashboard.git_gc_repos": "Виконати очистку сміття для всіх репозиторіїв", + "admin.dashboard.update_migration_poster_id": "Оновити перенесені ID авторів", + "admin.dashboard.deleted_branches_cleanup": "Прибрати видалені гілки", + "admin.dashboard.archive_cleanup": "Видалити старі архіви репозиторіїв", + "admin.dashboard.check_repo_stats": "Перевірити статистику всіх репозиторіїв", + "admin.dashboard.repo_health_check": "Перевірка стану всіх репозиторіїв", + "admin.dashboard.update_mirrors": "Оновити дзеркала", + "admin.dashboard.sync_repo_tags": "Синхронізувати теги з даних Git із базою даних", + "admin.dashboard.sync_repo_branches": "Синхронізувати відсутні гілки з даних Git в базу даних", + "admin.dashboard.delete_generated_repository_avatars": "Видалити репозиторій з згенерованими аватарами", + "admin.dashboard.sync_tag.started": "Розпочато синхронізацію тегів", + "admin.dashboard.sync_branch.started": "Розпочато синхронізацію гілок", + "admin.dashboard.delete_old_actions.started": "Розпочато видалення всіх старих активностей з бази даних.", + "admin.dashboard.delete_missing_repos.started": "Запущено завдання видалення всіх репозиторіїв, в яких відсутні файли Git.", + "admin.dashboard.delete_repo_archives.started": "Запущено завдання видалення всіх архівів репозиторіїв.", + "admin.dashboard.delete_inactive_accounts.started": "Запущено завдання видалення всі неактивованих облікових записів.", + "admin.dashboard.cron.finished": "Cron: %[1]s завершено", + "admin.dashboard.cron.error": "Помилка в Cron: %s: %[3]s", + "admin.dashboard.cron.cancelled": "Cron: %[1]s скасовано: %[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "Запущено Cron: %[1]s", + "admin.dashboard.task.unknown": "Невідоме завдання: %[1]s", + "admin.dashboard.task.finished": "Завершилося завдання, яке запустив %[2]s: %[1]s", + "admin.dashboard.task.error": "Помилка у завданні: %[1]s:%[3]s", + "admin.dashboard.task.cancelled": "Завдання: %[1]s скасовано: %[3]s", + "admin.dashboard.task.process": "Завдання: %[1]s", + "admin.dashboard.task.started": "Запущено завдання: %[1]s", + "admin.dashboard.operation_run": "Запустити", + "admin.dashboard.operation_switch": "Перемкнути", + "admin.dashboard.operation_name": "Назва операції", + "admin.dashboard.system_status": "Стан системи", + "admin.dashboard.operations": "Технічне обслуговування", + "admin.dashboard.statistic": "Підсумок", + "admin.dashboard.new_version_hint": "Вийшла %s версія Forgejo, ви використовуєте %s. Докладніше читайте у блозі.", "admin.monitor.queue.settings.remove_all_items.success": "Усі елементи в черзі видалено.", "admin.monitor.queue.settings.remove_all_items": "Видалити всі", "admin.monitor.queue.settings.changed": "Налаштування оновлено", @@ -42,8 +168,8 @@ "admin.system_status.mcache_structures_usage": "Використання структур MCache", "admin.system_status.mspan_structures_obtained": "Отримано структур MSpan", "admin.system_status.mspan_structures_usage": "Використання структур MSpan", - "admin.system_status.stack_memory_obtained": "Отримано пам’яті стеком", - "admin.system_status.bootstrap_stack_usage": "Використання стеку bootstrap", + "admin.system_status.stack_memory_obtained": "Отримано стекової пам’яті", + "admin.system_status.bootstrap_stack_usage": "Використання стекової пам’яті", "admin.system_status.heap_objects": "Об’єктів динамічної пам’яті", "admin.system_status.heap_memory_released": "Звільнено динамічної пам’яті", "admin.system_status.heap_memory_in_use": "Динамічної пам’яті використовується", @@ -84,7 +210,7 @@ "webauthn.error.unknown": "Сталася невідома помилка. Будь ласка, повторіть спробу.", "webauthn.unsupported_browser": "Ваш браузер наразі не підтримує WebAuthn.", "webauthn.error": "Не вдалося розпізнати ключ безпеки.", - "webauthn.use_twofa": "Введіть код підтвердження з телефону", + "webauthn.use_twofa": "Уведіть код підтвердження з телефона", "webauthn.press_button": "Натисніть кнопку на ключі безпеки…", "webauthn.sign_in": "Натисніть кнопку на ключі безпеки. Якщо ключ безпеки не має кнопки, від’єднайте його і під’єднайте ще раз.", "webauthn.insert_key": "Під’єднайте ключ безпеки", @@ -771,5 +897,57 @@ "repo.files.filename": "Назва файлу", "repo.files.last_commit_message": "Повідомлення останнього коміту", "repo.files.last_commit_date": "Дата останнього коміту", - "repo.files.caption": "Файли репозиторію (спочатку останній коміт)" + "repo.files.caption": "Файли репозиторію (спочатку останній коміт)", + "settings.authorized_integration.field.name": "Назва", + "settings.authorized_integration.field.description": "Опис", + "settings.authorized_integration.ui.forgejo_actions_local": "Дії Forgejo (локальні)", + "settings.authorized_integration.edit": "Редагувати", + "repo.pulls.status_checks_skipped": "Пропущено", + "repo.packages.visibility_warning": "Це приватний репозиторій, але пов’язані з ним пакунки є загальнодоступними (власник %s є публічним).", + "settings.authorized_integrations": "Авторизовані інтеграції", + "settings.manage_authorized_integrations": "Авторизовані інтеграції", + "settings.authorized_integration.edit_page_title": "Авторизована інтеграція %s", + "settings.authorized_integration.create_page_title": "Створити авторизовану інтеграцію", + "settings.authorized_integration.save": "Зберегти авторизовану інтеграцію", + "settings.authorized_integration.create": "Створити авторизовану інтеграцію", + "settings.authorized_integration.create_success": "Створено авторизовану інтеграцію: %s", + "settings.authorized_integration.name.required": "Необхідно вказати назву авторизованої інтеграції.", + "settings.authorized_integration.add": "Додати авторизовану інтеграцію", + "settings.authorized_integration.delete.header": "Видалити авторизовану інтеграцію", + "settings.authorized_integration.specified_repos_none": "Авторизовані інтеграції з указаними репозиторіями повинні мати принаймні один репозиторій.", + "settings.authorized_integration.specified_repos_and_public_only": "Авторизовані інтеграції з указаними репозиторіями не можна використовувати з налаштуванням «Тільки публічні».", + "settings.authorized_integration.specified_repos_and_invalid_scope": "Авторизовані інтеграції з указаними репозиторіями можна використовувати лише з дозволами read:issue, write:issue, read:repository та write:repository.", + "settings.authorized_integration.deleted": "Авторизовану інтеграцію успішно видалено.", + "settings.authorized_integration.delete.body": "Видалення авторизованої інтеграції скасує доступ застосунку інтеграції до вашого облікового запису. Ця дія є остаточною і її неможливо скасувати. Створена заново авторизована інтеграція матиме інше твердження про аудиторію (aud). Продовжити?", + "settings.authorized_integration.field.audience": "Аудиторія (твердження aud)", + "settings.authorized_integration.field.issuer": "Емітент (твердження iss)", + "settings.authorized_integration.ui.generic": "Загальний JWT", + "settings.authorized_integration.claims.generic": "Правила загального JWT", + "settings.authorized_integration.none": "Не налаштовано жодної авторизованої інтеграції.", + "settings.authorized_integration.field.description.placeholder": "Використовується для публікації пакунків, якщо...", + "settings.authorized_integration.desc": "Авторизовані інтеграції дозволяють Forgejo отримувати підписані JWT, перевіряти їхні твердження на відповідність налаштованим правилам та надавати їм доступ до API Forgejo.", + "settings.authorized_integration.perms.title": "Дозволені можливості", + "settings.authorized_integration.copy_audience": "Копіювати аудиторію в буфер обміну", + "settings.authorized_integration.issuer.invalid": "Не вдалося перевірити емітента: %s", + "settings.authorized_integration.claim_rules.invalid": "Не вдалося перевірити правила заявки: %s", + "settings.authorized_integration.field.claim_rules": "JSON правил заявки", + "actions.runs.delete.error_could_not_load_run": "Не вдалося завантажити запуск для видалення.", + "actions.runs.delete.error_could_not_delete_run": "Не вдалося видалити запуск.", + "actions.runs.delete.button": "Видалити запуск", + "actions.runs.delete.error": "Не вдалося видалити запуск робочого потоку.", + "actions.runs.delete.confirm_action": "Ви дійсно хочете видалити цей запуск робочого потоку?", + "admin.auths.oauth2_dyn_group_maps_removal": "Динамічно видаляти користувачів з усіх команд, до яких вони не додані, на основі зіставлення груп.", + "admin.auths.oauth2_dyn_group_maps": "Динамічно додавати користувачів до команд на основі динамічного зіставлення груп. (Необов’язково)", + "settings.authorized_integration.forgejo_actions_local.event.label": "Подія:", + "settings.authorized_integration.forgejo_actions_local.git_ref.label": "Посилання Git:", + "settings.authorized_integration.forgejo_actions_local.workflow_file.error": "Помилка під час розбору файлу робочого потоку: %s", + "settings.authorized_integration.forgejo_actions_local.git_ref.error": "Помилка під час розбору посилання Git: %s", + "settings.authorized_integration.forgejo_actions_local.workflow_file.label": "Файл робочого потоку (без каталогу):", + "settings.authorized_integration.forgejo_actions_local.select_repo": "Вибрати", + "settings.authorized_integration.forgejo_actions_local.select_repository": "Виберіть репозиторій: (у ньому мають бути ввімкнені Дії Forgejo)", + "settings.authorized_integration.forgejo_actions_local.repo.required": "Необхідно вибрати репозиторій-джерело Дій Forgejo.", + "settings.authorized_integration.forgejo_actions_local.event.help": "Якщо події не вибрано, буде дозволено будь-яку подію.", + "settings.authorized_integration.forgejo_actions_local.git_ref.help": "Якщо залишити порожнім, буде дозволено будь-яке посилання. Синтаксис шаблонів дивіться у документації %[2]s.
Приклади: refs/heads/main, refs/pull/*/head.", + "settings.authorized_integration.forgejo_actions_local.workflow_file.help": "Якщо залишити порожнім, буде дозволено будь-який робочий потік. Синтаксис шаблонів дивіться у документації %[2]s.
Приклади: testing.yml, test-*.yml.", + "settings.authorized_integration.forgejo_actions_local.description": "Дії Forgejo зможуть отримувати доступ до Forgejo через цю авторизовану інтеграцію з одного вибраного репозиторію, якщо виконання відповідає умовам, визначеним нижче." } diff --git a/options/locale_next/locale_vi.json b/options/locale_next/locale_vi.json index 28b84ca6ec..3197d254c4 100644 --- a/options/locale_next/locale_vi.json +++ b/options/locale_next/locale_vi.json @@ -1,4 +1,7 @@ { + "admin.config.git.clone_timeout": "Thời gian tối đa Thao tác Nhân bản", + "admin.dashboard.sync_repo_tags": "Đồng bộ hoá các nhãn từ dữ liệu Git đến cơ sở dữ liệu", + "admin.dashboard.sync_tag.started": "Đã bắt đầu đồng bộ hoá nhãn", "webauthn.error.timeout": "Hết thời gian đọc khóa mất rồi. Hãy tải lại trang và thử lại.", "webauthn.error.empty": "Bạn phải đặt tên cho khóa này.", "webauthn.error.duplicated": "Khóa bảo mật không được phép cho yêu cầu này. Vui lòng đảm bảo rằng khóa chưa được đăng ký trước đó.", diff --git a/options/locale_next/locale_zh-CN.json b/options/locale_next/locale_zh-CN.json index bd7fbcf3d2..118d40ce86 100644 --- a/options/locale_next/locale_zh-CN.json +++ b/options/locale_next/locale_zh-CN.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "数据库路径", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "架构模式", + "admin.config.db.user": "用户名", + "admin.config.db.name": "数据库名称", + "admin.config.db.host": "主机", + "admin.config.db.type": "类型", + "admin.config.db.header": "数据库配置", + "admin.config.mailer.user": "发送者帐号", + "admin.config.mailer.smtp.port": "SMTP端口", + "admin.config.mailer.smtp.addr": "SMTP地址", + "admin.config.mailer.enable_helo": "启用HELO", + "admin.config.mailer.protocol": "协议", + "admin.config.mailer.use_dummy": "Dummy", + "admin.config.mailer.sendmail.timeout": "Sendmail超时", + "admin.config.mailer.sendmail.args": "Sendmail的额外参数", + "admin.config.mailer.sendmail.path": "Sendmail路径", + "admin.config.mailer.sendmail.use": "使用Sendmail", + "admin.config.mailer.name": "任务名称", + "admin.config.mailer.enabled": "启用服务", + "admin.config.mailer.header": "邮件配置", + "admin.config.git.gc_timeout": "GC操作超时", + "admin.config.git.pull_timeout": "拉取操作超时", + "admin.config.git.clone_timeout": "克隆操作超时", + "admin.config.git.mirror_timeout": "镜像更新操作超时", + "admin.config.git.migrate_timeout": "迁移操作超时", + "admin.config.git.gc_args": "GC参数", + "admin.config.git.diff.max_files": "差异对比显示的最大文件数", + "admin.config.git.diff.max_line_characters": "差异对比显示的最大字符数(单行)", + "admin.config.git.diff.max_lines": "差异对比显示的最大行数(单个文件)", + "admin.config.git.disable_diff_highlight": "禁用差异对比语法高亮", + "admin.config.git.version": "Git版本", + "admin.config.git.header": "Git配置", + "admin.config.ssh.minimum_key_sizes": "密钥最小长度限制", + "admin.config.ssh.minimum_key_size_check": "密钥最小长度检查", + "admin.config.ssh.keygen_path": "密钥生成器(“ssh-keygen”)路径", + "admin.config.ssh.key_test_path": "密钥测试路径", + "admin.config.ssh.root_path": "根目录", + "admin.config.ssh.listen_port": "监听端口", + "admin.config.ssh.port": "端口", + "admin.config.ssh.domain": "SSH服务器域名", + "admin.config.ssh.use_builtin_server": "使用内置SSH服务器", + "admin.config.ssh.enabled": "启用", + "admin.config.ssh.header": "SSH配置", + "admin.users.never_login": "从未登录", + "admin.users.last_login": "上次登录", + "admin.users.created": "创建时间", + "admin.users.repos": "仓库数", + "admin.users.2fa": "两步验证", + "admin.users.remote": "远程", + "admin.users.bot": "机器人", + "admin.users.reserved": "保留", + "admin.users.restricted": "受限", + "admin.users.admin": "管理员", + "admin.users.activated": "已激活", + "admin.users.full_name": "全名", + "admin.users.name": "用户名", + "admin.packages.published": "已发布", + "admin.packages.size": "大小", + "admin.packages.repository": "仓库", + "admin.packages.type": "类型", + "admin.packages.version": "版本", + "admin.packages.name": "名称", + "admin.packages.creator": "创建者", + "admin.packages.owner": "所有者", + "admin.packages.unreferenced_size": "未引用大小:%s", + "admin.packages.total_size": "总大小:%s", + "admin.repos.lfs_size": "LFS大小", + "admin.repos.size": "大小", + "admin.repos.issues": "议题数", + "admin.repos.name": "名称", + "admin.repos.owner": "所有者", + "admin.orgs.new_orga": "创建新的组织", + "admin.orgs.members": "成员", + "admin.orgs.teams": "团队", + "admin.orgs.name": "名称", + "admin.dashboard.rebuild_issue_indexer": "重建议题索引", + "admin.dashboard.start_schedule_tasks": "开始安排操作任务", + "admin.dashboard.cancel_abandoned_jobs": "取消放弃的操作任务", + "admin.dashboard.stop_endless_tasks": "停止无休止的操作任务", + "admin.dashboard.stop_zombie_tasks": "停止僵尸操作任务", + "admin.dashboard.gc_lfs": "垃圾回收LFS元数据", + "admin.dashboard.delete_old_system_notices": "从数据库中删除所有旧系统通知", + "admin.dashboard.update_checker": "更新检查器", + "admin.dashboard.cleanup_actions": "清理过期的Actions日志和制品", + "admin.dashboard.cleanup_packages": "清理过期的软件包", + "admin.dashboard.cleanup_hook_task_table": "清理hook_task表", + "admin.dashboard.sync_external_users": "同步外部用户数据", + "admin.dashboard.reinit_missing_repos": "重新初始化所有丢失的Git仓库存在的记录", + "admin.dashboard.resync_all_hooks": "重新同步所有仓库的Git钩子(pre-receive、update、post-receive、proc-receive等)", + "admin.dashboard.resync_all_sshprincipals": "使用Forgejo的SSH规则更新“.ssh/authorized_principals”文件。", + "admin.dashboard.resync_all_sshkeys": "使用Forgejo的SSH密钥更新“.ssh/authorized_keys”文件。", + "admin.dashboard.git_gc_repos": "对仓库进行垃圾回收", + "admin.dashboard.update_migration_poster_id": "更新迁移的发布者ID", + "admin.dashboard.deleted_branches_cleanup": "清理已删除的分支", + "admin.dashboard.archive_cleanup": "删除旧的仓库存档", + "admin.dashboard.check_repo_stats": "检查所有仓库统计", + "admin.dashboard.repo_health_check": "对所有仓库健康检查", + "admin.dashboard.update_mirrors": "更新镜像仓库", + "admin.dashboard.sync_repo_tags": "同步Git数据中的标签至数据库", + "admin.dashboard.sync_repo_branches": "将缺少的分支从Git数据同步到数据库", + "admin.dashboard.delete_generated_repository_avatars": "删除生成的仓库头像", + "admin.dashboard.sync_tag.started": "标签同步已开始", + "admin.dashboard.sync_branch.started": "分支同步已开始", + "admin.dashboard.delete_old_actions.started": "已开始从数据库中删除所有旧操作记录。", + "admin.dashboard.delete_missing_repos.started": "删除所有丢失Git文件的仓库任务已启动。", + "admin.dashboard.delete_repo_archives.started": "删除所有仓库存档任务已启动。", + "admin.dashboard.delete_inactive_accounts.started": "删除所有未激活的账户任务已启动。", + "admin.dashboard.cron.finished": "任务:%[1]s已经完成", + "admin.dashboard.cron.error": "任务中的错误:%s:%[3]s", + "admin.dashboard.cron.cancelled": "定时任务:%[1]s已取消:%[3]s", + "admin.dashboard.cron.process": "计划任务:%[1]s", + "admin.dashboard.cron.started": "已开始计划任务:%[1]s", + "admin.dashboard.task.unknown": "未知任务:%[1]s", + "admin.dashboard.task.finished": "任务:%[2]s启动的%[1]s已完成", + "admin.dashboard.task.error": "任务中的错误:%[1]s:%[3]s", + "admin.dashboard.task.cancelled": "任务:%[1]s已取消:%[3]s", + "admin.dashboard.task.process": "任务:%[1]s", + "admin.dashboard.task.started": "已开始任务:%[1]s", + "admin.dashboard.operation_run": "执行", + "admin.dashboard.operation_switch": "开关", + "admin.dashboard.operation_name": "操作名称", + "admin.dashboard.system_status": "系统状态", + "admin.dashboard.operations": "维护操作", + "admin.dashboard.statistic": "摘要", + "admin.dashboard.new_version_hint": "Forgejo %s现已可用,您正在运行%s。查看博客了解详情。", "admin.monitor.queue.settings.remove_all_items.success": "队列中的所有项目已被移除。", "admin.monitor.queue.settings.remove_all_items": "移除全部", "admin.monitor.queue.settings.changed": "设置已更新", @@ -34,57 +160,57 @@ "admin.system_status.last_gc_pause": "上次GC暂停时间", "admin.system_status.total_gc_pause": "GC暂停时间总量", "admin.system_status.last_gc_time": "距离上次GC时间", - "admin.system_status.next_gc_recycle": "下次GC内存回收量", - "admin.system_status.other_system_allocation_obtained": "其它被分配的系统内存", - "admin.system_status.gc_metadata_obtained": "被分配的GC元数据内存", - "admin.system_status.profiling_bucket_hash_table_obtained": "被分配的剖析哈希表内存", - "admin.system_status.mcache_structures_obtained": "被分配的MCache结构内存", - "admin.system_status.mcache_structures_usage": "MCache结构内存使用量", - "admin.system_status.mspan_structures_obtained": "被分配的MSpan结构内存", - "admin.system_status.mspan_structures_usage": "MSpan结构内存使用量", - "admin.system_status.stack_memory_obtained": "被分配的Stack内存", - "admin.system_status.bootstrap_stack_usage": "启动Stack使用量", - "admin.system_status.heap_objects": "Heap对象数量", - "admin.system_status.heap_memory_released": "被释放的Heap内存", - "admin.system_status.heap_memory_in_use": "正在使用的Heap内存", - "admin.system_status.heap_memory_idle": "Heap内存空闲量", - "admin.system_status.heap_memory_obtained": "Heap内存占用量", - "admin.system_status.current_heap_usage": "当前Heap内存使用量", + "admin.system_status.next_gc_recycle": "下次GC回收", + "admin.system_status.other_system_allocation_obtained": "其它已分配的系统内存", + "admin.system_status.gc_metadata_obtained": "已分配的GC元数据内存", + "admin.system_status.profiling_bucket_hash_table_obtained": "已分配的剖析哈希表内存", + "admin.system_status.mcache_structures_obtained": "已分配的MCache结构内存", + "admin.system_status.mcache_structures_usage": "MCache结构使用量", + "admin.system_status.mspan_structures_obtained": "已分配的MSpan结构内存", + "admin.system_status.mspan_structures_usage": "MSpan结构使用量", + "admin.system_status.stack_memory_obtained": "已分配的栈内存总量", + "admin.system_status.bootstrap_stack_usage": "启动栈使用量", + "admin.system_status.heap_objects": "堆对象数量", + "admin.system_status.heap_memory_released": "已释放的堆内存", + "admin.system_status.heap_memory_in_use": "正在使用的堆内存", + "admin.system_status.heap_memory_idle": "堆内存空闲量", + "admin.system_status.heap_memory_obtained": "堆内存占用量", + "admin.system_status.current_heap_usage": "当前堆内存使用量", "admin.system_status.memory_free_times": "内存释放次数", "admin.system_status.memory_allocate_times": "内存分配次数", "admin.system_status.pointer_lookup_times": "指针查找次数", "admin.system_status.memory_obtained": "内存占用量", - "admin.system_status.total_memory_allocated": "所有被分配的内存", + "admin.system_status.total_memory_allocated": "已分配的内存总量", "admin.system_status.current_memory_usage": "当前内存使用量", - "admin.system_status.current_goroutine": "当前Goroutines数量", + "admin.system_status.current_goroutine": "当前goroutines数量", "admin.system_status.server_uptime": "服务运行时间", - "markup.filepreview.truncated": "预览已被截断", - "markup.filepreview.lines": "%[3]s中的第%[1]d到%[2]d行", + "markup.filepreview.truncated": "预览已截断", + "markup.filepreview.lines": "%[3]s中的第%[1]d至%[2]d行", "markup.filepreview.line": "%[2]s中的第%[1]d行", - "actions.variables.update.success": "该变量已被编辑。", + "actions.variables.update.success": "已编辑变量。", "actions.variables.update.failed": "编辑变量失败。", - "actions.variables.creation.success": "变量 “%s” 添加成功。", + "actions.variables.creation.success": "成功添加变量“%s”。", "actions.variables.creation.failed": "添加变量失败。", - "actions.variables.deletion.success": "变量已被删除。", + "actions.variables.deletion.success": "已删除变量。", "actions.variables.deletion.failed": "删除变量失败。", "actions.variables.not_found": "找不到变量。", "actions.variables.edit": "编辑变量", - "actions.variables.description": "变量将被传给特定的Action,其它情况将不能被读取。", - "actions.variables.deletion.description": "删除变量是永久性的,无法撤消。继续吗?", + "actions.variables.description": "变量将被传给特定的action,且其它情况下不能被读取。", + "actions.variables.deletion.description": "删除变量是永久且无法撤消的。继续吗?", "actions.variables.deletion": "删除变量", - "actions.variables.none": "目前还没有变量。", + "actions.variables.none": "暂无变量。", "actions.variables.creation": "添加变量", "actions.variables.management": "管理变量", "actions.variables": "变量", - "webauthn.error.timeout": "未能在允许的时限内读取密钥。请重新加载此页面并重试。", - "webauthn.error.empty": "您必须为此密钥设置一个名称。", - "webauthn.error.duplicated": "此安全密钥未被许可用于这个请求。请确保该密钥尚未注册。", + "webauthn.error.timeout": "未能在允许的时限内读取密钥,请重新加载此页面并重试。", + "webauthn.error.empty": "必须为密钥设置名称。", + "webauthn.error.duplicated": "此安全密钥无法用于这一请求,请确保该密钥尚未被注册。", "webauthn.error.unable_to_process": "服务器无法处理您的请求。", - "webauthn.error.insecure": "WebAuthn仅支持安全连接。如果要在HTTP协议上进行测试,请使用\"localhost\"或\"127.0.0.1\"作为访问来源", + "webauthn.error.insecure": "WebAuthn仅支持安全连接。若要在HTTP协议上测试,请以“localhost”或“127.0.0.1”作为访问来源", "webauthn.error.unknown": "发生未知错误。请重试。", - "webauthn.unsupported_browser": "你的浏览器目前不支持WebAuthn。", + "webauthn.unsupported_browser": "您的浏览器目前不支持WebAuthn。", "webauthn.error": "无法读取安全密钥。", - "webauthn.use_twofa": "使用来自手机中的两步验证码", + "webauthn.use_twofa": "使用手机上的两步验证码", "webauthn.press_button": "请按下安全密钥上的按钮……", "webauthn.sign_in": "按下安全密钥上的按钮。如果安全密钥没有按钮,请重新插入它。", "webauthn.insert_key": "插入安全密钥", @@ -275,7 +401,7 @@ "packages.owner.settings.chef.title": "Chef注册中心", "packages.owner.settings.chef.keypair": "生成密钥对", "packages.owner.settings.chef.keypair.description": "发送至Chef注册中心的请求必须被加密签名以验证身份。在生成密钥对时,Forgejo仅保存公钥,您将得到供knife使用的私钥。生成新的密钥对将丢弃旧的密钥对。", - "fork.n_forks": "%s个派生", + "fork.n_forks": "%s个分叉", "stars.n_stars": "%s次点赞", "release.n_downloads": "%s次下载", "repo.pulls.merged_title_desc": "于%[4]s将%[1]d次代码提交从%[2]s合并至%[3]s", @@ -475,7 +601,7 @@ "teams.remove_all_repos.modal.header": "移除所有仓库", "repo.pulls.poster_manage_approval": "管理批准", "repo.pulls.poster_requires_approval": "有工作流正等待审阅。", - "repo.pulls.poster_requires_approval.tooltip": "此合并请求的作者未被信任以运行由派生仓库或AGit创建的PR触发的工作流。由`pull_request`事件触发的工作流在被批准前不会运行。", + "repo.pulls.poster_requires_approval.tooltip": "此合并请求的作者未被信任以运行由分叉仓库或AGit创建的PR触发的工作流。由`pull_request`事件触发的工作流在被批准前不会运行。", "repo.pulls.poster_is_trusted": "此合并请求的作者总是受到信任以运行工作流。", "repo.pulls.poster_is_trusted.tooltip": "此合并请求的作者被明确信任以运行由`pull_request`事件触发的工作流。", "repo.pulls.poster_trust_deny": "拒绝", @@ -691,5 +817,57 @@ "repo.files.caption": "仓库文件(优先显示最新提交)", "repo.files.filename": "文件名", "repo.files.last_commit_message": "最新提交消息", - "repo.files.last_commit_date": "最新提交日期" + "repo.files.last_commit_date": "最新提交日期", + "repo.pulls.status_checks_skipped": "跳过", + "repo.packages.visibility_warning": "此仓库是私有的,但有公开可见的软件包(所有者“%s”是公开的)。", + "settings.authorized_integrations": "授权集成", + "settings.manage_authorized_integrations": "授权集成", + "settings.authorized_integration.desc": "授权集成使Forgejo能够接收已签名的JWT、用已配置的规则验证声明、允许这些JWT访问Forgejo的API。", + "settings.authorized_integration.none": "暂无授权集成。", + "settings.authorized_integration.ui.forgejo_actions_local": "Forgejo Actions(本地)", + "settings.authorized_integration.edit": "编辑", + "settings.authorized_integration.edit_page_title": "授权集成 %s", + "settings.authorized_integration.create_page_title": "创建授权集成", + "settings.authorized_integration.save": "保存授权集成", + "settings.authorized_integration.create": "创建授权集成", + "settings.authorized_integration.create_success": "已创建授权集成:%s", + "settings.authorized_integration.field.name": "名称", + "settings.authorized_integration.field.description": "描述", + "settings.authorized_integration.field.description.placeholder": "用于在……时发布软件包", + "settings.authorized_integration.field.audience": "受众(aud声明)", + "settings.authorized_integration.field.issuer": "发行者(iss声明)", + "settings.authorized_integration.field.claim_rules": "声明规则JSON", + "settings.authorized_integration.perms.title": "允许的能力", + "settings.authorized_integration.copy_audience": "复制受众到剪贴板", + "settings.authorized_integration.name.required": "授权集成名称必填。", + "settings.authorized_integration.issuer.invalid": "发行者验证失败:%s", + "settings.authorized_integration.claim_rules.invalid": "声明规则验证失败:%s", + "settings.authorized_integration.specified_repos_none": "限定仓库的授权集成必须指定至少一个仓库。", + "settings.authorized_integration.specified_repos_and_public_only": "限定仓库的授权集成不能与仅公开可见范围一同使用。", + "settings.authorized_integration.specified_repos_and_invalid_scope": "限定仓库的授权集成只能与read:issue、write:issue、read:repository、write:repository一同使用。", + "settings.authorized_integration.add": "添加授权集成", + "settings.authorized_integration.delete.header": "删除授权集成", + "settings.authorized_integration.delete.body": "删除授权集成会撤销其对您的账户的访问权限。这是永久且不可逆的,即便创建一个新的授权集成,它也不会有相同的受众(aud)声明。继续吗?", + "settings.authorized_integration.deleted": "已成功删除授权集成。", + "settings.authorized_integration.ui.generic": "通用JWT", + "settings.authorized_integration.claims.generic": "通用JWT规则", + "actions.runs.delete.error_could_not_load_run": "无法加载运行以便执行删除。", + "actions.runs.delete.error_could_not_delete_run": "无法删除运行。", + "actions.runs.delete.button": "删除运行", + "actions.runs.delete.error": "无法删除工作流运行。", + "actions.runs.delete.confirm_action": "真的要删除此工作流运行吗?", + "admin.auths.oauth2_dyn_group_maps": "根据组映射动态地将用户添加到团队。(可选)", + "admin.auths.oauth2_dyn_group_maps_removal": "动态地将用户从组映射没有包含的团队中移除。", + "settings.authorized_integration.forgejo_actions_local.select_repo": "选择", + "settings.authorized_integration.forgejo_actions_local.select_repository": "已选中的仓库:(这些仓库必须已启用Forgejo Actions)", + "settings.authorized_integration.forgejo_actions_local.description": "如果满足下面定义的条件,Forgejo Actions将能够通过此授权集成,从任意选中的仓库访问Forgejo。", + "settings.authorized_integration.forgejo_actions_local.repo.required": "必须选中Forgejo Actions源仓库。", + "settings.authorized_integration.forgejo_actions_local.workflow_file.label": "工作流文件(不含目录):", + "settings.authorized_integration.forgejo_actions_local.workflow_file.help": "留空将允许所有工作流。关于模式匹配语法,参见%[2]s文档。
例如:testing.ymltest-*.yml。", + "settings.authorized_integration.forgejo_actions_local.workflow_file.error": "无法解析工作流文件:%s", + "settings.authorized_integration.forgejo_actions_local.git_ref.label": "Git引用:", + "settings.authorized_integration.forgejo_actions_local.git_ref.help": "留空将允许所有引用。关于模式匹配语法,参见%[2]s文档。
例如:refs/heads/mainrefs/pull/*/head。", + "settings.authorized_integration.forgejo_actions_local.git_ref.error": "无法解析git引用:%s", + "settings.authorized_integration.forgejo_actions_local.event.label": "事件:", + "settings.authorized_integration.forgejo_actions_local.event.help": "若没有选中任何事件,则将允许所有事件。" } diff --git a/options/locale_next/locale_zh-HK.json b/options/locale_next/locale_zh-HK.json index 5f1dc8f7e1..4c0e4aaa79 100644 --- a/options/locale_next/locale_zh-HK.json +++ b/options/locale_next/locale_zh-HK.json @@ -1,4 +1,56 @@ { + "admin.config.db.path": "資料庫路徑", + "admin.config.db.name": "資料庫名稱", + "admin.config.db.host": "主機地址", + "admin.config.db.type": "資料庫類型", + "admin.config.db.header": "資料庫設定", + "admin.config.mailer.user": "發送者帳號", + "admin.config.mailer.smtp.port": "SMTP 主機端口", + "admin.config.mailer.name": "發送者名稱", + "admin.config.mailer.enabled": "啟用服務", + "admin.config.git.gc_timeout": "GC 操作超時", + "admin.config.git.pull_timeout": "操作超時", + "admin.config.git.clone_timeout": "複製操作超時", + "admin.config.git.mirror_timeout": "鏡像更新超時", + "admin.config.git.migrate_timeout": "移動超時", + "admin.config.git.gc_args": "GC 參數", + "admin.config.git.diff.max_files": "Max Diff 檔 (顯示)", + "admin.config.git.diff.max_line_characters": "最大比較的字元 (單行)", + "admin.config.git.diff.max_lines": "Max Diff 線 (對於單個檔)", + "admin.config.git.disable_diff_highlight": "禁用比較語法高亮", + "admin.config.git.version": "Git 版本", + "admin.config.git.header": "Git 設定", + "admin.config.ssh.minimum_key_sizes": "金鑰最小大小", + "admin.config.ssh.minimum_key_size_check": "金鑰最小大小檢查", + "admin.config.ssh.keygen_path": "金鑰產生 (' ssh-keygen ') 路徑", + "admin.config.ssh.key_test_path": "金鑰測試路徑", + "admin.config.ssh.root_path": "根路徑", + "admin.config.ssh.listen_port": "監聽埠", + "admin.config.ssh.port": "埠", + "admin.config.ssh.enabled": "已啟用", + "admin.config.ssh.header": "SSH 設定", + "admin.users.created": "建立時間", + "admin.users.repos": "儲存庫數", + "admin.users.admin": "管理員", + "admin.users.activated": "已啟用", + "admin.users.full_name": "組織全名", + "admin.packages.size": "大小", + "admin.packages.repository": "儲存庫", + "admin.packages.type": "認證類型", + "admin.packages.name": "組織名稱", + "admin.packages.owner": "管理員", + "admin.repos.size": "大小", + "admin.repos.issues": "問題數", + "admin.repos.name": "儲存庫名稱", + "admin.repos.owner": "所有者", + "admin.orgs.members": "成員數", + "admin.orgs.teams": "團隊數", + "admin.orgs.name": "組織名稱", + "admin.dashboard.sync_external_users": "同步外部使用者資料", + "admin.dashboard.reinit_missing_repos": "重新初始化所有遺失具已存在記錄的Git 儲存庫", + "admin.dashboard.operation_run": "執行", + "admin.dashboard.operation_switch": "開關", + "admin.dashboard.operation_name": "操作名稱", "admin.monitor.queue.settings.submit": "更新設定", "admin.monitor.queue.type": "認證類型", "admin.monitor.queue.name": "組織名稱", diff --git a/options/locale_next/locale_zh-TW.json b/options/locale_next/locale_zh-TW.json index c2d5063457..a937e7ba46 100644 --- a/options/locale_next/locale_zh-TW.json +++ b/options/locale_next/locale_zh-TW.json @@ -1,4 +1,130 @@ { + "admin.config.db.path": "資料庫路徑", + "admin.config.db.ssl_mode": "SSL", + "admin.config.db.schema": "結構描述", + "admin.config.db.user": "使用者名稱", + "admin.config.db.name": "名稱", + "admin.config.db.host": "主機地址", + "admin.config.db.type": "資料庫類型", + "admin.config.db.header": "資料庫組態", + "admin.config.mailer.user": "發送者帳號", + "admin.config.mailer.smtp.port": "SMTP 連接埠", + "admin.config.mailer.smtp.addr": "SMTP 位址", + "admin.config.mailer.enable_helo": "啟用 HELO", + "admin.config.mailer.protocol": "協定", + "admin.config.mailer.use_dummy": "Dummy", + "admin.config.mailer.sendmail.timeout": "Sendmail 逾時", + "admin.config.mailer.sendmail.args": "Sendmail 參數", + "admin.config.mailer.sendmail.path": "Sendmail 路徑", + "admin.config.mailer.sendmail.use": "使用 Sendmail", + "admin.config.mailer.name": "發送者名稱", + "admin.config.mailer.enabled": "啟用服務", + "admin.config.mailer.header": "郵件程式設定", + "admin.config.git.gc_timeout": "GC 作業逾時", + "admin.config.git.pull_timeout": "Pull 作業逾時", + "admin.config.git.clone_timeout": "拓製逾時", + "admin.config.git.mirror_timeout": "鏡像更新逾時", + "admin.config.git.migrate_timeout": "遷移逾時", + "admin.config.git.gc_args": "GC 參數", + "admin.config.git.diff.max_files": "差異比較時顯示的最多檔案數", + "admin.config.git.diff.max_line_characters": "差異比較時顯示的最多字元數", + "admin.config.git.diff.max_lines": "差異比較時顯示的最多行數", + "admin.config.git.disable_diff_highlight": "停用比較語法高亮", + "admin.config.git.version": "Git 版本", + "admin.config.git.header": "Git 設定", + "admin.config.ssh.minimum_key_sizes": "金鑰最小大小", + "admin.config.ssh.minimum_key_size_check": "金鑰最小大小檢查", + "admin.config.ssh.keygen_path": "金鑰產生(ssh-keygen)路徑", + "admin.config.ssh.key_test_path": "金鑰測試路徑", + "admin.config.ssh.root_path": "根路徑", + "admin.config.ssh.listen_port": "監聽埠", + "admin.config.ssh.port": "連接埠", + "admin.config.ssh.domain": "SSH 伺服器域名", + "admin.config.ssh.use_builtin_server": "使用內建伺服器", + "admin.config.ssh.enabled": "已啟用", + "admin.config.ssh.header": "SSH 設定", + "admin.users.never_login": "從未登入", + "admin.users.last_login": "上次登入", + "admin.users.created": "建立時間", + "admin.users.repos": "儲存庫數", + "admin.users.2fa": "兩步驟驗證", + "admin.users.remote": "遠端", + "admin.users.bot": "機器人", + "admin.users.reserved": "已保留", + "admin.users.restricted": "受限", + "admin.users.admin": "管理員", + "admin.users.activated": "已啟用", + "admin.users.full_name": "全名", + "admin.users.name": "帳號", + "admin.packages.published": "已發布", + "admin.packages.size": "大小", + "admin.packages.repository": "儲存庫", + "admin.packages.type": "類型", + "admin.packages.version": "版本", + "admin.packages.name": "名稱", + "admin.packages.creator": "建立者", + "admin.packages.owner": "所有者", + "admin.packages.unreferenced_size": "未參考大小:%s", + "admin.packages.total_size": "總大小:%s", + "admin.repos.lfs_size": "LFS 大小", + "admin.repos.size": "大小", + "admin.repos.issues": "問題數", + "admin.repos.name": "名稱", + "admin.repos.owner": "所有者", + "admin.orgs.new_orga": "新增組織", + "admin.orgs.members": "成員數", + "admin.orgs.teams": "團隊數", + "admin.orgs.name": "名稱", + "admin.dashboard.rebuild_issue_indexer": "重建問題索引", + "admin.dashboard.start_schedule_tasks": "開始計劃 Actions 任務", + "admin.dashboard.cancel_abandoned_jobs": "取消已放棄的 Actions 作業", + "admin.dashboard.stop_endless_tasks": "停止永不停止的 Actions 任務", + "admin.dashboard.stop_zombie_tasks": "停止殭屍 Actions 任務", + "admin.dashboard.gc_lfs": "對 LFS meta objects 進行垃圾回收", + "admin.dashboard.delete_old_system_notices": "從資料庫刪除所有舊系統提示", + "admin.dashboard.update_checker": "更新檢查器", + "admin.dashboard.cleanup_actions": "清理過期的 Action 日誌和物件", + "admin.dashboard.cleanup_packages": "清理過期的軟體包", + "admin.dashboard.cleanup_hook_task_table": "清理 hook_task 資料表", + "admin.dashboard.sync_external_users": "同步外部使用者資料", + "admin.dashboard.reinit_missing_repos": "重新初始化所有記錄存在但遺失的 Git 儲存庫", + "admin.dashboard.resync_all_hooks": "重新同步所有儲存庫的 Git hooks(pre-receive、update、post-receive、proc-receive 等)", + "admin.dashboard.resync_all_sshprincipals": "使用 Forgejo 的 SSH 規則更新「.ssh/authorized_principals」檔案。", + "admin.dashboard.resync_all_sshkeys": "使用 Forgejo 的 SSH 金鑰更新「.ssh/authorized_keys」檔案。", + "admin.dashboard.git_gc_repos": "對所有儲存庫進行垃圾回收", + "admin.dashboard.update_migration_poster_id": "更新遷移發布者 ID", + "admin.dashboard.deleted_branches_cleanup": "清理已刪除的分支", + "admin.dashboard.archive_cleanup": "刪除舊的儲存庫存檔", + "admin.dashboard.check_repo_stats": "檢查所有儲存庫的統計資料", + "admin.dashboard.repo_health_check": "對所有儲存庫進行健康檢查", + "admin.dashboard.update_mirrors": "更新鏡像", + "admin.dashboard.sync_repo_tags": "將標籤從 Git 資料同步至資料庫", + "admin.dashboard.sync_repo_branches": "將缺少的分支從 Git 資料同步至資料庫", + "admin.dashboard.delete_generated_repository_avatars": "刪除自動產生的儲存庫大頭貼", + "admin.dashboard.sync_tag.started": "標籤同步已開始", + "admin.dashboard.sync_branch.started": "分支同步已開始", + "admin.dashboard.delete_old_actions.started": "從資料庫刪除所有舊操作紀錄的任務已啟動。", + "admin.dashboard.delete_missing_repos.started": "刪除所有遺失 Git 檔案的儲存庫的任務已啟動。", + "admin.dashboard.delete_repo_archives.started": "刪除所有儲存庫存檔的任務已啟動。", + "admin.dashboard.delete_inactive_accounts.started": "刪除所有未啟用帳號的任務已啟動。", + "admin.dashboard.cron.finished": "Cron: %[1]s 已完成", + "admin.dashboard.cron.error": "Cron 中的錯誤: %s: %[3]s", + "admin.dashboard.cron.cancelled": "定時作業:%[1]s 已被取消:%[3]s", + "admin.dashboard.cron.process": "Cron: %[1]s", + "admin.dashboard.cron.started": "已開始的 Cron: %[1]s", + "admin.dashboard.task.unknown": "未知的任務: %[1]s", + "admin.dashboard.task.finished": "任務: 已完成由 %[2]s 啟動的 %[1]s", + "admin.dashboard.task.error": "任務中的錯誤: %[1]s: %[3]s", + "admin.dashboard.task.cancelled": "作業:%[1]s 已被取消:%[3]s", + "admin.dashboard.task.process": "任務: %[1]s", + "admin.dashboard.task.started": "已開始的任務: %[1]s", + "admin.dashboard.operation_run": "執行", + "admin.dashboard.operation_switch": "開關", + "admin.dashboard.operation_name": "作業名稱", + "admin.dashboard.system_status": "系統狀態", + "admin.dashboard.operations": "維護作業", + "admin.dashboard.statistic": "摘要", + "admin.dashboard.new_version_hint": "現已推出 Forgejo %s,您正在執行 %s。詳情請參閱部落格的說明。", "admin.monitor.queue.settings.remove_all_items.success": "已移除佇列中所有項目。", "admin.monitor.queue.settings.remove_all_items": "全部移除", "admin.monitor.queue.settings.changed": "已更新設定", @@ -89,19 +215,15 @@ "webauthn.sign_in": "按下您安全金鑰上的按鈕。如果您的安全金鑰沒有按鈕,請重新插入。", "webauthn.insert_key": "插入您的安全金鑰", "counters.n_commits": { - "one": "%s 個提交", "other": "%s 個提交" }, "counters.n_branches": { - "one": "%s 條分支", "other": "%s 條分支" }, "counters.n_tags": { - "one": "%s 個標籤", "other": "%s 個標籤" }, "counters.n_releases": { - "one": "%s 發行", "other": "%s 發行" }, "actions.actions": "Actions", @@ -141,8 +263,8 @@ "actions.runners.delete_runner.header": "確認刪除此 Runner", "actions.runners.delete_runner.notice": "如果有任務正在此 Runner 上執行,它可能會被中止並標記為失敗,這可能會打斷建置工作流程。", "actions.runners.none": "沒有可用的 Runner", - "actions.runners.reset_registration_token.button": "重置註冊符記", - "actions.runners.reset_registration_token.success": "成功重設了 Runner 註冊符記", + "actions.runners.reset_registration_token.button": "重置註冊權杖", + "actions.runners.reset_registration_token.success": "成功重設了 Runner 註冊權杖", "actions.runs.all_workflows": "所有工作流程", "actions.runs.workflow": "工作流程", "actions.runs.invalid_workflow_helper": "工作流程設定檔無效。請檢查您的設定檔:%s", @@ -245,7 +367,7 @@ "packages.composer.install": "執行下列命令以使用 Composer 安裝此軟體包:", "packages.composer.dependencies.development": "開發相依性", "packages.conan.install": "執行下列命令以使用 Conan 安裝此軟體包:", - "packages.conda.registry": "在您的 .condarc 檔設定此註冊中心為 Conda 存儲庫:", + "packages.conda.registry": "在您的 .condarc 檔設定此註冊中心為 Conda 儲存庫:", "packages.conda.install": "執行下列命令以使用 Conda 安裝此軟體包:", "packages.container.images.title": "映像檔", "packages.container.details.type": "映像檔類型", @@ -413,13 +535,13 @@ "repo.diff.commit.previous-short": "上一個", "migrate.github.description": "從 github.com 或 GitHub Enterprise 伺服器遷移資料。", "migrate.git.description": "從任何 Git 服務遷移儲存庫。", - "migrate.gitea.description": "從 gitea.com 或其他 Gitea 站點遷移資料。", - "migrate.gitlab.description": "從 gitlab.com 或其他 GitLab 站點遷移資料。", - "migrate.gogs.description": "從 notabug.org 或其他 Gogs 站點遷移資料。", - "migrate.onedev.description": "從 code.onedev.io 或其他 OneDev 站點遷移資料。", - "migrate.gitbucket.description": "從 GitBucket 站點遷移資料。", + "migrate.gitea.description": "從 gitea.com 或其他 Gitea 實例遷移資料。", + "migrate.gitlab.description": "從 gitlab.com 或其他 GitLab 實例遷移資料。", + "migrate.gogs.description": "從 notabug.org 或其他 Gogs 實例遷移資料。", + "migrate.onedev.description": "從 code.onedev.io 或其他 OneDev 實例遷移資料。", + "migrate.gitbucket.description": "從 GitBucket 實例遷移資料。", "migrate.codebase.description": "從 codebasehq.com 遷移資料。", - "migrate.forgejo.description": "從 codeberg.org 或其他 Forgejo 站點遷移資料。", + "migrate.forgejo.description": "從 codeberg.org 或其他 Forgejo 實例遷移資料。", "migrate.items.label": "遷移項目", "migrate.items.wiki": "Wiki", "migrate.items.milestones": "里程碑", @@ -503,7 +625,7 @@ "admin.auths.allow_username_change.description": "允許使用者在個人資料設定中變更其使用者名稱", "admin.dashboard.remove_resolved_reports": "移除已解決的檢舉報告", "admin.dashboard.actions_action_user": "撤銷不活躍使用者的 Forgejo Actions 信任", - "admin.dashboard.transfer_lingering_logs": "將已完成 Actions 工作的日誌從資料庫轉移至儲存空間", + "admin.dashboard.transfer_lingering_logs": "將已完成 Actions 工作的紀錄從資料庫轉移至儲存空間", "admin.config.security": "安全性設定", "admin.config.global_2fa_requirement.title": "全域兩步驟驗證要求", "admin.config.global_2fa_requirement.all": "所有使用者", diff --git a/package-lock.json b/package-lock.json index e5f6cf7274..75c94329d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,7 +43,7 @@ "chart.js": "4.5.1", "chartjs-adapter-dayjs-4": "1.0.4", "chartjs-plugin-zoom": "2.2.0", - "clippie": "4.1.15", + "clippie": "4.2.0", "css-loader": "7.1.3", "dayjs": "1.11.19", "dropzone": "6.0.0-beta.2", @@ -54,7 +54,7 @@ "htmx.org": "2.0.10", "idiomorph": "0.3.0", "jquery": "3.7.1", - "katex": "0.16.47", + "katex": "0.17.0", "mermaid": "11.15.0", "mini-css-extract-plugin": "2.10.0", "minimatch": "10.2.5", @@ -77,7 +77,7 @@ "vue-chartjs": "5.3.3", "vue-loader": "17.4.2", "vue3-calendar-heatmap": "2.0.5", - "webpack": "5.106.2", + "webpack": "5.107.1", "webpack-cli": "7.0.2", "wrap-ansi": "10.0.0" }, @@ -2793,16 +2793,22 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", - "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.4.3", - "@emnapi/runtime": "^1.4.3", - "@tybys/wasm-util": "^0.10.0" + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" } }, "node_modules/@nodelib/fs.scandir": { @@ -2861,9 +2867,9 @@ "license": "MIT" }, "node_modules/@oxc-project/types": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.130.0.tgz", - "integrity": "sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==", + "version": "0.132.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.132.0.tgz", + "integrity": "sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==", "dev": true, "license": "MIT", "funding": { @@ -2924,9 +2930,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.1.tgz", - "integrity": "sha512-fJI3I0r3C3Oj/zdBCpaCmBRZYf07xpaq4yCfDDoSFm+beWNzbIl26puW8RraUdugoJw/95zerNOn6jasAhzSmg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.2.tgz", + "integrity": "sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==", "cpu": [ "arm64" ], @@ -2941,9 +2947,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.1.tgz", - "integrity": "sha512-cKnAhWEsV7TPcA/5EAteDp6KcJZBQ2G+BqE7zayMMi7kMvwRsbv7WT9aOnn0WNl4SKEIf43vjS31iUPu80nzXg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.2.tgz", + "integrity": "sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==", "cpu": [ "arm64" ], @@ -2958,9 +2964,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.1.tgz", - "integrity": "sha512-YKrVwQjIRBPo+5G/u03wGjbdy4q7pyzCe93DK9VJ7zkVmeg8LJ7GbgsiHWdR4xSoe4CAXRD7Bcjgbtr64bkXNg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.2.tgz", + "integrity": "sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==", "cpu": [ "x64" ], @@ -2975,9 +2981,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.1.tgz", - "integrity": "sha512-z/oBsREo46SsFqBwYtFe0kpJeBijAT48O/WXLI4suiCLBkr03RTtTJMCzSdDd2znlh8VJizL09XVkQgk8IZonw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.2.tgz", + "integrity": "sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==", "cpu": [ "x64" ], @@ -2992,9 +2998,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.1.tgz", - "integrity": "sha512-ik8q7GM11zxvYxFc2PeDcT6TBvhCQMaUxfph/M5l9sKuTs/Sjg3L+Byw0F7w0ZVLBZmx30P+gG0ECzzN+MFcmQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.2.tgz", + "integrity": "sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==", "cpu": [ "arm" ], @@ -3009,9 +3015,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.1.tgz", - "integrity": "sha512-QoSx2EkyrrdZ6kcyE8stqZ62t0Yra8Fs5ia9lOxJrh6TMQJK7gQKmscdTHf7pOXKREKrVwOtJcQG3qVSfc866A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.2.tgz", + "integrity": "sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==", "cpu": [ "arm64" ], @@ -3029,9 +3035,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.1.tgz", - "integrity": "sha512-uwNwFpwKeNiZawfAWBgg0VIztPTV3ihhh1vV334h9ivnNLorxnQMU6Fz8wG1Zb4Qh9LC1/MkcyT3YlDXG3Rsgg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.2.tgz", + "integrity": "sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==", "cpu": [ "arm64" ], @@ -3049,9 +3055,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.1.tgz", - "integrity": "sha512-zY1bul7OWr7DFBiJ++wofXvnr8B45ce3QsQUhKrIhXsygAh7bTkwyeM1bi1a2g5C/yC/N8TZyGDEoMfm/l9mpg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.2.tgz", + "integrity": "sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==", "cpu": [ "ppc64" ], @@ -3069,9 +3075,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.1.tgz", - "integrity": "sha512-0frlsT/f4Ft6I7SMESTKnF3cZsdicQn1dCMkF/jT9wDLE+gGoiQfv1nmT9e+s7s/fekvvy6tZM2jHvI2tkbJDQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.2.tgz", + "integrity": "sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==", "cpu": [ "s390x" ], @@ -3089,9 +3095,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.1.tgz", - "integrity": "sha512-XABVmGp9Tg0WspTVvwduTc4fpqy6JnAUrSQe6OuyqD/03nI7r0O9OWUkMIwFrjKAIqolvqoA4ZrJppgwE0Gxmw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.2.tgz", + "integrity": "sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==", "cpu": [ "x64" ], @@ -3109,9 +3115,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.1.tgz", - "integrity": "sha512-bV4fzswuzVcKD90o/VM6QqKxnxlDq0g2BISDLNVmxrnhpv1DDbyPhCIjYfvzYLV+MvkKKnQt2Q6AO86SEBULUQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.2.tgz", + "integrity": "sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==", "cpu": [ "x64" ], @@ -3129,9 +3135,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.1.tgz", - "integrity": "sha512-/Mh0Zhq3OP7fVs0kcQHZP6lZEthMGTaSf8UBQYSFEZDWGXXlEC+nJ6EqenaK2t4LBXMe3A+K/G2BVXXdtOr4PQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.2.tgz", + "integrity": "sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==", "cpu": [ "arm64" ], @@ -3146,9 +3152,9 @@ } }, "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.1.tgz", - "integrity": "sha512-+1xc9X45l8ufsBAm6Gjvx2qDRIY9lTVt0cgWNcJ+1gdhXvkbxePA60yRTwSTuXL09CMhyJmjpV7E3NoyxbqFQQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.2.tgz", + "integrity": "sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==", "cpu": [ "wasm32" ], @@ -3164,29 +3170,10 @@ "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", - "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.1.tgz", - "integrity": "sha512-1D+UqZdfnuR+Jy1GgMJwi85bD40H21uNmOPRWQhw4oRSuolZ/B5rixZ45DK2KXOTCvmVCecauWgEhbw8bI7tOw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.2.tgz", + "integrity": "sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==", "cpu": [ "arm64" ], @@ -3201,9 +3188,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.1.tgz", - "integrity": "sha512-INAycaWuhlOK3wk4mRHGsdgwYWmd9cChdPdE9bwWmy6rn9VqVNYNFGhOdXrofXUxwHIncSiPNb8tNm8knDVIeQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.2.tgz", + "integrity": "sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==", "cpu": [ "x64" ], @@ -3695,9 +3682,9 @@ } }, "node_modules/@stoplight/spectral-ruleset-migrator": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-ruleset-migrator/-/spectral-ruleset-migrator-1.12.0.tgz", - "integrity": "sha512-KINmItys8OhdmjudgcIu7siuxQ4hDdbMsTPW/UkXhoiEosiwok1xAyaYLBfckH9zH85TZBkDDbIbsiMoDCIxBw==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-ruleset-migrator/-/spectral-ruleset-migrator-1.12.1.tgz", + "integrity": "sha512-IUEbDmmTro0oF6VoAtrUySRV/b6bvYmV7wV6lB99f0Ym5lF9M2DXcgPLo7VMbKTPjCOQcaBzWRnIMXAyLjIRMA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3744,9 +3731,9 @@ "license": "Apache-2.0" }, "node_modules/@stoplight/spectral-rulesets": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-rulesets/-/spectral-rulesets-1.22.2.tgz", - "integrity": "sha512-JsaNqtxBRfjKTCgQJK+LoOyDhzm9Hhw9kV9U3NalsQMH5ERBJw6IVhYyCZtgHBc5FhjXao2iJnnDfGta07M4wQ==", + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-rulesets/-/spectral-rulesets-1.22.3.tgz", + "integrity": "sha512-CDkXEsrA1OOQPmF0VE92zira+eSI411s7hyIdfVeS/91BrNz3Y5HJgnwWFbh2abKVJ2rNciOzBPyGar+xfiFKA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -4213,26 +4200,6 @@ "@types/node": "*" } }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", @@ -4285,9 +4252,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.8.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.8.0.tgz", - "integrity": "sha512-TCFSk8IZh+iLX1xtksoBVtdmgL+1IX0fC9BeU4QqFSuNdN/K+HUlhqOzEmSYYpZUVsLYcPqc9KX+60iDuninSQ==", + "version": "25.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz", + "integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==", "license": "MIT", "dependencies": { "undici-types": ">=7.24.0 <7.24.7" @@ -4580,9 +4547,9 @@ } }, "node_modules/@unrs/resolver-binding-android-arm-eabi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", - "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz", + "integrity": "sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==", "cpu": [ "arm" ], @@ -4594,9 +4561,9 @@ ] }, "node_modules/@unrs/resolver-binding-android-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", - "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz", + "integrity": "sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==", "cpu": [ "arm64" ], @@ -4608,9 +4575,9 @@ ] }, "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", - "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz", + "integrity": "sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==", "cpu": [ "arm64" ], @@ -4622,9 +4589,9 @@ ] }, "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", - "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz", + "integrity": "sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==", "cpu": [ "x64" ], @@ -4636,9 +4603,9 @@ ] }, "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", - "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz", + "integrity": "sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==", "cpu": [ "x64" ], @@ -4650,9 +4617,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", - "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz", + "integrity": "sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==", "cpu": [ "arm" ], @@ -4664,9 +4631,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", - "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz", + "integrity": "sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==", "cpu": [ "arm" ], @@ -4678,9 +4645,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", - "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz", + "integrity": "sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==", "cpu": [ "arm64" ], @@ -4695,9 +4662,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", - "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz", + "integrity": "sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==", "cpu": [ "arm64" ], @@ -4711,10 +4678,44 @@ "linux" ] }, + "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz", + "integrity": "sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz", + "integrity": "sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", - "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz", + "integrity": "sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==", "cpu": [ "ppc64" ], @@ -4729,9 +4730,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", - "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz", + "integrity": "sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==", "cpu": [ "riscv64" ], @@ -4746,9 +4747,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", - "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz", + "integrity": "sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==", "cpu": [ "riscv64" ], @@ -4763,9 +4764,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", - "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz", + "integrity": "sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==", "cpu": [ "s390x" ], @@ -4780,9 +4781,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", - "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz", + "integrity": "sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==", "cpu": [ "x64" ], @@ -4797,9 +4798,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", - "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz", + "integrity": "sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==", "cpu": [ "x64" ], @@ -4813,10 +4814,24 @@ "linux" ] }, + "node_modules/@unrs/resolver-binding-openharmony-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz", + "integrity": "sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", - "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz", + "integrity": "sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==", "cpu": [ "wasm32" ], @@ -4824,16 +4839,18 @@ "license": "MIT", "optional": true, "dependencies": { - "@napi-rs/wasm-runtime": "^0.2.11" + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", - "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz", + "integrity": "sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==", "cpu": [ "arm64" ], @@ -4845,9 +4862,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", - "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz", + "integrity": "sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==", "cpu": [ "ia32" ], @@ -4859,9 +4876,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", - "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz", + "integrity": "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==", "cpu": [ "x64" ], @@ -5822,9 +5839,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.10.30", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.30.tgz", - "integrity": "sha512-xjOFN16Ha1+Rz4nFYKqHU/LSB+gx/Vi3yQLX7r7sAW+Wa+8hhF2h4pvqTrTMc8+WcDBEunnUurr46Jvv0jk3Vg==", + "version": "2.10.32", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.32.tgz", + "integrity": "sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" @@ -6279,9 +6296,9 @@ } }, "node_modules/clippie": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/clippie/-/clippie-4.1.15.tgz", - "integrity": "sha512-K4z5MF32z7Gr1fUcfuUZvmrzpdNs5q8zAm2yqsWhA8mZ9Q6GL4HNdR2k3h3ubEEEGoyb8fvMA48LDr2MKYDASA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clippie/-/clippie-4.2.0.tgz", + "integrity": "sha512-NcWaVzqChJ69+foFhwJXta3KXWNDJlpicxcfZG5udobyszOSBDhmFubKv1b/1nIZiVAsPoKqME2iV1SITZqFoQ==", "license": "BSD-2-Clause" }, "node_modules/cliui": { @@ -6391,9 +6408,9 @@ } }, "node_modules/comment-parser": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.6.tgz", - "integrity": "sha512-ObxuY6vnbWTN6Od72xfwN9DbzC7Y2vv8u1Soi9ahRKL37gb6y1qk6/dgjs+3JWuXJHWvsg3BXIwzd/rkmAwavg==", + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.7.tgz", + "integrity": "sha512-0h+uSNtQGW3D98eQt3jJ8L06Fves8hncB4V/PKdw/Qb8Hnk19VaKuTr55UNRYiSoVa7WwrFls+rh3ux9agmkeQ==", "dev": true, "license": "MIT", "engines": { @@ -6657,9 +6674,9 @@ "license": "MIT" }, "node_modules/cytoscape": { - "version": "3.33.3", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.3.tgz", - "integrity": "sha512-Gej7U+OKR+LZ8kvX7rb2HhCYJ0IhvEFsnkud4SB1PR+BUY/TsSO0dmOW59WEVLu51b1Rm+gQRKoz4bLYxGSZ2g==", + "version": "3.33.4", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.4.tgz", + "integrity": "sha512-HIN5Pmd9MrX9BkV7tDwnOcEJCSFvCpc8X97h3f508J6I5FsqAY65wKOCvgH2CuP42CaahWaz4tuh32SOOIH7ww==", "license": "MIT", "engines": { "node": ">=0.10" @@ -7465,9 +7482,9 @@ } }, "node_modules/dompurify": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.4.tgz", - "integrity": "sha512-r8K7KGKEcztXfA/nfabSYB2hg9tDphORJTdf8xprN/luSLGmNhOBN8dm1/SYjqLLet6YUFEXOcrdTuwryp/Bew==", + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.5.tgz", + "integrity": "sha512-OrwIBKsdNSVEeubdJ1HBv/wNENRM9ytAVCv7YXt//A3vPdVMNuACRqK9mXCGCBW2ln7BT/A4X0jXHo2Gu89miA==", "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { "@types/trusted-types": "^2.0.7" @@ -7586,9 +7603,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.357", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.357.tgz", - "integrity": "sha512-NHlTIQDK8fmVwHwuIzmXYEJ1Ewq3D9wDNc0cWXxDGysP6Pb21giwGNkxiTifyKy/4SoPuN5l6GLP1W9Sv7zB2g==", + "version": "1.5.361", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.361.tgz", + "integrity": "sha512-Q6Hts7N9FnJc5LeGRINFvLhCI9xZmNtTDe5ZbcVezQz7cU4a8Aua3GH1b8J2XY8Al9PF+OCwYqhgsOOheMdvkA==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -7608,9 +7625,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.21.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.3.tgz", - "integrity": "sha512-QyL119InA+XXEkNLNTPCXPugSvOfhwv0JOlGNzvxs0hZaiHLNvXSpudUWsOlsXGWJh8G6ckCScEkVHfX3kw/2Q==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.22.0.tgz", + "integrity": "sha512-xYcDWrpELkFzz9SpZ3PlI6Eu6eD93Yf0WLDRxikGhWJ3MAir2SNZTIVCVZqZ/NUyx8AdMc2gT9C0gPiw18kG+A==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -7780,9 +7797,9 @@ "license": "MIT" }, "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", "dev": true, "license": "MIT", "dependencies": { @@ -10651,9 +10668,9 @@ "license": "MIT" }, "node_modules/katex": { - "version": "0.16.47", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.47.tgz", - "integrity": "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.17.0.tgz", + "integrity": "sha512-Vdw0ATsQ9V+LuegM/BTwQqV/6cTl5lbGcIrU+BCgLxyf6bo38ybOr372tuSIxir3CN720flu1meYR6XzNMwQnw==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -11064,10 +11081,20 @@ "license": "MIT" }, "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.1.tgz", + "integrity": "sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], "license": "MIT", "dependencies": { "uc.micro": "^2.0.0" @@ -11512,6 +11539,31 @@ "uuid": "^11.1.0 || ^12 || ^13 || ^14.0.0" } }, + "node_modules/mermaid/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/mermaid/node_modules/katex": { + "version": "0.16.47", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.47.tgz", + "integrity": "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, "node_modules/mermaid/node_modules/marked": { "version": "16.4.2", "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.2.tgz", @@ -11691,6 +11743,33 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/micromark-extension-math/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/micromark-extension-math/node_modules/katex": { + "version": "0.16.47", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.47.tgz", + "integrity": "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==", + "dev": true, + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, "node_modules/micromark-factory-destination": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", @@ -12262,10 +12341,13 @@ } }, "node_modules/node-releases": { - "version": "2.0.44", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.44.tgz", - "integrity": "sha512-5WUyunoPMsvvEhS8AxHtRzP+oA8UCkJ7YRxatWKjngndhDGLiqEVAQKWjFAiAiuL8zMRGzGSJxFnLetoa43qGQ==", - "license": "MIT" + "version": "2.0.46", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.46.tgz", + "integrity": "sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/node-sarif-builder": { "version": "2.0.3", @@ -13691,13 +13773,13 @@ "license": "Unlicense" }, "node_modules/rolldown": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.1.tgz", - "integrity": "sha512-X0KQHljNnEkWNqqiz9zJrGunh1B0HgOxLXvnFpCOcadzcy5qohZ3tqMEUg00vncoRovXuK3ZqCT9KnnKzoInFQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.2.tgz", + "integrity": "sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.130.0", + "@oxc-project/types": "=0.132.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -13707,21 +13789,21 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.1", - "@rolldown/binding-darwin-arm64": "1.0.1", - "@rolldown/binding-darwin-x64": "1.0.1", - "@rolldown/binding-freebsd-x64": "1.0.1", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.1", - "@rolldown/binding-linux-arm64-gnu": "1.0.1", - "@rolldown/binding-linux-arm64-musl": "1.0.1", - "@rolldown/binding-linux-ppc64-gnu": "1.0.1", - "@rolldown/binding-linux-s390x-gnu": "1.0.1", - "@rolldown/binding-linux-x64-gnu": "1.0.1", - "@rolldown/binding-linux-x64-musl": "1.0.1", - "@rolldown/binding-openharmony-arm64": "1.0.1", - "@rolldown/binding-wasm32-wasi": "1.0.1", - "@rolldown/binding-win32-arm64-msvc": "1.0.1", - "@rolldown/binding-win32-x64-msvc": "1.0.1" + "@rolldown/binding-android-arm64": "1.0.2", + "@rolldown/binding-darwin-arm64": "1.0.2", + "@rolldown/binding-darwin-x64": "1.0.2", + "@rolldown/binding-freebsd-x64": "1.0.2", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.2", + "@rolldown/binding-linux-arm64-gnu": "1.0.2", + "@rolldown/binding-linux-arm64-musl": "1.0.2", + "@rolldown/binding-linux-ppc64-gnu": "1.0.2", + "@rolldown/binding-linux-s390x-gnu": "1.0.2", + "@rolldown/binding-linux-x64-gnu": "1.0.2", + "@rolldown/binding-linux-x64-musl": "1.0.2", + "@rolldown/binding-openharmony-arm64": "1.0.2", + "@rolldown/binding-wasm32-wasi": "1.0.2", + "@rolldown/binding-win32-arm64-msvc": "1.0.2", + "@rolldown/binding-win32-x64-msvc": "1.0.2" } }, "node_modules/rolldown/node_modules/@rolldown/pluginutils": { @@ -15063,9 +15145,9 @@ } }, "node_modules/terser": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.47.1.tgz", - "integrity": "sha512-tPbLXTI6ohPASb/1YViL428oEHu6/qv1OxqYnfaonVCFHqx4+wCd95pHrQWsL5X4pl90CTyW9piSAsS2L0VoMw==", + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.48.0.tgz", + "integrity": "sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -15204,9 +15286,9 @@ "license": "MIT" }, "node_modules/tinyexec": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz", - "integrity": "sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.2.tgz", + "integrity": "sha512-M/Q0B2cp4K7kynaT/vnED1j8TlLY+Pp7C6Wl2bl/7u/F0mUVwdyOpwomQb8JpYLitHUssAJRmLZdMCGsrx7i+g==", "license": "MIT", "engines": { "node": ">=18" @@ -15564,38 +15646,41 @@ } }, "node_modules/unrs-resolver": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", - "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.12.2.tgz", + "integrity": "sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { - "napi-postinstall": "^0.3.0" + "napi-postinstall": "^0.3.4" }, "funding": { "url": "https://opencollective.com/unrs-resolver" }, "optionalDependencies": { - "@unrs/resolver-binding-android-arm-eabi": "1.11.1", - "@unrs/resolver-binding-android-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-x64": "1.11.1", - "@unrs/resolver-binding-freebsd-x64": "1.11.1", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", - "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-musl": "1.11.1", - "@unrs/resolver-binding-wasm32-wasi": "1.11.1", - "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", - "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", - "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + "@unrs/resolver-binding-android-arm-eabi": "1.12.2", + "@unrs/resolver-binding-android-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-x64": "1.12.2", + "@unrs/resolver-binding-freebsd-x64": "1.12.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.12.2", + "@unrs/resolver-binding-linux-loong64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-loong64-musl": "1.12.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-musl": "1.12.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-musl": "1.12.2", + "@unrs/resolver-binding-openharmony-arm64": "1.12.2", + "@unrs/resolver-binding-wasm32-wasi": "1.12.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.12.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.12.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.12.2" } }, "node_modules/update-browserslist-db": { @@ -15702,16 +15787,16 @@ "license": "MIT" }, "node_modules/vite": { - "version": "8.0.13", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.13.tgz", - "integrity": "sha512-MFtjBYgzmSxmgA4RAfjIyXWpGe1oALnjgUTzzV7QLx/TKxCzjtMH6Fd9/eVK+5Fg1qNoz5VAwsmMs/NofrmJvw==", + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.14.tgz", + "integrity": "sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==", "dev": true, "license": "MIT", "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", - "postcss": "^8.5.14", - "rolldown": "1.0.1", + "postcss": "^8.5.15", + "rolldown": "1.0.2", "tinyglobby": "^0.2.16" }, "bin": { @@ -15954,9 +16039,9 @@ } }, "node_modules/vue-component-type-helpers": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-3.2.9.tgz", - "integrity": "sha512-S3BiWYaLSzHxTpln665ELSrMR9UYmrIDUmhik7nVZxmJjTKL2/a+ew1hvGxksKelivm0ujjWfG1fYOiU/2e8rA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-3.3.1.tgz", + "integrity": "sha512-pu58kqxmVyEH6VfNYW1UyEfR3XAnJ27ZXT3yzXxxpjLxVzAbyC35Zk/nm/RMs7ijWnJNSd9fWkeex2OhUsx3MA==", "dev": true, "license": "MIT" }, @@ -16046,12 +16131,11 @@ "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.106.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.106.2.tgz", - "integrity": "sha512-wGN3qcrBQIFmQ/c0AiOAQBvrZ5lmY8vbbMv4Mxfgzqd/B6+9pXtLo73WuS1dSGXM5QYY3hZnIbvx+K1xxe6FyA==", + "version": "5.107.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.107.1.tgz", + "integrity": "sha512-mvdIWxj/H6QsfgDdH9djne3a5dYcmEmtsXGESkypaGN5jXjF/b+9KDlmTDQ2TKlFUeA2fI9Y65kihD30JOdB+Q==", "license": "MIT", "dependencies": { - "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", @@ -16061,20 +16145,20 @@ "acorn-import-phases": "^1.0.3", "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.20.0", - "es-module-lexer": "^2.0.0", + "enhanced-resolve": "^5.21.4", + "es-module-lexer": "^2.1.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", - "loader-runner": "^4.3.1", + "loader-runner": "^4.3.2", "mime-db": "^1.54.0", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.3.17", + "terser-webpack-plugin": "^5.5.0", "watchpack": "^2.5.1", - "webpack-sources": "^3.3.4" + "webpack-sources": "^3.4.1" }, "bin": { "webpack": "bin/webpack.js" @@ -16156,9 +16240,9 @@ } }, "node_modules/webpack-sources": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.4.1.tgz", - "integrity": "sha512-eACpxRN02yaawnt+uUNIF7Qje6A9zArxBbcAJjK1PK3S9Ycg5jIuJ8pW4q8EMnwNZCEGltcjkRx1QzOxOkKD8A==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.0.tgz", + "integrity": "sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==", "license": "MIT", "engines": { "node": ">=10.13.0" @@ -16462,9 +16546,9 @@ } }, "node_modules/ws": { - "version": "8.20.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz", - "integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index edcd831f19..40582adfac 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "chart.js": "4.5.1", "chartjs-adapter-dayjs-4": "1.0.4", "chartjs-plugin-zoom": "2.2.0", - "clippie": "4.1.15", + "clippie": "4.2.0", "css-loader": "7.1.3", "dayjs": "1.11.19", "dropzone": "6.0.0-beta.2", @@ -53,7 +53,7 @@ "htmx.org": "2.0.10", "idiomorph": "0.3.0", "jquery": "3.7.1", - "katex": "0.16.47", + "katex": "0.17.0", "mermaid": "11.15.0", "mini-css-extract-plugin": "2.10.0", "minimatch": "10.2.5", @@ -76,7 +76,7 @@ "vue-chartjs": "5.3.3", "vue-loader": "17.4.2", "vue3-calendar-heatmap": "2.0.5", - "webpack": "5.106.2", + "webpack": "5.107.1", "webpack-cli": "7.0.2", "wrap-ansi": "10.0.0" }, diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go index 2ec7617215..f1cea141cc 100644 --- a/routers/api/v1/api.go +++ b/routers/api/v1/api.go @@ -926,6 +926,8 @@ func Routes() *web.Route { m.Get("/attachment", settings.GetGeneralAttachmentSettings) m.Get("/repository", settings.GetGeneralRepoSettings) }) + + m.Get("/actions/run", misc.GetActionsRun) }) // Notifications (requires 'notifications' scope) diff --git a/routers/api/v1/misc/actions.go b/routers/api/v1/misc/actions.go new file mode 100644 index 0000000000..dd63c1631d --- /dev/null +++ b/routers/api/v1/misc/actions.go @@ -0,0 +1,52 @@ +// Copyright 2026 The Forgejo Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package misc + +import ( + "net/http" + + "forgejo.org/models/actions" + "forgejo.org/services/context" + "forgejo.org/services/convert" +) + +// Retrieves a workflow run associated with a token +func GetActionsRun(ctx *context.APIContext) { + // swagger:operation GET /actions/run miscellaneous getActionsRun + // --- + // summary: Get a workflow run associated with a token + // description: > + // The automatic actions token must be used as the authentication mechanism + // (Authorization: Bearer ${{ forgejo.token }}); other + // types of tokens cannot be used. The token is associated with the job, which must be still + // running for the request to this endpoint to succeed. + // produces: + // - application/json + // responses: + // "200": + // "$ref": "#/responses/ActionRun" + hasTaskID, taskID := ctx.Authentication.ActionsTaskID().Get() + if !hasTaskID { + ctx.Error(http.StatusForbidden, "", "must use an automatic actions token") + return + } + task, err := actions.GetTaskByID(ctx, taskID) + if err != nil { + ctx.ServerError("GetTaskByID", err) + return + } + if err := task.LoadJob(ctx); err != nil { + ctx.ServerError("LoadJob", err) + return + } + if err := task.Job.LoadRun(ctx); err != nil { + ctx.ServerError("LoadRun", err) + return + } + if err := task.Job.Run.LoadAttributes(ctx); err != nil { + ctx.ServerError("LoadAttributes", err) + return + } + ctx.JSON(http.StatusOK, convert.ToActionRun(ctx, task.Job.Run, ctx.Doer)) +} diff --git a/routers/web/repo/actions/view.go b/routers/web/repo/actions/view.go index 4bd7f12637..e953947c35 100644 --- a/routers/web/repo/actions/view.go +++ b/routers/web/repo/actions/view.go @@ -739,12 +739,13 @@ func getRunByID(ctx *app_context.Context, runID int64) *actions_model.ActionRun return nil } - run, has, err := actions_model.GetRunByIDWithHas(ctx, runID) - if err != nil { + run, err := actions_model.GetRunByID(ctx, runID) + if err != nil && !errors.Is(err, util.ErrNotExist) { ctx.Error(http.StatusInternalServerError, err.Error()) return nil } - if !has { + + if errors.Is(err, util.ErrNotExist) { log.Debug("Requested runID[%d] not found.", runID) ctx.Error(http.StatusNotFound, fmt.Sprintf("no such run %d", runID)) return nil diff --git a/routers/web/repo/wiki_test.go b/routers/web/repo/wiki_test.go index 5709b32257..4a8195e04e 100644 --- a/routers/web/repo/wiki_test.go +++ b/routers/web/repo/wiki_test.go @@ -86,7 +86,7 @@ func TestWiki(t *testing.T) { Wiki(ctx) assert.Equal(t, http.StatusOK, ctx.Resp.Status()) assert.EqualValues(t, "Home", ctx.Data["Title"]) - assertPagesMetas(t, []string{"Home", "Long Page", "Page With Image", "Page With Spaced Name", "Unescaped File", "XSS"}, ctx.Data["Pages"]) + assertPagesMetas(t, []string{"Home", "Long Page", "Page With Image", "Page With Spaced Name", "Unescaped File"}, ctx.Data["Pages"]) } func TestWikiPages(t *testing.T) { @@ -96,7 +96,7 @@ func TestWikiPages(t *testing.T) { contexttest.LoadRepo(t, ctx, 1) WikiPages(ctx) assert.Equal(t, http.StatusOK, ctx.Resp.Status()) - assertPagesMetas(t, []string{"Home", "Long Page", "Page With Image", "Page With Spaced Name", "Unescaped File", "XSS"}, ctx.Data["Pages"]) + assertPagesMetas(t, []string{"Home", "Long Page", "Page With Image", "Page With Spaced Name", "Unescaped File"}, ctx.Data["Pages"]) } func TestNewWiki(t *testing.T) { diff --git a/routers/web/user/task.go b/routers/web/user/task.go index 4059139552..3ff5bb4993 100644 --- a/routers/web/user/task.go +++ b/routers/web/user/task.go @@ -39,6 +39,14 @@ func TaskStatus(ctx *context.Context) { Args: []any{task.Message}, } } + + // Convert float64 to integers. Currently no usage of floats. + for i := range translatableMessage.Args { + if arg, ok := translatableMessage.Args[i].(float64); ok { + translatableMessage.Args[i] = int64(arg) + } + } + message = ctx.Locale.TrString(translatableMessage.Format, translatableMessage.Args...) } diff --git a/routers/web/web.go b/routers/web/web.go index eabc4d0a04..196d829d99 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -101,12 +101,8 @@ func optionsCorsHandler() func(next http.Handler) http.Handler { } } -// The OAuth2 plugin is expected to be executed first, as it must ignore the user id stored -// in the session (if there is a user id stored in session other plugins might return the user -// object for that id). -// -// The Session plugin is expected to be executed second, in order to skip authentication -// for users that have already signed in. +// Authentication methods that are applied to all the web URL routes. They are processed in the order defined; an +// earlier authentication success would prevent later authentication methods from being attempted. func buildAuthGroup() *auth_method.Group { group := auth_method.NewGroup() group.Add(&auth_method.OAuth2{}) // FIXME: this should be removed and only applied in download and oauth related routers @@ -126,6 +122,23 @@ func buildAuthGroup() *auth_method.Group { return group } +// Authentication methods that are applied to Git HTTP & Git LFS HTTP routes. They are processed in the order defined; +// an earlier authentication success would prevent later authentication methods from being attempted. +func buildGitAuthGroup() *auth_method.Group { + group := auth_method.NewGroup() + group.Add(&auth_method.OAuth2{}) + group.Add(&auth_method.Basic{}) + group.Add(&auth_method.AccessToken{}) + group.Add(&auth_method.ActionRuntimeToken{}) + group.Add(&auth_method.ActionTaskToken{}) + group.Add(&auth_method.AuthorizedIntegration{ + // "Authorization: Basic ..." is easier to use for git operations, and already supported for other tokens, so it + // is enabled for Authorized Integrations as well: + PermitBasic: true, + }) + return group +} + func webAuth(authMethod auth_service.Method) func(*context.Context) { return func(ctx *context.Context) { output := common.AuthShared(ctx.Base, ctx.Session, authMethod) @@ -275,6 +288,8 @@ func ctxDataSet(args ...any) func(ctx *context.Context) { func Routes() *web.Route { routes := web.NewRoute() + routes.Use(chi_middleware.GetHead) + routes.Head("/", misc.DummyOK) // for health check - doesn't need to be passed through gzip handler routes.Methods("GET, HEAD, OPTIONS", "/assets/*", optionsCorsHandler(), public.FileHandlerFunc()) routes.Methods("GET, HEAD", "/avatars/*", resizingHandler("avatars", storage.Avatars, avatar.AllowedResizedAvatarSizes)) @@ -285,54 +300,82 @@ func Routes() *web.Route { _ = templates.HTMLRenderer() - var mid []any - + var gzipMid any if setting.EnableGzip { wrapper, err := gzhttp.NewWrapper(gzhttp.RandomJitter(32, 0, false), gzhttp.MinSize(GzipMinSize)) if err != nil { log.Fatal("gzhttp.NewWrapper failed: %v", err) } - mid = append(mid, wrapper) + gzipMid = wrapper } if setting.Service.EnableCaptcha { // The captcha http.Handler should only fire on /captcha/* so we can just mount this on that url - routes.Methods("GET,HEAD", "/captcha/*", append(mid, captcha.Server(captcha.StdWidth, captcha.StdHeight).ServeHTTP)...) + routes.Methods("GET,HEAD", "/captcha/*", gzipMid, captcha.Server(captcha.StdWidth, captcha.StdHeight).ServeHTTP) } if setting.Metrics.Enabled { prometheus.MustRegister(metrics.NewCollector()) - routes.Get("/metrics", append(mid, Metrics)...) + routes.Get("/metrics", gzipMid, Metrics) } - routes.Methods("GET,HEAD", "/robots.txt", append(mid, misc.RobotsTxt)...) - routes.Methods("GET,HEAD", "/manifest.json", append(mid, misc.ManifestJSON)...) + routes.Methods("GET,HEAD", "/robots.txt", gzipMid, misc.RobotsTxt) + routes.Methods("GET,HEAD", "/manifest.json", gzipMid, misc.ManifestJSON) routes.Get("/ssh_info", misc.SSHInfo) routes.Get("/api/healthz", healthcheck.Check) - mid = append(mid, common.Sessioner(), context.Contexter()) - - // Get user from session if logged in. - mid = append(mid, webAuth(buildAuthGroup())) - - // GetHead allows a HEAD request redirect to GET if HEAD method is not defined for that route - mid = append(mid, chi_middleware.GetHead) - if setting.API.EnableSwagger { - // Note: The route is here but no in API routes because it renders a web page - routes.Get("/api/swagger", append(mid, misc.Swagger)...) // Render V1 by default - routes.Get("/api/forgejo/swagger", append(mid, misc.SwaggerForgejo)...) + routes.Group("", func() { + // Note: The route is here but no in API routes because it renders a web page + routes.Get("/api/swagger", misc.Swagger) // Render V1 by default + routes.Get("/api/forgejo/swagger", misc.SwaggerForgejo) + }, gzipMid, context.Contexter()) } - // TODO: These really seem like things that could be folded into Contexter or as helper functions - mid = append(mid, user.GetNotificationCount) - mid = append(mid, repo.GetActiveStopwatch) - mid = append(mid, goGet) + routes.Group("", + func() { + registerRoutes(routes) + }, + gzipMid, common.Sessioner(), context.Contexter(), webAuth(buildAuthGroup()), + // TODO: GetNotificationCount & GetActiveStopwatch really seem like things that could be folded into Contexter or as helper functions + user.GetNotificationCount, repo.GetActiveStopwatch, + goGet) + + // /{username}/{repo}/info/lfs routes currently need to use buildAuthGroup(), not buildGitAuthGroup(), because: + // + // a) there are tests that use session auth to access the LFS endpoints (TestAPILFSLocksLogged), which may be a test + // error, and + // + // b) if AuthorizedIntegration is included then JWTs generated by the LFS system with `setting.LFS.SigningKey` will + // return AuthenticationAttemptedIncorrectCredential from AuthorizedIntegration, and cause the requests to 401 + // before reaching the LFS handlers. + // + // (a) is probably an error that can be fixed, and (b) should be fixed by changing LFS's JWT handling to be an + // `auth_service.Method` implementation which would be incorporated into the auth group, so that LFS isn't doing + // it's own "after the authentication" authentication. In the interm, it's split out from the `registerRoutes` call + // above because at least fewer middlewares can be safely applied. + routes.Group("", + func() { + registerGitLFSRoutes(routes) + }, gzipMid, common.Sessioner(), context.Contexter(), webAuth(buildAuthGroup()), goGet) + routes.Group("", + func() { + registerGitRoutes(routes) + }, gzipMid, common.Sessioner(), context.Contexter(), webAuth(buildGitAuthGroup()), goGet) + + routes.NotFound( + gzipMid, common.Sessioner(), context.Contexter(), webAuth(buildAuthGroup()), + // TODO: GetNotificationCount & GetActiveStopwatch really seem like things that could be folded into Contexter or as helper functions + user.GetNotificationCount, repo.GetActiveStopwatch, + goGet, + func(w http.ResponseWriter, req *http.Request) { + ctx := context.GetWebContext(req) + if ctx == nil { + panic("missing middleware context.Contexter()") + } + ctx.NotFound("", nil) + }) - others := web.NewRoute() - others.Use(mid...) - registerRoutes(others) - routes.Mount("", others) return routes } @@ -405,13 +448,6 @@ func registerRoutes(m *web.Route) { } } - lfsServerEnabled := func(ctx *context.Context) { - if !setting.LFS.StartServer { - ctx.Error(http.StatusNotFound) - return - } - } - federationEnabled := func(ctx *context.Context) { if !setting.Federation.Enabled { ctx.Error(http.StatusNotFound) @@ -1763,27 +1799,6 @@ func registerRoutes(m *web.Route) { m.Group("/{reponame}", func() { m.Get("", repo.SetEditorconfigIfExists, repo.Home) }, ignSignIn, context.RepoAssignment, context.RepoRef(), context.UnitTypes()) - - m.Group("/{reponame}", func() { - m.Group("/info/lfs", func() { - m.Post("/objects/batch", lfs.CheckAcceptMediaType, lfs.BatchHandler) - m.Put("/objects/{oid}/{size}", lfs.UploadHandler) - m.Get("/objects/{oid}/{filename}", lfs.DownloadHandler) - m.Get("/objects/{oid}", lfs.DownloadHandler) - m.Post("/verify", lfs.CheckAcceptMediaType, lfs.VerifyHandler) - m.Group("/locks", func() { - m.Get("/", lfs.GetListLockHandler) - m.Post("/", lfs.PostLockHandler) - m.Post("/verify", lfs.VerifyLockHandler) - m.Post("/{lid}/unlock", lfs.UnLockHandler) - }, lfs.CheckAcceptMediaType) - m.Any("/*", func(ctx *context.Context) { - ctx.NotFound("", nil) - }) - }, ignoreCSRF, lfsServerEnabled) - - gitHTTPRouters(m) - }) }) if setting.Repository.EnableFlags { @@ -1815,10 +1830,37 @@ func registerRoutes(m *web.Route) { m.Get("/demo/error/{errcode}", demo.ErrorPage) }, ignSignIn) } +} - m.NotFound(func(w http.ResponseWriter, req *http.Request) { - ctx := context.GetWebContext(req) - ctx.NotFound("", nil) +// Registers HTTP Git related routes, which have different top-level middleware than [registerRoutes]. +func registerGitLFSRoutes(m *web.Route) { + lfsServerEnabled := func(ctx *context.Context) { + if !setting.LFS.StartServer { + ctx.Error(http.StatusNotFound) + return + } + } + m.Group("/{username}/{reponame}/info/lfs", func() { + m.Post("/objects/batch", lfs.CheckAcceptMediaType, lfs.BatchHandler) + m.Put("/objects/{oid}/{size}", lfs.UploadHandler) + m.Get("/objects/{oid}/{filename}", lfs.DownloadHandler) + m.Get("/objects/{oid}", lfs.DownloadHandler) + m.Post("/verify", lfs.CheckAcceptMediaType, lfs.VerifyHandler) + m.Group("/locks", func() { + m.Get("/", lfs.GetListLockHandler) + m.Post("/", lfs.PostLockHandler) + m.Post("/verify", lfs.VerifyLockHandler) + m.Post("/{lid}/unlock", lfs.UnLockHandler) + }, lfs.CheckAcceptMediaType) + m.Any("/*", func(ctx *context.Context) { + ctx.NotFound("", nil) + }) + }, ignoreCSRF, lfsServerEnabled) +} + +func registerGitRoutes(m *web.Route) { + m.Group("/{username}/{reponame}", func() { + gitHTTPRouters(m) }) } diff --git a/services/actions/Test_checkJobsOfRun/action_run.yml b/services/actions/Test_checkJobsOfRun/action_run.yml index 1033fb43f8..1c4c8a7cab 100644 --- a/services/actions/Test_checkJobsOfRun/action_run.yml +++ b/services/actions/Test_checkJobsOfRun/action_run.yml @@ -16,3 +16,23 @@ updated: 1683636626 need_approval: 0 approved_by: 0 + +# Test case with needs, only +- id: 901 + title: ".forgejo/workflows/test.yaml" + repo_id: 63 + owner_id: 2 + workflow_id: "test.yaml" + workflow_directory: ".forgejo/workflows" + index: 5 + trigger_user_id: 2 + ref: "refs/heads/main" + commit_sha: "c29b3a4b23e21ea3261291d82bfb8e7af7797e26" + trigger_event: "workflow_dispatch" + is_fork_pull_request: 0 + status: 7 # running + started: 1779368408 + created: 1779368408 + updated: 1779368421 + need_approval: 0 + approved_by: 0 diff --git a/services/actions/Test_checkJobsOfRun/action_run_job.yml b/services/actions/Test_checkJobsOfRun/action_run_job.yml index 3ececeb458..8f496d4940 100644 --- a/services/actions/Test_checkJobsOfRun/action_run_job.yml +++ b/services/actions/Test_checkJobsOfRun/action_run_job.yml @@ -38,3 +38,107 @@ task_id: 100 status: 1 # success runs_on: '["fedora"]' + +# Jobs for run 901. For the test to be effective, it is important that the job with `job_id: c` has a lower `id` than +# `job_id: b` because that reflects real-word ordering issues that need to be handled. +- id: 674 + run_id: 901 + repo_id: 63 + owner_id: 2 + commit_sha: c29b3a4b23e21ea3261291d82bfb8e7af7797e26 + attempt: 1 + job_id: a + needs: null + runs_on: '["fedora"]' + status: 1 # success + task_id: 101 + workflow_payload: | + "on": + workflow_dispatch: + jobs: + a: + name: a + runs-on: ubuntu-latest + steps: + - id: set + run: echo "argument=something" >> "$FORGEJO_OUTPUT" + outputs: + argument: ${{ steps.set.outputs.argument }} + +- id: 676 + run_id: 901 + repo_id: 63 + owner_id: 2 + commit_sha: c29b3a4b23e21ea3261291d82bfb8e7af7797e26 + attempt: 1 + job_id: c + needs: '["a","b"]' + runs_on: '["fedora"]' + status: 7 # blocked + workflow_payload: | + "on": + workflow_dispatch: + jobs: + c: + name: c + runs-on: [] + uses: ./.forgejo/workflows/reusable.yaml + with: + argument: ${{ needs.a.outputs.argument }} + incomplete_with: true + incomplete_with_needs: + job: a + output: argument + __metadata: + workflow_call_id: e0c1155c1286a2f6e213ec7986500f7961418d1e11664de1409a2d8072d6845e + +- id: 677 + run_id: 901 + repo_id: 63 + owner_id: 2 + commit_sha: c29b3a4b23e21ea3261291d82bfb8e7af7797e26 + attempt: 1 + job_id: b + needs: '["b.reusable","a"]' + runs_on: '["fedora"]' + status: 7 # blocked + workflow_payload: | + "on": + workflow_dispatch: + jobs: + b: + name: b + runs-on: [] + if: false + __metadata: + workflow_call_inputs: + argument: something + workflow_call_id: ec2c61f51535f715c1b7b3089c6b2d46578698a4c5d10f6dd4a4466b2f44f81c + +- id: 678 + run_id: 901 + repo_id: 63 + owner_id: 2 + commit_sha: c29b3a4b23e21ea3261291d82bfb8e7af7797e26 + attempt: 1 + job_id: b.reusable + needs: '["a"]' + runs_on: '["fedora"]' + status: 1 # success + workflow_payload: | + "on": + workflow_call: + inputs: + argument: + default: something + type: string + jobs: + b.reusable: + name: reusable + runs-on: ubuntu-latest + steps: + - run: | + echo "Argument: ${{ inputs.argument }}" + __metadata: + workflow_call_parent: ec2c61f51535f715c1b7b3089c6b2d46578698a4c5d10f6dd4a4466b2f44f81c + diff --git a/services/actions/Test_checkJobsOfRun/action_task_output.yml b/services/actions/Test_checkJobsOfRun/action_task_output.yml index b678ac22a9..f364fe5ec3 100644 --- a/services/actions/Test_checkJobsOfRun/action_task_output.yml +++ b/services/actions/Test_checkJobsOfRun/action_task_output.yml @@ -3,3 +3,10 @@ task_id: 100 output_key: colors output_value: '["red", "blue", "green"]' + +- + id: 101 + task_id: 101 + output_key: argument + output_value: "something" + diff --git a/services/actions/job_emitter.go b/services/actions/job_emitter.go index faaf9d2cdf..020362cac0 100644 --- a/services/actions/job_emitter.go +++ b/services/actions/job_emitter.go @@ -61,17 +61,15 @@ func checkJobsOfRun(ctx context.Context, runID int64, recursionCount int) error return fmt.Errorf("checkJobsOfRun for runID %d hit recursion limit %d", runID, recursionCount) } + var jobs actions_model.ActionJobList jobs, err := db.Find[actions_model.ActionRunJob](ctx, actions_model.FindRunJobOptions{RunID: runID}) if err != nil { return err } - if err := db.WithTx(ctx, func(ctx context.Context) error { - idToJobs := make(map[string][]*actions_model.ActionRunJob, len(jobs)) - for _, job := range jobs { - idToJobs[job.JobID] = append(idToJobs[job.JobID], job) - } - updates := newJobStatusResolver(jobs).Resolve() + var updates map[int64]actions_model.Status + if err := db.WithTx(ctx, func(ctx context.Context) error { + updates = newJobStatusResolver(jobs).Resolve() for _, job := range jobs { if status, ok := updates[job.ID]; ok { job.Status = status @@ -115,15 +113,16 @@ func checkJobsOfRun(ctx context.Context, runID int64, recursionCount int) error }); err != nil { return err } + CreateCommitStatus(ctx, jobs...) // tryHandleIncompleteMatrix can create new jobs in this run which may initially be persisted in the DB as blocked // because they have non-empty `needs`. In that case, we need to recursively run the job emitter so that new jobs // are recognized as having their `needs` completed and be set as unblocked. Check if any new jobs were created and - // rerun the job emitter if so. + // rerun the job emitter if so. The same is necessary if updates completed jobs that unblocked other jobs. if hasNewJobs, err := actions_model.RunHasOtherJobs(ctx, runID, jobs); err != nil { return fmt.Errorf("RunHasOtherJobs error: %w", err) - } else if hasNewJobs { + } else if hasNewJobs || len(updates) > 0 { return checkJobsOfRun(ctx, runID, recursionCount+1) } @@ -172,21 +171,6 @@ func newJobStatusResolver(jobs actions_model.ActionJobList) *jobStatusResolver { } func (r *jobStatusResolver) Resolve() map[int64]actions_model.Status { - ret := map[int64]actions_model.Status{} - for i := 0; i < len(r.statuses); i++ { - updated := r.resolve() - if len(updated) == 0 { - return ret - } - for k, v := range updated { - ret[k] = v - r.statuses[k] = v - } - } - return ret -} - -func (r *jobStatusResolver) resolve() map[int64]actions_model.Status { ret := map[int64]actions_model.Status{} for id, status := range r.statuses { if status != actions_model.StatusBlocked { diff --git a/services/actions/job_emitter_test.go b/services/actions/job_emitter_test.go index d6696b3482..e4c8cdfa6e 100644 --- a/services/actions/job_emitter_test.go +++ b/services/actions/job_emitter_test.go @@ -68,8 +68,9 @@ func Test_jobStatusResolver_Resolve(t *testing.T) { {ID: 3, JobID: "3", Status: actions_model.StatusBlocked, Needs: []string{"2"}}, }, want: map[int64]actions_model.Status{ + // Resolve() does only one update pass and does not update jobs recursively. Therefore, job 3, which + // depends on 2, is not marked as skipped. It would only be marked as skipped if it depended on job 1. 2: actions_model.StatusSkipped, - 3: actions_model.StatusSkipped, }, }, { @@ -876,6 +877,61 @@ func Test_tryHandleWorkflowCallOuterJob(t *testing.T) { } } +func Test_checkJobsOfRun(t *testing.T) { + defer unittest.OverrideFixtures("services/actions/Test_checkJobsOfRun")() + require.NoError(t, unittest.PrepareTestDatabase()) + + reusableWorkflow := ` +on: + workflow_call: + inputs: + argument: + type: string + +jobs: + reusable: + runs-on: ubuntu-latest + steps: + - run: | + echo "Argument: ${{ inputs.argument }}" +` + + defer test.MockVariableValue(&lazyRepoExpandLocalReusableWorkflow, + func(ctx context.Context, repoID int64, commitSHA string) (jobparser.LocalWorkflowFetcher, CleanupFunc) { + fetcher := func(job *jobparser.Job, path string) ([]byte, error) { + return []byte(reusableWorkflow), nil + } + cleanup := func() { + } + return fetcher, cleanup + })() + + jobs, err := actions_model.GetRunJobsByRunID(t.Context(), 901) + require.NoError(t, err) + require.Len(t, jobs, 4) + + require.NoError(t, checkJobsOfRun(t.Context(), 901, 0)) + + jobs, err = actions_model.GetRunJobsByRunID(t.Context(), 901) + require.NoError(t, err) + assert.Len(t, jobs, 5) + + assert.Equal(t, "a", jobs[0].JobID) + assert.Equal(t, actions_model.StatusSuccess, jobs[0].Status) + + assert.Equal(t, "b", jobs[1].JobID) + assert.Equal(t, actions_model.StatusSuccess, jobs[1].Status) + + assert.Equal(t, "b.reusable", jobs[2].JobID) + assert.Equal(t, actions_model.StatusSuccess, jobs[2].Status) + + assert.Equal(t, "c", jobs[3].JobID) + assert.Equal(t, actions_model.StatusBlocked, jobs[3].Status) + + assert.Equal(t, "c.reusable", jobs[4].JobID) + assert.Equal(t, actions_model.StatusWaiting, jobs[4].Status) +} + func Test_checkJobsOfRun_ExpandsMatrixWithCorrectOutputJobStatuses(t *testing.T) { defer unittest.OverrideFixtures("services/actions/Test_checkJobsOfRun")() require.NoError(t, unittest.PrepareTestDatabase()) diff --git a/services/convert/pull.go b/services/convert/pull.go index 4856c58736..38ab42048a 100644 --- a/services/convert/pull.go +++ b/services/convert/pull.go @@ -67,7 +67,7 @@ func ToAPIPullRequest(ctx context.Context, pr *issues_model.PullRequest, doer *u apiPullRequest := &api.PullRequest{ ID: pr.ID, - URL: pr.Issue.HTMLURL(), + URL: pr.Issue.APIURL(ctx), Index: pr.Index, Poster: apiIssue.Poster, Title: apiIssue.Title, diff --git a/services/lfs/server.go b/services/lfs/server.go index 1dfd58a3c0..41401e8bfd 100644 --- a/services/lfs/server.go +++ b/services/lfs/server.go @@ -183,7 +183,7 @@ func BatchHandler(ctx *context.Context) { } if isUpload { - ok, err := quota_model.EvaluateForUser(ctx, ctx.Doer.ID, quota_model.LimitSubjectSizeGitLFS) + ok, err := quota_model.EvaluateForUser(ctx, repository.OwnerID, quota_model.LimitSubjectSizeGitLFS) if err != nil { log.Error("quota_model.EvaluateForUser: %v", err) writeStatus(ctx, http.StatusInternalServerError) @@ -191,6 +191,7 @@ func BatchHandler(ctx *context.Context) { } if !ok { writeStatusMessage(ctx, http.StatusRequestEntityTooLarge, "quota exceeded") + return } } @@ -317,8 +318,8 @@ func UploadHandler(ctx *context.Context) { return } - if exists { - ok, err := quota_model.EvaluateForUser(ctx, ctx.Doer.ID, quota_model.LimitSubjectSizeGitLFS) + if !exists { + ok, err := quota_model.EvaluateForUser(ctx, repository.OwnerID, quota_model.LimitSubjectSizeGitLFS) if err != nil { log.Error("quota_model.EvaluateForUser: %v", err) writeStatus(ctx, http.StatusInternalServerError) @@ -326,6 +327,7 @@ func UploadHandler(ctx *context.Context) { } if !ok { writeStatusMessage(ctx, http.StatusRequestEntityTooLarge, "quota exceeded") + return } } diff --git a/services/migrations/lint-locale-usage/llu.go b/services/migrations/lint-locale-usage/llu.go index e0ed031cbe..c6eccfc2d4 100644 --- a/services/migrations/lint-locale-usage/llu.go +++ b/services/migrations/lint-locale-usage/llu.go @@ -35,8 +35,8 @@ func HandleMessengerInFunc(handler llu.Handler, fset *token.FileSet, n2 *ast.Fun if ret, ok := call.Fun.(*ast.Ident); !(ok && messenger.Contains(ret.Name)) { return true } - if len(call.Args) != 1 { - handler.OnWarning(fset, call.Lparen, "unexpected invocation of base.Messenger (expected exactly 1 argument)") + if len(call.Args) == 0 { + handler.OnWarning(fset, call.Lparen, "unexpected invocation of base.Messenger (expected at least one argument)") return true } handler.HandleGoTrArgument(fset, call.Args[0], "") diff --git a/services/migrations/migrate.go b/services/migrations/migrate.go index 6746a8c915..92a959600c 100644 --- a/services/migrations/migrate.go +++ b/services/migrations/migrate.go @@ -344,6 +344,7 @@ func migrateRepository(_ context.Context, doer *user_model.User, downloader base log.Trace("migrating issues and comments") messenger("migrate.in_progress.issues") issueBatchSize := uploader.MaxBatchInsertSize("issue") + var processedIssuesLen int for i := 1; ; i++ { issues, isEnd, err := downloader.GetIssues(i, issueBatchSize) @@ -389,6 +390,8 @@ func migrateRepository(_ context.Context, doer *user_model.User, downloader base } } + processedIssuesLen += len(issues) + messenger("migrate.in_progress.issues.progress", processedIssuesLen) if isEnd { break } @@ -399,6 +402,8 @@ func migrateRepository(_ context.Context, doer *user_model.User, downloader base log.Trace("migrating pull requests and comments") messenger("migrate.in_progress.pulls") prBatchSize := uploader.MaxBatchInsertSize("pullrequest") + var processedPrsLen int + for i := 1; ; i++ { prs, isEnd, err := downloader.GetPullRequests(i, prBatchSize) if err != nil { @@ -471,6 +476,8 @@ func migrateRepository(_ context.Context, doer *user_model.User, downloader base } } + processedPrsLen += len(prs) + messenger("migrate.in_progress.pulls.progress", processedPrsLen) if isEnd { break } diff --git a/services/migrations/migrate_test.go b/services/migrations/migrate_test.go index 804d01df7a..001da836dd 100644 --- a/services/migrations/migrate_test.go +++ b/services/migrations/migrate_test.go @@ -1,3 +1,4 @@ +// Copyright 2026 The Forgejo Authors. All rights reserved. // Copyright 2019 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT @@ -10,8 +11,10 @@ import ( "forgejo.org/models/unittest" user_model "forgejo.org/models/user" + "forgejo.org/modules/migration" "forgejo.org/modules/setting" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -128,3 +131,110 @@ func TestURLAllowedSSH(t *testing.T) { require.NoError(t, IsPushMirrorURLAllowed(sshURL, user)) }) } + +var _ migration.Uploader = nullUploader{} + +type nullUploader struct{} + +func (nullUploader) MaxBatchInsertSize(string) int { + return 1 +} + +func (nullUploader) CreateRepo(*migration.Repository, migration.MigrateOptions) error { + return nil +} + +func (nullUploader) CreateTopics(...string) error { + return nil +} + +func (nullUploader) CreateMilestones(...*migration.Milestone) error { + return nil +} + +func (nullUploader) CreateReleases(...*migration.Release) error { + return nil +} + +func (nullUploader) SyncTags() error { + return nil +} + +func (nullUploader) CreateLabels(...*migration.Label) error { + return nil +} + +func (nullUploader) CreateIssues(...*migration.Issue) error { + return nil +} + +func (nullUploader) CreateComments(...*migration.Comment) error { + return nil +} + +func (nullUploader) CreatePullRequests(...*migration.PullRequest) error { + return nil +} + +func (nullUploader) CreateReviews(...*migration.Review) error { + return nil +} + +func (nullUploader) Rollback() error { + return nil +} + +func (nullUploader) Finish() error { + return nil +} + +func (nullUploader) Close() {} + +type testingDownloader struct { + migration.NullDownloader +} + +func (testingDownloader) GetRepoInfo() (*migration.Repository, error) { + return &migration.Repository{ + CloneURL: "https://codeberg.org/forgejo-contrib/delightful-forgejo.git", + }, nil +} + +func (testingDownloader) GetIssues(page, _ int) ([]*migration.Issue, bool, error) { + return make([]*migration.Issue, 1), page == 2, nil +} + +func (testingDownloader) GetPullRequests(page, _ int) ([]*migration.PullRequest, bool, error) { + return make([]*migration.PullRequest, 1), page == 3, nil +} + +func TestMigrateRepository(t *testing.T) { + messages := []struct { + key string + args []any + }{ + {key: "migrate.in_progress.git"}, + {key: "migrate.in_progress.topics"}, + {key: "migrate.in_progress.issues"}, + {key: "migrate.in_progress.issues.progress", args: []any{1}}, + {key: "migrate.in_progress.issues.progress", args: []any{2}}, + {key: "migrate.in_progress.pulls"}, + {key: "migrate.in_progress.pulls.progress", args: []any{1}}, + {key: "migrate.in_progress.pulls.progress", args: []any{2}}, + {key: "migrate.in_progress.pulls.progress", args: []any{3}}, + } + messenger := func(key string, args ...any) { + if assert.NotEmpty(t, messages, key) { + assert.Equal(t, messages[0].key, key) + assert.Equal(t, messages[0].args, args) + messages = messages[1:] + } + } + + require.NoError(t, migrateRepository(nil, nil, testingDownloader{}, nullUploader{}, migration.MigrateOptions{ + PullRequests: true, + Issues: true, + }, messenger)) + + assert.Empty(t, messages) +} diff --git a/services/webhook/dingtalk.go b/services/webhook/dingtalk.go index 96d4c18c11..077906e192 100644 --- a/services/webhook/dingtalk.go +++ b/services/webhook/dingtalk.go @@ -62,6 +62,13 @@ type ( } ) +var dingtalkPayloadFormatter = webhookPayloadFormatter{ + linkFormatter: noneLinkFormatter, + nameFormatter: noneNameFormatter, + withSender: true, + withRepoName: true, +} + // Create implements PayloadConvertor Create method func (dc dingtalkConvertor) Create(p *api.CreatePayload) (DingtalkPayload, error) { // created tag/branch @@ -130,14 +137,14 @@ func (dc dingtalkConvertor) Push(p *api.PushPayload) (DingtalkPayload, error) { // Issue implements PayloadConvertor Issue method func (dc dingtalkConvertor) Issue(p *api.IssuePayload) (DingtalkPayload, error) { - text, issueTitle, attachmentText, _ := getIssuesPayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, issueTitle, attachmentText, _ := dingtalkPayloadFormatter.getIssuesPayloadInfo(p) return createDingtalkPayload(issueTitle, text+"\r\n\r\n"+attachmentText, "view issue", p.Issue.HTMLURL), nil } // Wiki implements PayloadConvertor Wiki method func (dc dingtalkConvertor) Wiki(p *api.WikiPayload) (DingtalkPayload, error) { - text, _, _ := getWikiPayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, _, _ := dingtalkPayloadFormatter.getWikiPayloadInfo(p, true) url := p.Repository.HTMLURL + "/wiki/" + url.PathEscape(p.Page) return createDingtalkPayload(text, text, "view wiki", url), nil @@ -145,14 +152,14 @@ func (dc dingtalkConvertor) Wiki(p *api.WikiPayload) (DingtalkPayload, error) { // IssueComment implements PayloadConvertor IssueComment method func (dc dingtalkConvertor) IssueComment(p *api.IssueCommentPayload) (DingtalkPayload, error) { - text, issueTitle, _ := getIssueCommentPayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, issueTitle, _ := dingtalkPayloadFormatter.getIssueCommentPayloadInfo(p) return createDingtalkPayload(issueTitle, text+"\r\n\r\n"+p.Comment.Body, "view issue comment", p.Comment.HTMLURL), nil } // PullRequest implements PayloadConvertor PullRequest method func (dc dingtalkConvertor) PullRequest(p *api.PullRequestPayload) (DingtalkPayload, error) { - text, issueTitle, attachmentText, _ := getPullRequestPayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, issueTitle, attachmentText, _ := dingtalkPayloadFormatter.getPullRequestPayloadInfo(p) return createDingtalkPayload(issueTitle, text+"\r\n\r\n"+attachmentText, "view pull request", p.PullRequest.HTMLURL), nil } @@ -196,19 +203,19 @@ func (dc dingtalkConvertor) Repository(p *api.RepositoryPayload) (DingtalkPayloa // Release implements PayloadConvertor Release method func (dc dingtalkConvertor) Release(p *api.ReleasePayload) (DingtalkPayload, error) { - text, _ := getReleasePayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, _ := dingtalkPayloadFormatter.getReleasePayloadInfo(p) return createDingtalkPayload(text, text, "view release", p.Release.HTMLURL), nil } func (dc dingtalkConvertor) Package(p *api.PackagePayload) (DingtalkPayload, error) { - text, _ := getPackagePayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, _ := dingtalkPayloadFormatter.getPackagePayloadInfo(p) return createDingtalkPayload(text, text, "view package", p.Package.HTMLURL), nil } func (dc dingtalkConvertor) Action(p *api.ActionPayload) (DingtalkPayload, error) { - text, _ := getActionPayloadInfo(p, noneLinkFormatter) + text, _ := dingtalkPayloadFormatter.getActionPayloadInfo(p) return createDingtalkPayload(text, text, "view action", p.Run.HTMLURL), nil } diff --git a/services/webhook/dingtalk_test.go b/services/webhook/dingtalk_test.go index 5d2a240660..3eb2d42c8c 100644 --- a/services/webhook/dingtalk_test.go +++ b/services/webhook/dingtalk_test.go @@ -178,8 +178,8 @@ func TestDingTalkPayload(t *testing.T) { pl, err := dc.Wiki(p) require.NoError(t, err) - assert.Equal(t, "[test/repo] New wiki page 'index' (Wiki change comment) by user1", pl.ActionCard.Text) - assert.Equal(t, "[test/repo] New wiki page 'index' (Wiki change comment) by user1", pl.ActionCard.Title) + assert.Equal(t, "[test/repo] New wiki page \"index\" (Wiki change comment) by user1", pl.ActionCard.Text) + assert.Equal(t, "[test/repo] New wiki page \"index\" (Wiki change comment) by user1", pl.ActionCard.Title) assert.Equal(t, "view wiki", pl.ActionCard.SingleTitle) assert.Equal(t, "http://localhost:3000/test/repo/wiki/index", parseRealSingleURL(pl.ActionCard.SingleURL)) @@ -187,8 +187,8 @@ func TestDingTalkPayload(t *testing.T) { pl, err = dc.Wiki(p) require.NoError(t, err) - assert.Equal(t, "[test/repo] Wiki page 'index' edited (Wiki change comment) by user1", pl.ActionCard.Text) - assert.Equal(t, "[test/repo] Wiki page 'index' edited (Wiki change comment) by user1", pl.ActionCard.Title) + assert.Equal(t, "[test/repo] Wiki page \"index\" edited (Wiki change comment) by user1", pl.ActionCard.Text) + assert.Equal(t, "[test/repo] Wiki page \"index\" edited (Wiki change comment) by user1", pl.ActionCard.Title) assert.Equal(t, "view wiki", pl.ActionCard.SingleTitle) assert.Equal(t, "http://localhost:3000/test/repo/wiki/index", parseRealSingleURL(pl.ActionCard.SingleURL)) @@ -196,8 +196,8 @@ func TestDingTalkPayload(t *testing.T) { pl, err = dc.Wiki(p) require.NoError(t, err) - assert.Equal(t, "[test/repo] Wiki page 'index' deleted by user1", pl.ActionCard.Text) - assert.Equal(t, "[test/repo] Wiki page 'index' deleted by user1", pl.ActionCard.Title) + assert.Equal(t, "[test/repo] Wiki page \"index\" deleted by user1", pl.ActionCard.Text) + assert.Equal(t, "[test/repo] Wiki page \"index\" deleted by user1", pl.ActionCard.Title) assert.Equal(t, "view wiki", pl.ActionCard.SingleTitle) assert.Equal(t, "http://localhost:3000/test/repo/wiki/index", parseRealSingleURL(pl.ActionCard.SingleURL)) }) diff --git a/services/webhook/discord.go b/services/webhook/discord.go index cb7584e157..279756a81e 100644 --- a/services/webhook/discord.go +++ b/services/webhook/discord.go @@ -45,6 +45,12 @@ type discordForm struct { var _ binding.Validator = &discordForm{} +var discordPayloadFormatter = webhookPayloadFormatter{ + linkFormatter: noneLinkFormatter, + nameFormatter: noneNameFormatter, + withRepoName: true, +} + // Validate implements binding.Validator. func (d *discordForm) Validate(req *http.Request, errs binding.Errors) binding.Errors { ctx := app_context.GetWebContext(req) @@ -235,21 +241,21 @@ func (d discordConvertor) Push(p *api.PushPayload) (DiscordPayload, error) { // Issue implements PayloadConvertor Issue method func (d discordConvertor) Issue(p *api.IssuePayload) (DiscordPayload, error) { - title, _, text, color := getIssuesPayloadInfo(p, noneLinkFormatter, noneNameFormatter, false) + title, _, text, color := discordPayloadFormatter.getIssuesPayloadInfo(p) return d.createPayload(p.Sender, title, text, p.Issue.HTMLURL, color), nil } // IssueComment implements PayloadConvertor IssueComment method func (d discordConvertor) IssueComment(p *api.IssueCommentPayload) (DiscordPayload, error) { - title, _, color := getIssueCommentPayloadInfo(p, noneLinkFormatter, noneNameFormatter, false) + title, _, color := discordPayloadFormatter.getIssueCommentPayloadInfo(p) return d.createPayload(p.Sender, title, p.Comment.Body, p.Comment.HTMLURL, color), nil } // PullRequest implements PayloadConvertor PullRequest method func (d discordConvertor) PullRequest(p *api.PullRequestPayload) (DiscordPayload, error) { - title, _, text, color := getPullRequestPayloadInfo(p, noneLinkFormatter, noneNameFormatter, false) + title, _, text, color := discordPayloadFormatter.getPullRequestPayloadInfo(p) return d.createPayload(p.Sender, title, text, p.PullRequest.HTMLURL, color), nil } @@ -301,7 +307,7 @@ func (d discordConvertor) Repository(p *api.RepositoryPayload) (DiscordPayload, // Wiki implements PayloadConvertor Wiki method func (d discordConvertor) Wiki(p *api.WikiPayload) (DiscordPayload, error) { - text, color, _ := getWikiPayloadInfo(p, noneLinkFormatter, noneNameFormatter, false) + text, color, _ := discordPayloadFormatter.getWikiPayloadInfo(p, true) htmlLink := p.Repository.HTMLURL + "/wiki/" + url.PathEscape(p.Page) var description string @@ -314,19 +320,19 @@ func (d discordConvertor) Wiki(p *api.WikiPayload) (DiscordPayload, error) { // Release implements PayloadConvertor Release method func (d discordConvertor) Release(p *api.ReleasePayload) (DiscordPayload, error) { - text, color := getReleasePayloadInfo(p, noneLinkFormatter, noneNameFormatter, false) + text, color := discordPayloadFormatter.getReleasePayloadInfo(p) return d.createPayload(p.Sender, text, p.Release.Note, p.Release.HTMLURL, color), nil } func (d discordConvertor) Package(p *api.PackagePayload) (DiscordPayload, error) { - text, color := getPackagePayloadInfo(p, noneLinkFormatter, noneNameFormatter, false) + text, color := discordPayloadFormatter.getPackagePayloadInfo(p) return d.createPayload(p.Sender, text, "", p.Package.HTMLURL, color), nil } func (d discordConvertor) Action(p *api.ActionPayload) (DiscordPayload, error) { - text, color := getActionPayloadInfo(p, noneLinkFormatter) + text, color := discordPayloadFormatter.getActionPayloadInfo(p) return d.createPayload(p.Run.TriggerUser, text, "", p.Run.HTMLURL, color), nil } diff --git a/services/webhook/discord_test.go b/services/webhook/discord_test.go index 23745b421a..6a5d1da334 100644 --- a/services/webhook/discord_test.go +++ b/services/webhook/discord_test.go @@ -279,7 +279,7 @@ func TestDiscordPayload(t *testing.T) { require.NoError(t, err) assert.Len(t, pl.Embeds, 1) - assert.Equal(t, "[test/repo] New wiki page 'index' (Wiki change comment)", pl.Embeds[0].Title) + assert.Equal(t, "[test/repo] New wiki page \"index\" (Wiki change comment)", pl.Embeds[0].Title) assert.Equal(t, "Wiki change comment", pl.Embeds[0].Description) assert.Equal(t, "http://localhost:3000/test/repo/wiki/index", pl.Embeds[0].URL) assert.Equal(t, p.Sender.UserName, pl.Embeds[0].Author.Name) @@ -291,7 +291,7 @@ func TestDiscordPayload(t *testing.T) { require.NoError(t, err) assert.Len(t, pl.Embeds, 1) - assert.Equal(t, "[test/repo] Wiki page 'index' edited (Wiki change comment)", pl.Embeds[0].Title) + assert.Equal(t, "[test/repo] Wiki page \"index\" edited (Wiki change comment)", pl.Embeds[0].Title) assert.Equal(t, "Wiki change comment", pl.Embeds[0].Description) assert.Equal(t, "http://localhost:3000/test/repo/wiki/index", pl.Embeds[0].URL) assert.Equal(t, p.Sender.UserName, pl.Embeds[0].Author.Name) @@ -303,7 +303,7 @@ func TestDiscordPayload(t *testing.T) { require.NoError(t, err) assert.Len(t, pl.Embeds, 1) - assert.Equal(t, "[test/repo] Wiki page 'index' deleted", pl.Embeds[0].Title) + assert.Equal(t, "[test/repo] Wiki page \"index\" deleted", pl.Embeds[0].Title) assert.Empty(t, pl.Embeds[0].Description) assert.Equal(t, "http://localhost:3000/test/repo/wiki/index", pl.Embeds[0].URL) assert.Equal(t, p.Sender.UserName, pl.Embeds[0].Author.Name) diff --git a/services/webhook/feishu.go b/services/webhook/feishu.go index ffbd4eb469..a2e4632361 100644 --- a/services/webhook/feishu.go +++ b/services/webhook/feishu.go @@ -63,6 +63,13 @@ func newFeishuTextPayload(text string) FeishuPayload { } } +var feishuPayloadFormatter = webhookPayloadFormatter{ + linkFormatter: noneLinkFormatter, + nameFormatter: noneNameFormatter, + withSender: true, + withRepoName: true, +} + // Create implements PayloadConvertor Create method func (fc feishuConvertor) Create(p *api.CreatePayload) (FeishuPayload, error) { // created tag/branch @@ -174,26 +181,26 @@ func (fc feishuConvertor) Repository(p *api.RepositoryPayload) (FeishuPayload, e // Wiki implements PayloadConvertor Wiki method func (fc feishuConvertor) Wiki(p *api.WikiPayload) (FeishuPayload, error) { - text, _, _ := getWikiPayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, _, _ := feishuPayloadFormatter.getWikiPayloadInfo(p, true) return newFeishuTextPayload(text), nil } // Release implements PayloadConvertor Release method func (fc feishuConvertor) Release(p *api.ReleasePayload) (FeishuPayload, error) { - text, _ := getReleasePayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, _ := feishuPayloadFormatter.getReleasePayloadInfo(p) return newFeishuTextPayload(text), nil } func (fc feishuConvertor) Package(p *api.PackagePayload) (FeishuPayload, error) { - text, _ := getPackagePayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, _ := feishuPayloadFormatter.getPackagePayloadInfo(p) return newFeishuTextPayload(text), nil } func (fc feishuConvertor) Action(p *api.ActionPayload) (FeishuPayload, error) { - text, _ := getActionPayloadInfo(p, noneLinkFormatter) + text, _ := feishuPayloadFormatter.getActionPayloadInfo(p) return newFeishuTextPayload(text), nil } diff --git a/services/webhook/feishu_test.go b/services/webhook/feishu_test.go index 7cf24b84ed..5258edea7f 100644 --- a/services/webhook/feishu_test.go +++ b/services/webhook/feishu_test.go @@ -131,19 +131,19 @@ func TestFeishuPayload(t *testing.T) { pl, err := fc.Wiki(p) require.NoError(t, err) - assert.Equal(t, "[test/repo] New wiki page 'index' (Wiki change comment) by user1", pl.Content.Text) + assert.Equal(t, "[test/repo] New wiki page \"index\" (Wiki change comment) by user1", pl.Content.Text) p.Action = api.HookWikiEdited pl, err = fc.Wiki(p) require.NoError(t, err) - assert.Equal(t, "[test/repo] Wiki page 'index' edited (Wiki change comment) by user1", pl.Content.Text) + assert.Equal(t, "[test/repo] Wiki page \"index\" edited (Wiki change comment) by user1", pl.Content.Text) p.Action = api.HookWikiDeleted pl, err = fc.Wiki(p) require.NoError(t, err) - assert.Equal(t, "[test/repo] Wiki page 'index' deleted by user1", pl.Content.Text) + assert.Equal(t, "[test/repo] Wiki page \"index\" deleted by user1", pl.Content.Text) }) t.Run("Release", func(t *testing.T) { diff --git a/services/webhook/general.go b/services/webhook/general.go index 0f1b3da70a..19307cd451 100644 --- a/services/webhook/general.go +++ b/services/webhook/general.go @@ -17,8 +17,8 @@ import ( ) type ( - linkFormatter = func(string, string) string - nameFormatter = func(string) string + linkFormatter = func(url, text string) string + nameFormatter = func(name string) string ) // noneLinkFormatter does not create a link but just returns the text @@ -101,48 +101,56 @@ func getIssuesCommentInfo(p *api.IssueCommentPayload, nameFormatter nameFormatte return title, link, by, operator } -func getIssuesPayloadInfo(p *api.IssuePayload, linkFormatter linkFormatter, nameFormatter nameFormatter, withSender bool) (string, string, string, int) { - issueTitle := fmt.Sprintf("#%d %s", p.Index, p.Issue.Title) - titleLink := linkFormatter(fmt.Sprintf("%s/issues/%d", p.Repository.HTMLURL, p.Index), issueTitle) - var text string - color := yellowColor +type webhookPayloadFormatter struct { + linkFormatter linkFormatter + nameFormatter nameFormatter + withSender, withRepoName bool +} + +func (wpf webhookPayloadFormatter) getIssuesPayloadInfo(p *api.IssuePayload) (text, issueTitle, attachmentText string, color int) { + issueTitle = fmt.Sprintf("#%d %s", p.Index, p.Issue.Title) + titleLink := wpf.linkFormatter(fmt.Sprintf("%s/issues/%d", p.Repository.HTMLURL, p.Index), issueTitle) + color = yellowColor switch p.Action { case api.HookIssueOpened: - text = fmt.Sprintf("[%s] Issue opened: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Issue opened: %s", titleLink) color = orangeColor case api.HookIssueClosed: - text = fmt.Sprintf("[%s] Issue closed: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Issue closed: %s", titleLink) color = redColor case api.HookIssueReOpened: - text = fmt.Sprintf("[%s] Issue re-opened: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Issue re-opened: %s", titleLink) case api.HookIssueEdited: - text = fmt.Sprintf("[%s] Issue edited: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Issue edited: %s", titleLink) case api.HookIssueAssigned: list := make([]string, len(p.Issue.Assignees)) for i, user := range p.Issue.Assignees { - list[i] = linkFormatter(setting.AppURL+url.PathEscape(user.UserName), user.UserName) + list[i] = wpf.linkFormatter(setting.AppURL+url.PathEscape(user.UserName), user.UserName) } - text = fmt.Sprintf("[%s] Issue assigned to %s: %s", p.Repository.FullName, strings.Join(list, ", "), titleLink) + text = fmt.Sprintf("Issue assigned to %s: %s", strings.Join(list, ", "), titleLink) color = greenColor case api.HookIssueUnassigned: - text = fmt.Sprintf("[%s] Issue unassigned: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Issue unassigned: %s", titleLink) case api.HookIssueLabelUpdated: - text = fmt.Sprintf("[%s] Issue labels updated: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Issue labels updated: %s", titleLink) case api.HookIssueLabelCleared: - text = fmt.Sprintf("[%s] Issue labels cleared: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Issue labels cleared: %s", titleLink) case api.HookIssueSynchronized: - text = fmt.Sprintf("[%s] Issue synchronized: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Issue synchronized: %s", titleLink) case api.HookIssueMilestoned: - text = fmt.Sprintf("[%s] Issue milestoned to %s: %s", p.Repository.FullName, p.Issue.Milestone.Title, titleLink) + text = fmt.Sprintf("Issue milestoned to %s: %s", p.Issue.Milestone.Title, titleLink) case api.HookIssueDemilestoned: - text = fmt.Sprintf("[%s] Issue milestone cleared: %s", p.Repository.FullName, titleLink) - } - if withSender { - text += fmt.Sprintf(" by %s", nameFormatter(p.Sender.UserName)) + text = fmt.Sprintf("Issue milestone cleared: %s", titleLink) + } + + if wpf.withRepoName { + text = fmt.Sprintf("[%s] %s", p.Repository.FullName, text) + } + if wpf.withSender { + text += fmt.Sprintf(" by %s", wpf.nameFormatter(p.Sender.UserName)) } - var attachmentText string if p.Action == api.HookIssueOpened || p.Action == api.HookIssueEdited { attachmentText = p.Issue.Body } @@ -150,152 +158,160 @@ func getIssuesPayloadInfo(p *api.IssuePayload, linkFormatter linkFormatter, name return text, issueTitle, attachmentText, color } -func getPullRequestPayloadInfo(p *api.PullRequestPayload, linkFormatter linkFormatter, nameFormatter nameFormatter, withSender bool) (string, string, string, int) { - issueTitle := fmt.Sprintf("#%d %s", p.Index, p.PullRequest.Title) - titleLink := linkFormatter(p.PullRequest.URL, issueTitle) - var text string - var attachmentText string - color := yellowColor +func (wpf webhookPayloadFormatter) getPullRequestPayloadInfo(p *api.PullRequestPayload) (text, issueTitle, attachmentText string, color int) { + issueTitle = fmt.Sprintf("#%d %s", p.Index, p.PullRequest.Title) + titleLink := wpf.linkFormatter(p.PullRequest.URL, issueTitle) + color = yellowColor switch p.Action { case api.HookIssueOpened: - text = fmt.Sprintf("[%s] Pull request opened: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Pull request opened: %s", titleLink) attachmentText = p.PullRequest.Body color = greenColor case api.HookIssueClosed: if p.PullRequest.HasMerged { - text = fmt.Sprintf("[%s] Pull request merged: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Pull request merged: %s", titleLink) color = purpleColor } else { - text = fmt.Sprintf("[%s] Pull request closed: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Pull request closed: %s", titleLink) color = redColor } case api.HookIssueReOpened: - text = fmt.Sprintf("[%s] Pull request re-opened: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Pull request re-opened: %s", titleLink) case api.HookIssueEdited: - text = fmt.Sprintf("[%s] Pull request edited: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Pull request edited: %s", titleLink) attachmentText = p.PullRequest.Body case api.HookIssueAssigned: list := make([]string, len(p.PullRequest.Assignees)) for i, user := range p.PullRequest.Assignees { - list[i] = linkFormatter(setting.AppURL+user.UserName, user.UserName) + list[i] = wpf.linkFormatter(setting.AppURL+user.UserName, user.UserName) } - text = fmt.Sprintf("[%s] Pull request assigned to %s: %s", p.Repository.FullName, - strings.Join(list, ", "), titleLink) + text = fmt.Sprintf("Pull request assigned to %s: %s", strings.Join(list, ", "), titleLink) color = greenColor case api.HookIssueUnassigned: - text = fmt.Sprintf("[%s] Pull request unassigned: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Pull request unassigned: %s", titleLink) case api.HookIssueLabelUpdated: - text = fmt.Sprintf("[%s] Pull request labels updated: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Pull request labels updated: %s", titleLink) case api.HookIssueLabelCleared: - text = fmt.Sprintf("[%s] Pull request labels cleared: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Pull request labels cleared: %s", titleLink) case api.HookIssueSynchronized: - text = fmt.Sprintf("[%s] Pull request synchronized: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Pull request synchronized: %s", titleLink) case api.HookIssueMilestoned: - text = fmt.Sprintf("[%s] Pull request milestoned to %s: %s", p.Repository.FullName, p.PullRequest.Milestone.Title, titleLink) + text = fmt.Sprintf("Pull request milestoned to %s: %s", p.PullRequest.Milestone.Title, titleLink) case api.HookIssueDemilestoned: - text = fmt.Sprintf("[%s] Pull request milestone cleared: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Pull request milestone cleared: %s", titleLink) case api.HookIssueReviewed: - text = fmt.Sprintf("[%s] Pull request reviewed: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Pull request reviewed: %s", titleLink) attachmentText = p.Review.Content case api.HookIssueReviewRequested: - text = fmt.Sprintf("[%s] Pull request review requested: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Pull request review requested: %s", titleLink) case api.HookIssueReviewRequestRemoved: - text = fmt.Sprintf("[%s] Pull request review request removed: %s", p.Repository.FullName, titleLink) + text = fmt.Sprintf("Pull request review request removed: %s", titleLink) } - if withSender { - text += fmt.Sprintf(" by %s", nameFormatter(p.Sender.UserName)) + if wpf.withRepoName { + text = fmt.Sprintf("[%s] %s", p.Repository.FullName, text) + } + if wpf.withSender { + text += fmt.Sprintf(" by %s", wpf.nameFormatter(p.Sender.UserName)) } return text, issueTitle, attachmentText, color } -func getReleasePayloadInfo(p *api.ReleasePayload, linkFormatter linkFormatter, nameFormatter nameFormatter, withSender bool) (text string, color int) { - refLink := linkFormatter(p.Repository.HTMLURL+"/releases/tag/"+util.PathEscapeSegments(p.Release.TagName), p.Release.TagName) +func (wpf webhookPayloadFormatter) getReleasePayloadInfo(p *api.ReleasePayload) (text string, color int) { + refLink := wpf.linkFormatter(p.Repository.HTMLURL+"/releases/tag/"+util.PathEscapeSegments(p.Release.TagName), p.Release.TagName) switch p.Action { case api.HookReleasePublished: - text = fmt.Sprintf("[%s] Release created: %s", p.Repository.FullName, refLink) + text = fmt.Sprintf("Release created: %s", refLink) color = greenColor case api.HookReleaseUpdated: - text = fmt.Sprintf("[%s] Release updated: %s", p.Repository.FullName, refLink) + text = fmt.Sprintf("Release updated: %s", refLink) color = yellowColor case api.HookReleaseDeleted: - text = fmt.Sprintf("[%s] Release deleted: %s", p.Repository.FullName, refLink) + text = fmt.Sprintf("Release deleted: %s", refLink) color = redColor } - if withSender { - text += fmt.Sprintf(" by %s", nameFormatter(p.Sender.UserName)) + if wpf.withRepoName { + text = fmt.Sprintf("[%s] %s", p.Repository.FullName, text) + } + if wpf.withSender { + text += fmt.Sprintf(" by %s", wpf.nameFormatter(p.Sender.UserName)) } return text, color } -func getWikiPayloadInfo(p *api.WikiPayload, linkFormatter linkFormatter, nameFormatter nameFormatter, withSender bool) (string, int, string) { - pageLink := linkFormatter(p.Repository.HTMLURL+"/wiki/"+url.PathEscape(p.Page), p.Page) +func (wpf webhookPayloadFormatter) getWikiPayloadInfo(p *api.WikiPayload, withCommitMessage bool) (text string, color int, pageLink string) { + pageLink = wpf.linkFormatter(p.Repository.HTMLURL+"/wiki/"+url.PathEscape(p.Page), p.Page) - var text string - color := greenColor + color = greenColor switch p.Action { case api.HookWikiCreated: - text = fmt.Sprintf("[%s] New wiki page '%s'", p.Repository.FullName, pageLink) + text = fmt.Sprintf("New wiki page \"%s\"", pageLink) case api.HookWikiEdited: - text = fmt.Sprintf("[%s] Wiki page '%s' edited", p.Repository.FullName, pageLink) + text = fmt.Sprintf("Wiki page \"%s\" edited", pageLink) color = yellowColor case api.HookWikiDeleted: - text = fmt.Sprintf("[%s] Wiki page '%s' deleted", p.Repository.FullName, pageLink) + text = fmt.Sprintf("Wiki page \"%s\" deleted", pageLink) color = redColor } - if p.Action != api.HookWikiDeleted && p.Comment != "" { + if p.Action != api.HookWikiDeleted && p.Comment != "" && withCommitMessage { text += fmt.Sprintf(" (%s)", p.Comment) } - if withSender { - text += fmt.Sprintf(" by %s", nameFormatter(p.Sender.UserName)) + if wpf.withRepoName { + text = fmt.Sprintf("[%s] %s", p.Repository.FullName, text) + } + if wpf.withSender { + text += fmt.Sprintf(" by %s", wpf.nameFormatter(p.Sender.UserName)) } return text, color, pageLink } -func getIssueCommentPayloadInfo(p *api.IssueCommentPayload, linkFormatter linkFormatter, nameFormatter nameFormatter, withSender bool) (string, string, int) { - issueTitle := fmt.Sprintf("#%d %s", p.Issue.Index, p.Issue.Title) +func (wpf webhookPayloadFormatter) getIssueCommentPayloadInfo(p *api.IssueCommentPayload) (text, issueTitle string, color int) { + issueTitle = fmt.Sprintf("#%d %s", p.Issue.Index, p.Issue.Title) - var text, typ, titleLink string - color := yellowColor + var typ, titleLink string + color = yellowColor if p.IsPull { typ = "pull request" - titleLink = linkFormatter(p.Comment.PRURL, issueTitle) + titleLink = wpf.linkFormatter(p.Comment.PRURL, issueTitle) } else { typ = "issue" - titleLink = linkFormatter(p.Comment.IssueURL, issueTitle) + titleLink = wpf.linkFormatter(p.Comment.IssueURL, issueTitle) } switch p.Action { case api.HookIssueCommentCreated: - text = fmt.Sprintf("[%s] New comment on %s %s", p.Repository.FullName, typ, titleLink) + text = fmt.Sprintf("New comment on %s %s", typ, titleLink) if p.IsPull { color = greenColorLight } else { color = orangeColorLight } case api.HookIssueCommentEdited: - text = fmt.Sprintf("[%s] Comment edited on %s %s", p.Repository.FullName, typ, titleLink) + text = fmt.Sprintf("Comment edited on %s %s", typ, titleLink) case api.HookIssueCommentDeleted: - text = fmt.Sprintf("[%s] Comment deleted on %s %s", p.Repository.FullName, typ, titleLink) + text = fmt.Sprintf("Comment deleted on %s %s", typ, titleLink) color = redColor } - if withSender { - text += fmt.Sprintf(" by %s", nameFormatter(p.Sender.UserName)) + if wpf.withRepoName { + text = fmt.Sprintf("[%s] %s", p.Repository.FullName, text) + } + if wpf.withSender { + text += fmt.Sprintf(" by %s", wpf.nameFormatter(p.Sender.UserName)) } return text, issueTitle, color } -func getPackagePayloadInfo(p *api.PackagePayload, linkFormatter linkFormatter, nameFormatter nameFormatter, withSender bool) (text string, color int) { - refLink := linkFormatter(p.Package.HTMLURL, p.Package.Name+":"+p.Package.Version) +func (wpf webhookPayloadFormatter) getPackagePayloadInfo(p *api.PackagePayload) (text string, color int) { + refLink := wpf.linkFormatter(p.Package.HTMLURL, p.Package.Name+":"+p.Package.Version) switch p.Action { case api.HookPackageCreated: @@ -305,16 +321,16 @@ func getPackagePayloadInfo(p *api.PackagePayload, linkFormatter linkFormatter, n text = fmt.Sprintf("Package deleted: %s", refLink) color = redColor } - if withSender { - text += fmt.Sprintf(" by %s", nameFormatter(p.Sender.UserName)) + if wpf.withSender { + text += fmt.Sprintf(" by %s", wpf.nameFormatter(p.Sender.UserName)) } return text, color } -func getActionPayloadInfo(p *api.ActionPayload, linkFormatter linkFormatter) (text string, color int) { - runLink := linkFormatter(p.Run.HTMLURL, p.Run.Title) - repoLink := linkFormatter(p.Run.Repo.HTMLURL, p.Run.Repo.FullName) +func (wpf webhookPayloadFormatter) getActionPayloadInfo(p *api.ActionPayload) (text string, color int) { + runLink := wpf.linkFormatter(p.Run.HTMLURL, p.Run.Title) + repoLink := wpf.linkFormatter(p.Run.Repo.HTMLURL, p.Run.Repo.FullName) switch p.Action { case api.HookActionFailure: diff --git a/services/webhook/general_test.go b/services/webhook/general_test.go index 478fc003a1..d5b5bb3d62 100644 --- a/services/webhook/general_test.go +++ b/services/webhook/general_test.go @@ -4,6 +4,7 @@ package webhook import ( + "fmt" "strings" "testing" @@ -12,6 +13,13 @@ import ( "github.com/stretchr/testify/assert" ) +var generalTestPayloadFormatter = webhookPayloadFormatter{ + linkFormatter: noneLinkFormatter, + nameFormatter: noneNameFormatter, + withSender: true, + withRepoName: true, +} + func createTestPayload() *api.CreatePayload { return &api.CreatePayload{ Sha: "2020558fe2e34debb818a514715839cabd25e777", @@ -476,7 +484,7 @@ func TestGetIssuesPayloadInfo(t *testing.T) { for i, c := range cases { p.Action = c.action - text, issueTitle, attachmentText, color := getIssuesPayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, issueTitle, attachmentText, color := generalTestPayloadFormatter.getIssuesPayloadInfo(p) assert.Equal(t, c.text, text, "case %d", i) assert.Equal(t, c.issueTitle, issueTitle, "case %d", i) assert.Equal(t, c.attachmentText, attachmentText, "case %d", i) @@ -575,7 +583,7 @@ func TestGetPullRequestPayloadInfo(t *testing.T) { for i, c := range cases { p.Action = c.action - text, issueTitle, attachmentText, color := getPullRequestPayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, issueTitle, attachmentText, color := generalTestPayloadFormatter.getPullRequestPayloadInfo(p) assert.Equal(t, c.text, text, "case %d", i) assert.Equal(t, c.issueTitle, issueTitle, "case %d", i) assert.Equal(t, c.attachmentText, attachmentText, "case %d", i) @@ -594,19 +602,19 @@ func TestGetWikiPayloadInfo(t *testing.T) { }{ { api.HookWikiCreated, - "[test/repo] New wiki page 'index' (Wiki change comment) by user1", + "[test/repo] New wiki page \"index\" (Wiki change comment) by user1", greenColor, "index", }, { api.HookWikiEdited, - "[test/repo] Wiki page 'index' edited (Wiki change comment) by user1", + "[test/repo] Wiki page \"index\" edited (Wiki change comment) by user1", yellowColor, "index", }, { api.HookWikiDeleted, - "[test/repo] Wiki page 'index' deleted by user1", + "[test/repo] Wiki page \"index\" deleted by user1", redColor, "index", }, @@ -614,7 +622,7 @@ func TestGetWikiPayloadInfo(t *testing.T) { for i, c := range cases { p.Action = c.action - text, color, link := getWikiPayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, color, link := generalTestPayloadFormatter.getWikiPayloadInfo(p, true) assert.Equal(t, c.text, text, "case %d", i) assert.Equal(t, c.color, color, "case %d", i) assert.Equal(t, c.link, link, "case %d", i) @@ -648,7 +656,7 @@ func TestGetReleasePayloadInfo(t *testing.T) { for i, c := range cases { p.Action = c.action - text, color := getReleasePayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, color := generalTestPayloadFormatter.getReleasePayloadInfo(p) assert.Equal(t, c.text, text, "case %d", i) assert.Equal(t, c.color, color, "case %d", i) } @@ -685,7 +693,7 @@ func TestGetIssueCommentPayloadInfo(t *testing.T) { for i, c := range cases { p.Action = c.action - text, issueTitle, color := getIssueCommentPayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, issueTitle, color := generalTestPayloadFormatter.getIssueCommentPayloadInfo(p) assert.Equal(t, c.text, text, "case %d", i) assert.Equal(t, c.issueTitle, issueTitle, "case %d", i) assert.Equal(t, c.color, color, "case %d", i) @@ -719,8 +727,82 @@ func TestGetActionPayloadInfo(t *testing.T) { for i, c := range cases { p.Action = c.action - text, color := getActionPayloadInfo(p, noneLinkFormatter) + text, color := generalTestPayloadFormatter.getActionPayloadInfo(p) assert.Equal(t, c.text, text, "case %d", i) assert.Equal(t, c.color, color, "case %d", i) } } + +func TestWebhookPayloadTextFormatter(t *testing.T) { + p := issueTestPayload() + p.Action = api.HookIssueOpened + + formatterCases := []struct { + formatter webhookPayloadFormatter + expectedText string + }{ + { + formatter: webhookPayloadFormatter{ + linkFormatter: noneLinkFormatter, + nameFormatter: noneNameFormatter, + withSender: false, + withRepoName: false, + }, + expectedText: "Issue opened: #2 crash", + }, + { + formatter: webhookPayloadFormatter{ + linkFormatter: noneLinkFormatter, + nameFormatter: noneNameFormatter, + withSender: true, + withRepoName: false, + }, + expectedText: "Issue opened: #2 crash by user1", + }, + { + formatter: webhookPayloadFormatter{ + linkFormatter: noneLinkFormatter, + nameFormatter: noneNameFormatter, + withSender: false, + withRepoName: true, + }, + expectedText: "[test/repo] Issue opened: #2 crash", + }, + { + formatter: webhookPayloadFormatter{ + linkFormatter: noneLinkFormatter, + nameFormatter: noneNameFormatter, + withSender: true, + withRepoName: true, + }, + expectedText: "[test/repo] Issue opened: #2 crash by user1", + }, + { + formatter: webhookPayloadFormatter{ + linkFormatter: func(url, text string) string { + return fmt.Sprintf("%s @ %s", text, url) + }, + nameFormatter: noneNameFormatter, + withSender: true, + withRepoName: true, + }, + expectedText: "[test/repo] Issue opened: #2 crash @ http://localhost:3000/test/repo/issues/2 by user1", + }, + { + formatter: webhookPayloadFormatter{ + linkFormatter: noneLinkFormatter, + nameFormatter: func(name string) string { + return fmt.Sprintf("!!! @%s !!!", name) + }, + withSender: true, + withRepoName: false, + }, + expectedText: "Issue opened: #2 crash by !!! @user1 !!!", + }, + } + + for i, c := range formatterCases { + text, _, _, _ := c.formatter.getIssuesPayloadInfo(p) + assert.Equal(t, c.expectedText, text, "case %d", i) + } +} diff --git a/services/webhook/matrix.go b/services/webhook/matrix.go index a4bd774f50..a32a2c4825 100644 --- a/services/webhook/matrix.go +++ b/services/webhook/matrix.go @@ -127,6 +127,13 @@ type MatrixPayload struct { var _ shared.PayloadConvertor[MatrixPayload] = matrixConvertor{} +var matrixPayloadFormatter = webhookPayloadFormatter{ + linkFormatter: htmlLinkFormatter, + nameFormatter: noneNameFormatter, + withSender: true, + withRepoName: true, +} + type matrixConvertor struct { MsgType string } @@ -169,28 +176,28 @@ func (m matrixConvertor) Fork(p *api.ForkPayload) (MatrixPayload, error) { // Issue implements payloadConvertor Issue method func (m matrixConvertor) Issue(p *api.IssuePayload) (MatrixPayload, error) { - text, _, _, _ := getIssuesPayloadInfo(p, htmlLinkFormatter, noneNameFormatter, true) + text, _, _, _ := matrixPayloadFormatter.getIssuesPayloadInfo(p) return m.newPayload(text) } // IssueComment implements payloadConvertor IssueComment method func (m matrixConvertor) IssueComment(p *api.IssueCommentPayload) (MatrixPayload, error) { - text, _, _ := getIssueCommentPayloadInfo(p, htmlLinkFormatter, noneNameFormatter, true) + text, _, _ := matrixPayloadFormatter.getIssueCommentPayloadInfo(p) return m.newPayload(text) } // Wiki implements payloadConvertor Wiki method func (m matrixConvertor) Wiki(p *api.WikiPayload) (MatrixPayload, error) { - text, _, _ := getWikiPayloadInfo(p, htmlLinkFormatter, noneNameFormatter, true) + text, _, _ := matrixPayloadFormatter.getWikiPayloadInfo(p, true) return m.newPayload(text) } // Release implements payloadConvertor Release method func (m matrixConvertor) Release(p *api.ReleasePayload) (MatrixPayload, error) { - text, _ := getReleasePayloadInfo(p, htmlLinkFormatter, noneNameFormatter, true) + text, _ := matrixPayloadFormatter.getReleasePayloadInfo(p) return m.newPayload(text) } @@ -223,7 +230,7 @@ func (m matrixConvertor) Push(p *api.PushPayload) (MatrixPayload, error) { // PullRequest implements payloadConvertor PullRequest method func (m matrixConvertor) PullRequest(p *api.PullRequestPayload) (MatrixPayload, error) { - text, _, _, _ := getPullRequestPayloadInfo(p, htmlLinkFormatter, noneNameFormatter, true) + text, _, _, _ := matrixPayloadFormatter.getPullRequestPayloadInfo(p) return m.newPayload(text) } @@ -275,7 +282,7 @@ func (m matrixConvertor) Package(p *api.PackagePayload) (MatrixPayload, error) { } func (m matrixConvertor) Action(p *api.ActionPayload) (MatrixPayload, error) { - text, _ := getActionPayloadInfo(p, htmlLinkFormatter) + text, _ := matrixPayloadFormatter.getActionPayloadInfo(p) return m.newPayload(text) } diff --git a/services/webhook/matrix_test.go b/services/webhook/matrix_test.go index 1644def0e1..a160dac718 100644 --- a/services/webhook/matrix_test.go +++ b/services/webhook/matrix_test.go @@ -159,24 +159,24 @@ func TestMatrixPayload(t *testing.T) { require.NoError(t, err) require.NotNil(t, pl) - assert.Equal(t, "[test/repo] New wiki page '[index](http://localhost:3000/test/repo/wiki/index)' (Wiki change comment) by user1", pl.Body) - assert.Equal(t, `[test/repo] New wiki page 'index' (Wiki change comment) by user1`, pl.FormattedBody) + assert.Equal(t, "[test/repo] New wiki page \"[index](http://localhost:3000/test/repo/wiki/index)\" (Wiki change comment) by user1", pl.Body) + assert.Equal(t, `[test/repo] New wiki page "index" (Wiki change comment) by user1`, pl.FormattedBody) p.Action = api.HookWikiEdited pl, err = mc.Wiki(p) require.NoError(t, err) require.NotNil(t, pl) - assert.Equal(t, "[test/repo] Wiki page '[index](http://localhost:3000/test/repo/wiki/index)' edited (Wiki change comment) by user1", pl.Body) - assert.Equal(t, `[test/repo] Wiki page 'index' edited (Wiki change comment) by user1`, pl.FormattedBody) + assert.Equal(t, "[test/repo] Wiki page \"[index](http://localhost:3000/test/repo/wiki/index)\" edited (Wiki change comment) by user1", pl.Body) + assert.Equal(t, `[test/repo] Wiki page "index" edited (Wiki change comment) by user1`, pl.FormattedBody) p.Action = api.HookWikiDeleted pl, err = mc.Wiki(p) require.NoError(t, err) require.NotNil(t, pl) - assert.Equal(t, "[test/repo] Wiki page '[index](http://localhost:3000/test/repo/wiki/index)' deleted by user1", pl.Body) - assert.Equal(t, `[test/repo] Wiki page 'index' deleted by user1`, pl.FormattedBody) + assert.Equal(t, "[test/repo] Wiki page \"[index](http://localhost:3000/test/repo/wiki/index)\" deleted by user1", pl.Body) + assert.Equal(t, `[test/repo] Wiki page "index" deleted by user1`, pl.FormattedBody) }) t.Run("Release", func(t *testing.T) { diff --git a/services/webhook/msteams.go b/services/webhook/msteams.go index 43ab588230..578062b846 100644 --- a/services/webhook/msteams.go +++ b/services/webhook/msteams.go @@ -18,6 +18,9 @@ import ( webhook_module "forgejo.org/modules/webhook" "forgejo.org/services/forms" "forgejo.org/services/webhook/shared" + + "golang.org/x/text/cases" + "golang.org/x/text/language" ) type msteamsHandler struct{} @@ -44,60 +47,274 @@ func (msteamsHandler) UnmarshalForm(bind func(any)) forms.WebhookForm { } type ( - // MSTeamsFact for Fact Structure + // MSTeamsAction defines an action for an Adaptive Card, for example, opening a URL. + MSTeamsAction struct { + Type string `json:"type"` // e.g. "Action.OpenUrl" or "Action.ToggleVisibility" + Title string `json:"title,omitempty"` // The button title + URL string `json:"url,omitempty"` // The URL to open + TargetElements []string `json:"targetElements,omitempty"` // For Action.ToggleVisibility + } + + // MSTeamsTextBlock defines the Adaptive Card TextBlock element. + MSTeamsTextBlock struct { + Type string `json:"type"` // Must be "TextBlock" + Text string `json:"text"` // The text content + Size string `json:"size,omitempty"` // e.g., "Small", "Default", "Medium", "Large", "ExtraLarge" + Weight string `json:"weight,omitempty"` // e.g., "Lighter", "Default", "Bolder" + Color string `json:"color,omitempty"` // text color, e.g., "Default", "Dark", "Light", "Accent", "Good", "Warning", "Attention" + IsSubtle *bool `json:"isSubtle,omitempty"` // Optional: makes text less prominent (nil->omitted) + Wrap *bool `json:"wrap,omitempty"` // Optional: enables text wrapping (nil->omitted) + MaxLines int `json:"maxLines,omitempty"` // Optional: maximum number of lines to display + HorizAlign string `json:"horizontalAlignment,omitempty"` // e.g., "Left", "Center", "Right" + Spacing string `json:"spacing,omitempty"` // e.g., "None", "Small", "Default", "Medium", "Large", "ExtraLarge", "Padding" + FontType string `json:"fontType,omitempty"` // e.g., "Default", "Monospace" + Style string `json:"style,omitempty"` // e.g., "default","columnHeader","heading" + SelectAction *MSTeamsAction `json:"selectAction,omitempty"` // Optional: action when the TextBlock is clicked + IsVisible *bool `json:"isVisible,omitempty"` // Optional: is visible or not, default is true (nil->omitted) + } + + MSTeamsBadge struct { + Type string `json:"type"` // Must be "Badge" + Text string `json:"text,omitempty"` // The text content. Either this or Icon should be present + Icon string `json:"icon,omitempty"` // Icon to display. Either this or Text should be present + Appearance string `json:"appearance,omitempty"` // e.g., "Filled", "Tint" + IconPosition string `json:"iconPosition,omitempty"` // e.g., "Before", "After" + Shape string `json:"shape,omitempty"` // e.g., "Square", "Rounded", "Circular" + Size string `json:"size,omitempty"` // e.g., "Medium", "Large", "ExtraLarge" + Style string `json:"style,omitempty"` // e.g., "Default", "Subtle", "Informative", "Accent", "Good", "Attention", "Warning" + Spacing string `json:"spacing,omitempty"` // e.g., "None", "Small", "Default", "Medium", "Large", "ExtraLarge", "Padding" + SelectAction *MSTeamsAction `json:"selectAction,omitempty"` // Optional: action when the IconRun is clicked + ID string `json:"id,omitempty"` + } + + // MSTeamsRickTextBlock defines the Adaptive Card RichTextBlock element, along with its contents (TextRun, IconRun, ImageRun) + MSTeamsRichTextBlock struct { + Type string `json:"type"` // Must be "RichTextBlock" + Inlines []any `json:"inlines"` // Content, should be array of either TextRun, IconRun, ImageRun + LabelFor string `json:"labelFor,omitempty"` // Optional: label for the RichTextBlock + HorizAlign string `json:"horizontalAlignment,omitempty"` // e.g., "Left", "Center", "Right" + Spacing string `json:"spacing,omitempty"` // e.g., "None", "Small", "Default", "Medium", "Large", "ExtraLarge", "Padding" + ID string `json:"id,omitempty"` // ID + IsVisible *bool `json:"isVisible,omitempty"` // Optional: is visible or not, default is true (nil->omitted) + } + + MSTeamsRichTextTextRun struct { + Type string `json:"type"` // Must be "TextRun" + Text string `json:"text"` // The text content + Highlight *bool `json:"highlight,omitempty"` + Italic *bool `json:"italic,omitempty"` + Strikethrough *bool `json:"strikethrough,omitempty"` + Underline *bool `json:"underline,omitempty"` + Color string `json:"color,omitempty"` // text color, e.g., "Default", "Dark", "Light", "Accent", "Good", "Warning", "Attention" + FontType string `json:"fontType,omitempty"` // e.g., "Default", "Monospace" + IsSubtle *bool `json:"isSubtle,omitempty"` // Optional: makes text less prominent (nil->omitted) + Size string `json:"size,omitempty"` // e.g., "Small", "Default", "Medium", "Large", "ExtraLarge" + Weight string `json:"weight,omitempty"` // e.g., "Lighter", "Default", "Bolder" + SelectAction *MSTeamsAction `json:"selectAction,omitempty"` // Optional: action when the TextRun is clicked + ID string `json:"id,omitempty"` + } + + MSTeamsIcon struct { + Type string `json:"type"` // Must be "Icon" + Name string `json:"name"` // The icon name to display + Color string `json:"color,omitempty"` // text color, e.g., "Default", "Dark", "Light", "Accent", "Good", "Warning", "Attention" + Size string `json:"size,omitempty"` // e.g., "xxSmall", "xSmall", "Small", "Standard", "Medium", "Large", "xLarge", "xxLarge" + Style string `json:"style,omitempty"` // e.g., "Regular", "Filled" + SelectAction *MSTeamsAction `json:"selectAction,omitempty"` // Optional: action when the IconRun is clicked + ID string `json:"id,omitempty"` + } + + // MSTeamsImage defines the Adaptive Card Image element. + MSTeamsImage struct { + Type string `json:"type"` // Must be "Image" + URL string `json:"url"` // URL of the image + Alt string `json:"altText"` // Alt text for the image + Size string `json:"size,omitempty"` // e.g., "Auto", "Stretch", "Small", "Medium", "Large" + Style string `json:"style,omitempty"` // e.g., "Default", "Person", "RoundedCorners" + SelectAction *MSTeamsAction `json:"selectAction,omitempty"` // Optional: action when the columnset is clicked + } + + // MSTeamsColumn defines a column in an Adaptive Card ColumnSet. + MSTeamsColumn struct { + Type string `json:"type"` // Must be "Column" + Items []any `json:"items,omitempty"` // Array of card elements (TextBlock, Image, etc.) + Width any `json:"width,omitempty"` // "auto", "stretch", or number/string for fixed width + Style string `json:"style,omitempty"` // e.g., "default", "emphasis" + VerticalAlign string `json:"verticalContentAlignment,omitempty"` // "Top", "Center", "Bottom" + Bleed *bool `json:"bleed,omitempty"` // Optional: allow content to bleed outside padding (nil->omitted) + Separator *bool `json:"separator,omitempty"` // Optional: draw a separating line (nil->omitted) + Spacing string `json:"spacing,omitempty"` // e.g., "none", "small", "default", "medium", "large", "extraLarge", "padding" + SelectAction *MSTeamsAction `json:"selectAction,omitempty"` // Optional: action when column is clicked + IsVisible *bool `json:"isVisible,omitempty"` // Optional: is visible or not, default is true (nil->omitted) + } + + // MSTeamsColumnSet defines a row of columns in an Adaptive Card. + MSTeamsColumnSet struct { + Type string `json:"type"` // Must be "ColumnSet" + Columns []MSTeamsColumn `json:"columns"` // Array of columns + Spacing string `json:"spacing,omitempty"` // e.g., "none", "small", "default", "medium", "large", "extraLarge", "padding" + Separator *bool `json:"separator,omitempty"` // Optional: draw a separating line (nil->omitted) + Bleed *bool `json:"bleed,omitempty"` // Optional: allow content to bleed outside padding (nil->omitted) + SelectAction *MSTeamsAction `json:"selectAction,omitempty"` // Optional: action when columnset is clicked + IsVisible *bool `json:"isVisible,omitempty"` // Optional: is visible or not, default is true (nil->omitted) + } + + // MSTeamsFact represents a fact in an Adaptive Card FactSet. MSTeamsFact struct { - Name string `json:"name"` + Title string `json:"title"` Value string `json:"value"` } - // MSTeamsSection is a MessageCard section - MSTeamsSection struct { - ActivityTitle string `json:"activityTitle"` - ActivitySubtitle string `json:"activitySubtitle"` - ActivityImage string `json:"activityImage"` - Facts []MSTeamsFact `json:"facts"` - Text string `json:"text"` + // MSTeamsFactSet represents the Adaptive Card FactSet element. + MSTeamsFactSet struct { + Type string `json:"type"` // Must be "FactSet" + Facts []MSTeamsFact `json:"facts"` // List of facts + Separator *bool `json:"separator,omitempty"` // Optional: draw a separating line (nil->omitted) + Spacing string `json:"spacing,omitempty"` // e.g., "None", "ExtraSmall", "Small", "Default", "Medium", "Large", "ExtraLarge", "Padding" } - // MSTeamsAction is an action (creates buttons, links etc) - MSTeamsAction struct { - Type string `json:"@type"` - Name string `json:"name"` - Targets []MSTeamsActionTarget `json:"targets,omitempty"` + // MSTeamsContainer corresponds to an Adaptive Card container. + MSTeamsContainer struct { + Type string `json:"type"` // Must be "Container" + Items []any `json:"items,omitempty"` // Array of card elements (TextBlock, Image, FactSet, etc.) + ShowBorder *bool `json:"showBorder,omitempty"` // Optional: draw a border around the container (nil->omitted) + RoundedCorners *bool `json:"roundedCorners,omitempty"` // Optional: round the corners of the container (nil->omitted) + Spacing string `json:"spacing,omitempty"` // e.g., "None", "ExtraSmall", "Small", "Default", "Medium", "Large", "ExtraLarge", "Padding" + Bleed *bool `json:"bleed,omitempty"` // Optional: allow content to bleed outside padding (nil->omitted) + Style string `json:"style,omitempty"` // color theme of the container, e.g. "default", "emphasis", "accent", "good", "attention", "warning" + ID string `json:"id,omitempty"` // ID + IsVisible *bool `json:"isVisible,omitempty"` // Optional: is visible or not, default is true (nil->omitted) + VerticalAlign string `json:"verticalContentAlignment,omitempty"` // "Top", "Center", "Bottom" } - // MSTeamsActionTarget is the actual link to follow, etc - MSTeamsActionTarget struct { - Os string `json:"os"` - URI string `json:"uri"` + MSTeamsOptions struct { + Width string `json:"width"` // use "Full" to make card full width } - // MSTeamsPayload is the parent object + // MSTeamsPayload represents the Adaptive Card payload. + // Adaptive Cards use "body" for visual elements and "actions" for interactive buttons. MSTeamsPayload struct { - Type string `json:"@type"` - Context string `json:"@context"` - ThemeColor string `json:"themeColor"` - Title string `json:"title"` - Summary string `json:"summary"` - Sections []MSTeamsSection `json:"sections"` - PotentialAction []MSTeamsAction `json:"potentialAction"` + Type string `json:"type"` // Must be "AdaptiveCard" + Schema string `json:"$schema"` // e.g., "http://adaptivecards.io/schemas/adaptive-card.json" + Version string `json:"version"` // e.g., "1.5" + MsTeams MSTeamsOptions `json:"msteams"` // Optional: settings for Microsoft Teams + Body []MSTeamsContainer `json:"body"` // Array of containers (sections) + Actions []MSTeamsAction `json:"actions,omitempty"` // Optional array of actions + Style string `json:"style,omitempty"` // color theme of the card, e.g. "default", "emphasis", "accent", "good", "attention", "warning" } ) +var ( + defaultStyle = "default" // default colour + emphasisStyle = "emphasis" // darker + accentStyle = "accent" // blue-purple + goodStyle = "good" // green + attentionStyle = "attention" // red + warningStyle = "warning" // yellow + // informativeStyle = "informative" // gray with white text + // subtleStyle = "subtle" // gray with dark text +) + +func capitalise(s string) string { + caser := cases.Title(language.English) + return caser.String(strings.ToLower(s)) +} + +func markdownLinkFormatter(url, text string) string { + if url == "" { + return text + } + return fmt.Sprintf(`[%s](%s)`, text, url) +} + +var msTeamsPayloadFormatter = webhookPayloadFormatter{ + nameFormatter: noneNameFormatter, + linkFormatter: noneLinkFormatter, + withSender: false, + withRepoName: false, +} + +func makeBadgeRow(badgeText, badgeIcon, badgeStyle string, refInfo ...string) MSTeamsContainer { + extraRefInfoText := []any{} + for _, info := range refInfo { + extraRefInfoText = append(extraRefInfoText, MSTeamsTextBlock{ + Type: "TextBlock", + Text: info, + Size: "Small", + IsSubtle: new(true), + Spacing: "None", + }) + } + + return MSTeamsContainer{ + Type: "Container", + VerticalAlign: "Center", + Items: []any{ + MSTeamsColumnSet{ + Type: "ColumnSet", + Columns: []MSTeamsColumn{ + { + Type: "Column", + Width: "auto", + Items: []any{ + MSTeamsBadge{ + Type: "Badge", + Size: "Large", + Icon: badgeIcon, + Text: badgeText, + Style: badgeStyle, + }, + }, + }, + { + Type: "Column", + Width: "stretch", + Items: extraRefInfoText, + }, + }, + }, + }, + } +} + +func pullRequestBranchInfo(p *api.PullRequestPayload) string { + if p == nil || p.PullRequest == nil { + return "" + } + + headRef, baseRef := "", "" + if p.PullRequest.Head != nil { + headRef = p.PullRequest.Head.Ref + } + if p.PullRequest.Base != nil { + baseRef = p.PullRequest.Base.Ref + } + + switch { + case headRef == "" && baseRef == "": + return "" + case headRef == "": + return baseRef + case baseRef == "": + return headRef + default: + return fmt.Sprintf("%s → %s", headRef, baseRef) + } +} + // Create implements PayloadConvertor Create method func (m msteamsConvertor) Create(p *api.CreatePayload) (MSTeamsPayload, error) { // created tag/branch refName := git.RefName(p.Ref).ShortName() - title := fmt.Sprintf("[%s] %s %s created", p.Repo.FullName, p.RefType, refName) + actionTitle := fmt.Sprintf("%s created: %s", capitalise(p.RefType), refName) return createMSTeamsPayload( p.Repo, p.Sender, - title, - "", + actionTitle, + nil, p.Repo.HTMLURL+"/src/"+util.PathEscapeSegments(refName), - greenColor, - &MSTeamsFact{fmt.Sprintf("%s:", p.RefType), refName}, + goodStyle, ), nil } @@ -105,283 +322,764 @@ func (m msteamsConvertor) Create(p *api.CreatePayload) (MSTeamsPayload, error) { func (m msteamsConvertor) Delete(p *api.DeletePayload) (MSTeamsPayload, error) { // deleted tag/branch refName := git.RefName(p.Ref).ShortName() - title := fmt.Sprintf("[%s] %s %s deleted", p.Repo.FullName, p.RefType, refName) + actionTitle := fmt.Sprintf("%s deleted: %s", capitalise(p.RefType), refName) return createMSTeamsPayload( p.Repo, p.Sender, - title, - "", - p.Repo.HTMLURL+"/src/"+util.PathEscapeSegments(refName), - yellowColor, - &MSTeamsFact{fmt.Sprintf("%s:", p.RefType), refName}, + actionTitle, + nil, + p.Repo.HTMLURL, + attentionStyle, ), nil } // Fork implements PayloadConvertor Fork method func (m msteamsConvertor) Fork(p *api.ForkPayload) (MSTeamsPayload, error) { - title := fmt.Sprintf("%s is forked to %s", p.Forkee.FullName, p.Repo.FullName) + actionTitle := fmt.Sprintf("%s is forked to %s", markdownLinkFormatter(p.Forkee.HTMLURL, p.Forkee.FullName), p.Repo.FullName) return createMSTeamsPayload( p.Repo, p.Sender, - title, - "", + actionTitle, + nil, p.Repo.HTMLURL, - greenColor, - &MSTeamsFact{"Forkee:", p.Forkee.FullName}, + accentStyle, ), nil } // Push implements PayloadConvertor Push method func (m msteamsConvertor) Push(p *api.PushPayload) (MSTeamsPayload, error) { var ( - branchName = git.RefName(p.Ref).ShortName() - commitDesc string + branchName = git.RefName(p.Ref).ShortName() + actionTitle string ) - var titleLink string + var diffLink string if p.TotalCommits == 1 { - commitDesc = "1 new commit" - titleLink = p.Commits[0].URL + actionTitle = fmt.Sprintf("[%s] 1 new commit", branchName) + diffLink = p.Commits[0].URL } else { - commitDesc = fmt.Sprintf("%d new commits", p.TotalCommits) - titleLink = p.CompareURL + actionTitle = fmt.Sprintf("[%s] %d new commits", branchName, p.TotalCommits) + diffLink = p.CompareURL } - if titleLink == "" { - titleLink = p.Repo.HTMLURL + "/src/" + util.PathEscapeSegments(branchName) + if diffLink == "" { + diffLink = p.Repo.HTMLURL + "/src/" + util.PathEscapeSegments(branchName) } - title := fmt.Sprintf("[%s:%s] %s", p.Repo.FullName, branchName, commitDesc) + var shownCommits []any + var hiddenCommits []any + const limit = 5 - var text strings.Builder - // for each commit, generate attachment text for i, commit := range p.Commits { - fmt.Fprintf(&text, "[%s](%s) %s - %s", commit.ID[:7], commit.URL, - strings.TrimRight(commit.Message, "\r\n"), commit.Author.Name) - // add linebreak to each commit but the last - if i < len(p.Commits)-1 { - text.WriteString("\n\n") + currentCommitTextBlock := MSTeamsColumnSet{ + Type: "ColumnSet", + Columns: []MSTeamsColumn{ + { + Type: "Column", + Width: "auto", + Items: []any{ + MSTeamsTextBlock{ + Type: "TextBlock", + Text: markdownLinkFormatter(commit.URL, commit.ID[:8]), + Size: "Small", + FontType: "Monospace", + }, + }, + }, + { + Type: "Column", + Width: "stretch", + Items: []any{ + MSTeamsTextBlock{ + Type: "TextBlock", + Text: strings.TrimRight(commit.Message, "\r\n"), + Size: "Small", + MaxLines: 3, + }, + }, + }, + }, } + if i < limit { + shownCommits = append(shownCommits, currentCommitTextBlock) + } else { + hiddenCommits = append(hiddenCommits, currentCommitTextBlock) + } + } + + bodyContainer := MSTeamsContainer{ + Type: "Container", + Style: emphasisStyle, + ShowBorder: new(true), + Items: shownCommits, + } + + if len(hiddenCommits) > 0 { + var extraCommitText string + remaining := len(hiddenCommits) + if remaining == 1 { + extraCommitText = "*and 1 more commit*" + } else { + extraCommitText = fmt.Sprintf("*and %d more commits*", remaining) + } + + // Expand control + showMore := MSTeamsContainer{ + Type: "Container", + ID: "showMore", + Items: []any{ + MSTeamsColumnSet{ + Type: "ColumnSet", + SelectAction: &MSTeamsAction{ + Type: "Action.ToggleVisibility", + TargetElements: []string{"showMore", "showLess", "hiddenCommits"}, + }, + Columns: []MSTeamsColumn{ + { + Type: "Column", + Items: []any{ + MSTeamsTextBlock{ + Type: "TextBlock", + Text: extraCommitText, + Size: "Small", + }, + }, + Width: "auto", + }, + { + Type: "Column", + Items: []any{ + MSTeamsIcon{ + Type: "Icon", + Name: "ChevronDown", + Size: "xxSmall", + }, + }, + Width: "auto", + }, + }, + }, + }, + } + + // Hidden commit messages + hiddenBlock := MSTeamsContainer{ + Type: "Container", + ID: "hiddenCommits", + Items: hiddenCommits, + IsVisible: new(false), + } + + // Collapse control + showLess := MSTeamsContainer{ + Type: "Container", + ID: "showLess", + IsVisible: new(false), + Items: []any{ + MSTeamsColumnSet{ + Type: "ColumnSet", + SelectAction: &MSTeamsAction{ + Type: "Action.ToggleVisibility", + TargetElements: []string{"showMore", "showLess", "hiddenCommits"}, + }, + Columns: []MSTeamsColumn{ + { + Type: "Column", + Items: []any{ + MSTeamsTextBlock{ + Type: "TextBlock", + Text: "Collapse", + Size: "Small", + }, + }, + Width: "auto", + }, + { + Type: "Column", + Items: []any{ + MSTeamsIcon{ + Type: "Icon", + Name: "ChevronUp", + Size: "xxSmall", + }, + }, + Width: "auto", + }, + }, + }, + }, + } + + bodyContainer.Items = append(bodyContainer.Items, showMore, hiddenBlock, showLess) } return createMSTeamsPayload( p.Repo, p.Sender, - title, - text.String(), - titleLink, - greenColor, - &MSTeamsFact{"Commit count:", fmt.Sprintf("%d", p.TotalCommits)}, + actionTitle, + []MSTeamsContainer{bodyContainer}, + diffLink, + defaultStyle, ), nil } // Issue implements PayloadConvertor Issue method func (m msteamsConvertor) Issue(p *api.IssuePayload) (MSTeamsPayload, error) { - title, _, attachmentText, color := getIssuesPayloadInfo(p, noneLinkFormatter, noneNameFormatter, false) + actionTitle, _, attachmentText, _ := msTeamsPayloadFormatter.getIssuesPayloadInfo(p) + + badgeStyle := attentionStyle + if p.Action == api.HookIssueReOpened { + badgeStyle = warningStyle + } else if p.Issue.State == api.StateOpen { + badgeStyle = goodStyle + } + + bodySections := []MSTeamsContainer{ + makeBadgeRow(capitalise(string(p.Issue.State)), "Target", badgeStyle, fmt.Sprintf("%s#%d", p.Repository.FullName, p.Issue.Index)), + } + + if attachmentText != "" { + bodySections = append(bodySections, MSTeamsContainer{ + Type: "Container", + Style: emphasisStyle, + ShowBorder: new(true), + Items: []any{ + MSTeamsTextBlock{ + Type: "TextBlock", + Text: attachmentText, + Wrap: new(true), + }, + }, + }) + } + + factSet := MSTeamsFactSet{ + Type: "FactSet", + Facts: []MSTeamsFact{}, + Separator: new(true), + } + + if p.Issue.Ref != "" && (p.Action == api.HookIssueOpened || p.Action == api.HookIssueReOpened) { + factSet.Facts = append(factSet.Facts, MSTeamsFact{ + Title: "Ref", + Value: p.Issue.Ref, + }) + } + + if len(p.Issue.Labels) > 0 && + (p.Action == api.HookIssueLabelUpdated || p.Action == api.HookIssueLabelCleared || p.Action == api.HookIssueOpened || p.Action == api.HookIssueReOpened) { + list := make([]string, len(p.Issue.Labels)) + for i, label := range p.Issue.Labels { + list[i] = label.Name + } + if len(list) > 0 { + factSet.Facts = append(factSet.Facts, MSTeamsFact{ + Title: "Labels", + Value: strings.Join(list, ", "), + }) + } + } + + if len(p.Issue.Assignees) > 0 && + (p.Action == api.HookIssueAssigned || p.Action == api.HookIssueUnassigned || p.Action == api.HookIssueOpened || p.Action == api.HookIssueReOpened) { + list := make([]string, len(p.Issue.Assignees)) + for i, user := range p.Issue.Assignees { + list[i] = "@" + user.UserName + } + if len(list) > 0 { + factSet.Facts = append(factSet.Facts, MSTeamsFact{ + Title: "Assignee", + Value: strings.Join(list, ", "), + }) + } + } + + if p.Issue.Milestone != nil && + (p.Action == api.HookIssueMilestoned || p.Action == api.HookIssueOpened || p.Action == api.HookIssueReOpened) { + factSet.Facts = append(factSet.Facts, MSTeamsFact{ + Title: "Milestone", + Value: p.Issue.Milestone.Title, + }) + } + + if len(factSet.Facts) > 0 { + bodySections = append(bodySections, MSTeamsContainer{ + Type: "Container", + Items: []any{ + factSet, + }, + }) + } return createMSTeamsPayload( p.Repository, p.Sender, - title, - attachmentText, + actionTitle, + bodySections, p.Issue.HTMLURL, - color, - &MSTeamsFact{"Issue #:", fmt.Sprintf("%d", p.Issue.ID)}, + defaultStyle, ), nil } // IssueComment implements PayloadConvertor IssueComment method func (m msteamsConvertor) IssueComment(p *api.IssueCommentPayload) (MSTeamsPayload, error) { - title, _, color := getIssueCommentPayloadInfo(p, noneLinkFormatter, noneNameFormatter, false) + actionTitle, _, _ := msTeamsPayloadFormatter.getIssueCommentPayloadInfo(p) + + var style string + switch p.Action { + case api.HookIssueCommentCreated: + style = goodStyle + case api.HookIssueCommentDeleted: + style = attentionStyle + default: + style = emphasisStyle + } + + bodySections := []MSTeamsContainer{ + { + Type: "Container", + Style: style, + ShowBorder: new(true), + Items: []any{ + MSTeamsTextBlock{ + Type: "TextBlock", + Text: "Comment", + Size: "Small", + Weight: "Bolder", + }, + MSTeamsTextBlock{ + Type: "TextBlock", + Text: p.Comment.Body, + Wrap: new(true), + }, + }, + }, + } return createMSTeamsPayload( p.Repository, p.Sender, - title, - p.Comment.Body, + actionTitle, + bodySections, p.Comment.HTMLURL, - color, - &MSTeamsFact{"Issue #:", fmt.Sprintf("%d", p.Issue.ID)}, + defaultStyle, ), nil } // PullRequest implements PayloadConvertor PullRequest method func (m msteamsConvertor) PullRequest(p *api.PullRequestPayload) (MSTeamsPayload, error) { - title, _, attachmentText, color := getPullRequestPayloadInfo(p, noneLinkFormatter, noneNameFormatter, false) + actionTitle, _, attachmentText, _ := msTeamsPayloadFormatter.getPullRequestPayloadInfo(p) + + badgeStyle := attentionStyle + badgeState := "Closed" + badgeIcon := "BranchRequest" + if p.Action == api.HookIssueReOpened { + badgeStyle = warningStyle + badgeState = "Open" + } else if p.PullRequest.State == api.StateOpen { + badgeStyle = goodStyle + badgeState = "Open" + } else if p.PullRequest.HasMerged { + badgeStyle = accentStyle + badgeState = "Merged" + badgeIcon = "Branch" + } + + bodySections := []MSTeamsContainer{ + makeBadgeRow( + badgeState, + badgeIcon, + badgeStyle, + pullRequestBranchInfo(p), + fmt.Sprintf("%s#%d", p.Repository.FullName, p.PullRequest.Index), + ), + } + + if attachmentText != "" { + bodySections = append(bodySections, MSTeamsContainer{ + Type: "Container", + Style: emphasisStyle, + ShowBorder: new(true), + Items: []any{ + MSTeamsTextBlock{ + Type: "TextBlock", + Text: attachmentText, + Wrap: new(true), + }, + }, + }) + } + + factSet := MSTeamsFactSet{ + Type: "FactSet", + Facts: []MSTeamsFact{}, + Separator: new(true), + } + + if len(p.PullRequest.Labels) > 0 && + (p.Action == api.HookIssueLabelUpdated || p.Action == api.HookIssueLabelCleared || p.Action == api.HookIssueOpened || p.Action == api.HookIssueReOpened) { + list := make([]string, len(p.PullRequest.Labels)) + for i, label := range p.PullRequest.Labels { + list[i] = label.Name + } + if len(list) > 0 { + factSet.Facts = append(factSet.Facts, MSTeamsFact{ + Title: "Labels", + Value: strings.Join(list, ", "), + }) + } + } + + if len(p.PullRequest.Assignees) > 0 && + (p.Action == api.HookIssueAssigned || p.Action == api.HookIssueUnassigned || p.Action == api.HookIssueOpened || p.Action == api.HookIssueReOpened) { + list := make([]string, len(p.PullRequest.Assignees)) + for i, user := range p.PullRequest.Assignees { + list[i] = "@" + user.UserName + } + if len(list) > 0 { + factSet.Facts = append(factSet.Facts, MSTeamsFact{ + Title: "Assignee", + Value: strings.Join(list, ", "), + }) + } + } + + if p.PullRequest.Milestone != nil && + (p.Action == api.HookIssueMilestoned || p.Action == api.HookIssueOpened || p.Action == api.HookIssueReOpened) { + factSet.Facts = append(factSet.Facts, MSTeamsFact{ + Title: "Milestone", + Value: p.PullRequest.Milestone.Title, + }) + } + + if (p.PullRequest.RequestedReviewers != nil || p.PullRequest.RequestedReviewersTeams != nil) && + (p.Action == api.HookIssueReviewRequested || p.Action == api.HookIssueReviewRequestRemoved || p.Action == api.HookIssueOpened || p.Action == api.HookIssueReOpened) { + list := make([]string, 0, + len(p.PullRequest.RequestedReviewers)+ + len(p.PullRequest.RequestedReviewersTeams), + ) + for _, u := range p.PullRequest.RequestedReviewers { + list = append(list, u.UserName) + } + for _, t := range p.PullRequest.RequestedReviewersTeams { + list = append(list, t.Name) + } + if len(list) > 0 { + factSet.Facts = append(factSet.Facts, MSTeamsFact{ + Title: "Reviewers", + Value: strings.Join(list, ", "), + }) + } + } + + bodySections = append(bodySections, MSTeamsContainer{ + Type: "Container", + Items: []any{factSet}, + }) return createMSTeamsPayload( p.Repository, p.Sender, - title, - attachmentText, + actionTitle, + bodySections, p.PullRequest.HTMLURL, - color, - &MSTeamsFact{"Pull request #:", fmt.Sprintf("%d", p.PullRequest.ID)}, + defaultStyle, ), nil } // Review implements PayloadConvertor Review method func (m msteamsConvertor) Review(p *api.PullRequestPayload, event webhook_module.HookEventType) (MSTeamsPayload, error) { - var text, title string - var color int + badgeStyle := attentionStyle + badgeState := "Closed" + badgeIcon := "BranchRequest" + if p.Action == api.HookIssueReOpened { + badgeStyle = warningStyle + badgeState = "Re-opened" + } else if p.PullRequest.State == api.StateOpen { + badgeStyle = goodStyle + badgeState = "Open" + } else if p.PullRequest.HasMerged { + badgeStyle = accentStyle + badgeState = "Merged" + badgeIcon = "Branch" + } + + bodySections := []MSTeamsContainer{ + makeBadgeRow( + badgeState, + badgeIcon, + badgeStyle, + pullRequestBranchInfo(p), + fmt.Sprintf("%s#%d", p.Repository.FullName, p.PullRequest.Index), + ), + } + + var actionTitle, bodyStyle string if p.Action == api.HookIssueReviewed { action, err := parseHookPullRequestEventType(event) if err != nil { return MSTeamsPayload{}, err } - title = fmt.Sprintf("[%s] Pull request review %s: #%d %s", p.Repository.FullName, action, p.Index, p.PullRequest.Title) - text = p.Review.Content + actionTitle = fmt.Sprintf("Pull request review %s: #%d %s", action, p.Index, p.PullRequest.Title) switch event { case webhook_module.HookEventPullRequestReviewApproved: - color = greenColor + bodyStyle = goodStyle case webhook_module.HookEventPullRequestReviewRejected: - color = redColor - case webhook_module.HookEventPullRequestReviewComment: - color = greyColor - default: - color = yellowColor + bodyStyle = attentionStyle } + + bodySections = append(bodySections, MSTeamsContainer{ + Type: "Container", + Style: bodyStyle, + ShowBorder: new(true), + Items: []any{ + MSTeamsTextBlock{ + Type: "TextBlock", + Text: p.Review.Content, + Wrap: new(true), + }, + }, + }) } return createMSTeamsPayload( p.Repository, p.Sender, - title, - text, + actionTitle, + bodySections, p.PullRequest.HTMLURL, - color, - &MSTeamsFact{"Pull request #:", fmt.Sprintf("%d", p.PullRequest.ID)}, + defaultStyle, ), nil } // Repository implements PayloadConvertor Repository method func (m msteamsConvertor) Repository(p *api.RepositoryPayload) (MSTeamsPayload, error) { - var title, url string - var color int + var actionTitle, url string + style := emphasisStyle switch p.Action { case api.HookRepoCreated: - title = fmt.Sprintf("[%s] Repository created", p.Repository.FullName) + actionTitle = fmt.Sprintf("Repository created: %s", p.Repository.FullName) url = p.Repository.HTMLURL - color = greenColor + style = goodStyle case api.HookRepoDeleted: - title = fmt.Sprintf("[%s] Repository deleted", p.Repository.FullName) - color = yellowColor + actionTitle = fmt.Sprintf("Repository deleted: %s", p.Repository.FullName) + style = attentionStyle } return createMSTeamsPayload( p.Repository, p.Sender, - title, - "", - url, - color, + actionTitle, nil, + url, + style, ), nil } // Wiki implements PayloadConvertor Wiki method func (m msteamsConvertor) Wiki(p *api.WikiPayload) (MSTeamsPayload, error) { - title, color, _ := getWikiPayloadInfo(p, noneLinkFormatter, noneNameFormatter, false) + actionTitle, _, _ := msTeamsPayloadFormatter.getWikiPayloadInfo(p, false) + + var style string + + switch p.Action { + case api.HookWikiCreated: + style = goodStyle + case api.HookWikiEdited: + style = warningStyle + case api.HookWikiDeleted: + style = attentionStyle + } + + var bodySections []MSTeamsContainer + if p.Action != api.HookWikiDeleted { + bodySections = append(bodySections, MSTeamsContainer{ + Type: "Container", + Style: defaultStyle, + ShowBorder: new(true), + Items: []any{ + MSTeamsFactSet{ + Type: "FactSet", + Facts: []MSTeamsFact{ + { + Title: "Comment", + Value: p.Comment, + }, + }, + }, + }, + }) + } return createMSTeamsPayload( p.Repository, p.Sender, - title, - "", + actionTitle, + bodySections, p.Repository.HTMLURL+"/wiki/"+url.PathEscape(p.Page), - color, - &MSTeamsFact{"Repository:", p.Repository.FullName}, + style, ), nil } // Release implements PayloadConvertor Release method func (m msteamsConvertor) Release(p *api.ReleasePayload) (MSTeamsPayload, error) { - title, color := getReleasePayloadInfo(p, noneLinkFormatter, noneNameFormatter, false) + actionTitle, color := msTeamsPayloadFormatter.getReleasePayloadInfo(p) + var style string + + switch color { + case greenColor: + style = goodStyle + case yellowColor: + style = warningStyle + case redColor: + style = attentionStyle + } return createMSTeamsPayload( p.Repository, p.Sender, - title, - "", + actionTitle, + nil, p.Release.HTMLURL, - color, - &MSTeamsFact{"Tag:", p.Release.TagName}, + style, ), nil } func (m msteamsConvertor) Package(p *api.PackagePayload) (MSTeamsPayload, error) { - title, color := getPackagePayloadInfo(p, noneLinkFormatter, noneNameFormatter, false) + actionTitle, color := msTeamsPayloadFormatter.getPackagePayloadInfo(p) + var style string + + switch color { + case greenColor: + style = goodStyle + case yellowColor: + style = warningStyle + case redColor: + style = attentionStyle + } return createMSTeamsPayload( p.Repository, p.Sender, - title, - "", + actionTitle, + nil, p.Package.HTMLURL, - color, - &MSTeamsFact{"Package:", p.Package.Name}, + style, ), nil } func (m msteamsConvertor) Action(p *api.ActionPayload) (MSTeamsPayload, error) { - title, color := getActionPayloadInfo(p, noneLinkFormatter) + var actionTitle string + + var badgeStyle, badgeState string + + switch p.Action { + case api.HookActionFailure: + actionTitle = fmt.Sprintf("Action run #%d failed: %s", p.Run.ID, p.Run.Title) + badgeStyle = attentionStyle + badgeState = "Failed" + case api.HookActionRecover: + actionTitle = fmt.Sprintf("Action run #%d recovered: %s", p.Run.ID, p.Run.Title) + badgeStyle = goodStyle + badgeState = "Success" + case api.HookActionSuccess: + actionTitle = fmt.Sprintf("Action run #%d succeeded: %s", p.Run.ID, p.Run.Title) + badgeStyle = goodStyle + badgeState = "Success" + } + + bodySections := []MSTeamsContainer{ + makeBadgeRow( + badgeState, + "PlayCircle", + badgeStyle, + fmt.Sprintf("On %s", p.Run.PrettyRef), + fmt.Sprintf("%s Run #%d", p.Run.Repo.FullName, p.Run.ID), + ), + } // TODO: is TriggerUser correct here? // if you'd like to test these proprietary services, see the discussion on: https://codeberg.org/forgejo/forgejo/pulls/7508 return createMSTeamsPayload( p.Run.Repo, p.Run.TriggerUser, - title, - "", + actionTitle, + bodySections, p.Run.HTMLURL, - color, - // TODO: does this make any sense? - &MSTeamsFact{"Action:", p.Run.Title}, + defaultStyle, ), nil } -func createMSTeamsPayload(r *api.Repository, s *api.User, title, text, actionTarget string, color int, fact *MSTeamsFact) MSTeamsPayload { - facts := make([]MSTeamsFact, 0, 2) +func createMSTeamsPayload(r *api.Repository, s *api.User, actionTitle string, bodySections []MSTeamsContainer, actionTarget, style string) MSTeamsPayload { + // Update header adding the repository name and link + var updatedRepo string if r != nil { - facts = append(facts, MSTeamsFact{ - Name: "Repository:", - Value: r.FullName, - }) + updatedRepo = fmt.Sprintf(" | [%s](%s)", r.FullName, r.HTMLURL) } - if fact != nil { - facts = append(facts, *fact) + if style == "" { + style = defaultStyle + } + + repoHeaderSection := MSTeamsContainer{ + Type: "Container", + Items: []any{ + MSTeamsTextBlock{ + Type: "TextBlock", + Text: "💬 Update" + updatedRepo, + Weight: "Bolder", + Size: "Small", + IsSubtle: new(true), + }, + }, + } + + if s != nil { + // get display name + username := "@" + s.UserName + if s.FullName != "" { + username = s.FullName + " (@" + s.UserName + ")" + } + + actionTitle = fmt.Sprintf("%s by %s", actionTitle, markdownLinkFormatter(s.HTMLURL, username)) + } + + // Sender info section + actionTitleSection := MSTeamsContainer{ + Type: "Container", + Style: style, + Items: []any{ + MSTeamsTextBlock{ + Type: "TextBlock", + Style: "heading", + Text: actionTitle, + }, + }, + } + + // Combine sections in order + body := []MSTeamsContainer{repoHeaderSection, actionTitleSection} + body = append(body, bodySections...) + + // Create action button for navigation + actionButton := MSTeamsAction{ + Type: "Action.OpenUrl", + Title: "View in Forgejo", + URL: actionTarget, } return MSTeamsPayload{ - Type: "MessageCard", - Context: "https://schema.org/extensions", - ThemeColor: fmt.Sprintf("%x", color), - Title: title, - Summary: title, - Sections: []MSTeamsSection{ - { - ActivityTitle: s.FullName, - ActivitySubtitle: s.UserName, - ActivityImage: s.AvatarURL, - Text: text, - Facts: facts, - }, - }, - PotentialAction: []MSTeamsAction{ - { - Type: "OpenUri", - Name: "View in Forgejo", - Targets: []MSTeamsActionTarget{ - { - Os: "default", - URI: actionTarget, - }, - }, - }, + Type: "AdaptiveCard", + Schema: "http://adaptivecards.io/schemas/adaptive-card.json", + Version: "1.5", + MsTeams: MSTeamsOptions{ + Width: "Full", }, + Body: body, + Actions: []MSTeamsAction{actionButton}, + Style: defaultStyle, } } diff --git a/services/webhook/msteams_test.go b/services/webhook/msteams_test.go index da6439f198..c35ac2dd77 100644 --- a/services/webhook/msteams_test.go +++ b/services/webhook/msteams_test.go @@ -4,6 +4,9 @@ package webhook import ( + "bytes" + "context" + "strings" "testing" webhook_model "forgejo.org/models/webhook" @@ -15,32 +18,74 @@ import ( "github.com/stretchr/testify/require" ) +// findTextInContainer recursively searches for text within an MSTeamsContainer +func findTextInContainer(c MSTeamsContainer, substr string) bool { + for _, it := range c.Items { + switch v := it.(type) { + case MSTeamsTextBlock: + if strings.Contains(v.Text, substr) { + return true + } + case MSTeamsColumnSet: + for _, col := range v.Columns { + for _, it2 := range col.Items { + if tb, ok := it2.(MSTeamsTextBlock); ok && strings.Contains(tb.Text, substr) { + return true + } + } + } + case MSTeamsContainer: + if findTextInContainer(v, substr) { + return true + } + case MSTeamsFactSet: + for _, fact := range v.Facts { + if strings.Contains(fact.Value, substr) || strings.Contains(fact.Title, substr) { + return true + } + } + } + } + return false +} + func TestMSTeamsPayload(t *testing.T) { mc := msteamsConvertor{} + + // helper to find text within the adaptive card body + findTextInBody := func(pl MSTeamsPayload, substr string) bool { + for _, container := range pl.Body { + if findTextInContainer(container, substr) { + return true + } + } + return false + } + t.Run("Create", func(t *testing.T) { p := createTestPayload() pl, err := mc.Create(p) require.NoError(t, err) + require.NotNil(t, pl) - assert.Equal(t, "[test/repo] branch test created", pl.Title) - assert.Equal(t, "[test/repo] branch test created", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Empty(t, pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repo.FullName, fact.Value) - } else if fact.Name == "branch:" { - assert.Equal(t, "test", fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo/src/test", pl.PotentialAction[0].Targets[0].URI) + // Check payload structure + require.Equal(t, "AdaptiveCard", pl.Type) + require.Equal(t, "1.5", pl.Version) + + // Check body structure: header + title + badge sections + require.GreaterOrEqual(t, len(pl.Body), 2) + + // Header should contain repo info + assert.True(t, findTextInBody(pl, "test/repo")) + + // Title should contain action by user + assert.True(t, findTextInBody(pl, "Branch created: test")) + + // action button should point to branch + require.Len(t, pl.Actions, 1) + assert.Equal(t, "View in Forgejo", pl.Actions[0].Title) + assert.Equal(t, "http://localhost:3000/test/repo/src/test", pl.Actions[0].URL) }) t.Run("Delete", func(t *testing.T) { @@ -48,25 +93,20 @@ func TestMSTeamsPayload(t *testing.T) { pl, err := mc.Delete(p) require.NoError(t, err) + require.NotNil(t, pl) - assert.Equal(t, "[test/repo] branch test deleted", pl.Title) - assert.Equal(t, "[test/repo] branch test deleted", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Empty(t, pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repo.FullName, fact.Value) - } else if fact.Name == "branch:" { - assert.Equal(t, "test", fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo/src/test", pl.PotentialAction[0].Targets[0].URI) + // Check basic structure + require.Equal(t, "AdaptiveCard", pl.Type) + require.GreaterOrEqual(t, len(pl.Body), 2) + + // Verify content + assert.True(t, findTextInBody(pl, "test/repo")) + assert.True(t, findTextInBody(pl, "Branch deleted: test")) + + // action button should point to branch + require.Len(t, pl.Actions, 1) + assert.Equal(t, "View in Forgejo", pl.Actions[0].Title) + assert.Equal(t, "http://localhost:3000/test/repo", pl.Actions[0].URL) }) t.Run("Fork", func(t *testing.T) { @@ -74,25 +114,19 @@ func TestMSTeamsPayload(t *testing.T) { pl, err := mc.Fork(p) require.NoError(t, err) + require.NotNil(t, pl) - assert.Equal(t, "test/repo2 is forked to test/repo", pl.Title) - assert.Equal(t, "test/repo2 is forked to test/repo", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Empty(t, pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repo.FullName, fact.Value) - } else if fact.Name == "Forkee:" { - assert.Equal(t, p.Forkee.FullName, fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo", pl.PotentialAction[0].Targets[0].URI) + // Check basic structure + require.Equal(t, "AdaptiveCard", pl.Type) + require.GreaterOrEqual(t, len(pl.Body), 2) + + // Verify content + assert.True(t, findTextInBody(pl, "[test/repo2](http://localhost:3000/test/repo2) is forked to test/repo")) + + // action button should point to repo + require.Len(t, pl.Actions, 1) + assert.Equal(t, "View in Forgejo", pl.Actions[0].Title) + assert.Equal(t, "http://localhost:3000/test/repo", pl.Actions[0].URL) }) t.Run("Push", func(t *testing.T) { @@ -100,25 +134,23 @@ func TestMSTeamsPayload(t *testing.T) { pl, err := mc.Push(p) require.NoError(t, err) + require.NotNil(t, pl) - assert.Equal(t, "[test/repo:test] 2 new commits", pl.Title) - assert.Equal(t, "[test/repo:test] 2 new commits", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Equal(t, "[2020558](http://localhost:3000/test/repo/commit/2020558fe2e34debb818a514715839cabd25e778) commit message - user1\n\n[2020558](http://localhost:3000/test/repo/commit/2020558fe2e34debb818a514715839cabd25e778) commit message - user1", pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repo.FullName, fact.Value) - } else if fact.Name == "Commit count:" { - assert.Equal(t, "2", fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo/src/test", pl.PotentialAction[0].Targets[0].URI) + // Check basic structure + require.Equal(t, "AdaptiveCard", pl.Type) + require.GreaterOrEqual(t, len(pl.Body), 2) + + // Verify repo and basic content + assert.True(t, findTextInBody(pl, "[test] 2 new commits")) + + // commit details should be present in body + assert.True(t, findTextInBody(pl, "2020558")) + assert.True(t, findTextInBody(pl, "commit message")) + + // action button should point to compare + require.Len(t, pl.Actions, 1) + assert.Equal(t, "View in Forgejo", pl.Actions[0].Title) + assert.Equal(t, "http://localhost:3000/test/repo/src/test", pl.Actions[0].URL) }) t.Run("Issue", func(t *testing.T) { @@ -127,48 +159,28 @@ func TestMSTeamsPayload(t *testing.T) { p.Action = api.HookIssueOpened pl, err := mc.Issue(p) require.NoError(t, err) + require.NotNil(t, pl) - assert.Equal(t, "[test/repo] Issue opened: #2 crash", pl.Title) - assert.Equal(t, "[test/repo] Issue opened: #2 crash", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Equal(t, "issue body", pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repository.FullName, fact.Value) - } else if fact.Name == "Issue #:" { - assert.Equal(t, "2", fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo/issues/2", pl.PotentialAction[0].Targets[0].URI) + // Check basic structure + require.Equal(t, "AdaptiveCard", pl.Type) + require.GreaterOrEqual(t, len(pl.Body), 2) + + // Verify content + assert.True(t, findTextInBody(pl, "test/repo")) + assert.True(t, findTextInBody(pl, "Issue opened: #2 crash")) + assert.True(t, findTextInBody(pl, "issue body")) + + require.Len(t, pl.Actions, 1) + assert.Equal(t, "View in Forgejo", pl.Actions[0].Title) + assert.Equal(t, "http://localhost:3000/test/repo/issues/2", pl.Actions[0].URL) p.Action = api.HookIssueClosed pl, err = mc.Issue(p) require.NoError(t, err) - - assert.Equal(t, "[test/repo] Issue closed: #2 crash", pl.Title) - assert.Equal(t, "[test/repo] Issue closed: #2 crash", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Empty(t, pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repository.FullName, fact.Value) - } else if fact.Name == "Issue #:" { - assert.Equal(t, "2", fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo/issues/2", pl.PotentialAction[0].Targets[0].URI) + require.NotNil(t, pl) + assert.True(t, findTextInBody(pl, "Issue closed: #2 crash")) + require.Len(t, pl.Actions, 1) + assert.Equal(t, "http://localhost:3000/test/repo/issues/2", pl.Actions[0].URL) }) t.Run("IssueComment", func(t *testing.T) { @@ -176,51 +188,53 @@ func TestMSTeamsPayload(t *testing.T) { pl, err := mc.IssueComment(p) require.NoError(t, err) + require.NotNil(t, pl) - assert.Equal(t, "[test/repo] New comment on issue #2 crash", pl.Title) - assert.Equal(t, "[test/repo] New comment on issue #2 crash", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Equal(t, "more info needed", pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repository.FullName, fact.Value) - } else if fact.Name == "Issue #:" { - assert.Equal(t, "2", fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo/issues/2#issuecomment-4", pl.PotentialAction[0].Targets[0].URI) + // Check basic structure + require.Equal(t, "AdaptiveCard", pl.Type) + require.GreaterOrEqual(t, len(pl.Body), 2) + + // Verify content + assert.True(t, findTextInBody(pl, "test/repo")) + assert.True(t, findTextInBody(pl, "New comment on issue #2 crash")) + assert.True(t, findTextInBody(pl, "more info needed")) + + require.Len(t, pl.Actions, 1) + assert.Equal(t, "View in Forgejo", pl.Actions[0].Title) + assert.Equal(t, "http://localhost:3000/test/repo/issues/2#issuecomment-4", pl.Actions[0].URL) }) t.Run("PullRequest", func(t *testing.T) { p := pullRequestTestPayload() + p.PullRequest.Head = &api.PRBranchInfo{ + Name: "feature/test", + Ref: "feature/test", + Sha: "b1eb92dc659513b7b4eb57d7ee7f9c6f92e714b5", + RepoID: 1, + Repository: &api.Repository{ + HTMLURL: "http://localhost:3000/test/repo", + Name: "repo", + FullName: "test/repo", + }, + } pl, err := mc.PullRequest(p) require.NoError(t, err) + require.NotNil(t, pl) - assert.Equal(t, "[test/repo] Pull request opened: #12 Fix bug", pl.Title) - assert.Equal(t, "[test/repo] Pull request opened: #12 Fix bug", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Equal(t, "fixes bug #2", pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repository.FullName, fact.Value) - } else if fact.Name == "Pull request #:" { - assert.Equal(t, "12", fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo/pulls/12", pl.PotentialAction[0].Targets[0].URI) + // Check basic structure + require.Equal(t, "AdaptiveCard", pl.Type) + require.GreaterOrEqual(t, len(pl.Body), 2) + + // Verify content + assert.True(t, findTextInBody(pl, "test/repo")) + assert.True(t, findTextInBody(pl, "Pull request opened: #12 Fix bug")) + assert.True(t, findTextInBody(pl, "fixes bug #2")) + assert.True(t, findTextInBody(pl, "feature/test → refs/pull/2/head")) + + require.Len(t, pl.Actions, 1) + assert.Equal(t, "View in Forgejo", pl.Actions[0].Title) + assert.Equal(t, "http://localhost:3000/test/repo/pulls/12", pl.Actions[0].URL) }) t.Run("PullRequestComment", func(t *testing.T) { @@ -228,25 +242,20 @@ func TestMSTeamsPayload(t *testing.T) { pl, err := mc.IssueComment(p) require.NoError(t, err) + require.NotNil(t, pl) - assert.Equal(t, "[test/repo] New comment on pull request #12 Fix bug", pl.Title) - assert.Equal(t, "[test/repo] New comment on pull request #12 Fix bug", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Equal(t, "changes requested", pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repository.FullName, fact.Value) - } else if fact.Name == "Issue #:" { - assert.Equal(t, "12", fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo/pulls/12#issuecomment-4", pl.PotentialAction[0].Targets[0].URI) + // Check basic structure + require.Equal(t, "AdaptiveCard", pl.Type) + require.GreaterOrEqual(t, len(pl.Body), 2) + + // Verify content + assert.True(t, findTextInBody(pl, "test/repo")) + assert.True(t, findTextInBody(pl, "New comment on pull request #12 Fix bug")) + assert.True(t, findTextInBody(pl, "changes requested")) + + require.Len(t, pl.Actions, 1) + assert.Equal(t, "View in Forgejo", pl.Actions[0].Title) + assert.Equal(t, "http://localhost:3000/test/repo/pulls/12#issuecomment-4", pl.Actions[0].URL) }) t.Run("Review", func(t *testing.T) { @@ -255,25 +264,19 @@ func TestMSTeamsPayload(t *testing.T) { pl, err := mc.Review(p, webhook_module.HookEventPullRequestReviewApproved) require.NoError(t, err) + require.NotNil(t, pl) - assert.Equal(t, "[test/repo] Pull request review approved: #12 Fix bug", pl.Title) - assert.Equal(t, "[test/repo] Pull request review approved: #12 Fix bug", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Equal(t, "good job", pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repository.FullName, fact.Value) - } else if fact.Name == "Pull request #:" { - assert.Equal(t, "12", fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo/pulls/12", pl.PotentialAction[0].Targets[0].URI) + // Check basic structure + require.Equal(t, "AdaptiveCard", pl.Type) + require.GreaterOrEqual(t, len(pl.Body), 2) + + // review content should be present + assert.True(t, findTextInBody(pl, "Pull request review approved: #12 Fix bug")) + assert.True(t, findTextInBody(pl, "good job")) + + require.Len(t, pl.Actions, 1) + assert.Equal(t, "View in Forgejo", pl.Actions[0].Title) + assert.Equal(t, "http://localhost:3000/test/repo/pulls/12", pl.Actions[0].URL) }) t.Run("Repository", func(t *testing.T) { @@ -281,23 +284,18 @@ func TestMSTeamsPayload(t *testing.T) { pl, err := mc.Repository(p) require.NoError(t, err) + require.NotNil(t, pl) - assert.Equal(t, "[test/repo] Repository created", pl.Title) - assert.Equal(t, "[test/repo] Repository created", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Empty(t, pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 1) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repository.FullName, fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo", pl.PotentialAction[0].Targets[0].URI) + // Check basic structure + require.Equal(t, "AdaptiveCard", pl.Type) + require.GreaterOrEqual(t, len(pl.Body), 2) + + // Verify content + assert.True(t, findTextInBody(pl, "Repository created: test/repo")) + + require.Len(t, pl.Actions, 1) + assert.Equal(t, "View in Forgejo", pl.Actions[0].Title) + assert.Equal(t, "http://localhost:3000/test/repo", pl.Actions[0].URL) }) t.Run("Package", func(t *testing.T) { @@ -305,23 +303,20 @@ func TestMSTeamsPayload(t *testing.T) { pl, err := mc.Package(p) require.NoError(t, err) + require.NotNil(t, pl) - assert.Equal(t, "Package created: GiteaContainer:latest", pl.Title) - assert.Equal(t, "Package created: GiteaContainer:latest", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Empty(t, pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 1) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Package:" { - assert.Equal(t, p.Package.Name, fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/user1/-/packages/container/GiteaContainer/latest", pl.PotentialAction[0].Targets[0].URI) + // Check basic structure + require.Equal(t, "AdaptiveCard", pl.Type) + require.GreaterOrEqual(t, len(pl.Body), 2) + + // no repo is associated + assert.False(t, findTextInBody(pl, "test/repo")) + // Verify content + assert.True(t, findTextInBody(pl, "Package created: GiteaContainer:latest")) + + require.Len(t, pl.Actions, 1) + assert.Equal(t, "View in Forgejo", pl.Actions[0].Title) + assert.Equal(t, "http://localhost:3000/user1/-/packages/container/GiteaContainer/latest", pl.Actions[0].URL) }) t.Run("Wiki", func(t *testing.T) { @@ -330,65 +325,35 @@ func TestMSTeamsPayload(t *testing.T) { p.Action = api.HookWikiCreated pl, err := mc.Wiki(p) require.NoError(t, err) + require.NotNil(t, pl) - assert.Equal(t, "[test/repo] New wiki page 'index' (Wiki change comment)", pl.Title) - assert.Equal(t, "[test/repo] New wiki page 'index' (Wiki change comment)", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Empty(t, pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repository.FullName, fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo/wiki/index", pl.PotentialAction[0].Targets[0].URI) + // Check basic structure + require.Equal(t, "AdaptiveCard", pl.Type) + require.GreaterOrEqual(t, len(pl.Body), 2) + + // Verify content for create + assert.True(t, findTextInBody(pl, "New wiki page \"index\"")) + assert.True(t, findTextInBody(pl, "Wiki change comment")) + require.Len(t, pl.Actions, 1) + assert.Equal(t, "View in Forgejo", pl.Actions[0].Title) + assert.Equal(t, "http://localhost:3000/test/repo/wiki/index", pl.Actions[0].URL) p.Action = api.HookWikiEdited pl, err = mc.Wiki(p) require.NoError(t, err) - - assert.Equal(t, "[test/repo] Wiki page 'index' edited (Wiki change comment)", pl.Title) - assert.Equal(t, "[test/repo] Wiki page 'index' edited (Wiki change comment)", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Empty(t, pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repository.FullName, fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo/wiki/index", pl.PotentialAction[0].Targets[0].URI) + require.NotNil(t, pl) + assert.True(t, findTextInBody(pl, "Wiki page \"index\" edited")) + assert.True(t, findTextInBody(pl, "Wiki change comment")) + require.Len(t, pl.Actions, 1) + assert.Equal(t, "http://localhost:3000/test/repo/wiki/index", pl.Actions[0].URL) p.Action = api.HookWikiDeleted pl, err = mc.Wiki(p) require.NoError(t, err) - - assert.Equal(t, "[test/repo] Wiki page 'index' deleted", pl.Title) - assert.Equal(t, "[test/repo] Wiki page 'index' deleted", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Empty(t, pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repository.FullName, fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo/wiki/index", pl.PotentialAction[0].Targets[0].URI) + require.NotNil(t, pl) + assert.True(t, findTextInBody(pl, "Wiki page \"index\" deleted")) + require.Len(t, pl.Actions, 1) + assert.Equal(t, "http://localhost:3000/test/repo/wiki/index", pl.Actions[0].URL) }) t.Run("Release", func(t *testing.T) { @@ -396,25 +361,18 @@ func TestMSTeamsPayload(t *testing.T) { pl, err := mc.Release(p) require.NoError(t, err) + require.NotNil(t, pl) - assert.Equal(t, "[test/repo] Release created: v1.0", pl.Title) - assert.Equal(t, "[test/repo] Release created: v1.0", pl.Summary) - assert.Len(t, pl.Sections, 1) - assert.Equal(t, "user1", pl.Sections[0].ActivitySubtitle) - assert.Empty(t, pl.Sections[0].Text) - assert.Len(t, pl.Sections[0].Facts, 2) - for _, fact := range pl.Sections[0].Facts { - if fact.Name == "Repository:" { - assert.Equal(t, p.Repository.FullName, fact.Value) - } else if fact.Name == "Tag:" { - assert.Equal(t, "v1.0", fact.Value) - } else { - t.Fail() - } - } - assert.Len(t, pl.PotentialAction, 1) - assert.Len(t, pl.PotentialAction[0].Targets, 1) - assert.Equal(t, "http://localhost:3000/test/repo/releases/tag/v1.0", pl.PotentialAction[0].Targets[0].URI) + // Check basic structure + require.Equal(t, "AdaptiveCard", pl.Type) + require.GreaterOrEqual(t, len(pl.Body), 2) + + // Verify content + assert.True(t, findTextInBody(pl, "Release created: v1.0")) + + require.Len(t, pl.Actions, 1) + assert.Equal(t, "View in Forgejo", pl.Actions[0].Title) + assert.Equal(t, "http://localhost:3000/test/repo/releases/tag/v1.0", pl.Actions[0].URL) }) } @@ -422,6 +380,7 @@ func TestMSTeamsJSONPayload(t *testing.T) { p := pushTestPayload() data, err := p.JSONPayload() require.NoError(t, err) + require.NotNil(t, data) hook := &webhook_model.Webhook{ RepoID: 3, @@ -438,7 +397,7 @@ func TestMSTeamsJSONPayload(t *testing.T) { PayloadVersion: 2, } - req, reqBody, err := msteamsHandler{}.NewRequest(t.Context(), hook, task) + req, reqBody, err := msteamsHandler{}.NewRequest(context.Background(), hook, task) require.NotNil(t, req) require.NotNil(t, reqBody) require.NoError(t, err) @@ -448,7 +407,10 @@ func TestMSTeamsJSONPayload(t *testing.T) { assert.Equal(t, "sha256=", req.Header.Get("X-Hub-Signature-256")) assert.Equal(t, "application/json", req.Header.Get("Content-Type")) var body MSTeamsPayload - err = json.NewDecoder(req.Body).Decode(&body) + err = json.NewDecoder(bytes.NewReader(reqBody)).Decode(&body) require.NoError(t, err) - assert.Equal(t, "[test/repo:test] 2 new commits", body.Summary) + + // Verify payload structure + assert.Equal(t, "AdaptiveCard", body.Type) + assert.Equal(t, "1.5", body.Version) } diff --git a/services/webhook/slack.go b/services/webhook/slack.go index fe1bfc8aa4..24c28b58f3 100644 --- a/services/webhook/slack.go +++ b/services/webhook/slack.go @@ -119,6 +119,13 @@ func SlackTextFormatter(s string) string { return s } +var slackPayloadFormatter = webhookPayloadFormatter{ + linkFormatter: SlackLinkFormatter, + nameFormatter: SlackNameFormatter, + withSender: true, + withRepoName: true, +} + // SlackNameFormatter puts the name into an inline code block. // This way names do not trigger unwanted message notifications, as users usually don't want to get notified about their own actions. func SlackNameFormatter(name string) string { @@ -174,7 +181,7 @@ func (s slackConvertor) Fork(p *api.ForkPayload) (SlackPayload, error) { // Issue implements payloadConvertor Issue method func (s slackConvertor) Issue(p *api.IssuePayload) (SlackPayload, error) { - text, issueTitle, attachmentText, color := getIssuesPayloadInfo(p, SlackLinkFormatter, SlackNameFormatter, true) + text, issueTitle, attachmentText, color := slackPayloadFormatter.getIssuesPayloadInfo(p) var attachments []SlackAttachment if attachmentText != "" { @@ -193,7 +200,7 @@ func (s slackConvertor) Issue(p *api.IssuePayload) (SlackPayload, error) { // IssueComment implements payloadConvertor IssueComment method func (s slackConvertor) IssueComment(p *api.IssueCommentPayload) (SlackPayload, error) { - text, issueTitle, color := getIssueCommentPayloadInfo(p, SlackLinkFormatter, SlackNameFormatter, true) + text, issueTitle, color := slackPayloadFormatter.getIssueCommentPayloadInfo(p) return s.createPayload(text, []SlackAttachment{{ Color: fmt.Sprintf("%x", color), @@ -205,20 +212,20 @@ func (s slackConvertor) IssueComment(p *api.IssueCommentPayload) (SlackPayload, // Wiki implements payloadConvertor Wiki method func (s slackConvertor) Wiki(p *api.WikiPayload) (SlackPayload, error) { - text, _, _ := getWikiPayloadInfo(p, SlackLinkFormatter, SlackNameFormatter, true) + text, _, _ := slackPayloadFormatter.getWikiPayloadInfo(p, true) return s.createPayload(text, nil), nil } // Release implements payloadConvertor Release method func (s slackConvertor) Release(p *api.ReleasePayload) (SlackPayload, error) { - text, _ := getReleasePayloadInfo(p, SlackLinkFormatter, SlackNameFormatter, true) + text, _ := slackPayloadFormatter.getReleasePayloadInfo(p) return s.createPayload(text, nil), nil } func (s slackConvertor) Package(p *api.PackagePayload) (SlackPayload, error) { - text, _ := getPackagePayloadInfo(p, SlackLinkFormatter, SlackNameFormatter, true) + text, _ := slackPayloadFormatter.getPackagePayloadInfo(p) return s.createPayload(text, nil), nil } @@ -265,7 +272,7 @@ func (s slackConvertor) Push(p *api.PushPayload) (SlackPayload, error) { // PullRequest implements payloadConvertor PullRequest method func (s slackConvertor) PullRequest(p *api.PullRequestPayload) (SlackPayload, error) { - text, issueTitle, attachmentText, color := getPullRequestPayloadInfo(p, SlackLinkFormatter, SlackNameFormatter, true) + text, issueTitle, attachmentText, color := slackPayloadFormatter.getPullRequestPayloadInfo(p) var attachments []SlackAttachment if attachmentText != "" { @@ -316,7 +323,7 @@ func (s slackConvertor) Repository(p *api.RepositoryPayload) (SlackPayload, erro } func (s slackConvertor) Action(p *api.ActionPayload) (SlackPayload, error) { - text, _ := getActionPayloadInfo(p, SlackLinkFormatter) + text, _ := slackPayloadFormatter.getActionPayloadInfo(p) return s.createPayload(text, nil), nil } diff --git a/services/webhook/slack_test.go b/services/webhook/slack_test.go index 9a60bf01ac..8d3a8a2e04 100644 --- a/services/webhook/slack_test.go +++ b/services/webhook/slack_test.go @@ -132,19 +132,19 @@ func TestSlackPayload(t *testing.T) { pl, err := sc.Wiki(p) require.NoError(t, err) - assert.Equal(t, "[test/repo] New wiki page '' (Wiki change comment) by `user1`", pl.Text) + assert.Equal(t, "[test/repo] New wiki page \"\" (Wiki change comment) by `user1`", pl.Text) p.Action = api.HookWikiEdited pl, err = sc.Wiki(p) require.NoError(t, err) - assert.Equal(t, "[test/repo] Wiki page '' edited (Wiki change comment) by `user1`", pl.Text) + assert.Equal(t, "[test/repo] Wiki page \"\" edited (Wiki change comment) by `user1`", pl.Text) p.Action = api.HookWikiDeleted pl, err = sc.Wiki(p) require.NoError(t, err) - assert.Equal(t, "[test/repo] Wiki page '' deleted by `user1`", pl.Text) + assert.Equal(t, "[test/repo] Wiki page \"\" deleted by `user1`", pl.Text) }) t.Run("Release", func(t *testing.T) { diff --git a/services/webhook/telegram.go b/services/webhook/telegram.go index 47a7514968..dfd3014698 100644 --- a/services/webhook/telegram.go +++ b/services/webhook/telegram.go @@ -75,6 +75,13 @@ func (telegramHandler) Metadata(w *webhook_model.Webhook) any { return s } +var telegramPayloadFormatter = webhookPayloadFormatter{ + linkFormatter: htmlLinkFormatter, + nameFormatter: noneNameFormatter, + withSender: true, + withRepoName: true, +} + // Create implements PayloadConvertor Create method func (t telegramConvertor) Create(p *api.CreatePayload) (TelegramPayload, error) { // created tag/branch @@ -136,21 +143,21 @@ func (t telegramConvertor) Push(p *api.PushPayload) (TelegramPayload, error) { // Issue implements PayloadConvertor Issue method func (t telegramConvertor) Issue(p *api.IssuePayload) (TelegramPayload, error) { - text, _, attachmentText, _ := getIssuesPayloadInfo(p, htmlLinkFormatter, noneNameFormatter, true) + text, _, attachmentText, _ := telegramPayloadFormatter.getIssuesPayloadInfo(p) return createTelegramPayload(text + "\n\n" + attachmentText), nil } // IssueComment implements PayloadConvertor IssueComment method func (t telegramConvertor) IssueComment(p *api.IssueCommentPayload) (TelegramPayload, error) { - text, _, _ := getIssueCommentPayloadInfo(p, htmlLinkFormatter, noneNameFormatter, true) + text, _, _ := telegramPayloadFormatter.getIssueCommentPayloadInfo(p) return createTelegramPayload(text + "\n" + p.Comment.Body), nil } // PullRequest implements PayloadConvertor PullRequest method func (t telegramConvertor) PullRequest(p *api.PullRequestPayload) (TelegramPayload, error) { - text, _, attachmentText, _ := getPullRequestPayloadInfo(p, htmlLinkFormatter, noneNameFormatter, true) + text, _, attachmentText, _ := telegramPayloadFormatter.getPullRequestPayloadInfo(p) return createTelegramPayload(text + "\n" + attachmentText), nil } @@ -187,26 +194,26 @@ func (t telegramConvertor) Repository(p *api.RepositoryPayload) (TelegramPayload // Wiki implements PayloadConvertor Wiki method func (t telegramConvertor) Wiki(p *api.WikiPayload) (TelegramPayload, error) { - text, _, _ := getWikiPayloadInfo(p, htmlLinkFormatter, noneNameFormatter, true) + text, _, _ := telegramPayloadFormatter.getWikiPayloadInfo(p, true) return createTelegramPayload(text), nil } // Release implements PayloadConvertor Release method func (t telegramConvertor) Release(p *api.ReleasePayload) (TelegramPayload, error) { - text, _ := getReleasePayloadInfo(p, htmlLinkFormatter, noneNameFormatter, true) + text, _ := telegramPayloadFormatter.getReleasePayloadInfo(p) return createTelegramPayload(text), nil } func (t telegramConvertor) Package(p *api.PackagePayload) (TelegramPayload, error) { - text, _ := getPackagePayloadInfo(p, htmlLinkFormatter, noneNameFormatter, true) + text, _ := telegramPayloadFormatter.getPackagePayloadInfo(p) return createTelegramPayload(text), nil } func (telegramConvertor) Action(p *api.ActionPayload) (TelegramPayload, error) { - text, _ := getActionPayloadInfo(p, htmlLinkFormatter) + text, _ := telegramPayloadFormatter.getActionPayloadInfo(p) return createTelegramPayload(text), nil } diff --git a/services/webhook/telegram_test.go b/services/webhook/telegram_test.go index 5066e55b8c..7da29c343c 100644 --- a/services/webhook/telegram_test.go +++ b/services/webhook/telegram_test.go @@ -148,19 +148,19 @@ good job`, pl.Message) pl, err := tc.Wiki(p) require.NoError(t, err) - assert.Equal(t, `[test/repo] New wiki page 'index' (Wiki change comment) by user1`, pl.Message) + assert.Equal(t, `[test/repo] New wiki page "index" (Wiki change comment) by user1`, pl.Message) p.Action = api.HookWikiEdited pl, err = tc.Wiki(p) require.NoError(t, err) - assert.Equal(t, `[test/repo] Wiki page 'index' edited (Wiki change comment) by user1`, pl.Message) + assert.Equal(t, `[test/repo] Wiki page "index" edited (Wiki change comment) by user1`, pl.Message) p.Action = api.HookWikiDeleted pl, err = tc.Wiki(p) require.NoError(t, err) - assert.Equal(t, `[test/repo] Wiki page 'index' deleted by user1`, pl.Message) + assert.Equal(t, `[test/repo] Wiki page "index" deleted by user1`, pl.Message) }) t.Run("Release", func(t *testing.T) { diff --git a/services/webhook/wechatwork.go b/services/webhook/wechatwork.go index b22935be81..bb08f692f4 100644 --- a/services/webhook/wechatwork.go +++ b/services/webhook/wechatwork.go @@ -70,6 +70,13 @@ func newWechatworkMarkdownPayload(title string) WechatworkPayload { } } +var wechatworkPayloadFormatter = webhookPayloadFormatter{ + linkFormatter: noneLinkFormatter, + nameFormatter: noneNameFormatter, + withSender: true, + withRepoName: true, +} + // Create implements PayloadConvertor Create method func (wc wechatworkConvertor) Create(p *api.CreatePayload) (WechatworkPayload, error) { // created tag/branch @@ -126,7 +133,7 @@ func (wc wechatworkConvertor) Push(p *api.PushPayload) (WechatworkPayload, error // Issue implements PayloadConvertor Issue method func (wc wechatworkConvertor) Issue(p *api.IssuePayload) (WechatworkPayload, error) { - text, issueTitle, attachmentText, _ := getIssuesPayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, issueTitle, attachmentText, _ := wechatworkPayloadFormatter.getIssuesPayloadInfo(p) var content string content += fmt.Sprintf(" >%s\n >%s \n > %s \n [%s](%s)", text, attachmentText, issueTitle, p.Issue.HTMLURL, p.Issue.HTMLURL) @@ -135,7 +142,7 @@ func (wc wechatworkConvertor) Issue(p *api.IssuePayload) (WechatworkPayload, err // IssueComment implements PayloadConvertor IssueComment method func (wc wechatworkConvertor) IssueComment(p *api.IssueCommentPayload) (WechatworkPayload, error) { - text, issueTitle, _ := getIssueCommentPayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, issueTitle, _ := wechatworkPayloadFormatter.getIssueCommentPayloadInfo(p) var content string content += fmt.Sprintf(" >%s\n >%s \n >%s \n [%s](%s)", text, p.Comment.Body, issueTitle, p.Comment.HTMLURL, p.Comment.HTMLURL) @@ -144,7 +151,7 @@ func (wc wechatworkConvertor) IssueComment(p *api.IssueCommentPayload) (Wechatwo // PullRequest implements PayloadConvertor PullRequest method func (wc wechatworkConvertor) PullRequest(p *api.PullRequestPayload) (WechatworkPayload, error) { - text, issueTitle, attachmentText, _ := getPullRequestPayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, issueTitle, attachmentText, _ := wechatworkPayloadFormatter.getPullRequestPayloadInfo(p) pr := fmt.Sprintf("> %s \r\n > %s \r\n > %s \r\n", text, issueTitle, attachmentText) @@ -183,26 +190,26 @@ func (wc wechatworkConvertor) Repository(p *api.RepositoryPayload) (WechatworkPa // Wiki implements PayloadConvertor Wiki method func (wc wechatworkConvertor) Wiki(p *api.WikiPayload) (WechatworkPayload, error) { - text, _, _ := getWikiPayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, _, _ := wechatworkPayloadFormatter.getWikiPayloadInfo(p, true) return newWechatworkMarkdownPayload(text), nil } // Release implements PayloadConvertor Release method func (wc wechatworkConvertor) Release(p *api.ReleasePayload) (WechatworkPayload, error) { - text, _ := getReleasePayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, _ := wechatworkPayloadFormatter.getReleasePayloadInfo(p) return newWechatworkMarkdownPayload(text), nil } func (wc wechatworkConvertor) Package(p *api.PackagePayload) (WechatworkPayload, error) { - text, _ := getPackagePayloadInfo(p, noneLinkFormatter, noneNameFormatter, true) + text, _ := wechatworkPayloadFormatter.getPackagePayloadInfo(p) return newWechatworkMarkdownPayload(text), nil } func (wc wechatworkConvertor) Action(p *api.ActionPayload) (WechatworkPayload, error) { - text, _ := getActionPayloadInfo(p, noneLinkFormatter) + text, _ := wechatworkPayloadFormatter.getActionPayloadInfo(p) return newWechatworkMarkdownPayload(text), nil } diff --git a/templates/admin/config.tmpl b/templates/admin/config.tmpl index c4688922dd..b00bf6475f 100644 --- a/templates/admin/config.tmpl +++ b/templates/admin/config.tmpl @@ -31,7 +31,7 @@
-
{{ctx.Locale.Tr "admin.config.git_version"}}
+
{{ctx.Locale.Tr "admin.config.git.version"}}
{{.GitVersion}}
@@ -62,33 +62,33 @@

- {{ctx.Locale.Tr "admin.config.ssh_config"}} + {{ctx.Locale.Tr "admin.config.ssh.header"}}

-
{{ctx.Locale.Tr "admin.config.ssh_enabled"}}
+
{{ctx.Locale.Tr "admin.config.ssh.enabled"}}
{{if not .SSH.Disabled}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}
{{if not .SSH.Disabled}} -
{{ctx.Locale.Tr "admin.config.ssh_start_builtin_server"}}
+
{{ctx.Locale.Tr "admin.config.ssh.use_builtin_server"}}
{{if .SSH.StartBuiltinServer}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}
-
{{ctx.Locale.Tr "admin.config.ssh_domain"}}
+
{{ctx.Locale.Tr "admin.config.ssh.domain"}}
{{.SSH.Domain}}
-
{{ctx.Locale.Tr "admin.config.ssh_port"}}
+
{{ctx.Locale.Tr "admin.config.ssh.port"}}
{{.SSH.Port}}
-
{{ctx.Locale.Tr "admin.config.ssh_listen_port"}}
+
{{ctx.Locale.Tr "admin.config.ssh.listen_port"}}
{{.SSH.ListenPort}}
{{if not .SSH.StartBuiltinServer}} -
{{ctx.Locale.Tr "admin.config.ssh_root_path"}}
+
{{ctx.Locale.Tr "admin.config.ssh.root_path"}}
{{.SSH.RootPath}}
-
{{ctx.Locale.Tr "admin.config.ssh_key_test_path"}}
+
{{ctx.Locale.Tr "admin.config.ssh.key_test_path"}}
{{.SSH.KeyTestPath}}
-
{{ctx.Locale.Tr "admin.config.ssh_keygen_path"}}
+
{{ctx.Locale.Tr "admin.config.ssh.keygen_path"}}
{{.SSH.KeygenPath}}
-
{{ctx.Locale.Tr "admin.config.ssh_minimum_key_size_check"}}
+
{{ctx.Locale.Tr "admin.config.ssh.minimum_key_size_check"}}
{{if .SSH.MinimumKeySizeCheck}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}
{{if .SSH.MinimumKeySizeCheck}} -
{{ctx.Locale.Tr "admin.config.ssh_minimum_key_sizes"}}
+
{{ctx.Locale.Tr "admin.config.ssh.minimum_key_sizes"}}
{{.SSH.MinimumKeySizes}}
{{end}} {{end}} @@ -113,28 +113,28 @@

- {{ctx.Locale.Tr "admin.config.db_config"}} + {{ctx.Locale.Tr "admin.config.db.header"}}

-
{{ctx.Locale.Tr "admin.config.db_type"}}
+
{{ctx.Locale.Tr "admin.config.db.type"}}
{{.DbCfg.Type}}
{{if not (eq .DbCfg.Type "sqlite3")}} -
{{ctx.Locale.Tr "admin.config.db_host"}}
+
{{ctx.Locale.Tr "admin.config.db.host"}}
{{if .DbCfg.Host}}{{.DbCfg.Host}}{{else}}-{{end}}
-
{{ctx.Locale.Tr "admin.config.db_name"}}
+
{{ctx.Locale.Tr "admin.config.db.name"}}
{{if .DbCfg.Name}}{{.DbCfg.Name}}{{else}}-{{end}}
-
{{ctx.Locale.Tr "admin.config.db_user"}}
+
{{ctx.Locale.Tr "admin.config.db.user"}}
{{if .DbCfg.User}}{{.DbCfg.User}}{{else}}-{{end}}
{{end}} {{if eq .DbCfg.Type "postgres"}} -
{{ctx.Locale.Tr "admin.config.db_schema"}}
+
{{ctx.Locale.Tr "admin.config.db.schema"}}
{{if .DbCfg.Schema}}{{.DbCfg.Schema}}{{else}}-{{end}}
-
{{ctx.Locale.Tr "admin.config.db_ssl_mode"}}
+
{{ctx.Locale.Tr "admin.config.db.ssl_mode"}}
{{if .DbCfg.SSLMode}}{{.DbCfg.SSLMode}}{{else}}-{{end}}
{{end}} {{if eq .DbCfg.Type "sqlite3"}} -
{{ctx.Locale.Tr "admin.config.db_path"}}
+
{{ctx.Locale.Tr "admin.config.db.path"}}
{{if .DbCfg.Path}}{{.DbCfg.Path}}{{else}}-{{end}}
{{end}}
@@ -209,38 +209,38 @@

- {{ctx.Locale.Tr "admin.config.mailer_config"}} + {{ctx.Locale.Tr "admin.config.mailer.header"}}

-
{{ctx.Locale.Tr "admin.config.mailer_enabled"}}
+
{{ctx.Locale.Tr "admin.config.mailer.enabled"}}
{{if .MailerEnabled}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}
{{if .MailerEnabled}} -
{{ctx.Locale.Tr "admin.config.mailer_name"}}
+
{{ctx.Locale.Tr "admin.config.mailer.name"}}
{{.Mailer.Name}}
{{if eq .Mailer.Protocol "sendmail"}} -
{{ctx.Locale.Tr "admin.config.mailer_use_sendmail"}}
+
{{ctx.Locale.Tr "admin.config.mailer.sendmail.use"}}
{{svg "octicon-check"}}
-
{{ctx.Locale.Tr "admin.config.mailer_sendmail_path"}}
+
{{ctx.Locale.Tr "admin.config.mailer.sendmail.path"}}
{{.Mailer.SendmailPath}}
-
{{ctx.Locale.Tr "admin.config.mailer_sendmail_args"}}
+
{{ctx.Locale.Tr "admin.config.mailer.sendmail.args"}}
{{.Mailer.SendmailArgs}}
-
{{ctx.Locale.Tr "admin.config.mailer_sendmail_timeout"}}
+
{{ctx.Locale.Tr "admin.config.mailer.sendmail.timeout"}}
{{.Mailer.SendmailTimeout}} {{ctx.Locale.Tr "tool.raw_seconds"}}
{{else if eq .Mailer.Protocol "dummy"}} -
{{ctx.Locale.Tr "admin.config.mailer_use_dummy"}}
+
{{ctx.Locale.Tr "admin.config.mailer.use_dummy"}}
{{svg "octicon-check"}}
{{else}}{{/* SMTP family */}} -
{{ctx.Locale.Tr "admin.config.mailer_protocol"}}
+
{{ctx.Locale.Tr "admin.config.mailer.protocol"}}
{{.Mailer.Protocol}}
-
{{ctx.Locale.Tr "admin.config.mailer_enable_helo"}}
+
{{ctx.Locale.Tr "admin.config.mailer.enable_helo"}}
{{if .Mailer.EnableHelo}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}
-
{{ctx.Locale.Tr "admin.config.mailer_smtp_addr"}}
+
{{ctx.Locale.Tr "admin.config.mailer.smtp.addr"}}
{{.Mailer.SMTPAddr}}
-
{{ctx.Locale.Tr "admin.config.mailer_smtp_port"}}
+
{{ctx.Locale.Tr "admin.config.mailer.smtp.port"}}
{{.Mailer.SMTPPort}}
{{end}} -
{{ctx.Locale.Tr "admin.config.mailer_user"}}
+
{{ctx.Locale.Tr "admin.config.mailer.user"}}
{{if .Mailer.User}}{{.Mailer.User}}{{else}}(empty){{end}}
{{ctx.Locale.Tr "admin.config.send_test_mail"}}
@@ -314,32 +314,32 @@

- {{ctx.Locale.Tr "admin.config.git_config"}} + {{ctx.Locale.Tr "admin.config.git.header"}}

-
{{ctx.Locale.Tr "admin.config.git_disable_diff_highlight"}}
+
{{ctx.Locale.Tr "admin.config.git.disable_diff_highlight"}}
{{if .Git.DisableDiffHighlight}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}
-
{{ctx.Locale.Tr "admin.config.git_max_diff_lines"}}
+
{{ctx.Locale.Tr "admin.config.git.diff.max_lines"}}
{{.Git.MaxGitDiffLines}}
-
{{ctx.Locale.Tr "admin.config.git_max_diff_line_characters"}}
+
{{ctx.Locale.Tr "admin.config.git.diff.max_line_characters"}}
{{.Git.MaxGitDiffLineCharacters}}
-
{{ctx.Locale.Tr "admin.config.git_max_diff_files"}}
+
{{ctx.Locale.Tr "admin.config.git.diff.max_files"}}
{{.Git.MaxGitDiffFiles}}
-
{{ctx.Locale.Tr "admin.config.git_gc_args"}}
+
{{ctx.Locale.Tr "admin.config.git.gc_args"}}
{{.Git.GCArgs}}
-
{{ctx.Locale.Tr "admin.config.git_migrate_timeout"}}
+
{{ctx.Locale.Tr "admin.config.git.migrate_timeout"}}
{{.Git.Timeout.Migrate}} {{ctx.Locale.Tr "tool.raw_seconds"}}
-
{{ctx.Locale.Tr "admin.config.git_mirror_timeout"}}
+
{{ctx.Locale.Tr "admin.config.git.mirror_timeout"}}
{{.Git.Timeout.Mirror}} {{ctx.Locale.Tr "tool.raw_seconds"}}
-
{{ctx.Locale.Tr "admin.config.git_clone_timeout"}}
+
{{ctx.Locale.Tr "admin.config.git.clone_timeout"}}
{{.Git.Timeout.Clone}} {{ctx.Locale.Tr "tool.raw_seconds"}}
-
{{ctx.Locale.Tr "admin.config.git_pull_timeout"}}
+
{{ctx.Locale.Tr "admin.config.git.pull_timeout"}}
{{.Git.Timeout.Pull}} {{ctx.Locale.Tr "tool.raw_seconds"}}
-
{{ctx.Locale.Tr "admin.config.git_gc_timeout"}}
+
{{ctx.Locale.Tr "admin.config.git.gc_timeout"}}
{{.Git.Timeout.GC}} {{ctx.Locale.Tr "tool.raw_seconds"}}
diff --git a/templates/repo/settings/units.tmpl b/templates/repo/settings/units.tmpl index a3d958068d..77436e8999 100644 --- a/templates/repo/settings/units.tmpl +++ b/templates/repo/settings/units.tmpl @@ -1,6 +1,12 @@ {{template "repo/settings/layout_head" (dict "ctxData" . "pageClass" "repository settings options")}}
+ {{if and .SignedUser.EnableRepoUnitHints (not (.Repository.AllUnitsEnabled ctx))}} + {{$settingsURL := print AppSubUrl "/user/settings/appearance#hints"}} +
+

{{ctx.Locale.Tr "repo.settings.units.more_units_disable_hint" $settingsURL}}

+
+ {{end}} {{template "repo/settings/units/overview" .}} {{template "repo/settings/units/issues" .}} {{if not .IsMirror}} diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl index be81056880..3b04fd4146 100644 --- a/templates/swagger/v1_json.tmpl +++ b/templates/swagger/v1_json.tmpl @@ -23,6 +23,24 @@ }, "basePath": "{{AppSubUrl | JSEscape}}/api/v1", "paths": { + "/actions/run": { + "get": { + "description": "The automatic actions token must be used as the authentication mechanism (\u003ccode\u003eAuthorization: Bearer $\u0026#x7b;\u0026#x7b; forgejo.token \u0026#x7d;\u0026#x7d;\u003c/code\u003e); other types of tokens cannot be used. The token is associated with the job, which must be still running for the request to this endpoint to succeed.\n", + "produces": [ + "application/json" + ], + "tags": [ + "miscellaneous" + ], + "summary": "Get a workflow run associated with a token", + "operationId": "getActionsRun", + "responses": { + "200": { + "$ref": "#/responses/ActionRun" + } + } + } + }, "/activitypub/actor": { "get": { "produces": [ diff --git a/templates/user/settings/appearance.tmpl b/templates/user/settings/appearance.tmpl index 1656ea3b07..315206d30c 100644 --- a/templates/user/settings/appearance.tmpl +++ b/templates/user/settings/appearance.tmpl @@ -71,7 +71,7 @@
-

+

{{ctx.Locale.Tr "settings.hints"}}

diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/description b/tests/gitea-repositories-meta/user2/repo1.wiki.git/description deleted file mode 100644 index 498b267a8c..0000000000 --- a/tests/gitea-repositories-meta/user2/repo1.wiki.git/description +++ /dev/null @@ -1 +0,0 @@ -Unnamed repository; edit this file 'description' to name the repository. diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/info/refs b/tests/gitea-repositories-meta/user2/repo1.wiki.git/info/refs new file mode 100644 index 0000000000..a06031a5e0 --- /dev/null +++ b/tests/gitea-repositories-meta/user2/repo1.wiki.git/info/refs @@ -0,0 +1 @@ +d49ac742d44063dcf69d4e0afe725813b777dd89 refs/heads/master diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/0c/f15c3f66ec8384480ed9c3cf87c9e97fbb0ec3 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/0c/f15c3f66ec8384480ed9c3cf87c9e97fbb0ec3 deleted file mode 100644 index c0314c5584..0000000000 --- a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/0c/f15c3f66ec8384480ed9c3cf87c9e97fbb0ec3 +++ /dev/null @@ -1,2 +0,0 @@ -xm DMY(J`5ɜ-K*Ki,Hi!?K_sq/]09MHpѤk_d-%풇۞ v_]^/I[t \ No newline at end of file diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/0d/ca5bd9b5d7ef937710e056f575e86c0184ba85 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/0d/ca5bd9b5d7ef937710e056f575e86c0184ba85 deleted file mode 100644 index a46c1925ec..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/0d/ca5bd9b5d7ef937710e056f575e86c0184ba85 and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/2c/54faec6c45d31c1abfaecdab471eac6633738a b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/2c/54faec6c45d31c1abfaecdab471eac6633738a deleted file mode 100644 index 4cf6cdaa6f..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/2c/54faec6c45d31c1abfaecdab471eac6633738a and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/32/5dc4f8e9344e6668f21536a69d5f1d4ed53ca3 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/32/5dc4f8e9344e6668f21536a69d5f1d4ed53ca3 deleted file mode 100644 index d52aa8e1ff..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/32/5dc4f8e9344e6668f21536a69d5f1d4ed53ca3 and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/42/3313fbd38093bb10d0c8387db9105409c6f196 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/42/3313fbd38093bb10d0c8387db9105409c6f196 deleted file mode 100644 index bf4ae859f6..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/42/3313fbd38093bb10d0c8387db9105409c6f196 and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/53/0ab3e043bf2295fd1cec3129bf203a4349597a b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/53/0ab3e043bf2295fd1cec3129bf203a4349597a deleted file mode 100644 index eeae5d2b64..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/53/0ab3e043bf2295fd1cec3129bf203a4349597a and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/71/911bf48766c7181518c1070911019fbb00b1fc b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/71/911bf48766c7181518c1070911019fbb00b1fc deleted file mode 100644 index 84ade81980..0000000000 --- a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/71/911bf48766c7181518c1070911019fbb00b1fc +++ /dev/null @@ -1 +0,0 @@ -xM@ Mr›6&&&9Leśwt<#͡mv-0wbjy̖ڗ~݋[=H ."ǁ= \ No newline at end of file diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/72/fc6251cc648e914c10009d31431fa2e38b9a20 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/72/fc6251cc648e914c10009d31431fa2e38b9a20 deleted file mode 100644 index 052fdf35a5..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/72/fc6251cc648e914c10009d31431fa2e38b9a20 and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/74/d5a0d73db9b9ef7aa9978eb7a099b08f54d45e b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/74/d5a0d73db9b9ef7aa9978eb7a099b08f54d45e deleted file mode 100644 index bcb0e0075c..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/74/d5a0d73db9b9ef7aa9978eb7a099b08f54d45e and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/7c/d7c8fa852973c72c66eb120a6677c54a8697f7 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/7c/d7c8fa852973c72c66eb120a6677c54a8697f7 deleted file mode 100644 index 9c26495605..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/7c/d7c8fa852973c72c66eb120a6677c54a8697f7 and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/89/43a1d5f93c00439d5ffc0f8e36f5d60abae46c b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/89/43a1d5f93c00439d5ffc0f8e36f5d60abae46c deleted file mode 100644 index 062641bee7..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/89/43a1d5f93c00439d5ffc0f8e36f5d60abae46c and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/a6/dc41d9e96df65286a79f5625ec51635e47f752 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/a6/dc41d9e96df65286a79f5625ec51635e47f752 deleted file mode 100644 index 1aecac1f1b..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/a6/dc41d9e96df65286a79f5625ec51635e47f752 and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/bf/29486462016efad8872371078932d8c2cb5253 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/bf/29486462016efad8872371078932d8c2cb5253 deleted file mode 100644 index ab5b5954cb..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/bf/29486462016efad8872371078932d8c2cb5253 and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/c0/b5b381e2df9f66d11e8c95fe7467b8fb7f3e4e b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/c0/b5b381e2df9f66d11e8c95fe7467b8fb7f3e4e deleted file mode 100644 index 0474927fd2..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/c0/b5b381e2df9f66d11e8c95fe7467b8fb7f3e4e and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/c1/0d10b7e655b3dab1f53176db57c8219a5488d6 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/c1/0d10b7e655b3dab1f53176db57c8219a5488d6 deleted file mode 100644 index 8a6345dfa5..0000000000 --- a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/c1/0d10b7e655b3dab1f53176db57c8219a5488d6 +++ /dev/null @@ -1,2 +0,0 @@ -xm0)nt2S`ņe,VY/H#[)E@Nq툎r2)D0jCLaC&4Bv]$EIӑePrIsez˳~_ -[yvWV=헛˘H vZ~s@݉%?TZH \ No newline at end of file diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/c4/b38c3e1395393f75bbbc2ed10c7eeb577d3b64 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/c4/b38c3e1395393f75bbbc2ed10c7eeb577d3b64 deleted file mode 100644 index 6dcfc96676..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/c4/b38c3e1395393f75bbbc2ed10c7eeb577d3b64 and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/d4/9ac742d44063dcf69d4e0afe725813b777dd89 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/d4/9ac742d44063dcf69d4e0afe725813b777dd89 deleted file mode 100644 index 9dc276f37d..0000000000 --- a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/d4/9ac742d44063dcf69d4e0afe725813b777dd89 +++ /dev/null @@ -1 +0,0 @@ -xn@*GjmJC1~R0ӧi}*U*gw>H˺56}3)Sh0 9Tƨ;2i2-^jL4wS۪pmSTȭ\9V1Sp"|Ǔ.Z>법usuG63)"9G޶..O #XJ$ ?o<1_)n/~6cSl KOv"DJsE؜z[_s!2ϡv%eo( \ No newline at end of file diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/df/6b6d9a97608bc8b56d4f30cde5af00f0681ccf b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/df/6b6d9a97608bc8b56d4f30cde5af00f0681ccf deleted file mode 100644 index 3927778ddf..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/df/6b6d9a97608bc8b56d4f30cde5af00f0681ccf and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/e5/3d079e581fbfdea1075a54d5b621eab0090e52 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/e5/3d079e581fbfdea1075a54d5b621eab0090e52 deleted file mode 100644 index ecdea7f694..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/e5/3d079e581fbfdea1075a54d5b621eab0090e52 and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/ea/82fc8777a24b07c26b3a4bf4e2742c03733eab b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/ea/82fc8777a24b07c26b3a4bf4e2742c03733eab deleted file mode 100644 index 42a8258dbd..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/ea/82fc8777a24b07c26b3a4bf4e2742c03733eab and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/f5/05ec9b5c7a45a10259c1dda7f18434e5d55940 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/f5/05ec9b5c7a45a10259c1dda7f18434e5d55940 deleted file mode 100644 index eaeadaeaee..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/f5/05ec9b5c7a45a10259c1dda7f18434e5d55940 and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/f5/4f5a6b7c4f83b606600e43186165854f189530 b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/f5/4f5a6b7c4f83b606600e43186165854f189530 deleted file mode 100644 index a69fc57996..0000000000 Binary files a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/f5/4f5a6b7c4f83b606600e43186165854f189530 and /dev/null differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/info/packs b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/info/packs new file mode 100644 index 0000000000..e8c040e505 --- /dev/null +++ b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/info/packs @@ -0,0 +1,2 @@ +P pack-dcd8abdfa327da7644d88ee8f092b02a7bb210d4.pack + diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/pack/pack-dcd8abdfa327da7644d88ee8f092b02a7bb210d4.bitmap b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/pack/pack-dcd8abdfa327da7644d88ee8f092b02a7bb210d4.bitmap new file mode 100644 index 0000000000..0aad4bc145 Binary files /dev/null and b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/pack/pack-dcd8abdfa327da7644d88ee8f092b02a7bb210d4.bitmap differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/pack/pack-dcd8abdfa327da7644d88ee8f092b02a7bb210d4.idx b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/pack/pack-dcd8abdfa327da7644d88ee8f092b02a7bb210d4.idx new file mode 100644 index 0000000000..ab6497cfe8 Binary files /dev/null and b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/pack/pack-dcd8abdfa327da7644d88ee8f092b02a7bb210d4.idx differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/pack/pack-dcd8abdfa327da7644d88ee8f092b02a7bb210d4.pack b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/pack/pack-dcd8abdfa327da7644d88ee8f092b02a7bb210d4.pack new file mode 100644 index 0000000000..ab624246bf Binary files /dev/null and b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/pack/pack-dcd8abdfa327da7644d88ee8f092b02a7bb210d4.pack differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/pack/pack-dcd8abdfa327da7644d88ee8f092b02a7bb210d4.rev b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/pack/pack-dcd8abdfa327da7644d88ee8f092b02a7bb210d4.rev new file mode 100644 index 0000000000..14fa6a1e0b Binary files /dev/null and b/tests/gitea-repositories-meta/user2/repo1.wiki.git/objects/pack/pack-dcd8abdfa327da7644d88ee8f092b02a7bb210d4.rev differ diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/packed-refs b/tests/gitea-repositories-meta/user2/repo1.wiki.git/packed-refs new file mode 100644 index 0000000000..f781b81732 --- /dev/null +++ b/tests/gitea-repositories-meta/user2/repo1.wiki.git/packed-refs @@ -0,0 +1,2 @@ +# pack-refs with: peeled fully-peeled sorted +d49ac742d44063dcf69d4e0afe725813b777dd89 refs/heads/master diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/refs/heads/.gitkeep b/tests/gitea-repositories-meta/user2/repo1.wiki.git/refs/heads/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/gitea-repositories-meta/user2/repo1.wiki.git/refs/heads/master b/tests/gitea-repositories-meta/user2/repo1.wiki.git/refs/heads/master deleted file mode 100644 index bd0c0d7efe..0000000000 --- a/tests/gitea-repositories-meta/user2/repo1.wiki.git/refs/heads/master +++ /dev/null @@ -1 +0,0 @@ -f54f5a6b7c4f83b606600e43186165854f189530 diff --git a/tests/integration/actions_token_metadata_test.go b/tests/integration/actions_token_metadata_test.go new file mode 100644 index 0000000000..3ca697c7ca --- /dev/null +++ b/tests/integration/actions_token_metadata_test.go @@ -0,0 +1,112 @@ +// Copyright 2026 The Forgejo Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package integration + +import ( + "context" + "fmt" + "net/http" + "net/url" + "testing" + + actions_model "forgejo.org/models/actions" + auth_model "forgejo.org/models/auth" + "forgejo.org/models/db" + repo_model "forgejo.org/models/repo" + unit_model "forgejo.org/models/unit" + "forgejo.org/models/unittest" + user_model "forgejo.org/models/user" + "forgejo.org/modules/gitrepo" + "forgejo.org/modules/setting" + api "forgejo.org/modules/structs" + actions_service "forgejo.org/services/actions" + "forgejo.org/tests/forgery" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestActionGetTokenMetadata(t *testing.T) { + if !setting.Database.Type.IsSQLite3() { + t.Skip() + } + + onApplicationRun(t, func(t *testing.T, u *url.URL) { + user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) + repo := forgery.CreateRepository(t, user2, &forgery.CreateRepositoryOptions{ + Files: forgery.MapFS{ + ".forgejo/workflows/dispatch.yml": forgery.MapFile( + "name: test\n" + + "enable-email-notifications: true\n" + + "on: [workflow_dispatch]\n" + + "jobs:\n" + + " test:\n" + + " runs-on: ubuntu-latest\n" + + " steps:\n" + + " - run: echo helloworld\n", + ), + }, + }) + forgery.EnableRepoUnit(t, repo, unit_model.TypeActions, nil) + + gitRepo, err := gitrepo.OpenRepository(db.DefaultContext, repo) + require.NoError(t, err) + defer gitRepo.Close() + + workflow, err := actions_service.GetWorkflowFromCommit(gitRepo, "main", "dispatch.yml") + require.NoError(t, err) + assert.Equal(t, "refs/heads/main", workflow.Ref) + + inputGetter := func(key string) string { + return "" + } + + runner := newMockRunner() + runner.registerAsRepoRunner(t, user2.Name, repo.Name, "mock-runner", []string{"ubuntu-latest"}) + + _, _, err = workflow.Dispatch(db.DefaultContext, inputGetter, repo, user2) + require.NoError(t, err) + runnerTask := runner.fetchTask(t) + + task := unittest.AssertExistsAndLoadBean(t, &actions_model.ActionTask{ID: runnerTask.GetId()}) + require.NoError(t, task.LoadJob(context.Background())) + require.NoError(t, task.Job.LoadRun(context.Background())) + + t.Run("success", func(t *testing.T) { + req := NewRequest(t, "GET", "/api/v1/actions/run") + req.AddTokenAuth(runnerTask.Secrets["FORGEJO_TOKEN"]) + resp := MakeRequest(t, req, http.StatusOK) + var payload api.ActionRun + DecodeJSON(t, resp, &payload) + assert.Equal(t, task.Job.Run.ID, payload.ID) + assert.Equal(t, "workflow_dispatch", payload.TriggerEvent) + }) + + t.Run("failure (invalid token)", func(t *testing.T) { + req := NewRequest(t, "GET", "/api/v1/actions/run") + req.AddTokenAuth("0000000000000000000000000000000000000000") + MakeRequest(t, req, http.StatusUnauthorized) + }) + + t.Run("failure (PAT instead of automatic token)", func(t *testing.T) { + session := loginUser(t, "user2") + repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1, OwnerID: user2.ID}) + userToken := getTokenForLoggedInUser(t, session, + auth_model.AccessTokenScopePublicOnly, auth_model.AccessTokenScopeReadRepository) + req := NewRequest(t, "GET", + fmt.Sprintf("/api/v1/repos/%s/actions/runs", repo.FullName())) + req.AddTokenAuth(userToken) + MakeRequest(t, req, http.StatusOK) // make sure the token works + + req = NewRequest(t, "GET", "/api/v1/actions/run") + req.AddTokenAuth(userToken) + MakeRequest(t, req, http.StatusForbidden) + }) + + t.Run("failure (no token)", func(t *testing.T) { + req := NewRequest(t, "GET", "/api/v1/actions/run") + MakeRequest(t, req, http.StatusForbidden) + }) + }) +} diff --git a/tests/integration/actions_trigger_test.go b/tests/integration/actions_trigger_test.go index 19edb8b4ad..5bd0397498 100644 --- a/tests/integration/actions_trigger_test.go +++ b/tests/integration/actions_trigger_test.go @@ -8,6 +8,7 @@ import ( "net/http" "net/url" "slices" + "strconv" "strings" "testing" "time" @@ -1310,3 +1311,107 @@ jobs: } }) } + +func TestActionsPullRequestWithPathsFilter(t *testing.T) { + onApplicationRun(t, func(t *testing.T, u *url.URL) { + user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) + session := loginUser(t, "user2") + + testCases := []struct { + name string + workflow string + runTitle string + }{ + { + name: "paths", + workflow: ` +on: + pull_request: + types: [closed] + paths: + - test.txt +jobs: + test: + runs-on: ubuntu-latest + steps: + - run: echo OK +`, + runTitle: "Update test.txt", + }, + { + name: "paths-ignore", + workflow: ` +on: + pull_request: + types: [closed] + paths-ignore: + - test.txt +jobs: + test: + runs-on: ubuntu-latest + steps: + - run: echo OK +`, + runTitle: "Update README.md", + }, + } + + for _, testCase := range testCases { + t.Run(testCase.name, func(t *testing.T) { + // Prepare a repository. + files := []*files_service.ChangeRepoFile{ + { + Operation: "create", + TreePath: ".forgejo/workflows/test.yaml", + ContentReader: strings.NewReader(testCase.workflow), + }, + { + Operation: "create", + TreePath: "README.md", + ContentReader: strings.NewReader("Hello"), + }, + { + Operation: "create", + TreePath: "test.txt", + ContentReader: strings.NewReader("one"), + }, + } + + baseRepo, _, f := tests.CreateDeclarativeRepo(t, user2, "repo-pull-request", + []unit_model.Type{unit_model.TypeActions}, nil, files) + defer f() + + baseGitRepo, err := gitrepo.OpenRepository(db.DefaultContext, baseRepo) + require.NoError(t, err) + defer baseGitRepo.Close() + + // Create a pull request for README.md and merge it. + testEditFileToNewBranch(t, session, "user2", "repo-pull-request", "main", "change-readme", "README.md", "Hello there!") + testPullCreate(t, session, "user2", "repo-pull-request", true, "main", "change-readme", "Update README.md") + + readmePR := unittest.AssertExistsAndLoadBean(t, + &issues_model.PullRequest{BaseRepoID: baseRepo.ID, HeadBranch: "change-readme"}) + + testPullMerge(t, session, "user2", "repo-pull-request", strconv.FormatInt(readmePR.Index, 10), + repo_model.MergeStyleFastForwardOnly, true) + + // Create a pull request for test.txt and merge it. + testEditFileToNewBranch(t, session, "user2", "repo-pull-request", "main", "change-test", "test.txt", "two") + testPullCreate(t, session, "user2", "repo-pull-request", true, "main", "change-test", "Update test.txt") + + testPR := unittest.AssertExistsAndLoadBean(t, + &issues_model.PullRequest{BaseRepoID: baseRepo.ID, HeadBranch: "change-test"}) + + testPullMerge(t, session, "user2", "repo-pull-request", strconv.FormatInt(testPR.Index, 10), + repo_model.MergeStyleFastForwardOnly, true) + + unittest.AssertCount(t, &actions_model.ActionRun{RepoID: baseRepo.ID}, 1) + + run := unittest.AssertExistsAndLoadBean(t, &actions_model.ActionRun{RepoID: baseRepo.ID}) + assert.Equal(t, webhook_module.HookEventPullRequest, run.Event) + assert.Equal(t, actions_module.GithubEventPullRequest, run.TriggerEvent) + assert.Contains(t, run.Title, testCase.runTitle) + }) + } + }) +} diff --git a/tests/integration/actions_trust_test.go b/tests/integration/actions_trust_test.go index a990529e2e..3c334e0d8c 100644 --- a/tests/integration/actions_trust_test.go +++ b/tests/integration/actions_trust_test.go @@ -534,7 +534,7 @@ func TestActionsPullRequestTrustCancelOnClose(t *testing.T) { regularUser := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5}) regularSession := loginUser(t, regularUser.Name) - token := getTokenForLoggedInUser(t, regularSession, auth_model.AccessTokenScopeWriteIssue) + token := getTokenForLoggedInUser(t, regularSession, auth_model.AccessTokenScopeWriteRepository) baseRepo, f := actionsTrustTestCreateBaseRepo(t, ownerUser) defer f() diff --git a/tests/integration/api_packages_test.go b/tests/integration/api_packages_test.go index 44c0057941..025bad6648 100644 --- a/tests/integration/api_packages_test.go +++ b/tests/integration/api_packages_test.go @@ -528,9 +528,7 @@ func TestPackageCleanup(t *testing.T) { duration, _ := time.ParseDuration("-1h") t.Run("Debian", func(t *testing.T) { - defer tests.PrintCurrentTest(t)() - // Debian does a repository rebuild. - + // Debian does a repository rebuild; these tests cover validation of that process. distribution := "forgejo" component := "main" architecture := "amd64" @@ -540,27 +538,64 @@ func TestPackageCleanup(t *testing.T) { rootURL := fmt.Sprintf("/api/packages/%s/debian", user.Name) uploadURL := fmt.Sprintf("%s/pool/%s/%s/upload", rootURL, distribution, component) - req := NewRequestWithBody(t, "PUT", uploadURL, - createDebianArchive(packageName, "1.0.0", architecture, packageDescription)). - AddBasicAuth(user.Name) - MakeRequest(t, req, http.StatusCreated) + t.Run("empty repository after cleanup", func(t *testing.T) { + defer tests.PrintCurrentTest(t)() - resp := MakeRequest(t, NewRequestf(t, "GET", "%s/dists/%s/%s/binary-%s/Packages", rootURL, distribution, component, architecture), http.StatusOK) - assert.Contains(t, resp.Body.String(), "pool/forgejo/main/runner_1.0.0_amd64.deb") + req := NewRequestWithBody(t, "PUT", uploadURL, + createDebianArchive(packageName, "1.0.0", architecture, packageDescription)). + AddBasicAuth(user.Name) + MakeRequest(t, req, http.StatusCreated) - pcr, err := packages_model.InsertCleanupRule(t.Context(), &packages_model.PackageCleanupRule{ - Enabled: true, - RemovePattern: `.+`, - OwnerID: user.ID, - Type: packages_model.TypeDebian, + resp := MakeRequest(t, NewRequestf(t, "GET", "%s/dists/%s/%s/binary-%s/Packages", rootURL, distribution, component, architecture), http.StatusOK) + assert.Contains(t, resp.Body.String(), "pool/forgejo/main/runner_1.0.0_amd64.deb") + + pcr, err := packages_model.InsertCleanupRule(t.Context(), &packages_model.PackageCleanupRule{ + Enabled: true, + RemovePattern: `.+`, + OwnerID: user.ID, + Type: packages_model.TypeDebian, + }) + require.NoError(t, err) + + require.NoError(t, packages_cleanup_service.CleanupTask(t.Context(), duration)) + + MakeRequest(t, NewRequestf(t, "GET", "%s/dists/%s/%s/binary-%s/Packages", rootURL, distribution, component, architecture), http.StatusNotFound) + + require.NoError(t, packages_model.DeleteCleanupRuleByID(t.Context(), pcr.ID)) }) - require.NoError(t, err) - require.NoError(t, packages_cleanup_service.CleanupTask(t.Context(), duration)) + t.Run("non-empty repository after cleanup", func(t *testing.T) { + defer tests.PrintCurrentTest(t)() - MakeRequest(t, NewRequestf(t, "GET", "%s/dists/%s/%s/binary-%s/Packages", rootURL, distribution, component, architecture), http.StatusNotFound) + req := NewRequestWithBody(t, "PUT", uploadURL, + createDebianArchive(packageName, "1.0.0", architecture, packageDescription)). + AddBasicAuth(user.Name) + MakeRequest(t, req, http.StatusCreated) + req = NewRequestWithBody(t, "PUT", uploadURL, + createDebianArchive(packageName, "1.0.1", architecture, packageDescription)). + AddBasicAuth(user.Name) + MakeRequest(t, req, http.StatusCreated) - require.NoError(t, packages_model.DeleteCleanupRuleByID(t.Context(), pcr.ID)) + resp := MakeRequest(t, NewRequestf(t, "GET", "%s/dists/%s/%s/binary-%s/Packages", rootURL, distribution, component, architecture), http.StatusOK) + assert.Contains(t, resp.Body.String(), "pool/forgejo/main/runner_1.0.0_amd64.deb") + assert.Contains(t, resp.Body.String(), "pool/forgejo/main/runner_1.0.1_amd64.deb") + + pcr, err := packages_model.InsertCleanupRule(t.Context(), &packages_model.PackageCleanupRule{ + Enabled: true, + RemovePattern: `.+`, + OwnerID: user.ID, + Type: packages_model.TypeDebian, + KeepCount: 1, + }) + require.NoError(t, err) + + require.NoError(t, packages_cleanup_service.CleanupTask(t.Context(), duration)) + + resp = MakeRequest(t, NewRequestf(t, "GET", "%s/dists/%s/%s/binary-%s/Packages", rootURL, distribution, component, architecture), http.StatusOK) + assert.Contains(t, resp.Body.String(), "pool/forgejo/main/runner_1.0.1_amd64.deb") + + require.NoError(t, packages_model.DeleteCleanupRuleByID(t.Context(), pcr.ID)) + }) }) t.Run("Common", func(t *testing.T) { diff --git a/tests/integration/api_pull_test.go b/tests/integration/api_pull_test.go index 17fab07f9e..98fb100b76 100644 --- a/tests/integration/api_pull_test.go +++ b/tests/integration/api_pull_test.go @@ -299,6 +299,7 @@ func TestAPICreatePullSuccess(t *testing.T) { DecodeJSON(t, res, pull) assert.Equal(t, "65f1bf27bc3bf70f64657658635e66094edbcb4d", pull.MergeBase) + assert.Contains(t, pull.URL, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d", owner10.Name, repo10.Name, pull.Index)) } func TestAPICreatePullSameRepoSuccess(t *testing.T) { diff --git a/tests/integration/api_wiki_test.go b/tests/integration/api_wiki_test.go index 9639621591..b682523371 100644 --- a/tests/integration/api_wiki_test.go +++ b/tests/integration/api_wiki_test.go @@ -223,29 +223,6 @@ func TestAPIListWikiPages(t *testing.T) { Message: "add unescaped file\n", }, }, - { - Title: "XSS", - HTMLURL: meta[5].HTMLURL, - SubURL: "XSS", - LastCommit: &api.WikiCommit{ - ID: "f54f5a6b7c4f83b606600e43186165854f189530", - Author: &api.CommitUser{ - Identity: api.Identity{ - Name: "Gusted", - Email: "valid@example.org", - }, - Date: "2024-01-31T00:00:00Z", - }, - Committer: &api.CommitUser{ - Identity: api.Identity{ - Name: "Gusted", - Email: "valid@example.org", - }, - Date: "2024-01-31T00:00:00Z", - }, - Message: "Yay XSS", - }, - }, } assert.Equal(t, dummymeta, meta) diff --git a/tests/integration/git_smart_http_test.go b/tests/integration/git_smart_http_test.go index 3608f9fd5b..15c3d11777 100644 --- a/tests/integration/git_smart_http_test.go +++ b/tests/integration/git_smart_http_test.go @@ -178,10 +178,6 @@ func TestGitHTTPSameStatusCodeForGetAndHeadRequests(t *testing.T) { for _, c := range cases { t.Run(caseToTestName(c), func(t *testing.T) { defer tests.PrintCurrentTest(t)() - session := emptyTestSession(t) - if c.User != nil { - session = loginUser(t, c.User.Name) - } if c.IsCollaborator { testCtx := NewAPITestContext(t, owner.Name, repo.Name, auth_model.AccessTokenScopeWriteRepository) doAPIAddCollaborator(testCtx, c.User.Name, perm.AccessModeRead)(t) @@ -194,9 +190,15 @@ func TestGitHTTPSameStatusCodeForGetAndHeadRequests(t *testing.T) { // code for both GET and HEAD, which needs to equal the test cases expected // status code getReq := NewRequestf(t, "GET", "%s/%s", repo.Link(), c.Endpoint) - getResp := session.MakeRequest(t, getReq, NoExpectedStatus) + if c.User != nil { + getReq.AddBasicAuth(c.User.Name) + } + getResp := MakeRequest(t, getReq, NoExpectedStatus) headReq := NewRequestf(t, "HEAD", "%s/%s", repo.Link(), c.Endpoint) - headResp := session.MakeRequest(t, headReq, NoExpectedStatus) + if c.User != nil { + headReq.AddBasicAuth(c.User.Name) + } + headResp := MakeRequest(t, headReq, NoExpectedStatus) require.Equal(t, getResp.Result().StatusCode, headResp.Result().StatusCode) require.Equal(t, c.ExpectedStatusCode, headResp.Result().StatusCode) }) diff --git a/tests/integration/git_test.go b/tests/integration/git_test.go index 83853883c1..3c03630688 100644 --- a/tests/integration/git_test.go +++ b/tests/integration/git_test.go @@ -121,6 +121,7 @@ func testGit(t *testing.T, u *url.URL) { t.Run("PushForkRemoteMessages", doTestForkPushMessages(httpContext, dstPath)) t.Run("CreateAgitFlowPull", doCreateAgitFlowPull(dstPath, &httpContext, "test/head")) t.Run("InternalReferences", doInternalReferences(&httpContext, dstPath)) + t.Run("FsckConsistencyChecks", doFsckConsistencyChecks(dstPath)) t.Run("BranchProtect", doBranchProtect(&httpContext, dstPath)) t.Run("AutoMerge", doAutoPRMerge(&httpContext, dstPath)) t.Run("CreatePRAndSetManuallyMerged", doCreatePRAndSetManuallyMerged(httpContext, httpContext, dstPath, "master", "test-manually-merge")) @@ -170,6 +171,7 @@ func testGit(t *testing.T, u *url.URL) { t.Run("PushForkRemoteMessages", doTestForkPushMessages(sshContext, dstPath)) t.Run("CreateAgitFlowPull", doCreateAgitFlowPull(dstPath, &sshContext, "test/head2")) t.Run("InternalReferences", doInternalReferences(&sshContext, dstPath)) + t.Run("FsckConsistencyChecks", doFsckConsistencyChecks(dstPath)) t.Run("BranchProtect", doBranchProtect(&sshContext, dstPath)) t.Run("MergeFork", func(t *testing.T) { defer tests.PrintCurrentTest(t)() @@ -1337,3 +1339,99 @@ func TestCloneAccessTokenResources(t *testing.T) { }) }) } + +func doFsckConsistencyChecks(dstPath string) func(t *testing.T) { + return func(t *testing.T) { + defer tests.PrintCurrentTest(t)() + + tree, _, err := git.NewCommand(git.DefaultContext, "rev-parse", "HEAD^{tree}").RunStdString(&git.RunOpts{Dir: dstPath}) + require.NoError(t, err) + head, _, err := git.NewCommand(git.DefaultContext, "rev-parse", "HEAD^{commit}").RunStdString(&git.RunOpts{Dir: dstPath}) + require.NoError(t, err) + + // Is checked for and should error. + t.Run("badName", func(t *testing.T) { + defer tests.PrintCurrentTest(t)() + + var buf bytes.Buffer + buf.WriteString("tree ") + buf.WriteString(tree) + buf.WriteString("parent ") + buf.WriteString(head) + buf.WriteString("author @>\n") + buf.WriteString("committer @>\n") + buf.WriteString("\n") + + commitID, _, err := git.NewCommand(git.DefaultContext, "hash-object", "-t", "commit", "--literally", "--stdin", "-w").RunStdString(&git.RunOpts{Dir: dstPath, Stdin: &buf}) + require.NoError(t, err) + commitID = strings.TrimSpace(commitID) + + _, stdErr, gitErr := git.NewCommand(git.DefaultContext, "push", "origin").AddDynamicArguments(commitID + ":refs/heads/consistency-check").RunStdString(&git.RunOpts{Dir: dstPath}) + require.Error(t, gitErr) + assert.Contains(t, stdErr, "badName: invalid author/committer line - bad name") + }) + + t.Run("missingSpaceBeforeEmail", func(t *testing.T) { + defer tests.PrintCurrentTest(t)() + + var buf bytes.Buffer + buf.WriteString("tree ") + buf.WriteString(tree) + buf.WriteString("parent ") + buf.WriteString(head) + buf.WriteString(`author Gusted 1706659200 +0000`) + buf.WriteRune('\n') + buf.WriteString(`committer Gusted 1706659200 +0000`) + buf.WriteString("\n\n") + + commitID, _, err := git.NewCommand(git.DefaultContext, "hash-object", "-t", "commit", "--literally", "--stdin", "-w").RunStdString(&git.RunOpts{Dir: dstPath, Stdin: &buf}) + require.NoError(t, err) + commitID = strings.TrimSpace(commitID) + + _, stdErr, gitErr := git.NewCommand(git.DefaultContext, "push", "origin").AddDynamicArguments(commitID + ":refs/heads/consistency-check").RunStdString(&git.RunOpts{Dir: dstPath}) + require.Error(t, gitErr) + assert.Contains(t, stdErr, "missingSpaceBeforeEmail: invalid author/committer line - missing space before email") + }) + + // Is set to be ignored. + t.Run("badTimezone", func(t *testing.T) { + defer tests.PrintCurrentTest(t)() + + var buf bytes.Buffer + buf.WriteString("tree ") + buf.WriteString(tree) + buf.WriteString("parent ") + buf.WriteString(head) + buf.WriteString("author name 1234 +\n") + buf.WriteString("committer name 1234 +\n") + buf.WriteString("\n") + + commitID, _, err := git.NewCommand(git.DefaultContext, "hash-object", "-t", "commit", "--literally", "--stdin", "-w").RunStdString(&git.RunOpts{Dir: dstPath, Stdin: &buf}) + require.NoError(t, err) + commitID = strings.TrimSpace(commitID) + + require.NoError(t, git.NewCommand(git.DefaultContext, "push", "origin").AddDynamicArguments(commitID+":refs/heads/consistency-check").Run(&git.RunOpts{Dir: dstPath})) + }) + } +} + +func TestGitAuthorizedIntegration(t *testing.T) { + onApplicationRun(t, func(t *testing.T, u *url.URL) { + ait := newAITester(t) + defer ait.close() + token := ait.signedJWT() + u.User = url.UserPassword("token", token) + + t.Run("clone private repo of user", func(t *testing.T) { + repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 3}) + u.Path = fmt.Sprintf("/%s/%s.git", repo.OwnerName, repo.Name) + doGitClone(t.TempDir(), u)(t) + }) + + t.Run("cannot clone private repo of another user", func(t *testing.T) { + repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 52}) + u.Path = fmt.Sprintf("/%s/%s.git", repo.OwnerName, repo.Name) + doGitCloneFail(u)(t) + }) + }) +} diff --git a/tests/integration/pull_test.go b/tests/integration/pull_test.go index fa26643280..9b62dce762 100644 --- a/tests/integration/pull_test.go +++ b/tests/integration/pull_test.go @@ -27,7 +27,7 @@ func TestViewPulls(t *testing.T) { htmlDoc := NewHTMLParser(t, resp.Body) search := htmlDoc.doc.Find(".list-header-search > .search > .input > input") placeholder, _ := search.Attr("placeholder") - assert.Equal(t, "Search pulls…", placeholder) + assert.Equal(t, "Search pull requests…", placeholder) } func TestViewPullsType(t *testing.T) { diff --git a/tests/integration/quota_use_test.go b/tests/integration/quota_use_test.go index fb9619adee..3c518df8b5 100644 --- a/tests/integration/quota_use_test.go +++ b/tests/integration/quota_use_test.go @@ -16,11 +16,13 @@ import ( "testing" "forgejo.org/models/db" + git_model "forgejo.org/models/git" org_model "forgejo.org/models/organization" quota_model "forgejo.org/models/quota" repo_model "forgejo.org/models/repo" user_model "forgejo.org/models/user" "forgejo.org/modules/git" + "forgejo.org/modules/lfs" "forgejo.org/modules/setting" api "forgejo.org/modules/structs" "forgejo.org/modules/test" @@ -365,7 +367,7 @@ func TestWebQuotaEnforcementRepoTransfer(t *testing.T) { }) } -func TestGitQuotaEnforcement(t *testing.T) { +func TestQuotaGitEnforcement(t *testing.T) { onApplicationRun(t, func(t *testing.T, u *url.URL) { env := createQuotaWebEnv(t) defer env.Cleanup() @@ -548,6 +550,55 @@ func TestGitQuotaEnforcement(t *testing.T) { }) } +func TestQuotaGitLfsEnforcement(t *testing.T) { + defer test.MockVariableValue(&setting.LFS.StartServer, true)() + + onApplicationRun(t, func(t *testing.T, u *url.URL) { + env := createQuotaWebEnv(t) + defer env.Cleanup() + + t.Run("UploadHandler", func(t *testing.T) { + // Uploading to our repo => 413 + env.As(t, env.Users.Limited). + With(Context{Repo: env.Users.Limited.Repo}). + PushLFSObject(). + ExpectStatus(http.StatusRequestEntityTooLarge) + + // Uploading to the limited org repo => 413 + env.As(t, env.Users.Limited). + With(Context{Repo: env.Orgs.Limited.Repo}). + PushLFSObject(). + ExpectStatus(http.StatusRequestEntityTooLarge) + + // Uploading to the unlimited org repo => 200 + env.As(t, env.Users.Limited). + With(Context{Repo: env.Orgs.Unlimited.Repo}). + PushLFSObject(). + ExpectStatus(http.StatusOK) + }) + + t.Run("BatchHandler", func(t *testing.T) { + // Uploading to our repo => 413 + env.As(t, env.Users.Limited). + With(Context{Repo: env.Users.Limited.Repo}). + BatchPushLFSObject(). + ExpectStatus(http.StatusRequestEntityTooLarge) + + // Uploading to the limited org repo => 413 + env.As(t, env.Users.Limited). + With(Context{Repo: env.Orgs.Limited.Repo}). + BatchPushLFSObject(). + ExpectStatus(http.StatusRequestEntityTooLarge) + + // Uploading to the unlimited org repo => 200 + env.As(t, env.Users.Limited). + With(Context{Repo: env.Orgs.Unlimited.Repo}). + BatchPushLFSObject(). + ExpectStatus(http.StatusOK) + }) + }) +} + func TestQuotaConfigDefault(t *testing.T) { onApplicationRun(t, func(t *testing.T, u *url.URL) { env := createQuotaWebEnv(t) @@ -793,6 +844,42 @@ func (ctx *quotaWebEnvAsContext) CreateReleaseAttachment(filename string) *quota return ctx.CreateAttachment(filename, "releases") } +func (ctx *quotaWebEnvAsContext) PushLFSObject() *quotaWebEnvAsContext { + ctx.t.Helper() + + p := lfs.Pointer{Oid: "6ccce4863b70f258d691f59609d31b4502e1ba5199942d3bc5d35d17a4ce771d", Size: 5} + ctx.request = NewRequestWithBody(ctx.t, "PUT", + fmt.Sprintf("%s.git/info/lfs/objects/%s/%d", + ctx.Repo.Link(), p.Oid, p.Size), strings.NewReader("gitea")) + + ctx.t.Cleanup(func() { + git_model.RemoveLFSMetaObjectByOid(db.DefaultContext, ctx.Repo.ID, p.Oid) + }) + + return ctx +} + +func (ctx *quotaWebEnvAsContext) BatchPushLFSObject() *quotaWebEnvAsContext { + ctx.t.Helper() + + batch := &lfs.BatchRequest{ + Operation: "upload", + Objects: []lfs.Pointer{ + {Oid: "d6f175817f886ec6fbbc1515326465fa96c3bfd54a4ea06cfd6dbbd8340e0153", Size: 1}, + }, + } + ctx.request = NewRequestWithJSON(ctx.t, "POST", + fmt.Sprintf("%s.git/info/lfs/objects/batch", ctx.Repo.Link()), batch). + SetHeader("Accept", lfs.AcceptHeader). + SetHeader("Content-Type", lfs.MediaType) + + ctx.t.Cleanup(func() { + git_model.RemoveLFSMetaObjectByOid(db.DefaultContext, ctx.Repo.ID, batch.Objects[0].Oid) + }) + + return ctx +} + func (ctx *quotaWebEnvAsContext) WithoutQuota(task func(ctx *quotaWebEnvAsContext)) *quotaWebEnvAsContext { ctx.t.Helper() diff --git a/tests/integration/signup_test.go b/tests/integration/signup_test.go index eee022f7ab..f84b28b13f 100644 --- a/tests/integration/signup_test.go +++ b/tests/integration/signup_test.go @@ -36,6 +36,10 @@ func TestSignup(t *testing.T) { // should be able to view new user's page req = NewRequest(t, "GET", "/exampleUser") MakeRequest(t, req, http.StatusOK) + + // check default values + user := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "exampleUser"}) + assert.True(t, user.EnableRepoUnitHints) } func TestSignupAsRestricted(t *testing.T) { diff --git a/tests/integration/user_test.go b/tests/integration/user_test.go index 1177a18801..2ffa169af8 100644 --- a/tests/integration/user_test.go +++ b/tests/integration/user_test.go @@ -502,11 +502,19 @@ func TestUserHints(t *testing.T) { assertAddMore := func(t *testing.T, present bool) { t.Helper() + // check if the tab is present req := NewRequest(t, "GET", repo.Link()) resp := session.MakeRequest(t, req, http.StatusOK) htmlDoc := NewHTMLParser(t, resp.Body) htmlDoc.AssertElement(t, fmt.Sprintf("a[href='%s/settings/units']", repo.Link()), present) + + // check if the user settings hint is present + req = NewRequest(t, "GET", repo.Link()+"/settings/units") + resp = session.MakeRequest(t, req, http.StatusOK) + htmlDoc = NewHTMLParser(t, resp.Body) + + htmlDoc.AssertElement(t, ".user-main-content a[href='/user/settings/appearance#hints']", present) } t.Run("hints enabled", func(t *testing.T) { diff --git a/tests/integration/xss_test.go b/tests/integration/xss_test.go index 4eb7bc65b1..0b1ba43e02 100644 --- a/tests/integration/xss_test.go +++ b/tests/integration/xss_test.go @@ -39,33 +39,6 @@ func TestXSSUserFullName(t *testing.T) { ) } -func TestXSSWikiLastCommitInfo(t *testing.T) { - defer tests.PrepareTestEnv(t)() - // Check on page view. - t.Run("Page view", func(t *testing.T) { - defer tests.PrintCurrentTest(t)() - - req := NewRequest(t, http.MethodGet, "/user2/repo1/wiki/XSS") - resp := MakeRequest(t, req, http.StatusOK) - htmlDoc := NewHTMLParser(t, resp.Body) - - htmlDoc.AssertElement(t, "script.evil", false) - assert.Contains(t, htmlDoc.Find(".ui.sub.header").Text(), `Gusted edited this page 2024-01-31`) - }) - - // Check on revisions page. - t.Run("Revision page", func(t *testing.T) { - defer tests.PrintCurrentTest(t)() - - req := NewRequest(t, http.MethodGet, "/user2/repo1/wiki/XSS?action=_revision") - resp := MakeRequest(t, req, http.StatusOK) - htmlDoc := NewHTMLParser(t, resp.Body) - - htmlDoc.AssertElement(t, "script.evil", false) - assert.Contains(t, htmlDoc.Find(".ui.sub.header").Text(), `Gusted edited this page 2024-01-31`) - }) -} - func TestXSSReviewDismissed(t *testing.T) { defer unittest.OverrideFixtures("tests/integration/fixtures/TestXSSReviewDismissed")() defer tests.PrepareTestEnv(t)() diff --git a/web_src/css/actions.css b/web_src/css/actions.css index 82149378b9..e61fac84b7 100644 --- a/web_src/css/actions.css +++ b/web_src/css/actions.css @@ -177,8 +177,8 @@ white-space: nowrap; } #workflow_dispatch_dropdown .menu { + /* FIXME: max-height is ineffective without `overflow:`, but clipping overflow breaks dropdown menus */ max-height: 500px; - overflow-inline: auto; } @media (max-width: 640px) or (767.98px < width < 854px) { #workflow_dispatch_dropdown .menu { diff --git a/web_src/fomantic/package-lock.json b/web_src/fomantic/package-lock.json index 055344932d..4fa2249d81 100644 --- a/web_src/fomantic/package-lock.json +++ b/web_src/fomantic/package-lock.json @@ -498,9 +498,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.8.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.8.0.tgz", - "integrity": "sha512-TCFSk8IZh+iLX1xtksoBVtdmgL+1IX0fC9BeU4QqFSuNdN/K+HUlhqOzEmSYYpZUVsLYcPqc9KX+60iDuninSQ==", + "version": "25.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz", + "integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==", "license": "MIT", "dependencies": { "undici-types": ">=7.24.0 <7.24.7" @@ -1034,9 +1034,9 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.10.30", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.30.tgz", - "integrity": "sha512-xjOFN16Ha1+Rz4nFYKqHU/LSB+gx/Vi3yQLX7r7sAW+Wa+8hhF2h4pvqTrTMc8+WcDBEunnUurr46Jvv0jk3Vg==", + "version": "2.10.32", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.32.tgz", + "integrity": "sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" @@ -2024,9 +2024,9 @@ } }, "node_modules/editorconfig/node_modules/semver": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz", - "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -2036,9 +2036,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.357", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.357.tgz", - "integrity": "sha512-NHlTIQDK8fmVwHwuIzmXYEJ1Ewq3D9wDNc0cWXxDGysP6Pb21giwGNkxiTifyKy/4SoPuN5l6GLP1W9Sv7zB2g==", + "version": "1.5.361", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.361.tgz", + "integrity": "sha512-Q6Hts7N9FnJc5LeGRINFvLhCI9xZmNtTDe5ZbcVezQz7cU4a8Aua3GH1b8J2XY8Al9PF+OCwYqhgsOOheMdvkA==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -2097,9 +2097,9 @@ } }, "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -6029,10 +6029,13 @@ } }, "node_modules/node-releases": { - "version": "2.0.44", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.44.tgz", - "integrity": "sha512-5WUyunoPMsvvEhS8AxHtRzP+oA8UCkJ7YRxatWKjngndhDGLiqEVAQKWjFAiAiuL8zMRGzGSJxFnLetoa43qGQ==", - "license": "MIT" + "version": "2.0.46", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.46.tgz", + "integrity": "sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/node.extend": { "version": "2.0.3",