From 49b80f8ac1cf9f0b56da0c73d0f34ef030f4c447 Mon Sep 17 00:00:00 2001 From: silverwind Date: Thu, 18 Apr 2024 10:06:56 +0200 Subject: [PATCH 01/46] Disable enter key for accepting code completion in Monaco (#30548) Fixes https://github.com/go-gitea/gitea/issues/28114 and behaviour matches vscode on desktop as well. Co-authored-by: Giteabot --- web_src/js/features/codeeditor.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/web_src/js/features/codeeditor.js b/web_src/js/features/codeeditor.js index 4fb8bb9e63..f5e4e74dc6 100644 --- a/web_src/js/features/codeeditor.js +++ b/web_src/js/features/codeeditor.js @@ -112,6 +112,10 @@ export async function createMonaco(textarea, filename, editorOpts) { ...other, }); + monaco.editor.addKeybindingRules([ + {keybinding: monaco.KeyCode.Enter, command: null}, // disable enter from accepting code completion + ]); + const model = editor.getModel(); model.onDidChangeContent(() => { textarea.value = editor.getValue({preserveBOM: true}); From 31538133c32009532897989ad623067bd224f924 Mon Sep 17 00:00:00 2001 From: silverwind Date: Thu, 18 Apr 2024 10:34:23 +0200 Subject: [PATCH 02/46] Fix border-radius on view, blame and code search (#30545) Fixes: https://github.com/go-gitea/gitea/issues/30540 1. Fix all these boxes by adding `bottom attached` and removing a problematic CSS rule: Screenshot 2024-04-17 at 22 25 31 Screenshot 2024-04-17 at 22 21 18 2. Change the "last commit" box to `ui segment` which has correct border-radius. Also included is a tiny tweak to make author name ellipse instead of wrap. Screenshot 2024-04-17 at 22 23 23 Co-authored-by: Giteabot --- templates/repo/blame.tmpl | 2 +- templates/repo/settings/lfs_file.tmpl | 2 +- templates/repo/view_file.tmpl | 4 ++-- web_src/css/repo.css | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/templates/repo/blame.tmpl b/templates/repo/blame.tmpl index ccef8e4b38..4ad3ed85c9 100644 --- a/templates/repo/blame.tmpl +++ b/templates/repo/blame.tmpl @@ -28,7 +28,7 @@ -
+
{{if .IsFileTooLarge}} {{template "shared/filetoolarge" dict "RawFileLink" .RawFileLink}} diff --git a/templates/repo/settings/lfs_file.tmpl b/templates/repo/settings/lfs_file.tmpl index cb65236f23..a015cc8bd1 100644 --- a/templates/repo/settings/lfs_file.tmpl +++ b/templates/repo/settings/lfs_file.tmpl @@ -11,7 +11,7 @@ {{ctx.Locale.Tr "repo.settings.lfs_findcommits"}}
-
+
{{template "repo/unicode_escape_prompt" dict "EscapeStatus" .EscapeStatus "root" $}}
{{if .IsFileTooLarge}} diff --git a/templates/repo/view_file.tmpl b/templates/repo/view_file.tmpl index da82332066..0a34b6c325 100644 --- a/templates/repo/view_file.tmpl +++ b/templates/repo/view_file.tmpl @@ -11,7 +11,7 @@ {{end}} {{if not .ReadmeInList}} -
+
{{template "repo/latest_commit" .}}
@@ -84,7 +84,7 @@ {{end}}
-
+
{{if not (or .IsMarkup .IsRenderedHTML)}} {{template "repo/unicode_escape_prompt" dict "EscapeStatus" .EscapeStatus "root" $}} {{end}} diff --git a/web_src/css/repo.css b/web_src/css/repo.css index 882d86c4f6..b7da9ce6e0 100644 --- a/web_src/css/repo.css +++ b/web_src/css/repo.css @@ -430,7 +430,6 @@ td .commit-summary { padding: 0 !important; } -.non-diff-file-content .attached.segment, .non-diff-file-content .pdfobject { border-radius: 0 0 var(--border-radius) var(--border-radius); } @@ -2282,6 +2281,7 @@ tbody.commit-list { .author-wrapper { max-width: 180px; align-self: center; + white-space: nowrap; } /* in the commit list, messages can wrap so we can use inline */ From d4ec6b3d16496ce3b479d5a08f79823122dc2b7b Mon Sep 17 00:00:00 2001 From: silverwind Date: Thu, 18 Apr 2024 11:01:06 +0200 Subject: [PATCH 03/46] Add form field id generation, remove duplicated ids (#30546) Fixes: https://github.com/go-gitea/gitea/issues/30384 On repo settings page, there id `repo_name` was used 5 times on the same page, some in modal and such. I think we are better off just auto-generating these IDs in the future so that labels link up with their form element. Ideally this id generation would be done in backend in a subtemplate, but seeing that we already have similar JS patches for checkboxes, I took the easy path for now. I also checked that these `#repo_name` were not in use in JS and the only case where this id appears in JS is on the migration page where it's still there. --------- Co-authored-by: Giteabot --- templates/repo/settings/options.tmpl | 20 ++++++++++---------- web_src/js/modules/fomantic.js | 2 ++ web_src/js/modules/fomantic/base.js | 13 +++++++++++++ web_src/js/modules/fomantic/checkbox.js | 15 ++------------- web_src/js/modules/fomantic/form.js | 13 +++++++++++++ 5 files changed, 40 insertions(+), 23 deletions(-) create mode 100644 web_src/js/modules/fomantic/form.js diff --git a/templates/repo/settings/options.tmpl b/templates/repo/settings/options.tmpl index c0411cfc56..0cd2201c4b 100644 --- a/templates/repo/settings/options.tmpl +++ b/templates/repo/settings/options.tmpl @@ -9,8 +9,8 @@ {{.CsrfTokenHtml}}
- - + +
@@ -898,8 +898,8 @@
- - + +
@@ -929,8 +929,8 @@
- - + +
@@ -961,8 +961,8 @@
- - + +
@@ -1031,8 +1031,8 @@
- - + +
diff --git a/web_src/js/modules/fomantic.js b/web_src/js/modules/fomantic.js index d205c2b2ee..c04bc6e863 100644 --- a/web_src/js/modules/fomantic.js +++ b/web_src/js/modules/fomantic.js @@ -1,6 +1,7 @@ import $ from 'jquery'; import {initFomanticApiPatch} from './fomantic/api.js'; import {initAriaCheckboxPatch} from './fomantic/checkbox.js'; +import {initAriaFormFieldPatch} from './fomantic/form.js'; import {initAriaDropdownPatch} from './fomantic/dropdown.js'; import {initAriaModalPatch} from './fomantic/modal.js'; import {initFomanticTransition} from './fomantic/transition.js'; @@ -27,6 +28,7 @@ export function initGiteaFomantic() { // Use the patches to improve accessibility, these patches are designed to be as independent as possible, make it easy to modify or remove in the future. initAriaCheckboxPatch(); + initAriaFormFieldPatch(); initAriaDropdownPatch(); initAriaModalPatch(); } diff --git a/web_src/js/modules/fomantic/base.js b/web_src/js/modules/fomantic/base.js index c4a01038ba..7574fdd25c 100644 --- a/web_src/js/modules/fomantic/base.js +++ b/web_src/js/modules/fomantic/base.js @@ -3,3 +3,16 @@ let ariaIdCounter = 0; export function generateAriaId() { return `_aria_auto_id_${ariaIdCounter++}`; } + +export function linkLabelAndInput(label, input) { + const labelFor = label.getAttribute('for'); + const inputId = input.getAttribute('id'); + + if (inputId && !labelFor) { // missing "for" + label.setAttribute('for', inputId); + } else if (!inputId && !labelFor) { // missing both "id" and "for" + const id = generateAriaId(); + input.setAttribute('id', id); + label.setAttribute('for', id); + } +} diff --git a/web_src/js/modules/fomantic/checkbox.js b/web_src/js/modules/fomantic/checkbox.js index 7f2b340296..ed77406cc3 100644 --- a/web_src/js/modules/fomantic/checkbox.js +++ b/web_src/js/modules/fomantic/checkbox.js @@ -1,4 +1,4 @@ -import {generateAriaId} from './base.js'; +import {linkLabelAndInput} from './base.js'; export function initAriaCheckboxPatch() { // link the label and the input element so it's clickable and accessible @@ -7,18 +7,7 @@ export function initAriaCheckboxPatch() { const label = el.querySelector('label'); const input = el.querySelector('input'); if (!label || !input) continue; - const inputId = input.getAttribute('id'); - const labelFor = label.getAttribute('for'); - - if (inputId && !labelFor) { // missing "for" - label.setAttribute('for', inputId); - } else if (!inputId && !labelFor) { // missing both "id" and "for" - const id = generateAriaId(); - input.setAttribute('id', id); - label.setAttribute('for', id); - } else { - continue; - } + linkLabelAndInput(label, input); el.setAttribute('data-checkbox-patched', 'true'); } } diff --git a/web_src/js/modules/fomantic/form.js b/web_src/js/modules/fomantic/form.js new file mode 100644 index 0000000000..3bb0058902 --- /dev/null +++ b/web_src/js/modules/fomantic/form.js @@ -0,0 +1,13 @@ +import {linkLabelAndInput} from './base.js'; + +export function initAriaFormFieldPatch() { + // link the label and the input element so it's clickable and accessible + for (const el of document.querySelectorAll('.ui.form .field')) { + if (el.hasAttribute('data-field-patched')) continue; + const label = el.querySelector(':scope > label'); + const input = el.querySelector(':scope > input'); + if (!label || !input) continue; + linkLabelAndInput(label, input); + el.setAttribute('data-field-patched', 'true'); + } +} From d1ba5f431b09cf2a1f814ce0b3feb4c1d4755844 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Thu, 18 Apr 2024 17:36:19 +0800 Subject: [PATCH 04/46] Some following up changes for routes (#30550) 1. Switch back to the old order for `reqRepoAdmin, context.RepoRef()` 2. Add a routing function info for global NotFound --- routers/web/web.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/routers/web/web.go b/routers/web/web.go index f9164568ed..a6a4c1d987 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -54,10 +54,7 @@ import ( "github.com/prometheus/client_golang/prometheus" ) -const ( - // GzipMinSize represents min size to compress for the body size of response - GzipMinSize = 1400 -) +const GzipMinSize = 1400 // min size to compress for the body size of response // optionsCorsHandler return a http handler which sets CORS options if enabled by config, it blocks non-CORS OPTIONS requests. func optionsCorsHandler() func(next http.Handler) http.Handler { @@ -1115,7 +1112,7 @@ func registerRoutes(m *web.Route) { m.Post("/cancel", repo.MigrateCancelPost) }) }, - reqSignIn, context.RepoAssignment, context.RepoRef(), reqRepoAdmin, + reqSignIn, context.RepoAssignment, reqRepoAdmin, context.RepoRef(), ctxDataSet("PageIsRepoSettings", true, "LFSStartServer", setting.LFS.StartServer), ) // end "/{username}/{reponame}/settings" @@ -1613,6 +1610,7 @@ func registerRoutes(m *web.Route) { m.NotFound(func(w http.ResponseWriter, req *http.Request) { ctx := context.GetWebContext(req) + routing.UpdateFuncInfo(ctx, routing.GetFuncInfo(ctx.NotFound, "GlobalNotFound")) ctx.NotFound("", nil) }) } From 86d4c8a4662e9ab49888569d77529d2d22292e6b Mon Sep 17 00:00:00 2001 From: Jerry Jacobs Date: Thu, 18 Apr 2024 13:22:06 +0200 Subject: [PATCH 05/46] Fixup app.example.ini for task section, which is now queue.task (#30555) Config section `[task]` has been deprecated in favor of `[queue.task]` --------- Co-authored-by: wxiaoguang --- custom/conf/app.example.ini | 16 ---------------- .../administration/config-cheat-sheet.en-us.md | 8 -------- .../administration/config-cheat-sheet.zh-cn.md | 9 --------- 3 files changed, 33 deletions(-) diff --git a/custom/conf/app.example.ini b/custom/conf/app.example.ini index 32b51fd7c6..b4e330184e 100644 --- a/custom/conf/app.example.ini +++ b/custom/conf/app.example.ini @@ -2377,22 +2377,6 @@ LEVEL = Info ;; Enable issue by repository metrics; default is false ;ENABLED_ISSUE_BY_REPOSITORY = false -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;[task] -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Task queue type, could be `channel` or `redis`. -;QUEUE_TYPE = channel -;; -;; Task queue length, available only when `QUEUE_TYPE` is `channel`. -;QUEUE_LENGTH = 1000 -;; -;; Task queue connection string, available only when `QUEUE_TYPE` is `redis`. -;; If there is a password of redis, use `redis://127.0.0.1:6379/0?pool_size=100&idle_timeout=180s` or `redis+cluster://127.0.0.1:6379/0?pool_size=100&idle_timeout=180s` for `redis-clsuter`. -;QUEUE_CONN_STR = "redis://127.0.0.1:6379/0?pool_size=100&idle_timeout=180s" - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;[migrations] diff --git a/docs/content/administration/config-cheat-sheet.en-us.md b/docs/content/administration/config-cheat-sheet.en-us.md index ff8bcb066c..9328177f50 100644 --- a/docs/content/administration/config-cheat-sheet.en-us.md +++ b/docs/content/administration/config-cheat-sheet.en-us.md @@ -1198,14 +1198,6 @@ in this mapping or the filetype using heuristics. - `DEFAULT_UI_LOCATION`: Default location of time on the UI, so that we can display correct user's time on UI. i.e. Asia/Shanghai -## Task (`task`) - -Task queue configuration has been moved to `queue.task`. However, the below configuration values are kept for backwards compatibility: - -- `QUEUE_TYPE`: **channel**: Task queue type, could be `channel` or `redis`. -- `QUEUE_LENGTH`: **1000**: Task queue length, available only when `QUEUE_TYPE` is `channel`. -- `QUEUE_CONN_STR`: **redis://127.0.0.1:6379/0**: Task queue connection string, available only when `QUEUE_TYPE` is `redis`. If redis needs a password, use `redis://123@127.0.0.1:6379/0` or `redis+cluster://123@127.0.0.1:6379/0`. - ## Migrations (`migrations`) - `MAX_ATTEMPTS`: **3**: Max attempts per http/https request on migrations. diff --git a/docs/content/administration/config-cheat-sheet.zh-cn.md b/docs/content/administration/config-cheat-sheet.zh-cn.md index 759f39b576..e4945dd1c1 100644 --- a/docs/content/administration/config-cheat-sheet.zh-cn.md +++ b/docs/content/administration/config-cheat-sheet.zh-cn.md @@ -1128,15 +1128,6 @@ ALLOW_DATA_URI_IMAGES = true - `DEFAULT_UI_LOCATION`:在 UI 上的默认时间位置,以便我们可以在 UI 上显示正确的用户时间。例如:Asia/Shanghai -## 任务 (`task`) - -任务队列配置已移动到 `queue.task`。然而,以下配置值仍保留以确保向后兼容: - -- `QUEUE_TYPE`:**channel**:任务队列类型,可以是 `channel` 或 `redis`。 -- `QUEUE_LENGTH`:**1000**:任务队列长度,仅在 `QUEUE_TYPE` 为 `channel` 时可用。 -- `QUEUE_CONN_STR`:**redis://127.0.0.1:6379/0**:任务队列连接字符串,仅在 `QUEUE_TYPE` 为 `redis` 时可用。 - 如果 redis 需要密码,使用 `redis://123@127.0.0.1:6379/0` 或 `redis+cluster://123@127.0.0.1:6379/0`。 - ## 迁移 (`migrations`) - `MAX_ATTEMPTS`:**3**:每次 http/https 请求的最大尝试次数(用于迁移)。 From d0e07083559180b124a08359fcc72f9ef695e723 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Fri, 19 Apr 2024 00:45:50 +0800 Subject: [PATCH 06/46] Refactor and fix archive link bug (#30535) Regression of #29920 Fixes: #30569 Also this is a rewriting to eliminate the remaining jQuery usages from code. Co-authored-by: Giteabot --- web_src/js/features/repo-common.js | 54 ++++++++++++------------------ web_src/js/utils/dom.js | 4 +++ 2 files changed, 26 insertions(+), 32 deletions(-) diff --git a/web_src/js/features/repo-common.js b/web_src/js/features/repo-common.js index b750addb07..88aa93d850 100644 --- a/web_src/js/features/repo-common.js +++ b/web_src/js/features/repo-common.js @@ -1,45 +1,35 @@ import $ from 'jquery'; -import {hideElem, showElem} from '../utils/dom.js'; +import {hideElem, queryElems, showElem} from '../utils/dom.js'; import {POST} from '../modules/fetch.js'; +import {showErrorToast} from '../modules/toast.js'; +import {sleep} from '../utils.js'; -async function getArchive($target, url, first) { - const dropdownBtn = $target[0].closest('.ui.dropdown.button') ?? $target[0].closest('.ui.dropdown.btn'); - +async function onDownloadArchive(e) { + e.preventDefault(); + // there are many places using the "archive-link", eg: the dropdown on the repo code page, the release list + const el = e.target.closest('a.archive-link[href]'); + const targetLoading = el.closest('.ui.dropdown') ?? el; + targetLoading.classList.add('is-loading', 'loading-icon-2px'); try { - dropdownBtn.classList.add('is-loading'); - const response = await POST(url); - if (response.status === 200) { - const data = await response.json(); - if (!data) { - // XXX Shouldn't happen? - dropdownBtn.classList.remove('is-loading'); - return; - } + for (let tryCount = 0; ;tryCount++) { + const response = await POST(el.href); + if (!response.ok) throw new Error(`Invalid server response: ${response.status}`); - if (!data.complete) { - // Wait for only three quarters of a second initially, in case it's - // quickly archived. - setTimeout(() => { - getArchive($target, url, false); - }, first ? 750 : 2000); - } else { - // We don't need to continue checking. - dropdownBtn.classList.remove('is-loading'); - window.location.href = url; - } + const data = await response.json(); + if (data.complete) break; + await sleep(Math.min((tryCount + 1) * 750, 2000)); } - } catch { - dropdownBtn.classList.remove('is-loading'); + window.location.href = el.href; // the archive is ready, start real downloading + } catch (e) { + console.error(e); + showErrorToast(`Failed to download the archive: ${e}`, {duration: 2500}); + } finally { + targetLoading.classList.remove('is-loading', 'loading-icon-2px'); } } export function initRepoArchiveLinks() { - $('.archive-link').on('click', function (event) { - event.preventDefault(); - const url = this.getAttribute('href'); - if (!url) return; - getArchive($(event.target), url, true); - }); + queryElems('a.archive-link[href]', (el) => el.addEventListener('click', onDownloadArchive)); } export function initRepoCloneLink() { diff --git a/web_src/js/utils/dom.js b/web_src/js/utils/dom.js index fb23a71725..a48510b191 100644 --- a/web_src/js/utils/dom.js +++ b/web_src/js/utils/dom.js @@ -69,6 +69,10 @@ export function queryElemChildren(parent, selector = '*', fn) { return applyElemsCallback(parent.querySelectorAll(`:scope > ${selector}`), fn); } +export function queryElems(selector, fn) { + return applyElemsCallback(document.querySelectorAll(selector), fn); +} + export function onDomReady(cb) { if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', cb); From 354705450a410329d253023d2c66ef6d68ecc046 Mon Sep 17 00:00:00 2001 From: silverwind Date: Thu, 18 Apr 2024 20:54:40 +0200 Subject: [PATCH 07/46] Add a few root files to lint-spell (#30530) Files in root were not linted, add them. No new violations. --- CHANGELOG.md | 72 ++++++++++++++++++++++++++-------------------------- Makefile | 4 +-- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e119d0bec0..1c11ad4a7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -159,11 +159,11 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Fix the issue ref rendering for wiki (#28556) (#28559) * Fix duplicate ID when deleting repo (#28520) (#28528) * Only check online runner when detecting matching runners in workflows (#28286) (#28512) - * Initalize stroage for orphaned repository doctor (#28487) (#28490) + * Initialize stroage for orphaned repository doctor (#28487) (#28490) * Fix possible nil pointer access (#28428) (#28440) * Don't show unnecessary citation JS error on UI (#28433) (#28437) * DOCS - * Update actions document about comparsion as Github Actions (#28560) (#28564) + * Update actions document about comparison as Github Actions (#28560) (#28564) * Fix documents for "custom/public/assets/" (#28465) (#28467) * MISC * Fix inperformant query on retrifing review from database. (#28552) (#28562) @@ -673,7 +673,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Docs: template variables (#26547) * Update index doc (#26455) * Update zh-cn documentation (#26406) - * Fix typos and grammer problems for actions documentation (#26328) + * Fix typos and grammar problems for actions documentation (#26328) * Update documentation for 1.21 actions (#26317) * Doc update swagger doc for POST /orgs/{org}/teams (#26155) * Doc sync authentication.md to zh-cn (#26117) @@ -762,7 +762,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Fix incorrect color of selected assignees when create issue (#26324) (#26372) * Display human-readable text instead of cryptic filemodes (#26352) (#26358) * Hide `last indexed SHA` when a repo could not be indexed yet (#26340) (#26345) - * Fix the topic validation rule and suport dots (#26286) (#26303) + * Fix the topic validation rule and support dots (#26286) (#26303) * Fix due date rendering the wrong date in issue (#26268) (#26274) * Don't autosize textarea in diff view (#26233) (#26244) * Fix commit compare style (#26209) (#26226) @@ -989,7 +989,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Add dark mode to API Docs (#24971) * Display file mode for new file and file mode changes (#24966) * Make the 500 page load themes (#24953) - * Show `bot` label next to username when rendering autor link if the user is a bot (#24943) + * Show `bot` label next to username when rendering author link if the user is a bot (#24943) * Repo list improvements, fix bold helper classes (#24935) * Improve queue and logger context (#24924) * Improve RunMode / dev mode (#24886) @@ -1384,7 +1384,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Replace `drone exec` to `act_runner exec` in test README.md (#24791) * Update packages overview page (#24730) * Docs for creating a user to run Gitea on Fedora/RHEL/CentOS (#24725) - * Move actions as usage's subdirectory and update comparsion zh-cn version (#24719) + * Move actions as usage's subdirectory and update comparison zh-cn version (#24719) * Document `redis-cluster` explicitly in config (#24717) * Improve reverse-proxy document and fix nginx config bug (#24616) * Fix broken `README` link (#24546) @@ -1462,7 +1462,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Show visibility status of email in own profile (#23900) * Refactor authors dropdown (send get request from frontend to avoid long wait time) (#23890) * Add self to maintainers (#23644) - * Upgrade to npm lockfile v3 and explicitely set it (#23561) + * Upgrade to npm lockfile v3 and explicitly set it (#23561) * Improve indices for `action` table (#23532) * Update JS dependencies, Require Node.js 16 (#23528) * Add init file for Ubuntu (#23362) @@ -1503,7 +1503,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Fix issues list page multiple selection update milestones (#24660) (#24663) * Fix: release page for empty or non-existing target (#24659) * Fix close org projects (#24588) (#24591) - * Refresh the refernce of the closed PR when reopening (#24231) (#24587) + * Refresh the references of the closed PR when reopening (#24231) (#24587) * Fix the permission of team's `Actions` unit issue (#24536) (#24545) * Bump go.etcd.io/bbolt and blevesearch deps (#23062) (#24519) * Fix new wiki page mirror (#24518) @@ -2644,7 +2644,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Feeds: render markdown to html (#19058) * Allow users to self-request a PR review (#19030) * Allow render HTML with css/js external links (#19017) - * Fix script compatiable with OpenWrt (#19000) + * Fix script compatible with OpenWrt (#19000) * Support ignore all santize for external renderer (#18984) * Add note to GPG key response if user has no keys (#18961) * Improve Stopwatch behavior (#18930) @@ -2975,7 +2975,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Update go-org to v1.6.1 (#18932) (#18933) * Fix `` html in translation (#18929) (#18931) * Fix page and missing return on unadopted repos API (#18848) (#18927) - * Allow adminstrator teams members to see other teams (#18918) (#18919) + * Allow administrator teams members to see other teams (#18918) (#18919) * Don't treat BOM escape sequence as hidden character. (#18909) (#18910) * Correctly link URLs to users/repos with dashes, dots or underscores (… (#18908) * Fix redirect when using lowercase repo name (#18775) (#18902) @@ -3323,7 +3323,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Fixed issue merged/closed wording (#17973) * Return nicer error for ForcePrivate (#17971) * Fix overflow in commit graph (#17947) - * Prevent services/mailer/mailer_test.go tests from deleteing data directory (#17941) + * Prevent services/mailer/mailer_test.go tests from deleting data directory (#17941) * Use disable_form_autofill on Codebase and Gitbucket (#17936) * Fix a panic in NotifyCreateIssueComment (caused by string truncation) (#17928) * Fix markdown URL parsing (#17924) @@ -3362,7 +3362,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Fixed emoji alias not parsed in links (#16221) * Calculate label URL on API (#16186) * TRANSLATION - * Fix mispelling of starred as stared (#17465) + * Fix misspelling of starred as stared (#17465) * Re-separate the color translation strings (#17390) * Enable Malayalam, Greek, Persian, Hungarian & Indonesian by default (#16998) * BUILD @@ -3554,7 +3554,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Correctly return the number of Repositories for Organizations (#16807) (#16911) * Test if LFS object is accessible (#16865) (#16904) * Fix git.Blob.DataAsync(): close pipe since we return a NopCloser (#16899) (#16900) - * Fix dump and restore respository (#16698) (#16898) + * Fix dump and restore repository (#16698) (#16898) * Repare and Improve GetDiffRangeWithWhitespaceBehavior (#16894) (#16895) * Fix wiki raw commit diff/patch view (#16891) (#16892) * Ensure wiki repos are all closed (#16886) (#16888) @@ -4164,7 +4164,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Improve Description in new/ edit Project template (#14429) * Allow ssh-keygen on Windows to detect ssh key type (#14413) * Display error if twofaSecret cannot be retrieved (#14372) - * Sort issue search results by revelance (#14353) + * Sort issue search results by relevance (#14353) * Implement ghost comment mitigation (#14349) * Upgrade blevesearch dependency to v2.0.1 (#14346) * Add edit, delete and reaction support to code review comments on issue page (#14339) @@ -4337,7 +4337,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * BUGFIXES * Fix race in LFS ContentStore.Put(...) (#14895) (#14913) * Fix a couple of issues with a feeds (#14897) (#14903) - * When transfering repository and database transaction failed, rollback the renames (#14864) (#14902) + * When transferring repository and database transaction failed, rollback the renames (#14864) (#14902) * Fix race in local storage (#14888) (#14901) * Fix 500 on pull view page if user is not loged in (#14885) (#14886) * DOCS @@ -4668,7 +4668,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Render the git graph on the server (#12333) * Fix clone panel in wiki position not always align right (#12326) * Rework 'make generate-images' (#12316) - * Refactor webhook payload convertion (#12310) + * Refactor webhook payload conversion (#12310) * Move jquery-minicolors to npm/webpack (#12305) * Support use nvarchar for all varchar columns when using mssql (#12269) * Update Octicons to v10 (#12240) @@ -4744,7 +4744,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Add debug option to hooks (#11624) * Log slow tests (#11487) * TRANSLATION - * Translate two small lables on commit statuse list (#12821) + * Translate two small lables on commit statutes list (#12821) * Make issues.force_push_codes message shorter (#11575) * BUILD * Bump min required golang to 1.13 (#12717) @@ -5123,7 +5123,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Add restricted user filter to LDAP authentication (#10600) * Add Yandex OAuth2 provider (#8335) (#10564) * Make avatar lookup occur at image request (#10540) - * Prevent accidential selection of language stats bar (#10537) + * Prevent accidental selection of language stats bar (#10537) * Add fluid-icon (#10491) * Inform participants on UI too (#10473) * Build with go 1.14 (and raise minimum go version to 1.12) (#10467) @@ -5515,7 +5515,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com). * Don't link wiki revision to commit (#9244) * Change review content column to type text in db (#9229) * Fixed topic regex pattern and added search by topic links after save (#9219) - * Add language to user API responce (#9215) + * Add language to user API response (#9215) * Correct tooltip message blocked by dependencies (#9211) * Add SimpleMDE and Fix Image Paste for Issue/Comment Editor (#9197) * Fix panic when diff (#9187) @@ -6136,7 +6136,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Display original author and URL information when showing migrated issues/comments (#7352) * Refactor filetype is not allowed errors (#7309) * switch to use gliderlabs/ssh for builtin server (#7250) - * Remove settting dependency on modules/session (#7237) + * Remove setting dependency on modules/session (#7237) * Move all mail related codes from models to services/mailer (#7200) * Support git.PATH entry in app.ini (#6772) * Support setting cookie domain (#6288) @@ -6311,7 +6311,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Fix markdown invoke sequence (#7513) (#7560) * Reserve .well-known username (#7638) * Do not leak secrets via timing side channel (#7364) - * Ensure that decryption of cookie actually suceeds (#7363) + * Ensure that decryption of cookie actually succeeds (#7363) * FEATURES * Content API for Creating, Updating, Deleting Files (#6314) * Enable tls-alpn-01: Use certmanager provided TLSConfig for LetsEncrypt (#7229) @@ -6533,7 +6533,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Change UpdateRepoIndex api to include watchers (#7012) * Move serv hook functionality & drop GitLogger (#6993) * Add support of utf8mb4 for mysql (#6992) - * Make webhook http connections resuable (#6976) + * Make webhook http connections reusable (#6976) * Move xorm logger bridge from log to models so that log module could be a standalone package (#6944) * Refactor models.NewRepoContext to extract git related codes to modules/git (#6941) * Remove macaron dependent on models (#6940) @@ -7104,7 +7104,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Fix data race on migrate repository (#5224) * Fix sqlite and mssql lock (#5214) * Fix sqlite lock (#5210) - * Fix: Accept web-command cli flags if web-command is commited (#5200) + * Fix: Accept web-command cli flags if web-command is committed (#5200) * Fix: Add secret to all webhook's payload where it has been missing (#5199) * Fix race on updatesize (#5190) * Fix create team, update team missing units (#5188) @@ -7255,7 +7255,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Enforce token on api routes [fixed critical security issue #4357] (#4840) * Update legacy branch and tag URLs in dashboard to new format (#4812) * Slack webhook channel name cannot be empty or just contain an hashtag (#4786) - * Add whitespace handling to PR-comparsion (#4683) + * Add whitespace handling to PR-comparison (#4683) * Make reverse proxy auth optional (#4643) * MySQL TLS (#4642) * Make sure to set PR split view when creating/previewing a pull request (#4617) @@ -7309,7 +7309,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Fix markdown image with link (#4675) * Remove maxlines option for file logger (#5282) * Fix wrong api request url for instances running in subfolders (#5261) (#5247) - * Accept web-command cli flags if web-command is commited (#5245) (#5200) + * Accept web-command cli flags if web-command is committed (#5245) (#5200) * Reduce join star, repo_topic, topic tables on repo search, to resolve extra columns problem on MSSQL (#5136) (#5229) * Fix data race on migrate repository (#5224) (#5230) * Add secret to all webhook's payload where it has been missing (#5208) (#5199) @@ -7342,7 +7342,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Fix missing release title in webhook (#4783) (#4796) * User shouldn't be able to approve or reject his/her own PR (#4729) * Make sure to reset commit count in the cache on mirror syncing (#4720) - * Fixed bug where team with admin privelege type doesn't get any unit (#4719) + * Fixed bug where team with admin privilege type doesn't get any unit (#4719) * Fix incorrect caption of webhook setting (#4701) (#4717) * Allow WIP marker to contains < or > (#4709) * Hide org/create menu item in Dashboard if user has no rights (#4678) (#4680) @@ -7408,7 +7408,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * BUGFIXES * Fix missing release title in webhook (#4783) (#4800) * Make sure to reset commit count in the cache on mirror syncing (#4770) - * Fixed bug where team with admin privelege type doesn't get any unit (#4759) + * Fixed bug where team with admin privilege type doesn't get any unit (#4759) * Fix failure on creating pull request with assignees (#4583) (#4727) * Hide org/create menu item in Dashboard if user has no rights (#4678) (#4686) * TRANSLATION @@ -7759,7 +7759,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Fix inconsistencies in user settings UI (#2901) * Fix attachments icon size on zoom in/out (#2853) * Fix ignored errors in API route (#2850) - * Fix activity css conflit with semantic ui (#2758) + * Fix activity css conflict with semantic ui (#2758) * Fix notifications tabs according to semantic-ui docs (#2733) * Fix typos in app.ini (#2732) * Fix duplicated rel attribute (#2549) @@ -7957,7 +7957,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * LFS: Return 404 for unimplemented endpoints (#1330) * Show a link to password reset from user settings requiring a password (#862) * Reserve the "explore" user/org name (#1222) - * Send notifications to partecipants in issue comments (#1217) + * Send notifications to participants in issue comments (#1217) * Improve style of user OpenID setting page (#1324) * Use font-awesome OpenID icon more (#1320) * Use readonly input form to show the validated OpenID URI (#1308) @@ -8155,7 +8155,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * fix #1501 ssh hangs caused by #1461 (#1513) * Fix empty file download (#1506) * Fix broken v27 migration - change mirror interval from int to bigint (#1504) - * Do not allow commiting to protected branch from online editor (#1502) + * Do not allow committing to protected branch from online editor (#1502) * Add internal routes for ssh hook comands (#1471) * Fix races within code.gitea.io/git.(*Command).RunInDirTimeoutPipeline (#1465) * Simple quick fix for #1418 (#1456) @@ -8183,7 +8183,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Make sure both scripts/ can live side by side (#1264) * Fix nil-dereference bug (#1258) * rewrite pre-commit, post-commit and options hooks (fixes #1250) (#1257) - * Commit search appearence fixes (#1254) + * Commit search appearance fixes (#1254) * Fix forget migration for wiki hooks (#1227) * Fix repo settings external tracker failed and check external urls (#1215) * Fix 500 caused by branches settings introduced by #1198 (#1214) @@ -8267,7 +8267,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Only run coverage on merges/pushes to master (#1783) * Remove stale rule from Makefile (#1782) * feat: upgrade drone docker image to support multi-stage build. (#1732) - * Realy don't cache apk index (#1694) + * Really don't cache apk index (#1694) * Limit clone depth when drone-building (#1644) * Refactor Dockerfile (#1632) * Check if missing/modified/unused deps in vendor and fix errors (#1468) @@ -8331,7 +8331,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Remove unused files (#2124) * Improve org error handling (#2117) * Absolute path for setting.CustomConf (#2085) - * remove deprecated code for Gogs compitable (#2041) + * remove deprecated code for Gogs compatible (#2041) * Refactor session close as xorm already does everything needed internally (#2020) * SQLite has a query timeout. Hopefully fixes most 'database locked' errors (#1961) * Use monospace font in githook editor (#1958) @@ -8339,7 +8339,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Gracefully handle bare repositories on API operations. (#1932) * Fix errors caused by force push (#1927) * Display URLs in integration test logs (#1924) - * Set TMPDIR enviroment variable for dump command (#1915) + * Set TMPDIR environment variable for dump command (#1915) * Cache ctx.User in retrieveFeeds (#1902) * Make `LocalCopyPath` a setting instead of a hard-coded path (#1881) * Add check misspelling (#1877) @@ -8348,7 +8348,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Rename misnamed migration (#1867) * Support CRLF when splitting code lines for display (#1862) * Add convert less css file step. (#1861) - * Prevent accidential selection of line numbers in code view (#1860) + * Prevent accidental selection of line numbers in code view (#1860) * Delete Public SSH Key tmp file after calculating fingerprint (#1855) * Remove annoying difference in button heights. (#1853) * Only run test coverage on master branch. (#1838) @@ -8358,7 +8358,7 @@ WARNING: v1.10.5 is incorrectly tagged targeting 1.12-dev and should __not__ be * Rename RepoCreationNum -> MaxCreationLimit (#1766) * Add button to admin ui (#1738) * Correct spelling mistakes (#1703) - * Make openid support default false for compitable with v1.1 (#1650) + * Make openid support default false for compatible with v1.1 (#1650) * Send mails as HTML as default. Setting for send as plain text. (#1648) * fix potential lock when sqlite (#1647) * Optimize png images via Google zopflipng [ci skip] (#1639) diff --git a/Makefile b/Makefile index 1bb79e0337..2a78c907c0 100644 --- a/Makefile +++ b/Makefile @@ -143,9 +143,9 @@ TAR_EXCLUDES := .git data indexers queues log node_modules $(EXECUTABLE) $(FOMAN GO_DIRS := build cmd models modules routers services tests WEB_DIRS := web_src/js web_src/css -ESLINT_FILES := web_src/js tools *.config.js tests/e2e +ESLINT_FILES := web_src/js tools *.js tests/e2e STYLELINT_FILES := web_src/css web_src/js/components/*.vue -SPELLCHECK_FILES := $(GO_DIRS) $(WEB_DIRS) docs/content templates options/locale/locale_en-US.ini .github +SPELLCHECK_FILES := $(GO_DIRS) $(WEB_DIRS) docs/content templates options/locale/locale_en-US.ini .github $(filter-out CHANGELOG.md, $(wildcard *.go *.js *.md *.yml *.yaml *.toml)) EDITORCONFIG_FILES := templates .github/workflows options/locale/locale_en-US.ini GO_SOURCES := $(wildcard *.go) From dd8e6ae270b4b5e91a152a145978029dacb938ff Mon Sep 17 00:00:00 2001 From: silverwind Date: Thu, 18 Apr 2024 21:31:53 +0200 Subject: [PATCH 08/46] Improve "Reference in new issue" modal (#30547) Fixes: https://github.com/go-gitea/gitea/issues/29994 Also some misc enhancements done to the form in the modal. Screenshot 2024-04-17 at 23 02 55 --- .../view_content/reference_issue_dialog.tmpl | 34 +++++++++---------- web_src/css/base.css | 7 ++++ 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/templates/repo/issue/view_content/reference_issue_dialog.tmpl b/templates/repo/issue/view_content/reference_issue_dialog.tmpl index 5f338f6768..f6ac4192ab 100644 --- a/templates/repo/issue/view_content/reference_issue_dialog.tmpl +++ b/templates/repo/issue/view_content/reference_issue_dialog.tmpl @@ -5,26 +5,24 @@
{{.CsrfTokenHtml}} -
-
- {{ctx.Locale.Tr "repository"}} - -
-
- {{ctx.Locale.Tr "repo.milestones.title"}} - -
-
- {{ctx.Locale.Tr "repo.issues.reference_issue.body"}} - -
-
- +
+ +
+
+ + +
+
+ + +
+
+ +
diff --git a/web_src/css/base.css b/web_src/css/base.css index 7e781aa97b..831044756f 100644 --- a/web_src/css/base.css +++ b/web_src/css/base.css @@ -374,6 +374,7 @@ a.label, .ui.selection.dropdown .menu > .item { border-color: var(--color-secondary); + white-space: nowrap; } .ui.selection.visible.dropdown > .text:not(.default) { @@ -390,6 +391,12 @@ a.label, color: var(--color-text-light-2); } +.ui.dropdown > .text { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + /* extend fomantic style '.ui.dropdown > .text > img' to include svg.img */ .ui.dropdown > .text > .img { margin-left: 0; From bcbeb24dbaaafd79c45792a2fe020c98a246b0a7 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Fri, 19 Apr 2024 04:00:59 +0800 Subject: [PATCH 09/46] Mock queue backoff duration (#30553) During testing, the backoff duration shouldn't be longer than other durations --- modules/queue/backoff.go | 10 +++++++++- modules/queue/workerqueue_test.go | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/queue/backoff.go b/modules/queue/backoff.go index cda7233567..02fc88574a 100644 --- a/modules/queue/backoff.go +++ b/modules/queue/backoff.go @@ -8,7 +8,7 @@ import ( "time" ) -const ( +var ( backoffBegin = 50 * time.Millisecond backoffUpper = 2 * time.Second ) @@ -18,6 +18,14 @@ type ( backoffFuncErr func() (retry bool, err error) ) +func mockBackoffDuration(d time.Duration) func() { + oldBegin, oldUpper := backoffBegin, backoffUpper + backoffBegin, backoffUpper = d, d + return func() { + backoffBegin, backoffUpper = oldBegin, oldUpper + } +} + func backoffRetErr[T any](ctx context.Context, begin, upper time.Duration, end <-chan time.Time, fn backoffFuncRetErr[T]) (ret T, err error) { d := begin for { diff --git a/modules/queue/workerqueue_test.go b/modules/queue/workerqueue_test.go index e09669c542..a08b02a123 100644 --- a/modules/queue/workerqueue_test.go +++ b/modules/queue/workerqueue_test.go @@ -250,6 +250,7 @@ func TestWorkerPoolQueueShutdown(t *testing.T) { func TestWorkerPoolQueueWorkerIdleReset(t *testing.T) { defer test.MockVariableValue(&workerIdleDuration, 10*time.Millisecond)() + defer mockBackoffDuration(10 * time.Millisecond)() handler := func(items ...int) (unhandled []int) { time.Sleep(50 * time.Millisecond) From ba9b124c34ff9a30945530f1f3cc7949ec2c8675 Mon Sep 17 00:00:00 2001 From: GiteaBot Date: Fri, 19 Apr 2024 00:24:35 +0000 Subject: [PATCH 10/46] [skip ci] Updated translations via Crowdin --- options/locale/locale_fr-FR.ini | 6 ++ options/locale/locale_pt-PT.ini | 10 +++ options/locale/locale_tr-TR.ini | 139 ++++++++++++++++++++++++++++++++ options/locale/locale_zh-CN.ini | 10 +++ 4 files changed, 165 insertions(+) diff --git a/options/locale/locale_fr-FR.ini b/options/locale/locale_fr-FR.ini index c57bae77c0..61a6a98379 100644 --- a/options/locale/locale_fr-FR.ini +++ b/options/locale/locale_fr-FR.ini @@ -150,6 +150,10 @@ filter.private=Privé [search] +exact=Exact +exact_tooltip=Inclure uniquement les résultats qui correspondent exactement au terme de recherche +issue_kind=Recherche de tickets… +pull_kind=Recherche de demandes d’ajouts… [aria] navbar=Barre de navigation @@ -824,6 +828,7 @@ repo_and_org_access=Accès aux Organisations et Dépôts permissions_public_only=Publique uniquement permissions_access_all=Tout (public, privé et limité) select_permissions=Sélectionner les autorisations +permission_not_set=Non défini permission_no_access=Aucun accès permission_read=Lecture permission_write=Lecture et écriture @@ -2016,6 +2021,7 @@ 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.default_wiki_everyone_access=Autorisation d’accès par défaut pour les utilisateurs connectés : 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. diff --git a/options/locale/locale_pt-PT.ini b/options/locale/locale_pt-PT.ini index 4f21b881c5..a90927a255 100644 --- a/options/locale/locale_pt-PT.ini +++ b/options/locale/locale_pt-PT.ini @@ -164,6 +164,8 @@ search=Pesquisar... type_tooltip=Tipo de pesquisa fuzzy=Aproximada fuzzy_tooltip=Incluir também os resultados que estejam próximos do termo de pesquisa +exact=Fiel +exact_tooltip=Incluir somente os resultados que correspondam rigorosamente ao termo de pesquisa repo_kind=Pesquisar repositórios... user_kind=Pesquisar utilizadores... org_kind=Pesquisar organizações... @@ -177,6 +179,8 @@ branch_kind=Pesquisar ramos... commit_kind=Pesquisar cometimentos... runner_kind=Pesquisar executores... no_results=Não foram encontrados resultados correspondentes. +issue_kind=Pesquisar questões... +pull_kind=Pesquisar puxadas... keyword_search_unavailable=Pesquisar por palavra-chave não está disponível, neste momento. Entre em contacto com o administrador. [aria] @@ -712,6 +716,7 @@ cancel=Cancelar language=Idioma ui=Tema hidden_comment_types=Tipos de comentários ocultos +hidden_comment_types_description=Os tipos de comentário marcados aqui não serão mostrados dentro das páginas das questões. Marcar "Rótulo", por exemplo, remove todos os comentários "{user} adicionou/removeu {label}". hidden_comment_types.ref_tooltip=Comentários onde esta questão foi referenciada a partir de outra questão/cometimento/… hidden_comment_types.issue_ref_tooltip=Comentários onde o utilizador altera o ramo/etiqueta associado à questão comment_type_group_reference=Referência @@ -882,6 +887,7 @@ repo_and_org_access=Acesso aos repositórios e às organizações permissions_public_only=Apenas público permissions_access_all=Tudo (público, privado e limitado) select_permissions=Escolher permissões +permission_not_set=Não definido permission_no_access=Sem acesso permission_read=Lidas permission_write=Leitura e escrita @@ -1286,6 +1292,7 @@ editor.or=ou editor.cancel_lower=Cancelar editor.commit_signed_changes=Cometer modificações assinadas editor.commit_changes=Cometer modificações +editor.add_tmpl=Adicionar '{filename}' editor.add=Adicionar %s editor.update=Modificar %s editor.delete=Eliminar %s @@ -2092,6 +2099,7 @@ settings.advanced_settings=Configurações avançadas settings.wiki_desc=Habilitar wiki do repositório settings.use_internal_wiki=Usar o wiki nativo settings.default_wiki_branch_name=Nome do ramo predefinido do wiki +settings.default_wiki_everyone_access=Permissão de acesso predefinida para utilizadores registados: settings.failed_to_change_default_wiki_branch=Falhou ao mudar o nome do ramo predefinido do wiki. settings.use_external_wiki=Usar um wiki externo settings.external_wiki_url=URL do wiki externo @@ -3083,12 +3091,14 @@ auths.tips=Dicas auths.tips.oauth2.general=Autenticação OAuth2 auths.tips.oauth2.general.tip=Ao registar uma nova autenticação OAuth2, o URL da ligação de retorno ou do reencaminhamento deve ser: auths.tip.oauth2_provider=Fornecedor OAuth2 +auths.tip.bitbucket=Registe um novo consumidor de OAuth em https://bitbucket.org/account/user/{your-username}/oauth-consumers/new e adicione a permissão 'Account' - 'Read' auths.tip.nextcloud=`Registe um novo consumidor OAuth na sua instância usando o seguinte menu "Configurações → Segurança → Cliente OAuth 2.0"` auths.tip.dropbox=Crie uma nova aplicação em https://www.dropbox.com/developers/apps auths.tip.facebook=`Registe uma nova aplicação em https://developers.facebook.com/apps e adicione o produto "Facebook Login"` auths.tip.github=Registe uma nova aplicação OAuth em https://github.com/settings/applications/new auths.tip.gitlab_new=Registe uma nova aplicação em https://gitlab.com/-/profile/applications auths.tip.google_plus=Obtenha credenciais de cliente OAuth2 a partir da consola do Google API em https://console.developers.google.com/ +auths.tip.openid_connect=Use o URL da descoberta de conexão OpenID "https://{server}/.well-known/openid-configuration" para especificar os extremos auths.tip.twitter=`Vá a https://dev.twitter.com/apps, crie uma aplicação e certifique-se de que está habilitada a opção "Allow this application to be used to Sign in with Twitter"` auths.tip.discord=Registe uma nova aplicação em https://discordapp.com/developers/applications/me auths.tip.gitea=Registe uma nova aplicação OAuth2. O guia pode ser encontrado em https://docs.gitea.com/development/oauth2-provider diff --git a/options/locale/locale_tr-TR.ini b/options/locale/locale_tr-TR.ini index acc21d24e1..59c931afd2 100644 --- a/options/locale/locale_tr-TR.ini +++ b/options/locale/locale_tr-TR.ini @@ -25,6 +25,7 @@ enable_javascript=Bu web sitesinin çalışması için JavaScript gereklidir. toc=İçindekiler Tablosu licenses=Lisanslar return_to_gitea=Gitea'ya Dön +more_items=Daha fazla öğe username=Kullanıcı Adı email=E-posta Adresi @@ -113,6 +114,7 @@ loading=Yükleniyor… error=Hata error404=Ulaşmaya çalıştığınız sayfa mevcut değil veya görüntüleme yetkiniz yok. go_back=Geri Git +invalid_data=Geçersiz veri: %v never=Asla unknown=Bilinmiyor @@ -123,6 +125,7 @@ pin=Sabitle unpin=Sabitlemeyi kaldır artifacts=Yapılar +confirm_delete_artifact=%s yapısını silmek istediğinizden emin misiniz? archived=Arşivlenmiş @@ -142,13 +145,43 @@ name=İsim value=Değer filter=Filtre +filter.clear=Filtreyi Temizle filter.is_archived=Arşivlenmiş +filter.not_archived=Arşivlenmemiş +filter.is_fork=Çatallanmış +filter.not_fork=Çatallanmamış +filter.is_mirror=Yansılanmış +filter.not_mirror=Yansılanmamış filter.is_template=Şablon +filter.not_template=Şablon değil filter.public=Genel filter.private=Özel +no_results_found=Sonuç bulunamadı. [search] +search=Ara... +type_tooltip=Arama türü +fuzzy=Bulanık +fuzzy_tooltip=Arama terimine benzeyen sonuçları da içer +exact=Tam +exact_tooltip=Sadece arama terimiyle tamamen eşleşen sonuçları içer +repo_kind=Depoları ara... +user_kind=Kullanıcıları ara... +org_kind=Organizasyonları ara... +team_kind=Takımları ara... +code_kind=Kod ara... +code_search_unavailable=Kod arama şu an mevcut değil. Lütfen site yöneticisiyle iletişime geçin. +code_search_by_git_grep=Mevcut kod arama sonuçları "git grep" ile sağlanıyor. Eğer yönetici Depo Dizinleyici'yi etkinleştirirse daha iyi sonuçlar çıkabilir. +package_kind=Paketleri ara... +project_kind=Projeleri ara... +branch_kind=Dalları ara... +commit_kind=İşlemeleri ara... +runner_kind=Çalıştırıcıları ara... +no_results=Eşleşen sonuç bulunamadı. +issue_kind=Konuları ara... +pull_kind=Değişiklikleri ara... +keyword_search_unavailable=Anahtar kelime ile arama şu an mevcut değil. Lütfen site yöneticinizle iletişime geçin. [aria] navbar=Gezinti Çubuğu @@ -255,6 +288,7 @@ email_title=E-posta Ayarları smtp_addr=SMTP Sunucusu smtp_port=SMTP Portu smtp_from=E-posta Gönderen +smtp_from_invalid=`"E-posta Olarak Gönder" adresi geçersiz` smtp_from_helper=Gitea'nın kullanacağı e-posta adresi. Yalın bir e-posta adresi girin veya "İsim" biçimini kullanın. mailer_user=SMTP Kullanıcı Adı mailer_password=SMTP Parolası @@ -314,6 +348,7 @@ env_config_keys=Ortam Yapılandırma env_config_keys_prompt=Aşağıdaki ortam değişkenleri de yapılandırma dosyanıza eklenecektir: [home] +nav_menu=Gezinti Menüsü uname_holder=Kullanıcı Adı veya E-Posta Adresi password_holder=Parola switch_dashboard_context=Panoya Geçiş Yap @@ -362,6 +397,7 @@ forgot_password_title=Şifremi unuttum forgot_password=Şifrenizi mi unuttunuz? sign_up_now=Bir hesaba mı ihtiyacınız var? Hemen kaydolun. sign_up_successful=Hesap başarılı bir şekilde oluşturuldu. Hoşgeldiniz! +confirmation_mail_sent_prompt_ex=Yeni bir doğrulama e-postası %s adresine gönderildi. Lütfen kayıt sürecini tamamlamak için %s içinde gelen kutunuzu denetleyin. Eğer kayıt e-posta adresiniz hatalı ise, tekrar oturum açıp değiştirebilirsiniz. must_change_password=Parolanızı güncelleyin allow_password_change=Kullanıcıyı parola değiştirmeye zorla (önerilen) reset_password_mail_sent_prompt=%s adresine bir onay e-postası gönderildi. Hesap kurtarma işlemini tamamlamak için lütfen gelen kutunuzu sonraki %s içinde kontrol edin. @@ -371,6 +407,7 @@ prohibit_login=Oturum Açma Yasağı prohibit_login_desc=Hesabınız ile oturum açmanız yasaklanmış, lütfen site yöneticinizle iletişime geçin. resent_limit_prompt=Zaten bir etkinleştirme e-postası talep ettiniz. Lütfen 3 dakika bekleyip tekrar deneyin. has_unconfirmed_mail=Merhaba %s, doğrulanmamış bir e-posta adresin var (%s). Bir doğrulama e-postası almadıysanız ya da yenisine ihtiyacınız varsa lütfen aşağıdaki düğmeye tıklayın. +change_unconfirmed_mail_address=Eğer kayıt e-posta adresiniz hatalı ise, burada değiştirebilir ve yeni bir doğrulama e-postası gönderebilirsiniz. resend_mail=Etkinleştirme e-postasını tekrar almak için buraya tıklayın email_not_associate=Bu e-posta adresi hiçbir hesap ile ilişkilendirilmemiştir. send_reset_mail=Hesap Kurtarma E-postası Gönder @@ -418,6 +455,7 @@ authorization_failed_desc=Geçersiz bir istek tespit ettiğimiz için yetkilendi sspi_auth_failed=SSPI kimlik doğrulaması başarısız oldu password_pwned=Seçtiğiniz parola, daha önce herkese açık veri ihlallerinde açığa çıkan bir çalınan parola listesindedir. Lütfen farklı bir parola ile tekrar deneyin ve başka yerlerde de bu parolayı değiştirmeyi düşünün. password_pwned_err=HaveIBeenPwned'e yapılan istek tamamlanamadı +last_admin=Son yöneticiyi silemezsiniz. En azından bir yönetici olmalıdır. [mail] view_it_on=%s üzerinde görüntüle @@ -550,6 +588,7 @@ team_name_been_taken=Takım adı zaten alınmış. team_no_units_error=En az bir depo bölümüne erişimine izin ver. email_been_used=E-posta adresi zaten kullanılıyor. email_invalid=E-posta adresi geçersiz. +email_domain_is_not_allowed=Kullanıcı e-posta adresi %s alan adı EMAIL_DOMAIN_ALLOWLIST veya EMAIL_DOMAIN_BLOCKLIST ile çelişiyor. Lütfen işleminizin beklendiğinden emin olun. openid_been_used=OpenID adresi "%s" zaten kullanılıyor. username_password_incorrect=Kullanıcı adı veya parola hatalı. password_complexity=Parola, karmaşıklık gereksinimlerini karşılamıyor: @@ -561,6 +600,8 @@ enterred_invalid_repo_name=Girdiğiniz depo adı hatalı. enterred_invalid_org_name=Girdiğiniz organizsyon adı hatalı. enterred_invalid_owner_name=Yeni sahip ismi hatalı. enterred_invalid_password=Girdiğiniz parola hatalı. +unset_password=Oturum açma kullanıcısı parola belirlemedi. +unsupported_login_type=Oturum açma türü hesap silmeyi desteklemiyor. user_not_exist=Böyle bir kullanıcı yok. team_not_exist=Böyle bir takım bulunmuyor. last_org_owner=Son kullanıcıyı 'sahipler' takımından çıkaramazsınız. Bir organizasyonun en az bir sahibi olmalıdır. @@ -583,6 +624,7 @@ org_still_own_packages=Bu organizasyon hala bir veya daha fazla pakete sahip, ö target_branch_not_exist=Hedef dal mevcut değil. +admin_cannot_delete_self=Yöneticiyken kendinizi silemezsiniz. Lütfen önce yönetici haklarınızı kaldırın. [user] change_avatar=Profil resmini değiştir… @@ -609,6 +651,29 @@ 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.` +block.block=Engelle +block.block.user=Kullanıcıyı engelle +block.block.org=Kullanıcıyı organizasyonda engelle +block.block.failure=Kullanıcı engellenemedi: %s +block.unblock=Engeli kaldır +block.unblock.failure=Kullanıcının engeli kaldırılamadı: %s +block.blocked=Bu kullanıcıyı engelledin. +block.title=Bir kullanıcı engelle +block.info=Bir kullanıcıyı engellemek depoarla, değişiklik isteği veya konu açmak veya yorumlamak gibi, etkileşim kurmasını önler. Bir kullanıcı engelleme hakkında daha fazlasını öğrenin. +block.info_1=Bir kullanıcıyı engellemek, hesabınızda ve depolarınızda şu eylemleri önler: +block.info_2=hesabınızı takip etmek +block.info_3=kullanıcı adınızdan @bahsederek size bildirim göndermek +block.info_4=kendi depolarına sizi katkıcı olarak davet etmek +block.info_5=depolara yıldız koymak, çatallamak veya izlemek +block.info_6=konu veya değişiklik isteği açmak ve yorum eklemek +block.info_7=konularda veya değişiklik isteklerinde yorumlarınıza tepki vermek +block.user_to_block=Engellenecek kullanıcı +block.note=Not +block.note.title=İsteğe bağlı not: +block.note.info=Not engellenen kullanıcıya gösterilmez. +block.note.edit=Notu düzenle +block.list=Engellenmiş kullanıcılar +block.list.none=Engellediğiniz kullanıcı yok. [settings] profile=Profil @@ -651,6 +716,7 @@ cancel=İptal language=Dil ui=Tema hidden_comment_types=Gizli yorum türleri +hidden_comment_types_description=Burada işaretlenen yorum türleri konu sayfalarında görüntülenmeyecektir. Örneğin "Etiket" seçildiğinde tüm "{user}, {label} ekledi/çıkardı" yorumları kalkacaktır. hidden_comment_types.ref_tooltip=Bu konuya başka konu/işlem tarafından değinilen yorumlar… hidden_comment_types.issue_ref_tooltip=Kullanıcının konuyla ilişkili dalı/etiketi değiştirdiği yorumlar comment_type_group_reference=Referans @@ -821,6 +887,7 @@ repo_and_org_access=Depo ve Organizasyon Erişimi permissions_public_only=Yalnızca herkese açık permissions_access_all=Tümü (herkese açık, özel ve sınırlı) select_permissions=İzinleri seçin +permission_not_set=Ayarlanmadı permission_no_access=Erişim Yok permission_read=Okunmuş permission_write=Okuma ve Yazma @@ -945,7 +1012,9 @@ fork_visibility_helper=Çatallanmış bir deponun görünürlüğü değiştiril fork_branch=Çatala klonlanacak dal all_branches=Tüm dallar fork_no_valid_owners=Geçerli bir sahibi olmadığı için bu depo çatallanamaz. +fork.blocked_user=Depo çatallanamıyor, depo sahibi tarafından engellenmişsiniz. use_template=Bu şablonu kullan +open_with_editor=%s ile aç download_zip=ZIP indir download_tar=TAR.GZ indir download_bundle=BUNDLE indir @@ -961,6 +1030,8 @@ issue_labels_helper=Bir konu 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 +object_format=Nesne Biçimi +object_format_helper=Deponun nesne biçimi. Daha sonra değiştirilemez. SHA1 en uyumlu olandır. readme=README readme_helper=Bir README dosyası şablonu seçin. readme_helper_desc=Projeniz için eksiksiz bir açıklama yazabileceğiniz yer burasıdır. @@ -978,6 +1049,7 @@ mirror_prune=Buda mirror_prune_desc=Kullanılmayan uzak depoları izleyen referansları kaldır mirror_interval=Yansı Aralığı (geçerli zaman birimleri 'h', 'm', 's'). Periyodik senkronizasyonu devre dışı bırakmak için 0 kullanın. (Asgari aralık: %s) mirror_interval_invalid=Yansı süre aralığı geçerli değil. +mirror_sync=eşitlendi mirror_sync_on_commit=İşlemeler gönderildiğinde senkronize et mirror_address=URL'den Klonla mirror_address_desc=Yetkilendirme bölümüne gerekli tüm kimlik bilgilerini girin. @@ -995,6 +1067,7 @@ watchers=İzleyenler stargazers=Yıldızlayanlar stars_remove_warning=Bu depodan tüm yıldızları kaldıracaktır. forks=Çatallamalar +stars=Yıldızlar reactions_more=ve %d daha fazla unit_disabled=Site yöneticisi bu depo bölümünü devre dışı bıraktı. language_other=Diğer @@ -1028,6 +1101,7 @@ desc.public=Genel desc.template=Şablon desc.internal=Dahili desc.archived=Arşivlenmiş +desc.sha256=SHA256 template.items=Şablon Öğeleri template.git_content=Git İçeriği (Varsayılan Dal) @@ -1115,6 +1189,7 @@ watch=İzle unstar=Yıldızı Kaldır star=Yıldızla fork=Çatalla +action.blocked_user=İşlem gerçekleştirilemiyor, depo sahibi tarafından engellenmişsiniz. download_archive=Depoyu İndir more_operations=Daha Fazla İşlem @@ -1161,6 +1236,8 @@ file_view_rendered=Oluşturulanları Görüntüle file_view_raw=Ham Görünüm file_permalink=Kalıcı Bağlantı file_too_large=Bu dosya görüntülemek için çok büyük. +code_preview_line_from_to=%[3]s içinde %[1]d ve %[2]d arasındaki satırlar +code_preview_line_in=%[2]s içinde %[1]d satırı invisible_runes_header=`Bu dosya görünmez Evrensel Kodlu karakter içeriyor` invisible_runes_description=`Bu dosya, insanlar tarafından ayırt edilemeyen ama bir bilgisayar tarafından farklı bir şekilde işlenebilecek görünmez evrensel kodlu karakter içeriyor. Eğer bunu kasıtlı olarak yaptıysanız bu uyarıyı yok sayabilirsiniz. Gizli karakterleri göstermek için Kaçış Karakterli düğmesine tıklayın.` ambiguous_runes_header=`Bu dosya muğlak Evrensel Kodlu karakter içeriyor` @@ -1178,6 +1255,8 @@ audio_not_supported_in_browser=Tarayıcınız HTML5 'audio' etiketini desteklemi stored_lfs=Git LFS ile depolandı symbolic_link=Sembolik Bağlantı executable_file=Çalıştırılabilir Dosya +vendored=Sağlanmış +generated=Üretilmiş commit_graph=İşleme Grafiği commit_graph.select=Dalları seç commit_graph.hide_pr_refs=Değişiklik İsteklerini Gizle @@ -1213,6 +1292,7 @@ editor.or=veya editor.cancel_lower=İptal editor.commit_signed_changes=İmzalı Değişiklikleri İşle editor.commit_changes=Değişiklikleri Uygula +editor.add_tmpl='{filename}' ekle editor.add=%s Ekle editor.update=%s Güncelle editor.delete=%s Sil @@ -1240,6 +1320,8 @@ editor.file_editing_no_longer_exists=Düzenlenmekte olan "%s" dosyası artık bu editor.file_deleting_no_longer_exists=Silinen "%s" dosyası artık bu depoda yer almıyor. editor.file_changed_while_editing=Düzenlemeye başladığınızdan beri dosya içeriği değişti. Görmek için burayı tıklayın veya üzerine yazmak için değişiklikleri yine de işleyin. editor.file_already_exists=Bu depoda "%s" isimli bir dosya zaten var. +editor.commit_id_not_matching=İşleme ID'si, düzenlemeye başladığınız ID ile uyuşmuyor, bir yama dalına işleme yapın ve sonra birleştirin. +editor.push_out_of_date=İtme eskimiş. editor.commit_empty_file_header=Boş bir dosya işle editor.commit_empty_file_text=İşlemek üzere olduğunuz dosya boş. Devam edilsin mi? editor.no_changes_to_show=Gösterilecek değişiklik yok. @@ -1264,6 +1346,7 @@ commits.commits=İşleme commits.no_commits=Ortak bir işleme yok. "%s" ve "%s" tamamen farklı geçmişlere sahip. commits.nothing_to_compare=Bu dallar eşit. commits.search.tooltip=Anahtar kelimeleri "author:", "committer:", "after:" veya "before:" ile kullanabilirsiniz, örneğin "revert author:Alice before:2019-01-13". +commits.search_branch=Bu Dal commits.search_all=Tüm Dallar commits.author=Yazar commits.message=Mesaj @@ -1322,6 +1405,7 @@ projects.column.new=Yeni Sütun projects.column.set_default=Varsayılanı Ayarla projects.column.set_default_desc=Bu sütunu kategorize edilmemiş konular ve değişiklik istekleri için varsayılan olarak ayarlayın projects.column.delete=Sutün Sil +projects.column.deletion_desc=Bir proje sütununun silinmesi, ilgili tüm konuları varsayılan sütuna taşır. Devam edilsin mi? projects.column.color=Renk projects.open=Aç projects.close=Kapat @@ -1356,6 +1440,8 @@ issues.new.assignees=Atananlar issues.new.clear_assignees=Atamaları Temizle issues.new.no_assignees=Atanan Kişi Yok issues.new.no_reviewers=Değerlendirici yok +issues.new.blocked_user=Konu oluşturulamıyor, depo sahibi tarafından engellenmişsiniz. +issues.edit.blocked_user=İçerik düzenlenemiyor, gönderen veya depo sahibi tarafından engellenmişsiniz. issues.choose.get_started=Başla issues.choose.open_external_link=Aç issues.choose.blank=Varsayılan @@ -1470,6 +1556,7 @@ issues.close_comment_issue=Yorum Yap ve Kapat issues.reopen_issue=Yeniden aç issues.reopen_comment_issue=Yorum Yap ve Yeniden Aç issues.create_comment=Yorum yap +issues.comment.blocked_user=Yorum oluşturulamıyor veya düzenlenemiyor, gönderen veya depo sahibi tarafından engellenmişsiniz. issues.closed_at=`%[2]s konusunu kapattı` issues.reopened_at=`%[2]s konusunu yeniden açtı` issues.commit_ref_at=`%[2]s işlemesinde bu konuyu işaret etti` @@ -1668,6 +1755,7 @@ compare.compare_head=karşılaştır pulls.desc=Değişiklik isteklerini ve kod incelemelerini etkinleştir. pulls.new=Yeni Değişiklik İsteği +pulls.new.blocked_user=Değişiklik isteği oluşturulamıyor, depo sahibi tarafından engellenmişsiniz. pulls.view=Değişiklik İsteği Görüntüle pulls.compare_changes=Yeni Değişiklik İsteği pulls.allow_edits_from_maintainers=Bakımcıların düzenlemelerine izin ver @@ -1692,6 +1780,7 @@ pulls.select_commit_hold_shift_for_range=İşleme seç. Bir aralık seçmek içi pulls.review_only_possible_for_full_diff=İnceleme sadece tam fark görüntülemede mümkündür pulls.filter_changes_by_commit=İşleme ile süz pulls.nothing_to_compare=Bu dallar eşit. Değişiklik isteği oluşturmaya gerek yok. +pulls.nothing_to_compare_have_tag=Seçili dal/etiket aynı. pulls.nothing_to_compare_and_allow_empty_pr=Bu dallar eşittir. Bu Dİ boş olacak. pulls.has_pull_request=`Bu dallar arasında zaten bir değişiklik isteği var: %[2]s#%[3]d` pulls.create=Değişiklik İsteği Oluştur @@ -1750,6 +1839,7 @@ pulls.merge_pull_request=Birleştirme işlemi oluştur pulls.rebase_merge_pull_request=Yeniden yapılandır ve ileri sar pulls.rebase_merge_commit_pull_request=Yeniden yapılandır ve birleştirme işlemi oluştur pulls.squash_merge_pull_request=Ezme işlemi oluştur +pulls.fast_forward_only_merge_pull_request=Sadece ileri sarma pulls.merge_manually=Elle birleştirildi pulls.merge_commit_id=Birleştirme işlemesi kimliği pulls.require_signed_wont_sign=Dal imzalı işlemeler gerektiriyor, ancak bu birleştirme imzalanmayacak @@ -1886,6 +1976,10 @@ wiki.page_name_desc=Bu Viki sayfası için bir ad girin. Bazı özel isimler 'Ho wiki.original_git_entry_tooltip=Kolay bağlantı kullanmak yerine özgün Git dosyasını görüntüle. activity=Aktivite +activity.navbar.pulse=Eğilim +activity.navbar.code_frequency=Kod Frekansı +activity.navbar.contributors=Katkıda Bulunanlar +activity.navbar.recent_commits=Son İşlemeler activity.period.filter_label=Dönem: activity.period.daily=1 gün activity.period.halfweekly=3 gün @@ -1951,7 +2045,10 @@ activity.git_stats_and_deletions=ve activity.git_stats_deletion_1=%d silme oldu activity.git_stats_deletion_n=%d silme oldu +contributors.contribution_type.filter_label=Katkı türü: contributors.contribution_type.commits=İşleme +contributors.contribution_type.additions=Eklemeler +contributors.contribution_type.deletions=Silmeler settings=Ayarlar settings.desc=Ayarlar, deponun ayarlarını yönetebileceğiniz yerdir @@ -1979,6 +2076,7 @@ settings.mirror_settings.docs.doc_link_title=Depoların yansısını nasıl olu settings.mirror_settings.docs.doc_link_pull_section=belgelerin "uzak bir depodan çekmek" bölümü. settings.mirror_settings.docs.pulling_remote_title=Uzak bir depodan çekmek settings.mirror_settings.mirrored_repository=Yansıtılmış depo +settings.mirror_settings.pushed_repository=İtilmiş depo settings.mirror_settings.direction=Yön settings.mirror_settings.direction.pull=Çek settings.mirror_settings.direction.push=Gönder @@ -2000,6 +2098,9 @@ settings.branches.add_new_rule=Yeni Kural Ekle settings.advanced_settings=Gelişmiş Ayarlar settings.wiki_desc=Depo Wiki'sini Etkinkleştir settings.use_internal_wiki=Dahili Wiki Kullan +settings.default_wiki_branch_name=Varsayılan Viki Dal Adı +settings.default_wiki_everyone_access=Oturum açmış kullanıcılar için Varsayılan Erişim İzinleri: +settings.failed_to_change_default_wiki_branch=Varsayılan viki dalı değiştirilemedi. settings.use_external_wiki=Harici Wiki Kullan settings.external_wiki_url=Harici Wiki bağlantısı settings.external_wiki_url_error=Harici wiki URL'si geçerli bir URL değil. @@ -2030,6 +2131,9 @@ settings.pulls.default_allow_edits_from_maintainers=Bakımcıların düzenlemele settings.releases_desc=Depo Sürümlerini Etkinleştir settings.packages_desc=Depo Paket Kütüğünü Etkinleştir settings.projects_desc=Depo Projelerini Etkinleştir +settings.projects_mode_desc=Proje Modu (ne tür projeler görüntülensin) +settings.projects_mode_repo=Sadece depo projeleri +settings.projects_mode_owner=Sadece kullanıcı veya organizasyon projeleri settings.projects_mode_all=Tüm projeler settings.actions_desc=Depo İşlemlerini Etkinleştir settings.admin_settings=Yönetici Ayarları @@ -2056,6 +2160,7 @@ settings.convert_fork_succeed=Çatal normal bir depoya dönüştürüldü. settings.transfer=Sahipliği Aktar settings.transfer.rejected=Depo aktarımı reddedildi. settings.transfer.success=Depo aktarımı başarıyla tamamlandı. +settings.transfer.blocked_user=Depo transfer edilemiyor, yeni sahibi tarafından engellenmişsiniz. settings.transfer_abort=Aktarımı iptal et settings.transfer_abort_invalid=Var olmayan bir depo aktarımını iptal edemezsiniz. settings.transfer_abort_success=%s tarafına yapılan depo aktarımı başarıyla iptal edildi. @@ -2101,6 +2206,7 @@ settings.add_collaborator_success=Katkıcı eklendi. settings.add_collaborator_inactive_user=Etkin olmayan bir kullanıcı katkıcı olarak eklenemez. settings.add_collaborator_owner=Bir sahip katkıcı olarak eklenemez. settings.add_collaborator_duplicate=Katkıcı bu depoya zaten eklenmiş. +settings.add_collaborator.blocked_user=Katkıcı depo sahibi tarafından engellenmiş veya depo sahibini engellemiş. settings.delete_collaborator=Sil settings.collaborator_deletion=Katkıcıyı Sil settings.collaborator_deletion_desc=Bir katkıcıyı silmek, bu depoya erişimini iptal edecektir. Devam et? @@ -2285,6 +2391,8 @@ settings.protect_approvals_whitelist_users=Beyaz listedeki incelemeciler: settings.protect_approvals_whitelist_teams=Gözden geçirme için beyaz listedeki takımlar: 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.ignore_stale_approvals=Eskimiş onayları yoksay +settings.ignore_stale_approvals_desc=Daha eski işlemelere (eski incelemelere) yapılmış olan onayları, Dİ'nin kaç onayı olduğunu belirlerken sayma. Eskimiş incelemeler atıldıysa bu ilgisizdir. settings.require_signed_commits=İmzalı İşleme Gerekli settings.require_signed_commits_desc=Reddetme, onlar imzasızsa veya doğrulanamazsa bu dala gönderir. settings.protect_branch_name_pattern=Korunmuş Dal Adı Deseni @@ -2340,6 +2448,7 @@ settings.archive.error=Depoyu arşivlemeye çalışırken bir hata oluştu. Daha 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.mirrors_unavailable=Depo arşivlenmişse yansılar 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. @@ -2536,8 +2645,16 @@ find_file.no_matching=Eşleşen dosya bulunamadı error.csv.too_large=Bu dosya çok büyük olduğu için işlenemiyor. error.csv.unexpected=%d satırı ve %d sütununda beklenmeyen bir karakter içerdiğinden bu dosya işlenemiyor. error.csv.invalid_field_count=%d satırında yanlış sayıda alan olduğundan bu dosya işlenemiyor. +error.broken_git_hook=Bu deponun Git İstemcileri bozuk gibi gözüküyor. Onarmak için lütfen belgelere bakın, daha sonra durumu yenilemek için bazı işlemeler itin. [graphs] +component_loading=%s yükleniyor... +component_loading_failed=%s yüklenemedi +component_loading_info=Bu biraz sürebilir… +component_failed_to_load=Beklenmedik bir hata oluştu. +code_frequency.what=kod frekansı +contributors.what=katkılar +recent_commits.what=son işlemeler [org] org_name_holder=Organizasyon Adı @@ -2651,6 +2768,7 @@ teams.add_nonexistent_repo=Eklemeye çalıştığınz depo mevcut değil. Lütfe teams.add_duplicate_users=Kullanıcı zaten takımın üyesi. teams.repos.none=Bu takım tarafından hiçbir depoya erişilemedi. teams.members.none=Bu takımda üye yok. +teams.members.blocked_user=Kullanıcı eklenemiyor, çünkü organizasyon tarafından engellenmiş. teams.specific_repositories=Belirli depolar teams.specific_repositories_helper=Üyeler, yalnızca takıma açıkça eklenen depolara erişebilir. Bunu seçmek, Tüm depolarla zaten eklenmiş olan depoları otomatik olarak kaldırmaz. teams.all_repositories=Tüm depolar @@ -2663,7 +2781,9 @@ teams.invite.by=%s tarafından davet edildi teams.invite.description=Takıma katılmak için aşağıdaki düğmeye tıklayın. [admin] +maintenance=Bakım dashboard=Pano +self_check=Öz Denetim identity_access=Kimlik ve Erişim users=Kullanıcı Hesapları organizations=Organizasyonlar @@ -2685,6 +2805,7 @@ settings=Yönetici Ayarları dashboard.new_version_hint=Gitea %s şimdi hazır, %s çalıştırıyorsunuz. Ayrıntılar için blog'a bakabilirsiniz. dashboard.statistic=Özet +dashboard.maintenance_operations=Bakım İşlemleri dashboard.system_status=Sistem Durumu dashboard.operation_name=İşlem Adı dashboard.operation_switch=Geç @@ -2710,6 +2831,7 @@ 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.sync_repo_tags=Etiketleri git verisinden veritabanına eşitle 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 @@ -2764,6 +2886,7 @@ 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.sync_tag.started=Etiket eşitlemesi başladı dashboard.rebuild_issue_indexer=Konu indeksini yeniden oluştur users.user_manage_panel=Kullanıcı Hesap Yönetimi @@ -2968,11 +3091,14 @@ auths.tips=İpuçları auths.tips.oauth2.general=OAuth2 Kimlik Doğrulama auths.tips.oauth2.general.tip=Yeni bir OAuth2 kimlik doğrulama kaydederken, geri çağırma/yönlendirme URL'si şu olmalıdır: auths.tip.oauth2_provider=OAuth2 Sağlayıcısı +auths.tip.bitbucket=https://bitbucket.org/account/user/{your-username}/oauth-consumers/new sayfasında yeni bir OAuth tüketicisi kaydedin ve 'Hesap' - 'Oku' iznini ekleyin auths.tip.nextcloud=Aşağıdaki "Ayarlar -> Güvenlik -> OAuth 2.0 istemcisi" menüsünü kullanarak örneğinize yeni bir OAuth tüketicisi kaydedin auths.tip.dropbox=https://www.dropbox.com/developers/apps adresinde yeni bir uygulama oluştur auths.tip.facebook=https://developers.facebook.com/apps adresinde yeni bir uygulama kaydedin ve "Facebook Giriş" ürününü ekleyin auths.tip.github=https://github.com/settings/applications/new adresinde yeni bir OAuth uygulaması kaydedin +auths.tip.gitlab_new=https://gitlab.com/-/profile/applications adresinde yeni bir uygulama kaydedin auths.tip.google_plus=OAuth2 istemci kimlik bilgilerini https://console.developers.google.com/ adresindeki Google API konsolundan edinin +auths.tip.openid_connect=Bitiş noktalarını belirlemek için OpenID Connect Discovery URL'sini (https://{server}/.well-known/openid-configuration) kullanın auths.tip.twitter=https://dev.twitter.com/apps adresine gidin, bir uygulama oluşturun ve “Bu uygulamanın Twitter ile oturum açmak için kullanılmasına izin ver” seçeneğinin etkin olduğundan emin olun auths.tip.discord=https://discordapp.com/developers/applications/me adresinde yeni bir uygulama kaydedin auths.tip.gitea=Yeni bir OAuth2 uygulaması kaydedin. Rehber https://docs.gitea.com/development/oauth2-provider adresinde bulunabilir @@ -3106,6 +3232,7 @@ config.picture_config=Resim ve Avatar Yapılandırması config.picture_service=Resim Servisi config.disable_gravatar=Gravatar Hizmet Dışı config.enable_federated_avatar=Birleştirilmiş Avatarları Etkinleştir +config.open_with_editor_app_help=Klon menüsü için "Birlikte aç" düzenleyicileri. Boş bırakılırsa, varsayılan kullanılacaktır. Varsayılanı görmek için genişletin. config.git_config=Git Yapılandırması config.git_disable_diff_highlight=Değişiklik Sözdizimi Vurgusunu Devre Dışı Bırak @@ -3184,6 +3311,13 @@ notices.desc=Açıklama notices.op=İşlem notices.delete_success=Sistem bildirimleri silindi. +self_check.no_problem_found=Henüz bir sorun bulunmadı. +self_check.startup_warnings=Başlangıç uyarıları: +self_check.database_collation_mismatch=Veritabanının şu harmanlamayı kullanmasını bekle: %s +self_check.database_collation_case_insensitive=Veritabanı %s harmanlamasını kullanıyor, bu duyarsız bir harmanlamadır. Her ne kadar Gitea bununla çalışabilse de, beklendiği gibi çalışmadığı nadir durumlar ortaya çıkabilir. +self_check.database_inconsistent_collation_columns=Veritabanı %s harmanlamasını kullanıyor, ancak bu sütunlar uyumsuz harmanlamalar kullanıyor. Bu beklenmedik sorunlar oluşturabilir. +self_check.database_fix_mysql=MySQL/MariaDB kullanıcıları "gitea doctor convert" komutunu harmanlama sorunlarını çözmek için kullanabilir veya "ALTER ... COLLATE ..." SQL'lerini şahsen çalıştırarak sorunu çözebilirler. +self_check.database_fix_mssql=MSSQL kullanıcıları sorunu şu an sadece "ALTER ... COLLATE ..." SQL'lerini şahsen çalıştırarak çözebilirler. [action] create_repo=depo %s oluşturuldu @@ -3371,6 +3505,7 @@ rpm.distros.suse=SUSE tabanlı dağıtımlarda rpm.install=Paketi kurmak için, aşağıdaki komutu çalıştırın: rpm.repository=Depo Bilgisi rpm.repository.architectures=Mimariler +rpm.repository.multiple_groups=Bu paket birçok grupta mevcut. rubygems.install=Paketi gem ile kurmak için, şu komutu çalıştırın: rubygems.install2=veya paketi Gemfile dosyasına ekleyin: rubygems.dependencies.runtime=Çalışma Zamanı Bağımlılıkları @@ -3497,12 +3632,15 @@ runs.scheduled=Zamanlanmış runs.pushed_by=iten runs.invalid_workflow_helper=İş akışı yapılandırma dosyası geçersiz. Lütfen yapılandırma dosyanızı denetleyin: %s runs.no_matching_online_runner_helper=Şu etiket ile eşleşen çevrimiçi çalıştırıcı bulunamadı: %s +runs.no_job_without_needs=İş akışı en azından bağımlılığı olmayan bir görev içermelidir. runs.actor=Aktör runs.status=Durum runs.actors_no_select=Tüm aktörler runs.status_no_select=Tüm durumlar runs.no_results=Eşleşen sonuç yok. runs.no_workflows=Henüz hiç bir iş akışı yok. +runs.no_workflows.quick_start=Gitea İşlemlerini nasıl başlatacağınızı bilmiyor musunuz? Hızlı başlangıç kılavuzuna bakabilirsiniz. +runs.no_workflows.documentation=Gitea İşlemleri hakkında daha fazla bilgi için, belgelere bakabilirsiniz. runs.no_runs=İş akışı henüz hiç çalıştırılmadı. runs.empty_commit_message=(boş işleme iletisi) @@ -3521,6 +3659,7 @@ variables.none=Henüz hiçbir değişken yok. variables.deletion=Değişkeni kaldır variables.deletion.description=Bir değişkeni kaldırma kalıcıdır ve geri alınamaz. Devam edilsin mi? variables.description=Değişkenler belirli işlemlere aktarılacaktır, bunun dışında okunamaz. +variables.id_not_exist=%d kimlikli değişken mevcut değil. variables.edit=Değişkeni Düzenle variables.deletion.failed=Değişken kaldırılamadı. variables.deletion.success=Değişken kaldırıldı. diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini index fcc34e9177..aeba11fb9a 100644 --- a/options/locale/locale_zh-CN.ini +++ b/options/locale/locale_zh-CN.ini @@ -164,6 +164,8 @@ search=搜索... type_tooltip=搜索类型 fuzzy=模糊 fuzzy_tooltip=包含近似匹配搜索词的结果 +exact=精确 +exact_tooltip=仅包含精确匹配搜索词的结果 repo_kind=搜索仓库... user_kind=搜索用户... org_kind=搜索组织... @@ -177,6 +179,8 @@ branch_kind=搜索分支... commit_kind=搜索提交记录... runner_kind=搜索runners... no_results=未找到匹配结果 +issue_kind=搜索工单... +pull_kind=搜索合并请求... keyword_search_unavailable=按关键字搜索当前不可用。请联系站点管理员。 [aria] @@ -712,6 +716,7 @@ cancel=取消操作 language=界面语言 ui=主题 hidden_comment_types=隐藏的评论类型 +hidden_comment_types_description=此处选中的注释类型不会显示在问题页面中。比如,勾选”标签“删除所有 " 添加/删除的
- +