diff --git a/.deadcode-out b/.deadcode-out index f6a194b17f..a44599b6f1 100644 --- a/.deadcode-out +++ b/.deadcode-out @@ -15,7 +15,6 @@ code.gitea.io/gitea/models ErrUpdateTaskNotExist.Unwrap IsErrSHANotFound IsErrMergeDivergingFastForwardOnly - GetYamlFixturesAccess code.gitea.io/gitea/models/actions ScheduleList.GetUserIDs @@ -137,9 +136,6 @@ code.gitea.io/gitea/modules/git AddChangesWithArgs CommitChanges CommitChangesWithArgs - IsErrExecTimeout - ErrExecTimeout.Error - ErrUnsupportedVersion.Error SetUpdateHook openRepositoryWithDefaultContext IsTagExist @@ -173,6 +169,9 @@ code.gitea.io/gitea/modules/json StdJSON.NewDecoder StdJSON.Indent +code.gitea.io/gitea/modules/log + NewEventWriterBuffer + code.gitea.io/gitea/modules/markup GetRendererByType RenderString @@ -247,9 +246,13 @@ code.gitea.io/gitea/modules/translation MockLocale.TrString MockLocale.Tr MockLocale.TrN + MockLocale.TrPluralString MockLocale.TrSize MockLocale.PrettyNumber +code.gitea.io/gitea/modules/util + OptionalArg + code.gitea.io/gitea/modules/util/filebuffer CreateFromReader @@ -289,9 +292,6 @@ code.gitea.io/gitea/services/pull code.gitea.io/gitea/services/repository IsErrForkAlreadyExist -code.gitea.io/gitea/services/repository/archiver - ArchiveRepository - code.gitea.io/gitea/services/repository/files ContentType.String GetFileResponseFromCommit diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index da649017ae..4549974afd 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -6,7 +6,7 @@ "ghcr.io/devcontainers/features/node:1": { "version": "20" }, - "ghcr.io/devcontainers/features/git-lfs:1.2.1": {}, + "ghcr.io/devcontainers/features/git-lfs:1.2.3": {}, "ghcr.io/devcontainers-contrib/features/poetry:2": {}, "ghcr.io/devcontainers/features/python:1": { "version": "3.12" diff --git a/.dockerignore b/.dockerignore index a1611a1ca5..5e7a893014 100644 --- a/.dockerignore +++ b/.dockerignore @@ -34,6 +34,7 @@ _testmain.go *coverage.out coverage.all +coverage/ cpu.out /modules/migration/bindata.go diff --git a/.envrc b/.envrc.example similarity index 100% rename from .envrc rename to .envrc.example diff --git a/.eslintrc.yaml b/.eslintrc.yaml deleted file mode 100644 index db85b143dd..0000000000 --- a/.eslintrc.yaml +++ /dev/null @@ -1,803 +0,0 @@ -root: true -reportUnusedDisableDirectives: true - -ignorePatterns: - - /web_src/js/vendor - - /web_src/fomantic - - /public/assets/js - -parserOptions: - sourceType: module - ecmaVersion: latest - -plugins: - - "@eslint-community/eslint-plugin-eslint-comments" - - "@stylistic/eslint-plugin-js" - - "@vitest" - - eslint-plugin-array-func - - eslint-plugin-github - - eslint-plugin-i - - eslint-plugin-no-jquery - - eslint-plugin-no-use-extend-native - - eslint-plugin-regexp - - eslint-plugin-sonarjs - - eslint-plugin-unicorn - - eslint-plugin-vitest-globals - - eslint-plugin-wc - -env: - es2024: true - node: true - -overrides: - - files: ["web_src/**/*"] - globals: - __webpack_public_path__: true - process: false # https://github.com/webpack/webpack/issues/15833 - - files: ["web_src/**/*", "docs/**/*"] - env: - browser: true - node: false - - files: ["web_src/**/*worker.*"] - env: - worker: true - rules: - no-restricted-globals: [2, addEventListener, blur, close, closed, confirm, defaultStatus, defaultstatus, error, event, external, find, focus, frameElement, frames, history, innerHeight, innerWidth, isFinite, isNaN, length, locationbar, menubar, moveBy, moveTo, name, onblur, onerror, onfocus, onload, onresize, onunload, open, opener, opera, outerHeight, outerWidth, pageXOffset, pageYOffset, parent, print, removeEventListener, resizeBy, resizeTo, screen, screenLeft, screenTop, screenX, screenY, scroll, scrollbars, scrollBy, scrollTo, scrollX, scrollY, status, statusbar, stop, toolbar, top] - - files: ["*.config.*"] - rules: - i/no-unused-modules: [0] - - files: ["**/*.test.*", "web_src/js/test/setup.js"] - env: - vitest-globals/env: true - rules: - "@vitest/consistent-test-filename": [0] - "@vitest/consistent-test-it": [0] - "@vitest/expect-expect": [0] - "@vitest/max-expects": [0] - "@vitest/max-nested-describe": [0] - "@vitest/no-alias-methods": [0] - "@vitest/no-commented-out-tests": [0] - "@vitest/no-conditional-expect": [0] - "@vitest/no-conditional-in-test": [0] - "@vitest/no-conditional-tests": [0] - "@vitest/no-disabled-tests": [0] - "@vitest/no-done-callback": [0] - "@vitest/no-duplicate-hooks": [0] - "@vitest/no-focused-tests": [0] - "@vitest/no-hooks": [0] - "@vitest/no-identical-title": [2] - "@vitest/no-interpolation-in-snapshots": [0] - "@vitest/no-large-snapshots": [0] - "@vitest/no-mocks-import": [0] - "@vitest/no-restricted-matchers": [0] - "@vitest/no-restricted-vi-methods": [0] - "@vitest/no-standalone-expect": [0] - "@vitest/no-test-prefixes": [0] - "@vitest/no-test-return-statement": [0] - "@vitest/prefer-called-with": [0] - "@vitest/prefer-comparison-matcher": [0] - "@vitest/prefer-each": [0] - "@vitest/prefer-equality-matcher": [0] - "@vitest/prefer-expect-resolves": [0] - "@vitest/prefer-hooks-in-order": [0] - "@vitest/prefer-hooks-on-top": [2] - "@vitest/prefer-lowercase-title": [0] - "@vitest/prefer-mock-promise-shorthand": [0] - "@vitest/prefer-snapshot-hint": [0] - "@vitest/prefer-spy-on": [0] - "@vitest/prefer-strict-equal": [0] - "@vitest/prefer-to-be": [0] - "@vitest/prefer-to-be-falsy": [0] - "@vitest/prefer-to-be-object": [0] - "@vitest/prefer-to-be-truthy": [0] - "@vitest/prefer-to-contain": [0] - "@vitest/prefer-to-have-length": [0] - "@vitest/prefer-todo": [0] - "@vitest/require-hook": [0] - "@vitest/require-to-throw-message": [0] - "@vitest/require-top-level-describe": [0] - "@vitest/valid-describe-callback": [2] - "@vitest/valid-expect": [2] - "@vitest/valid-title": [2] - - files: ["web_src/js/modules/fetch.js", "web_src/js/standalone/**/*"] - rules: - no-restricted-syntax: [2, WithStatement, ForInStatement, LabeledStatement, SequenceExpression] - -rules: - "@eslint-community/eslint-comments/disable-enable-pair": [2] - "@eslint-community/eslint-comments/no-aggregating-enable": [2] - "@eslint-community/eslint-comments/no-duplicate-disable": [2] - "@eslint-community/eslint-comments/no-restricted-disable": [0] - "@eslint-community/eslint-comments/no-unlimited-disable": [2] - "@eslint-community/eslint-comments/no-unused-disable": [2] - "@eslint-community/eslint-comments/no-unused-enable": [2] - "@eslint-community/eslint-comments/no-use": [0] - "@eslint-community/eslint-comments/require-description": [0] - "@stylistic/js/array-bracket-newline": [0] - "@stylistic/js/array-bracket-spacing": [2, never] - "@stylistic/js/array-element-newline": [0] - "@stylistic/js/arrow-parens": [2, always] - "@stylistic/js/arrow-spacing": [2, {before: true, after: true}] - "@stylistic/js/block-spacing": [0] - "@stylistic/js/brace-style": [2, 1tbs, {allowSingleLine: true}] - "@stylistic/js/comma-dangle": [2, always-multiline] - "@stylistic/js/comma-spacing": [2, {before: false, after: true}] - "@stylistic/js/comma-style": [2, last] - "@stylistic/js/computed-property-spacing": [2, never] - "@stylistic/js/dot-location": [2, property] - "@stylistic/js/eol-last": [2] - "@stylistic/js/function-call-spacing": [2, never] - "@stylistic/js/function-call-argument-newline": [0] - "@stylistic/js/function-paren-newline": [0] - "@stylistic/js/generator-star-spacing": [0] - "@stylistic/js/implicit-arrow-linebreak": [0] - "@stylistic/js/indent": [2, 2, {ignoreComments: true, SwitchCase: 1}] - "@stylistic/js/key-spacing": [2] - "@stylistic/js/keyword-spacing": [2] - "@stylistic/js/linebreak-style": [2, unix] - "@stylistic/js/lines-around-comment": [0] - "@stylistic/js/lines-between-class-members": [0] - "@stylistic/js/max-len": [0] - "@stylistic/js/max-statements-per-line": [0] - "@stylistic/js/multiline-ternary": [0] - "@stylistic/js/new-parens": [2] - "@stylistic/js/newline-per-chained-call": [0] - "@stylistic/js/no-confusing-arrow": [0] - "@stylistic/js/no-extra-parens": [0] - "@stylistic/js/no-extra-semi": [2] - "@stylistic/js/no-floating-decimal": [0] - "@stylistic/js/no-mixed-operators": [0] - "@stylistic/js/no-mixed-spaces-and-tabs": [2] - "@stylistic/js/no-multi-spaces": [2, {ignoreEOLComments: true, exceptions: {Property: true}}] - "@stylistic/js/no-multiple-empty-lines": [2, {max: 1, maxEOF: 0, maxBOF: 0}] - "@stylistic/js/no-tabs": [2] - "@stylistic/js/no-trailing-spaces": [2] - "@stylistic/js/no-whitespace-before-property": [2] - "@stylistic/js/nonblock-statement-body-position": [2] - "@stylistic/js/object-curly-newline": [0] - "@stylistic/js/object-curly-spacing": [2, never] - "@stylistic/js/object-property-newline": [0] - "@stylistic/js/one-var-declaration-per-line": [0] - "@stylistic/js/operator-linebreak": [2, after] - "@stylistic/js/padded-blocks": [2, never] - "@stylistic/js/padding-line-between-statements": [0] - "@stylistic/js/quote-props": [0] - "@stylistic/js/quotes": [2, single, {avoidEscape: true, allowTemplateLiterals: true}] - "@stylistic/js/rest-spread-spacing": [2, never] - "@stylistic/js/semi": [2, always, {omitLastInOneLineBlock: true}] - "@stylistic/js/semi-spacing": [2, {before: false, after: true}] - "@stylistic/js/semi-style": [2, last] - "@stylistic/js/space-before-blocks": [2, always] - "@stylistic/js/space-before-function-paren": [2, {anonymous: ignore, named: never, asyncArrow: always}] - "@stylistic/js/space-in-parens": [2, never] - "@stylistic/js/space-infix-ops": [2] - "@stylistic/js/space-unary-ops": [2] - "@stylistic/js/spaced-comment": [2, always] - "@stylistic/js/switch-colon-spacing": [2] - "@stylistic/js/template-curly-spacing": [2, never] - "@stylistic/js/template-tag-spacing": [2, never] - "@stylistic/js/wrap-iife": [2, inside] - "@stylistic/js/wrap-regex": [0] - "@stylistic/js/yield-star-spacing": [2, after] - accessor-pairs: [2] - array-callback-return: [2, {checkForEach: true}] - array-func/avoid-reverse: [2] - array-func/from-map: [2] - array-func/no-unnecessary-this-arg: [2] - array-func/prefer-array-from: [2] - array-func/prefer-flat-map: [0] # handled by unicorn/prefer-array-flat-map - array-func/prefer-flat: [0] # handled by unicorn/prefer-array-flat - arrow-body-style: [0] - block-scoped-var: [2] - camelcase: [0] - capitalized-comments: [0] - class-methods-use-this: [0] - complexity: [0] - consistent-return: [0] - consistent-this: [0] - constructor-super: [2] - curly: [0] - default-case-last: [2] - default-case: [0] - default-param-last: [0] - dot-notation: [0] - eqeqeq: [2] - for-direction: [2] - func-name-matching: [2] - func-names: [0] - func-style: [0] - getter-return: [2] - github/a11y-aria-label-is-well-formatted: [0] - github/a11y-no-title-attribute: [0] - github/a11y-no-visually-hidden-interactive-element: [0] - github/a11y-role-supports-aria-props: [0] - github/a11y-svg-has-accessible-name: [0] - github/array-foreach: [0] - github/async-currenttarget: [2] - github/async-preventdefault: [2] - github/authenticity-token: [0] - github/get-attribute: [0] - github/js-class-name: [0] - github/no-blur: [0] - github/no-d-none: [0] - github/no-dataset: [2] - github/no-dynamic-script-tag: [2] - github/no-implicit-buggy-globals: [2] - github/no-inner-html: [0] - github/no-innerText: [2] - github/no-then: [2] - github/no-useless-passive: [2] - github/prefer-observers: [2] - github/require-passive-events: [2] - github/unescaped-html-literal: [0] - grouped-accessor-pairs: [2] - guard-for-in: [0] - id-blacklist: [0] - id-length: [0] - id-match: [0] - i/consistent-type-specifier-style: [0] - i/default: [0] - i/dynamic-import-chunkname: [0] - i/export: [2] - i/exports-last: [0] - i/extensions: [2, always, {ignorePackages: true}] - i/first: [2] - i/group-exports: [0] - i/max-dependencies: [0] - i/named: [2] - i/namespace: [0] - i/newline-after-import: [0] - i/no-absolute-path: [0] - i/no-amd: [2] - i/no-anonymous-default-export: [0] - i/no-commonjs: [2] - i/no-cycle: [2, {ignoreExternal: true, maxDepth: 1}] - i/no-default-export: [0] - i/no-deprecated: [0] - i/no-dynamic-require: [0] - i/no-empty-named-blocks: [2] - i/no-extraneous-dependencies: [2] - i/no-import-module-exports: [0] - i/no-internal-modules: [0] - i/no-mutable-exports: [0] - i/no-named-as-default-member: [0] - i/no-named-as-default: [2] - i/no-named-default: [0] - i/no-named-export: [0] - i/no-namespace: [0] - i/no-nodejs-modules: [0] - i/no-relative-packages: [0] - i/no-relative-parent-imports: [0] - i/no-restricted-paths: [0] - i/no-self-import: [2] - i/no-unassigned-import: [0] - i/no-unresolved: [2, {commonjs: true, ignore: ["\\?.+$", ^vitest/]}] - i/no-unused-modules: [2, {unusedExports: true}] - i/no-useless-path-segments: [2, {commonjs: true}] - i/no-webpack-loader-syntax: [2] - i/order: [0] - i/prefer-default-export: [0] - i/unambiguous: [0] - init-declarations: [0] - line-comment-position: [0] - logical-assignment-operators: [0] - max-classes-per-file: [0] - max-depth: [0] - max-lines-per-function: [0] - max-lines: [0] - max-nested-callbacks: [0] - max-params: [0] - max-statements: [0] - multiline-comment-style: [2, separate-lines] - new-cap: [0] - no-alert: [0] - no-array-constructor: [2] - no-async-promise-executor: [0] - no-await-in-loop: [0] - no-bitwise: [0] - no-buffer-constructor: [0] - no-caller: [2] - no-case-declarations: [2] - no-class-assign: [2] - no-compare-neg-zero: [2] - no-cond-assign: [2, except-parens] - no-console: [1, {allow: [debug, info, warn, error]}] - no-const-assign: [2] - no-constant-binary-expression: [2] - no-constant-condition: [0] - no-constructor-return: [2] - no-continue: [0] - no-control-regex: [0] - no-debugger: [1] - no-delete-var: [2] - no-div-regex: [0] - no-dupe-args: [2] - no-dupe-class-members: [2] - no-dupe-else-if: [2] - no-dupe-keys: [2] - no-duplicate-case: [2] - no-duplicate-imports: [2] - no-else-return: [2] - no-empty-character-class: [2] - no-empty-function: [0] - no-empty-pattern: [2] - no-empty-static-block: [2] - no-empty: [2, {allowEmptyCatch: true}] - no-eq-null: [2] - no-eval: [2] - no-ex-assign: [2] - no-extend-native: [2] - no-extra-bind: [2] - no-extra-boolean-cast: [2] - no-extra-label: [0] - no-fallthrough: [2] - no-func-assign: [2] - no-global-assign: [2] - no-implicit-coercion: [2] - no-implicit-globals: [0] - no-implied-eval: [2] - no-import-assign: [2] - no-inline-comments: [0] - no-inner-declarations: [2] - no-invalid-regexp: [2] - no-invalid-this: [0] - no-irregular-whitespace: [2] - no-iterator: [2] - no-jquery/no-ajax-events: [2] - no-jquery/no-ajax: [2] - no-jquery/no-and-self: [2] - no-jquery/no-animate-toggle: [2] - no-jquery/no-animate: [2] - no-jquery/no-append-html: [2] - no-jquery/no-attr: [2] - no-jquery/no-bind: [2] - no-jquery/no-box-model: [2] - no-jquery/no-browser: [2] - no-jquery/no-camel-case: [2] - no-jquery/no-class-state: [2] - no-jquery/no-class: [0] - no-jquery/no-clone: [2] - no-jquery/no-closest: [0] - no-jquery/no-constructor-attributes: [2] - no-jquery/no-contains: [2] - no-jquery/no-context-prop: [2] - no-jquery/no-css: [2] - no-jquery/no-data: [0] - no-jquery/no-deferred: [2] - no-jquery/no-delegate: [2] - no-jquery/no-each-collection: [0] - no-jquery/no-each-util: [0] - no-jquery/no-each: [0] - no-jquery/no-error-shorthand: [2] - no-jquery/no-error: [2] - no-jquery/no-escape-selector: [2] - no-jquery/no-event-shorthand: [2] - no-jquery/no-extend: [2] - no-jquery/no-fade: [2] - no-jquery/no-filter: [0] - no-jquery/no-find-collection: [0] - no-jquery/no-find-util: [2] - no-jquery/no-find: [0] - no-jquery/no-fx-interval: [2] - no-jquery/no-global-eval: [2] - no-jquery/no-global-selector: [0] - no-jquery/no-grep: [2] - no-jquery/no-has: [2] - no-jquery/no-hold-ready: [2] - no-jquery/no-html: [0] - no-jquery/no-in-array: [2] - no-jquery/no-is-array: [2] - no-jquery/no-is-empty-object: [2] - no-jquery/no-is-function: [2] - no-jquery/no-is-numeric: [2] - no-jquery/no-is-plain-object: [2] - no-jquery/no-is-window: [2] - no-jquery/no-is: [2] - no-jquery/no-jquery-constructor: [0] - no-jquery/no-live: [2] - no-jquery/no-load-shorthand: [2] - no-jquery/no-load: [2] - no-jquery/no-map-collection: [0] - no-jquery/no-map-util: [2] - no-jquery/no-map: [2] - no-jquery/no-merge: [2] - no-jquery/no-node-name: [2] - no-jquery/no-noop: [2] - no-jquery/no-now: [2] - no-jquery/no-on-ready: [2] - no-jquery/no-other-methods: [0] - no-jquery/no-other-utils: [2] - no-jquery/no-param: [2] - no-jquery/no-parent: [0] - no-jquery/no-parents: [2] - no-jquery/no-parse-html-literal: [2] - no-jquery/no-parse-html: [2] - no-jquery/no-parse-json: [2] - no-jquery/no-parse-xml: [2] - no-jquery/no-prop: [2] - no-jquery/no-proxy: [2] - no-jquery/no-ready-shorthand: [2] - no-jquery/no-ready: [2] - no-jquery/no-selector-prop: [2] - no-jquery/no-serialize: [2] - no-jquery/no-size: [2] - no-jquery/no-sizzle: [0] - no-jquery/no-slide: [2] - no-jquery/no-sub: [2] - no-jquery/no-support: [2] - no-jquery/no-text: [0] - no-jquery/no-trigger: [0] - no-jquery/no-trim: [2] - no-jquery/no-type: [2] - no-jquery/no-unique: [2] - no-jquery/no-unload-shorthand: [2] - no-jquery/no-val: [0] - no-jquery/no-visibility: [2] - no-jquery/no-when: [2] - no-jquery/no-wrap: [2] - no-jquery/variable-pattern: [2] - no-label-var: [2] - no-labels: [0] # handled by no-restricted-syntax - no-lone-blocks: [2] - no-lonely-if: [0] - no-loop-func: [0] - no-loss-of-precision: [2] - no-magic-numbers: [0] - no-misleading-character-class: [2] - no-multi-assign: [0] - no-multi-str: [2] - no-negated-condition: [0] - no-nested-ternary: [0] - no-new-func: [2] - no-new-native-nonconstructor: [2] - no-new-object: [2] - no-new-symbol: [2] - no-new-wrappers: [2] - no-new: [0] - no-nonoctal-decimal-escape: [2] - no-obj-calls: [2] - no-octal-escape: [2] - no-octal: [2] - no-param-reassign: [0] - no-plusplus: [0] - no-promise-executor-return: [0] - no-proto: [2] - no-prototype-builtins: [2] - no-redeclare: [2] - no-regex-spaces: [2] - no-restricted-exports: [0] - no-restricted-globals: [2, addEventListener, blur, close, closed, confirm, defaultStatus, defaultstatus, error, event, external, find, focus, frameElement, frames, history, innerHeight, innerWidth, isFinite, isNaN, length, location, locationbar, menubar, moveBy, moveTo, name, onblur, onerror, onfocus, onload, onresize, onunload, open, opener, opera, outerHeight, outerWidth, pageXOffset, pageYOffset, parent, print, removeEventListener, resizeBy, resizeTo, screen, screenLeft, screenTop, screenX, screenY, scroll, scrollbars, scrollBy, scrollTo, scrollX, scrollY, self, status, statusbar, stop, toolbar, top, __dirname, __filename] - no-restricted-imports: [0] - no-restricted-syntax: [2, WithStatement, ForInStatement, LabeledStatement, SequenceExpression, {selector: "CallExpression[callee.name='fetch']", message: "use modules/fetch.js instead"}] - no-return-assign: [0] - no-script-url: [2] - no-self-assign: [2, {props: true}] - no-self-compare: [2] - no-sequences: [2] - no-setter-return: [2] - no-shadow-restricted-names: [2] - no-shadow: [0] - no-sparse-arrays: [2] - no-template-curly-in-string: [2] - no-ternary: [0] - no-this-before-super: [2] - no-throw-literal: [2] - no-undef-init: [2] - no-undef: [2, {typeof: true}] - no-undefined: [0] - no-underscore-dangle: [0] - no-unexpected-multiline: [2] - no-unmodified-loop-condition: [2] - no-unneeded-ternary: [2] - no-unreachable-loop: [2] - no-unreachable: [2] - no-unsafe-finally: [2] - no-unsafe-negation: [2] - no-unused-expressions: [2] - no-unused-labels: [2] - no-unused-private-class-members: [2] - no-unused-vars: [2, {args: all, argsIgnorePattern: ^_, varsIgnorePattern: ^_, caughtErrorsIgnorePattern: ^_, destructuredArrayIgnorePattern: ^_, ignoreRestSiblings: false}] - no-use-before-define: [2, {functions: false, classes: true, variables: true, allowNamedExports: true}] - no-use-extend-native/no-use-extend-native: [2] - no-useless-backreference: [2] - no-useless-call: [2] - no-useless-catch: [2] - no-useless-computed-key: [2] - no-useless-concat: [2] - no-useless-constructor: [2] - no-useless-escape: [2] - no-useless-rename: [2] - no-useless-return: [2] - no-var: [2] - no-void: [2] - no-warning-comments: [0] - no-with: [0] # handled by no-restricted-syntax - object-shorthand: [2, always] - one-var-declaration-per-line: [0] - one-var: [0] - operator-assignment: [2, always] - operator-linebreak: [2, after] - prefer-arrow-callback: [2, {allowNamedFunctions: true, allowUnboundThis: true}] - prefer-const: [2, {destructuring: all, ignoreReadBeforeAssign: true}] - prefer-destructuring: [0] - prefer-exponentiation-operator: [2] - prefer-named-capture-group: [0] - prefer-numeric-literals: [2] - prefer-object-has-own: [2] - prefer-object-spread: [2] - prefer-promise-reject-errors: [2, {allowEmptyReject: false}] - prefer-regex-literals: [2] - prefer-rest-params: [2] - prefer-spread: [2] - prefer-template: [2] - radix: [2, as-needed] - regexp/confusing-quantifier: [2] - regexp/control-character-escape: [2] - regexp/hexadecimal-escape: [0] - regexp/letter-case: [0] - regexp/match-any: [2] - regexp/negation: [2] - regexp/no-contradiction-with-assertion: [0] - regexp/no-control-character: [0] - regexp/no-dupe-characters-character-class: [2] - regexp/no-dupe-disjunctions: [2] - regexp/no-empty-alternative: [2] - regexp/no-empty-capturing-group: [2] - regexp/no-empty-character-class: [0] - regexp/no-empty-group: [2] - regexp/no-empty-lookarounds-assertion: [2] - regexp/no-empty-string-literal: [2] - regexp/no-escape-backspace: [2] - regexp/no-extra-lookaround-assertions: [0] - regexp/no-invalid-regexp: [2] - regexp/no-invisible-character: [2] - regexp/no-lazy-ends: [2] - regexp/no-legacy-features: [2] - regexp/no-misleading-capturing-group: [0] - regexp/no-misleading-unicode-character: [0] - regexp/no-missing-g-flag: [2] - regexp/no-non-standard-flag: [2] - regexp/no-obscure-range: [2] - regexp/no-octal: [2] - regexp/no-optional-assertion: [2] - regexp/no-potentially-useless-backreference: [2] - regexp/no-standalone-backslash: [2] - regexp/no-super-linear-backtracking: [0] - regexp/no-super-linear-move: [0] - regexp/no-trivially-nested-assertion: [2] - regexp/no-trivially-nested-quantifier: [2] - regexp/no-unused-capturing-group: [0] - regexp/no-useless-assertions: [2] - regexp/no-useless-backreference: [2] - regexp/no-useless-character-class: [2] - regexp/no-useless-dollar-replacements: [2] - regexp/no-useless-escape: [2] - regexp/no-useless-flag: [2] - regexp/no-useless-lazy: [2] - regexp/no-useless-non-capturing-group: [2] - regexp/no-useless-quantifier: [2] - regexp/no-useless-range: [2] - regexp/no-useless-set-operand: [2] - regexp/no-useless-string-literal: [2] - regexp/no-useless-two-nums-quantifier: [2] - regexp/no-zero-quantifier: [2] - regexp/optimal-lookaround-quantifier: [2] - regexp/optimal-quantifier-concatenation: [0] - regexp/prefer-character-class: [0] - regexp/prefer-d: [0] - regexp/prefer-escape-replacement-dollar-char: [0] - regexp/prefer-lookaround: [0] - regexp/prefer-named-backreference: [0] - regexp/prefer-named-capture-group: [0] - regexp/prefer-named-replacement: [0] - regexp/prefer-plus-quantifier: [2] - regexp/prefer-predefined-assertion: [2] - regexp/prefer-quantifier: [0] - regexp/prefer-question-quantifier: [2] - regexp/prefer-range: [2] - regexp/prefer-regexp-exec: [2] - regexp/prefer-regexp-test: [2] - regexp/prefer-result-array-groups: [0] - regexp/prefer-set-operation: [2] - regexp/prefer-star-quantifier: [2] - regexp/prefer-unicode-codepoint-escapes: [2] - regexp/prefer-w: [0] - regexp/require-unicode-regexp: [0] - regexp/simplify-set-operations: [2] - regexp/sort-alternatives: [0] - regexp/sort-character-class-elements: [0] - regexp/sort-flags: [0] - regexp/strict: [2] - regexp/unicode-escape: [0] - regexp/use-ignore-case: [0] - require-atomic-updates: [0] - require-await: [0] - require-unicode-regexp: [0] - require-yield: [2] - sonarjs/cognitive-complexity: [0] - sonarjs/elseif-without-else: [0] - sonarjs/max-switch-cases: [0] - sonarjs/no-all-duplicated-branches: [2] - sonarjs/no-collapsible-if: [0] - sonarjs/no-collection-size-mischeck: [2] - sonarjs/no-duplicate-string: [0] - sonarjs/no-duplicated-branches: [0] - sonarjs/no-element-overwrite: [2] - sonarjs/no-empty-collection: [2] - sonarjs/no-extra-arguments: [2] - sonarjs/no-gratuitous-expressions: [2] - sonarjs/no-identical-conditions: [2] - sonarjs/no-identical-expressions: [2] - sonarjs/no-identical-functions: [2, 5] - sonarjs/no-ignored-return: [2] - sonarjs/no-inverted-boolean-check: [2] - sonarjs/no-nested-switch: [0] - sonarjs/no-nested-template-literals: [0] - sonarjs/no-one-iteration-loop: [2] - sonarjs/no-redundant-boolean: [2] - sonarjs/no-redundant-jump: [2] - sonarjs/no-same-line-conditional: [2] - sonarjs/no-small-switch: [0] - sonarjs/no-unused-collection: [2] - sonarjs/no-use-of-empty-return-value: [2] - sonarjs/no-useless-catch: [2] - sonarjs/non-existent-operator: [2] - sonarjs/prefer-immediate-return: [0] - sonarjs/prefer-object-literal: [0] - sonarjs/prefer-single-boolean-return: [0] - sonarjs/prefer-while: [2] - sort-imports: [0] - sort-keys: [0] - sort-vars: [0] - strict: [0] - symbol-description: [2] - unicode-bom: [2, never] - unicorn/better-regex: [0] - unicorn/catch-error-name: [0] - unicorn/consistent-destructuring: [2] - unicorn/consistent-empty-array-spread: [2] - unicorn/consistent-function-scoping: [2] - unicorn/custom-error-definition: [0] - unicorn/empty-brace-spaces: [2] - unicorn/error-message: [0] - unicorn/escape-case: [0] - unicorn/expiring-todo-comments: [0] - unicorn/explicit-length-check: [0] - unicorn/filename-case: [0] - unicorn/import-index: [0] - unicorn/import-style: [0] - unicorn/new-for-builtins: [2] - unicorn/no-abusive-eslint-disable: [0] - unicorn/no-anonymous-default-export: [0] - unicorn/no-array-callback-reference: [0] - unicorn/no-array-for-each: [2] - unicorn/no-array-method-this-argument: [2] - unicorn/no-array-push-push: [2] - unicorn/no-array-reduce: [2] - unicorn/no-await-expression-member: [0] - unicorn/no-await-in-promise-methods: [2] - unicorn/no-console-spaces: [0] - unicorn/no-document-cookie: [2] - unicorn/no-empty-file: [2] - unicorn/no-for-loop: [0] - unicorn/no-hex-escape: [0] - unicorn/no-instanceof-array: [0] - unicorn/no-invalid-fetch-options: [2] - unicorn/no-invalid-remove-event-listener: [2] - unicorn/no-keyword-prefix: [0] - unicorn/no-length-as-slice-end: [2] - unicorn/no-lonely-if: [2] - unicorn/no-magic-array-flat-depth: [0] - unicorn/no-negated-condition: [0] - unicorn/no-negation-in-equality-check: [2] - unicorn/no-nested-ternary: [0] - unicorn/no-new-array: [0] - unicorn/no-new-buffer: [0] - unicorn/no-null: [0] - unicorn/no-object-as-default-parameter: [0] - unicorn/no-process-exit: [0] - unicorn/no-single-promise-in-promise-methods: [2] - unicorn/no-static-only-class: [2] - unicorn/no-thenable: [2] - unicorn/no-this-assignment: [2] - unicorn/no-typeof-undefined: [2] - unicorn/no-unnecessary-await: [2] - unicorn/no-unnecessary-polyfills: [2] - unicorn/no-unreadable-array-destructuring: [0] - unicorn/no-unreadable-iife: [2] - unicorn/no-unused-properties: [2] - unicorn/no-useless-fallback-in-spread: [2] - unicorn/no-useless-length-check: [2] - unicorn/no-useless-promise-resolve-reject: [2] - unicorn/no-useless-spread: [2] - unicorn/no-useless-switch-case: [2] - unicorn/no-useless-undefined: [0] - unicorn/no-zero-fractions: [2] - unicorn/number-literal-case: [0] - unicorn/numeric-separators-style: [0] - unicorn/prefer-add-event-listener: [2] - unicorn/prefer-array-find: [2] - unicorn/prefer-array-flat-map: [2] - unicorn/prefer-array-flat: [2] - unicorn/prefer-array-index-of: [2] - unicorn/prefer-array-some: [2] - unicorn/prefer-at: [0] - unicorn/prefer-blob-reading-methods: [2] - unicorn/prefer-code-point: [0] - unicorn/prefer-date-now: [2] - unicorn/prefer-default-parameters: [0] - unicorn/prefer-dom-node-append: [2] - unicorn/prefer-dom-node-dataset: [0] - unicorn/prefer-dom-node-remove: [2] - unicorn/prefer-dom-node-text-content: [2] - unicorn/prefer-event-target: [2] - unicorn/prefer-export-from: [0] - unicorn/prefer-includes: [2] - unicorn/prefer-json-parse-buffer: [0] - unicorn/prefer-keyboard-event-key: [2] - unicorn/prefer-logical-operator-over-ternary: [2] - unicorn/prefer-math-trunc: [2] - unicorn/prefer-modern-dom-apis: [0] - unicorn/prefer-modern-math-apis: [2] - unicorn/prefer-module: [2] - unicorn/prefer-native-coercion-functions: [2] - unicorn/prefer-negative-index: [2] - unicorn/prefer-node-protocol: [2] - unicorn/prefer-number-properties: [0] - unicorn/prefer-object-from-entries: [2] - unicorn/prefer-object-has-own: [0] - unicorn/prefer-optional-catch-binding: [2] - unicorn/prefer-prototype-methods: [0] - unicorn/prefer-query-selector: [0] - unicorn/prefer-reflect-apply: [0] - unicorn/prefer-regexp-test: [2] - unicorn/prefer-set-has: [0] - unicorn/prefer-set-size: [2] - unicorn/prefer-spread: [0] - unicorn/prefer-string-raw: [0] - unicorn/prefer-string-replace-all: [0] - unicorn/prefer-string-slice: [0] - unicorn/prefer-string-starts-ends-with: [2] - unicorn/prefer-string-trim-start-end: [2] - unicorn/prefer-structured-clone: [2] - unicorn/prefer-switch: [0] - unicorn/prefer-ternary: [0] - unicorn/prefer-text-content: [2] - unicorn/prefer-top-level-await: [0] - unicorn/prefer-type-error: [0] - unicorn/prevent-abbreviations: [0] - unicorn/relative-url-style: [2] - unicorn/require-array-join-separator: [2] - unicorn/require-number-to-fixed-digits-argument: [2] - unicorn/require-post-message-target-origin: [0] - unicorn/string-content: [0] - unicorn/switch-case-braces: [0] - unicorn/template-indent: [2] - unicorn/text-encoding-identifier-case: [0] - unicorn/throw-new-error: [2] - use-isnan: [2] - valid-typeof: [2, {requireStringLiterals: true}] - vars-on-top: [0] - wc/attach-shadow-constructor: [2] - wc/define-tag-after-class-definition: [0] - wc/expose-class-on-global: [0] - wc/file-name-matches-element: [2] - wc/guard-define-call: [0] - wc/guard-super-call: [2] - wc/max-elements-per-file: [0] - wc/no-child-traversal-in-attributechangedcallback: [2] - wc/no-child-traversal-in-connectedcallback: [2] - wc/no-closed-shadow-root: [2] - wc/no-constructor-attributes: [2] - wc/no-constructor-params: [2] - wc/no-constructor: [2] - wc/no-customized-built-in-elements: [2] - wc/no-exports-with-element: [0] - wc/no-invalid-element-name: [2] - wc/no-invalid-extends: [2] - wc/no-method-prefixed-with-on: [2] - wc/no-self-class: [2] - wc/no-typos: [2] - wc/require-listener-teardown: [2] - wc/tag-name-matches-class: [2] - yoda: [2, never] diff --git a/.forgejo/issue_template/config.yml b/.forgejo/issue_template/config.yml index 0e3caf9280..f2ea8d945a 100644 --- a/.forgejo/issue_template/config.yml +++ b/.forgejo/issue_template/config.yml @@ -1,7 +1,7 @@ contact_links: - name: 🔓 Security Reports url: mailto:security@forgejo.org - about: "Please email (GPG: `A4676E79`) instead of opening a public issue." + about: "Please email (See https://forgejo.org/.well-known/security.txt)." - name: 💬 Matrix Chat Room url: https://matrix.to/#/#forgejo-chat:matrix.org about: Please ask questions and discuss configuration or deployment problems here. diff --git a/.forgejo/testdata/build-release/Dockerfile b/.forgejo/testdata/build-release/Dockerfile index 4ef67d34e0..d10564359e 100644 --- a/.forgejo/testdata/build-release/Dockerfile +++ b/.forgejo/testdata/build-release/Dockerfile @@ -1,4 +1,4 @@ -FROM code.forgejo.org/oci/alpine:3.20 +FROM data.forgejo.org/oci/alpine:3.21 ARG RELEASE_VERSION=unkown LABEL maintainer="contact@forgejo.org" \ org.opencontainers.image.version="${RELEASE_VERSION}" diff --git a/.forgejo/testdata/build-release/go.mod b/.forgejo/testdata/build-release/go.mod index 1c442048b6..729cb6f831 100644 --- a/.forgejo/testdata/build-release/go.mod +++ b/.forgejo/testdata/build-release/go.mod @@ -1,3 +1,3 @@ module code.gitea.io/gitea -go 1.23.2 +go 1.23.3 diff --git a/.forgejo/workflows-composite/apt-install-from/action.yaml b/.forgejo/workflows-composite/apt-install-from/action.yaml new file mode 100644 index 0000000000..615e7cb184 --- /dev/null +++ b/.forgejo/workflows-composite/apt-install-from/action.yaml @@ -0,0 +1,29 @@ +inputs: + packages: + description: 'Packages to install' + required: true + release: + description: 'Release to install from' + default: testing + +runs: + using: "composite" + steps: + - name: setup apt package source + run: | + export DEBIAN_FRONTEND=noninteractive + echo "deb http://deb.debian.org/debian/ ${RELEASE} main" > "/etc/apt/sources.list.d/${RELEASE}.list" + env: + RELEASE: ${{inputs.release}} + - name: install packages + run: | + apt-get update -qq + apt-get -q install -qq -y ${PACKAGES} + env: + PACKAGES: ${{inputs.packages}} + - name: remove temporary package list to prevent using it in other steps + run: | + rm "/etc/apt/sources.list.d/${RELEASE}.list" + apt-get update -qq + env: + RELEASE: ${{inputs.release}} diff --git a/.forgejo/workflows-composite/build-backend/action.yaml b/.forgejo/workflows-composite/build-backend/action.yaml new file mode 100644 index 0000000000..ada372b834 --- /dev/null +++ b/.forgejo/workflows-composite/build-backend/action.yaml @@ -0,0 +1,15 @@ +runs: + using: "composite" + steps: + - run: | + su forgejo -c 'make deps-backend' + - uses: actions/cache@v4 + id: cache-backend + with: + path: ${{github.workspace}}/gitea + key: backend-build-${{ github.sha }} + - if: steps.cache-backend.outputs.cache-hit != 'true' + run: | + su forgejo -c 'make backend' + env: + TAGS: bindata diff --git a/.forgejo/workflows-composite/setup-cache-go/action.yaml b/.forgejo/workflows-composite/setup-cache-go/action.yaml new file mode 100644 index 0000000000..1b1d37bb6b --- /dev/null +++ b/.forgejo/workflows-composite/setup-cache-go/action.yaml @@ -0,0 +1,60 @@ +# SPDX-License-Identifier: MIT +name: 'Forgejo Actions to setup Go and cache dependencies' +author: 'Forgejo authors' +description: | + Wrap the setup-go with improved dependency caching. +inputs: + username: + description: 'User for which to manage the dependency cache' + default: root + +runs: + using: "composite" + steps: + - name: "Install zstd for faster caching" + run: | + apt-get update -qq + apt-get -q install -qq -y zstd + + - name: "Set up Go using setup-go" + uses: https://data.forgejo.org/actions/setup-go@v5 + id: go-version + with: + go-version-file: "go.mod" + # do not cache dependencies, we do this manually + cache: false + + - name: "Get go environment information" + id: go-environment + run: | + export GOROOT="$(go env GOROOT)" + echo "modcache=$(su ${RUN_AS_USER} -c '${GOROOT}/bin/go env GOMODCACHE')" >> "$GITHUB_OUTPUT" + echo "cache=$(su ${RUN_AS_USER} -c '${GOROOT}/bin/go env GOCACHE')" >> "$GITHUB_OUTPUT" + env: + RUN_AS_USER: ${{ inputs.username }} + GO_VERSION: ${{ steps.go-version.outputs.go-version }} + + - name: "Create cache folders with correct permissions (for non-root users)" + if: inputs.username != 'root' + # when the cache is restored, only the permissions of the last part are restored + # so assuming that /home/user exists and we are restoring /home/user/go/pkg/mod, + # both folders will have the correct permissions, but + # /home/user/go and /home/user/go/pkg might be owned by root + run: | + su ${RUN_AS_USER} -c 'mkdir -p "${MODCACHE_DIR}" "${CACHE_DIR}"' + env: + RUN_AS_USER: ${{ inputs.username }} + MODCACHE_DIR: ${{ steps.go-environment.outputs.modcache }} + CACHE_DIR: ${{ steps.go-environment.outputs.cache }} + + - name: "Restore Go dependencies from cache or mark for later caching" + id: cache-deps + uses: actions/cache@v4 + with: + key: setup-cache-go-deps-${{ runner.os }}-${{ inputs.username }}-${{ steps.go-version.outputs.go_version }}-${{ hashFiles('go.sum', 'go.mod') }} + restore-keys: | + setup-cache-go-deps-${{ runner.os }}-${{ inputs.username }}-${{ steps.go-version.outputs.go_version }}- + setup-cache-go-deps-${{ runner.os }}-${{ inputs.username }}- + path: | + ${{ steps.go-environment.outputs.modcache }} + ${{ steps.go-environment.outputs.cache }} diff --git a/.forgejo/workflows-composite/setup-env/action.yaml b/.forgejo/workflows-composite/setup-env/action.yaml new file mode 100644 index 0000000000..f19569a137 --- /dev/null +++ b/.forgejo/workflows-composite/setup-env/action.yaml @@ -0,0 +1,25 @@ +# TODO: +# - [ ] prepare a forgejo ci image with the necessary tools and forgejo user +runs: + using: "composite" + steps: + - name: setup user and permissions + run: | + git config --add safe.directory '*' + # ignore if the user already exists (like with the playwright image) + adduser --quiet --comment forgejo --disabled-password forgejo || true + chown -R forgejo:forgejo . + + - uses: ./.forgejo/workflows-composite/setup-cache-go + with: + username: forgejo + + - name: validate go version + run: | + set -ex + toolchain=$(grep -oP '(?<=toolchain ).+' go.mod) + version=$(go version | cut -d' ' -f3) + if dpkg --compare-versions ${version#go} lt ${toolchain#go}; then + echo "go version too low: $toolchain >= $version" + exit 1 + fi diff --git a/.forgejo/workflows/backport.yml b/.forgejo/workflows/backport.yml index 32a93edbc0..795557dfac 100644 --- a/.forgejo/workflows/backport.yml +++ b/.forgejo/workflows/backport.yml @@ -22,6 +22,8 @@ # `backport/v1.21` label on a merged pull request that can be backported # without conflict. # +name: issue-labels + on: pull_request_target: types: @@ -31,21 +33,21 @@ on: jobs: backporting: if: > - !startsWith(vars.ROLE, 'forgejo-') && ( + ( vars.ROLE == 'forgejo-coding' ) && ( github.event.pull_request.merged && contains(toJSON(github.event.pull_request.labels), 'backport/v') ) runs-on: docker container: - image: 'code.forgejo.org/oci/node:20-bookworm' + image: 'data.forgejo.org/oci/node:20-bookworm' steps: - name: event info run: | cat <<'EOF' ${{ toJSON(github) }} EOF - - uses: https://code.forgejo.org/actions/git-backporting@v4.8.0 + - uses: https://data.forgejo.org/actions/git-backporting@v4.8.4 with: target-branch-pattern: "^backport/(?(v.*))$" strategy: ort diff --git a/.forgejo/workflows/build-release-integration.yml b/.forgejo/workflows/build-release-integration.yml index f5f0d19da3..6410915644 100644 --- a/.forgejo/workflows/build-release-integration.yml +++ b/.forgejo/workflows/build-release-integration.yml @@ -22,13 +22,13 @@ on: jobs: release-simulation: - if: ${{ !startsWith(vars.ROLE, 'forgejo-') }} - runs-on: self-hosted + if: vars.ROLE == 'forgejo-coding' + runs-on: lxc-bookworm steps: - uses: actions/checkout@v4 - id: forgejo - uses: https://code.forgejo.org/actions/setup-forgejo@v1 + uses: https://data.forgejo.org/actions/setup-forgejo@v2.0.4 with: user: root password: admin1234 diff --git a/.forgejo/workflows/build-release.yml b/.forgejo/workflows/build-release.yml index bc74de8248..9d88cb43dd 100644 --- a/.forgejo/workflows/build-release.yml +++ b/.forgejo/workflows/build-release.yml @@ -14,6 +14,12 @@ # secrets.CASCADE_DESTINATION_TOKEN: scope read:user, write:repository, write:issue # vars.CASCADE_DESTINATION_DOER: forgejo-ci # +# vars.SKIP_END_TO_END: `true` or `false` +# It must be `false` (or absent) so https://code.forgejo.org/forgejo/end-to-end is run +# with the newly built release. +# It must be set to `true` when a release is missing, for instance because it was +# removed and failed to upload. +# on: push: tags: 'v[0-9]+.[0-9]+.*' @@ -23,7 +29,7 @@ on: jobs: release: - runs-on: self-hosted + runs-on: lxc-bookworm # root is used for testing, allow it if: vars.ROLE == 'forgejo-integration' || github.repository_owner == 'root' steps: @@ -37,11 +43,11 @@ jobs: repository="${{ github.repository }}" echo "value=${repository##*/}" >> "$GITHUB_OUTPUT" - - uses: https://code.forgejo.org/actions/setup-node@v4 + - uses: https://data.forgejo.org/actions/setup-node@v4 with: node-version: 20 - - uses: https://code.forgejo.org/actions/setup-go@v4 + - uses: https://data.forgejo.org/actions/setup-go@v5 with: go-version-file: "go.mod" @@ -87,7 +93,7 @@ jobs: - name: cache node_modules id: node - uses: https://code.forgejo.org/actions/cache@v4 + uses: https://data.forgejo.org/actions/cache@v4 with: path: | node_modules @@ -158,7 +164,7 @@ jobs: - name: build container & release if: ${{ secrets.TOKEN != '' }} - uses: https://code.forgejo.org/forgejo/forgejo-build-publish/build@v5.1.1 + uses: https://data.forgejo.org/forgejo/forgejo-build-publish/build@v5.3.1 with: forgejo: "${{ env.GITHUB_SERVER_URL }}" owner: "${{ env.GITHUB_REPOSITORY_OWNER }}" @@ -177,7 +183,7 @@ jobs: - name: build rootless container if: ${{ secrets.TOKEN != '' }} - uses: https://code.forgejo.org/forgejo/forgejo-build-publish/build@v5.1.1 + uses: https://data.forgejo.org/forgejo/forgejo-build-publish/build@v5.3.1 with: forgejo: "${{ env.GITHUB_SERVER_URL }}" owner: "${{ env.GITHUB_REPOSITORY_OWNER }}" @@ -195,7 +201,7 @@ jobs: - name: end-to-end tests if: ${{ secrets.TOKEN != '' && vars.ROLE == 'forgejo-integration' && vars.SKIP_END_TO_END != 'true' }} - uses: https://code.forgejo.org/actions/cascading-pr@v2 + uses: https://data.forgejo.org/actions/cascading-pr@v2.2.0 with: origin-url: ${{ env.GITHUB_SERVER_URL }} origin-repo: ${{ github.repository }} diff --git a/.forgejo/workflows/cascade-setup-end-to-end.yml b/.forgejo/workflows/cascade-setup-end-to-end.yml index 404bbe8fa6..710cd27ba4 100644 --- a/.forgejo/workflows/cascade-setup-end-to-end.yml +++ b/.forgejo/workflows/cascade-setup-end-to-end.yml @@ -12,8 +12,10 @@ # whatever is in the default branch instead # # - after it is merged, double check it works by setting the -# run-end-to-end-test on a pull request (any pull request will doe +# run-end-to-end-test on a pull request (any pull request will do) # +name: issue-labels + on: push: branches: @@ -23,42 +25,23 @@ on: - labeled jobs: - info: - if: ${{ !startsWith(vars.ROLE, 'forgejo-') }} - runs-on: docker - container: - image: code.forgejo.org/oci/node:20-bookworm - steps: - - name: event - run: | - echo github.event.pull_request.head.repo.fork = ${{ github.event.pull_request.head.repo.fork }} - echo github.event.action = ${{ github.event.action }} - echo github.event.pull_request.merged = ${{ github.event.pull_request.merged }} - echo github.event.pull_request.labels.*.name - cat <<'EOF' - ${{ toJSON(github.event.pull_request.labels.*.name) }} - EOF - cat <<'EOF' - ${{ toJSON(github.event) }} - EOF - cascade: if: > - !startsWith(vars.ROLE, 'forgejo-') && ( + vars.ROLE == 'forgejo-coding' && ( github.event_name == 'push' || ( - github.event.action == 'label_updated' && contains(github.event.pull_request.labels.*.name, 'run-end-to-end-tests') + github.event.action == 'label_updated' && github.event.label.name == 'run-end-to-end-tests' ) ) runs-on: docker container: - image: code.forgejo.org/oci/node:20-bookworm + image: data.forgejo.org/oci/node:20-bookworm steps: - uses: actions/checkout@v4 with: fetch-depth: '0' show-progress: 'false' - - uses: actions/cascading-pr@v2 + - uses: https://code.forgejo.org/actions/cascading-pr@v2.2.0 with: origin-url: ${{ env.GITHUB_SERVER_URL }} origin-repo: ${{ github.repository }} diff --git a/.forgejo/workflows/e2e.yml b/.forgejo/workflows/e2e.yml deleted file mode 100644 index 9f2fbb0fa2..0000000000 --- a/.forgejo/workflows/e2e.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: e2e - -on: - pull_request: - paths: - - Makefile - - playwright.config.js - - .forgejo/workflows/e2e.yml - - tests/e2e/** - - web_src/js/** - - web_src/css/form.css - - templates/webhook/shared-settings.tmpl - - templates/org/team/new.tmpl - -jobs: - test-e2e: - if: ${{ !startsWith(vars.ROLE, 'forgejo-') }} - runs-on: docker - container: - image: 'code.forgejo.org/oci/playwright:latest' - steps: - - uses: https://code.forgejo.org/actions/checkout@v4 - - uses: https://code.forgejo.org/actions/setup-go@v4 - with: - go-version-file: "go.mod" - - run: | - git config --add safe.directory '*' - chown -R forgejo:forgejo . - - run: | - su forgejo -c 'make deps-frontend frontend deps-backend' - - run: | - su forgejo -c 'make backend' - - run: | - su forgejo -c 'make generate test-e2e-sqlite' - timeout-minutes: 40 - env: - USE_REPO_TEST_DIR: 1 diff --git a/.forgejo/workflows/forgejo-integration-cleanup.yml b/.forgejo/workflows/forgejo-integration-cleanup.yml index 049679a1eb..9cef5fac68 100644 --- a/.forgejo/workflows/forgejo-integration-cleanup.yml +++ b/.forgejo/workflows/forgejo-integration-cleanup.yml @@ -9,7 +9,7 @@ jobs: if: vars.ROLE == 'forgejo-integration' runs-on: docker container: - image: 'code.forgejo.org/oci/node:20-bookworm' + image: 'data.forgejo.org/oci/node:20-bookworm' steps: - name: apt install curl jq diff --git a/.forgejo/workflows/merge-requirements.yml b/.forgejo/workflows/merge-requirements.yml new file mode 100644 index 0000000000..d5270321ad --- /dev/null +++ b/.forgejo/workflows/merge-requirements.yml @@ -0,0 +1,45 @@ +# Copyright 2024 The Forgejo Authors +# SPDX-License-Identifier: MIT + +name: requirements + +on: + pull_request: + types: + - labeled + - edited + - opened + - synchronize + +jobs: + merge-conditions: + if: vars.ROLE == 'forgejo-coding' + runs-on: docker + container: + image: 'data.forgejo.org/oci/node:20-bookworm' + steps: + - name: Debug output + run: | + cat <<'EOF' + ${{ toJSON(github) }} + EOF + - name: Missing test label + if: > + !( + contains(toJSON(github.event.pull_request.labels), 'test/present') + || contains(toJSON(github.event.pull_request.labels), 'test/not-needed') + || contains(toJSON(github.event.pull_request.labels), 'test/manual') + ) + run: | + echo "Test label must be set to either 'present', 'not-needed' or 'manual'." + exit 1 + - name: Missing manual test instructions + if: > + ( + contains(toJSON(github.event.pull_request.labels), 'test/manual') + && !contains(toJSON(github.event.pull_request.body), '# Test') + ) + run: | + echo "Manual test label is set. The PR description needs to contain test steps introduced by a heading like:" + echo "# Testing" + exit 1 diff --git a/.forgejo/workflows/milestone.yml b/.forgejo/workflows/milestone.yml new file mode 100644 index 0000000000..9a51c515d0 --- /dev/null +++ b/.forgejo/workflows/milestone.yml @@ -0,0 +1,24 @@ +# Copyright 2024 The Forgejo Authors +# SPDX-License-Identifier: MIT +# +name: milestone + +on: + pull_request_target: + types: + - closed + +jobs: + set: + if: vars.ROLE == 'forgejo-coding' && github.event.pull_request.merged + runs-on: docker + container: + image: 'data.forgejo.org/oci/ci:1' + steps: + - uses: https://data.forgejo.org/forgejo/set-milestone@v1.0.0 + with: + forgejo: https://codeberg.org + repository: forgejo/forgejo + token: ${{ secrets.SET_MILESTONE_TOKEN }} + pr-number: ${{ github.event.pull_request.number }} + verbose: ${{ vars.SET_MILESTONE_VERBOSE }} diff --git a/.forgejo/workflows/mirror.yml b/.forgejo/workflows/mirror.yml index fd222115ac..888f7ec07d 100644 --- a/.forgejo/workflows/mirror.yml +++ b/.forgejo/workflows/mirror.yml @@ -11,7 +11,7 @@ jobs: if: ${{ secrets.MIRROR_TOKEN != '' }} runs-on: docker container: - image: 'code.forgejo.org/oci/node:20-bookworm' + image: 'data.forgejo.org/oci/node:20-bookworm' steps: - name: git push {v*/,}forgejo run: | diff --git a/.forgejo/workflows/publish-release.yml b/.forgejo/workflows/publish-release.yml index 5de8785ee1..0e75912a3a 100644 --- a/.forgejo/workflows/publish-release.yml +++ b/.forgejo/workflows/publish-release.yml @@ -36,20 +36,20 @@ on: jobs: publish: - runs-on: self-hosted + runs-on: lxc-bookworm if: vars.DOER != '' && vars.FORGEJO != '' && vars.TO_OWNER != '' && vars.FROM_OWNER != '' && secrets.TOKEN != '' steps: - uses: actions/checkout@v4 - name: copy & sign - uses: https://code.forgejo.org/forgejo/forgejo-build-publish/publish@v5 + uses: https://data.forgejo.org/forgejo/forgejo-build-publish/publish@v5.3.1 with: from-forgejo: ${{ vars.FORGEJO }} to-forgejo: ${{ vars.FORGEJO }} from-owner: ${{ vars.FROM_OWNER }} to-owner: ${{ vars.TO_OWNER }} repo: ${{ vars.REPO }} - release-notes: "See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#{ANCHOR}" + release-notes: "See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/release-notes-published/{VERSION}.md" ref-name: ${{ github.ref_name }} sha: ${{ github.sha }} from-token: ${{ secrets.TOKEN }} @@ -59,30 +59,28 @@ jobs: gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }} verbose: ${{ vars.VERBOSE }} - - name: upgrade v*.next.forgejo.org - run: | - export DEBIAN_FRONTEND=noninteractive - apt-get update -qq - apt-get -q install -y -qq curl - version="${{ github.ref_name }}" - version=${version##*v} - major=$(echo $version | sed -E -e 's/^([0-9]+).*/\1/') - # https://forgejo.org/docs/next/developer/infrastructure - curl -o /dev/null -sS https://v$major.next.forgejo.org/.well-known/wakeup-on-logs/forgejo-v$major + - name: get trigger mirror issue + id: mirror + uses: https://data.forgejo.org/infrastructure/issue-action/get@v1.3.0 + with: + forgejo: https://code.forgejo.org + repository: forgejo/forgejo + labels: mirror-trigger - - name: set up go for the DNS update below - if: vars.ROLE == 'forgejo-experimental' && secrets.OVH_APP_KEY != '' - uses: https://code.forgejo.org/actions/setup-go@v4 + - name: trigger the mirror + uses: https://data.forgejo.org/infrastructure/issue-action/set@v1.3.0 with: - go-version-file: "go.mod" - - name: update the _release.experimental DNS record - if: vars.ROLE == 'forgejo-experimental' && secrets.OVH_APP_KEY != '' - uses: https://code.forgejo.org/actions/ovh-dns-update@v1 + forgejo: https://code.forgejo.org + repository: forgejo/forgejo + token: ${{ secrets.LABEL_ISSUE_FORGEJO_MIRROR_TOKEN }} + numbers: ${{ steps.mirror.outputs.numbers }} + label-wait-if-exists: 3600 + label: trigger + + - name: upgrade v*.next.forgejo.org + uses: https://data.forgejo.org/infrastructure/next-digest@v1.1.0 with: - subdomain: _release.experimental - domain: forgejo.com # there is a CNAME from .org to .com (for security reasons) - record-id: 5283602601 - value: v=${{ github.ref_name }} - ovh-app-key: ${{ secrets.OVH_APP_KEY }} - ovh-app-secret: ${{ secrets.OVH_APP_SECRET }} - ovh-consumer-key: ${{ secrets.OVH_CON_KEY }} + url: https://placeholder:${{ secrets.TOKEN_NEXT_DIGEST }}@code.forgejo.org/infrastructure/next-digest + ref_name: '${{ github.ref_name }}' + image: 'codeberg.org/forgejo-experimental/forgejo' + tag_suffix: '-rootless' diff --git a/.forgejo/workflows/release-notes-assistant-milestones.yml b/.forgejo/workflows/release-notes-assistant-milestones.yml index dfe9a33a3c..50b267ec14 100644 --- a/.forgejo/workflows/release-notes-assistant-milestones.yml +++ b/.forgejo/workflows/release-notes-assistant-milestones.yml @@ -6,14 +6,14 @@ on: jobs: release-notes: - if: ${{ !startsWith(vars.ROLE, 'forgejo-') + if: vars.ROLE == 'forgejo-coding' runs-on: docker container: - image: 'code.forgejo.org/oci/node:20-bookworm' + image: 'data.forgejo.org/oci/node:20-bookworm' steps: - - uses: https://code.forgejo.org/actions/checkout@v4 + - uses: https://data.forgejo.org/actions/checkout@v4 - - uses: https://code.forgejo.org/actions/setup-go@v4 + - uses: https://data.forgejo.org/actions/setup-go@v5 with: go-version-file: "go.mod" cache: false diff --git a/.forgejo/workflows/release-notes-assistant.yml b/.forgejo/workflows/release-notes-assistant.yml index 3fed2d08d4..7217bf4d2b 100644 --- a/.forgejo/workflows/release-notes-assistant.yml +++ b/.forgejo/workflows/release-notes-assistant.yml @@ -1,3 +1,5 @@ +name: issue-labels + on: pull_request_target: types: @@ -7,12 +9,12 @@ on: jobs: release-notes: - if: ${{ !startsWith(vars.ROLE, 'forgejo-') && contains(github.event.pull_request.labels.*.name, 'worth a release-note') }} + if: ( vars.ROLE == 'forgejo-coding' ) && contains(github.event.pull_request.labels.*.name, 'worth a release-note') runs-on: docker container: - image: 'code.forgejo.org/oci/node:20-bookworm' + image: 'data.forgejo.org/oci/node:20-bookworm' steps: - - uses: https://code.forgejo.org/actions/checkout@v4 + - uses: https://data.forgejo.org/actions/checkout@v4 - name: event run: | @@ -23,7 +25,7 @@ jobs: ${{ toJSON(github.event) }} EOF - - uses: https://code.forgejo.org/actions/setup-go@v4 + - uses: https://data.forgejo.org/actions/setup-go@v5 with: go-version-file: "go.mod" cache: false diff --git a/.forgejo/workflows/renovate.yml b/.forgejo/workflows/renovate.yml index 400cd453b3..632fb82c19 100644 --- a/.forgejo/workflows/renovate.yml +++ b/.forgejo/workflows/renovate.yml @@ -8,7 +8,9 @@ name: renovate on: push: branches: - - 'renovate/**' # self-test updates + - renovate/** # self-test updates + paths: + - .forgejo/workflows/renovate.yml schedule: - cron: '0 0/2 * * *' workflow_dispatch: @@ -19,15 +21,15 @@ env: jobs: renovate: - if: ${{ secrets.RENOVATE_TOKEN != '' }} + if: vars.ROLE == 'forgejo-coding' && secrets.RENOVATE_TOKEN != '' runs-on: docker container: - image: code.forgejo.org/forgejo-contrib/renovate:38.93.2 + image: data.forgejo.org/renovate/renovate:39.106.0 steps: - name: Load renovate repo cache - uses: https://code.forgejo.org/actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 + uses: https://data.forgejo.org/actions/cache/restore@3624ceb22c1c5a301c8db4169662070a689d9ea8 # v4.1.1 with: path: | .tmp/cache/renovate/repository @@ -60,7 +62,7 @@ jobs: - name: Save renovate repo cache if: always() && env.RENOVATE_DRY_RUN != 'full' - uses: https://code.forgejo.org/actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 + uses: https://data.forgejo.org/actions/cache/save@3624ceb22c1c5a301c8db4169662070a689d9ea8 # v4.1.1 with: path: | .tmp/cache/renovate/repository diff --git a/.forgejo/workflows/testing.yml b/.forgejo/workflows/testing.yml index 563ff3b495..eb3163d3ae 100644 --- a/.forgejo/workflows/testing.yml +++ b/.forgejo/workflows/testing.yml @@ -6,319 +6,270 @@ on: branches: - 'forgejo*' - 'v*/forgejo*' + workflow_dispatch: jobs: backend-checks: - if: ${{ !startsWith(vars.ROLE, 'forgejo-') }} + if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing' runs-on: docker container: - image: 'code.forgejo.org/oci/node:20-bookworm' + image: 'data.forgejo.org/oci/node:20-bookworm' + options: --tmpfs /tmp:exec,noatime steps: - name: event info run: | cat <<'EOF' ${{ toJSON(github) }} EOF - - uses: https://code.forgejo.org/actions/checkout@v4 - - uses: https://code.forgejo.org/actions/setup-go@v4 - with: - go-version-file: "go.mod" - - run: make deps-backend deps-tools - - run: make --always-make -j$(nproc) lint-backend tidy-check swagger-check fmt-check swagger-validate # ensure the "go-licenses" make target runs - - run: | - make backend - env: - TAGS: bindata - - uses: actions/cache@v4 - with: - path: '/workspace/forgejo/forgejo/gitea' - key: backend-build-${{ github.sha }} + - uses: https://data.forgejo.org/actions/checkout@v4 + - uses: ./.forgejo/workflows-composite/setup-env + - run: su forgejo -c 'make deps-backend deps-tools' + - run: su forgejo -c 'make --always-make -j$(nproc) lint-backend tidy-check swagger-check fmt-check swagger-validate' # ensure the "go-licenses" make target runs + - uses: ./.forgejo/workflows-composite/build-backend frontend-checks: - if: ${{ !startsWith(vars.ROLE, 'forgejo-') }} + if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing' runs-on: docker container: - image: 'code.forgejo.org/oci/node:20-bookworm' + image: 'data.forgejo.org/oci/node:20-bookworm' + options: --tmpfs /tmp:exec,noatime steps: - - uses: https://code.forgejo.org/actions/checkout@v4 + - uses: https://data.forgejo.org/actions/checkout@v4 - run: make deps-frontend - run: make lint-frontend - run: make checks-frontend - run: make test-frontend-coverage - run: make frontend + - name: Install zstd for cache saving + # works around https://github.com/actions/cache/issues/1169, because the + # consuming job has zstd and doesn't restore the cache otherwise + run: | + apt-get update -qq + apt-get -q install -qq -y zstd + - name: "Cache frontend build for playwright testing" + uses: actions/cache/save@v4 + with: + path: ${{github.workspace}}/public/assets + key: frontend-build-${{ github.sha }} test-unit: - if: ${{ !startsWith(vars.ROLE, 'forgejo-') }} + if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing' runs-on: docker needs: [backend-checks, frontend-checks] container: - image: 'code.forgejo.org/oci/node:20-bookworm' + image: 'data.forgejo.org/oci/node:20-bookworm' + options: --tmpfs /tmp:exec,noatime services: elasticsearch: - image: docker.io/bitnami/elasticsearch:7 + image: data.forgejo.org/oci/bitnami/elasticsearch:7 + options: --tmpfs /bitnami/elasticsearch/data env: discovery.type: single-node ES_JAVA_OPTS: "-Xms512m -Xmx512m" minio: - image: docker.io/bitnami/minio:2024.8.17 + image: data.forgejo.org/oci/bitnami/minio:2024.8.17 options: >- - --hostname gitea.minio + --hostname gitea.minio --tmpfs /bitnami/minio/data:noatime env: MINIO_DOMAIN: minio MINIO_ROOT_USER: 123456 MINIO_ROOT_PASSWORD: 12345678 steps: - - uses: https://code.forgejo.org/actions/checkout@v4 - - uses: https://code.forgejo.org/actions/setup-go@v4 - with: - go-version-file: "go.mod" - - run: | - git config --add safe.directory '*' - adduser --quiet --comment forgejo --disabled-password forgejo - chown -R forgejo:forgejo . + - uses: https://data.forgejo.org/actions/checkout@v4 + - uses: ./.forgejo/workflows-composite/setup-env - name: install git >= 2.42 - run: | - export DEBIAN_FRONTEND=noninteractive - echo deb http://deb.debian.org/debian/ testing main > /etc/apt/sources.list.d/testing.list - apt-get update -qq - apt-get -q install -qq -y git - rm /etc/apt/sources.list.d/testing.list - apt-get update -qq + uses: ./.forgejo/workflows-composite/apt-install-from + with: + packages: git - name: test release-notes-assistant.sh run: | apt-get -q install -qq -y jq ./release-notes-assistant.sh test_main - - run: | - su forgejo -c 'make deps-backend' - - uses: actions/cache/restore@v4 - id: cache-backend - with: - path: '/workspace/forgejo/forgejo/gitea' - key: backend-build-${{ github.sha }} - - if: steps.cache-backend.outputs.cache-hit != 'true' - run: | - su forgejo -c 'make backend' - env: - TAGS: bindata + - uses: ./.forgejo/workflows-composite/build-backend - run: | su forgejo -c 'make test-backend test-check' - timeout-minutes: 50 + timeout-minutes: 120 env: RACE_ENABLED: 'true' TAGS: bindata TEST_ELASTICSEARCH_URL: http://elasticsearch:9200 - test-remote-cacher: - if: ${{ !startsWith(vars.ROLE, 'forgejo-') }} + test-e2e: + if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing' runs-on: docker needs: [backend-checks, frontend-checks] container: - image: 'code.forgejo.org/oci/node:20-bookworm' + image: 'data.forgejo.org/oci/playwright:latest' + options: --tmpfs /tmp:exec,noatime + steps: + - uses: https://data.forgejo.org/actions/checkout@v4 + with: + fetch-depth: 20 + - uses: ./.forgejo/workflows-composite/setup-env + - name: "Restore frontend build" + uses: actions/cache/restore@v4 + id: cache-frontend + with: + path: ${{github.workspace}}/public/assets + key: frontend-build-${{ github.sha }} + - name: "Build frontend (if not cached)" + if: steps.cache-frontend.outputs.cache-hit != 'true' + run: | + su forgejo -c 'make deps-frontend frontend' + - uses: ./.forgejo/workflows-composite/build-backend + - name: Get changed files + id: changed-files + uses: https://data.forgejo.org/tj-actions/changed-files@v45 + with: + separator: '\n' + - run: | + su forgejo -c 'make generate test-e2e-sqlite' + timeout-minutes: 120 + env: + USE_REPO_TEST_DIR: 1 + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 + CHANGED_FILES: ${{steps.changed-files.outputs.all_changed_files}} + - name: Upload test artifacts on failure + if: failure() + uses: https://data.forgejo.org/forgejo/upload-artifact@v4 + with: + name: test-artifacts.zip + path: tests/e2e/test-artifacts/ + retention-days: 3 + test-remote-cacher: + if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing' + runs-on: docker + needs: [backend-checks, frontend-checks, test-unit] + container: + image: 'data.forgejo.org/oci/node:20-bookworm' + options: --tmpfs /tmp:exec,noatime + name: ${{ format('test-remote-cacher ({0})', matrix.cacher.name) }} strategy: matrix: cacher: - # redis - - image: docker.io/bitnami/redis:7.2 - port: 6379 - # redict - - image: registry.redict.io/redict:7.3.0-scratch - port: 6379 - # valkey - - image: docker.io/bitnami/valkey:7.2 - port: 6379 - # garnet - - image: ghcr.io/microsoft/garnet-alpine:1.0.14 - port: 6379 + - name: redis + image: data.forgejo.org/oci/bitnami/redis:7.2 + options: --tmpfs /bitnami/redis/data:noatime + - name: redict + image: registry.redict.io/redict:7.3.0-scratch + options: --tmpfs /data:noatime + - name: valkey + image: data.forgejo.org/oci/bitnami/valkey:7.2 + options: --tmpfs /bitnami/redis/data:noatime + - name: garnet + image: ghcr.io/microsoft/garnet-alpine:1.0.14 + options: --tmpfs /data:noatime services: cacher: image: ${{ matrix.cacher.image }} options: ${{ matrix.cacher.options }} steps: - - uses: https://code.forgejo.org/actions/checkout@v4 - - uses: https://code.forgejo.org/actions/setup-go@v4 - with: - go-version-file: "go.mod" - - run: | - git config --add safe.directory '*' - adduser --quiet --comment forgejo --disabled-password forgejo - chown -R forgejo:forgejo . + - uses: https://data.forgejo.org/actions/checkout@v4 + - uses: ./.forgejo/workflows-composite/setup-env - name: install git >= 2.42 - run: | - export DEBIAN_FRONTEND=noninteractive - echo deb http://deb.debian.org/debian/ testing main > /etc/apt/sources.list.d/testing.list - apt-get update -qq - apt-get -q install -qq -y git - rm /etc/apt/sources.list.d/testing.list - apt-get update -qq - - run: | - su forgejo -c 'make deps-backend' - - uses: actions/cache/restore@v4 - id: cache-backend + uses: ./.forgejo/workflows-composite/apt-install-from with: - path: '/workspace/forgejo/forgejo/gitea' - key: backend-build-${{ github.sha }} - - if: steps.cache-backend.outputs.cache-hit != 'true' - run: | - su forgejo -c 'make backend' - env: - TAGS: bindata + packages: git + - uses: ./.forgejo/workflows-composite/build-backend - run: | su forgejo -c 'make test-remote-cacher test-check' - timeout-minutes: 50 + timeout-minutes: 120 env: RACE_ENABLED: 'true' TAGS: bindata TEST_REDIS_SERVER: cacher:${{ matrix.cacher.port }} test-mysql: - if: ${{ !startsWith(vars.ROLE, 'forgejo-') }} + if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing' runs-on: docker needs: [backend-checks, frontend-checks] container: - image: 'code.forgejo.org/oci/node:20-bookworm' + image: 'data.forgejo.org/oci/node:20-bookworm' + options: --tmpfs /tmp:exec,noatime services: mysql: - image: 'docker.io/bitnami/mysql:8.4' + image: 'data.forgejo.org/oci/bitnami/mysql:8.4' env: ALLOW_EMPTY_PASSWORD: yes MYSQL_DATABASE: testgitea # # See also https://codeberg.org/forgejo/forgejo/issues/976 # - MYSQL_EXTRA_FLAGS: --innodb-adaptive-flushing=OFF --innodb-buffer-pool-size=4G --innodb-log-buffer-size=128M --innodb-flush-log-at-trx-commit=0 --innodb-flush-log-at-timeout=30 --innodb-flush-method=nosync --innodb-fsync-threshold=1000000000 + MYSQL_EXTRA_FLAGS: --innodb-adaptive-flushing=OFF --innodb-buffer-pool-size=4G --innodb-log-buffer-size=128M --innodb-flush-log-at-trx-commit=0 --innodb-flush-log-at-timeout=30 --innodb-flush-method=nosync --innodb-fsync-threshold=1000000000 --disable-log-bin + options: --tmpfs /bitnami/mysql/data:noatime steps: - - uses: https://code.forgejo.org/actions/checkout@v4 - - uses: https://code.forgejo.org/actions/setup-go@v4 - with: - go-version-file: "go.mod" + - uses: https://data.forgejo.org/actions/checkout@v4 + - uses: ./.forgejo/workflows-composite/setup-env - name: install dependencies & git >= 2.42 - run: | - export DEBIAN_FRONTEND=noninteractive - echo deb http://deb.debian.org/debian/ testing main > /etc/apt/sources.list.d/testing.list - apt-get update -qq - apt-get install --no-install-recommends -qq -y git git-lfs - rm /etc/apt/sources.list.d/testing.list - apt-get update -qq - - name: setup user and permissions - run: | - git config --add safe.directory '*' - adduser --quiet --comment forgejo --disabled-password forgejo - chown -R forgejo:forgejo . - - run: | - su forgejo -c 'make deps-backend' - - uses: actions/cache/restore@v4 - id: cache-backend + uses: ./.forgejo/workflows-composite/apt-install-from with: - path: '/workspace/forgejo/forgejo/gitea' - key: backend-build-${{ github.sha }} - - if: steps.cache-backend.outputs.cache-hit != 'true' - run: | - su forgejo -c 'make backend' - env: - TAGS: bindata + packages: git git-lfs + - uses: ./.forgejo/workflows-composite/build-backend - run: | su forgejo -c 'make test-mysql-migration test-mysql' - timeout-minutes: 50 + timeout-minutes: 120 env: USE_REPO_TEST_DIR: 1 test-pgsql: - if: ${{ !startsWith(vars.ROLE, 'forgejo-') }} + if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing' runs-on: docker needs: [backend-checks, frontend-checks] container: - image: 'code.forgejo.org/oci/node:20-bookworm' + image: 'data.forgejo.org/oci/node:20-bookworm' + options: --tmpfs /tmp:exec,noatime services: minio: - image: docker.io/bitnami/minio:2024.8.17 + image: data.forgejo.org/oci/bitnami/minio:2024.8.17 env: MINIO_ROOT_USER: 123456 MINIO_ROOT_PASSWORD: 12345678 + options: --tmpfs /bitnami/minio/data ldap: - image: docker.io/gitea/test-openldap:latest + image: data.forgejo.org/oci/test-openldap:latest pgsql: - image: 'code.forgejo.org/oci/postgres:15' + image: data.forgejo.org/oci/bitnami/postgresql:15 env: - POSTGRES_DB: test - POSTGRES_PASSWORD: postgres + POSTGRESQL_DATABASE: test + POSTGRESQL_PASSWORD: postgres + POSTGRESQL_FSYNC: off + POSTGRESQL_EXTRA_FLAGS: -c full_page_writes=off + options: --tmpfs /bitnami/postgresql steps: - - uses: https://code.forgejo.org/actions/checkout@v4 - - uses: https://code.forgejo.org/actions/setup-go@v4 - with: - go-version-file: "go.mod" + - uses: https://data.forgejo.org/actions/checkout@v4 + - uses: ./.forgejo/workflows-composite/setup-env - name: install dependencies & git >= 2.42 - run: | - export DEBIAN_FRONTEND=noninteractive - echo deb http://deb.debian.org/debian/ testing main > /etc/apt/sources.list.d/testing.list - apt-get update -qq - apt-get install --no-install-recommends -qq -y git git-lfs - rm /etc/apt/sources.list.d/testing.list - apt-get update -qq - - name: setup user and permissions - run: | - git config --add safe.directory '*' - adduser --quiet --comment forgejo --disabled-password forgejo - chown -R forgejo:forgejo . - - run: | - su forgejo -c 'make deps-backend' - - uses: actions/cache/restore@v4 - id: cache-backend + uses: ./.forgejo/workflows-composite/apt-install-from with: - path: '/workspace/forgejo/forgejo/gitea' - key: backend-build-${{ github.sha }} - - if: steps.cache-backend.outputs.cache-hit != 'true' - run: | - su forgejo -c 'make backend' - env: - TAGS: bindata + packages: git git-lfs + - uses: ./.forgejo/workflows-composite/build-backend - run: | su forgejo -c 'make test-pgsql-migration test-pgsql' - timeout-minutes: 50 + timeout-minutes: 120 env: RACE_ENABLED: true USE_REPO_TEST_DIR: 1 TEST_LDAP: 1 test-sqlite: - if: ${{ !startsWith(vars.ROLE, 'forgejo-') }} + if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing' runs-on: docker needs: [backend-checks, frontend-checks] container: - image: 'code.forgejo.org/oci/node:20-bookworm' + image: 'data.forgejo.org/oci/node:20-bookworm' + options: --tmpfs /tmp:exec,noatime steps: - - uses: https://code.forgejo.org/actions/checkout@v4 - - uses: https://code.forgejo.org/actions/setup-go@v4 - with: - go-version-file: "go.mod" + - uses: https://data.forgejo.org/actions/checkout@v4 + - uses: ./.forgejo/workflows-composite/setup-env - name: install dependencies & git >= 2.42 - run: | - export DEBIAN_FRONTEND=noninteractive - echo deb http://deb.debian.org/debian/ testing main > /etc/apt/sources.list.d/testing.list - apt-get update -qq - apt-get install --no-install-recommends -qq -y git git-lfs - rm /etc/apt/sources.list.d/testing.list - apt-get update -qq - - name: setup user and permissions - run: | - git config --add safe.directory '*' - adduser --quiet --comment forgejo --disabled-password forgejo - chown -R forgejo:forgejo . - - run: | - su forgejo -c 'make deps-backend' - - uses: actions/cache/restore@v4 - id: cache-backend + uses: ./.forgejo/workflows-composite/apt-install-from with: - path: '/workspace/forgejo/forgejo/gitea' - key: backend-build-${{ github.sha }} - - if: steps.cache-backend.outputs.cache-hit != 'true' - run: | - su forgejo -c 'make backend' - env: - TAGS: bindata sqlite sqlite_unlock_notify + packages: git git-lfs + - uses: ./.forgejo/workflows-composite/build-backend - run: | su forgejo -c 'make test-sqlite-migration test-sqlite' - timeout-minutes: 50 + timeout-minutes: 120 env: TAGS: sqlite sqlite_unlock_notify RACE_ENABLED: true TEST_TAGS: sqlite sqlite_unlock_notify USE_REPO_TEST_DIR: 1 security-check: - if: ${{ !startsWith(vars.ROLE, 'forgejo-') }} + if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing' runs-on: docker needs: - test-sqlite @@ -327,11 +278,10 @@ jobs: - test-remote-cacher - test-unit container: - image: 'code.forgejo.org/oci/node:20-bookworm' + image: 'data.forgejo.org/oci/node:20-bookworm' + options: --tmpfs /tmp:exec,noatime steps: - - uses: https://code.forgejo.org/actions/checkout@v4 - - uses: https://code.forgejo.org/actions/setup-go@v4 - with: - go-version-file: "go.mod" - - run: make deps-backend deps-tools - - run: make security-check + - uses: https://data.forgejo.org/actions/checkout@v4 + - uses: ./.forgejo/workflows-composite/setup-env + - run: su forgejo -c 'make deps-backend deps-tools' + - run: su forgejo -c 'make security-check' diff --git a/.gitignore b/.gitignore index 7f40d0ba55..79a4108dab 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ _testmain.go *coverage.out coverage.all +coverage/ cpu.out /modules/migration/bindata.go @@ -72,6 +73,7 @@ cpu.out /tests/e2e/reports /tests/e2e/test-artifacts /tests/e2e/test-snapshots +/tests/e2e/.auth /tests/*.ini /tests/**/*.git/**/*.sample /node_modules @@ -115,6 +117,9 @@ prime/ *_source.tar.bz2 .DS_Store +# Direnv configuration +/.envrc + # nix-direnv generated files .direnv/ diff --git a/.golangci.yml b/.golangci.yml index 4a20269b0e..0678b90bfc 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -77,6 +77,8 @@ linters-settings: - name: unreachable-code - name: var-declaration - name: var-naming + - name: redefines-builtin-id + disabled: true gofumpt: extra-rules: true depguard: diff --git a/.release-notes-assistant.yaml b/.release-notes-assistant.yaml index 15c73f9b39..b3e5a8e665 100644 --- a/.release-notes-assistant.yaml +++ b/.release-notes-assistant.yaml @@ -10,7 +10,7 @@ branch-known: cleanup-line: 'sed -Ee "s/^(feat|fix):\s*//g" -e "s/^\[WIP\] //" -e "s/^WIP: //" -e "s;\[(UI|BUG|FEAT|v.*?/forgejo)\]\s*;;g"' render-header: | - ## Draft release notes + ## Release notes comment: |
Where does that come from? diff --git a/CODEOWNERS b/CODEOWNERS index d46efc052b..6ca34a69df 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -16,6 +16,9 @@ templates/.* @caesar @crystal @gusted ## the issue sidebar was touched by fnetx templates/repo/issue/view_content/sidebar.* @fnetx +# Playwright tests +tests/e2e/.* @fnetx + # Files related to Go development. # The modules usually don't require much knowledge about Forgejo and could diff --git a/Dockerfile b/Dockerfile index 05c4f33e05..3f7f3e7d1f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ -FROM --platform=$BUILDPLATFORM docker.io/tonistiigi/xx AS xx +FROM --platform=$BUILDPLATFORM code.forgejo.org/oci/xx AS xx -FROM --platform=$BUILDPLATFORM code.forgejo.org/oci/golang:1.23-alpine3.20 as build-env +FROM --platform=$BUILDPLATFORM code.forgejo.org/oci/golang:1.23-alpine3.21 as build-env ARG GOPROXY ENV GOPROXY=${GOPROXY:-direct} @@ -51,7 +51,7 @@ RUN chmod 755 /tmp/local/usr/bin/entrypoint \ /go/src/code.gitea.io/gitea/environment-to-ini RUN chmod 644 /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete -FROM code.forgejo.org/oci/alpine:3.20 +FROM code.forgejo.org/oci/alpine:3.21 ARG RELEASE_VERSION LABEL maintainer="contact@forgejo.org" \ org.opencontainers.image.authors="Forgejo" \ @@ -98,7 +98,7 @@ ENV GITEA_CUSTOM=/data/gitea VOLUME ["/data"] ENTRYPOINT ["/usr/bin/entrypoint"] -CMD ["/bin/s6-svscan", "/etc/s6"] +CMD ["/usr/bin/s6-svscan", "/etc/s6"] COPY --from=build-env /tmp/local / RUN cd /usr/local/bin ; ln -s gitea forgejo diff --git a/Dockerfile.rootless b/Dockerfile.rootless index cc6820664a..129bd6f1ba 100644 --- a/Dockerfile.rootless +++ b/Dockerfile.rootless @@ -1,6 +1,6 @@ -FROM --platform=$BUILDPLATFORM docker.io/tonistiigi/xx AS xx +FROM --platform=$BUILDPLATFORM code.forgejo.org/oci/xx AS xx -FROM --platform=$BUILDPLATFORM code.forgejo.org/oci/golang:1.23-alpine3.20 as build-env +FROM --platform=$BUILDPLATFORM code.forgejo.org/oci/golang:1.23-alpine3.21 as build-env ARG GOPROXY ENV GOPROXY=${GOPROXY:-direct} @@ -49,7 +49,7 @@ RUN chmod 755 /tmp/local/usr/local/bin/docker-entrypoint.sh \ /go/src/code.gitea.io/gitea/environment-to-ini RUN chmod 644 /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete -FROM code.forgejo.org/oci/alpine:3.20 +FROM code.forgejo.org/oci/alpine:3.21 LABEL maintainer="contact@forgejo.org" \ org.opencontainers.image.authors="Forgejo" \ org.opencontainers.image.url="https://forgejo.org" \ diff --git a/Makefile b/Makefile index a2bfbdc95c..5865262d1a 100644 --- a/Makefile +++ b/Makefile @@ -18,28 +18,41 @@ DIST := dist DIST_DIRS := $(DIST)/binaries $(DIST)/release IMPORT := code.gitea.io/gitea -GO ?= go +GO ?= $(shell go env GOROOT)/bin/go SHASUM ?= shasum -a 256 HAS_GO := $(shell hash $(GO) > /dev/null 2>&1 && echo yes) COMMA := , DIFF ?= diff --unified +ifeq ($(USE_GOTESTSUM), yes) + GOTEST ?= gotestsum -- + GOTESTCOMPILEDRUNPREFIX ?= gotestsum --raw-command -- go tool test2json -t + GOTESTCOMPILEDRUNSUFFIX ?= -test.v=test2json +else + GOTEST ?= $(GO) test + GOTESTCOMPILEDRUNPREFIX ?= + GOTESTCOMPILEDRUNSUFFIX ?= +endif + XGO_VERSION := go-1.21.x AIR_PACKAGE ?= github.com/air-verse/air@v1 # renovate: datasource=go -EDITORCONFIG_CHECKER_PACKAGE ?= github.com/editorconfig-checker/editorconfig-checker/v3/cmd/editorconfig-checker@v3.0.3 # renovate: datasource=go +EDITORCONFIG_CHECKER_PACKAGE ?= github.com/editorconfig-checker/editorconfig-checker/v3/cmd/editorconfig-checker@v3.1.1 # renovate: datasource=go GOFUMPT_PACKAGE ?= mvdan.cc/gofumpt@v0.7.0 # renovate: datasource=go -GOLANGCI_LINT_PACKAGE ?= github.com/golangci/golangci-lint/cmd/golangci-lint@v1.61.0 # renovate: datasource=go +GOLANGCI_LINT_PACKAGE ?= github.com/golangci/golangci-lint/cmd/golangci-lint@v1.62.2 # renovate: datasource=go GXZ_PACKAGE ?= github.com/ulikunitz/xz/cmd/gxz@v0.5.11 # renovate: datasource=go MISSPELL_PACKAGE ?= github.com/golangci/misspell/cmd/misspell@v0.6.0 # renovate: datasource=go SWAGGER_PACKAGE ?= github.com/go-swagger/go-swagger/cmd/swagger@v0.31.0 # renovate: datasource=go XGO_PACKAGE ?= src.techknowlogick.com/xgo@latest GO_LICENSES_PACKAGE ?= github.com/google/go-licenses@v1.6.0 # renovate: datasource=go GOVULNCHECK_PACKAGE ?= golang.org/x/vuln/cmd/govulncheck@v1 # renovate: datasource=go -DEADCODE_PACKAGE ?= golang.org/x/tools/cmd/deadcode@v0.25.0 # renovate: datasource=go +DEADCODE_PACKAGE ?= golang.org/x/tools/cmd/deadcode@v0.29.0 # renovate: datasource=go GOMOCK_PACKAGE ?= go.uber.org/mock/mockgen@v0.4.0 # renovate: datasource=go -GOPLS_PACKAGE ?= golang.org/x/tools/gopls@v0.16.2 # renovate: datasource=go -RENOVATE_NPM_PACKAGE ?= renovate@38.93.2 # renovate: datasource=docker packageName=code.forgejo.org/forgejo-contrib/renovate +GOPLS_PACKAGE ?= golang.org/x/tools/gopls@v0.17.1 # renovate: datasource=go +RENOVATE_NPM_PACKAGE ?= renovate@39.115.4 # renovate: datasource=docker packageName=data.forgejo.org/renovate/renovate + +# https://github.com/disposable-email-domains/disposable-email-domains/commits/main/ +DISPOSABLE_EMAILS_SHA ?= 0c27e671231d27cf66370034d7f6818037416989 # renovate: ... ifeq ($(HAS_GO), yes) CGO_EXTRA_CFLAGS := -DSQLITE_MAX_VARIABLE_NUMBER=32766 @@ -154,9 +167,8 @@ 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 *.js tests/e2e/*.js tests/e2e/shared/*.js 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 $(wildcard *.go *.js *.md *.yml *.yaml *.toml) +SPELLCHECK_FILES := $(GO_DIRS) $(WEB_DIRS) docs/content templates options/locale/locale_en-US.ini .github $(wildcard *.go *.js *.ts *.vue *.md *.yml *.yaml *.toml) GO_SOURCES := $(wildcard *.go) GO_SOURCES += $(shell find $(GO_DIRS) -type f -name "*.go" ! -path modules/options/bindata.go ! -path modules/public/bindata.go ! -path modules/templates/bindata.go) @@ -408,10 +420,10 @@ lint-frontend: lint-js lint-css lint-frontend-fix: lint-js-fix lint-css-fix .PHONY: lint-backend -lint-backend: lint-go lint-go-vet lint-editorconfig lint-renovate +lint-backend: lint-go lint-go-vet lint-editorconfig lint-renovate lint-locale lint-disposable-emails .PHONY: lint-backend-fix -lint-backend-fix: lint-go-fix lint-go-vet lint-editorconfig +lint-backend-fix: lint-go-fix lint-go-vet lint-editorconfig lint-disposable-emails-fix .PHONY: lint-codespell lint-codespell: @@ -427,11 +439,11 @@ lint-codespell-fix-i: .PHONY: lint-js lint-js: node_modules - npx eslint --color --max-warnings=0 --ext js,vue $(ESLINT_FILES) + npx eslint --color --max-warnings=0 .PHONY: lint-js-fix lint-js-fix: node_modules - npx eslint --color --max-warnings=0 --ext js,vue $(ESLINT_FILES) --fix + npx eslint --color --max-warnings=0 --fix .PHONY: lint-css lint-css: node_modules @@ -451,6 +463,10 @@ lint-renovate: node_modules @if grep --quiet --extended-regexp -e '^( WARN:|ERROR:)' .lint-renovate ; then cat .lint-renovate ; rm .lint-renovate ; exit 1 ; fi @rm .lint-renovate +.PHONY: lint-locale +lint-locale: + $(GO) run build/lint-locale.go + .PHONY: lint-md lint-md: node_modules npx markdownlint docs *.md @@ -498,6 +514,14 @@ lint-go-gopls: lint-editorconfig: $(GO) run $(EDITORCONFIG_CHECKER_PACKAGE) templates .forgejo/workflows +.PHONY: lint-disposable-emails +lint-disposable-emails: + $(GO) run build/generate-disposable-email.go -check -r $(DISPOSABLE_EMAILS_SHA) + +.PHONY: lint-disposable-emails-fix +lint-disposable-emails-fix: + $(GO) run build/generate-disposable-email.go -r $(DISPOSABLE_EMAILS_SHA) + .PHONY: lint-templates lint-templates: .venv node_modules @node tools/lint-templates-svg.js @@ -534,12 +558,12 @@ test: test-frontend test-backend .PHONY: test-backend test-backend: @echo "Running go test with $(GOTESTFLAGS) -tags '$(TEST_TAGS)'..." - @$(GO) test $(GOTESTFLAGS) -tags='$(TEST_TAGS)' $(GO_TEST_PACKAGES) + @$(GOTEST) $(GOTESTFLAGS) -tags='$(TEST_TAGS)' $(GO_TEST_PACKAGES) .PHONY: test-remote-cacher test-remote-cacher: @echo "Running go test with $(GOTESTFLAGS) -tags '$(TEST_TAGS)'..." - @$(GO) test $(GOTESTFLAGS) -tags='$(TEST_TAGS)' $(GO_TEST_REMOTE_CACHER_PACKAGES) + @$(GOTEST) $(GOTESTFLAGS) -tags='$(TEST_TAGS)' $(GO_TEST_REMOTE_CACHER_PACKAGES) .PHONY: test-frontend test-frontend: node_modules @@ -564,7 +588,7 @@ test-check: .PHONY: test\#% test\#%: @echo "Running go test with -tags '$(TEST_TAGS)'..." - @$(GO) test $(GOTESTFLAGS) -tags='$(TEST_TAGS)' -run $(subst .,/,$*) $(GO_TEST_PACKAGES) + @$(GOTEST) $(GOTESTFLAGS) -tags='$(TEST_TAGS)' -run $(subst .,/,$*) $(GO_TEST_PACKAGES) .PHONY: coverage coverage: @@ -575,7 +599,7 @@ coverage: .PHONY: unit-test-coverage unit-test-coverage: @echo "Running unit-test-coverage $(GOTESTFLAGS) -tags '$(TEST_TAGS)'..." - @$(GO) test $(GOTESTFLAGS) -timeout=20m -tags='$(TEST_TAGS)' -cover -coverprofile coverage.out $(GO_TEST_PACKAGES) && echo "\n==>\033[32m Ok\033[m\n" || exit 1 + @$(GOTEST) $(GOTESTFLAGS) -timeout=20m -tags='$(TEST_TAGS)' -cover -coverprofile coverage.out $(GO_TEST_PACKAGES) && echo "\n==>\033[32m Ok\033[m\n" || exit 1 .PHONY: tidy tidy: @@ -596,7 +620,7 @@ tidy-check: tidy go-licenses: $(GO_LICENSE_FILE) $(GO_LICENSE_FILE): go.mod go.sum - -$(shell $(GO) env GOROOT)/bin/go run $(GO_LICENSES_PACKAGE) save . --force --ignore code.gitea.io/gitea --save_path=$(GO_LICENSE_TMP_DIR) 2>/dev/null + -$(GO) run $(GO_LICENSES_PACKAGE) save . --force --ignore code.gitea.io/gitea --save_path=$(GO_LICENSE_TMP_DIR) 2>/dev/null $(GO) run build/generate-go-licenses.go $(GO_LICENSE_TMP_DIR) $(GO_LICENSE_FILE) @rm -rf $(GO_LICENSE_TMP_DIR) @@ -608,11 +632,11 @@ generate-ini-sqlite: .PHONY: test-sqlite test-sqlite: integrations.sqlite.test generate-ini-sqlite - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini ./integrations.sqlite.test + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini $(GOTESTCOMPILEDRUNPREFIX) ./integrations.sqlite.test $(GOTESTCOMPILEDRUNSUFFIX) .PHONY: test-sqlite\#% test-sqlite\#%: integrations.sqlite.test generate-ini-sqlite - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini ./integrations.sqlite.test -test.run $(subst .,/,$*) + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini $(GOTESTCOMPILEDRUNPREFIX) ./integrations.sqlite.test $(GOTESTCOMPILEDRUNSUFFIX) -test.run $(subst .,/,$*) .PHONY: test-sqlite-migration test-sqlite-migration: migrations.sqlite.test migrations.individual.sqlite.test @@ -629,11 +653,11 @@ generate-ini-mysql: .PHONY: test-mysql test-mysql: integrations.mysql.test generate-ini-mysql - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini ./integrations.mysql.test + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini $(GOTESTCOMPILEDRUNPREFIX) ./integrations.mysql.test $(GOTESTCOMPILEDRUNSUFFIX) .PHONY: test-mysql\#% test-mysql\#%: integrations.mysql.test generate-ini-mysql - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini ./integrations.mysql.test -test.run $(subst .,/,$*) + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini $(GOTESTCOMPILEDRUNPREFIX) ./integrations.mysql.test $(GOTESTCOMPILEDRUNSUFFIX) -test.run $(subst .,/,$*) .PHONY: test-mysql-migration test-mysql-migration: migrations.mysql.test migrations.individual.mysql.test @@ -647,15 +671,16 @@ generate-ini-pgsql: -e 's|{{REPO_TEST_DIR}}|${REPO_TEST_DIR}|g' \ -e 's|{{TEST_LOGGER}}|$(or $(TEST_LOGGER),test$(COMMA)file)|g' \ -e 's|{{TEST_TYPE}}|$(or $(TEST_TYPE),integration)|g' \ + -e 's|{{TEST_STORAGE_TYPE}}|$(or $(TEST_STORAGE_TYPE),minio)|g' \ tests/pgsql.ini.tmpl > tests/pgsql.ini .PHONY: test-pgsql test-pgsql: integrations.pgsql.test generate-ini-pgsql - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini ./integrations.pgsql.test + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini $(GOTESTCOMPILEDRUNPREFIX) ./integrations.pgsql.test $(GOTESTCOMPILEDRUNSUFFIX) .PHONY: test-pgsql\#% test-pgsql\#%: integrations.pgsql.test generate-ini-pgsql - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini ./integrations.pgsql.test -test.run $(subst .,/,$*) + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini $(GOTESTCOMPILEDRUNPREFIX) ./integrations.pgsql.test $(GOTESTCOMPILEDRUNSUFFIX) -test.run $(subst .,/,$*) .PHONY: test-pgsql-migration test-pgsql-migration: migrations.pgsql.test migrations.individual.pgsql.test @@ -674,35 +699,34 @@ test-e2e: test-e2e-sqlite .PHONY: test-e2e-sqlite test-e2e-sqlite: playwright e2e.sqlite.test generate-ini-sqlite - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini ./e2e.sqlite.test -test.run TestE2e + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini $(GOTESTCOMPILEDRUNPREFIX) ./e2e.sqlite.test $(GOTESTCOMPILEDRUNSUFFIX) -test.run TestE2e .PHONY: test-e2e-sqlite\#% test-e2e-sqlite\#%: playwright e2e.sqlite.test generate-ini-sqlite - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini ./e2e.sqlite.test -test.run TestE2e/$* + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini $(GOTESTCOMPILEDRUNPREFIX) ./e2e.sqlite.test $(GOTESTCOMPILEDRUNSUFFIX) -test.run TestE2e/$* .PHONY: test-e2e-sqlite-firefox\#% test-e2e-sqlite-firefox\#%: playwright e2e.sqlite.test generate-ini-sqlite - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini PLAYWRIGHT_PROJECT=firefox ./e2e.sqlite.test -test.run TestE2e/$* + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini PLAYWRIGHT_PROJECT=firefox $(GOTESTCOMPILEDRUNPREFIX) ./e2e.sqlite.test $(GOTESTCOMPILEDRUNSUFFIX) -test.run TestE2e/$* .PHONY: test-e2e-mysql test-e2e-mysql: playwright e2e.mysql.test generate-ini-mysql - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini ./e2e.mysql.test -test.run TestE2e + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini $(GOTESTCOMPILEDRUNPREFIX) ./e2e.mysql.test $(GOTESTCOMPILEDRUNSUFFIX) -test.run TestE2e .PHONY: test-e2e-mysql\#% test-e2e-mysql\#%: playwright e2e.mysql.test generate-ini-mysql - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini ./e2e.mysql.test -test.run TestE2e/$* + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini $(GOTESTCOMPILEDRUNPREFIX) ./e2e.mysql.test $(GOTESTCOMPILEDRUNSUFFIX) -test.run TestE2e/$* .PHONY: test-e2e-pgsql test-e2e-pgsql: playwright e2e.pgsql.test generate-ini-pgsql - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini ./e2e.pgsql.test -test.run TestE2e + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini $(GOTESTCOMPILEDRUNPREFIX) ./e2e.pgsql.test $(GOTESTCOMPILEDRUNSUFFIX) -test.run TestE2e .PHONY: test-e2e-pgsql\#% test-e2e-pgsql\#%: playwright e2e.pgsql.test generate-ini-pgsql - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini ./e2e.pgsql.test -test.run TestE2e/$* + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini $(GOTESTCOMPILEDRUNPREFIX) ./e2e.pgsql.test $(GOTESTCOMPILEDRUNSUFFIX) -test.run TestE2e/$* .PHONY: test-e2e-debugserver test-e2e-debugserver: e2e.sqlite.test generate-ini-sqlite - sed -i s/3003/3000/g tests/sqlite.ini GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini ./e2e.sqlite.test -test.run TestDebugserver -test.timeout 24h .PHONY: bench-sqlite @@ -726,73 +750,73 @@ integration-test-coverage-sqlite: integrations.cover.sqlite.test generate-ini-sq GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini ./integrations.cover.sqlite.test -test.coverprofile=integration.coverage.out integrations.mysql.test: git-check $(GO_SOURCES) - $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration -o integrations.mysql.test + $(GOTEST) $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration -o integrations.mysql.test integrations.pgsql.test: git-check $(GO_SOURCES) - $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration -o integrations.pgsql.test + $(GOTEST) $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration -o integrations.pgsql.test integrations.sqlite.test: git-check $(GO_SOURCES) - $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration -o integrations.sqlite.test -tags '$(TEST_TAGS)' + $(GOTEST) $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration -o integrations.sqlite.test -tags '$(TEST_TAGS)' integrations.cover.test: git-check $(GO_SOURCES) - $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration -coverpkg $(shell echo $(GO_TEST_PACKAGES) | tr ' ' ',') -o integrations.cover.test + $(GOTEST) $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration -coverpkg $(shell echo $(GO_TEST_PACKAGES) | tr ' ' ',') -o integrations.cover.test integrations.cover.sqlite.test: git-check $(GO_SOURCES) - $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration -coverpkg $(shell echo $(GO_TEST_PACKAGES) | tr ' ' ',') -o integrations.cover.sqlite.test -tags '$(TEST_TAGS)' + $(GOTEST) $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration -coverpkg $(shell echo $(GO_TEST_PACKAGES) | tr ' ' ',') -o integrations.cover.sqlite.test -tags '$(TEST_TAGS)' .PHONY: migrations.mysql.test migrations.mysql.test: $(GO_SOURCES) generate-ini-mysql - $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration/migration-test -o migrations.mysql.test - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini ./migrations.mysql.test + $(GOTEST) $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration/migration-test -o migrations.mysql.test + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini $(GOTESTCOMPILEDRUNPREFIX) ./migrations.mysql.test $(GOTESTCOMPILEDRUNSUFFIX) .PHONY: migrations.pgsql.test migrations.pgsql.test: $(GO_SOURCES) generate-ini-pgsql - $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration/migration-test -o migrations.pgsql.test - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini ./migrations.pgsql.test + $(GOTEST) $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration/migration-test -o migrations.pgsql.test + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini $(GOTESTCOMPILEDRUNPREFIX) ./migrations.pgsql.test $(GOTESTCOMPILEDRUNSUFFIX) .PHONY: migrations.sqlite.test migrations.sqlite.test: $(GO_SOURCES) generate-ini-sqlite - $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration/migration-test -o migrations.sqlite.test -tags '$(TEST_TAGS)' - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini ./migrations.sqlite.test + $(GOTEST) $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/integration/migration-test -o migrations.sqlite.test -tags '$(TEST_TAGS)' + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini $(GOTESTCOMPILEDRUNPREFIX) ./migrations.sqlite.test $(GOTESTCOMPILEDRUNSUFFIX) .PHONY: migrations.individual.mysql.test migrations.individual.mysql.test: $(GO_SOURCES) for pkg in $(MIGRATION_PACKAGES); do \ - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini $(GO) test $(GOTESTFLAGS) -tags '$(TEST_TAGS)' $$pkg || exit 1; \ + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini $(GOTEST) $(GOTESTFLAGS) -tags '$(TEST_TAGS)' $$pkg || exit 1; \ done .PHONY: migrations.individual.sqlite.test\#% migrations.individual.sqlite.test\#%: $(GO_SOURCES) generate-ini-sqlite - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini $(GO) test $(GOTESTFLAGS) -tags '$(TEST_TAGS)' code.gitea.io/gitea/models/migrations/$* + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini $(GOTEST) $(GOTESTFLAGS) -tags '$(TEST_TAGS)' code.gitea.io/gitea/models/migrations/$* .PHONY: migrations.individual.pgsql.test migrations.individual.pgsql.test: $(GO_SOURCES) for pkg in $(MIGRATION_PACKAGES); do \ - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini $(GO) test $(GOTESTFLAGS) -tags '$(TEST_TAGS)' $$pkg || exit 1;\ + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini $(GOTEST) $(GOTESTFLAGS) -tags '$(TEST_TAGS)' $$pkg || exit 1;\ done .PHONY: migrations.individual.pgsql.test\#% migrations.individual.pgsql.test\#%: $(GO_SOURCES) generate-ini-pgsql - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini $(GO) test $(GOTESTFLAGS) -tags '$(TEST_TAGS)' code.gitea.io/gitea/models/migrations/$* + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini $(GOTEST) $(GOTESTFLAGS) -tags '$(TEST_TAGS)' code.gitea.io/gitea/models/migrations/$* .PHONY: migrations.individual.sqlite.test migrations.individual.sqlite.test: $(GO_SOURCES) generate-ini-sqlite for pkg in $(MIGRATION_PACKAGES); do \ - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini $(GO) test $(GOTESTFLAGS) -tags '$(TEST_TAGS)' $$pkg || exit 1; \ + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini $(GOTEST) $(GOTESTFLAGS) -tags '$(TEST_TAGS)' $$pkg || exit 1; \ done .PHONY: migrations.individual.sqlite.test\#% migrations.individual.sqlite.test\#%: $(GO_SOURCES) generate-ini-sqlite - GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini $(GO) test $(GOTESTFLAGS) -tags '$(TEST_TAGS)' code.gitea.io/gitea/models/migrations/$* + GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini $(GOTEST) $(GOTESTFLAGS) -tags '$(TEST_TAGS)' code.gitea.io/gitea/models/migrations/$* e2e.mysql.test: $(GO_SOURCES) - $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/e2e -o e2e.mysql.test + $(GOTEST) $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/e2e -o e2e.mysql.test e2e.pgsql.test: $(GO_SOURCES) - $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/e2e -o e2e.pgsql.test + $(GOTEST) $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/e2e -o e2e.pgsql.test e2e.sqlite.test: $(GO_SOURCES) - $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/e2e -o e2e.sqlite.test -tags '$(TEST_TAGS)' + $(GOTEST) $(GOTESTFLAGS) -c code.gitea.io/gitea/tests/e2e -o e2e.sqlite.test -tags '$(TEST_TAGS)' .PHONY: check check: test @@ -896,7 +920,7 @@ release-docs: | $(DIST_DIRS) docs .PHONY: reproduce-build reproduce-build: # Start building the Dockerfile with the RELEASE_VERSION tag set. GOPROXY is set -# for convience, because the default of the Dockerfile is `direct` which can be +# for convenience, because the default of the Dockerfile is `direct` which can be # quite slow. @docker build --build-arg="RELEASE_VERSION=$(RELEASE_VERSION)" --build-arg="GOPROXY=$(shell $(GO) env GOPROXY)" --tag "forgejo-reproducibility" . @id=$$(docker create forgejo-reproducibility); \ diff --git a/README.md b/README.md index 2edc449177..0c4becacc4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ -

Welcome to Forgejo

diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index f86e10c21a..32f7b8c264 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -4,19 +4,31 @@ A minor or major Forgejo release is published every [three months](https://forge A [patch or minor release](https://semver.org/spec/v2.0.0.html) (e.g. upgrading from v7.0.0 to v7.0.1 or v7.1.0) does not require manual intervention. But [major releases](https://semver.org/spec/v2.0.0.html#spec-item-8) where the first version number changes (e.g. upgrading from v1.21 to v7.0) contain breaking changes and the release notes explain how to deal with them. -The release notes of each release [are available in the corresponding milestone](https://codeberg.org/forgejo/forgejo/milestones), starting with [Forgejo 7.0.7](https://codeberg.org/forgejo/forgejo/milestone/7683) and [Forgejo 8.0.1](https://codeberg.org/forgejo/forgejo/milestone/7682). +The release notes of each release [are available in the release-notes-published directory of this repository](release-notes-published), starting with [Forgejo 7.0.7](release-notes-published/7.0.7.md) and [Forgejo 8.0.1](release-notes-published/8.0.1.md). + +## 9.0.2 + +See the [Forgejo 9.0.2 release notes](release-notes-published/9.0.2.md). + +## 9.0.1 + +See the [Forgejo 9.0.1 release notes](release-notes-published/9.0.1.md). + +## 9.0.0 + +See the [Forgejo 9.0.0 release notes](release-notes-published/9.0.0.md). ## 8.0.3 -The Forgejo v8.0.3 release notes are [available in the v8.0.3 milestone](https://codeberg.org/forgejo/forgejo/milestone/8231). +See the [Forgejo 8.0.3 release notes](release-notes-published/8.0.3.md). ## 8.0.2 -The Forgejo v8.0.2 release notes are [available in the v8.0.2 milestone](https://codeberg.org/forgejo/forgejo/milestone/7728). +See the [Forgejo 8.0.2 release notes](release-notes-published/8.0.2.md). ## 8.0.1 -The Forgejo v8.0.1 release notes are [available in the v8.0.1 milestone](https://codeberg.org/forgejo/forgejo/milestone/7682). +See the [Forgejo 8.0.1 release notes](release-notes-published/8.0.1.md). ## 8.0.0 @@ -155,17 +167,25 @@ A [companion blog post](https://forgejo.org/2024-07-release-v8-0/) provides addi - [PR](https://codeberg.org/forgejo/forgejo/pulls/2937): 31 March updates +## 7.0.11 + +See the [Forgejo 7.0.11 release notes](release-notes-published/7.0.11.md). + +## 7.0.10 + +See the [Forgejo 7.0.10 release notes](release-notes-published/7.0.10.md). + ## 7.0.9 -The Forgejo v7.0.9 release notes are [available in the v7.0.9 milestone](https://codeberg.org/forgejo/forgejo/milestone/8232). +See the [Forgejo 7.0.9 release notes](release-notes-published/7.0.9.md). ## 7.0.8 -The Forgejo v7.0.8 release notes are [available in the v7.0.8 milestone](https://codeberg.org/forgejo/forgejo/milestone/7729). +See the [Forgejo 7.0.8 release notes](release-notes-published/7.0.8.md). ## 7.0.7 -The Forgejo v7.0.7 release notes are [available in the v7.0.7 milestone](https://codeberg.org/forgejo/forgejo/milestone/7683). +See the [Forgejo 7.0.7 release notes](release-notes-published/7.0.7.md). ## 7.0.6 @@ -1570,7 +1590,7 @@ this situation, [follow the instructions in the companion blog post](https://for The most prominent ones are described here, others can be found in the list of commits included in the release as described above. - * [Fix links to pull request reviews sent via mail](https://codeberg.org/forgejo/forgejo/commit/88e179d5ef8ee41f71d068195685ff098b38ca31). The pull request link was correct but it did not go the the review and stayed at the beginning of the page + * [Fix links to pull request reviews sent via mail](https://codeberg.org/forgejo/forgejo/commit/88e179d5ef8ee41f71d068195685ff098b38ca31). The pull request link was correct but it did not go the review and stayed at the beginning of the page * [Recognize OGG as an audio format](https://codeberg.org/forgejo/forgejo/commit/622ec5c79f299c32ac2667a1aa7b4bf5d7c2d6cf) * [Consistently show the last time a cron job was run in the admin panel](https://codeberg.org/forgejo/forgejo/commit/5f769ef20) * [Fix NuGet registry v2 & v3 API search endpoints](https://codeberg.org/forgejo/forgejo/commit/471138829b0c24fe8c621dbb866ae8bb45ebc674) @@ -1589,7 +1609,7 @@ this situation, [follow the instructions in the companion blog post](https://for * [Fix pull request check list when there are more than 30](https://codeberg.org/forgejo/forgejo/commit/e226b9646) * [Fix attachment clipboard copy on insecure origin](https://codeberg.org/forgejo/forgejo/commit/12ac84c26) * [Fix the profile README rendering](https://codeberg.org/forgejo/forgejo/commit/84c3b60a4) that [was inconsistent with other markdown files renderings](https://codeberg.org/forgejo/forgejo/issues/833) - * [Fix API leaking the user email when the caller is not authentified](https://codeberg.org/forgejo/forgejo/commit/d89003cc1) + * [Fix API leaking the user email when the caller is not authenticated](https://codeberg.org/forgejo/forgejo/commit/d89003cc1) ## 1.20.2-0 @@ -1647,7 +1667,7 @@ $ git -C forgejo log --oneline --no-merges origin/v1.19/forgejo..origin/v1.20/fo The semantic version was updated to `5.0.0+0-gitea-1.20.1` because it contains breaking changes. - **Breaking:** - [Scoped access tokens](https://codeberg.org/forgejo/forgejo/commit/18de83b2a3fc120922096b7348d6375094ae1532) or (Personal Access Tokens), were refactored and although existing tokens are still valid, they may have a different scope than before. To ensure that no tokens have a larger scope than expected they must be removed and recreated. - - If your `app.ini` has one of the the following `[indexer].ISSUE_INDEXER_QUEUE_TYPE`, `[indexer].ISSUE_INDEXER_QUEUE_BATCH_NUMBER`, `[indexer].`, `[indexer].ISSUE_INDEXER_QUEUE_DIR`, `[indexer].ISSUE_INDEXER_QUEUE_CONN_STR`, `[indexer].UPDATE_BUFFER_LEN`, `[mailer].SEND_BUFFER_LEN`, `[repository].PULL_REQUEST_QUEUE_LENGTH` or `[repository].MIRROR_QUEUE_LENGTH`, Forgejo will abort immediately. Unless you know exactly what you're doing, you must comment them out so the default values are used. + - If your `app.ini` has one of the following `[indexer].ISSUE_INDEXER_QUEUE_TYPE`, `[indexer].ISSUE_INDEXER_QUEUE_BATCH_NUMBER`, `[indexer].`, `[indexer].ISSUE_INDEXER_QUEUE_DIR`, `[indexer].ISSUE_INDEXER_QUEUE_CONN_STR`, `[indexer].UPDATE_BUFFER_LEN`, `[mailer].SEND_BUFFER_LEN`, `[repository].PULL_REQUEST_QUEUE_LENGTH` or `[repository].MIRROR_QUEUE_LENGTH`, Forgejo will abort immediately. Unless you know exactly what you're doing, you must comment them out so the default values are used. - The `-p` option of `environment-to-ini` is [no longer supported](https://codeberg.org/forgejo/forgejo/commit/fa0b5b14c2faa6a5f76bb2e7bc9241a5e4354189) - The ".png" suffix for [user and organizations is now reserved](https://codeberg.org/forgejo/forgejo/commit/2b91841cd3e1213ff3e4ed4209d6a4be89c2fa79) - The section `[git.reflog]` is [now obsolete and its keys have been moved](https://codeberg.org/forgejo/forgejo/commit/2f149c5c9db97f20fbbc65e32d1f3133048b11a2) to the following replacements: @@ -1741,7 +1761,7 @@ $ git -C forgejo log --oneline --no-merges origin/v1.19/forgejo..origin/v1.20/fo - [The repository migration can be canceled](https://codeberg.org/forgejo/forgejo/commit/f6e029e6c7849d4361abf7f1d749b5d528364ac4) - [Add button on the diff header to copy the file name](https://codeberg.org/forgejo/forgejo/commit/c5ede35124c8d5280219c24049bb0ad7da9f02ed) - [Add --quiet option to the dump CLI](https://codeberg.org/forgejo/forgejo/commit/cb1536471bcef4d78a3fe5cbd738b9f60fabbcc2) - - [Support searching for an issue with its number in the the list of issues](https://codeberg.org/forgejo/forgejo/commit/1144b1d129de530b2c07dfdfaf55de383cd82212) + - [Support searching for an issue with its number in the list of issues](https://codeberg.org/forgejo/forgejo/commit/1144b1d129de530b2c07dfdfaf55de383cd82212) - [Improve the list of notifications](https://codeberg.org/forgejo/forgejo/commit/f7ede92f82f7f3ec7bb31a1249f9524e5b728f34) - [When editing a file in the web UI, allow for a preview whenever possible](https://codeberg.org/forgejo/forgejo/commit/ac64c8297444ade63a2a364c4afb7e6c1de5a75f) - [Make release download URLs human readable](https://codeberg.org/forgejo/forgejo/commit/42919ccb7cd32ab67d0878baf2bac6cd007899a8) @@ -1778,7 +1798,7 @@ $ git -C forgejo log --oneline --no-merges origin/v1.19/forgejo..origin/v1.20/fo - [Add API for gitignore templates](https://codeberg.org/forgejo/forgejo/commit/36a5d4c2f3b5670e5e921034cd5d25817534a6d4) - [Add API to upuload a file to an empty repository](https://codeberg.org/forgejo/forgejo/commit/cf465b472166ccf6d3e001e3043e4bf43e16e6b3) - [Allow for --not when listing the commits of a repo](https://codeberg.org/forgejo/forgejo/commit/f766b002938b5c81e343c81fda3c0669fa09809f) - - [Add `files` and `verification` parameters to improve performances when listing the commits of a a repo](https://codeberg.org/forgejo/forgejo/commit/1dd83dbb917d55bd253001646d6743f247a4d98b) + - [Add `files` and `verification` parameters to improve performances when listing the commits of a repo](https://codeberg.org/forgejo/forgejo/commit/1dd83dbb917d55bd253001646d6743f247a4d98b) - [Allow for listing a single commit in a repository](https://codeberg.org/forgejo/forgejo/commit/5930ab5fdf7a970fcca3cd50b44cf1cacb615a54) - [Create a branch directly from commit on the create branch API](https://codeberg.org/forgejo/forgejo/commit/cd9a13ebb47d32f46b38439a524e3b2e0c619490) - [Add API for Label templates](https://codeberg.org/forgejo/forgejo/commit/25dc1556cd70b567a4920beb002a0addfbfd6ef2) diff --git a/assets/go-licenses.json b/assets/go-licenses.json index 89fa08074c..2c6bf78ec7 100644 --- a/assets/go-licenses.json +++ b/assets/go-licenses.json @@ -24,6 +24,11 @@ "path": "code.forgejo.org/forgejo/reply/LICENSE", "licenseText": "MIT License\n\nCopyright (c) The Forgejo Authors\nCopyright (c) Discourse\nCopyright (c) Claudemiro\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": "code.forgejo.org/go-chi/binding", + "path": "code.forgejo.org/go-chi/binding/LICENSE", + "licenseText": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n\"License\" shall mean the terms and conditions for use, reproduction, and\ndistribution as defined by Sections 1 through 9 of this document.\n\n\"Licensor\" shall mean the copyright owner or entity authorized by the copyright\nowner that is granting the License.\n\n\"Legal Entity\" shall mean the union of the acting entity and all other entities\nthat control, are controlled by, or are under common control with that entity.\nFor the purposes of this definition, \"control\" means (i) the power, direct or\nindirect, to cause the direction or management of such entity, whether by\ncontract or otherwise, or (ii) ownership of fifty percent (50%) or more of the\noutstanding shares, or (iii) beneficial ownership of such entity.\n\n\"You\" (or \"Your\") shall mean an individual or Legal Entity exercising\npermissions granted by this License.\n\n\"Source\" form shall mean the preferred form for making modifications, including\nbut not limited to software source code, documentation source, and configuration\nfiles.\n\n\"Object\" form shall mean any form resulting from mechanical transformation or\ntranslation of a Source form, including but not limited to compiled object code,\ngenerated documentation, and conversions to other media types.\n\n\"Work\" shall mean the work of authorship, whether in Source or Object form, made\navailable under the License, as indicated by a copyright notice that is included\nin or attached to the work (an example is provided in the Appendix below).\n\n\"Derivative Works\" shall mean any work, whether in Source or Object form, that\nis based on (or derived from) the Work and for which the editorial revisions,\nannotations, elaborations, or other modifications represent, as a whole, an\noriginal work of authorship. For the purposes of this License, Derivative Works\nshall not include works that remain separable from, or merely link (or bind by\nname) to the interfaces of, the Work and Derivative Works thereof.\n\n\"Contribution\" shall mean any work of authorship, including the original version\nof the Work and any modifications or additions to that Work or Derivative Works\nthereof, that is intentionally submitted to Licensor for inclusion in the Work\nby the copyright owner or by an individual or Legal Entity authorized to submit\non behalf of the copyright owner. For the purposes of this definition,\n\"submitted\" means any form of electronic, verbal, or written communication sent\nto the Licensor or its representatives, including but not limited to\ncommunication on electronic mailing lists, source code control systems, and\nissue tracking systems that are managed by, or on behalf of, the Licensor for\nthe purpose of discussing and improving the Work, but excluding communication\nthat is conspicuously marked or otherwise designated in writing by the copyright\nowner as \"Not a Contribution.\"\n\n\"Contributor\" shall mean Licensor and any individual or Legal Entity on behalf\nof whom a Contribution has been received by Licensor and subsequently\nincorporated within the Work.\n\n2. Grant of Copyright License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable copyright license to reproduce, prepare Derivative Works of,\npublicly display, publicly perform, sublicense, and distribute the Work and such\nDerivative Works in Source or Object form.\n\n3. Grant of Patent License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable (except as stated in this section) patent license to make, have\nmade, use, offer to sell, sell, import, and otherwise transfer the Work, where\nsuch license applies only to those patent claims licensable by such Contributor\nthat are necessarily infringed by their Contribution(s) alone or by combination\nof their Contribution(s) with the Work to which such Contribution(s) was\nsubmitted. If You institute patent litigation against any entity (including a\ncross-claim or counterclaim in a lawsuit) alleging that the Work or a\nContribution incorporated within the Work constitutes direct or contributory\npatent infringement, then any patent licenses granted to You under this License\nfor that Work shall terminate as of the date such litigation is filed.\n\n4. Redistribution.\n\nYou may reproduce and distribute copies of the Work or Derivative Works thereof\nin any medium, with or without modifications, and in Source or Object form,\nprovided that You meet the following conditions:\n\nYou must give any other recipients of the Work or Derivative Works a copy of\nthis License; and\nYou must cause any modified files to carry prominent notices stating that You\nchanged the files; and\nYou must retain, in the Source form of any Derivative Works that You distribute,\nall copyright, patent, trademark, and attribution notices from the Source form\nof the Work, excluding those notices that do not pertain to any part of the\nDerivative Works; and\nIf the Work includes a \"NOTICE\" text file as part of its distribution, then any\nDerivative Works that You distribute must include a readable copy of the\nattribution notices contained within such NOTICE file, excluding those notices\nthat do not pertain to any part of the Derivative Works, in at least one of the\nfollowing places: within a NOTICE text file distributed as part of the\nDerivative Works; within the Source form or documentation, if provided along\nwith the Derivative Works; or, within a display generated by the Derivative\nWorks, if and wherever such third-party notices normally appear. The contents of\nthe NOTICE file are for informational purposes only and do not modify the\nLicense. You may add Your own attribution notices within Derivative Works that\nYou distribute, alongside or as an addendum to the NOTICE text from the Work,\nprovided that such additional attribution notices cannot be construed as\nmodifying the License.\nYou may add Your own copyright statement to Your modifications and may provide\nadditional or different license terms and conditions for use, reproduction, or\ndistribution of Your modifications, or for any such Derivative Works as a whole,\nprovided Your use, reproduction, and distribution of the Work otherwise complies\nwith the conditions stated in this License.\n\n5. Submission of Contributions.\n\nUnless You explicitly state otherwise, any Contribution intentionally submitted\nfor inclusion in the Work by You to the Licensor shall be under the terms and\nconditions of this License, without any additional terms or conditions.\nNotwithstanding the above, nothing herein shall supersede or modify the terms of\nany separate license agreement you may have executed with Licensor regarding\nsuch Contributions.\n\n6. Trademarks.\n\nThis License does not grant permission to use the trade names, trademarks,\nservice marks, or product names of the Licensor, except as required for\nreasonable and customary use in describing the origin of the Work and\nreproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty.\n\nUnless required by applicable law or agreed to in writing, Licensor provides the\nWork (and each Contributor provides its Contributions) on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,\nincluding, without limitation, any warranties or conditions of TITLE,\nNON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are\nsolely responsible for determining the appropriateness of using or\nredistributing the Work and assume any risks associated with Your exercise of\npermissions under this License.\n\n8. Limitation of Liability.\n\nIn no event and under no legal theory, whether in tort (including negligence),\ncontract, or otherwise, unless required by applicable law (such as deliberate\nand grossly negligent acts) or agreed to in writing, shall any Contributor be\nliable to You for damages, including any direct, indirect, special, incidental,\nor consequential damages of any character arising as a result of this License or\nout of the use or inability to use the Work (including but not limited to\ndamages for loss of goodwill, work stoppage, computer failure or malfunction, or\nany and all other commercial damages or losses), even if such Contributor has\nbeen advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability.\n\nWhile redistributing the Work or Derivative Works thereof, You may choose to\noffer, and charge a fee for, acceptance of support, warranty, indemnity, or\nother liability obligations and/or rights consistent with this License. However,\nin accepting such obligations, You may act only on Your own behalf and on Your\nsole responsibility, not on behalf of any other Contributor, and only if You\nagree to indemnify, defend, and hold each Contributor harmless for any liability\nincurred by, or claims asserted against, such Contributor by reason of your\naccepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work\n\nTo apply the Apache License to your work, attach the following boilerplate\nnotice, with the fields enclosed by brackets \"[]\" replaced with your own\nidentifying information. (Don't include the brackets!) The text should be\nenclosed in the appropriate comment syntax for the file format. We also\nrecommend that a file or class name and description of purpose be included on\nthe same \"printed page\" as the copyright notice for easier identification within\nthird-party archives.\n\n Copyright [yyyy] [name of copyright owner]\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License." + }, { "name": "code.forgejo.org/go-chi/cache", "path": "code.forgejo.org/go-chi/cache/LICENSE", @@ -74,16 +79,16 @@ "path": "git.sr.ht/~mariusor/go-xsd-duration/LICENSE", "licenseText": "MIT License\n\nCopyright (c) 2019 Go xsd:duration\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": "gitea.com/go-chi/binding", - "path": "gitea.com/go-chi/binding/LICENSE", - "licenseText": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n\"License\" shall mean the terms and conditions for use, reproduction, and\ndistribution as defined by Sections 1 through 9 of this document.\n\n\"Licensor\" shall mean the copyright owner or entity authorized by the copyright\nowner that is granting the License.\n\n\"Legal Entity\" shall mean the union of the acting entity and all other entities\nthat control, are controlled by, or are under common control with that entity.\nFor the purposes of this definition, \"control\" means (i) the power, direct or\nindirect, to cause the direction or management of such entity, whether by\ncontract or otherwise, or (ii) ownership of fifty percent (50%) or more of the\noutstanding shares, or (iii) beneficial ownership of such entity.\n\n\"You\" (or \"Your\") shall mean an individual or Legal Entity exercising\npermissions granted by this License.\n\n\"Source\" form shall mean the preferred form for making modifications, including\nbut not limited to software source code, documentation source, and configuration\nfiles.\n\n\"Object\" form shall mean any form resulting from mechanical transformation or\ntranslation of a Source form, including but not limited to compiled object code,\ngenerated documentation, and conversions to other media types.\n\n\"Work\" shall mean the work of authorship, whether in Source or Object form, made\navailable under the License, as indicated by a copyright notice that is included\nin or attached to the work (an example is provided in the Appendix below).\n\n\"Derivative Works\" shall mean any work, whether in Source or Object form, that\nis based on (or derived from) the Work and for which the editorial revisions,\nannotations, elaborations, or other modifications represent, as a whole, an\noriginal work of authorship. For the purposes of this License, Derivative Works\nshall not include works that remain separable from, or merely link (or bind by\nname) to the interfaces of, the Work and Derivative Works thereof.\n\n\"Contribution\" shall mean any work of authorship, including the original version\nof the Work and any modifications or additions to that Work or Derivative Works\nthereof, that is intentionally submitted to Licensor for inclusion in the Work\nby the copyright owner or by an individual or Legal Entity authorized to submit\non behalf of the copyright owner. For the purposes of this definition,\n\"submitted\" means any form of electronic, verbal, or written communication sent\nto the Licensor or its representatives, including but not limited to\ncommunication on electronic mailing lists, source code control systems, and\nissue tracking systems that are managed by, or on behalf of, the Licensor for\nthe purpose of discussing and improving the Work, but excluding communication\nthat is conspicuously marked or otherwise designated in writing by the copyright\nowner as \"Not a Contribution.\"\n\n\"Contributor\" shall mean Licensor and any individual or Legal Entity on behalf\nof whom a Contribution has been received by Licensor and subsequently\nincorporated within the Work.\n\n2. Grant of Copyright License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable copyright license to reproduce, prepare Derivative Works of,\npublicly display, publicly perform, sublicense, and distribute the Work and such\nDerivative Works in Source or Object form.\n\n3. Grant of Patent License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable (except as stated in this section) patent license to make, have\nmade, use, offer to sell, sell, import, and otherwise transfer the Work, where\nsuch license applies only to those patent claims licensable by such Contributor\nthat are necessarily infringed by their Contribution(s) alone or by combination\nof their Contribution(s) with the Work to which such Contribution(s) was\nsubmitted. If You institute patent litigation against any entity (including a\ncross-claim or counterclaim in a lawsuit) alleging that the Work or a\nContribution incorporated within the Work constitutes direct or contributory\npatent infringement, then any patent licenses granted to You under this License\nfor that Work shall terminate as of the date such litigation is filed.\n\n4. Redistribution.\n\nYou may reproduce and distribute copies of the Work or Derivative Works thereof\nin any medium, with or without modifications, and in Source or Object form,\nprovided that You meet the following conditions:\n\nYou must give any other recipients of the Work or Derivative Works a copy of\nthis License; and\nYou must cause any modified files to carry prominent notices stating that You\nchanged the files; and\nYou must retain, in the Source form of any Derivative Works that You distribute,\nall copyright, patent, trademark, and attribution notices from the Source form\nof the Work, excluding those notices that do not pertain to any part of the\nDerivative Works; and\nIf the Work includes a \"NOTICE\" text file as part of its distribution, then any\nDerivative Works that You distribute must include a readable copy of the\nattribution notices contained within such NOTICE file, excluding those notices\nthat do not pertain to any part of the Derivative Works, in at least one of the\nfollowing places: within a NOTICE text file distributed as part of the\nDerivative Works; within the Source form or documentation, if provided along\nwith the Derivative Works; or, within a display generated by the Derivative\nWorks, if and wherever such third-party notices normally appear. The contents of\nthe NOTICE file are for informational purposes only and do not modify the\nLicense. You may add Your own attribution notices within Derivative Works that\nYou distribute, alongside or as an addendum to the NOTICE text from the Work,\nprovided that such additional attribution notices cannot be construed as\nmodifying the License.\nYou may add Your own copyright statement to Your modifications and may provide\nadditional or different license terms and conditions for use, reproduction, or\ndistribution of Your modifications, or for any such Derivative Works as a whole,\nprovided Your use, reproduction, and distribution of the Work otherwise complies\nwith the conditions stated in this License.\n\n5. Submission of Contributions.\n\nUnless You explicitly state otherwise, any Contribution intentionally submitted\nfor inclusion in the Work by You to the Licensor shall be under the terms and\nconditions of this License, without any additional terms or conditions.\nNotwithstanding the above, nothing herein shall supersede or modify the terms of\nany separate license agreement you may have executed with Licensor regarding\nsuch Contributions.\n\n6. Trademarks.\n\nThis License does not grant permission to use the trade names, trademarks,\nservice marks, or product names of the Licensor, except as required for\nreasonable and customary use in describing the origin of the Work and\nreproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty.\n\nUnless required by applicable law or agreed to in writing, Licensor provides the\nWork (and each Contributor provides its Contributions) on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,\nincluding, without limitation, any warranties or conditions of TITLE,\nNON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are\nsolely responsible for determining the appropriateness of using or\nredistributing the Work and assume any risks associated with Your exercise of\npermissions under this License.\n\n8. Limitation of Liability.\n\nIn no event and under no legal theory, whether in tort (including negligence),\ncontract, or otherwise, unless required by applicable law (such as deliberate\nand grossly negligent acts) or agreed to in writing, shall any Contributor be\nliable to You for damages, including any direct, indirect, special, incidental,\nor consequential damages of any character arising as a result of this License or\nout of the use or inability to use the Work (including but not limited to\ndamages for loss of goodwill, work stoppage, computer failure or malfunction, or\nany and all other commercial damages or losses), even if such Contributor has\nbeen advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability.\n\nWhile redistributing the Work or Derivative Works thereof, You may choose to\noffer, and charge a fee for, acceptance of support, warranty, indemnity, or\nother liability obligations and/or rights consistent with this License. However,\nin accepting such obligations, You may act only on Your own behalf and on Your\nsole responsibility, not on behalf of any other Contributor, and only if You\nagree to indemnify, defend, and hold each Contributor harmless for any liability\nincurred by, or claims asserted against, such Contributor by reason of your\naccepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work\n\nTo apply the Apache License to your work, attach the following boilerplate\nnotice, with the fields enclosed by brackets \"[]\" replaced with your own\nidentifying information. (Don't include the brackets!) The text should be\nenclosed in the appropriate comment syntax for the file format. We also\nrecommend that a file or class name and description of purpose be included on\nthe same \"printed page\" as the copyright notice for easier identification within\nthird-party archives.\n\n Copyright [yyyy] [name of copyright owner]\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License." - }, { "name": "gitea.com/lunny/levelqueue", "path": "gitea.com/lunny/levelqueue/LICENSE", "licenseText": "Copyright (c) 2019 Lunny Xiao\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/42wim/httpsig", + "path": "github.com/42wim/httpsig/LICENSE", + "licenseText": "BSD 3-Clause License\n\nCopyright (c) 2018, go-fed\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" + }, { "name": "github.com/42wim/sshsig", "path": "github.com/42wim/sshsig/LICENSE", @@ -292,7 +297,7 @@ { "name": "github.com/cyphar/filepath-securejoin", "path": "github.com/cyphar/filepath-securejoin/LICENSE", - "licenseText": "Copyright (C) 2014-2015 Docker Inc \u0026 Go Authors. All rights reserved.\nCopyright (C) 2017 SUSE LLC. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" + "licenseText": "Copyright (C) 2014-2015 Docker Inc \u0026 Go Authors. All rights reserved.\nCopyright (C) 2017-2024 SUSE LLC. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" }, { "name": "github.com/davecgh/go-spew/spew", @@ -567,7 +572,7 @@ { "name": "github.com/gorilla/sessions", "path": "github.com/gorilla/sessions/LICENSE", - "licenseText": "Copyright (c) 2023 The Gorilla Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n\t * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n\t * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" + "licenseText": "Copyright (c) 2024 The Gorilla Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n\t * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n\t * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" }, { "name": "github.com/hashicorp/go-cleanhttp", @@ -610,8 +615,8 @@ "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2014 Juan Batiz-Benet\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/jhillyerd/enmime", - "path": "github.com/jhillyerd/enmime/LICENSE", + "name": "github.com/jhillyerd/enmime/v2", + "path": "github.com/jhillyerd/enmime/v2/LICENSE", "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2012-2016 James Hillyerd, All Rights Reserved\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject 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, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n" }, { @@ -715,8 +720,8 @@ "licenseText": "MIT License\n\nCopyright (c) 2020-2024 Meili SAS\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/mholt/acmez/v2", - "path": "github.com/mholt/acmez/v2/LICENSE", + "name": "github.com/mholt/acmez/v3", + "path": "github.com/mholt/acmez/v3/LICENSE", "licenseText": " Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"[]\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\n Copyright [yyyy] [name of copyright owner]\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n" }, { @@ -759,6 +764,11 @@ "path": "github.com/modern-go/reflect2/LICENSE", "licenseText": " Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"[]\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\n Copyright [yyyy] [name of copyright owner]\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n" }, + { + "name": "github.com/munnerz/goautoneg", + "path": "github.com/munnerz/goautoneg/LICENSE", + "licenseText": "Copyright (c) 2011, Open Knowledge Foundation Ltd.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the\n distribution.\n\n Neither the name of the Open Knowledge Foundation Ltd. nor the\n names of its contributors may be used to endorse or promote\n products derived from this software without specific prior written\n permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" + }, { "name": "github.com/nektos/act/pkg", "path": "github.com/nektos/act/pkg/LICENSE", @@ -807,7 +817,7 @@ { "name": "github.com/pjbgf/sha1cd", "path": "github.com/pjbgf/sha1cd/LICENSE", - "licenseText": " Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"[]\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\n Copyright [yyyy] [name of copyright owner]\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n" + "licenseText": " Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"[]\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\n Copyright 2023 pjbgf\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n" }, { "name": "github.com/pkg/errors", @@ -824,6 +834,11 @@ "path": "github.com/pquerna/otp/LICENSE", "licenseText": "\n Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"[]\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\n Copyright [yyyy] [name of copyright owner]\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n" }, + { + "name": "github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil", + "path": "github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil/LICENSE", + "licenseText": "Copyright (c) 2013 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" + }, { "name": "github.com/prometheus/client_golang/prometheus", "path": "github.com/prometheus/client_golang/prometheus/LICENSE", @@ -934,11 +949,6 @@ "path": "github.com/x448/float16/LICENSE", "licenseText": "MIT License\n\nCopyright (c) 2019 Montgomery Edwardsâ´â´â¸ and Faye Amacker\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\n" }, - { - "name": "github.com/xanzy/go-gitlab", - "path": "github.com/xanzy/go-gitlab/LICENSE", - "licenseText": " Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"{}\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\n Copyright {yyyy} {name of copyright owner}\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n" - }, { "name": "github.com/xanzy/ssh-agent", "path": "github.com/xanzy/ssh-agent/LICENSE", @@ -969,6 +979,11 @@ "path": "github.com/zeebo/blake3/LICENSE", "licenseText": "This work is released into the public domain with CC0 1.0.\n\n-------------------------------------------------------------------------------\n\nCreative Commons Legal Code\n\nCC0 1.0 Universal\n\n CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE\n LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN\n ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS\n INFORMATION ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES\n REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS\n PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM\n THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED\n HEREUNDER.\n\nStatement of Purpose\n\nThe laws of most jurisdictions throughout the world automatically confer\nexclusive Copyright and Related Rights (defined below) upon the creator\nand subsequent owner(s) (each and all, an \"owner\") of an original work of\nauthorship and/or a database (each, a \"Work\").\n\nCertain owners wish to permanently relinquish those rights to a Work for\nthe purpose of contributing to a commons of creative, cultural and\nscientific works (\"Commons\") that the public can reliably and without fear\nof later claims of infringement build upon, modify, incorporate in other\nworks, reuse and redistribute as freely as possible in any form whatsoever\nand for any purposes, including without limitation commercial purposes.\nThese owners may contribute to the Commons to promote the ideal of a free\nculture and the further production of creative, cultural and scientific\nworks, or to gain reputation or greater distribution for their Work in\npart through the use and efforts of others.\n\nFor these and/or other purposes and motivations, and without any\nexpectation of additional consideration or compensation, the person\nassociating CC0 with a Work (the \"Affirmer\"), to the extent that he or she\nis an owner of Copyright and Related Rights in the Work, voluntarily\nelects to apply CC0 to the Work and publicly distribute the Work under its\nterms, with knowledge of his or her Copyright and Related Rights in the\nWork and the meaning and intended legal effect of CC0 on those rights.\n\n1. Copyright and Related Rights. A Work made available under CC0 may be\nprotected by copyright and related or neighboring rights (\"Copyright and\nRelated Rights\"). Copyright and Related Rights include, but are not\nlimited to, the following:\n\n i. the right to reproduce, adapt, distribute, perform, display,\n communicate, and translate a Work;\n ii. moral rights retained by the original author(s) and/or performer(s);\niii. publicity and privacy rights pertaining to a person's image or\n likeness depicted in a Work;\n iv. rights protecting against unfair competition in regards to a Work,\n subject to the limitations in paragraph 4(a), below;\n v. rights protecting the extraction, dissemination, use and reuse of data\n in a Work;\n vi. database rights (such as those arising under Directive 96/9/EC of the\n European Parliament and of the Council of 11 March 1996 on the legal\n protection of databases, and under any national implementation\n thereof, including any amended or successor version of such\n directive); and\nvii. other similar, equivalent or corresponding rights throughout the\n world based on applicable law or treaty, and any national\n implementations thereof.\n\n2. Waiver. To the greatest extent permitted by, but not in contravention\nof, applicable law, Affirmer hereby overtly, fully, permanently,\nirrevocably and unconditionally waives, abandons, and surrenders all of\nAffirmer's Copyright and Related Rights and associated claims and causes\nof action, whether now known or unknown (including existing as well as\nfuture claims and causes of action), in the Work (i) in all territories\nworldwide, (ii) for the maximum duration provided by applicable law or\ntreaty (including future time extensions), (iii) in any current or future\nmedium and for any number of copies, and (iv) for any purpose whatsoever,\nincluding without limitation commercial, advertising or promotional\npurposes (the \"Waiver\"). Affirmer makes the Waiver for the benefit of each\nmember of the public at large and to the detriment of Affirmer's heirs and\nsuccessors, fully intending that such Waiver shall not be subject to\nrevocation, rescission, cancellation, termination, or any other legal or\nequitable action to disrupt the quiet enjoyment of the Work by the public\nas contemplated by Affirmer's express Statement of Purpose.\n\n3. Public License Fallback. Should any part of the Waiver for any reason\nbe judged legally invalid or ineffective under applicable law, then the\nWaiver shall be preserved to the maximum extent permitted taking into\naccount Affirmer's express Statement of Purpose. In addition, to the\nextent the Waiver is so judged Affirmer hereby grants to each affected\nperson a royalty-free, non transferable, non sublicensable, non exclusive,\nirrevocable and unconditional license to exercise Affirmer's Copyright and\nRelated Rights in the Work (i) in all territories worldwide, (ii) for the\nmaximum duration provided by applicable law or treaty (including future\ntime extensions), (iii) in any current or future medium and for any number\nof copies, and (iv) for any purpose whatsoever, including without\nlimitation commercial, advertising or promotional purposes (the\n\"License\"). The License shall be deemed effective as of the date CC0 was\napplied by Affirmer to the Work. Should any part of the License for any\nreason be judged legally invalid or ineffective under applicable law, such\npartial invalidity or ineffectiveness shall not invalidate the remainder\nof the License, and in such case Affirmer hereby affirms that he or she\nwill not (i) exercise any of his or her remaining Copyright and Related\nRights in the Work or (ii) assert any associated claims and causes of\naction with respect to the Work, in either case contrary to Affirmer's\nexpress Statement of Purpose.\n\n4. Limitations and Disclaimers.\n\n a. No trademark or patent rights held by Affirmer are waived, abandoned,\n surrendered, licensed or otherwise affected by this document.\n b. Affirmer offers the Work as-is and makes no representations or\n warranties of any kind concerning the Work, express, implied,\n statutory or otherwise, including without limitation warranties of\n title, merchantability, fitness for a particular purpose, non\n infringement, or the absence of latent or other defects, accuracy, or\n the present or absence of errors, whether or not discoverable, all to\n the greatest extent permissible under applicable law.\n c. Affirmer disclaims responsibility for clearing rights of other persons\n that may apply to the Work or any use thereof, including without\n limitation any person's Copyright and Related Rights in the Work.\n Further, Affirmer disclaims responsibility for obtaining any necessary\n consents, permissions or other rights required for any use of the\n Work.\n d. Affirmer understands and acknowledges that Creative Commons is not a\n party to this document and has no duty or obligation with respect to\n this CC0 or use of the Work.\n" }, + { + "name": "gitlab.com/gitlab-org/api/client-go", + "path": "gitlab.com/gitlab-org/api/client-go/LICENSE", + "licenseText": " Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"{}\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\n Copyright {yyyy} {name of copyright owner}\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n" + }, { "name": "go.etcd.io/bbolt", "path": "go.etcd.io/bbolt/LICENSE", @@ -989,6 +1004,11 @@ "path": "go.uber.org/zap/LICENSE", "licenseText": "Copyright (c) 2016-2017 Uber Technologies, Inc.\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": "go.uber.org/zap/exp/zapslog", + "path": "go.uber.org/zap/exp/zapslog/LICENSE", + "licenseText": "Copyright (c) 2016-2024 Uber Technologies, Inc.\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": "golang.org/x/crypto", "path": "golang.org/x/crypto/LICENSE", @@ -1032,7 +1052,7 @@ { "name": "golang.org/x/time/rate", "path": "golang.org/x/time/rate/LICENSE", - "licenseText": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" + "licenseText": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" }, { "name": "google.golang.org/genproto/googleapis/rpc/status", diff --git a/build.go b/build.go index 234579b514..d410e171c7 100644 --- a/build.go +++ b/build.go @@ -11,13 +11,4 @@ package main import ( // for embed _ "github.com/shurcooL/vfsgen" - - // for cover merge - _ "golang.org/x/tools/cover" - - // for vet - _ "code.gitea.io/gitea-vet" - - // for swagger - _ "github.com/go-swagger/go-swagger/cmd/swagger" ) diff --git a/build/generate-disposable-email.go b/build/generate-disposable-email.go new file mode 100644 index 0000000000..f87df088c5 --- /dev/null +++ b/build/generate-disposable-email.go @@ -0,0 +1,203 @@ +// Copyright 2024 James Hatfield +// SPDX-License-Identifier: MIT + +//go:build ignore + +package main + +import ( + "bufio" + "bytes" + "crypto" + "flag" + "fmt" + "go/format" + "io" + "log" + "net/http" + "os" + "regexp" + "strings" +) + +const disposableEmailListURL string = "https://raw.githubusercontent.com/disposable-email-domains/disposable-email-domains/%s/disposable_email_blocklist.conf" + +var ( + gitRef *string = flag.String("r", "master", "Git reference of the domain list version") + outPat *string = flag.String("o", "modules/setting/disposable_email_domain_data.go", "Output path") + check *bool = flag.Bool("check", false, "Check if the current output file matches the current upstream list") +) + +func main() { + flag.Parse() + + if *check { + // read in the local copy of the domain list + local, err := get_local_file() + if err != nil { + log.Fatalf("File Read Error: %v", err) + } + + // generate the remote copy of the domain list + remote, err := generate() + if err != nil { + log.Fatalf("Generation Error: %v", err) + } + + // strip the comments from both (so we dont fail simply due to git ref difference) + local = strip_comments(local) + remote = strip_comments(remote) + + // generate the hash of the local copy + local_sha, err := hash(local) + if err != nil { + log.Fatalf("Local Hash Generation Error: %v", err) + } + + // generate the hash of the remote copy + remote_sha, err := hash(remote) + if err != nil { + log.Fatalf("Remote Hash Generation Error: %v", err) + } + + // if the hashes dont match then the local copy needs to be updated + if local_sha != remote_sha { + log.Fatalf("Disposable email domain list needs to be updated!! \"make lint-disposable-emails-fix\"") + } + } else { + // generate the source code (array of domains) + res, err := generate() + if err != nil { + log.Fatalf("Generation Error: %v", err) + } + + // write result to a file + err = os.WriteFile(*outPat, res, 0o644) + if err != nil { + log.Fatalf("File Write Error: %v", err) + } + } +} + +func strip_comments(data []byte) []byte { + result := make([]byte, 0, len(data)) + + re := regexp.MustCompile(`^\W*//.*$`) + + for _, line := range bytes.Split(data, []byte("\n")) { + if !re.Match(line) { + result = append(result, line...) + } + } + + return result +} + +func hash(data []byte) (string, error) { + var err error + + hash := crypto.SHA3_256.New() + + _, err = hash.Write(data) + if err != nil { + return "", err + } + + return fmt.Sprintf("%x", hash.Sum(nil)), err +} + +func get_local_file() ([]byte, error) { + var err error + + f, err := os.Open(*outPat) + if err != nil { + return nil, err + } + defer f.Close() + + data, err := io.ReadAll(f) + if err != nil { + return nil, err + } + + return data, err +} + +func get_remote() ([]string, error) { + var err error + var url string = fmt.Sprintf(disposableEmailListURL, *gitRef) + + // download the domain list + res, err := http.Get(url) + if err != nil { + return nil, err + } + defer res.Body.Close() + + body, err := io.ReadAll(res.Body) + if err != nil { + return nil, err + } + + // go through all entries (1 domain per line) + scanner := bufio.NewScanner(bytes.NewReader(body)) + + var arrDomains []string + for scanner.Scan() { + line := scanner.Text() + arrDomains = append(arrDomains, line) + } + + return arrDomains, err +} + +func generate() ([]byte, error) { + var err error + var url string = fmt.Sprintf(disposableEmailListURL, *gitRef) + + // download the domains list + arrDomains, err := get_remote() + if err != nil { + return nil, err + } + + // build the string in a readable way + var sb strings.Builder + + _, err = sb.WriteString("[]string{\n") + if err != nil { + return nil, err + } + + for _, item := range arrDomains { + _, err = sb.WriteString(fmt.Sprintf("\t%q,\n", item)) + if err != nil { + return nil, err + } + } + + _, err = sb.WriteString("}") + if err != nil { + return nil, err + } + + // insert the values into file + final := fmt.Sprintf(hdr, url, sb.String()) + + return format.Source([]byte(final)) +} + +const hdr = ` +// Copyright 2024 James Hatfield +// SPDX-License-Identifier: MIT +// +// Code generated by build/generate-disposable-email.go. DO NOT EDIT +// Sourced from %s +package setting + +import "sync" + +var DisposableEmailDomains = sync.OnceValue(func() []string { + return %s +}) +` diff --git a/build/generate-emoji.go b/build/generate-emoji.go index 5a88e456ee..98c2f15d75 100644 --- a/build/generate-emoji.go +++ b/build/generate-emoji.go @@ -53,8 +53,6 @@ func (e Emoji) MarshalJSON() ([]byte, error) { } func main() { - var err error - flag.Parse() // generate data @@ -83,8 +81,6 @@ var replacer = strings.NewReplacer( var emojiRE = regexp.MustCompile(`\{Emoji:"([^"]*)"`) func generate() ([]byte, error) { - var err error - // load gemoji data res, err := http.Get(gemojiURL) if err != nil { diff --git a/build/gocovmerge.go b/build/gocovmerge.go deleted file mode 100644 index c6f74ed85c..0000000000 --- a/build/gocovmerge.go +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2020 The Gitea Authors. All rights reserved. -// Copyright (c) 2015, Wade Simmons -// SPDX-License-Identifier: MIT - -// gocovmerge takes the results from multiple `go test -coverprofile` runs and -// merges them into one profile - -//go:build ignore - -package main - -import ( - "flag" - "fmt" - "io" - "log" - "os" - "sort" - - "golang.org/x/tools/cover" -) - -func mergeProfiles(p, merge *cover.Profile) { - if p.Mode != merge.Mode { - log.Fatalf("cannot merge profiles with different modes") - } - // Since the blocks are sorted, we can keep track of where the last block - // was inserted and only look at the blocks after that as targets for merge - startIndex := 0 - for _, b := range merge.Blocks { - startIndex = mergeProfileBlock(p, b, startIndex) - } -} - -func mergeProfileBlock(p *cover.Profile, pb cover.ProfileBlock, startIndex int) int { - sortFunc := func(i int) bool { - pi := p.Blocks[i+startIndex] - return pi.StartLine >= pb.StartLine && (pi.StartLine != pb.StartLine || pi.StartCol >= pb.StartCol) - } - - i := 0 - if sortFunc(i) != true { - i = sort.Search(len(p.Blocks)-startIndex, sortFunc) - } - i += startIndex - if i < len(p.Blocks) && p.Blocks[i].StartLine == pb.StartLine && p.Blocks[i].StartCol == pb.StartCol { - if p.Blocks[i].EndLine != pb.EndLine || p.Blocks[i].EndCol != pb.EndCol { - log.Fatalf("OVERLAP MERGE: %v %v %v", p.FileName, p.Blocks[i], pb) - } - switch p.Mode { - case "set": - p.Blocks[i].Count |= pb.Count - case "count", "atomic": - p.Blocks[i].Count += pb.Count - default: - log.Fatalf("unsupported covermode: '%s'", p.Mode) - } - } else { - if i > 0 { - pa := p.Blocks[i-1] - if pa.EndLine >= pb.EndLine && (pa.EndLine != pb.EndLine || pa.EndCol > pb.EndCol) { - log.Fatalf("OVERLAP BEFORE: %v %v %v", p.FileName, pa, pb) - } - } - if i < len(p.Blocks)-1 { - pa := p.Blocks[i+1] - if pa.StartLine <= pb.StartLine && (pa.StartLine != pb.StartLine || pa.StartCol < pb.StartCol) { - log.Fatalf("OVERLAP AFTER: %v %v %v", p.FileName, pa, pb) - } - } - p.Blocks = append(p.Blocks, cover.ProfileBlock{}) - copy(p.Blocks[i+1:], p.Blocks[i:]) - p.Blocks[i] = pb - } - return i + 1 -} - -func addProfile(profiles []*cover.Profile, p *cover.Profile) []*cover.Profile { - i := sort.Search(len(profiles), func(i int) bool { return profiles[i].FileName >= p.FileName }) - if i < len(profiles) && profiles[i].FileName == p.FileName { - mergeProfiles(profiles[i], p) - } else { - profiles = append(profiles, nil) - copy(profiles[i+1:], profiles[i:]) - profiles[i] = p - } - return profiles -} - -func dumpProfiles(profiles []*cover.Profile, out io.Writer) { - if len(profiles) == 0 { - return - } - fmt.Fprintf(out, "mode: %s\n", profiles[0].Mode) - for _, p := range profiles { - for _, b := range p.Blocks { - fmt.Fprintf(out, "%s:%d.%d,%d.%d %d %d\n", p.FileName, b.StartLine, b.StartCol, b.EndLine, b.EndCol, b.NumStmt, b.Count) - } - } -} - -func main() { - flag.Parse() - - var merged []*cover.Profile - - for _, file := range flag.Args() { - profiles, err := cover.ParseProfiles(file) - if err != nil { - log.Fatalf("failed to parse profile '%s': %v", file, err) - } - for _, p := range profiles { - merged = addProfile(merged, p) - } - } - - dumpProfiles(merged, os.Stdout) -} diff --git a/build/lint-locale.go b/build/lint-locale.go new file mode 100644 index 0000000000..44d320994c --- /dev/null +++ b/build/lint-locale.go @@ -0,0 +1,155 @@ +// Copyright 2024 The Forgejo Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +//nolint:forbidigo +package main + +import ( + "fmt" + "html" + "io/fs" + "os" + "path/filepath" + "regexp" + "slices" + "strings" + + "github.com/microcosm-cc/bluemonday" + "github.com/sergi/go-diff/diffmatchpatch" + "gopkg.in/ini.v1" //nolint:depguard +) + +var ( + policy *bluemonday.Policy + tagRemover *strings.Replacer + safeURL = "https://TO-BE-REPLACED.COM" + + // Matches href="", href="#", href="%s", href="#%s", href="%[1]s" and href="#%[1]s". + placeHolderRegex = regexp.MustCompile(`href="#?(%s|%\[\d\]s)?"`) +) + +func initBlueMondayPolicy() { + policy = bluemonday.NewPolicy() + + policy.RequireParseableURLs(true) + policy.AllowURLSchemes("https") + + // Only allow safe URL on href. + // Only allow target="_blank". + // Only allow rel="nopener noreferrer", rel="noopener" and rel="noreferrer". + // Only allow placeholder on id and class. + policy.AllowAttrs("href").Matching(regexp.MustCompile("^" + regexp.QuoteMeta(safeURL) + "$")).OnElements("a") + policy.AllowAttrs("target").Matching(regexp.MustCompile("^_blank$")).OnElements("a") + policy.AllowAttrs("rel").Matching(regexp.MustCompile("^(noopener|noreferrer|noopener noreferrer)$")).OnElements("a") + policy.AllowAttrs("id", "class").Matching(regexp.MustCompile(`^%s|%\[\d\]s$`)).OnElements("a") + + // Only allow positional placeholder as class. + positionalPlaceholderRe := regexp.MustCompile(`^%\[\d\]s$`) + policy.AllowAttrs("class").Matching(positionalPlaceholderRe).OnElements("strong") + policy.AllowAttrs("id").Matching(positionalPlaceholderRe).OnElements("code") + + // Allowed elements with no attributes. Must be a recognized tagname. + policy.AllowElements("strong", "br", "b", "strike", "code", "i") + + // TODO: Remove in `actions.workflow.dispatch.trigger_found`. + policy.AllowNoAttrs().OnElements("c") +} + +func initRemoveTags() { + oldnew := []string{} + for _, el := range []string{ + "email@example.com", "correu@example.com", "epasts@domens.lv", "email@exemplo.com", "eposta@ornek.com", "email@példa.hu", "email@esempio.it", + "user", "utente", "lietotÄjs", "gebruiker", "usuário", "Benutzer", "Bruker", "bruger", + "server", "servidor", "kiszolgáló", "serveris", + "label", "etichetta", "etiÄ·ete", "rótulo", "Label", "utilizador", "etiket", "iezÄ«me", + } { + oldnew = append(oldnew, "<"+el+">", "REPLACED-TAG") + } + + tagRemover = strings.NewReplacer(oldnew...) +} + +func preprocessTranslationValue(value string) string { + // href should be a parsable URL, replace placeholder strings with a safe url. + value = placeHolderRegex.ReplaceAllString(value, `href="`+safeURL+`"`) + + // Remove tags that aren't tags but will be parsed as tags. We already know they are safe and sound. + value = tagRemover.Replace(value) + + return value +} + +func checkLocaleContent(localeContent []byte) []string { + // Same configuration as Forgejo uses. + cfg := ini.Empty(ini.LoadOptions{ + IgnoreContinuation: true, + }) + cfg.NameMapper = ini.SnackCase + + if err := cfg.Append(localeContent); err != nil { + panic(err) + } + + dmp := diffmatchpatch.New() + errors := []string{} + + for _, section := range cfg.Sections() { + for _, key := range section.Keys() { + var trKey string + if section.Name() == "" || section.Name() == "DEFAULT" || section.Name() == "common" { + trKey = key.Name() + } else { + trKey = section.Name() + "." + key.Name() + } + + keyValue := preprocessTranslationValue(key.Value()) + + if html.UnescapeString(policy.Sanitize(keyValue)) != keyValue { + // Create a nice diff of the difference. + diffs := dmp.DiffMain(keyValue, html.UnescapeString(policy.Sanitize(keyValue)), false) + diffs = dmp.DiffCleanupSemantic(diffs) + diffs = dmp.DiffCleanupEfficiency(diffs) + + errors = append(errors, trKey+": "+dmp.DiffPrettyText(diffs)) + } + } + } + return errors +} + +func main() { + initBlueMondayPolicy() + initRemoveTags() + + localeDir := filepath.Join("options", "locale") + localeFiles, err := os.ReadDir(localeDir) + if err != nil { + panic(err) + } + + if !slices.ContainsFunc(localeFiles, func(e fs.DirEntry) bool { return strings.HasSuffix(e.Name(), ".ini") }) { + fmt.Println("No locale files found") + os.Exit(1) + } + + exitCode := 0 + for _, localeFile := range localeFiles { + if !strings.HasSuffix(localeFile.Name(), ".ini") { + continue + } + + localeContent, err := os.ReadFile(filepath.Join(localeDir, localeFile.Name())) + if err != nil { + panic(err) + } + + if err := checkLocaleContent(localeContent); len(err) > 0 { + fmt.Println(localeFile.Name()) + fmt.Println(strings.Join(err, "\n")) + fmt.Println() + exitCode = 1 + } + } + + os.Exit(exitCode) +} diff --git a/build/lint-locale_test.go b/build/lint-locale_test.go new file mode 100644 index 0000000000..b33dc9af2b --- /dev/null +++ b/build/lint-locale_test.go @@ -0,0 +1,65 @@ +// Copyright 2024 The Forgejo Authors. All rights reserved. +// SPDX-License-Identifier: MIT +package main + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestLocalizationPolicy(t *testing.T) { + initBlueMondayPolicy() + initRemoveTags() + + t.Run("Remove tags", func(t *testing.T) { + assert.Empty(t, checkLocaleContent([]byte(`hidden_comment_types_description = Comment types checked here will not be shown inside issue pages. Checking "Label" for example removes all " added/removed
- - - - - milestones.filter_sort.most_issues=മികàµà´• ഇഷàµà´¯àµ‚à´•à´³àµà´‚ milestones.filter_sort.least_issues=à´•àµà´±à´žàµà´ž ഇഷàµà´¯àµ‚കളെങàµà´•à´¿à´²àµà´‚ @@ -753,18 +747,7 @@ settings.event_issues=ഇഷàµà´¯àµ‚à´•à´³àµâ€ [org] - - - - - - [admin] - - - - - repos.issues=ഇഷàµà´¯àµ‚à´•à´³àµâ€ @@ -802,4 +785,3 @@ repos.issues=ഇഷàµà´¯àµ‚à´•à´³àµâ€ [units] [packages] - diff --git a/options/locale/locale_nb_NO.ini b/options/locale/locale_nb_NO.ini index f240586837..18c9835df0 100644 --- a/options/locale/locale_nb_NO.ini +++ b/options/locale/locale_nb_NO.ini @@ -1,6 +1,3 @@ - - - [common] enable_javascript = Denne nettsiden behøver JavaScript. toc = Innholdsfortegnelse @@ -126,13 +123,26 @@ sign_out = Logg ut sign_up = Opprett konto confirm_delete_artifact = Er du sikker pÃ¥ at du vil slette artefakten "%s" ? webauthn_sign_in = Trykk pÃ¥ knappen pÃ¥ sikkerhetsnøkkelen din. Dersom nøkkelen din ikke har en knapp, sett den inn pÃ¥ nytt. +copy_path = Kopier sti +webauthn_error_unable_to_process = Tjeneren kunne ikke behandle forespørselen din. +webauthn_error_empty = Du mÃ¥ gi nøkkelen et navn. [search] search = Søk... type_tooltip = Søketype fuzzy = Fuzzy union = Union +regexp = RegExp +exact = Nøyaktig [auth] verify = Bekreft -sign_up_button = Opprett konto nÃ¥. \ No newline at end of file +sign_up_button = Opprett konto nÃ¥. +change_unconfirmed_email_error = Kan ikke endre e-postadresse: %v +login_userpass = Logg inn +oauth_signup_tab = Registrer ny konto +oauth_signup_title = Fullfør ny konto +oauth_signup_submit = Fullfør konto + +[home] +uname_holder = Brukernavn eller e-postadresse \ No newline at end of file diff --git a/options/locale/locale_nds.ini b/options/locale/locale_nds.ini index 32aded1935..7e80d116c2 100644 --- a/options/locale/locale_nds.ini +++ b/options/locale/locale_nds.ini @@ -1,6 +1,3 @@ - - - [common] home = Heimaad explore = Utförsken @@ -42,7 +39,7 @@ webauthn_error_empty = Du muttst de Slötel eenen Naam geven. repository = Repositorium organization = Vereenigung new_fork = Neje Repositoriums-Gabel -dashboard = Mien Disk +dashboard = Kontor logo = Logo active_stopwatch = Aktive Tied-Erfatens password = Passwoord @@ -52,7 +49,7 @@ email = E-Mail-Adress re_type = Passwoord utwiesen webauthn_error_unable_to_process = De Server kunn diene Anfraag nich verarbeiden. new_mirror = Nejer Spegel -webauthn_sign_in = Drück de Knopp up dienem Sekerheids-Slötel. Wenn dien Slötel keenen Knopp hett, steek ’t ut un weer in. +webauthn_sign_in = Drück de Knoop up dienem Sekerheids-Slötel. Wenn dien Slötel keenen Knoop hett, steek ’t ut un weer in. webauthn_error_insecure = WebAuthn unnerstütt blots seker Verbinnens. Wenn du över HTTP testen willst, kannst du de Quell »localhost« of »127.0.0.1« bruken webauthn_error_duplicated = De Sekerheids-Slötel is för deese Anfraag nich verlöövt. Bidde wees wiss, dat de Slötel nich al vermarkt is. webauthn_error_timeout = Tied överweggahn ehr dien Slötel lesen worden kunn. Bidde laad deese Sied neei un versöök dat noch eenmaal. @@ -98,7 +95,7 @@ copy_branch = Twiegnaam koperen copy_success = Kopeert! copy_error = Koperen fehlslagen write = Schrieven -preview = Vörschau +preview = Utkiek loading = Lädt … error = Fehler error404 = De Sied, wat du söchst, gifft dat of nich of du hest nich de Rechten, se antokieken. @@ -144,6 +141,7 @@ new_org.link = Neje Vereenigung concept_user_organization = Vereenigung filter.clear = Filters leegmaken filter.is_mirror = Spegels +copy_path = Padd koperen [search] search = Söken … @@ -152,7 +150,7 @@ fuzzy = um de Slag fuzzy_tooltip = Ok Resultaten wiesen, wat dicht to de Söökwoorden passen union = Passt union_tooltip = Resultaten wiesen, wat to eets of anner vun de mit Leegtekens trennt Söökwoorden passen -exact = Akkeraat +exact = akkeraat exact_tooltip = Blots Resultaten wiesen, wat akkeraat to de Söökwoord passen regexp = RegEx regexp_tooltip = De Söökwoord as Regel-Utdruck behanneln @@ -206,6 +204,12 @@ buttons.unindent.tooltip = Dingen um een Stand utschuven buttons.heading.tooltip = Överschrift hentofögen buttons.list.ordered.tooltip = Nummereerte List hentofögen buttons.enable_monospace_font = Fastbreden-Schrift anknipsen +buttons.new_table.tooltip = Tabell hentofögen +table_modal.header = Tabell hentofögen +table_modal.placeholder.header = Kopprieg +table_modal.placeholder.content = Inholl +table_modal.label.rows = Riegen +table_modal.label.columns = Striepen [filter] string.desc = Z – A @@ -231,7 +235,7 @@ install_desc = Du kannst dat Programm eenfach Nu anmellen! change_unconfirmed_email_error = Kann de E-Mail-Adress nich ännern: %v prohibit_login_desc = Dien Konto is daartegen sperrt worden, mit de Instanz to warken. Kuntakteer de Instanz-Chef, um weer Togang to kriegen. -resend_mail = Klick hier, um de AktiverensE-Mail neei to schicken +resend_mail = Klick hier, um de Aktiverens-E-Mail neei to schicken invalid_code_forgot_password = Diene Utwies-Tahl is ungültig of avlopen. Klick hier, um eene neje Sitzung to begünnen. verify = Utwiesen scratch_code = Eenmaalpasswoord @@ -335,6 +339,7 @@ oauth.signin.error = Bi’m Verarbeiden vun de Anmellens-Anfraag is een Fehler u openid_connect_desc = De utköört OpenID-URI is unbekannt. Verbinn dat hier mit eenem nejen Konto. openid_signin_desc = Giff diene OpenID-URI in. To’n Bispööl: alice.openid.example.org of https://openid.example.org/alice. password_pwned = Dat Passwoord, wat du utköört hest, is up eener List vun klaut Passwoorden, wat tovör in publiken Datenbröken blootmaakt worden is. Bidde versöök dat noch eenmaal mit eenem anner Passwoord, un överlegg di, of du deeses Passwoord ok annerwaar ännern willst. +use_onetime_code = Een Eenmaal-Bruuk-Passwoord bruken [mail] view_it_on = Up %s wiesen @@ -516,8 +521,8 @@ followers.title.few = Nagahers following.title.one = Gaht na followers_one = %d Nagaher followers_few = %d Nagahers -following_one = %d gaht na -following_few = %d gahn na +following_one = gaht %d na +following_few = gaht %d na follow = Nagahn unfollow = Nich mehr nagahn block_user = Bruker blockeren @@ -558,7 +563,7 @@ uid = UID webauthn = Twee-Faktooren-Anmellen (Sekerheids-Slötels) blocked_users = Blockeert Brukers public_profile = Publikes Profil -location_placeholder = Deel umslag diene Stee mit annerns +location_placeholder = Deel waar du umslags büst mit Annerns pronouns = Pronomens pronouns_custom = Eegene update_theme = Thema ännern @@ -595,7 +600,7 @@ change_password = Passwoord ännern update_password = Passwoord vernejen old_password = Stedenwies Passwoord new_password = Nejes Passwoord -theme_desc = Dat word dien normaales Thema dör de Sied wesen. +theme_desc = Deeses Thema word in de Brukerschnittstee bruukt, wenn du anmellt büst. primary = Höövd activated = Aktiveert requires_activation = Mutt aktiveert worden @@ -626,7 +631,7 @@ delete_key = Wegdoon ssh_key_deletion = SSH-Slötel wegdoon ssh_principal_deletion_success = De Höövdmann is wegdaan worden. orgs = Vereenigungen -biography_placeholder = Vertell uns een bietje wat över di! (Du kannst Markdown bruken) +biography_placeholder = Vertell annern een bietje wat över di! (Markdown word unnerstütt) change_username = Dien Brukernaam is ännert worden. ui = Thema additional_repo_units_hint_description = Wiest eenen Wenk »Mehr anknipsen« för Repositoriums, in wat nich all verföögbaar Delen anknipst sünd. @@ -716,7 +721,7 @@ manage_access_token = Togang-Tekens generate_new_token = Nejes Teken maken token_name = Teken-Naam access_token_deletion = Togang-Teken lösken -delete_token_success = Dat Teken is lösket worden. Programmen, wat dat bruken, könn nich mehr up dien Konto togriepen. +delete_token_success = Dat Teken is lösket worden. Programmen, wat dat bruken, könen nich mehr up dien Konto togriepen. repo_and_org_access = Togang to Repositoriums un Vereenigungen permissions_public_only = Blots publik permissions_access_all = All (publik, privaat un begrenzt) @@ -749,15 +754,15 @@ last_used = Tolest bruukt am ssh_signonly = SSH is stedenwies utknipst, sodat deese Slötels blots tum Utwiesen vun de Kommitterens-Unnerschrift bruukt worden. generate_token_success = Dien nejes Teken is maakt worden. Kopeer dat nu, denn dat word nich noch eenmaal wiest. delete_token = Lösken -access_token_deletion_desc = Wenn du een Teken löskest, können Programmen, wat dat bruken, nich mehr up dien Konto togriepen. Dat kann man nich torüggnehmen. Wiedermaken? +access_token_deletion_desc = Wenn du een Teken löskest, könen Programmen, wat dat bruken, nich mehr up dien Konto togriepen. Dat kann man nich torüggnehmen. Wiedermaken? oauth2_applications_desc = OAuth2-Programmen verlöövt dienen Frömdprogrammen, Brukers in deeser Forgejo-Instanz seker antomellen. remove_oauth2_application_desc = Wenn du een OAuth2-Programm wegdoost, word sien Togriep to all unnerschreven Togang-Tekens torüggnohmen. Wiedermaken? create_oauth2_application_success = Du hest een nejes OAuth2-Programm hentoföögt. oauth2_application_name = Programm-Naam save_application = Sekern oauth2_client_id = Klient-ID -oauth2_client_secret = Klient-Geheimnis -oauth2_regenerate_secret = Geheimnis neei maken +oauth2_client_secret = Klient-Geheemst +oauth2_regenerate_secret = Geheemst neei maken oauth2_application_remove_description = Wenn du een OAuth2-Programm wegdoost, kann ’t nich mehr up anmellt Brukerkonten in deeser Instanz togriepen. Wiedermaken? authorized_oauth2_applications = Anmellt OAuth2-Programmen revoke_key = Torüggnehmen @@ -775,8 +780,8 @@ update_oauth2_application_success = Du hest dat OAuth2-Programm verneeit. create_oauth2_application_button = Nejes Programm oauth2_redirect_uris = Umleit-URIs. Bidde schriev elkeen URI up eene neje Rieg. twofa_disable_desc = Wenn du Twee-Faktooren-Anmellen utknipst, is dien Konto minner seker. Wiedermaken? -oauth2_regenerate_secret_hint = Geheimnis verloren? -oauth2_client_secret_hint = Dat Geheimnis word nich weer wiest, nadeem du deese Sied verlettst of neei laadst. Bidde wees wiss, dat du ’t sekert hest. +oauth2_regenerate_secret_hint = Geheemst verloren? +oauth2_client_secret_hint = Dat Geheemst word nich weer wiest, nadeem du deese Sied verlettst of neei laadst. Bidde wees wiss, dat du ’t sekert hest. oauth2_application_edit = Bewarken twofa_is_enrolled = Dien Konto hett stedenwies Twee-Faktooren-Anmellen anknipst. twofa_enroll = Twee-Faktooren-Anmellen anknipsen @@ -785,7 +790,7 @@ oauth2_application_create_description = OAuth2-Programmen gifft dienen Frömdpro authorized_oauth2_applications_description = Du hest in deenem eegenen Forgejo-Konto deesen Frömdprogrammen Togriep geven. Bidde nimm Togriep för Programmen, wat nich mehr bruukt worden, torügg. twofa_scratch_token_regenerated = Dien Eenmaal-Bruuk-Torügghalens-Slötel is nu %s. Bewahr dat an eener sekeren Stee up, denn dat word nich noch eenmaal wiest. regenerate_scratch_token_desc = Wenn du dienen Torügghalens-Slötel verloren of al tum Anmellen bruukt hest, kannst du ’t hier torüggsetten. -twofa_failed_get_secret = Kunn dat Geheimnis nich halen. +twofa_failed_get_secret = Kunn dat Geheemst nich halen. webauthn_register_key = Sekerheids-Slötel hentofögen webauthn_nickname = Spitznaam webauthn_delete_key_desc = Wenn du eenen Sekerheids-Slötel wegdoost, kannst du di nich mehr daarmit anmellen. Wiedermaken? @@ -817,7 +822,7 @@ visibility = Bruker-Sichtbaarkeid visibility.limited_tooltip = Blots anmellt Brukers könen ’t sehn visibility.private = Privaat user_unblock_success = De Bruker is nu nich mehr blockeert. -or_enter_secret = Of giff dat Geheimnis in: %s +or_enter_secret = Of giff dat Geheemst in: %s passcode_invalid = De Pass-Tahl is falsk. Versöök dat bidde noch eenmaal. twofa_enrolled = Twee-Faktooren-Anmellen is för dien Konto nu inricht. Bewahr dienen Eenmaal-Bruuk-Toorügghalens-Slötel (%s) an eener sekeren Stee up, denn dat word nich noch eenmaal wiest. delete_prompt = Dat lösket dien Brukerkonto för all Tieden. Dat KANN NICH torüggnohmen worden. @@ -828,24 +833,26 @@ confirm_delete_account = Lösken utwiesen email_notifications.disable = Nich över E-Mail benarichtigen visibility.public_tooltip = Elkeen kann ’t sehen password_username_disabled = Frömde Brukers könen hör Brukernaam nich ännern. Bidde kuntakteer dienen Sied-Chef för mehr Informatioonen. -profile_desc = Richt in, wo dien Profil to anner Brukers wiest word. Diene Höövd-E-Mail-Adress word för Narichtens, Passwoord-Torügghalen un Git-Aktioonen över ’t Internett bruukt. -hidden_comment_types_description = Kommentaar-Arden, wat hier utköört sünd, worden in Gefall-Sieden nich wiest. Wenn du to’n Bispööl »Vermark« utköörst, worden all de » hett Vermark hentoföögt/wegdaan«-Kommentaaren wegdaan. +profile_desc = Över di +hidden_comment_types_description = Kommentaar-Arden, wat hier utköört sünd, worden in Gefall-Sieden nich wiest. Wenn du to’n Bispööl »Vermark« utköörst, worden all de »›Bruker‹ hett ›Vermark‹ hentoföögt/wegdaan«-Kommentaren wegdaan. email_desc = Diene Höövd-E-Mail-Adress word för Narichtens, Passwoord-Torügghalen un, wenn se nich verburgen is, Git-Aktioonen över ’t Internett bruukt. can_not_add_email_activations_pending = Een Aktiveren staht noch ut. Wenn du eene neje E-Mail-Adress hentofögen willst, versöök dat in een paar Menüten noch eenmaal. email_deletion_desc = De E-Mail-Adress un daarmit verbunnen Informatioon word ut dienem Konto wegdaan. Git-Kommitterens vun deeser E-Mail-Adress worden nich ännert. Wiedermaken? principal_desc = Deese SSH-Zertifikaat-Höövdmannen sünd mit dienem Konto verbunnen un geven kumpleten Togriep up diene Repositoriums. add_email_confirmation_sent = Eene Utwiesens-E-Mail is an »%s« schickt worden. Um diene E-Mail-Adress uttowiesen, kiek bidde in dienen E-Mail-Ingang un folg de Verwies daarin in de anner %s. ssh_desc = Deese publiken SSH-Slötels sünd mit dienem Konto verbunnen. De tohörig privaate Slötel gifft kumpleten Togriep up diene Repositoriums. SSH-Slötels, wat utwiest worden sünd, könen bruukt worden, um SSH-unnerschreven Git-Kommitterens uttowiesen. -keep_email_private_popup = Dat word diene E-Mail-Adress vun dienem Profil verburgen. Dann is dat nich mehr de Normaalweert för Kommitterens, wat du över de Internett-Schnittstee maakst, so as Datei-Upladens un Bewarkens, un word nich in Tosamenföhrens-Kommitterens bruukt. In Stee daarvun kann eene besünnere Adress %s bruukt worden, um Kommitterens mit dienem Konto to verbinnen. Wees wiss, dat dat Ännern vun deeser Instellen bestahn Kommitterens nich ännert. +keep_email_private_popup = Diene E-Mail-Adress word vun dienem Profil verbargen un is nich de Normaalweert för Kommitterens, wat du över de Internett-Schnittstee maakst, so as Datei-Upladens, Bewarkens un Tosamenföhrens-Kommitterens. In Stee daarvun kann eene besünnere Adress %s bruukt worden, um Kommitterens mit dienem Konto to verbinnen. Deese Instellen ännert keene bestahn Kommitterens. ssh_helper = Bruukst du Hülp? Kiek de Inföhren an, wo du diene eegenen SSH-Slötels maakst of hülp gewohnten Probleemen of, över wat man mit SSH mennigmaal strukelt. -access_token_desc = Utköört Teken-Verlöövnissen begrenzen dat Anmellen blots up de tohörig API-Padden. Lees de Dokumenteren för mehr Informatioonen. -oauth2_confidential_client = Diskreeter Klient. Köör dat för Programmen ut, wat dat Geheimnis diskreet behanneln, as Internett-Sieden. Köör dat nich för stedenwies Programmen ut, as Schrievdisk- un Telefoon-Programmens. +access_token_desc = Utköört Teken-Verlöövnissen begrenzen dat Anmellen blots up de tohörig API-Padden. Lees de Dokumenteren för mehr Informatioonen. +oauth2_confidential_client = Diskreeter Klient. Köör dat för Programmen ut, wat dat Geheemst diskreet behanneln, as Internett-Sieden. Köör dat nich för stedenwies Programmen ut, as Schrievdisk- un Telefoon-Programmens. gpg_helper = Bruukst du Hülp? Kiek de Inföhren över GPG an. gpg_desc = Deese publiken GPG-Slötels sünd mit dienem Konto verbunnen un worden bruukt, um diene Kommitterens uttowiesen. Holl de tohörig privaaten Slötels seker, denn daarmit kann man Kommitterens mit diener Unnerschrift unnerschrieven. oauth2_application_locked = Forgejo vermarkt vörweg eenige OAuth2-Programmen bi’m Starten, wenn dat in de Instellens anknipst is. Um unverwachts Verhollen to verhinnern, könen se nich bewarkt of wegdaan worden. Bidde kiek för mehr Informatioonen de OAuth2-Dokumenteren an. twofa_desc = Um dien Konto tegen Passwoordklau to schütten, kannst du een Smart-Telefoon of anner Geraadskupp bruken, um tied-baseerte Eenmaalpasswoorden (»TOTP«) to kriegen. twofa_recovery_tip = Wenn du dien Geraadskupp verlüst, kannst du eenen Eenmaal-Bruuk-Torügghalens-Slötel bruken, um weer in dien Konto to komen. webauthn_desc = Sekerheids-Slötels sünd Geraadskuppen, wat kryptographisk Slötels enthollen. Se könen för dat Anmellen mit Twee Faktooren bruukt worden. Sekerheids-Slötels mutten de »WebAuthn Authenticator«-Standard unnerstütten. +user_block_yourself = Du kannst di nich sülvst blockeren. +pronouns_custom_label = Eegene Pronomens [repo] rss.must_be_on_branch = Du muttst up eenem Twieg wesen, um eenen RSS-Schuuv to hebben. @@ -871,7 +878,7 @@ generate_repo = Repositorium maken generate_from = Maken ut repo_desc = Beschrieven admin.update_flags = Flaggen vernejen -new_repo_helper = In eenem Repositorium sünd all Dateien vun eenem Projekt, ok hör Versioons-Histoorje. Hest du al annerwaar eens? Treck een Repositorium um. +new_repo_helper = In eenem Repositorium sünd all Dateien vun eenem Projekt, ok hör Versioons-Histoorje. Hest du al annerwaar eens? Treck een Repositorium um. owner_helper = Eenige Vereenigungen worden in de List villicht nich wiest, denn ’t gifft eene Grenz, wo völe Repositoriums man hebben kann. admin.enabled_flags = Flaggen, wat för deeses Repositorium anknipst sünd: admin.failed_to_replace_flags = Kunn Repositoriums-Flaggen nich utwesseln @@ -909,7 +916,7 @@ mirror_interval = Tiedofstand för ’t Spegeln (gültige Tied-Eenheiden sünd issue_labels = Vermarkens issue_labels_helper = Köör eene Vermarkens-Sammlung ut license = Lizenz -auto_init = Repositorium inrichten (Föögt .gitignore, Lizenz un LEESMI hento) +auto_init = Repositorium inrichten mirror_sync_on_commit = Spegeln, wenn Kommitterens schuuvt worden repo_gitignore_helper_desc = Köör ut eener List vun Vörlagen för bekannte Spraken ut, welke Dateien nich verfolgt worden. Normaale Objekten, wat vun de Bauwarktüüg vun elkeen Spraak utgeven worden, sünd in deeser .gitignore dann al enthollen. default_branch = Höövd-Twieg @@ -1108,7 +1115,7 @@ no_eol.tooltip = Deese Datei ennt nich mit eenem Riegenenn-Bookstaven. editor.add_file = Datei hentofögen editor.new_file = Neje Datei editor.edit_file = Datei bewarken -editor.cannot_edit_lfs_files = LFS-Datein könen nich in de Internett-Schnittstee bewarkt worden. +editor.cannot_edit_lfs_files = LFS-Dateien könen nich in de Internett-Schnittstee bewarkt worden. editor.delete_this_file = Datei lösken editor.file_delete_success = Datei »%s« is lösket worden. editor.name_your_file = Benööm diene Datei … @@ -1116,7 +1123,8 @@ editor.or = of editor.cancel_lower = Ofbreken editor.commit_signed_changes = Unnerschrieven Ännerns kommitteren editor.commit_changes = Ännerns kommitteren -editor.add_tmpl = »Dateinaam« hentofögen +editor.add_tmpl = »<%s>« hentofögen +editor.add_tmpl.filename = Dateinaam editor.add = %s hentofögen editor.update = %s vernejen editor.delete = %s lösken @@ -1125,7 +1133,7 @@ editor.patching = Plackt: editor.fail_to_apply_patch = Kann Plack »%s« nich anwennen editor.new_patch = Nejer Plack editor.commit_message_desc = Wenn du willst, föög een wiederes Beschrieven hento … -editor.commit_directly_to_this_branch = Kommitteer stracks up de %s-Twieg. +editor.commit_directly_to_this_branch = Kommitteer stracks up de %[1]s-Twieg. editor.propose_file_change = Datei-Ännern vörslagen editor.new_branch_name = Benööm de Twieg för deeses Kommitteren editor.new_branch_name_desc = Nejer Twig-Naam … @@ -1140,7 +1148,7 @@ editor.file_already_exists = Eene Datei mit de Naam »%s« gifft dat in deesem R editor.commit_id_not_matching = De Datei is ännert worden, as du se bewarkt hest. Kommitteer up eenen nejen Twieg un föhr dann tosamen. editor.push_out_of_date = De Schuuv schient verollt to wesen. editor.commit_empty_file_header = Eene lege Datei kommitteren -editor.no_changes_to_show = 't gifft keene Ännerns to wiesen. +editor.no_changes_to_show = ’t gifft keene Ännerns to wiesen. editor.fail_to_update_file_summary = Fehler-Naricht: editor.push_rejected_summary = Kumpleete Oflehnens-Naricht: editor.add_subdir = Verteeknis hentofögen … @@ -1290,20 +1298,20 @@ issues.new_label_desc_placeholder = Beschrieven issues.create_label = Vermark maken issues.label_templates.helper = Köör eene Vermarkens-Sammlung ut issues.label_templates.use = Vermarkens-Sammlung bruken -issues.add_labels = hett de Vermarkens %s %s hentogeföögt -issues.remove_label = hett de Vermark %s %s wegdaan -issues.add_milestone_at = `hett dat to de Marksteen %s hentoföögt` -issues.add_project_at = `hett dat to de Projekt %s hentoföögt` -issues.change_milestone_at = `hett de Marksteen vun %s to %s ännert` -issues.remove_milestone_at = `hett dat vun de Marksteen %s wegdaan` -issues.remove_project_at = `hett dat vun de Projekt %s wegdaan` +issues.add_labels = hett %[2]s de Vermarkens %[1]s hentoföögt +issues.remove_label = hett %[2]s de Vermark %[1]s wegdaan +issues.add_milestone_at = `hett dat %[2]s to de Marksteen %[1]s hentoföögt` +issues.add_project_at = `hett dat %[2]s to de Projekt %[1]s hentoföögt` +issues.change_milestone_at = `hett %[3]s de Marksteen vun %[1]s to %[2]s ännert` +issues.remove_milestone_at = `hett dat %[2]s vun de Marksteen %[1]s wegdaan` +issues.remove_project_at = `hett dat %[2]s vun de Projekt %[1]s wegdaan` issues.deleted_milestone = `(lösket)` issues.deleted_project = `(lösket)` issues.self_assign_at = `hett dat %s sik sülven towiesen` issues.remove_self_assignment = `hett sien Towiesen %s wegnohmen` -issues.change_title_at = `hett de Titel vun %s to %s %s ännert` -issues.change_ref_at = `hett de Nömen vun %s to %s %s ännert` -issues.delete_branch_at = `hett de Twieg %s %s lösket` +issues.change_title_at = `hett %[3]s de Titel vun %[1]s to %[2]s ännert` +issues.change_ref_at = `hett %[3]s de Nömen vun %[1]s to %[2]s ännert` +issues.delete_branch_at = `hett %[2]s de Twieg %[1]s lösket` issues.filter_label = Vermark issues.filter_label_exclude = `Bruuk Alt+Klick/Enter, um Vermarkens uttosluten` issues.filter_label_no_select = All Vermarkens @@ -1358,29 +1366,29 @@ issues.context.delete = Lösken issues.no_content = Keen Beschrieven angeven. issues.choose.get_started = Lössleggen issues.label_templates.fail_to_load_file = Kunn de Vermark-Vörlaag-Datei »%s« nich laden: %v -issues.add_label = hett de Vermark %s %s hentogeföögt +issues.add_label = hett %[2]s de Vermark %[1]s hentoföögt issues.add_assignee_at = `is vun %s %s towiesen worden` issues.action_milestone_no_select = Keen Marksteen issues.choose.blank_about = Een nejes Gefall vun de Normaal-Vörlaag maken. issues.create = Gefall maken issues.label_templates.title = Eene Vermark-Sammlung laden issues.label_templates.info = Dat gifft noch keene Vermarkens. Maak eenen Vermark mit »Nejer Vermark« of bruuk eene Vermarkens-Sammlung: -issues.change_project_at = `hett dat Projekt vun %s to %s ännert` +issues.change_project_at = `hett %[3]s dat Projekt vun %[1]s to %[2]s ännert` issues.remove_assignee_at = `is sien Towiesen vun %s %s wegnohmen worden` issues.open_title = Open issues.close = Gefall dichtmaken issues.choose.ignore_invalid_templates = Ungültig Vörlagens sünd ignoreert worden -issues.add_ref_at = `hett de Nömen %s %s hentoföögt` +issues.add_ref_at = `hett %[2]s de Nömen %[1]s hentoföögt` issues.filter_type.all_issues = All Gefallens issues.filter_type.created_by_you = Vun di maakt issues.filter_milestone_closed = Dichtmaakt Markstenen issues.commented_at = `hett %s kommenteert` -issues.remove_labels = hett de Vermarkens %s %s wegdaan +issues.remove_labels = hett %[2]s de Vermarkens %[1]s wegdaan issues.filter_type = Aard pulls.merged_by = vun %[3]s is %[1]s tosamenföhrt worden issues.next = Anner -issues.add_remove_labels = hett de Vermarkens %s hentoföögt un %s %s wegdaan -issues.remove_ref_at = `hett de Nömen %s %s wegdaan` +issues.add_remove_labels = hett %[3]s de Vermarkens %[1]s hentoföögt un %[2]s wegdaan +issues.remove_ref_at = `hett %[2]s de Nömen %[1]s wegdaan` issues.filter_milestone_all = All Markstenen issues.filter_type.reviewed_by_you = Vun di nakiekt issues.filter_sort.fewestforks = Minnste Gabels @@ -1391,7 +1399,7 @@ issues.context.quote_reply = Antwoord ziteren issues.comment_pull_merged_at = hett Kommitteren %[1]s in %[2]s %[3]s tosamenföhrt issues.close_comment_issue = Mit Kommentaar dichtmaken issues.reopen_comment_issue = Mit Kommentaar weer opmaken -issues.create_comment = Kommentaar +issues.create_comment = Kommenteren issues.reopened_at = `hett deeses Gefall %[2]s weer opmaakt` issues.comment_manually_pull_merged_at = hett Kommitteren %[1]s in %[2]s %[3]s vun Hand tosamenföhrt issues.reopen_issue = Weer opmaken @@ -1433,8 +1441,8 @@ issues.label_deletion_success = De Vermark is lösket worden. issues.label.filter_sort.alphabetically = Na de Alphabeet issues.label.filter_sort.reverse_alphabetically = Umdreiht na de Alphabeet issues.label.filter_sort.by_size = Lüttste Grött -issues.num_participants_one = %s Mitmaker -issues.num_participants_few = %s Mitmakers +issues.num_participants_one = %d Mitmaker +issues.num_participants_few = %d Mitmakers issues.ref_pull_from = `hett deeses Haalvörslag %[4]s %[2]s benöömt` issues.label_title = Naam issues.label_archived_filter = Archiveert Vermarkens wiesen @@ -1488,21 +1496,21 @@ issues.add_time_sum_to_small = Keene Tied is indragen worden. issues.time_spent_total = Tied bruukt all tosamen issues.time_spent_from_all_authors = `Tied bruukt all tosamen: %s` issues.due_date = Anstahns-Datum -issues.push_commit_1 = hett %d Kommitteren %s hentoföögt -issues.push_commits_n = hett %d Kommitterens %s hentoföögt +issues.push_commit_1 = hett %[2]s %[1]d Kommitteren hentoföögt +issues.push_commits_n = hett %[2]s %[1]d Kommitterens hentoföögt issues.force_push_compare = Verglieken issues.due_date_form_edit = Bewarken issues.due_date_form_remove = Wegdoon issues.due_date_not_set = Keen Anstahns-Datum sett. -issues.due_date_added = hett dat Anstahns-Datum %s %s hentoföögt -issues.due_date_remove = hett dat Anstahns-Datum %s %s wegdaan +issues.due_date_added = hett %[2]s dat Anstahns-Datum %[1]s hentoföögt +issues.due_date_remove = hett %[2]s dat Anstahns-Datum %[1]s wegdaan issues.due_date_overdue = Staht al lang an issues.dependency.title = Ofhangens issues.dependency.issue_no_dependencies = Keene Ofhangens sett. issues.dependency.pr_no_dependencies = Keene Ofhangens sett. issues.dependency.no_permission_1 = Du hest nich de Rechten, um %d Ofhangen to lesen issues.dependency.no_permission_n = Du hest nich de Rechten, um %d Ofhangens to lesen -issues.dependency.add = Ofhangen henntofögen … +issues.dependency.add = Ofhangen hentofögen … issues.dependency.cancel = Ofbreken issues.dependency.issue_closing_blockedby = Dat Dichtmaken vun deesem Gefall word vun deesen Gefallens blockeert issues.dependency.pr_closing_blockedby = Dat Dichtmaken vun deesem Haalvörslag word vun deesen Gefallens blockeert @@ -1526,10 +1534,10 @@ issues.review.dismissed_label = Ofseggt issues.review.left_comment = hett kommenteert issues.review.content.empty = Du muttst eenen Kommentaar geven, wat för Ännerns du hebben willst. issues.review.reject = hett %s um Ännerns beden -issues.review.remove_review_request = hett de Nakieken-Anfraag för %s %s wegdaan +issues.review.remove_review_request = hett %[2]s de Nakieken-Anfraag för %[1]s wegdaan issues.review.remove_review_request_self = hett %s dat Nakieken verweigert issues.unlock_error = Kann een Gefall nich upsluten, wenn ’t nich tosloten is. -issues.lock_with_reason = hett dat um %s %s tosluten un Snack up Mitarbeiders begrenzt +issues.lock_with_reason = hett dat %[2]s um %[1]s tosluten un Snack up Mitarbeiders begrenzt issues.unpin_comment = hett dat %s lössstoken issues.lock.notice_1 = - Anner Brukers könen keene nejen Kommentaren to deesem Gefall hentofögen. issues.stop_tracking = Tiednehmer anhollen @@ -1540,11 +1548,11 @@ issues.pin_comment = hett dat %s faststoken issues.lock_no_reason = hett dat %s tosluten un Snack up Mitarbeiders begrenzt issues.delete.text = Willst du deeses Gefall würrelk lösken? (Dat lösket för all Tieden all Inhollen. Wenn du ’t blots archiveren willst, maakt ’t lever blots dicht) issues.start_tracking_history = `hett %s to warken begunnen` -issues.lock.notice_2 = - Du un anner Mitarbeiders mit Togriep to deesem Repositorium könnt wiederhen Kommentaren schrieven, wat elkeenwell sücht. +issues.lock.notice_2 = - Du un anner Mitarbeiders mit Togriep to deesem Repositorium köönt wiederhen Kommentaren schrieven, wat elkeenwell sücht. issues.due_date_modified = hett dat Anstahns-Datum vun %[2]s to %[1]s %[3]s ännert issues.dependency.issue_remove_text = Dat word de Ofhangen vun deesem Gefall wegdoon. Wiedermaken? issues.review.approve = hett deese Ännerns %s tostimmt -issues.review.dismissed = hett dat Nakieken vun %s %s ofseggt +issues.review.dismissed = hett %[2]s dat Nakieken vun %[1]s ofseggt issues.lock.title = Snack up deesem Gefall tosluten. issues.unlock.title = Snack up deesem Gefall upsluten. issues.tracker_auto_close = Tiednehmer word automatisk anhollt, wenn dat Gefall dichtmaakt word @@ -1560,14 +1568,14 @@ issues.due_date_invalid = Dat Anstahns-Datum is ungültig of buten de Rieg. Bidd issues.dependency.remove = Wegdoon issues.dependency.issue_close_blocks = Deeses Gefall blockeert dat Dichtmaken vun deesen Gefallens issues.review.outdated_description = Inholl hett sik ännert, siet deeser Kommentaar schreven worden is -issues.force_push_codes = `hett %[1]s vun %[2]s to %[4]s %[6]s dwangsschuven` +issues.force_push_codes = `hett %[1]s vun %[2]s to %[4]s %[6]s dwangsschuven` issues.dependency.pr_remove_text = Dat word de Ofhangen vun deesem Haalvörslag wegdoon. Wiedermaken? issues.review.pending = Staht ut issues.review.option.hide_outdated_comments = Verollte Kommentarens verbargen issues.due_date_form = JJJJ-MM-DD issues.dependency.added_dependency = `hett %s eene neje Ofhangen hentoföögt` issues.review.wait = is %s um een Nakieken anfraggt worden -issues.review.add_review_request = hett um een Nakieken vun %s %s anfraggt +issues.review.add_review_request = hett %[2]s um een Nakieken vun %[1]s anfraggt issues.review.show_outdated = Wies verollt issues.review.hide_outdated = Verbarg verollt issues.content_history.options = Instellens @@ -1598,9 +1606,9 @@ pulls.filter_changes_by_commit = Na Kommitteren filtern pulls.nothing_to_compare = Deese Twiegen sünd gliek. ’t is nich nödig, eenen Haalvörslag to maken. pulls.nothing_to_compare_have_tag = De utköört Twieg/Mark sünd gliek. pulls.create = Haalvörslag maken -pulls.title_desc_one = will %[1]d Kommitteren vun %[2]s na %[3]s tosamenföhren +pulls.title_desc_one = will %[1]d Kommitteren vun %[2]s na %[3]s tosamenföhren pulls.merged_title_desc_one = hett %[1]d Kommitteren vun %[2]s na %[3]s %[4]s tosamenföhrt -pulls.change_target_branch_at = `hett de Enn-Twieg vun %s to %s %s ännert` +pulls.change_target_branch_at = `hett %[3]s de Enn-Twieg vun %[1]s to %[2]s ännert` pulls.tab_conversation = Snack pulls.tab_commits = Kommitterens pulls.tab_files = Ännert Dateien @@ -1648,7 +1656,7 @@ issues.content_history.delete_from_history = Ut Histoorje lösken pulls.compare_changes = Nejer Haalvörslag pulls.allow_edits_from_maintainers_desc = Brukers, well dat Recht hebben, to de Grund-Twieg to schrieven, düren ok up deesen Twieg schuuven pulls.nothing_to_compare_and_allow_empty_pr = Deese Twiegen sünd gliek. De HV word leeg wesen. -pulls.title_desc_few = will %[1]d Kommitterens vun %[2]s na %[3]s tosamenföhren +pulls.title_desc_few = will %[1]d Kommitterens vun %[2]s na %[3]s tosamenföhren pulls.data_broken = Deeser Haalvörslag is kaputt, denn de Gabel-Informatioon fehlt. pulls.waiting_count_1 = %d Nakieken staht ut issues.content_history.deleted = lösket @@ -2080,7 +2088,7 @@ settings.update_githook = Haak vernejen settings.payload_url = Enn-URL settings.http_method = HTTP-Aard settings.content_type = Aard vum POST-Inholl -settings.secret = Geheimnis +settings.secret = Geheemst settings.slack_username = Brukernaam settings.slack_color = Klöör settings.discord_username = Brukernaam @@ -2224,8 +2232,8 @@ settings.event_wiki_desc = Wiki-Sied maakt, umbenöömt, bewarkt of lösket. settings.slack_icon_url = Bill-URL settings.slack_channel = Kanaal settings.web_hook_name_forgejo = Forgejo -settings.sourcehut_builds.secrets = Geheimnissen -settings.sourcehut_builds.secrets_helper = Giff de Upgaav Togang to de Bau-Geheimnissen (bruukt de Verlöövnis SECRETS:RO) +settings.sourcehut_builds.secrets = Geheemsten +settings.sourcehut_builds.secrets_helper = Giff de Upgaav Togang to de Bau-Geheemsten (bruukt de Verlöövnis SECRETS:RO) settings.deploy_keys = Utbrengens-Slötels settings.protect_enable_merge = Tosamenföhren anknipsen settings.protect_no_valid_status_check_patterns = Keene gültigen Tostands-Överprüfens-Musters. @@ -2280,7 +2288,7 @@ settings.matrix.homeserver_url = Heimaadserver-URL settings.matrix.room_id = Ruum-ID settings.archive.header = Deeses Repo archiveren settings.archive.error_ismirror = Du kannst een spegelt Repo nich archiveren. -settings.archive.tagsettings_unavailable = Mark-Instellens sünd nich verföögbar, wenn dat Repo archiveert is. +settings.archive.tagsettings_unavailable = Mark-Instellens sünd in archiveert Repos nich verföögbaar. settings.unarchive.button = Repo ut Archiv torügghalen settings.unarchive.success = Dat Repo is nu nich mehr archiveert. settings.unarchive.error = Een Fehler is bi’m Torügghalen vum Repo ut de Archiv uptreden. Kiek in de Utgaav för mehr Informatioonen. @@ -2295,14 +2303,14 @@ settings.unarchive.header = Deeses Repo as nich mehr archiveert setten settings.update_avatar_success = Dat Repositoriums-Kontobill is verneeit worden. settings.lfs_findcommits = Kommitterens finnen settings.protected_branch_required_approvals_min = Nödige Tostimmens könen nich negativ wesen. -settings.archive.mirrors_unavailable = Spegels sünd nich verföögbar, wenn dat Repo archiveert is. +settings.archive.mirrors_unavailable = Spegels sünd in archiveert Repos nich verföögbaar. settings.tags.protection.create = Örder hentofögen settings.bot_token = Bot-Teken settings.matrix.message_type = Narichten-Aard -settings.archive.text = Wenn dat Repo archiveert word, kann man daar blots noch lesen. Dat word vum Disk verburgen. Nüms (ok nich du sülvst!) kann noch neje Kommitterens maken of Gefallens of Haalvörslagen opmaken. +settings.archive.text = Wenn dat Repo archiveert word, kann man daar blots noch lesen. Dat word vum Kontor verburgen. Nüms (ok nich du sülvst!) kann noch neje Kommitterens maken of Gefallens of Haalvörslagen opmaken. settings.archive.success = Dat Repo is archiveert worden. settings.archive.error = Een Fehler is bi’m Archiveren vum Repo uptreden. Kiek in de Utgaav för mehr Informatioonen. -settings.archive.branchsettings_unavailable = Twieg-Instellens sünd nich verföögbar, wenn dat Repo archiveert is. +settings.archive.branchsettings_unavailable = Twieg-Instellens sünd in archiveert Repos nich verföögbaar. settings.unarchive.text = Wenn dat Repo nich mehr archiveert is, kann dat weer Kommitterens un Schuvens kriegen un ok neje Gefallens un Haalvörslagens. settings.lfs_no_lfs_files = In deesem Repositorium sünd keene LFS-Dateien verwahrt settings.lfs_noattribute = Deeser Padd is im Höövd-Twieg nich as toslutbaar markeert @@ -2519,21 +2527,49 @@ invisible_runes_description = `Deese Datei enthollt unsichtbaare Unicode-Booksta comments.edit.already_changed = Kann Ännerns an de Kommentaar nich sekern. Dat schient, dat de Inholl al vun een anner Bruker ännert worden is. Bidde laad de Sied neei un versöök, dat dann noch eenmaal to bewarken, daarmit du hör Ännerns nich överschriffst pulls.clear_merge_message_hint = Wenn du de Tosamenföhrens-Naricht leeg maakst, lösket dat blots de Naricht-Inholl un behollt sülk automatisk maakte Git-Nadragens as »Co-Autored-By …«. settings.add_webhook_desc = Forgejo schickt POST-Anfragen mit eener angeven Inholls-Aard to de Enn-URL. Lees mehr in de Internett-Hakens-Inföhren. -issues.review.pending.tooltip = Deeser Kommentaar is jüüst för anner Brukers nich sichtbaar. Um diene utstahn Kommentaaren avtogeven, köör boven in de Sied »%s« → »%s/%s/%s« ut. -settings.sourcehut_builds.access_token_helper = Togang-Teken, wat de Verlöövnis JOBS:RW hett. Maak een builds.sr.ht-Teken of een builds.sr.ht-Teken mit Togriep to Geheimnissen up meta.sr.ht. +issues.review.pending.tooltip = Deeser Kommentaar is jüüst för anner Brukers nich sichtbaar. Um diene utstahn Kommentaren avtogeven, köör boven in de Sied »%s« → »%s/%s/%s« ut. +settings.sourcehut_builds.access_token_helper = Togang-Teken, wat de Verlöövnis JOBS:RW hett. Maak een builds.sr.ht-Teken of een builds.sr.ht-Teken mit Togriep to Geheemsten up meta.sr.ht. settings.protect_unprotected_file_patterns_desc = Nich schütt Dateien, wat stracks ännert worden düren, wenn de Bruker Schriev-Togriep hett, an de Schuuv-Schüttens-Örders vörbi. Mennig Musters könen mit Semikolon (»;«) trennt worden. Kiek de Dokumenteren för ">%[2]s för de Syntax an. Bispölen: .drone.yml, /docs/**/*.txt. settings.protected_branch_required_rule_name = Ördernaam is nödig settings.protect_protected_file_patterns_desc = Schütt Dateien, wat nich stracks ännert worden düren, sülvst wenn de Bruker dat Recht hett, Dateien in deesem Twieg hentotofögen, to bewarken of to lösken. Mennig Musters könen mit Semikolon (»;«) trennt worden. Kiek de Dokumenteren för ">%[2]s för de Syntax an. Bispölen: .drone.yml, /docs/**/*.txt. -settings.branch_filter_desc = Twieg-Verlöövnis-List för Vörfallen över dat Schuven un dat Maken un Lösken vun Twiegen, angeven as een Glob-Muster. Wenn leeg of * worden Vörfallen för all Twiegen mellt. Kiek de Dokumenteren för ">%[2]s för de Syntax an. Bispölen: master, {master,release*}. +settings.branch_filter_desc = Twieg-Verlöövnis-List för Vörfallen över dat Schuven un dat Maken un Lösken vun Twiegen, angeven as een Glob-Muster. Wenn leeg of * worden Vörfallen för all Twiegen mellt. Kiek de Dokumenteren för %[2]s för de Syntax an. Bispölen: master, {master,release*}. settings.matrix.room_id_helper = De Ruum-ID kann vun de Element-Internett-Sied unner Ruum-Instellens → Verwiedert → Binnere Ruum-ID haalt worden. Bispööl: %s. settings.tags.protection.pattern.description = Du kannst eenen enkelt Naam bruken of een Glob-Muster of Regel-Utdruck, um up mennig Markens to passen. Lees mehr in de Inföhren över schütt Markens. error.broken_git_hook = Git-Hakens in deesem Repositorium schienen kaputt to wesen. Bidde folg de Dokumenteren, um se to repareren, dann schuuv een paar Kommitterens, um de Tostand to vernejen. settings.matrix.access_token_helper = Dat word anraden, daarföör eegens een Matrix-Konto intorichten. Dat Togangs-Teken kann in de Element-Internett-Sied (in eener privaaten/anonymen Karteikaart) unner Brukermenü (boven links) → All Instellens → Hülp & Över → Togangs-Teken (stracks unner de Heimaadserver-URL) haalt worden. Maak de privaate/anonyme Karteikaart dicht (wenn du di avmellst, word dat Teken ungültig). +issues.review.add_remove_review_requests = hett %[3]s um Nakiekens vun %[1]s anfraggt un de Nakiekens-Anfragen för %[2]s wegdaan +issues.review.add_review_requests = hett %[2]s um Nakiekens vun %[1]s anfraggt +issues.review.remove_review_requests = hett %[2]s de Nakieken-Anfragen för %[1]s wegdaan +pulls.delete_after_merge.head_branch.is_protected = De Kopp-Twieg, wat du lösken willst, is een schütt Twieg un kann nich lösket worden. +pulls.delete_after_merge.head_branch.insufficient_branch = Du hest nich dat Recht, de Kopp-Twieg to lösken. +pulls.delete_after_merge.head_branch.is_default = De Kopp-Twieg, wat du lösken willst, is de Höövd-Twieg un kann nich lösket worden. +issues.filter_sort.relevance = Belang +diff.git-notes.add = Anmarken hentofögen +diff.git-notes.remove-header = Anmarken wegdoon +diff.git-notes.remove-body = Deeses Anmarken word wegdaan. +issues.num_reviews_one = %d Nakieken +issues.summary_card_alt = Tosamenfatens-Kaart vun eenem Gefall mit de Naam »%s« im Repositorium %s +issues.num_reviews_few = %d Nakiekens +settings.default_update_style_desc = Normaale Vernejens-Aard, wat bruukt word, um Haalvörslagens to vernejen, wat achter de Grund-Twieg torügg sünd. +pulls.sign_in_require = Mell di an, um eenen nejen Haalvörslag to maken. +new_from_template = Bruuk eene Vörlaag +new_advanced = Mehr Instellens +new_advanced_expand = Klick, um mehr to wiesen +auto_init_description = Begünn de Git-Histoorje mit eenem LEESMI un föög, wenn du willst, Lizenz- un .gitignore-Dateien hento. +new_from_template_description = Du kannst eene bestahn Repositoriums-Vörlaag up deeser Instanz utkören un hör Instellens anwennen. +summary_card_alt = Tosamenfatens-Kaart vun de Repositorium %s +issues.reaction.alt_add = De %[1]s-Reageren to de Kommentaar hentofögen. +issues.reaction.add = Reageren hentofögen +issues.reaction.alt_few = %[1]s hett mit %[2]s reageert. +issues.reaction.alt_many = %[1]s un %[2]d anner hebben mit %[3]s reageert. +issues.reaction.alt_remove = De %[1]s-Reageren vun de Kommentaar wegdoon. +issues.context.menu = Kommentaar-Menü +release.summary_card_alt = Tosamenfatens-Kaart vun eenem Publizeren mit de Naam »%s« im Repositorium %s [repo.permissions] code.read = Lesen: De Quelltext vun deesem Repositorium ankieken un klonen. code.write = Schrieven: Schuuv to de Repositorium un maak Twiegen un Markens. -issues.read = Lesen: Gefallens un Kommentaaren lesen un maken. +issues.read = Lesen: Gefallens un Kommentaren lesen un maken. issues.write = Schrieven: Gefallens dichtmaken un wiedere Informatioonen so as Vermarkens, Markstenen, Towiesens, Anstahns-Daten un Ofhangens bewarken. releases.write = Schrieven: Publizerens un hör Objekten publik maken, bewarken un lösken. releases.read = Lesen: Publizerens ankieken un runnerladen. @@ -2564,7 +2600,7 @@ org_name_holder = Vereenigungs-Naam org_full_name_holder = Kumpleter Naam vun de Vereenigung org_name_helper = Vereenigungs-Namen sallen kört un lich to marken wesen. create_org = Vereenigung maken -open_dashboard = »Mien Disk« opmaken +open_dashboard = Kontor opmaken repo_updated = %s verneeit members = Liddmaten teams = Klottjen @@ -2674,7 +2710,7 @@ teams.specific_repositories_helper = Liddmaten hebben blots Togriep up Repositor teams.all_repositories = All Repositoriums [admin] -dashboard = Mien Disk +dashboard = Kontor self_check = Sülvst-Överprüfen identity_access = Sülvst & Togang users = Brukerkonten @@ -2824,7 +2860,7 @@ users.cannot_delete_self = Du kannst nich di sülven lösken users.still_own_repo = De Bruker is noch een Eegner vun een of mehr Repositoriums. Löske of överdraag deese Repositoriums eerst. users.still_has_org = De Bruker is noch een Liddmaat vun eener Vereenigung. Doo de Bruker eerst ut all Vereenigungen weg. users.purge = Bruker wegschüren -users.purge_help = Mit Dwang de Bruker un all siene Repositoriums Vereenigungen un Paketen lösken. All Kommentaaren un Gefallens, wat deeser Bruker maakt hett, worden ok lösket. +users.purge_help = Mit Dwang de Bruker un all siene Repositoriums, Vereenigungen un Paketen lösken. All Kommentaren un Gefallens, wat deeser Bruker maakt hett, worden ok lösket. users.still_own_packages = Deeser Bruker is noch Eegner vun een of mehr Paketen, löske eerst deese Paketen. users.list_status_filter.menu_text = Filter users.list_status_filter.not_active = Nich aktiiv @@ -2933,7 +2969,7 @@ auths.pam_email_domain = PAM-E-Mail-Domään (nich nödig) auths.oauth2_provider = OAuth2-Anbeder auths.oauth2_icon_url = Bill-URL auths.oauth2_clientID = Klient-ID (Slötel) -auths.oauth2_clientSecret = Klient-Geheimnis +auths.oauth2_clientSecret = Klient-Geheemst auths.oauth2_use_custom_url = Eegene URLs in Stee vun de normaalen URLs bruken auths.oauth2_tokenURL = Teken-URL auths.oauth2_authURL = Anmellen-URL @@ -3164,7 +3200,7 @@ notices.view_detail_header = Naricht-Informatioonen self_check.no_problem_found = Noch keen Probleem 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 »gitea doctor convert« bruken, um de Kollatioons-Problemen oftohelpen, of du kannst dat Probleem ofhelpen, indeem du vun Hand de SQL-Oorders »ALTER … COLLATE …« bruukst. +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. self_check.database_inconsistent_collation_columns = Datenbank bruukt Kollatioon %s, aver deese Striepen bruken unpassend Kollatioonen. Dat kann unverwachte Problemen maken. auths.sspi_auto_create_users_helper = Verlöövt de SSPI-Anmellens-Aard, automatisk een Konto för Brukers to maken, well sik tum eersten Maal anmellen config.log_file_root_path = Utgaav-Padd @@ -3196,6 +3232,7 @@ config.allow_only_external_registration = Registreren blots dör frömde Deenste 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) [action] rename_repo = hett een Repositorium vun %[1]s na %[3]s umbenöömt @@ -3492,7 +3529,7 @@ owner.settings.cleanuprules.title = Schoonmakens-Örders owner.settings.cleanuprules.add = Schoonmakens-Örder hentofögen owner.settings.cleanuprules.edit = Schoonmakens-Örder bewarken owner.settings.cleanuprules.none = Dat gifft noch keene Schoonmakens-Örders. -owner.settings.cleanuprules.preview = Schoonmakens-Örder-Vörschau +owner.settings.cleanuprules.preview = Schoonmakens-Örder-Utkiek owner.settings.cleanuprules.preview.none = Schoonmakens-Örder passt up keene Paketen. owner.settings.cleanuprules.enabled = Anknipst owner.settings.cleanuprules.pattern_full_match = Muster up de kumplete Paketnaam anwennen @@ -3542,7 +3579,7 @@ conda.install = Um dat Paket mit Conda to installeren, föhr deese Oorder ut: container.details.type = Avbill-Aard container.details.platform = Plattfoorm container.pull = Haal deeses Avbill vun de Oorderreeg: -container.digest = Prüüfsumm: +container.digest = Prüüfsumm container.multi_arch = BS / Arch container.layers = Avbill-Schichten cran.registry = Richt deese Paketlist in diener Rprofile.site-Datei in: @@ -3580,21 +3617,23 @@ owner.settings.chef.title = Chef-Paketlist owner.settings.chef.keypair = Slötelpaar maken owner.settings.chef.keypair.description = Een Slötelpaar is nödig, um sik bi de Chef-Paketlist antomellen. Wenn du al een Slötelpaar maakt hest, word dat olle Slötelpaar wegdaan, wenn du een nejes Slötelpaar maakst. conan.install = Um dat Paket mit Conan to installeren, föhr deese Oorder ut: +container.images.title = Avbillers +search_in_external_registry = In %s söken [secrets] -secrets = Geheimnissen -description = Geheimnissen worden an wisse Aktioonen övergeven un könen anners nich lesen worden. -none = Dat gifft noch keene Geheimnissen. -creation = Geheimnis hentofögen -creation.success = Dat Geheimnis »%s« is hentoföögt worden. -creation.failed = Kunn Geheimnis nich hentofögen. -deletion = Geheimnis wegdoon -deletion.success = Dat Geheimnis is wegdaan worden. -deletion.failed = Kunn Geheimnis nich wegdoon. -management = Geheimnissen verwalten -creation.value_placeholder = Giff elkeen Inholl in. Leegtekens am Begünn un Enn word ofsneden. -deletion.description = Een Geheimnis wegtodoon is för all Tieden un kann nich torüggnohmen worden. Wiedermaken? -creation.name_placeholder = Blots alphanumerisk Boostavens (dat word nich tüsken Groot- un Kleenbookstavens unnerscheden) un Unnerstrekens; kann nich mit GITEA_ of GITHUB_ begünnen +secrets = Geheemsten +description = Geheemsten worden an wisse Aktioonen övergeven un könen anners nich lesen worden. +none = Dat gifft noch keene Geheemsten. +creation = Geheemst hentofögen +creation.success = Dat Geheemst »%s« is hentoföögt worden. +creation.failed = Kunn Geheemst nich hentofögen. +deletion = Geheemst wegdoon +deletion.success = Dat Geheemst is wegdaan worden. +deletion.failed = Kunn Geheemst nich wegdoon. +management = Geheemsten verwalten +creation.value_placeholder = Giff elkeen Inholl in. Leegtekens am Begünn un Enn worden ofsneden. +deletion.description = Een Geheemst wegtodoon is för all Tieden un kann nich torüggnohmen worden. Wiedermaken? +creation.name_placeholder = Blots alphanumerisk Bookstavens (’t word nich tüsken Groot- un Kleenbookstavens unnerscheden) un Unnerstrekens; kann nich mit GITEA_ of GITHUB_ begünnen [actions] actions = Aktioonen @@ -3691,6 +3730,8 @@ variables.deletion.description = Eene Variaabel wegtodoon is för all Tieden un unit.desc = Verwalt integreerte CI-/CD-Affolgens mit Forgejo-Aktioonen. runs.no_workflows.quick_start = Weetst du nich, wo man mit Forgejo-Aktioonen begünnt? Kiek de fixe Inföhren an. runs.no_workflows.documentation = För mehr Informatioonen över Forgejo-Aktioonen, kiek de Dokumenteren an. +runs.no_workflows.help_write_access = Weetst du nich, wo man mit Forgejo-Aktioonen begünnen sall? Kiek de Fixanwies in de Bruker-Dokumenteren an, um diene eerste Warkwies to schrieven, un richt dann dienen eersten Forgejo-Loper in, um diene Upgavens uttoföhren. +runs.no_workflows.help_no_write_access = Um mehr över Forgejo-Aktioonen to lehren, kiek de Dokumenteren an. [projects] deleted.display_name = Lösket Projekt @@ -3708,8 +3749,8 @@ submodule = Unnermoduul [markup] filepreview.lines = Riegen %[1]d bit %[2]d in %[3]s -filepreview.truncated = Vörschau is ofsneden worden +filepreview.truncated = Utkiek is ofsneden worden filepreview.line = Rieg %[1]d in %[2]s [translation_meta] -test = Moin! \ No newline at end of file +test = Moin! diff --git a/options/locale/locale_nl-NL.ini b/options/locale/locale_nl-NL.ini index 27bbb885e9..30d2c0ebdf 100644 --- a/options/locale/locale_nl-NL.ini +++ b/options/locale/locale_nl-NL.ini @@ -166,6 +166,7 @@ new_repo.link = Nieuwe repository new_repo.title = Nieuwe repository new_migrate.link = Nieuwe migratie new_org.link = Nieuwe organisatie +copy_path = Kopieer bestandspad [aria] navbar = Navigatiebalk @@ -199,6 +200,12 @@ buttons.list.task.tooltip = Een lijst met taken toevoegen buttons.disable_monospace_font = Lettertype monospace uitschakelen buttons.indent.tooltip = Items één niveau lager plaatsen buttons.unindent.tooltip = Items één niveau hoger plaatsen +buttons.new_table.tooltip = Tabel toevoegen +table_modal.header = Tabel toevoegen +table_modal.placeholder.header = Kop +table_modal.placeholder.content = Inhoud +table_modal.label.rows = Rijen +table_modal.label.columns = Kolommen [filter] string.asc = A - Z @@ -250,7 +257,7 @@ no_admin_and_disable_registration=U kunt zelf-registratie van de gebruiker niet err_empty_admin_password=Het administrator-wachtwoord mag niet leeg zijn. err_empty_admin_email=Het e-mailadres van Het beheerder mag niet leeg zijn. err_admin_name_is_reserved=Gebruikersnaam van beheerder is ongeldig, gebruikersnaam is gereserveerd -err_admin_name_pattern_not_allowed=Gebruikersnaam van beheerder is ongeldig, de gebruikersnaam is gereserveerd +err_admin_name_pattern_not_allowed=Gebruikersnaam van beheerder is ongeldig, de gebruikersnaam komt overeen met een gereserveerd patroon err_admin_name_is_invalid=Gebruikersnaam van beheerder is ongeldig general_title=Algemene instellingen @@ -269,7 +276,7 @@ http_port=HTTP luisterpoort http_port_helper=Poortnummer dat zal worden gebruikt door de Forgejo webserver. app_url=Basis URL app_url_helper=Basisadres voor HTTP(S) kloon URL's en e-mailmeldingen. -log_root_path=Log-pad +log_root_path=Logboek-pad log_root_path_helper=Logboekbestanden worden geschreven naar deze map. optional_title=Optionele instellingen @@ -477,6 +484,7 @@ sign_up_button = Registreer nu. back_to_sign_in = Terug naar aanmelden sign_in_openid = Ga verder met OpenID unauthorized_credentials = Je inloggegevens zijn foutief of vervallen. Probeer opnieuw of zie %s voor meer informatie +use_onetime_code = Gebruik een eenmalige code [mail] view_it_on=Bekijk het op %s @@ -659,7 +667,7 @@ unable_verify_ssh_key = Kan de SSH-sleutel niet verifiëren, controleer deze voo still_own_repo = Uw account is eigenaar van één of meer repositories, verwijder of draag deze eerst over. admin_cannot_delete_self = U kan uzelf niet verwijderen als u een beheerder bent. Verwijder eerst uw beheerdersrechten. username_error_no_dots = ` kan alleen alfanumerieke karakters ("0-9","a-z","A-Z"), streepje ("-") en liggend streepje ("_") bevatten. Niet-alfanumerieke karakters aan het begin of eind zijn verboden en aaneenvolgende niet alfanumerieke karakters zijn ook verboden.` -invalid_group_team_map_error = ` mapping is ongeldig: %s" +invalid_group_team_map_error = ` mapping is ongeldig: %s` org_still_own_repo = Deze organisatie is eigenaar van één of meer repositories, verwijder of draag deze eerst over. org_still_own_packages = Deze organisatie is eigenaar van één of meer pakketten, verwijder deze eerst. unset_password = De inloggebruiker heeft het wachtwoord niet ingesteld. @@ -792,7 +800,7 @@ emails=E-mailadressen manage_emails=E-mailadressen beheren manage_themes=Standaardthema manage_openid=OpenID-adressen -theme_desc=Dit zal het standaardthema worden op de gehele site. +theme_desc=Dit thema wordt gebruikt voor de webinterface wanneer je bent aangemeld. primary=Primair activated=Geactiveerd requires_activation=Vereist activering @@ -978,8 +986,8 @@ visibility.limited=Beperkt visibility.private=Privé blocked_users = Geblokkeerde gebruikers uid = UID -biography_placeholder = Vertel ons iets over uzelf! (U kunt van Markdown gebruik maken) -profile_desc = Controleer hoe uw profiel aan andere gebruikers wordt getoond. Uw primaire e-mailadres zal worden gebruikt voor notificaties, wachtwoord herstel en web-gebaseerde Git-operaties. +biography_placeholder = Vertel anderen een beetje over uzelf! (Markdown is ondersteund) +profile_desc = Over u update_language_not_found = Taal "%s" is niet beschikbaar. change_username_prompt = Opmerking: Het veranderen van uw gebruikersnaam zal ook de URL van uw account veranderen. change_username_redirect_prompt = De oude gebruikersnaam zal worden doorverwezen totdat iemand deze opeist. @@ -1012,7 +1020,7 @@ at_least_one_permission = Je moet minstens één machtiging kiezen om een token permission_write = Lees en schrijf oauth2_client_secret_hint = Dit geheim zal niet meer worden getoond nadat u deze pagina heeft verlaten of vernieuwd. Zorg ervoor dat u het heeft opgeslagen. revoke_oauth2_grant_success = Toegang succesvol ingetrokken. -keep_email_private_popup = Dit zal je e-mailadres verbergen van uw profielpagina. Het zal niet langer de standaard zijn voor commits die via de webinterface gemaakt worden, zoals bestandsuploads en bewerkingen, en het zal niet gebruikt worden voor samenvoeg commits. In plaats daarvan kan een speciaal adres %s gebruikt worden om commits met je account te associëren. Merk op dat het veranderen van deze optie geen effect heeft op bestaande commits. +keep_email_private_popup = Uw e-mailadres zal niet getoond worden op uw profiel en zal niet de standaard zijn voor commits die via de webinterface gemaakt worden, zoals bestandsuploads, bewerkingen en samenvoeg commits. In plaats daarvan kan een speciaal adres %s gebruikt worden om commits aan uw account te koppelen. Deze optie zal bestaande commits niet beïnvloeden. create_oauth2_application_success = U heeft met succes een OAuth2 applicatie gecreëerd. permissions_access_all = Alle (publiek, privé en gelimiteerd) oauth2_application_remove_description = Door een OAuth2-applicatie te verwijderen, krijgt deze geen toegang meer tot geautoriseerde gebruikersaccounts op deze instantie. Doorgaan? @@ -1023,12 +1031,12 @@ webauthn_key_loss_warning = Als u uw beveiligingssleutels verliest, zal u toegan repos_none = U bezit geen repositories. hooks.desc = Voeg webhooks toe die door alle repositories waarvan u eigenaar bent aangeroept kunnen worden. visibility.public_tooltip = Zichtbaar voor iedereen -visibility.limited_tooltip = Alleen zichtbaar voor geauthenticeerde gebruikers +visibility.limited_tooltip = Alleen zichtbaar voor ingelogde gebruikers visibility.private_tooltip = Alleen zichtbaar voor leden van organisaties waarbij u bent aangesloten user_unblock_success = De gebruiker is succesvol gedeblokkeerd. user_block_success = De gebruiker is succesvol geblokkeerd. blocked_since = Geblokkeerd sinds %s -access_token_desc = Geselecteerde token machtigingen beperken autorisatie alleen tot de bijbehorende API routes. Lees de documentatie voor meer informatie. +access_token_desc = Geselecteerde token machtigingen beperken autorisatie alleen tot de bijbehorende API routes. Lees de documentatie voor meer informatie. oauth2_confidential_client = Vertrouwelijke client. Selecteer deze optie voor apps die het geheim bewaren, zoals webapps. Niet selecteren voor native apps, waaronder desktop- en mobiele apps. authorized_oauth2_applications_description = Je hebt deze applicaties van derden toegang verleend tot je persoonlijke Forgejo-account. Trek de toegang in voor applicaties die niet langer in gebruik zijn. hidden_comment_types.ref_tooltip = Reacties waarbij naar deze issue werd verwezen vanuit een ander issue/commit/… @@ -1048,6 +1056,8 @@ language.title = Standaard taal keep_activity_private.description = Uw publieke activiteit zal alleen zichtbaar zijn voor u en de beheerders van de instantie. language.description = Deze taal wordt opgeslagen in uw account en wordt als standaardtaal gebruikt nadat u zich heeft aangemeld. language.localization_project = Help ons Forgejo in uw taal te vertalen! Leer meer. +user_block_yourself = U kunt niet zichzelf blokkeren. +pronouns_custom_label = Aangepaste voornaamwoorden [repo] owner=Eigenaar @@ -1085,11 +1095,11 @@ issue_labels=Labels issue_labels_helper=Selecteer een labelset license=Licentie license_helper=Selecteer een licentie bestand -license_helper_desc=Een licentie bepaalt wat anderen wel en niet met je code kunnen doen. Niet zeker welke juist is voor jouw project? Zie Kies een licentie. +license_helper_desc=Een licentie bepaalt wat anderen wel en niet met je code kunnen doen. Niet zeker welke juist is voor jouw project? Zie Kies een licentie. readme=README readme_helper=Selecteer een README-bestandssjabloon readme_helper_desc=Dit is de plek waar je een volledige beschrijving van je project kunt schrijven. -auto_init=Initialiseer repository (voegt .gitignore, License en README toe) +auto_init=Initialiseer repository trust_model_helper=Selecteer het vertrouwensmodel voor handtekeningverificatie. Mogelijke opties zijn: trust_model_helper_collaborator=Samenwerker: Vertrouw handtekeningen door samenwerker trust_model_helper_committer=Committer: Vertrouw handtekeningen die overeenkomen met de committers @@ -1153,8 +1163,8 @@ template.issue_labels=Issue labels template.one_item=Moet ten minste één sjabloon selecteren template.invalid=Moet een sjabloon repository selecteren -archive.issue.nocomment=Deze repo is gearchiveerd. U kunt niet reageren op problemen. -archive.pull.nocomment=Deze repo is gearchiveerd. U kunt niet reageren op pull requests. +archive.issue.nocomment=Deze repository is gearchiveerd. U kunt niet reageren op problemen. +archive.pull.nocomment=Deze repository is gearchiveerd. U kunt niet reageren op pull requests. form.reach_limit_of_creation_1=U heeft al uw limiet van %d repository bereikt. form.reach_limit_of_creation_n=U heeft al uw limiet van %d repositories bereikt. @@ -1303,13 +1313,14 @@ editor.or=of editor.cancel_lower=Annuleer editor.commit_signed_changes=Commit ondertekende wijzigingen editor.commit_changes=Wijzigingen doorvoeren -editor.add_tmpl="" toevoegen +editor.add_tmpl="<%s>" toevoegen +editor.add_tmpl.filename = bestandsnaam editor.patch=Patch toepassen editor.patching=Patchen: editor.new_patch=Nieuwe patch editor.commit_message_desc=Voeg een optionele uitgebreide omschrijving toe… editor.signoff_desc=Voeg een Signed-off-by toe aan het einde van het commit logbericht. -editor.commit_directly_to_this_branch=Commit direct naar de branch '%s'. +editor.commit_directly_to_this_branch=Commit direct naar de branch %[1]s. editor.create_new_branch=Maak een nieuwe branch voor deze commit en start van een pull request. editor.create_new_branch_np=Maak een nieuwe branch voor deze commit. editor.propose_file_change=Stel bestandswijziging voor @@ -1599,7 +1610,7 @@ issues.error_modifying_due_date=Deadline aanpassen mislukt. issues.error_removing_due_date=Deadline verwijderen mislukt. issues.push_commit_1=toegevoegd %d commit %s issues.push_commits_n=toegevoegd %d commits %s -issues.force_push_codes=`force-push %[1]s van %[2]s naar %[4]s %[6]s` +issues.force_push_codes=`force-push %[1]s van %[2]s naar %[4]s %[6]s` issues.force_push_compare=Vergelijk issues.due_date_form=jjjj-mm-dd issues.due_date_form_add=Vervaldatum toevoegen @@ -1648,9 +1659,9 @@ issues.review.left_comment=heeft een reactie achtergelaten issues.review.content.empty=Je moet een reactie achterlaten die de gewenste verandering(en) beschrijft. issues.review.reject=aangevraagde wijzigingen %s issues.review.wait=is gevraagd voor review %s -issues.review.add_review_request=heeft een review aangevraagd van %s %s -issues.review.remove_review_request=beoordelingsaanvraag voor %s %s verwijderd -issues.review.remove_review_request_self=beoordeling geweigerd %s +issues.review.add_review_request=beoordeling gevraagd van %[1]s %[2]s +issues.review.remove_review_request=beoordelingsaanvraag voor %[1]s %[2]s verwijderd +issues.review.remove_review_request_self=weigerde te beoordelen %s issues.review.pending=In behandeling issues.review.review=Review issues.review.reviewers=Beoordelaars @@ -1696,7 +1707,7 @@ pulls.nothing_to_compare=Deze branches zijn gelijk. Er is geen pull request nodi pulls.nothing_to_compare_and_allow_empty_pr=Deze branches zijn gelijk. Deze pull verzoek zal leeg zijn. pulls.has_pull_request=`Een pull-verzoek tussen deze branches bestaat al: %[2]s#%[3]d` pulls.create=Pull request aanmaken -pulls.title_desc_few=wilt %[1]d commits van %[2]s samenvoegen met %[3]s +pulls.title_desc_few=wilt %[1]d commits van %[2]s samenvoegen met %[3]s pulls.merged_title_desc_few=heeft %[1]d commits samengevoegd van %[2]s naar %[3]s %[4]s pulls.change_target_branch_at='doelbranch aangepast van %s naar %s %s' pulls.tab_conversation=Discussie @@ -1904,8 +1915,7 @@ activity.git_stats_and_deletions=en activity.git_stats_deletion_1=%d verwijdering activity.git_stats_deletion_n=%d verwijderingen -contributors.contribution_type.commits=Commits - +contributors.contribution_type.commits = Commits search=Zoek search.search_repo=Zoek repository search.fuzzy=Vergelijkbaar @@ -2186,8 +2196,8 @@ settings.archive.header=Archiveer deze repo settings.archive.success=De repo is succesvol gearchiveerd. settings.archive.error=Er is een fout opgetreden tijdens het archiveren van de repo. Zie het logboek voor meer informatie. settings.archive.error_ismirror=U kunt geen gespiegelde repository archiveren. -settings.archive.branchsettings_unavailable=Branch instellingen zijn niet beschikbaar als de repo is gearchiveerd. -settings.archive.tagsettings_unavailable=Labelinstellingen zijn niet beschikbaar als de repo is gearchiveerd. +settings.archive.branchsettings_unavailable=Branchinstellingen zijn niet beschikbaar in gearchiveerde repo's. +settings.archive.tagsettings_unavailable=Tag-instellingen zijn niet beschikbaar in gearchiveerde repo's. settings.update_avatar_success=De repository avatar is bijgewerkt. settings.lfs=LFS settings.lfs_filelist=LFS bestanden opgeslagen in deze repository @@ -2400,7 +2410,7 @@ issues.review.option.hide_outdated_comments = Verouderde reacties verbergen pulls.expand_files = Alle bestanden uitklappen pulls.collapse_files = Alle bestanden inklappen pulls.show_all_commits = Alle commits weergeven -new_repo_helper = Een repository bevat alle projectbestanden, inclusief revisiegeschiedenis. Host je er al ergens anders een? Repository migreren. +new_repo_helper = Een repository bevat alle projectbestanden, inclusief revisiegeschiedenis. Host je er al ergens anders een? Repository migreren. editor.fail_to_update_file = Mislukt bij het bijwerken/creëren van bestand "%s". editor.file_is_a_symlink = `"%s" is een symbolische link. Symbolische links kunnen niet worden bewerkt in de webeditor` editor.filename_is_a_directory = Bestandsnaam "%s" wordt al gebruikt als naam van een map in deze repository. @@ -2470,7 +2480,7 @@ tree_path_not_found_tag = Pad %[1]s bestaat niet in tag %[2]s transfer.no_permission_to_reject = Je hebt geen rechten om deze overdracht af te wijzen. settings.transfer_owner = Nieuwe eigenaar mirror_address_protocol_invalid = De opgegeven URL is ongeldig. Alleen http(s):// of git:// locaties kunnen gebruikt worden voor spiegelen. -archive.title = Deze repo is gearchiveerd. Je kunt bestanden bekijken en klonen, maar geen issues of pull requests pushen of openen. +archive.title = Deze repository is gearchiveerd. Je kunt bestanden bekijken en klonen, maar geen issues of pull requests pushen of openen. archive.title_date = Deze repository is gearchiveerd op %s. Je kunt bestanden bekijken en klonen, maar je kunt niet pushen of issues of pull requests openen. migrate_options_lfs_endpoint.placeholder = Als dit leeg gelaten wordt, zal het eindpunt afgeleid worden van de kloon URL invisible_runes_description = `Dit bestand bevat onzichtbare Unicode-tekens die voor mensen niet te onderscheiden zijn, maar door een computer anders verwerkt kunnen worden. Als je denkt dat dit opzettelijk is, kun je deze waarschuwing gerust negeren. Gebruik de Escape knop om ze te onthullen.` @@ -2602,7 +2612,7 @@ settings.remove_protected_branch_success = Branchbescherming voor regel "%s" is settings.remove_protected_branch_failed = Verwijderen van branchbeschermings regel "%s" is mislukt. settings.merge_style_desc = Samenvoegstijl settings.thread_id = Thread ID -settings.archive.mirrors_unavailable = Mirrors zijn niet beschikbaar als de repo is gearchiveerd. +settings.archive.mirrors_unavailable = Mirrors zijn niet beschikbaar in gearchiveerde repo's. settings.unarchive.header = Deze repo uit het archief halen settings.unarchive.text = Het uit het archief halen van de repo zal het vermogen herstellen om commits en pushes te ontvangen, evenals nieuwe issues en pull requests. settings.unarchive.error = Er is een fout opgetreden bij het uit het archief halen van de repo. Bekijk de logs voor meer details. @@ -2701,7 +2711,6 @@ activity.navbar.pulse = Puls wiki.original_git_entry_tooltip = Bekijk het originele Git bestand in plaats van een vriendelijke link te gebruiken. activity.navbar.contributors = Samenwerkers contributors.contribution_type.additions = Toevoegingen -contributors.contribution_type.commits = Commits contributors.contribution_type.deletions = Verwijderingen settings.mirror_settings.docs.doc_link_pull_section = het gedeelte "Pullen uit een externe repository" in de documentatie. settings.mirror_settings.docs.doc_link_title = Hoe kan ik repositories spiegelen? @@ -2745,7 +2754,7 @@ activity.navbar.code_frequency = Code frequentie activity.navbar.recent_commits = Recente commits file_follow = Volg symlink error.broken_git_hook = it hooks van deze repository lijken kapot te zijn. Volg alsjeblieft de documentatie om ze te repareren, push daarna wat commits om de status te vernieuwen. -pulls.title_desc_one = wilt %[1]d commit van %[2]s samenvoegen in %[3]s +pulls.title_desc_one = wilt %[1]d commit van %[2]s samenvoegen in %[3]s open_with_editor = Open met %s commits.search_branch = Deze branch pulls.merged_title_desc_one = heeft %[1]d commit van %[2]s samengevoegd in %[3]s %[4]s @@ -2826,10 +2835,46 @@ mirror_use_ssh.not_available = SSH-authenticatie is niet beschikbaar. issues.new.assign_to_me = Aan mij toewijzen issues.all_title = Alles settings.discord_icon_url.exceeds_max_length = Icoon-URL moet 2048 tekens of minder zijn +issues.review.add_review_requests = beoordelingen gevraagd van %[1]s %[2]s +issues.review.remove_review_requests = verwijderde beoordelingsverzoeken voor %[1]s %[2]s +issues.review.add_remove_review_requests = vraagde beoordelingen van %[1]s en verwijderde beoordelingsverzoeken voor %[2]s %[3]s +pulls.delete_after_merge.head_branch.is_default = De hoofdbranch die u wilt verwijderen is de standaard branch en kan niet verwijderd worden. +pulls.delete_after_merge.head_branch.is_protected = De hoofdbranch die u wilt verwijderen is een beschermde branch en kan niet verwijderd worden. +pulls.delete_after_merge.head_branch.insufficient_branch = Je hebt geen toestemming om de hoofdbranch te verwijderen. +issues.filter_sort.relevance = Relevantie +diff.git-notes.add = Notitie toevoegen +diff.git-notes.remove-header = Notitie verwijderen +diff.git-notes.remove-body = Deze notitie zal worden verwijderd. +issues.summary_card_alt = Overzichtskaart van een issue met de titel "%s" in repository %s +issues.num_reviews_one = %d beoordeling +issues.num_reviews_few = %d beoordelingen +settings.default_update_style_desc = Standaard update stijl gebruikt voor het updaten van pull requests die achter de basis branch liggen. +pulls.sign_in_require = Aanmelden om een nieuwe pull request aan te maken. +new_advanced = Geavanceerde instellingen +new_advanced_expand = Klik om uit te breiden +new_from_template_description = Je kunt een bestaand repositorysjabloon op deze instantie selecteren en de instellingen toepassen. +new_from_template = Een sjabloon gebruiken +auto_init_description = De Git geschiedenis starten met een README en optioneel License en .gitignore bestanden toevoegen. +issues.reaction.add = Reactie toevoegen +issues.reaction.alt_few = %[1]s reageerde %[2]s. +issues.reaction.alt_add = Voeg %[1]s reactie toe aan commentaar. +issues.context.menu = Commentaar menu +summary_card_alt = Overzichtskaart van repository %s +release.summary_card_alt = Samenvattende kaart van een release met de titel "%s" in repository %s +issues.reaction.alt_remove = Verwijder %[1]s reactie van bericht. +issues.reaction.alt_many = %[1]s en %[2]d meer gereageerd %[3]s. [graphs] +component_loading_info = Dit kan even duren… +component_failed_to_load = Er is een onverwachte fout opgetreden. +contributors.what = bijdragen +component_loading_failed = %s kon niet worden geladen +component_loading = Bezig met laden van %s... +code_frequency.what = code frequentie +recent_commits.what = recente commits + [org] org_name_holder=Organisatienaam @@ -2952,7 +2997,7 @@ teams.invite.description = Klik op onderstaande knop om u bij het team aan te sl teams.invite.by = Uitgenodigd door %s teams.all_repositories_admin_permission_desc = Dit team verleent Administrator permissies tot alle repositories: leden kunnen lezen, pushen naar en samenwerkers toevoegen aan repositories. settings.change_orgname_prompt = Merk op: Het wijzigen van de organisatienaam zal ook de URL van uw organisatie veranderen en de oude naam vrijgeven. -settings.visibility.limited = Beperkt (alleen zichtbaar voor geauthenticeerde gebruikers) +settings.visibility.limited = Beperkt (alleen zichtbaar voor ingelogde gebruikers) teams.add_nonexistent_repo = De repository die u probeert toe te voegen bestaat niet, maak deze eerst aan alstublieft. teams.all_repositories_write_permission_desc = Dit team verleent Schrijf permissies tot alle repositories: leden kunnen lezen en pushen naar repositories. open_dashboard = Open dashboard @@ -3449,7 +3494,7 @@ self_check.database_inconsistent_collation_columns = Database gebruikt collatie 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 "gitea 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. +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 @@ -3513,6 +3558,7 @@ emails.delete_desc = Weet u zeker dat u deze e-mailadres wilt verwijderen? emails.delete_primary_email_error = U kunt de primaire e-mail niet verwijderen. emails.delete = E-mail verwijderen emails.deletion_success = Het e-mailadres is verwijderd. +monitor.duration = Duur (s) [action] @@ -3638,16 +3684,16 @@ cargo.install = Voer de volgende opdracht uit om het pakket met Cargo te install chef.install = Voer het volgende commando uit om het pakket te installeren: composer.registry = Stel dit register in je ~/.composer/config.json bestand: composer.dependencies = Afhankelijkheden -composer.dependencies.development = Ontwikkelings Afhankelijkheden +composer.dependencies.development = Ontwikkelings afhankelijkheden conan.registry = Stel dit register in vanaf de terminal: conan.install = Voer het volgende commando uit om het pakket met Conan te installeren: conda.registry = Stel dit register in als een Conda repository in je .condarc bestand: -container.details.type = Afbeelding Type +container.details.type = Afbeelding type container.details.platform = Platform container.pull = Haal de afbeelding op vanaf de terminal: -container.digest = Digest: +container.digest = Digest container.multi_arch = Besturingssysteem / Arch -container.layers = Afbeelding Lagen +container.layers = Afbeelding lagen container.labels = Labels container.labels.key = Sleutel debian.repository = Repository informatie @@ -3669,7 +3715,7 @@ rpm.repository.architectures = Architecturen rpm.repository.multiple_groups = Dit pakket is beschikbaar in meerdere groepen. rubygems.install = Voer het volgende commando uit om het pakket met gem te installeren: rubygems.install2 = of voeg het toe aan het Gemfile: -rubygems.dependencies.development = Ontwikkelings Dependencies +rubygems.dependencies.development = Ontwikkelings dependencies swift.registry = Stel dit register in vanaf de terminal: swift.install = Voeg het pakket toe in je Package.swift bestand: swift.install2 = en voer het volgende commando uit: @@ -3687,7 +3733,7 @@ nuget.install = Voer het volgende commando uit om het pakket met NuGet te instal npm.install = Voer het volgende commando uit om het pakket met npm te installeren: npm.install2 = of voeg het toe aan het package.json bestand: npm.dependencies = Afhankelijkheden -npm.dependencies.development = Ontwikkelings Afhankelijkheden +npm.dependencies.development = Ontwikkelings afhankelijkheden npm.dependencies.peer = Peer afhankelijkheden npm.dependencies.optional = Optionele afhankelijkheden owner.settings.cargo.title = Cargo register index @@ -3709,7 +3755,7 @@ owner.settings.cleanuprules.keep.count = Bewaar de meest recente owner.settings.cleanuprules.keep.count.1 = 1 versie per pakket owner.settings.cleanuprules.keep.count.n = %d versies per pakket pub.install = Voer het volgende commando uit om het pakket met Dart te installeren: -rubygems.dependencies.runtime = Runtime Dependencies +rubygems.dependencies.runtime = Runtime dependencies settings.delete.error = Het verwijderen van het pakket is mislukt. alpine.registry = Stel dit register in door de url toe te voegen aan je /etc/apk/repositories bestand: maven.registry = Stel dit register in het pom.xml bestand van je project: @@ -3773,6 +3819,15 @@ arch.version.conflicts = Conflicten arch.version.replaces = Vervangt arch.version.backup = Back-up arch.version.makedepends = Maken is afhankelijk van +container.images.title = Afbeeldingen +search_in_external_registry = Zoeken in %s +alt.registry.install = Voer het volgende commando uit om het pakket te installeren: +alt.repository = Repository info +alt.repository.architectures = Architecturen +alt.repository.multiple_groups = Dit pakket is beschikbaar in meerdere groepen. +alt.registry = Stel dit register in vanaf de opdrachtregel: +alt.install = Pakket installeren +alt.setup = Voeg een repository toe aan de lijst met gekoppelde repositories (kies de benodigde architectuur in plaats van '_arch_'): [secrets] secrets = Geheimen @@ -3790,9 +3845,6 @@ creation.name_placeholder = hoofdlettergevoelig, alleen alfanumerieke tekens of deletion.failed = Mislukt om geheim te verwijderen. [actions] - - - runners.name=Naam runners.owner_type=Type runners.description=Omschrijving @@ -3888,6 +3940,8 @@ workflow.dispatch.warn_input_limit = Alleen de eerste %d invoeren worden weergeg workflow.dispatch.invalid_input_type = Ongeldig invoertype “%sâ€. workflow.dispatch.input_required = Waarde vereist voor invoer “%sâ€. runs.expire_log_message = Logs zijn verwijderd omdat ze te oud waren. +runs.no_workflows.help_no_write_access = Om meer te weten te komen over Forgejo Acties, zie de documentatie. +runs.no_workflows.help_write_access = Weet je niet hoe je moet beginnen met Forgejo Actions? Bekijk de snelstart in de gebruikersdocumentatie om je eerste workflow te schrijven en stel vervolgens een Forgejo runner in om je jobs uit te voeren. @@ -3899,7 +3953,6 @@ type-3.display_name = Organisatie project deleted.display_name = Verwijderd project [git.filemode] -; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", … symbolic_link=Symbolische link submodule = Submodule changed_filemode = %[1]s → %[2]s @@ -3909,16 +3962,6 @@ executable_file = Uitvoerbaar bestand -[graphs] -component_loading_info = Dit kan even duren… -component_failed_to_load = Er is een onverwachte fout opgetreden. -contributors.what = bijdragen -component_loading_failed = %s kon niet worden geladen -component_loading = Bezig met laden van %s... -code_frequency.what = code frequentie -recent_commits.what = recente commits - - [search] search = Zoek... fuzzy = Fuzzy @@ -3986,4 +4029,4 @@ projects.write = Schrijven: Projecten en kolommen maken en bewerken. packages.read = Lezen: Bekijk en download pakketten die aan de repository is toegewezen. packages.write = Schrijven: Publiceer en verwijder pakketten die aan de repository is toegewezen. actions.read = Lezen: Bekijk geïntegreerde CI/CD-pijplijnen en hun logboeken. -issues.write = Schrijven: Sluit issues af en beheer metadata zoals labels, mijlpalen, verantwoordelijken, vervaldatums en afhankelijkheden. \ No newline at end of file +issues.write = Schrijven: Sluit issues af en beheer metadata zoals labels, mijlpalen, verantwoordelijken, vervaldatums en afhankelijkheden. diff --git a/options/locale/locale_pl-PL.ini b/options/locale/locale_pl-PL.ini index cecafc9870..7192f6a366 100644 --- a/options/locale/locale_pl-PL.ini +++ b/options/locale/locale_pl-PL.ini @@ -166,6 +166,7 @@ new_repo.link = Nowe repozytorium new_migrate.link = Nowa migracja new_org.link = Nowa organizacja filter.not_fork = Nie forki +copy_path = Skopiuj Å›cieżkÄ™ [aria] navbar = Pasek nawigacji @@ -198,6 +199,12 @@ buttons.switch_to_legacy.tooltip = Zamiast tego użyj starego edytora buttons.disable_monospace_font = Wyłącz czcionkÄ™ monospace buttons.enable_monospace_font = Włącz czcionkÄ™ monospace buttons.indent.tooltip = Zagnieżdż elementy o jeden poziom +buttons.new_table.tooltip = Dodaj tabelÄ™ +table_modal.header = Dodaj tabelÄ™ +table_modal.placeholder.header = Nagłówek +table_modal.placeholder.content = Zawartość +table_modal.label.rows = Wiersze +table_modal.label.columns = Kolumny [filter] string.asc = A - Z @@ -248,7 +255,7 @@ err_empty_db_path=Åšcieżka do bazy danych SQLite3 nie może być pusta. no_admin_and_disable_registration=Nie możesz wyłączyć możliwoÅ›ci samodzielnej rejestracji kont użytkowników bez stworzenia konta administratora. err_empty_admin_password=HasÅ‚o administratora nie może być puste. err_empty_admin_email=Pole adresu e-mail administratora nie może być puste. -err_admin_name_is_reserved=Nazwa użytkownika administratora jest nieprawidÅ‚owa, pseudonim jest zastrzeżony +err_admin_name_is_reserved=Nazwa użytkownika administratora jest nieprawidÅ‚owa, pseudonim jest zarezerwowany err_admin_name_pattern_not_allowed=Nazwa użytkownika administratora jest nieprawidÅ‚owa, pseudonim zawiera zastrzeżone znaki err_admin_name_is_invalid=Nazwa użytkownika administratora jest nieprawidÅ‚owa @@ -470,6 +477,8 @@ back_to_sign_in = Wróć do logowania sign_in_openid = Kontynuuj z OpenID hint_login = Masz już konto? Zaloguj siÄ™ teraz! sign_up_button = Zarejestruj siÄ™. +use_onetime_code = Użyj kodu jednorazowego +unauthorized_credentials = Dane uwierzytelniajÄ…ce sÄ… nieprawidÅ‚owe lub wygasÅ‚y. Spróbuj ponownie wykonać polecenie lub zobacz %s, aby uzyskać wiÄ™cej informacji [mail] view_it_on=Zobacz na %s @@ -655,6 +664,9 @@ must_use_public_key = Podany klucz jest kluczem prywatnym. Nie przesyÅ‚aj nigdzi Location = Lokalizacja username_error_no_dots = ` może zawierać tylko znaki alfanumeryczne ("0-9", "a-z", "A-Z"), myÅ›lnik ("-") oraz podkreÅ›lenie ("_"). Nie może zaczynać siÄ™ ani koÅ„czyć znakami niealfanumerycznymi, a znaki niealfanumeryczne wystÄ™pujÄ…ce po sobie sÄ… również zabronione.` username_error = ` może zawierać tylko znaki alfanumeryczne ("0-9", "a-z", "A-Z"), myÅ›lnik ("-") oraz podkreÅ›lenie ("_"). Nie może zaczynać siÄ™ ani koÅ„czyć znakami niealfanumerycznymi, a znaki niealfanumeryczne wystÄ™pujÄ…ce po sobie sÄ… również zabronione.` +still_has_org = Twoje konto jest czÅ‚onkiem jednej bÄ…dź wielu organizacji, musisz je najpierw opuÅ›cić. +org_still_own_repo = Ta organizacja nadal jest wÅ‚aÅ›cicielem jednego lub wielu repozytoriów. Najpierw je usuÅ„ lub przenieÅ›. +admin_cannot_delete_self = Nie możesz usunąć siebie, gdy jesteÅ› administratorem. ProszÄ™ najpierw usunąć swoje uprawnienia administratora. [user] @@ -674,6 +686,20 @@ disabled_public_activity=Ten użytkownik wyłączyÅ‚ publiczne wyÅ›wietlanie jeg code = Kod block = Zablokuj unblock = Odblokuj +block_user.detail = PamiÄ™taj, że zablokowanie użytkownika powoduje inne skutki, takie jak: +block_user.detail_2 = Ten użytkownik nie bÄ™dzie mógÅ‚ wchodzić w interakcjÄ™ z repozytoriami, których jesteÅ› wÅ‚aÅ›cicielem, ani z problemami i komentarzami, które utworzyÅ‚eÅ›. +settings = Ustawienia użytkownika +followers_one = %d obserwujÄ…cych +following_one = %d obserwowanych +followers.title.one = ObserwujÄ…cy +followers.title.few = ObserwujÄ…cy +following.title.one = Obserwowani +following.title.few = Obserwowani +email_visibility.limited = Twój adres e-mail jest widoczny dla wszystkich uwierzytelnionych użytkowników +block_user = Zablokuj użytkownika +block_user.detail_1 = Przestaniecie siÄ™ wzajemnie obserwować i nie bÄ™dziecie mogli siÄ™ wzajemnie obserwować. +follow_blocked_user = Nie możesz obserwować tego użytkownika, ponieważ go zablokowaÅ‚eÅ› lub ten użytkownik zablokowaÅ‚ Ciebie. +show_on_map = Pokaż to mejsce na mapie [settings] @@ -1150,9 +1176,9 @@ editor.or=lub editor.cancel_lower=Anuluj editor.commit_signed_changes=Zatwierdź podpisane zmiany editor.commit_changes=Zatwierdź zmiany -editor.add_tmpl=Dodanie '' +editor.add_tmpl=Dodanie '<%s>' editor.commit_message_desc=Dodaj dodatkowy rozszerzony opis… -editor.commit_directly_to_this_branch=Zmieniaj bezpoÅ›rednio gałąź %s. +editor.commit_directly_to_this_branch=Zmieniaj bezpoÅ›rednio gałąź %[1]s. editor.create_new_branch=Stwórz nowÄ… gałąź dla tego commita i rozpocznij Pull Request. editor.create_new_branch_np=Stwórz nowÄ… gałąź dla tego commita. editor.propose_file_change=Zaproponuj zmiany w pliku @@ -1482,7 +1508,7 @@ pulls.no_results=Nie znaleziono wyników. pulls.nothing_to_compare=Te gałęzie sÄ… sobie równe. Nie ma potrzeby tworzyć Pull Requesta. pulls.nothing_to_compare_and_allow_empty_pr=Te gałęzie sÄ… równe. Ten PR bÄ™dzie pusty. pulls.create=Utwórz Pull Request -pulls.title_desc_few=chce scalić %[1]d commity/ów z %[2]s do %[3]s +pulls.title_desc_few=chce scalić %[1]d commity/ów z %[2]s do %[3]s pulls.merged_title_desc_few=scala %[1]d commity/ów z %[2]s do %[3]s %[4]s pulls.change_target_branch_at=`zmienia gałąź docelowÄ… z %s na %s %s` pulls.tab_conversation=Dyskusja @@ -2794,9 +2820,6 @@ rpm.repository.architectures = Architektury secrets = Sekrety [actions] - - - runners.name=Nazwa runners.owner_type=Typ runners.description=Opis @@ -2832,7 +2855,6 @@ status.blocked = Zablokowano [projects] [git.filemode] -; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", … symbolic_link=DowiÄ…zanie symboliczne executable_file = Plik wykonywalny submodule = PodmoduÅ‚ @@ -2868,4 +2890,5 @@ exact_tooltip = UwzglÄ™dniaj tylko wyniki pasujÄ…ce do wyszukiwanego hasÅ‚a issue_kind = Wyszukaj problemy... pull_kind = Wyszukaj pull requesty... union = Unia -regexp = RegExp \ No newline at end of file +regexp = RegExp +regexp_tooltip = Interpretuj wyszukiwane hasÅ‚o jako wyrażenie regularne diff --git a/options/locale/locale_pt-BR.ini b/options/locale/locale_pt-BR.ini index 2179e4fb33..f6cf73620c 100644 --- a/options/locale/locale_pt-BR.ini +++ b/options/locale/locale_pt-BR.ini @@ -166,6 +166,7 @@ new_migrate.link = Nova migração new_org.link = Nova organização test = Teste error413 = Você esgotou sua cota. +copy_path = Copiar caminho [aria] navbar=Barra de navegação @@ -199,6 +200,12 @@ buttons.enable_monospace_font=Habilitar fonte mono espaçada buttons.disable_monospace_font=Desabilitar fonte mono espaçada buttons.indent.tooltip = Aninhar items em um nível buttons.unindent.tooltip = Desaninhar items em um nível +buttons.new_table.tooltip = Adicionar tabela +table_modal.header = Adicionar tabela +table_modal.placeholder.header = Cabeçalho +table_modal.placeholder.content = Conteúdo +table_modal.label.rows = Linhas +table_modal.label.columns = Colunas [filter] string.asc=A - Z @@ -217,12 +224,12 @@ server_internal = Erro interno do servidor app_desc=Um serviço de hospedagem Git amigável install=Fácil de instalar platform=Multi-plataforma -platform_desc=Forgejo roda em qualquer sistema em que Go consegue compilar: Windows, macOS, Linux, ARM, etc. Escolha qual você gosta mais! lightweight=Leve e rápido lightweight_desc=Forgejo utiliza poucos recursos e consegue mesmo rodar no barato Raspberry Pi. Economize energia elétrica da sua máquina! license=Código aberto license_desc=Está tudo no Forgejo! Contribua e torne este projeto ainda melhor. Não tenha vergonha de contribuir! install_desc = Apenas rode o binário para a sua plataforma, execute-o com Docker, ou obtenha-o empacotado. +platform_desc = Foi confirmado que o Forgejo roda em sistemas operacionais livres, como Linux e FreeBSD, assim como em diferentes arquiteturas de CPU. Escolha sua preferida! [install] install=Instalação @@ -477,6 +484,7 @@ hint_login = Já possui uma conta? Faça login agora! sign_in_openid = Continuar com OpenID back_to_sign_in = Voltar a Iniciar Sessão unauthorized_credentials = As credenciais estão incorretas ou expiraram. Tente novamente o comando ou consulte %s para obter mais informações +use_onetime_code = Usar um código de uso único [mail] view_it_on=Veja em %s @@ -738,9 +746,9 @@ uid=UID webauthn=Chaves de segurança public_profile=Perfil público -biography_placeholder=Conte-nos um pouco sobre você! (Você pode usar Markdown) +biography_placeholder=Conte um pouco sobre você! (Markdown é suportado) location_placeholder=Compartilhe sua localização aproximada com outras pessoas -profile_desc=Controle como o seu perfil é exibido para outros usuários. Seu endereço de e-mail principal será usado para notificações, recuperação de senha e operações do Git baseadas na Web. +profile_desc=Sobre você password_username_disabled=Usuários não-locais não podem alterar seus nomes de usuário. Por favor contate o administrador do site para mais informações. full_name=Nome completo website=Site @@ -805,7 +813,7 @@ manage_emails=Gerenciar endereços de e-mail manage_themes=Tema padrão manage_openid=Endereços OpenID email_desc=Seu endereço de e-mail principal será usado para notificações, recuperação de senha e, desde que não esteja oculto, para operações do Git baseadas na Web. -theme_desc=Este será o seu tema padrão em todo o site. +theme_desc=Este tema será usado para a interface web quando você fizer login. primary=Principal activated=Ativado requires_activation=Requer ativação @@ -831,7 +839,7 @@ add_email_success=O novo endereço de e-mail foi adicionado. email_preference_set_success=Preferência de e-mail definida com sucesso. add_openid_success=O novo endereço de OpenID foi adicionado. keep_email_private=Ocultar endereço de e-mail -keep_email_private_popup=Isso ocultará seu endereço de e-mail do seu perfil. Ele não será mais o padrão para commits feitos pela interface web, como envios de arquivos e modificações, e não será usado para commits de merge. Em vez disso, um endereço especial %s pode ser usado para associar commits com a sua conta. Note que modificar esta opção não irá afetar commits já existentes. +keep_email_private_popup=Seu endereço de email não será exibido no seu perfil e não será o padrão para commits feitos pela interface web, como envios de arquivos, modificações e commits de merge. Em vez disso, um endereço especial %s pode ser usado para associar commits com a sua conta. Esta opção não irá afetar commits já existentes. openid_desc=OpenID permite delegar autenticação para um provedor externo. manage_ssh_keys=Gerenciar chaves SSH @@ -1032,7 +1040,7 @@ user_block_success = O usuário foi bloqueado. twofa_recovery_tip = Caso perca o seu dispositivo, você poderá usar uma chave de uso único para recuperar o acesso à sua conta. webauthn_key_loss_warning = Caso perca as suas chaves de segurança, você perderá o acesso à sua conta. blocked_users_none = Nenhum usuário bloqueado. -access_token_desc = As permissões selecionadas para o token limitam o acesso apenas às rotas da API correspondentes. Veja a documentação para mais informações. +access_token_desc = As permissões selecionadas para o token limitam o acesso apenas às rotas da API correspondentes. Veja a documentação para mais informações. webauthn_alternative_tip = Você talvez queira configurar um método adicional de autenticação. change_password = Alterar senha hints = Dicas @@ -1047,6 +1055,8 @@ update_hints_success = As dicas foram atualizadas. keep_activity_private.description = A sua atividade pública estará visível apenas para si e para os administradores do servidor. language.localization_project = Ajude-nos a traduzir Forgejo para o seu idioma! Mais informações. language.description = Essa língua será salva em sua conta e será usada como padrão após você iniciar a sessão. +user_block_yourself = Você não pode se bloquear. +pronouns_custom_label = Pronomes personalizados [repo] owner=Proprietário @@ -1086,11 +1096,11 @@ issue_labels=Etiquetas issue_labels_helper=Selecione um conjunto de etiquetas license=Licença license_helper=Selecione um arquivo de licença -license_helper_desc=Uma licença define o que os outros podem e não podem fazer com o seu código. Não tem certeza qual é a mais adequada para o seu projeto? Veja Escolher uma licença. +license_helper_desc=Uma licença define o que os outros podem e não podem fazer com o seu código. Não tem certeza qual é a mais adequada para o seu projeto? Veja Escolher uma licença. readme=LEIA-ME readme_helper=Selecione um modelo de arquivo README readme_helper_desc=Aqui você pode escrever uma descrição completa para o seu projeto. -auto_init=Inicializar o repositório (Adiciona arquivos .gitignore, licença e README) +auto_init=Inicializar repositório trust_model_helper=Selecione o modelo de confiança para verificação de assinatura. As opções possíveis são: trust_model_helper_collaborator=Colaborador: Confiar em assinaturas de colaboradores trust_model_helper_committer=Committer: Confiar em assinaturas que correspondem aos committers @@ -1163,8 +1173,8 @@ template.invalid=Deve-se selecionar um repositório de modelo archive.title=Este repositório está arquivado. Você pode visualizar arquivos e cloná-lo, mas não pode fazer push, abrir issues ou pull requests. archive.title_date=Este repositório foi arquivado em %s. Você pode visualizar arquivos e cloná-lo, mas não pode fazer push, abrir issues ou pull requests. -archive.issue.nocomment=Este repositório está arquivado. Você não pode comentar nas issues. -archive.pull.nocomment=Este repositório está arquivado. Você não pode comentar nos pull requests. +archive.issue.nocomment=Este repositório está arquivado. Você não pode comentar em issues. +archive.pull.nocomment=Este repositório está arquivado. Você não pode comentar em pull requests. form.reach_limit_of_creation_1=Você já atingiu o seu limite de %d repositório. form.reach_limit_of_creation_n=Você já atingiu o limite de %d repositórios. @@ -1334,7 +1344,8 @@ editor.or=ou editor.cancel_lower=Cancelar editor.commit_signed_changes=Criar commit das modificações assinadas editor.commit_changes=Criar commit das modificações -editor.add_tmpl=Adicionar "" +editor.add_tmpl=Adicionar "<%s>" +editor.add_tmpl.filename = nome do arquivo editor.add=Adicionar %s editor.update=Atualizar %s editor.delete=Excluir %s @@ -1344,7 +1355,7 @@ editor.fail_to_apply_patch=`Não foi possível aplicar a correção "%s"` editor.new_patch=Novo patch editor.commit_message_desc=Adicione uma descrição detalhada (opcional)... editor.signoff_desc=Adicione um assinado-por-committer no final do log do commit. -editor.commit_directly_to_this_branch=Commit diretamente no branch %s. +editor.commit_directly_to_this_branch=Commit diretamente no branch %[1]s. editor.create_new_branch=Crie um novo branch para este commit e crie um pull request. editor.create_new_branch_np=Crie um novo branch para este commit. editor.propose_file_change=Propor alteração de arquivo @@ -1699,7 +1710,7 @@ issues.error_modifying_due_date=Falha ao modificar a data limite. issues.error_removing_due_date=Falha ao remover a data limite. issues.push_commit_1=adicionou %d commit %s issues.push_commits_n=adicionou %d commits %s -issues.force_push_codes=`forçou o push %[1]s de %[2]s para %[4]s %[6]s` +issues.force_push_codes=`forçou o push %[1]s de %[2]s para %[4]s %[6]s` issues.force_push_compare=Comparar issues.due_date_form=dd/mm/aaaa issues.due_date_form_add=Adicionar data limite @@ -1752,8 +1763,8 @@ issues.review.left_comment=deixou um comentário issues.review.content.empty=Você precisa deixar um comentário indicando as alterações solicitadas. issues.review.reject=solicitou alterações %s issues.review.wait=foi solicitado(a) para revisar %s -issues.review.add_review_request=solicitou uma revisão de %s %s -issues.review.remove_review_request=removeu a solicitação de revisão para %s %s +issues.review.add_review_request=solicitou revisão de %[1]s %[2]s +issues.review.remove_review_request=removeu a solicitação de revisão para %[1]s %[2]s issues.review.remove_review_request_self=recusou-se a revisar %s issues.review.pending=Pendente issues.review.pending.tooltip=Este comentário não está atualmente visível para outros usuários. Para enviar seus comentários pendentes, selecione "%s" -> "%s/%s/%s" no topo da página. @@ -1813,7 +1824,7 @@ pulls.nothing_to_compare=Estes branches são iguais. Não há nenhuma necessidad pulls.nothing_to_compare_and_allow_empty_pr=Estes branches são iguais. Este PR ficará vazio. pulls.has_pull_request=`Um pull request entre esses branches já existe: %[2]s#%[3]d` pulls.create=Criar pull request -pulls.title_desc_few=quer mesclar %[1]d commits de %[2]s em %[3]s +pulls.title_desc_few=quer mesclar %[1]d commits de %[2]s em %[3]s pulls.merged_title_desc_few=mesclou %[1]d commits de %[2]s em %[3]s %[4]s pulls.change_target_branch_at=`mudou o branch de destino de %s para %s %s` pulls.tab_conversation=Conversação @@ -2060,8 +2071,7 @@ activity.git_stats_and_deletions=e activity.git_stats_deletion_1=%d exclusão activity.git_stats_deletion_n=%d exclusões -contributors.contribution_type.commits=Commits - +contributors.contribution_type.commits = Commits search=Pesquisar search.search_repo=Pesquisar no repositório... search.type.tooltip=Tipo de pesquisa @@ -2432,8 +2442,8 @@ settings.archive.header=Arquivar este repositório settings.archive.success=O repositório foi arquivado com sucesso. settings.archive.error=Um erro ocorreu enquanto estava sendo arquivado o repositório. Veja o log para mais detalhes. settings.archive.error_ismirror=Você não pode arquivar um repositório espelhado. -settings.archive.branchsettings_unavailable=Configurações do branch não estão disponíveis quando o repositório está arquivado. -settings.archive.tagsettings_unavailable=As configurações de tag não estão disponíveis se o repositório estiver arquivado. +settings.archive.branchsettings_unavailable=Configurações de branch não estão disponíveis em repositórios arquivados. +settings.archive.tagsettings_unavailable=Configurações de tag não estão disponíveis em repositórios arquivados. settings.update_avatar_success=O avatar do repositório foi atualizado. settings.lfs=LFS settings.lfs_filelist=Arquivos LFS armazenados neste repositório @@ -2501,7 +2511,7 @@ diff.load=Carregar Diff diff.generated=gerado diff.vendored=externo diff.comment.placeholder=Deixe um comentário -diff.comment.markdown_info=Estilo com markdown é suportado. +diff.comment.markdown_info=Estilo com Markdown é suportado. diff.comment.add_single_comment=Adicionar um único comentário diff.comment.add_review_comment=Adicionar comentário diff.comment.start_review=Iniciar revisão @@ -2633,7 +2643,7 @@ settings.unarchive.success = O repositório foi desarquivado. settings.unarchive.button = Desarquivar repositório settings.unarchive.header = Desarquivar este repositório diff.comment.add_line_comment = Adicionar comentário na linha -new_repo_helper = Um repositório contém todos os arquivos de projeto, incluindo o histórico de revisões. Já hospeda um repositório em outra plataforma? Migrar repositório +new_repo_helper = Um repositório contém todos os arquivos de projeto, incluindo o histórico de revisões. Já hospeda um repositório em outra plataforma? Migrar repositório. blame.ignore_revs.failed = Falha ao ignorar as revisões em .git-blame-ignore-revs. migrate.forgejo.description = Migrar dados do codeberg.org ou outras servidores Forgejo. commits.browse_further = Ver mais @@ -2669,7 +2679,6 @@ issues.role.contributor_helper = Este usuário fez commits para o repositório a issues.choose.invalid_config = A configuração de issue contém erros: pulls.made_using_agit = AGit contributors.contribution_type.filter_label = Tipo de contribuição: -contributors.contribution_type.commits = Commits settings.webhook.test_delivery_desc_disabled = Ative este webhook para testá-lo com um evento simulado. activity.navbar.contributors = Contribuidores issues.label_archive_tooltip = Etiquetas arquivadas não serão exibidas nas sugestões de pesquisa de etiquetas. @@ -2691,7 +2700,7 @@ settings.confirm_wiki_branch_rename = Renomar o ramo da wiki pulls.merged_title_desc_one = mesclou %[1]d commit de %[2]s em %[3]s %[4]s activity.navbar.recent_commits = Commits recentes size_format = %[1]s: %[2]s; %[3]s: %[4]s -pulls.title_desc_one = quer mesclar %[1]d commit de %[2]s em %[3]s +pulls.title_desc_one = quer mesclar %[1]d commit de %[2]s em %[3]s pulls.cmd_instruction_merge_desc = Mescle as alterações e enviar para o Forgejo. pulls.ready_for_review = Pronto para revisão? commits.search_branch = Este ramo @@ -2719,7 +2728,7 @@ comments.edit.already_changed = Falha ao salvar as alterações ao comentário. activity.navbar.code_frequency = Frequência de código settings.protect_status_check_matched = Correspondente branch.tag_collision = O ramo "%s" não pode ser criado porque já existe uma etiqueta com o mesmo nome no repositório. -settings.archive.mirrors_unavailable = As réplicas ficarão indisponíveis se o repositório estiver arquivado. +settings.archive.mirrors_unavailable = Réplicas não estão disponíveis em repositórios arquivados. release.download_count_one = %s download settings.mirror_settings.docs.no_new_mirrors = O seu repositório está replicando alterações de ou para outro repositório. Observe que não é possível criar novas réplicas no momento. settings.mirror_settings.docs.pull_mirror_instructions = Para configurar uma réplica de outro repositório, consulte: @@ -2816,8 +2825,8 @@ settings.ignore_stale_approvals_desc = Não contar aprovações feitas em commit settings.protect_status_check_patterns = Padrões de verificação de status error.broken_git_hook = Os hooks Git desse repositório parecem estar quebrados. Por favor, siga a documentação para corrigi-los e então faça push de alguns commits para atualizar o status. release.type_attachment = Anexo -release.type_external_asset = Recurso Externo -release.asset_name = Nome do Recurso +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. 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? @@ -2827,8 +2836,44 @@ release.deletion_desc = Eliminar um release apenas o remove do Forgejo. Isso nã issues.all_title = Tudo 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 +issues.review.add_review_requests = solicitou revisões de %[1]s %[2]s +issues.review.remove_review_requests = removeu pedidos de revisão para %[1]s %[2]s +issues.review.add_remove_review_requests = solicitou revisões de %[1]s e removeu pedidos de revisão para %[2]s %[3]s +pulls.delete_after_merge.head_branch.is_default = O branch head que você quer excluir é o branch padrão e não pode ser excluído. +pulls.delete_after_merge.head_branch.is_protected = O branch head que você quer excluir é um branch protegido e não pode ser excluído. +pulls.delete_after_merge.head_branch.insufficient_branch = Você não tem permissão para excluir o branch head. +issues.filter_sort.relevance = Relevância +diff.git-notes.add = Adicionar anotação +diff.git-notes.remove-header = Remover anotação +diff.git-notes.remove-body = Esta anotação será removida. +issues.num_reviews_one = %d revisão +issues.summary_card_alt = Cartão de resumo de um issue com o título "%s" no repositório %s +issues.num_reviews_few = %d revisões +settings.default_update_style_desc = Estilo padrão de atualização usado para atualizar pull requests que estão atrasados em relação ao branch base. +pulls.sign_in_require = Entre para criar um novo pull request. +new_from_template = Use um modelo +new_from_template_description = Você pode selecionar um modelo de repositório nesta instância e aplicar suas configurações. +new_advanced = Configurações avançadas +new_advanced_expand = Clique para expandir +auto_init_description = Inicializar o histórico do Git com um README e opcionalmente adicionar arquivos License e .gitignore. +issues.reaction.alt_remove = Remover reação %[1]s deste comentário. +issues.reaction.alt_add = Adicionar reação %[1]s ao comentário. +issues.context.menu = Menu de comentário +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 [graphs] +component_loading = Carregando %s... +component_loading_failed = Não foi possível carregar o(a) %s +component_loading_info = Pode demorar um pouco… +contributors.what = contribuições +code_frequency.what = frequência de código +recent_commits.what = commits recentes +component_failed_to_load = Ocorreu um erro inesperado. + [org] org_name_holder=Nome da organização @@ -3487,7 +3532,7 @@ packages.cleanup.success = Os dados expirados foram limpos com sucesso monitor.queue.activeworkers = Processos ativos 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 "gitea doctor convert" para corrigir os problemas de ordenamento, ou também pode corrigir o problema usando "ALTER ... COLLATE ..." SQLs manualmente. +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. monitor.queue.settings.desc = Os pools crescem dinamicamente quando as filas de seus workers ficam bloqueadas. 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. @@ -3512,6 +3557,7 @@ users.restricted.description = Permitir interação somente com os repositórios users.organization_creation.description = Permitir a criação de novas organizações. users.local_import.description = Permitir importar repositórios do sistema de arquivos local do servidor. Isso pode ser um problema de segurança. self_check.database_collation_case_insensitive = O banco de dados está usando um ordenamento %s, que é um ordenamento insensível. Embora o Forgejo possa funcionar com ele, pode haver alguns casos raros que não funcionam como esperado. +monitor.duration = Duração (s) [action] @@ -3647,18 +3693,18 @@ chef.install=Para instalar o pacote, execute o seguinte comando: composer.registry=Configure este registro em seu arquivo ~/.composer/config.json: composer.install=Para instalar o pacote usando o Composer, execute o seguinte comando: composer.dependencies=Dependências -composer.dependencies.development=Dependências de Desenvolvimento +composer.dependencies.development=Dependências de desenvolvimento conan.details.repository=Repositório conan.registry=Configure este registro pela linha de comando: conan.install=Para instalar o pacote usando o Conan, execute o seguinte comando: conda.registry=Configure este registro como um repositório Conda no arquivo .condarc: conda.install=Para instalar o pacote usando o Conda, execute o seguinte comando: -container.details.type=Tipo de Imagem +container.details.type=Tipo de imagem container.details.platform=Plataforma container.pull=Puxe a imagem pela linha de comando: -container.digest=Digest: +container.digest=Digest container.multi_arch=S.O. / Arquitetura -container.layers=Camadas da Imagem +container.layers=Camadas da imagem container.labels=Rótulos container.labels.key=Chave container.labels.value=Valor @@ -3686,9 +3732,9 @@ npm.registry=Configure este registro no arquivo .npmrc do seu proje npm.install=Para instalar o pacote usando o npm, execute o seguinte comando: npm.install2=ou adicione-o ao arquivo package.json: npm.dependencies=Dependências -npm.dependencies.development=Dependências de Desenvolvimento -npm.dependencies.peer=Dependências Peer -npm.dependencies.optional=Dependências Opcionais +npm.dependencies.development=Dependências de desenvolvimento +npm.dependencies.peer=Dependências peer +npm.dependencies.optional=Dependências opcionais npm.details.tag=Tag pub.install=Para instalar o pacote usando Dart, execute o seguinte comando: pypi.requires=Requer Python @@ -3697,12 +3743,12 @@ rpm.registry=Configure este registro pela linha de comando: rpm.distros.redhat=em distribuições baseadas no RedHat rpm.distros.suse=em distribuições baseadas no SUSE rpm.install=Para instalar o pacote, execute o seguinte comando: -rpm.repository=Informações do repositório -rpm.repository.architectures=Arquiteturas +rpm.repository = Informações do repositório +rpm.repository.architectures = Arquiteturas rubygems.install=Para instalar o pacote usando gem, execute o seguinte comando: rubygems.install2=ou adicione-o ao Gemfile: -rubygems.dependencies.runtime=Dependências de Execução -rubygems.dependencies.development=Dependências de Desenvolvimento +rubygems.dependencies.runtime=Dependências de tempo de execução +rubygems.dependencies.development=Dependências de desenvolvimento rubygems.required.ruby=Requer o Ruby versão rubygems.required.rubygems=Requer o RubyGem versão swift.registry=Configure este registro pela linha de comando: @@ -3748,14 +3794,12 @@ owner.settings.cleanuprules.success.update=Regra de limpeza foi atualizada. owner.settings.cleanuprules.success.delete=Regra de limpeza foi excluída. owner.settings.chef.title=Registro Chef owner.settings.chef.keypair=Gerar par de chaves -rpm.repository.architectures = Arquiteturas -rpm.repository = Informações do repositório rpm.repository.multiple_groups = Este pacote está disponível em vários grupos. -npm.dependencies.bundle = Dependências empacotadas +npm.dependencies.bundle = Dependências em bundle registry.documentation = Para mais informações sobre o registro %s, veja a documentação. arch.version.replaces = Substitui arch.version.conflicts = Conflitos -arch.version.properties = Propriedades de Versão +arch.version.properties = Propriedades da versão arch.version.description = Descrição arch.version.groups = Grupo arch.version.provides = Fornece @@ -3774,6 +3818,8 @@ arch.version.makedepends = Dependências do make arch.version.checkdepends = Verificar dependências owner.settings.cargo.initialize.description = É necessário um repositório Git especial de índice para usar o registro Cargo. Usar esta opção irá (re-)criar o repositório e configurá-lo automaticamente. owner.settings.chef.keypair.description = É necessário um par de chaves para autenticar no registro Chef. Se você já gerou um par de chaves, gere um novo par e descarte o antigo. +container.images.title = Imagens +search_in_external_registry = Buscar em %s [secrets] secrets=Segredos @@ -3891,6 +3937,8 @@ workflow.dispatch.input_required = Exigir um valor para a entrada "%s". workflow.dispatch.invalid_input_type = Tipo de entrada "%s" inválido. variables.deletion.description = Apagar uma variável é permanente e não pode ser desfeito. Continuar? runs.expire_log_message = Os logs foram apagados pois eram antigos demais. +runs.no_workflows.help_no_write_access = Para aprender sobre as Actions do Forgejo, veja a documentação. +runs.no_workflows.help_write_access = Não sabe como começar a usar as Actions do Forgejo? Veja o guia de como começar na documentação do usuário para escrever seu primeiro workflow, depois configure um runner do Forgejo para executar trabalhos. [projects] @@ -3900,7 +3948,6 @@ type-3.display_name=Projeto da organização deleted.display_name = Projeto Apagado [git.filemode] -; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", … symbolic_link=Ligação simbólica changed_filemode = %[1]s → %[2]s directory = Diretório @@ -3910,16 +3957,6 @@ executable_file = Arquivo executável -[graphs] -component_loading = Carregando %s... -component_loading_failed = Não foi possível carregar o(a) %s -component_loading_info = Pode demorar um pouco… -contributors.what = contribuições -code_frequency.what = frequência de código -recent_commits.what = commits recentes -component_failed_to_load = Ocorreu um erro inesperado. - - [search] org_kind = Buscar organizações... team_kind = Buscar equipes... @@ -3986,4 +4023,4 @@ packages.write = Escrever: Publique e delete pacotes atribuídos ao repos ext_issues = Acesse o link para um issue tracker externo. As permissões são gerenciadas externamente. [translation_meta] -test = To preserve its claws, the giant anteater walks on its front knuckles, like gorillas \ No newline at end of file +test = To preserve its claws, the giant anteater walks on its front knuckles, like gorillas diff --git a/options/locale/locale_pt-PT.ini b/options/locale/locale_pt-PT.ini index 59dcd6bffd..ca1199dd54 100644 --- a/options/locale/locale_pt-PT.ini +++ b/options/locale/locale_pt-PT.ini @@ -142,7 +142,7 @@ confirm_delete_selected=Confirma a exclusão de todos os itens marcados? name=Nome value=Valor -filter.is_fork = Derivações +filter.is_fork = Derivado filter.is_mirror = Réplicas filter.is_template = Modelos filter.public = Público @@ -156,7 +156,7 @@ filter.clear = Retirar filtros filter.is_archived = Arquivado filter.not_template = Não modelos toggle_menu = Comutar menu -filter = Filtro +filter = Filtrar copy_generic = Copiar para a área de transferência test = Teste error413 = Você esgotou a sua quota. @@ -166,6 +166,7 @@ new_org.title = Nova organização new_repo.link = Novo repositório new_migrate.link = Nova migração new_org.link = Nova organização +copy_path = Copiar caminho [aria] navbar=Barra de navegação @@ -199,6 +200,12 @@ buttons.enable_monospace_font=Habilitar tipo de letra mono-espaçado buttons.disable_monospace_font=Desabilitar tipo de letra mono-espaçado buttons.indent.tooltip = Aninhar itens num nível buttons.unindent.tooltip = Desaninhar itens por um nível +buttons.new_table.tooltip = Adicionar tabela +table_modal.header = Adicionar tabela +table_modal.placeholder.header = Cabeçalho +table_modal.placeholder.content = Conteúdo +table_modal.label.rows = Linhas +table_modal.label.columns = Colunas [filter] string.asc=A - Z @@ -206,7 +213,7 @@ string.desc=Z - A [error] occurred=Ocorreu um erro -report_message=Se acredita de que se trata de um erro do Forgejo, procure, por favor, questões relacionadas no GitHub ou abra uma nova questão, se necessário. +report_message=Se acredita de que se trata de um erro do Forgejo, procure, por favor, questões relacionadas no Codeberg ou abra uma nova questão, se necessário. missing_csrf=Pedido inválido: não há código CSRF invalid_csrf=Pedido inválido: código CSRF inválido not_found=Não foi possível encontrar o destino. @@ -476,6 +483,8 @@ hint_register = Precisa de uma conta? Faça uma inscrição agora.< sign_up_button = Faça uma inscrição agora. back_to_sign_in = Voltar ao iniciar a sessão sign_in_openid = Prosseguir com OpenID +unauthorized_credentials = As credenciais estão erradas ou expiraram. Tente o comando de novo ou veja %s para mais informação +use_onetime_code = Usar código de utilização única [mail] view_it_on=Ver em %s @@ -715,6 +724,7 @@ public_activity.visibility_hint.self_public = O seu trabalho está visível para public_activity.visibility_hint.admin_public = Este trabalho está visível para todos, mas como administrador/a pode também ver o que consta em espaços privados. public_activity.visibility_hint.self_private = O seu trabalho apenas está visível para si e para os administradores da instância. Configurar. public_activity.visibility_hint.admin_private = Este trabalho está visível para si porque é um/a administrador/a, mas o/a utilizador/a quer permanecer privado/a. +public_activity.visibility_hint.self_private_profile = O seu trabalho está visível somente para si e para os administradores da instância porque o seu perfil é privado. Configure. [settings] profile=Perfil @@ -736,9 +746,9 @@ uid=UID webauthn=Autenticação em dois passos (chaves de segurança) public_profile=Perfil público -biography_placeholder=Conte-nos um pouco sobre si! (Pode usar Markdown) +biography_placeholder=Diga aos outros um pouco sobre si! (Markdown é suportado) location_placeholder=Partilhe a sua localização aproximada com outros -profile_desc=Controle como o seu perfil é apresentado aos outros utilizadores. O seu endereço de email principal será usado para notificações, recuperação de senha e operações Git baseadas na web. +profile_desc=Sobre si password_username_disabled=Utilizadores não-locais não podem mudar os seus nomes de utilizador. Entre em contacto com o administrador do sítio saber para mais detalhes. full_name=Nome completo website=Sítio web @@ -803,7 +813,7 @@ manage_emails=Gerir endereços de email manage_themes=Tema padrão manage_openid=Endereços OpenID email_desc=O seu endereço de email principal irá ser usado para notificações, recuperação de senha e, desde que não esteja oculto, operações Git baseados na web. -theme_desc=Este será o seu tema padrão em todo o sítio. +theme_desc=Este tema será usado para a interface web quando tiver sessão iniciada. primary=Principal activated=Em uso requires_activation=Tem que ser habilitado @@ -829,7 +839,7 @@ add_email_success=O novo endereço de email foi adicionado. email_preference_set_success=As preferências relativas ao email foram definidas com sucesso. add_openid_success=O novo endereço OpenID foi adicionado. keep_email_private=Ocultar endereço de email -keep_email_private_popup=Isto irá ocultar o seu endereço de email no seu perfil. Não será mais o predefinido nos cometimentos feitos através da interface web, tais como carregamentos de ficheiros e edições, e não será usado para cometimentos de integração. Ao invés disso, um endereço especial %s poderá ser usado para associar cometimentos à sua conta. Note que mudar esta opção não irá alterar os cometimentos existentes. +keep_email_private_popup=O seu endereço de e-mail não será mostrado no seu perfil e não será o predefinido para cometimentos feitos através da interface web, tais como upload de arquivos, edições e cometimentos de integração. Ao invés disso, um endereço especial %s poderá ser usado para vincular cometimentos à sua conta. Esta opção não irá alterar os cometimentos existentes. openid_desc=O OpenID permite delegar a autenticação num fornecedor externo. manage_ssh_keys=Gerir chaves SSH @@ -932,7 +942,7 @@ select_permissions=Escolher permissões permission_no_access=Sem acesso permission_read=Lidas permission_write=Leitura e escrita -access_token_desc=As permissões dos códigos escolhidos limitam a autorização apenas às rotas da API correspondentes. Leia a documentação para obter mais informação. +access_token_desc=As permissões dos códigos escolhidos limitam a autorização apenas às rotas da API correspondentes. Leia a documentação para obter mais informação. at_least_one_permission=Tem que escolher pelo menos uma permissão para criar um código permissions_list=Permissões: @@ -1024,7 +1034,7 @@ visibility=Visibilidade do utilizador visibility.public=Pública visibility.public_tooltip=Visível para todos visibility.limited=Limitada -visibility.limited_tooltip=Visível apenas para utilizadores autenticados +visibility.limited_tooltip=Visível apenas para utilizadores registados visibility.private=Privada visibility.private_tooltip=Visível apenas para membros das organizações a que se associou additional_repo_units_hint = Sugere a habilitação de unidades do repositório adicionais @@ -1037,7 +1047,7 @@ hints = Sugestões blocked_users = Utilizadores bloqueados blocked_since = Bloqueado desde %s user_block_success = O utilizador foi bloqueado com sucesso. -additional_repo_units_hint_description = Mostrar um botão "Adicionar mais unidades..." para repositórios que não têm todas as unidades disponíveis habilitadas. +additional_repo_units_hint_description = Mostrar uma sugestão "Habilitar mais" para repositórios que não têm todas as unidades disponíveis habilitadas. update_hints_success = As sugestões foram modificadas. blocked_users_none = Não há utilizadores bloqueados. user_unblock_success = O utilizador foi desbloqueado com sucesso. @@ -1045,6 +1055,8 @@ language.title = Idioma predefinido keep_activity_private.description = O seu trabalho público apenas estará visível para si e para os administradores da instância. language.description = Este idioma vai ser guardado na sua conta e ser usado como o predefinido depois de iniciar sessão. language.localization_project = Ajude-nos a traduzir o Forgejo para o seu idioma! Saiba mais. +pronouns_custom_label = Pronomes personalizados +user_block_yourself = Não se pode bloquear a si próprio. [repo] new_repo_helper=Um repositório contém todos os ficheiros do trabalho, incluindo o histórico das revisões. Já tem um hospedado noutro sítio? Migre o repositório. @@ -1087,13 +1099,13 @@ issue_labels=Rótulos issue_labels_helper=Escolha um conjunto de rótulos license=Licença license_helper=Escolha um ficheiro de licença -license_helper_desc=Uma licença rege o que os outros podem, ou não, fazer com o seu código fonte. Não tem a certeza sobre qual a mais indicada para o seu trabalho? Veja: Escolher uma licença. +license_helper_desc=Uma licença rege o que os outros podem, ou não, fazer com o seu código fonte. Não tem a certeza sobre qual a mais indicada para o seu trabalho? Veja: Escolher uma licença. object_format=Formato dos elementos object_format_helper=Formato dos elementos do repositório. Não poderá ser alterado mais tarde. SHA1 é o mais compatível. readme=README readme_helper=Escolha um modelo de ficheiro README readme_helper_desc=Este é o sítio onde pode escrever uma descrição completa do seu trabalho. -auto_init=Inicializar repositório (adiciona `.gitignore`, `LICENSE` e `README.md`) +auto_init=Inicializar repositório trust_model_helper=Escolha o modelo de confiança para a validação das assinaturas. As opções são: trust_model_helper_collaborator=Colaborador: Confiar nas assinaturas dos colaboradores trust_model_helper_committer=Autor do cometimento: Confiar nas assinaturas que correspondem a autores de cometimentos @@ -1171,7 +1183,7 @@ template.issue_labels=Rótulos das questões template.one_item=Tem que escolher pelo menos um item do modelo template.invalid=Tem que escolher um repositório modelo -archive.title=Este repositório está arquivado. Pode ver os seus ficheiros e cloná-lo, mas não pode fazer envios para o repositório nem lançar questões ou fazer pedidos de integração. +archive.title=Este repositório está arquivado. Pode ver os ficheiros e cloná-lo, mas não pode fazer envios ou abrir questões ou pedidos de integração. archive.title_date=Este repositório foi arquivado em %s. Pode ver os ficheiros e cloná-lo, mas não pode fazer envios ou abrir questões/pedidos de integração. archive.issue.nocomment=Este repositório está arquivado. Não pode comentar nas questões. archive.pull.nocomment=Este repositório está arquivado. Não pode comentar nos pedidos de integração. @@ -1346,7 +1358,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 "" +editor.add_tmpl=Adicionar "<%s>" editor.add=Adicionar %s editor.update=Modificar %s editor.delete=Eliminar %s @@ -1356,7 +1368,7 @@ editor.fail_to_apply_patch=`Não foi possível aplicar o remendo (patch) "%s"` editor.new_patch=Novo remendo (patch) editor.commit_message_desc=Adicionar uma descrição alargada opcional… editor.signoff_desc=Adicionar "Assinado-por" seguido do autor do cometimento no fim da mensagem do registo de cometimentos. -editor.commit_directly_to_this_branch=Cometer imediatamente no ramo %s. +editor.commit_directly_to_this_branch=Cometer imediatamente no ramo %[1]s. editor.create_new_branch=Crie um novo ramo para este cometimento e inicie um pedido de integração. editor.create_new_branch_np=Criar um novo ramo para este cometimento. editor.propose_file_change=Propor modificação do ficheiro @@ -1426,7 +1438,7 @@ commitstatus.failure=Falha commitstatus.pending=Pendente commitstatus.success=Sucesso -ext_issues=Acesso a questões externas +ext_issues=Questões externas ext_issues.desc=Ligação para um rastreador de questões externo. projects=Planeamentos @@ -1607,9 +1619,9 @@ issues.no_content=Nenhuma descrição fornecida. issues.close=Encerrar questão issues.comment_pull_merged_at=cometimento %[1]s integrado em %[2]s %[3]s issues.comment_manually_pull_merged_at=cometimento %[1]s integrado manualmente em %[2]s %[3]s -issues.close_comment_issue=Comentar e fechar +issues.close_comment_issue=Fechar com comentário issues.reopen_issue=Reabrir -issues.reopen_comment_issue=Comentar e reabrir +issues.reopen_comment_issue=Reabrir com comentário issues.create_comment=Comentar issues.closed_at=`encerrou esta questão %[2]s` issues.reopened_at=`reabriu esta questão %[2]s` @@ -1722,7 +1734,7 @@ issues.error_modifying_due_date=Falhou a modificação da data de vencimento. issues.error_removing_due_date=Falhou a remoção da data de vencimento. issues.push_commit_1=adicionou %d cometimento %s issues.push_commits_n=adicionou %d cometimentos %s -issues.force_push_codes=`forçou o envio %[1]s de %[2]s para %[4]s %[6]s` +issues.force_push_codes=`forçou o envio %[1]s de %[2]s para %[4]s %[6]s` issues.force_push_compare=Comparar issues.due_date_form=aaaa-mm-dd issues.due_date_form_add=Adicionar data de vencimento @@ -1776,8 +1788,8 @@ issues.review.left_comment=deixou um comentário issues.review.content.empty=Tem que deixar um comentário indicando a(s) modificação(ões) solicitada(s). issues.review.reject=modificações solicitadas %s issues.review.wait=foi solicitada para revisão %s -issues.review.add_review_request=solicitou revisão de %s %s -issues.review.remove_review_request=removeu a solicitação de revisão para %s %s +issues.review.add_review_request=solicitou revisão de %[1]s %[2]s +issues.review.remove_review_request=removeu a solicitação de revisão para %[1]s %[2]s issues.review.remove_review_request_self=recusou-se a rever %s issues.review.pending=Pendente issues.review.pending.tooltip=Este comentário não está visível para os outros utilizadores, neste momento. Para submeter os seus comentários pendentes, escolha "%s" → "%s/%s/%s" no topo da página. @@ -1838,7 +1850,7 @@ pulls.nothing_to_compare_have_tag=O ramo/etiqueta escolhidos são iguais. pulls.nothing_to_compare_and_allow_empty_pr=Estes ramos são iguais. Este pedido de integração ficará vazio. pulls.has_pull_request=`Já existe um pedido de integração entre estes ramos: %[2]s#%[3]d` pulls.create=Criar um pedido de integração -pulls.title_desc_few=quer integrar %[1]d cometimento(s) do ramo %[2]s no ramo %[3]s +pulls.title_desc_few=quer integrar %[1]d cometimento(s) do ramo %[2]s no ramo %[3]s pulls.merged_title_desc_few=integrou %[1]d cometimento(s) do ramo %[2]s no ramo %[3]s %[4]s pulls.change_target_branch_at=`mudou o ramo de destino de %s para %s %s` pulls.tab_conversation=Diálogo @@ -1999,7 +2011,7 @@ signing.wont_sign.commitssigned=A integração não irá ser assinada, uma vez q signing.wont_sign.approved=A integração não irá ser assinada, uma vez que o pedido de integração não foi assinado. signing.wont_sign.not_signed_in=Não tem a sessão iniciada. -ext_wiki=Acesso a wiki externo +ext_wiki=Wiki externo ext_wiki.desc=Ligação para um wiki externo. wiki=Wiki @@ -2329,32 +2341,32 @@ settings.event_push_desc=Envio do Git para um repositório. settings.event_repository=Repositório settings.event_repository_desc=Repositório criado ou eliminado. settings.event_header_issue=Eventos da questão -settings.event_issues=Questões +settings.event_issues=Modificação settings.event_issues_desc=Questão aberta, fechada, reaberta ou editada. -settings.event_issue_assign=Questão atribuída +settings.event_issue_assign=Atribuição settings.event_issue_assign_desc=Encarregado atribuído ou retirado à questão. -settings.event_issue_label=Questão com rótulo -settings.event_issue_label_desc=Rótulos modificados ou retirados às questões. -settings.event_issue_milestone=Questão com etapa atribuída -settings.event_issue_milestone_desc=Etapa atribuída ou retirada à questão. -settings.event_issue_comment=Comentário da questão +settings.event_issue_label=Rótulos +settings.event_issue_label_desc=Rótulos adicionados ou retirados às questões. +settings.event_issue_milestone=Etapas +settings.event_issue_milestone_desc=Etapa atribuída, removida ou modificada. +settings.event_issue_comment=Comentários settings.event_issue_comment_desc=Comentário da questão criado, editado ou eliminado. settings.event_header_pull_request=Eventos de pedidos de integração -settings.event_pull_request=Pedido de integração +settings.event_pull_request=Modificação settings.event_pull_request_desc=Pedido de integração aberto, fechado, reaberto ou editado. -settings.event_pull_request_assign=Encarregado atribuído ao pedido de integração +settings.event_pull_request_assign=Atribuição settings.event_pull_request_assign_desc=Encarregado atribuído ou retirado ao pedido de integração. -settings.event_pull_request_label=Rótulo atribuído ao pedido de integração -settings.event_pull_request_label_desc=Rótulos modificados ou retirados aos pedidos de integração. -settings.event_pull_request_milestone=Etapa atribuída ao pedido de integração -settings.event_pull_request_milestone_desc=Etapa atribuída ou retirada ao pedido de integração. -settings.event_pull_request_comment=Comentário do pedido de integração +settings.event_pull_request_label=Rótulos +settings.event_pull_request_label_desc=Rótulos adicionados ou retirados aos pedidos de integração. +settings.event_pull_request_milestone=Etapas +settings.event_pull_request_milestone_desc=Etapas adicionadas, removidas ou modificadas. +settings.event_pull_request_comment=Comentários settings.event_pull_request_comment_desc=Comentário do pedido de integração criado, editado ou eliminado. -settings.event_pull_request_review=Pedido de integração revisto +settings.event_pull_request_review=Revisões settings.event_pull_request_review_desc=Pedido de integração aprovado, rejeitado ou comentado na revisão. -settings.event_pull_request_sync=Pedido de integração sincronizado -settings.event_pull_request_sync_desc=Pedido de integração sincronizado. -settings.event_pull_request_review_request=Solicitada a revisão do pedido de integração +settings.event_pull_request_sync=Sincronizado +settings.event_pull_request_sync_desc=Ramo sincronizado automaticamente com o ramo de destino. +settings.event_pull_request_review_request=Pedidos de revisão settings.event_pull_request_review_request_desc=A revisão do pedido de integração foi solicitada ou a solicitação de revisão foi removida. settings.event_pull_request_approvals=Aprovações do pedido de integração settings.event_pull_request_merge=Integração constante no pedido @@ -2505,9 +2517,9 @@ settings.archive.text=Arquivar o repositório irá torná-lo apenas de leitura. settings.archive.success=O repositório foi arquivado com sucesso. settings.archive.error=Ocorreu um erro enquanto decorria o processo de arquivo do repositório. Veja os registo para obter mais detalhes. settings.archive.error_ismirror=Não pode arquivar um repositório que tenha sido replicado. -settings.archive.branchsettings_unavailable=As configurações dos ramos não estão disponíveis quando o repositório está arquivado. -settings.archive.tagsettings_unavailable=As configurações sobre etiquetas não estão disponíveis quando o repositório está arquivado. -settings.archive.mirrors_unavailable=As réplicas não estão disponíveis se o repositório estiver arquivado. +settings.archive.branchsettings_unavailable=As configurações dos ramos não estão disponíveis em repositórios arquivados. +settings.archive.tagsettings_unavailable=As configurações sobre etiquetas não estão disponíveis em repositórios arquivados. +settings.archive.mirrors_unavailable=As réplicas não estão disponíveis em repositórios arquivados. settings.unarchive.button=Desarquivar repositório settings.unarchive.header=Desarquivar este repositório settings.unarchive.text=Desarquivar o repositório irá restaurar a capacidade de receber cometimentos e envios, assim como novas questões e pedidos de integração. @@ -2581,7 +2593,7 @@ diff.generated=gerado diff.vendored=externo diff.comment.add_line_comment=Adicionar comentário de linha diff.comment.placeholder=Deixar um comentário -diff.comment.markdown_info=A formatação com markdown é suportada. +diff.comment.markdown_info=A formatação com Markdown é suportada. diff.comment.add_single_comment=Adicionar um único comentário diff.comment.add_review_comment=Adicionar comentário diff.comment.start_review=Iniciar revisão @@ -2612,7 +2624,7 @@ release.draft=Rascunho release.prerelease=Pré-lançamento release.stable=Estável release.compare=Comparar -release.edit=editar +release.edit=Editar release.ahead.commits=%d cometimentos release.ahead.target=para %s desde este lançamento tag.ahead.target=para o ramo %s desde esta etiqueta @@ -2731,10 +2743,10 @@ migrate.forgejo.description = Migrar dados de codeberg.org ou de outras instânc n_commit_one = %s cometimento editor.commit_id_not_matching = O ficheiro foi modificado enquanto o estava a editar. Cometa para um ramo novo e depois integre. commits.search_branch = Este ramo -pulls.title_desc_one = quer integrar %[1]d cometimento do ramo %[2]s no ramo %[3]s +pulls.title_desc_one = quer integrar %[1]d cometimento do ramo %[2]s no ramo %[3]s pulls.reopen_failed.base_branch = O pedido de integração não pode ser reaberto porque o ramo base já não existe. activity.navbar.code_frequency = Frequência de programação -settings.units.add_more = Adicionar mais... +settings.units.add_more = Habilitar mais settings.wiki_rename_branch_main_desc = Renomear o ramo usado internamente pelo Wiki para "%s". Esta operação é permanente e não poderá ser revertida. settings.add_collaborator_blocked_our = Não foi possível adicionar o/a colaborador/a porque o/a proprietário/a do repositório bloqueou-os. settings.add_webhook.invalid_path = A localização não pode conter "." ou ".." ou ficar em branco. Não pode começar ou terminar com uma barra. @@ -2757,7 +2769,7 @@ release.download_count_one = %s descarga release.download_count_few = %s descargas release.system_generated = Este anexo é gerado automaticamente. pulls.ready_for_review = Pronto/a para rever? -settings.units.units = Unidades do repositório +settings.units.units = Unidades error.broken_git_hook = Os automatismos git deste repositório parecem estar danificados. Consulte a documentação sobre como os consertar e depois envie alguns cometimentos para refrescar o estado. settings.rename_branch_failed_protected = Não é possível renomear o ramo %s porque é um ramo protegido. settings.units.overview = Visão geral @@ -2819,9 +2831,41 @@ mirror_use_ssh.text = Utilizar a autenticação SSH mirror_denied_combination = Não é possível usar a autenticação baseada em chave pública e senha em combinação. settings.mirror_settings.push_mirror.copy_public_key = Copiar chave pública settings.mirror_settings.push_mirror.none_ssh = Nenhuma -settings.protect_new_rule = Criar uma nova regra de salvaguarda do ramo +settings.protect_new_rule = Criar uma nova regra de proteção de ramo mirror_use_ssh.helper = O Forgejo irá replicar o repositório via Git sobre SSH e criar um par de chaves para si quando escolher esta opção. Tem que se certificar que a chave pública gerada está autorizada a enviar para o repositório de destino. Não pode usar a autorização baseada numa senha quando escolher isto. mirror_use_ssh.not_available = A autenticação por SSH não está disponível. +issues.new.assign_to_me = Atribuir a mim +issues.all_title = Todas +settings.discord_icon_url.exceeds_max_length = O URL do ícone tem que ter 2048 caracteres ou menos +issues.filter_sort.relevance = Relevância +diff.git-notes.add = Adicionar nota +diff.git-notes.remove-header = Remover nota +diff.git-notes.remove-body = Esta nota irá ser removida. +issues.review.add_review_requests = revisões solicitadas de %[1]s %[2]s +issues.review.remove_review_requests = pedidos de revisão removidos para %[1]s %[2]s +issues.review.add_remove_review_requests = pedidos de revisão de %[1]s e pedidos de revisão removidos para %[2]s %[3]s +pulls.delete_after_merge.head_branch.is_default = O ramo de topo que pretende eliminar é o ramo predefinido e não pode ser eliminado. +pulls.delete_after_merge.head_branch.is_protected = O ramo de topo que pretende eliminar é um ramo protegido e não pode ser eliminado. +pulls.delete_after_merge.head_branch.insufficient_branch = Não tem permissão para eliminar o ramo de topo. +issues.summary_card_alt = Cartão de resumo de uma questão com o título "%s" no repositório %s +issues.num_reviews_one = %d revisão +issues.num_reviews_few = %d revisões +editor.add_tmpl.filename = nome do ficheiro +new_from_template = Utilize um template +settings.default_update_style_desc = Estilo de atualização predefinido utilizado para atualizar pedidos de integração que estão atrasados em relação ao ramo base. +pulls.sign_in_require = Inicie sessão para criar um novo pedido de integração. +new_advanced = Configurações avançadas +new_advanced_expand = Clique para expandir +new_from_template_description = Pode selecionar um modelo de repositório existente nesta instância e aplicar as suas definições. +auto_init_description = Iniciar o histórico do Git com um README e, opcionalmente, adicione os ficheiros License e .gitignore. +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. +issues.reaction.alt_remove = Remover reação %[1]s deste comentário. +issues.reaction.alt_add = Adicionar reação %[1]s ao comentário. +issues.context.menu = Menu de comentário +summary_card_alt = Cartão de resumo do repositório %s +release.summary_card_alt = Cartão de resumo de um lançamento com o título "%s" no repositório %s [graphs] component_loading=A carregar %s... @@ -2869,7 +2913,7 @@ settings.permission=Permissões settings.repoadminchangeteam=O administrador do repositório pode adicionar e remover o acesso às equipas settings.visibility=Visibilidade settings.visibility.public=Público -settings.visibility.limited=Limitada (visível apenas para utilizadores autenticados) +settings.visibility.limited=Limitada (visível apenas para utilizadores regitados) settings.visibility.limited_shortname=Limitada settings.visibility.private=Privada (visível apenas para membros da organização) settings.visibility.private_shortname=Privado @@ -3142,8 +3186,8 @@ orgs.members=Membros orgs.new_orga=Nova organização repos.repo_manage_panel=Gerir repositórios -repos.unadopted=Repositórios não adoptados -repos.unadopted.no_more=Não foram encontrados mais repositórios não adoptados +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 @@ -3250,9 +3294,9 @@ auths.oauth2_required_claim_name_helper=Defina este nome para restringir o iníc auths.oauth2_required_claim_value=Valor de reivindicação obrigatório auths.oauth2_required_claim_value_helper=Defina este valor para restringir o início de sessão desta fonte a utilizadores que tenham uma reivindicação com este nome e este valor auths.oauth2_group_claim_name=Reivindicar nome que fornece nomes de grupo para esta fonte. (Opcional) -auths.oauth2_admin_group=Valor da reivindicação de grupo para utilizadores administradores (opcional — exige a reivindicação de nome acima). -auths.oauth2_restricted_group=Valor da reivindicação de grupo para utilizadores restritos (opcional — exige a reivindicação de nome acima). -auths.oauth2_map_group_to_team=Mapear grupos reclamados em equipas da organização (opcional — requer nome de reclamação acima). +auths.oauth2_admin_group=Valor da reivindicação de grupo para utilizadores administradores. (Opcional — exige a reivindicação de nome acima) +auths.oauth2_restricted_group=Valor da reivindicação de grupo para utilizadores restritos. (Opcional — exige a reivindicação de nome acima) +auths.oauth2_map_group_to_team=Mapear grupos reclamados em equipas da organização. (Opcional — requer nome de reclamação acima) auths.oauth2_map_group_to_team_removal=Remover utilizadores das equipas sincronizadas se esses utilizadores não pertencerem ao grupo correspondente. auths.enable_auto_register=Habilitar o registo automático auths.sspi_auto_create_users=Criar utilizadores automaticamente @@ -3492,7 +3536,7 @@ self_check.no_problem_found=Nenhum problema encontrado até agora. self_check.database_collation_mismatch=Supor que a base de dados usa a colação: %s self_check.database_collation_case_insensitive=A base de dados está a usar a colação %s, que é insensível à diferença entre maiúsculas e minúsculas. Embora o Gitea possa trabalhar com ela, pode haver alguns casos raros que não funcionem como esperado. self_check.database_inconsistent_collation_columns=A base de dados está a usar a colação %s, mas estas colunas estão a usar colações diferentes. Isso poderá causar alguns problemas inesperados. -self_check.database_fix_mysql=Para utilizadores do MySQL/MariaDB, pode usar o comando "gitea doctor convert" para resolver os problemas de colação. Também pode resolver o problema com comandos SQL "ALTER ... COLLATE ..." aplicados manualmente. +self_check.database_fix_mysql=Para utilizadores do MySQL/MariaDB, pode usar o comando "forgejo doctor convert" para resolver os problemas de colação. Também pode resolver o problema com comandos SQL "ALTER ... COLLATE ..." aplicados manualmente. config_summary = Resumo auths.tips.gmail_settings = Configurações do Gmail: config_settings = Configurações @@ -3515,6 +3559,7 @@ emails.delete = Eliminar email emails.deletion_success = O endereço de email foi eliminado. emails.delete_primary_email_error = Não pode eliminar o endereço de email principal. emails.delete_desc = Tem a certeza que quer eliminar este endereço de email? +monitor.duration = Duração (s) [action] create_repo=criou o repositório %s @@ -3639,7 +3684,7 @@ alpine.registry=Configure este registo adicionando o URL no seu ficheiro / alpine.registry.key=Descarregue a chave RSA pública do registo para dentro da pasta /etc/apk/keys/ para verificar a assinatura do índice: alpine.registry.info=Escolha $branch e $repository da lista abaixo. alpine.install=Para instalar o pacote, execute o seguinte comando: -alpine.repository=Informação do repositório +alpine.repository=Informações do repositório alpine.repository.branches=Ramos alpine.repository.repositories=Repositórios alpine.repository.architectures=Arquitecturas @@ -3659,9 +3704,9 @@ conda.install=Para instalar o pacote usando o Conda, execute o seguinte comando: container.details.type=Tipo de imagem container.details.platform=Plataforma container.pull=Puxar a imagem usando a linha de comandos: -container.digest=Resumo: +container.digest=Resumo container.multi_arch=S.O. / Arquit. -container.layers=Camadas de imagem +container.layers=Camadas da imagem container.labels=Rótulos container.labels.key=Chave container.labels.value=Valor @@ -3670,7 +3715,7 @@ cran.install=Para instalar o pacote, execute o seguinte comando: debian.registry=Configurar este registo usando a linha de comandos: debian.registry.info=Escolha $distribution e $component da lista abaixo. debian.install=Para instalar o pacote, execute o seguinte comando: -debian.repository=Informação do repositório +debian.repository=Informações do repositório debian.repository.distributions=Distribuições debian.repository.components=Componentes debian.repository.architectures=Arquitecturas @@ -3700,12 +3745,12 @@ rpm.registry=Configurar este registo usando a linha de comandos: rpm.distros.redhat=em distribuições baseadas no RedHat rpm.distros.suse=em distribuições baseadas no SUSE rpm.install=Para instalar o pacote, execute o seguinte comando: -rpm.repository=Informação do repositório +rpm.repository=Informações do repositório rpm.repository.architectures=Arquitecturas rpm.repository.multiple_groups=Este pacote está disponível em vários grupos. rubygems.install=Para instalar o pacote usando o gem, execute o seguinte comando: rubygems.install2=ou adicione-o ao ficheiro Gemfile: -rubygems.dependencies.runtime=Dependências do tempo de execução (runtime) +rubygems.dependencies.runtime=Dependências em tempo de execução rubygems.dependencies.development=Dependências de desenvolvimento rubygems.required.ruby=Requer a versão do Ruby rubygems.required.rubygems=Requer a versão do RubyGem @@ -3766,7 +3811,7 @@ arch.version.provides = Fornece arch.pacman.helper.gpg = Adicionar certificado de confiança para o pacman: arch.pacman.conf = Adicionar servidor com distribuição e arquitectura relacionadas a /etc/pacman.conf : arch.pacman.repo.multi = %s tem a mesma versão em distribuições diferentes. -arch.version.optdepends = Dependências opcionais +arch.version.optdepends = Depende opcionalmente arch.version.depends = Depende de arch.version.makedepends = Dependências do make arch.version.groups = Grupo @@ -3774,6 +3819,8 @@ arch.version.checkdepends = Verificar dependências arch.version.conflicts = Conflitos arch.version.backup = Cópia de segurança arch.version.replaces = Substitui +container.images.title = Imagens +search_in_external_registry = Procurar em %s [secrets] secrets=Segredos @@ -3793,7 +3840,7 @@ management=Gerir segredos [actions] actions=Operações -unit.desc=Gerir sequências CI/CD integradas com Forgejo Actions +unit.desc=Gerir sequências CI/CD integradas com Forgejo Actions. status.unknown=Desconhecido status.waiting=Aguardando @@ -3892,6 +3939,8 @@ workflow.dispatch.trigger_found = Esta sequência de trabalho é despoletada pel workflow.dispatch.success = A execução da sequência de trabalho foi pedida com sucesso. workflow.dispatch.invalid_input_type = Tipo de entrada "%s" inválido. runs.expire_log_message = Os registos foram purgados por serem demasiado antigos. +runs.no_workflows.help_no_write_access = Para aprender sobre Forgejo Actions, vejaa documentação. +runs.no_workflows.help_write_access = Não sabe como começar com o Forgejo Actions? Consulte o início rápido na documentação do utilizador para escrever a sua primeira sequência de trabalho, depois prepare um executor Forgejo para executar os seus trabalhos. [projects] type-1.display_name=Planeamento individual @@ -3901,7 +3950,6 @@ deleted.display_name = Planeamento eliminado [git.filemode] changed_filemode=%[1]s → %[2]s -; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", … directory=Pasta normal_file=Ficheiro normal executable_file=Ficheiro executável @@ -3938,7 +3986,7 @@ pull_kind = Procurar pedidos de integração... union = Palavras-chave union_tooltip = Incluir resultados correspondentes a qualquer das palavras-chave separadas por espaços em branco milestone_kind = Procurar etapas... -regexp_tooltip = Interpreta o termo de pesquisa como um expressão regular +regexp_tooltip = Interpreta o termo de pesquisa como uma expressão regular regexp = ExpReg [munits.data] @@ -3965,8 +4013,8 @@ projects.read = Ler: Aceder aos quadros de planeamento do repositório. projects.write = Escrever: Criar planeamentos e colunas e editá-las. packages.read = Ler: Ver e descarregar pacotes atribuídos ao repositório. packages.write = Escrever: Publicar e eliminar pacotes atribuídos ao repositório. -actions.read = Ler: Ver canais CI/CD integrados e os seus registos. -actions.write = Escrever: Despoletar, reiniciar, cancelar ou aprovar manualmente canais CI/CD pendentes. +actions.read = Ler: Ver sequências CI/CD integrados e os seus registos. +actions.write = Escrever: Despoletar, reiniciar, cancelar ou aprovar manualmente sequências CI/CD pendentes. ext_issues = Aceder à ligação para um rastreador de questões externo. As permissões são geridas externamente. ext_wiki = Aceder à ligação para um wiki externo. As permissões são geridas externamente. issues.write = Escrever: Fechar questões e gerir metadados, tais como rótulos, etapas, encarregados, datas de vencimento e dependências. @@ -3976,4 +4024,4 @@ wiki.read = Ler: Ler o wiki integrado e o seu histórico. wiki.write = Escrever: Criar, modificar e eliminar páginas no wiki integrado. code.write = Escrever: Enviar para o repositório, criar ramos e etiquetas. issues.read = Ler: Ler e criar questões e comentários. -pulls.write = Escrever: Fechar pedidos de integração e gerir metadados, tais como rótulos, etapas, encarregados, datas de vencimento e dependências. \ No newline at end of file +pulls.write = Escrever: Fechar pedidos de integração e gerir metadados, tais como rótulos, etapas, encarregados, datas de vencimento e dependências. diff --git a/options/locale/locale_ru-RU.ini b/options/locale/locale_ru-RU.ini index 0bc633b008..5ed8dae67b 100644 --- a/options/locale/locale_ru-RU.ini +++ b/options/locale/locale_ru-RU.ini @@ -160,12 +160,13 @@ invalid_data = Ðеверные данные: %v copy_generic = Копировать в буфер обмена test = Проверить error413 = Ваша квота иÑчерпана. -new_migrate.link = Выполнить миграцию +new_migrate.link = Выполнить Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ new_org.link = Создать организацию new_repo.title = Ðовый репозиторий -new_migrate.title = ÐÐ¾Ð²Ð°Ñ Ð¼Ð¸Ð³Ñ€Ð°Ñ†Ð¸Ñ +new_migrate.title = Ðовый Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ new_org.title = ÐÐ¾Ð²Ð°Ñ Ð¾Ñ€Ð³Ð°Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ new_repo.link = Создать репозиторий +copy_path = Копировать путь [aria] navbar=Панель навигации @@ -199,6 +200,12 @@ buttons.enable_monospace_font=Включить моноширинный шриф buttons.disable_monospace_font=Выключить моноширинный шрифт buttons.unindent.tooltip = Уменьшить вложенноÑть на 1 buttons.indent.tooltip = Увеличить вложенноÑть на 1 +buttons.new_table.tooltip = Создать таблицу +table_modal.label.columns = Кол-во Ñтолбцов +table_modal.header = Создание таблицы +table_modal.placeholder.header = Заголовок +table_modal.placeholder.content = Содержимое +table_modal.label.rows = Кол-во Ñтрок [filter] string.asc=A - Я @@ -227,7 +234,7 @@ license_desc=Ð’ÑÑ‘ Ñто на документацией, прежде чем изменÑть любые наÑтройки. +docker_helper=ЕÑли вы запуÑкаете Forgejo под Docker, прежде чем изменÑть любые наÑтройки, пожалуйÑта, ознакомьтеÑÑŒ Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸ÐµÐ¹. require_db_desc=Forgejo требуетÑÑ MySQL, PostgreSQL, SQLite3 или TiDB (по протоколу MySQL). db_title=ÐаÑтройки базы данных db_type=Тип базы данных @@ -249,9 +256,9 @@ err_empty_db_path=Путь к базе данных SQLite3 не может бы no_admin_and_disable_registration=Ð’Ñ‹ не можете отключить региÑтрацию до ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ð¾Ð¹ запиÑи админиÑтратора. err_empty_admin_password=Пароль админиÑтратора не может быть пуÑтым. err_empty_admin_email=ÐÐ´Ñ€ÐµÑ Ñл. почты админиÑтратора не может быть пуÑтым. -err_admin_name_is_reserved=Ðеверное Ð¸Ð¼Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора, Ñто Ð¸Ð¼Ñ Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¾ -err_admin_name_pattern_not_allowed=Ðеверное Ð¸Ð¼Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора, Ð¸Ð¼Ñ Ð¿Ð¾Ð¿Ð°Ð´Ð°ÐµÑ‚ под зарезервированный шаблон -err_admin_name_is_invalid=Ðеверное Ð¸Ð¼Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора +err_admin_name_is_reserved=ÐеподходÑщее Ð¸Ð¼Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора, оно зарезервировано +err_admin_name_pattern_not_allowed=ÐеподходÑщее Ð¸Ð¼Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора, оно попадает под шаблон зарезервированных +err_admin_name_is_invalid=ÐеподходÑщее Ð¸Ð¼Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора general_title=ОÑновные наÑтройки app_name=Ðазвание Ñервера @@ -260,16 +267,16 @@ repo_path=Путь до каталога репозиториев repo_path_helper=Ð’Ñе удалённые Git репозитории будут Ñохранены в Ñтом каталоге. lfs_path=Путь до корневого каталога Git LFS lfs_path_helper=Ð’ Ñтом каталоге будут хранитьÑÑ Ñ„Ð°Ð¹Ð»Ñ‹ Git LFS. ОÑтавьте пуÑтым, чтобы отключить LFS. -run_user=Выполнение под пользователем +run_user=Работа под пользователем run_user_helper=Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¾Ð¹ ÑиÑтемы, под которым работает Forgejo. Обратите внимание, что Ñтот пользователь должен иметь доÑтуп к корневому пути репозиториев. domain=Домен Ñервера domain_helper=Домен или Ð°Ð´Ñ€ÐµÑ Ñ…Ð¾Ñта Ð´Ð»Ñ Ñервера. ssh_port=Порт SSH-Ñервера -ssh_port_helper=Ðомер порта, иÑпользуемый SSH-Ñервером. ОÑтавьте пуÑтым Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтупа по SSH. +ssh_port_helper=Ðомер порта, иÑпользуемый Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñщих подключений по SSH. ОÑтавьте пуÑтым Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтупа по SSH. http_port=Порт HTTP-Ñервера http_port_helper=Ðомер порта, иÑпользуемый веб-Ñервером Forgejo. -app_url=Базовый URL Forgejo -app_url_helper=Этот параметр влиÑет на URL Ð´Ð»Ñ ÐºÐ»Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ HTTP/HTTPS и на некоторые ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ Ñл. почте. +app_url=Базовый URL +app_url_helper=Этот параметр влиÑет на URL ÐºÐ»Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ HTTP/HTTPS и на ÑÑылки в уведомлениÑÑ… по Ñл. почте. log_root_path=Путь журналов log_root_path_helper=Файлы журнала будут запиÑыватьÑÑ Ð² Ñтот каталог. @@ -277,9 +284,9 @@ optional_title=Дополнительные наÑтройки email_title=ÐаÑтройки Ñл. почты smtp_addr=ÐÐ´Ñ€ÐµÑ SMTP smtp_port=Порт SMTP -smtp_from=ОтправлÑть пиÑьма от +smtp_from=Отправитель smtp_from_helper=ÐÐ´Ñ€ÐµÑ Ñл. почты, который будет иÑпользоватьÑÑ Forgejo. Введите обычный Ð°Ð´Ñ€ÐµÑ Ñл. почты или иÑпользуйте формат "ИмÑ" . -mailer_user=Логин SMTP +mailer_user=Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ SMTP mailer_password=Пароль SMTP register_confirm=Требовать подтверждение по Ñл. почте Ð´Ð»Ñ Ñ€ÐµÐ³Ð¸Ñтрации mail_notify=Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ Ñл. почте @@ -309,11 +316,11 @@ confirm_password=Подтверждение Ð¿Ð°Ñ€Ð¾Ð»Ñ admin_email=ÐÐ´Ñ€ÐµÑ Ñл. почты install_btn_confirm=УÑтановить Forgejo test_git_failed=Ðе удалоÑÑŒ проверить команду «git»: %v -sqlite3_not_available=Эта верÑÐ¸Ñ Forgejo не поддерживает SQLite3. ПожалуйÑта, загрузите официальную бинарную Ñборку из %s (не Ñборку «gobuild»). +sqlite3_not_available=Эта верÑÐ¸Ñ Forgejo не поддерживает SQLite3. ПожалуйÑта, Ñкачайте официальную Ñборку из %s (не верÑию «gobuild»). invalid_db_setting=Ðекорректные наÑтройки базы данных: %v invalid_db_table=Таблица «%s» базы данных некорректна: %v -invalid_repo_path=ÐедопуÑтимый путь к корню репозиториÑ: %v -invalid_app_data_path=Ðеверный путь к приложению: %v +invalid_repo_path=Ðеверный путь к корню репозиториев: %v +invalid_app_data_path=Ðеверный путь к данным приложениÑ: %v run_user_not_match=Текущий пользователь не ÑвлÑетÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¼ Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка: %s -> %s internal_token_failed=Ðе удалоÑÑŒ Ñоздать внутренний токен: %v secret_key_failed=Ðе удалоÑÑŒ Ñоздать Ñекретный ключ: %v @@ -334,7 +341,7 @@ password_algorithm_helper=Задайте алгоритм Ñ…ÐµÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ enable_update_checker=Проверка обновлений env_config_keys=ÐаÑтройка Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ env_config_keys_prompt=Следующие переменные Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ñ‚Ð°ÐºÐ¶Ðµ будут применены к вашему конфигурационному файлу: -enable_update_checker_helper_forgejo = ПериодичеÑки проверÑть наличие новых верÑий Forgejo через DNS-запиÑÑŒ TXT на release.forgejo.org. +enable_update_checker_helper_forgejo = ПериодичеÑки проверÑть наличие новых верÑий Forgejo через «TXT» DNS-запиÑÑŒ домена release.forgejo.org. allow_dots_in_usernames = Разрешить точки в именах пользователей. Это не повлиÑет на уже Ñозданные учётные запиÑи. smtp_from_invalid = ÐÐ´Ñ€ÐµÑ Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ пиÑем некорректен config_location_hint = Эти наÑтройки конфигурации будут Ñохранены в: @@ -353,7 +360,7 @@ my_orgs=Организации my_mirrors=Мои зеркала view_home=Показать %s search_repos=ПоиÑк репозиториÑ… -filter=Другие фильтры +filter=Прочие фильтры filter_by_team_repositories=Фильтровать по репозиториÑм команды feed_of=Лента «%s» @@ -477,6 +484,7 @@ back_to_sign_in = Ðазад ко входу sign_in_openid = Продолжить Ñ OpenID hint_login = Уже еÑть ÑƒÑ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ? Войдите! unauthorized_credentials = Учётные данные неверны или иÑтекли. Попробуйте повторить команду или ознакомьтеÑÑŒ Ñ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð¾ÑÑ‚Ñми по ÑÑылке: %s +use_onetime_code = ИÑпользовать одноразовый код [mail] view_it_on=ПоÑмотреть на %s @@ -679,13 +687,13 @@ change_avatar=Изменить изображение профилÑ… joined_on=РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ %s repositories=Репозитории activity=ÐŸÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð°Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñть -followers_few=%d подпиÑчики +followers_few=%d подпиÑчиков starred=Избранные репозитории watched=ОтÑлеживаемые репозитории code=Код projects=Проекты overview=Обзор -following_few=%d подпиÑки +following_few=%d подпиÑок follow=ПодпиÑатьÑÑ unfollow=ОтпиÑатьÑÑ user_bio=О Ñебе @@ -738,9 +746,9 @@ uid=UID webauthn=Ð”Ð²ÑƒÑ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ (ключами безопаÑноÑти) public_profile=Публичный профиль -biography_placeholder=РаÑÑкажите немного о Ñебе! (Можно иÑпользовать Markdown) +biography_placeholder=Кратко раÑÑкажите о Ñебе другим! (Можно иÑпользовать Markdown) location_placeholder=ПуÑть вÑе знают, откуда вы -profile_desc=Как ваш профиль будет отображатьÑÑ Ð´Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… пользователей. Ваш оÑновной Ð°Ð´Ñ€ÐµÑ Ñл. почты будет иÑпользоватьÑÑ Ð´Ð»Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ð¹, воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸ веб-операций Ñ Git. +profile_desc=Ваш профиль password_username_disabled=Ðелокальным пользователÑм запрещено изменение их имени пользователÑ. Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ подробной информации обратитеÑÑŒ к админиÑтратору Ñайта. full_name=Полное Ð¸Ð¼Ñ website=Веб-Ñайт @@ -802,10 +810,10 @@ password_change_disabled=Ðелокальные учётные запиÑи не emails=ÐдреÑа Ñл. почты manage_emails=Управление адреÑами Ñл. почты -manage_themes=Тема по умолчанию +manage_themes=Тема интерфейÑа manage_openid=ÐдреÑа OpenID email_desc=Ваш оÑновной Ð°Ð´Ñ€ÐµÑ Ñл. почты будет иÑпользоватьÑÑ Ð´Ð»Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ð¹, воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸, еÑли он не Ñкрыт, Ð´Ð»Ñ Ð´ÐµÐ¹Ñтвий Ñ Git в веб-интерфейÑе. -theme_desc=Это будет темой по умолчанию Ð´Ð»Ñ Ð²Ñего Ñайта. +theme_desc=Эта тема Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ иÑпользоватьÑÑ Ð¿Ñ€Ð¸ входе на Ñайт под Ñтой учётной запиÑью. primary=ОÑновной activated=Ðктивирован requires_activation=ТребуетÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ @@ -933,7 +941,7 @@ select_permissions=Выбрать Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ permission_no_access=Ðет доÑтупа permission_read=Чтение permission_write=Чтение и запиÑÑŒ -access_token_desc=Выбранные облаÑти дейÑÑ‚Ð²Ð¸Ñ Ñ‚Ð¾ÐºÐµÐ½Ð° ограничивают авторизацию только ÑоответÑтвующими маршрутами API. Читайте документацию Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации. +access_token_desc=Выбранные облаÑти дейÑÑ‚Ð²Ð¸Ñ Ñ‚Ð¾ÐºÐµÐ½Ð° ограничивают его иÑпользование до ÑоответÑтвующих маршрутов API. Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð¾Ñтей ознакомьтеÑÑŒ Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸ÐµÐ¹ . at_least_one_permission=Ðеобходимо выбрать Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ одно разрешение Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾ÐºÐµÐ½Ð° permissions_list=РазрешениÑ: @@ -941,7 +949,7 @@ manage_oauth2_applications=Управление приложениÑми OAuth2 edit_oauth2_application=Изменить приложение OAuth2 oauth2_applications_desc=ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ OAuth2 позволÑет Ñтороннему приложению к безопаÑно аутентифицировать пользователей данной уÑтановки Forgejo. remove_oauth2_application=Удаление Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ OAuth2 -remove_oauth2_application_desc=Удаление Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ OAuth2 отменит доÑтуп ко вÑем подпиÑанным токенам доÑтупа. Продолжить? +remove_oauth2_application_desc=Удаление Ñтого Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ð¸Ñ‚ доÑтуп ко вÑем подпиÑанным токенам доÑтупа. Продолжить? remove_oauth2_application_success=Приложение было уÑпешно удалено. create_oauth2_application=Создать новое приложение OAuth2 create_oauth2_application_button=Создать приложение @@ -1020,7 +1028,7 @@ visibility=ВидимоÑть Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ visibility.public=Публичный visibility.public_tooltip=Виден вÑем, кто может открыть Ñтот Ñайт visibility.limited=Ограниченный -visibility.limited_tooltip=Виден только зарегиÑтрированным пользователÑм Ñайта +visibility.limited_tooltip=Виден только зарегиÑтрированным пользователÑм visibility.private=Скрытый visibility.private_tooltip=Виден только учаÑтникам организаций, в которых вы ÑоÑтоите blocked_users_none = Заблокированных пользователей нет. @@ -1032,7 +1040,7 @@ blocked_since = Заблокирован Ñ %s user_unblock_success = Пользователь разблокирован. twofa_scratch_token_regenerated = Ваш одноразовый ключ воÑÑтановлениÑ: %s. Сохраните его в надёжном меÑте. Больше он показан не будет. blocked_users = Заблокированные пользователи -keep_email_private_popup = Ваш Ð°Ð´Ñ€ÐµÑ Ñл. почты будет Ñкрыт из профилÑ. Он больше не будет иÑпользоватьÑÑ Ð¿Ð¾ умолчанию Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð¾Ð², Ñделанных из веб-интерфейÑа, таких как загрузки и Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² и не будет иÑпользоватьÑÑ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð¾Ð² запроÑов на ÑлиÑние. ВмеÑто него можно будет иÑпользовать Ñпециальный Ð°Ð´Ñ€ÐµÑ %s, чтобы приÑваивать коммиты Ñ Ð²Ð°ÑˆÐ¸Ð¼ аккаунтом. Обратите внимание на то, что изменение данной наÑтройки не повлиÑет на ÑущеÑтвующие коммиты. +keep_email_private_popup = Ваш Ð°Ð´Ñ€ÐµÑ Ñл. почты не будет видим в профиле и не будет иÑпользован по умолчанию Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð¾Ð² из веб-интерфейÑа, таких как загрузка и редактирование файлов, а также Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð¾Ð² ÑлиÑний. ВмеÑто него Ð´Ð»Ñ ÑвÑзи коммитов Ñ ÑƒÑ‡. запиÑью можно иÑпользовать Ñпециальный Ð°Ð´Ñ€ÐµÑ %s. Изменение данной наÑтройки не изменит Ð°Ð´Ñ€ÐµÑ Ð² ÑущеÑтвующих коммитах. oauth2_confidential_client = Конфиденциальный клиент. Выберите Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹, хранÑщих Ñекрет в тайне, например, Ð´Ð»Ñ Ð²ÐµÐ±-приложений. Ðе выбирайте Ð´Ð»Ñ Ð½Ð°Ñ‚Ð¸Ð²Ð½Ñ‹Ñ… приложений, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐŸÐš или Ñмартфонов. change_password = Изменение Ð¿Ð°Ñ€Ð¾Ð»Ñ hints = ПодÑказки @@ -1043,10 +1051,12 @@ additional_repo_units_hint_description = Показывать подÑказку pronouns_custom = Другие pronouns = МеÑÑ‚Ð¾Ð¸Ð¼ÐµÐ½Ð¸Ñ pronouns_unspecified = Ðе указаны -language.title = Язык по умолчанию +language.title = Язык интерфейÑа keep_activity_private.description = Ваша Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð°Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñть будет видна только вам и админиÑтраторам Ñервера. language.description = Выбранный Ñзык будет Ñохранён в вашей уч. запиÑи и будет иÑпользован по умолчанию поÑле входа. language.localization_project = Помогите Ñ Ð¿ÐµÑ€ÐµÐ²Ð¾Ð´Ð¾Ð¼ Forgejo на Ñвой Ñзык! Подробнее. +user_block_yourself = ÐÐµÐ»ÑŒÐ·Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ ÑебÑ. +pronouns_custom_label = Другие меÑÑ‚Ð¾Ð¸Ð¼ÐµÐ½Ð¸Ñ [repo] owner=Владелец @@ -1057,11 +1067,11 @@ repo_size=Размер Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ size_format = `%[1]s: %[2]s; %[3]s: %[4]s` template=Шаблон template_select=Выберите шаблон -template_helper=Сделать репозиторий шаблоном +template_helper=Пометить репозиторий как шаблон template_description=Шаблонные репозитории дают возможноÑть пользователÑм Ñоздавать новые репозитории Ñ Ñ‚Ð¾Ð¹ же Ñтруктурой каталогов, файлами и дополнительными наÑтройками. visibility=ВидимоÑть -visibility_description=Это увидÑÑ‚ только владелец организации или учаÑтники при наличии прав. -visibility_helper=Сделать репозиторий приватным +visibility_description=Он будет видим только владельцу организации и её учаÑтникам при наличии прав. +visibility_helper=ЧаÑтный репозиторий visibility_helper_forced=ÐдминиÑтратор Ñайта наÑтроил параметр видимоÑти новых репозиториев. Репозиторий приватный по умолчанию. visibility_fork_helper=(Это изменит видимоÑть вÑех ответвлений.) clone_helper=Ðужна помощь в клонировании? ПоÑетите Ñтраницу помощи. @@ -1083,16 +1093,16 @@ repo_desc=ОпиÑание repo_desc_helper=Добавьте краткое опиÑание (необÑзательно) repo_lang=Язык repo_gitignore_helper=Выберите шаблоны .gitignore -repo_gitignore_helper_desc=Выберите из ÑпиÑка шаблонов Ð´Ð»Ñ Ð¿Ð¾Ð¿ÑƒÐ»Ñрных Ñзыков , какие файлы не надо отÑлеживать. По умолчанию в .gitignore включены типичные артефакты, Ñоздаваемые инÑтрументами Ñборки каждого Ñзыка. +repo_gitignore_helper_desc=Выберите шаблоны из ÑпиÑка Ð´Ð»Ñ Ð¿Ð¾Ð¿ÑƒÐ»Ñрных Ñзыков. .gitignore определÑет, какие файлы не надо отÑлеживать в проекте. По умолчанию в него включены типичные артефакты, Ñоздаваемые инÑтрументами Ñборки каждого Ñзыка. issue_labels=Метки issue_labels_helper=Выберите набор меток license=Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ license_helper=Выберите лицензию -license_helper_desc=Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñет, что другие люди могут, а что не могут делать Ñ Ð²Ð°ÑˆÐ¸Ð¼ кодом. Ðе уверены, ÐºÐ°ÐºÐ°Ñ Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Ð¿Ð¾Ð´Ñ…Ð¾Ð´Ð¸Ñ‚ Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ проекта? Смотрите Выберите лицензию. +license_helper_desc=Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñет, что другие могут и не могут делать Ñ Ð²Ð°ÑˆÐ¸Ð¼ кодом. Ðе знаете, ÐºÐ°ÐºÐ°Ñ Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Ð¿Ð¾Ð´Ð¾Ð¹Ð´Ñ‘Ñ‚ Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ проекта? ОзнакомьтеÑÑŒ Ñ Ð’Ñ‹Ð±Ð¾Ñ€Ð¾Ð¼ лицензии. readme=README readme_helper=Выберите шаблон README readme_helper_desc=Это меÑто, где вы можете напиÑать подробное опиÑание вашего проекта. -auto_init=Инициализировать репозиторий (ДобавлÑет .gitignore, LICENSE and README) +auto_init=Инициализировать репозиторий trust_model_helper=Выберите модель Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ подпиÑи. Возможные варианты: trust_model_helper_collaborator=СоучаÑтник: доверÑть подпиÑÑм ÑоучаÑтников trust_model_helper_committer=Ðвтор коммита: доверÑть подпиÑÑм, ÑоответÑтвующим авторам коммитов @@ -1161,8 +1171,8 @@ template.issue_labels=Метки задач template.one_item=Ðеобходимо выбрать Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один Ñлемент шаблона template.invalid=Ðеобходимо выбрать шаблон Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ -archive.issue.nocomment=Этот репозиторий в архиве. Ð’Ñ‹ не можете комментировать задачи. -archive.pull.nocomment=Это репозиторий в архиве. Ð’Ñ‹ не можете комментировать запроÑÑ‹ на ÑлиÑние. +archive.issue.nocomment=Этот репозиторий архивирован. Комментирование в задачах невозможно. +archive.pull.nocomment=Этот репозиторий архивирован. Комментирование в запроÑах ÑлиÑний невозможно. form.reach_limit_of_creation_1=ДоÑтигнуто ограничение на количеÑтво репозиториев: %d. form.reach_limit_of_creation_n=ДоÑтигнуто ограничение на количеÑтво репозиториев: %d. @@ -1188,7 +1198,7 @@ migrate_items_releases=ВыпуÑки migrate_repo=ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ migrate.clone_address=ÐŸÐµÑ€ÐµÐ½Ð¾Ñ / Клонирование по URL migrate.clone_address_desc=HTTP/HTTPS или Git Ð°Ð´Ñ€ÐµÑ ÑущеÑтвующего Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ -migrate.github_token_desc=Ð’Ñ‹ можете помеÑтить один или неÑколько токенов, разделенных запÑтыми, чтобы уÑкорить миграцию, обходом ограничений ÑкороÑти API GitHub. ПРЕДУПРЕЖДЕÐИЕ: злоупотребление Ñтой функцией может нарушить политику поÑтавщика уÑлуг и привеÑти к блокировке учётной запиÑи. +migrate.github_token_desc=Ð’Ñ‹ можете указать один или неÑколько разделенных запÑтыми токенов, чтобы уÑкорить Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ð·Ð° Ñчёт обхода ограничений чаÑтоты обращений к API GitHub. ПРЕДУПРЕЖДЕÐИЕ: злоупотребление Ñтой функцией может нарушить уÑÐ»Ð¾Ð²Ð¸Ñ Ð¿Ñ€ÐµÐ´Ð¾ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÑлуг и привеÑти к блокировке учётной запиÑи. migrate.clone_local_path=или локальный путь на Ñервере migrate.permission_denied=У Ð²Ð°Ñ Ð½ÐµÑ‚ прав на импорт локальных репозиториев. migrate.permission_denied_blocked=Ð’Ñ‹ не можете импортировать Ñ Ð·Ð°Ð¿Ñ€ÐµÑ‰Ñ‘Ð½Ð½Ñ‹Ñ… хоÑтов, пожалуйÑта, попроÑите админиÑтратора проверить наÑтройки ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS. @@ -1201,7 +1211,7 @@ migrated_from_fake=ПеренеÑено из %[1]s migrate.migrate=ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ð¸Ð· %s migrate.migrating=ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ð¸Ð· %s... migrate.migrating_failed=ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ð¸Ð· %s не удалÑÑ. -migrate.migrating_failed.error=Ðе удалоÑÑŒ мигрировать: %s +migrate.migrating_failed.error=Ðе удалоÑÑŒ перенеÑти: %s migrate.migrating_failed_no_addr=ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ð½Ðµ удалÑÑ. migrate.github.description=ПеренеÑите данные Ñ github.com или Ñервера GitHub Enterprise. migrate.git.description=ПеренеÑти только репозиторий из любого Git ÑервиÑа. @@ -1219,7 +1229,7 @@ migrate.migrating_releases=ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ð²Ñ‹Ð¿ÑƒÑков migrate.migrating_issues=ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ð·Ð°Ð´Ð°Ñ‡ migrate.migrating_pulls=ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñов на ÑлиÑние migrate.cancel_migrating_title=Отменить Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ -migrate.cancel_migrating_confirm=Ð’Ñ‹ хотите отменить Ñту миграцию? +migrate.cancel_migrating_confirm=Ð’Ñ‹ хотите отменить переноÑ? mirror_from=зеркало из forked_from=ответвлён от @@ -1329,7 +1339,7 @@ editor.or=или editor.cancel_lower=Отменить editor.commit_signed_changes=ЗафикÑировать подпиÑанные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ editor.commit_changes=Сохранить правки -editor.add_tmpl=Добавить «» +editor.add_tmpl=Добавить «<%s>» editor.add=Добавить %s editor.update=Обновить %s editor.delete=Удалить %s @@ -1339,7 +1349,7 @@ editor.fail_to_apply_patch=Ðевозможно применить патч «%s editor.new_patch=ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð°Ð²ÐºÐ° editor.commit_message_desc=Добавьте необÑзательное раÑширенное опиÑание… editor.signoff_desc=Добавить трейлер Signed-off-by Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¾Ð¼ коммита в конце ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð°. -editor.commit_directly_to_this_branch=Сохранить коммит напрÑмую в ветвь %s. +editor.commit_directly_to_this_branch=Сохранить коммит напрÑмую в ветвь %[1]s. editor.create_new_branch=Сохранить коммит в новую ветвь и начать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние. editor.create_new_branch_np=Создать новую ветвь Ð´Ð»Ñ Ñтого коммита. editor.propose_file_change=Предложить изменение файла @@ -1704,15 +1714,15 @@ issues.error_modifying_due_date=Ðе удалоÑÑŒ изменить Ñрок в issues.error_removing_due_date=Ðе удалоÑÑŒ убрать Ñрок выполнениÑ. issues.push_commit_1=добавлен %d коммит %s issues.push_commits_n=добавлены %d коммита(ов) %s -issues.force_push_codes=`форÑированное обновление изменений %[1]s %[4]s вмеÑто %[2]s %[6]s` +issues.force_push_codes=`форÑированное обновление изменений %[1]s %[4]s вмеÑто %[2]s %[6]s` issues.force_push_compare=Сравнить issues.due_date_form=гггг-мм-дд issues.due_date_form_add=Добавить Ñрок Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ issues.due_date_form_edit=Изменить issues.due_date_form_remove=Удалить issues.due_date_not_set=Срок Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ уÑтановлен. -issues.due_date_added=добавлен Ñрок Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ %s %s -issues.due_date_modified=Ñрок Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ´Ð²Ð¸Ð½ÑƒÑ‚ Ñ %[2]s на %[1]s %[3]s +issues.due_date_added=добавлен Ñрок Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ â€“ %s, %s +issues.due_date_modified=Ñрок Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½Ñ‘Ð½ Ñ %[2]s на %[1]s %[3]s issues.due_date_remove=убран Ñрок Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ %s %s issues.due_date_overdue=ПроÑроченные issues.due_date_invalid=Срок Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÐµÐ´ÐµÐ¹Ñтвителен или находитÑÑ Ð·Ð° пределами допуÑтимого диапазона. ПожалуйÑта, иÑпользуйте формат «гггг-мм-дд». @@ -1757,8 +1767,8 @@ issues.review.left_comment=оÑтавил комментарий issues.review.content.empty=Ð—Ð°Ð¿Ñ€Ð°ÑˆÐ¸Ð²Ð°Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ, вы обÑзаны оÑтавить комментарий Ñ Ð¿Ð¾ÑÑнением Ñвоих пожеланий отноÑительно запроÑа на ÑлиÑние. issues.review.reject=запрошены Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ %s issues.review.wait=был запрошен Ð´Ð»Ñ Ð¾Ñ‚Ð·Ñ‹Ð²Ð° %s -issues.review.add_review_request=запрошена Ñ€ÐµÑ†ÐµÐ½Ð·Ð¸Ñ Ñƒ %s %s -issues.review.remove_review_request=отменён Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ€ÐµÑ†ÐµÐ½Ð·Ð¸Ð¸ Ð´Ð»Ñ %s %s +issues.review.add_review_request=запрошена Ñ€ÐµÑ†ÐµÐ½Ð·Ð¸Ñ Ð¾Ñ‚ %[1]s %[2]s +issues.review.remove_review_request=отменён Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ€ÐµÑ†ÐµÐ½Ð·Ð¸Ð¸ от %[1]s %[2]s issues.review.remove_review_request_self=отказ от Ñ€ÐµÑ†ÐµÐ½Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ %s issues.review.pending=Ожидание issues.review.pending.tooltip=Этот комментарий в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½Ðµ виден другим пользователÑм. Чтобы отправить отложенные комментарии, выберите «%s» → «%s/%s/%s» в верхней чаÑти Ñтраницы. @@ -1815,8 +1825,8 @@ pulls.nothing_to_compare=Ðечего Ñравнивать, родительÑк pulls.nothing_to_compare_and_allow_empty_pr=Ветви идентичны. Этот PR будет пуÑтым. pulls.has_pull_request=`Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние Ñтих ветвей уже ÑущеÑтвует: %[2]s#%[3]d` pulls.create=Создать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние -pulls.title_desc_one=хочет влить %[1]d коммит из %[2]s в %[3]s -pulls.title_desc_few=хочет влить %[1]d коммит(ов) из %[2]s в %[3]s +pulls.title_desc_one=хочет влить %[1]d коммит из %[2]s в %[3]s +pulls.title_desc_few=хочет влить %[1]d коммит(ов) из %[2]s в %[3]s pulls.merged_title_desc_one=Ñлит %[1]d коммит из %[2]s в %[3]s %[4]s pulls.merged_title_desc_few=Ñлито %[1]d коммит(ов) из %[2]s в %[3]s %[4]s pulls.change_target_branch_at=`изменил(а) целевую ветвь Ñ %s на %s %s` @@ -2061,8 +2071,7 @@ activity.git_stats_and_deletions=и activity.git_stats_deletion_1=%d удаление activity.git_stats_deletion_n=%d удалений -contributors.contribution_type.commits=коммитов - +contributors.contribution_type.commits = Коммиты search=ПоиÑк search.search_repo=ПоиÑк по репозиторию search.type.tooltip=Тип поиÑка @@ -2090,7 +2099,7 @@ settings.mirror_settings=Зеркалирование settings.mirror_settings.docs=ÐаÑтройте Ñвой репозиторий Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкой Ñинхронизации коммитов, тегов и ветвей Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ репозиторием. settings.mirror_settings.docs.disabled_pull_mirror.instructions=ÐаÑтройте Ñвой проект Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкой отправки коммитов, тегов и ветвей в другой репозиторий. Pull-зеркала были отключены админиÑтратором Ñайта. settings.mirror_settings.docs.disabled_push_mirror.instructions=ÐаÑтройте Ñвой проект, чтобы автоматичеÑки получать коммиты, теги и ветви из другого репозиториÑ. -settings.mirror_settings.docs.disabled_push_mirror.pull_mirror_warning=Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ñто можно Ñделать только в меню «ÐÐ¾Ð²Ð°Ñ Ð¼Ð¸Ð³Ñ€Ð°Ñ†Ð¸Ñ». Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации, пожалуйÑта, ознакомьтеÑÑŒ: +settings.mirror_settings.docs.disabled_push_mirror.pull_mirror_warning=Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ñто можно Ñделать только через меню «Выполнить переноÑ». Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации, пожалуйÑта, ознакомьтеÑÑŒ: settings.mirror_settings.docs.disabled_push_mirror.info=Push-зеркала отключены админиÑтратором Ñайта. settings.mirror_settings.docs.no_new_mirrors=Ваш репозиторий зеркалирует Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² другой репозиторий или из него. ПожалуйÑта, имейте в виду, что в данный момент невозможно Ñоздавать новые зеркала. settings.mirror_settings.docs.can_still_use=Ð¥Ð¾Ñ‚Ñ Ð²Ñ‹ не можете изменÑть ÑущеÑтвующие зеркала или Ñоздавать новые, вы можете по-прежнему иÑпользовать ÑущеÑтвующее зеркало. @@ -2129,7 +2138,7 @@ settings.use_external_issue_tracker=ИÑпользовать внешнюю Ñи settings.external_tracker_url=СÑылка на внешнюю ÑиÑтему задач settings.external_tracker_url_error=URL внешнего баг-трекера не ÑвлÑетÑÑ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¼ URL. settings.external_tracker_url_desc=ПоÑетители будут перенаправлены по указанному адреÑу трекера задач при открытии вкладки. -settings.tracker_url_format=Формат ÑÑылки внешней ÑиÑтемы задач +settings.tracker_url_format=Формат ÑÑылок внешней ÑиÑтемы задач settings.tracker_url_format_error=Формат URL внешнего баг-трекера некорректен. settings.tracker_issue_style=Формат нумерации во внешней ÑиÑтеме задач settings.tracker_issue_style.numeric=Цифровой @@ -2188,9 +2197,9 @@ settings.transfer_perform=Выполнить передачу settings.transfer_started=Репозиторий ожидает Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸ от «%s» settings.transfer_succeed=Репозиторий перенеÑён. settings.signing_settings=ÐаÑтройки проверки подпиÑей -settings.trust_model=Модель Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñи -settings.trust_model.default=Модель Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ Ð¿Ð¾ умолчанию -settings.trust_model.default.desc=ИÑпользовать Ñтандартную модель Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ñтой уÑтановки. +settings.trust_model=Факторы Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑм +settings.trust_model.default=Фактор Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ Ð¿Ð¾ умолчанию +settings.trust_model.default.desc=ИÑпользовать фактор Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ Ð¿Ð¾ умолчанию, иÑпользуемый на Ñтом Ñервере. settings.trust_model.collaborator=СоучаÑтник settings.trust_model.collaborator.long=СоучаÑтник: доверÑть подпиÑÑм ÑоучаÑтников settings.trust_model.collaborator.desc=ДейÑтвительные подпиÑи ÑоучаÑтников Ñтого Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ помечены как «доверенные» (незавиÑимо от того, ÑоответÑтвуют ли они автору коммита). Ð’ оÑтальных ÑлучаÑÑ… дейÑтвительные подпиÑи будут помечены как «недоверенные», еÑли подпиÑÑŒ ÑоответÑтвует автору коммита, и «не Ñовпадающие», еÑли нет. @@ -2456,11 +2465,11 @@ settings.archive.header=ÐÑ€Ñ…Ð¸Ð²Ð°Ñ†Ð¸Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ settings.archive.success=Репозиторий был уÑпешно архивирован. settings.archive.error=Ошибка при попытке архивировать репозиторий. Смотрите логи Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð¾Ñтей. settings.archive.error_ismirror=Ð’Ñ‹ не можете помеÑтить зеркалируемый репозиторий в архив. -settings.archive.branchsettings_unavailable=ÐаÑтройки ветви недоÑтупны, еÑли репозиторий архивирован. -settings.archive.tagsettings_unavailable=ÐаÑтройки тегов недоÑтупны, еÑли репозиторий архивирован. +settings.archive.branchsettings_unavailable=ÐаÑтройки ветвей недоÑтупны в архивированных репозиториÑÑ…. +settings.archive.tagsettings_unavailable=ÐаÑтройки тегов недоÑтупны в архивированных репозиториÑÑ…. settings.unarchive.button=Разархивировать settings.unarchive.header=Вернуть Ñтот репозиторий из архива -settings.unarchive.text=Разархивирование Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð²Ð¾ÑÑтановит его ÑпоÑобноÑть принимать изменениÑ, а также новые задачи и запроÑÑ‹ на ÑлиÑние. +settings.unarchive.text=Ð Ð°Ð·Ð°Ñ€Ñ…Ð¸Ð²Ð°Ñ†Ð¸Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð²Ð¾ÑÑтановит возможноÑть отправлÑть в него изменениÑ, а также Ñоздавать новые задачи и запроÑÑ‹ на ÑлиÑние. settings.unarchive.success=Репозиторий был уÑпешно разархивирован. settings.update_avatar_success=Картинка Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð°. settings.lfs=LFS @@ -2529,7 +2538,7 @@ diff.load=Показать Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ diff.generated=Ñгенерированный diff.vendored=предоÑтавленный diff.comment.placeholder=ОÑтавить комментарий -diff.comment.markdown_info=ПоддерживаетÑÑ ÑинтакÑÐ¸Ñ Markdown. +diff.comment.markdown_info=ПоддерживаетÑÑ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ Ñ Markdown. diff.comment.add_single_comment=Добавить проÑтой комментарий diff.comment.add_review_comment=Добавить комментарий diff.comment.start_review=Ðачать рецензию @@ -2654,7 +2663,7 @@ error.csv.unexpected=Ðе удаетÑÑ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð·Ð¸Ñ‚ÑŒ Ñтот файл, error.csv.invalid_field_count=Ðе удаетÑÑ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð·Ð¸Ñ‚ÑŒ Ñтот файл, потому что он имеет неправильное количеÑтво полей в Ñтроке %d. mirror_address_protocol_invalid = Эта ÑÑылка недейÑтвительна. Ð”Ð»Ñ Ð·ÐµÑ€ÐºÐ°Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ иÑпользовать только раÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ http(s):// и git:// . fork_no_valid_owners = Ðевозможно Ñоздать ответвление Ñтого репозиториÑ, Ñ‚.к. здеÑÑŒ нет дейÑтвующих владельцев. -new_repo_helper = Репозиторий Ñодержит вÑе файлы проекта и иÑторию изменений. Уже где-то еÑть репозиторий? Выполните миграцию. +new_repo_helper = Репозиторий Ñодержит вÑе файлы проекта и иÑторию изменений. Уже где-то еÑть репозиторий? Выполните переноÑ. mirror_address_url_invalid = Эта ÑÑылка недейÑтвительна. Ðеобходимо правильно указать вÑе чаÑти адреÑа. issues.comment.blocked_by_user = Ð’Ñ‹ не можете комментировать под Ñтой задачей, Ñ‚.к. вы заблокированы владельцем Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð»Ð¸ автором задачи. pulls.blocked_by_user = Ðевозможно Ñоздать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние в Ñтом репозитории, Ñ‚.к. вы заблокированы его владельцем. @@ -2700,7 +2709,7 @@ pulls.recently_pushed_new_branches = Ð’Ñ‹ отправили коммиты в milestones.new_subheader = Этапы полезны Ð´Ð»Ñ ÑиÑтематизации задач и отÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ñ… выполнениÑ. wiki.cancel = Отмена settings.unarchive.error = При раÑпаковке Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð¾ÑˆÐ»Ð° ошибка. ПодробноÑти доÑтупны в логе. -settings.archive.mirrors_unavailable = Зеркалирование недоÑтупно Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… репозиториев. +settings.archive.mirrors_unavailable = ÐаÑтройки Ð·ÐµÑ€ÐºÐ°Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐ´Ð¾Ñтупны в архивированных репозиториÑÑ…. issues.role.contributor_helper = Ð’ репозитории приÑутÑтвуют коммиты за авторÑтвом Ñтого пользователÑ. settings.wiki_rename_branch_main = Ðормализовать название ветви вики settings.wiki_rename_branch_main_notices_2 = ВнутреннÑÑ Ð²ÐµÑ‚Ð²ÑŒ вики Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ %s будет переименована. ÐеÑохранённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑŽÑ‚ обновлениÑ. @@ -2726,7 +2735,6 @@ settings.units.units = Разделы pulls.reopen_failed.head_branch = Этот Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние не может быть открыт повторно, так как иÑÑ…Ð¾Ð´Ð½Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ больше не ÑущеÑтвует. pulls.reopen_failed.base_branch = Этот Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние не может быть открыт заново, потому что Ð±Ð°Ð·Ð¾Ð²Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ больше не ÑущеÑтвует. settings.ignore_stale_approvals = Игнорировать уÑтаревшие Ð¾Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ -contributors.contribution_type.commits = Коммиты contributors.contribution_type.additions = Ð”Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ contributors.contribution_type.deletions = Ð£Ð´Ð°Ð»ÐµÐ½Ð¸Ñ contributors.contribution_type.filter_label = Вид деÑтельноÑти: @@ -2736,7 +2744,7 @@ pulls.made_using_agit = AGit activity.navbar.contributors = Соавторы activity.navbar.code_frequency = ЧаÑтота изменений activity.navbar.recent_commits = Ðедавние коммиты -settings.confirmation_string = Подтверждение +settings.confirmation_string = Строка Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ settings.archive.text = ÐÑ€Ñ…Ð¸Ð²Ð°Ñ†Ð¸Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ñделает вÑÑ‘ его Ñодержимое доÑтупным только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ. Он будет Ñкрыт Ñ Ð´Ð¾Ð¼Ð°ÑˆÐ½ÐµÐ³Ð¾ Ñкрана. Ðикто (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð²Ð°Ñ!) не Ñможет добавлÑть коммиты, открывать задачи и запроÑÑ‹ ÑлиÑний. release.deletion_desc = Удаление выпуÑка удалÑет его только в Forgejo. Это дейÑтвие не затронет тег в git, Ñодержимое Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸ его иÑторию. Продолжить? pulls.agit_explanation = Создано через рабочий поток AGit. С ним можно предлагать изменениÑ, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ «git push», без необходимоÑти в Ñоздании Ð¾Ñ‚Ð²ÐµÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ новой ветви. @@ -2830,8 +2838,45 @@ settings.mirror_settings.push_mirror.copy_public_key = Копировать пу issues.new.assign_to_me = Ðазначить Ñебе issues.all_title = Ð’Ñе settings.discord_icon_url.exceeds_max_length = URL иконки не может быть длиннее 2048 Ñимволов +issues.review.add_review_requests = запрошены рецензии от %[1]s %[2]s +issues.review.remove_review_requests = отменены запроÑÑ‹ рецензий от %[1]s %[2]s +issues.review.add_remove_review_requests = запрошены рецензии от %[1]s и отменены запроÑÑ‹ рецензий от %[2]s %[3]s +pulls.delete_after_merge.head_branch.is_default = Ð“Ð¾Ð»Ð¾Ð²Ð½Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ, которую вы попыталиÑÑŒ удалить, ÑвлÑетÑÑ Ð²ÐµÑ‚Ð²ÑŒÑŽ по умолчанию и не может быть удалена. +pulls.delete_after_merge.head_branch.is_protected = Ð“Ð¾Ð»Ð¾Ð²Ð½Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ, которую вы попыталиÑÑŒ удалить, защищена от Ñтого и не может быть удалена. +pulls.delete_after_merge.head_branch.insufficient_branch = ОтÑутÑтвует разрешение Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð³Ð¾Ð»Ð¾Ð²Ð½Ð¾Ð¹ ветви. +issues.filter_sort.relevance = По ÑоответÑтвию +diff.git-notes.remove-header = Удаление заметки +diff.git-notes.remove-body = Заметка будет удалена. +diff.git-notes.add = Добавить заметку +issues.num_reviews_few = %d рецензий +issues.num_reviews_one = %d Ñ€ÐµÑ†ÐµÐ½Ð·Ð¸Ñ +issues.summary_card_alt = Карточка Ñо Ñводкой задачи "%s" в репозитории %s +editor.add_tmpl.filename = Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° +settings.default_update_style_desc = Стиль Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ñтающих ветвей запроÑов на ÑлиÑние по умолчанию. +pulls.sign_in_require = Войдите, чтобы Ñоздать Ð·Ð°Ð¿Ñ€Ð¾Ñ ÑлиÑниÑ. +new_from_template = Применить шаблон +new_from_template_description = Ð’Ñ‹ можете выбрать любой шаблон Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° Ñтом Ñервере и применить его наÑтройки на Ñтом репозитории. +new_advanced = РаÑширенные наÑтройки +new_advanced_expand = Ðажмите, чтобы раÑкрыть +auto_init_description = Ðачать иÑторию коммитов Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ README и, еÑли надо, лицензии и .gitignore. +summary_card_alt = Карточка Ñо Ñводкой о репозитории %s +issues.reaction.add = Добавить реакцию +issues.reaction.alt_few = Ð ÐµÐ°ÐºÑ†Ð¸Ñ %[2]s от %[1]s. +issues.reaction.alt_many = Ð ÐµÐ°ÐºÑ†Ð¸Ñ %[3]s от %[1]s и %[2]d других. +issues.reaction.alt_remove = Убрать реакцию %[1]s Ñ Ñтого комментариÑ. +issues.reaction.alt_add = Добавить реакцию %[1]s к Ñтому комментарию. +issues.context.menu = Меню ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ +release.summary_card_alt = Карточка Ñо Ñводкой о выпуÑке «%s» в репозитории %s [graphs] +component_loading_failed = Ðе удалоÑÑŒ загрузить %s +component_failed_to_load = СлучилаÑÑŒ Ð½ÐµÐ¿Ñ€ÐµÐ´Ð²Ð¸Ð´ÐµÐ½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. +contributors.what = ÑоучаÑтие +component_loading = Загрузка %s... +component_loading_info = Это займёт некоторое времÑ… +code_frequency.what = чаÑтота изменений +recent_commits.what = недавние коммиты + [org] org_name_holder=Ðазвание организации @@ -2870,7 +2915,7 @@ settings.permission=Ð Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ settings.repoadminchangeteam=ÐдминиÑтратор Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ добавлÑть и удалÑть права доÑтупа Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ settings.visibility=ВидимоÑть settings.visibility.public=Публичный -settings.visibility.limited=ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð½Ð°Ñ (видна только авторизованным пользователÑм) +settings.visibility.limited=ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð½Ð°Ñ (видна только зарегиÑтрированным пользователÑм) settings.visibility.limited_shortname=Ограниченный settings.visibility.private=ЧаÑÑ‚Ð½Ð°Ñ (видна только учаÑтникам организации) settings.visibility.private_shortname=ЧаÑÑ‚Ð½Ð°Ñ @@ -3287,13 +3332,13 @@ auths.invalid_openIdConnectAutoDiscoveryURL=Ðеверный URL Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾ config.server_config=ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñервера config.app_name=Ðазвание Ñервера config.app_ver=ВерÑÐ¸Ñ Forgejo -config.app_url=Базовый URL Forgejo +config.app_url=Базовый URL config.custom_conf=Путь к файлу конфигурации config.custom_file_root_path=Путь до каталога Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð´Ð»Ñ Ð¿ÐµÑ€Ñонализации config.domain=Домен Ñервера config.offline_mode=Локальный режим config.disable_router_log=Отключение журнала маршрутизатора -config.run_user=Выполнение под пользователем +config.run_user=Работа под пользователем config.run_mode=Режим работы config.git_version=ВерÑÐ¸Ñ git config.app_data_path=Путь к данным Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ @@ -3405,7 +3450,7 @@ 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_migrate_timeout=Ограничение времени переноÑов config.git_mirror_timeout=Ограничение времени на Ñинхронизацию зеркала config.git_clone_timeout=Ограничение времени операций ÐºÐ»Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ config.git_pull_timeout=Ограничение времени на получение изменений @@ -3477,7 +3522,7 @@ notices.delete_success=Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы были удале self_check.no_problem_found = Пока проблем не обнаружено. auths.tip.gitea = ЗарегиÑтрируйте новое приложение OAuth2. ДоÑтупна инÑтрукциÑ: %s auths.tips.oauth2.general.tip = При региÑтрации нового Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ OAuth2 ÑÑылка обратного Ð¿ÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° быть: -self_check.database_fix_mysql = Пользователи MySQL и MariaDB могут иÑправить проблемы Ñ ÑопоÑтавлением командой "gitea doctor convert". Также можно вручную впиÑать "ALTER ... COLLATE ..." в SQL. +self_check.database_fix_mysql = Пользователи MySQL и MariaDB могут иÑправить проблемы Ñ ÑопоÑтавлением командой "forgejo doctor convert". Также можно вручную впиÑать "ALTER ... COLLATE ..." в SQL. dashboard.cleanup_actions = ОчиÑтить уÑтаревшие журналы и артефакты ДейÑтвий dashboard.sync_repo_branches = Синхронизировать ветви из Git в базу данных assets = Кодовые объекты @@ -3515,6 +3560,7 @@ emails.delete = Удалить Ð°Ð´Ñ€ÐµÑ emails.deletion_success = ÐÐ´Ñ€ÐµÑ Ñл. поÑты удалён из учётной запиÑи. emails.delete_primary_email_error = Ðевозможно удалить оÑновной адреÑ. emails.delete_desc = Ð’Ñ‹ точно хотите удалить Ñтот Ð°Ð´Ñ€ÐµÑ Ñл. почты? +monitor.duration = ДлительноÑть (Ñ) [action] @@ -3669,7 +3715,7 @@ conda.install=Чтобы уÑтановить пакет Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Conda container.details.type=Тип образа container.details.platform=Платформа container.pull=Загрузите образ из командной Ñтроки: -container.digest=Отпечаток: +container.digest=Отпечаток container.multi_arch=ОС / архитектура container.layers=Слои образа container.labels=Метки @@ -3710,8 +3756,8 @@ rpm.registry=ÐаÑтроить рееÑтр из командной Ñтрок rpm.distros.redhat=на диÑтрибутивах ÑемейÑтва RedHat rpm.distros.suse=на диÑтрибутивах ÑемейÑтва SUSE rpm.install=Чтобы уÑтановить пакет, выполните Ñледующую команду: -rpm.repository=О репозитории -rpm.repository.architectures=Ðрхитектуры +rpm.repository = О репозитории +rpm.repository.architectures = Ðрхитектуры rubygems.install=Чтобы уÑтановить пакет Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ gem, выполните Ñледующую команду: rubygems.install2=или добавьте его в Gemfile: rubygems.dependencies.runtime=ЗавиÑимоÑти времени Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ @@ -3764,8 +3810,6 @@ owner.settings.chef.title=РееÑтр Chef owner.settings.chef.keypair=Создать пару ключей owner.settings.cleanuprules.none = Правил очиÑтки пока нет. owner.settings.cargo.rebuild.description = ПереÑборка может быть полезна в Ñлучае, еÑли Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ Ñинхронизирован Ñ Ñ…Ñ€Ð°Ð½ÑщимиÑÑ Ð¿Ð°ÐºÐµÑ‚Ð°Ð¼Ð¸ Cargo. -rpm.repository = О репозитории -rpm.repository.architectures = Ðрхитектуры rpm.repository.multiple_groups = Этот пакет доÑтупен в неÑкольких группах. owner.settings.chef.keypair.description = Ð”Ð»Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ рееÑтра Chef необходима пара ключей. ЕÑли до Ñтого вы уже Ñгенерировали пару ключей, Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ приведёт к прекращению дейÑÑ‚Ð²Ð¸Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ¹. owner.settings.cargo.rebuild.no_index = Ðевозможно выполнить переÑборку. Ðет инициализированного индекÑа. @@ -3786,6 +3830,10 @@ arch.version.replaces = ЗаменÑет arch.version.backup = Рез. ÐºÐ¾Ð¿Ð¸Ñ arch.version.conflicts = Конфликтует Ñ arch.version.checkdepends = Проверочные завиÑимоÑти +container.images.title = Образы +search_in_external_registry = Ðайти в %s +alt.repository = О репозитории +alt.repository.architectures = Ðрхитектуры [secrets] secrets=Секреты @@ -3904,6 +3952,8 @@ workflow.dispatch.input_required = Требовать значение Ð´Ð»Ñ Ð¿ workflow.dispatch.invalid_input_type = ÐеизвеÑтный тип Ð¿Ð¾Ð»Ñ Â«%s». workflow.dispatch.warn_input_limit = ОтображаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ первые %d полей. runs.expire_log_message = Журнал был удалён из-за ÑтароÑти. +runs.no_workflows.help_write_access = Ðе знаете, как начать иÑпользовать ДейÑÑ‚Ð²Ð¸Ñ Forgejo? ОзнакомьтеÑÑŒ Ñ Ñ€ÑƒÐºÐ¾Ð²Ð¾Ð´Ñтвом по быÑтрому Ñтарту в документации и Ñоздайте первый рабочий поток, затем наÑтройте иÑполнитель Forgejo, который будет выполнÑть задачи. +runs.no_workflows.help_no_write_access = ОзнакомьтеÑÑŒ Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸ÐµÐ¹, чтобы узнать про ДейÑÑ‚Ð²Ð¸Ñ Forgejo. [projects] type-1.display_name=Индивидуальный проект @@ -3913,7 +3963,6 @@ deleted.display_name = Удалённый проект [git.filemode] changed_filemode=%[1]s → %[2]s -; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", … directory=Каталог normal_file=Обычный файл executable_file=ИÑполнÑемый файл @@ -3922,44 +3971,34 @@ submodule=Подмодуль -[graphs] -component_loading_failed = Ðе удалоÑÑŒ загрузить %s -component_failed_to_load = СлучилаÑÑŒ Ð½ÐµÐ¿Ñ€ÐµÐ´Ð²Ð¸Ð´ÐµÐ½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. -contributors.what = ÑоучаÑтие -component_loading = Загрузка %s... -component_loading_info = Это займёт некоторое времÑ… -code_frequency.what = чаÑтота изменений -recent_commits.what = недавние коммиты - - [search] search = ПоиÑк... fuzzy_tooltip = Включает результаты, доÑтаточно похожие на запроÑ, даже при наличии неточноÑтей type_tooltip = Тип поиÑка fuzzy = Приблизительный match = Точный -repo_kind = ПоиÑк репозиториев... -user_kind = ПоиÑк пользователей... -org_kind = ПоиÑк организаций... -team_kind = ПоиÑк команд... -code_kind = ПоиÑк по коду... -package_kind = ПоиÑк пакетов... -project_kind = ПоиÑк проектов... -branch_kind = ПоиÑк ветвей... -commit_kind = ПоиÑк коммитов... +repo_kind = Ðайти репозитории... +user_kind = Ðайти пользователей... +org_kind = Ðайти организации... +team_kind = Ðайти команды... +code_kind = Ðайти в коде... +package_kind = Ðайти пакеты... +project_kind = Ðайти проекты... +branch_kind = Ðайти ветви... +commit_kind = Ðайти коммиты... no_results = По запроÑу ничего не найдено. -keyword_search_unavailable = ПоиÑк по ключевым Ñловам недоÑтупен. Уточните подробноÑти у админиÑтратора. +keyword_search_unavailable = ПоиÑк по ключевым Ñловам недоÑтупен. Уточните подробноÑти у админиÑтратора Ñервера. match_tooltip = Включать только результаты, точно ÑоответÑтвующие запроÑу -code_search_unavailable = ПоиÑк по коду ÑÐµÐ¹Ñ‡Ð°Ñ Ð½ÐµÐ´Ð¾Ñтупен. Уточните подробноÑти у админиÑтратора. -runner_kind = ПоиÑк иÑполнителей... -code_search_by_git_grep = Эти результаты получены через «git grep». Результатов может быть больше, еÑли админиÑтратор Ñервера включит индекÑатор кода. +code_search_unavailable = ПоиÑк в коде недоÑтупен. Уточните подробноÑти у админиÑтратора Ñервера. +runner_kind = Ðайти иÑполнителей... +code_search_by_git_grep = Эти результаты получены через «git grep». Результатов может быть больше, еÑли на Ñервере будет включен индекÑатор кода. exact = Точный exact_tooltip = Включает только результаты, в точноÑти ÑоответÑтвующие запроÑу -issue_kind = ПоиÑк задач... -pull_kind = ПоиÑк ÑлиÑний... +issue_kind = Ðайти задачи... +pull_kind = Ðайти ÑлиÑниÑ... union_tooltip = Включает результаты Ñ Ñовпавшими ключевыми Ñловами, разделёнными пробелами union = Обычный -milestone_kind = ПоиÑк Ñтапов... +milestone_kind = Ðайти Ñтапы... regexp = РегулÑрное выражение regexp_tooltip = Интерпретировать поиÑковый Ð·Ð°Ð¿Ñ€Ð¾Ñ ÐºÐ°Ðº регулÑрное выражение @@ -3970,7 +4009,7 @@ filepreview.lines = Строки Ñ %[1]d по %[2]d в %[3]s filepreview.truncated = ПредпроÑмотр был обрезан [translation_meta] -test = Ñмайлик :) +test = forgejo :) [repo.permissions] code.write = ЗапиÑÑŒ: отправка изменений в репозиторий, Ñоздание веток и тегов. @@ -3990,4 +4029,4 @@ issues.write = ЗапиÑÑŒ: закрытие задач и измене actions.write = ЗапиÑÑŒ: ручной запуÑк, перезапуÑк, отмена и одобрение работы конвейеров CI/CD. wiki.write = ЗапиÑÑŒ: Ñоздание, изменение и удаление Ñтраниц во вÑтроенной вики. packages.read = Чтение: проÑмотр и Ñкачивание пакетов в репозитории. -ext_issues = ДоÑтуп к ÑÑылке на внешний трекер задач. ÐаÑтройка разрешений выполнÑетÑÑ Ð²Ð½Ðµ Ñайта. \ No newline at end of file +ext_issues = ДоÑтуп к ÑÑылке на внешний трекер задач. ÐаÑтройка разрешений выполнÑетÑÑ Ð²Ð½Ðµ Ñайта. diff --git a/options/locale/locale_si-LK.ini b/options/locale/locale_si-LK.ini index bfb22176e8..ac7627ca80 100644 --- a/options/locale/locale_si-LK.ini +++ b/options/locale/locale_si-LK.ini @@ -116,7 +116,6 @@ missing_csrf=නරක ඉල්ලීම: CSRF à¶§à·à¶šà¶±à·Š නොමà·à¶­ app_desc=වේදනà·à¶šà·à¶»à·“, ස්වයං-සත්කà·à¶»à¶š Git සේවà·à·€à¶šà·Š install=ස්ථà·à¶´à¶±à¶ºà¶§ පහසුය platform=හරස් වේදිකà·à·€ -platform_desc=Forgejo ඕනෑම à¶­à·à¶±à¶š à¶°à·à·€à¶±à¶º Go සඳහ෠සම්පà·à¶¯à¶±à¶º à¶šà·… à·„à·à¶šà·’ය: වින්ඩà·à·ƒà·Š, මà·à¶šà·à·ƒà·Š, ලිනක්ස්, ARM, ආදිය ඔබ ආදරය කරන à¶‘à¶šà¶šà·Š à¶­à·à¶»à¶±à·Šà¶±! lightweight=à·ƒà·à·„à·à¶½à·Šà¶½à·” lightweight_desc=Forgejo à¶…à¶©à·” අවම à¶…à·€à·à·Šà¶ºà¶­à· ඇති à¶…à¶­à¶» මිල à¶…à¶©à·” Raspberry Pi මත à¶°à·à·€à¶±à¶º à¶šà·… à·„à·à¶šà·’ය. ඔබේ යන්ත්ර à·à¶šà·Šà¶­à·’ය සුරකින්න! license=විවෘත මූලà·à·à·Šâ€à¶» @@ -920,10 +919,10 @@ editor.or=à·„à· editor.cancel_lower=අවලංගු කරන්න editor.commit_signed_changes=අත්සන් à¶šà·… වෙනස්කම් සිදු කරන්න editor.commit_changes=වෙනස්කම් සිදු කරන්න -editor.add_tmpl='' à¶‘à¶šà¶­à·” කරන්න +editor.add_tmpl='<%s>' à¶‘à¶šà¶­à·” කරන්න editor.commit_message_desc=විකල්ප දීර්චවිස්තරයක් à¶‘à¶šà·Š කරන්න… editor.signoff_desc=à¶šà·à¶´à·€à·– ලොග් පණිවිඩය අවසà·à¶±à¶ºà·š දී à¶šà·à¶´à¶šà¶»à·” විසින් සිග්නෙඩ්-ඕෆ්-විසින් ට්රේලරයක් à¶‘à¶šà·Š කරන්න. -editor.commit_directly_to_this_branch=%s à·à·à¶›à·à·€à¶§ කෙලින්ම à¶šà·à¶´ කරන්න. +editor.commit_directly_to_this_branch=%[1]s à·à·à¶›à·à·€à¶§ කෙලින්ම à¶šà·à¶´ කරන්න. editor.create_new_branch=මෙම à¶šà·à¶´ කිරීම සඳහ෠නව à·à·à¶›à·à·€à¶šà·Š à·ƒà·à¶¯à· අදින්න ඉල්ලීමක් ආරම්භ කරන්න. editor.create_new_branch_np=මෙම à¶šà·à¶´ කිරීම සඳහ෠නව à·à·à¶›à·à·€à¶šà·Š à·ƒà·à¶¯à¶±à·Šà¶±. editor.propose_file_change=ගොනු වෙනස් කිරීම යà·à¶¢à¶±à· කරන්න @@ -1098,12 +1097,12 @@ issues.reopen_comment_issue=අදහස් දක්ව෠විවෘත à¶š issues.create_comment=අදහස issues.closed_at=`මෙම à¶œà·à¶§à·…ුව වස෠%[2]s` issues.reopened_at=`මෙම à¶œà·à¶§à·…ුව à¶±à·à·€à¶­ විවෘත කරන ලදි %[2]s` -issues.ref_issue_from=මෙම නිකුතුව %[4]s à·„à·’ %[2]s -issues.ref_pull_from=මෙම අදින්න ඉල්ලීම%[4]s %[2]s -issues.ref_closing_from=මෙම à¶œà·à¶§à·…ුව වස෠දමනු ඇත%[4]s මෙම à¶œà·à¶§à·…ුව %[2]s -issues.ref_reopening_from=මෙම à¶œà·à¶§à·…ුව à¶±à·à·€à¶­ විවෘත කරනු ඇත%[4]s මෙම à¶œà·à¶§à·…ුව %[2]s -issues.ref_closed_from=මෙම නිකුතුව%[4]s %[2]s -issues.ref_reopened_from=මෙම නිකුතුව%[4]s %[2]sà¶±à·à·€à¶­ විවෘත කරන ලදි +issues.ref_issue_from=`මෙම නිකුතුව %[4]s à·„à·’ %[2]s` +issues.ref_pull_from=`මෙම අදින්න ඉල්ලීම%[4]s %[2]s` +issues.ref_closing_from=`මෙම à¶œà·à¶§à·…ුව වස෠දමනු ඇත%[4]s මෙම à¶œà·à¶§à·…ුව %[2]s` +issues.ref_reopening_from=`මෙම à¶œà·à¶§à·…ුව à¶±à·à·€à¶­ විවෘත කරනු ඇත%[4]s මෙම à¶œà·à¶§à·…ුව %[2]s` +issues.ref_closed_from=`මෙම නිකුතුව%[4]s %[2]s` +issues.ref_reopened_from=`මෙම නිකුතුව%[4]s %[2]sà¶±à·à·€à¶­ විවෘත කරන ලදි` issues.ref_from=`හිම%[1]s` issues.role.owner=හිමිකරු issues.role.member=à·ƒà·à¶¸à·à¶¢à·’à¶š @@ -1183,7 +1182,7 @@ issues.error_modifying_due_date=නියමිත දිනය වෙනස් issues.error_removing_due_date=නියමිත දිනය ඉවත් කිරීමට අපොහොසත් විය. issues.push_commit_1=à¶‘à¶šà¶­à·” %d à¶šà·à¶´ %s issues.push_commits_n=à¶‘à¶šà¶­à·” %d විවරයන් %s -issues.force_push_codes=`බලය-pushed%[1]s සිට %[2]s %[4]s ගේ %[6]s` +issues.force_push_codes=`බලය-pushed%[1]s සිට %[2]s %[4]s ගේ %[6]s` issues.force_push_compare=සසඳන්න issues.due_date_form=Yyy-mm-dd issues.due_date_form_add=නියමිත දිනය à¶‘à¶šà¶­à·” කරන්න @@ -1269,7 +1268,7 @@ pulls.nothing_to_compare=මෙම à·à·à¶›à· සමà·à¶± වේ. අදි pulls.nothing_to_compare_and_allow_empty_pr=මෙම à·à·à¶›à· සමà·à¶± වේ. මෙම මහජන සම්බන්ධත෠හිස් වනු ඇත. pulls.has_pull_request=`මෙම à·à·à¶›à· à¶…à¶­à¶» අදින්න ඉල්ලීම දà·à¶±à¶§à¶¸à¶­à·Š පවතී: %[2]s #%[3]d` pulls.create=අදින්න ඉල්ලීම නිර්මà·à¶«à¶º -pulls.title_desc_few=%[1]d සිට %[2]s දක්ව෠%[3]s +pulls.title_desc_few=%[1]d සිට %[2]s දක්ව෠%[3]s pulls.merged_title_desc_few=මර්ජ්%[1]d සිට %[2]s දක්ව෠%[3]s %[4]s pulls.change_target_branch_at=`ඉලක්කගත à·à·à¶›à·à·€ %s සිට %s %sදක්ව෠වෙනස් à¶šà¶» ඇත` pulls.tab_conversation=සංවà·à¶¯à¶º @@ -1280,7 +1279,7 @@ pulls.cant_reopen_deleted_branch=à·à·à¶›à·à·€ මක෠දà·à¶¸à·– නි pulls.merged=සංයුක්ත කෙරිණි pulls.manually_merged=අතින් සංයුක්ත à¶šà¶» ඇත pulls.is_closed=අදින්න ඉල්ලීම වස෠දම෠ඇත. -pulls.title_wip_desc=අහම්බෙන් à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීමෙන් අදින්න ඉල්ලීම à·€à·à·…à·à¶šà·Šà·€à·“ම සඳහ෠%s සමඟ මà·à¶­à·˜à¶šà·à·€ ආරම්භ කරන්න. +pulls.title_wip_desc=`අහම්බෙන් à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීමෙන් අදින්න ඉල්ලීම à·€à·à·…à·à¶šà·Šà·€à·“ම සඳහ෠%s සමඟ මà·à¶­à·˜à¶šà·à·€ ආරම්භ කරන්න.` pulls.cannot_merge_work_in_progress=මෙම අදින්න ඉල්ලීම ක්රියà·à¶­à·Šà¶¸à¶š වන à¶šà·à¶»à·Šà¶ºà¶ºà¶šà·Š ලෙස සලකුණු à¶šà¶» ඇත. pulls.still_in_progress=තවමත් ක්රියà·à¶­à·Šà¶¸à¶š වෙමින් තිබේද? pulls.add_prefix=%s උපසර්ගය à¶‘à¶šà¶­à·” කරන්න @@ -2538,9 +2537,6 @@ owner.settings.cleanuprules.enabled=සබල à¶šà¶» ඇත [secrets] [actions] - - - runners.name=නම runners.owner_type=වර්ගය runners.description=සවිස්තරය @@ -2557,6 +2553,4 @@ runs.commit=à¶šà·à¶´ [projects] [git.filemode] -; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", … symbolic_link=සංකේතà·à¶­à·Šà¶¸à¶š සබà·à¶³à·’ය - diff --git a/options/locale/locale_sk-SK.ini b/options/locale/locale_sk-SK.ini index 29824c5b4d..bd2ce203dd 100644 --- a/options/locale/locale_sk-SK.ini +++ b/options/locale/locale_sk-SK.ini @@ -187,7 +187,6 @@ app_desc=Jednoducho prístupný vlastný Git install=Jednoduchá inÅ¡talácia install_desc=Jednoducho spustite binárku pre vaÅ¡u platformu, poÅ¡lite ju ako Docker, alebo ju získajte ako balíÄek. platform=Multiplatformový -platform_desc=Forgejo beží vÅ¡ade kde je možné preložiÅ¥ Go: Windows, macOS, Linux, ARM, a podobne. Vyberte si! lightweight=Ľahká lightweight_desc=Forgejo má minimálne požiadavky a môže bežaÅ¥ na Raspberry Pi. Å etrite energiou vášho stroja! license=Otvorený zdrojový kód @@ -1030,7 +1029,7 @@ editor.cancel_lower=ZruÅ¡iÅ¥ editor.commit_signed_changes=OdoslaÅ¥ podpísané zmeny editor.commit_changes=OdoslaÅ¥ zmeny editor.patch=PoužiÅ¥ patch -editor.commit_directly_to_this_branch=OdoslaÅ¥ zmeny revízie priamo do vetvy %s. +editor.commit_directly_to_this_branch=OdoslaÅ¥ zmeny revízie priamo do vetvy %[1]s. editor.cancel=ZruÅ¡iÅ¥ editor.commit_empty_file_header=OdoslaÅ¥ prázdny súbor editor.commit_empty_file_text=Súbor, ktorý sa chystáte odoslaÅ¥, je prázdny. PokraÄovaÅ¥? @@ -1362,9 +1361,6 @@ owner.settings.cleanuprules.enabled=Povolené [secrets] [actions] - - - runners.labels=Å títky @@ -1374,6 +1370,4 @@ runners.labels=Å títky [projects] [git.filemode] -; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", … -symbolic_link=Symbolický odkaz - +symbolic_link=Symbolický odkaz \ No newline at end of file diff --git a/options/locale/locale_sl.ini b/options/locale/locale_sl.ini index 56ef337d83..0a948f0ec9 100644 --- a/options/locale/locale_sl.ini +++ b/options/locale/locale_sl.ini @@ -1,6 +1,3 @@ - - - [common] language = Jezik passcode = Pristopna koda @@ -243,7 +240,7 @@ smtp_from_helper = e-poÅ¡tni naslov, ki ga bo uporabljal Forgejo. Vnesite navade [admin] users.allow_git_hook_tooltip = Kljuke Git se izvajajo kot uporabnik operacijskega sistema, v katerem je nameÅ¡Äen program Forgejo, in imajo enako raven dostopa do gostitelja. Uporabniki s tem posebnim privilegijem Git Hook lahko dostopajo do vseh skladiÅ¡Ä Forgejo in spreminjajo vse zbirke Forgejo ter podatkovno bazo, ki jo uporablja Forgejo. PoslediÄno lahko pridobijo tudi skrbniÅ¡ke privilegije Forgejo. auths.force_smtps_helper = SMTPS se vedno uporablja na vratih 465. ÄŒe želite, da se SMTPS uporablja tudi na drugih vratih, to nastavite. (V nasprotnem primeru se bo STARTTLS uporabljal na drugih vratih, Äe ga gostitelj podpira.) -self_check.database_fix_mysql = Uporabniki MySQL/MariaDB lahko za odpravo težav s kollacijo uporabite ukaz "gitea doctor convert", lahko pa težavo odpravite tudi z ukazom "ALTER ... COLLATE ..." SQL roÄno. +self_check.database_fix_mysql = Uporabniki MySQL/MariaDB lahko za odpravo težav s kollacijo uporabite ukaz "forgejo doctor convert", lahko pa težavo odpravite tudi z ukazom "ALTER ... COLLATE ..." SQL roÄno. users.purge_help = Prisilno izbriÅ¡ite uporabnika in vsa skladiÅ¡Äa, organizacije in pakete, ki so v njegovi lasti. Izbrisani bodo tudi vsi komentarji in vpraÅ¡anja, ki jih je objavil ta uporabnik. auths.sspi_default_language_helper = Privzet jezik za uporabnike, samodejno ustvarjene z metodo avtentikacije SSPI. Pustite prazno, Äe želite, da se jezik zazna samodejno. 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. @@ -312,7 +309,7 @@ appearance = Videz password = Geslo authorized_oauth2_applications_description = Tem aplikacijam tretjih oseb ste odobrili dostop do svojega osebnega raÄuna Forgejo. Prosimo, da prekliÄete dostop do aplikacij, ki jih ne uporabljate veÄ. social_desc = S temi družabnimi raÄuni se lahko prijavite v svoj raÄun. PrepriÄajte se, da jih vse prepoznate. -access_token_desc = Izbrana dovoljenja žetona omejujejo avtorizacijo samo na ustrezne poti API. Za veÄ informacij preberite dokumentacijo. +access_token_desc = Izbrana dovoljenja žetona omejujejo avtorizacijo samo na ustrezne poti API. Za veÄ informacij preberite dokumentacijo. oauth2_client_secret_hint = Skrivnost se ne bo veÄ prikazala, ko zapustite ali osvežite to stran. PrepriÄajte se, da ste jo shranili. twofa_desc = Za zaÅ¡Äito raÄuna pred krajo gesla lahko uporabite pametni telefon ali drugo napravo za prejemanje Äasovno omejenih enkratnih gesel ("TOTP"). twofa_recovery_tip = ÄŒe napravo izgubite, boste lahko z obnovitvenim kljuÄem za enkratno uporabo ponovno pridobili dostop do raÄuna. @@ -691,4 +688,4 @@ code = Koda owner.settings.chef.keypair.description = Za preverjanje pristnosti v registru Chef je potreben par kljuÄev. ÄŒe ste par kljuÄev ustvarili že prej, se pri ustvarjanju novega para kljuÄev stari par kljuÄev zavrže. [actions] -runners.runner_manage_panel = Upravljanje tekaÄev +runners.runner_manage_panel = Upravljanje tekaÄev \ No newline at end of file diff --git a/options/locale/locale_sr-SP.ini b/options/locale/locale_sr-SP.ini index e091f91a68..3021b48781 100644 --- a/options/locale/locale_sr-SP.ini +++ b/options/locale/locale_sr-SP.ini @@ -89,7 +89,6 @@ has_unconfirmed_mail=Здраво, %s! Имате непотврђену адр resend_mail=Кликните овде да поново пошаљете пиÑмо [mail] - activate_account=Молимо Ð²Ð°Ñ Ð°ÐºÑ‚Ð¸Ð²Ð¸Ñ€Ð°Ñ˜Ñ‚Ðµ ваш налог activate_email=Потврдите вашу адреÑу е-поште @@ -266,7 +265,7 @@ editor.commit_changes=Изврши комит промена editor.add=Додај '%s' editor.update=Ðжурирај '%s' editor.delete=Уклони '%s' -editor.commit_directly_to_this_branch=Изврши комит директно на %s грану. +editor.commit_directly_to_this_branch=Изврши комит директно на %[1]s грану. editor.create_new_branch=Креирај нову грану за овај комит и поднеÑи захтев за Ñпајање. editor.cancel=Откажи editor.branch_already_exists=Грана '%s' већ поÑтоји за ово Ñпремиште. @@ -356,9 +355,6 @@ pulls.tab_commits=Комити pulls.merged=Спојено pulls.can_auto_merge_desc=Овај захтев за Ñпајање може бити обављен аутоматÑки. -; %[2]s
%[3]s
- - milestones.new=Ðова фаза milestones.open_tab=%d отворено milestones.close_tab=%d затворено @@ -728,5 +724,4 @@ remove_file=Уклони датотеку [gpg] -[units] - +[units] \ No newline at end of file diff --git a/options/locale/locale_sv-SE.ini b/options/locale/locale_sv-SE.ini index a96e2cc1dc..abdb012120 100644 --- a/options/locale/locale_sv-SE.ini +++ b/options/locale/locale_sv-SE.ini @@ -57,7 +57,7 @@ collaborative=Kollaborativa forks=Forks activities=Aktiviteter -pull_requests=Pull förfrÃ¥gningar +pull_requests=Pull-förfrÃ¥gningar issues=Ärenden milestones=Milstolpar @@ -130,10 +130,48 @@ download_logs = Ladda ner loggar go_back = GÃ¥ tillbaka show_log_seconds = Visa sekunder rerun = Kör om +filter = Filter +filter.is_archived = Arkiverade +filter.clear = Rensa filter +filter.is_mirror = Speglar +copy_path = Kopiera sökväg +unpin = Lossa +value = Värde +filter.not_archived = Inte arkiverade +error413 = Du har använt upp din kvot. +invalid_data = Ogiltig data: %v +filter.not_template = Inte mallar +copy_hash = Kopiera hash +view = Se +copy_branch = Kopiera grennamn +pin = Fäst +filter.public = Publika +new_repo.title = Ny utvecklingskatalog +new_migrate.title = Ny migrering +new_repo.link = Ny utvecklingskatalog +new_migrate.link = Ny migrering +filter.not_mirror = Inte speglar +filter.is_template = Mallar +filter.private = Privata +active_stopwatch = SpÃ¥rning av aktiv tid +tracked_time_summary = Sammanfattning av spÃ¥rad tid baserat pÃ¥ filter av ärendelistan +toggle_menu = Visningsmeny +confirm_delete_selected = Bekräfta för att ta bort alla valda objekt? +webauthn_error_timeout = Timeout uppnÃ¥ddes innan din nyckel kan läsas. Vänligen ladda om denna sida och försök igen. +filter.is_fork = Förgreningar +webauthn_error_duplicated = Säkerhetsnyckeln är inte tillÃ¥ten för denna begäran. Se till att nyckeln inte redan är registrerad. +filter.not_fork = Inte gafflar +remove_label_str = Ta bort objektet "%" +webauthn_use_twofa = Använd en tvÃ¥faktorskod frÃ¥n din telefon +webauthn_error_insecure = WebAuthn stöder endast säkra anslutningar. För testning över HTTP kan du använda "localhost" eller "127.0.0.1" +webauthn_error_unable_to_process = Servern kunde inte hantera din begäran. +copy_generic = Kopiera till urklipp [aria] footer.software = Om den här mjukvaran footer.links = Länkar +footer = Sidfot +navbar = Navigeringsfält [heatmap] contributions_one = bidrag @@ -155,6 +193,13 @@ buttons.list.unordered.tooltip = Lägg till en punktlista buttons.list.ordered.tooltip = Lägg till en numrerad lista buttons.list.task.tooltip = Lägg till en lista med sysslor buttons.mention.tooltip = Nämn en användare eller ett team +buttons.ref.tooltip = Hänvisa till ett ärende eller en pull request +buttons.new_table.tooltip = Lägg till tabell +table_modal.header = Lägg till tabell +table_modal.placeholder.header = Sidhuvud +table_modal.placeholder.content = InnehÃ¥ll +table_modal.label.rows = Rader +table_modal.label.columns = Kolumner [filter] string.asc = A - Ö @@ -163,6 +208,7 @@ string.asc = A - Ö occurred = Ett fel har inträffat server_internal = Internt serverfel network_error = Nätverksfel +report_message = Om du tror att detta är en Forgejo-bugg, sök efter ärenden pÃ¥ Codeberg eller öppna ett nytt ärende om det behövs. [startpage] app_desc=En smidig, självhostad Git-tjänst @@ -242,14 +288,14 @@ enable_captcha=Aktivera CAPTCHA registrering enable_captcha.description=Kräv att användare klarar CAPTCHA för att registrera konton. require_sign_in_view=Kräv inloggning för att visa instansens innehÃ¥ll admin_setting.description=Skapandet av ett administratörskonto är frivilligt. Den första användaren som registreras blir automatiskt administratör. -admin_title=Inställningar för Administratörskonto -admin_name=Användarnamn för Administratör +admin_title=Inställningar för administratörskonto +admin_name=Användarnamn för administratör admin_password=Lösenord confirm_password=Bekräfta lösenord -admin_email=Mejladress +admin_email=E-postadress install_btn_confirm=Installera Forgejo -test_git_failed=Misslyckades att testa 'git' kommando: %v -sqlite3_not_available=Denna version av Forgejo stödjer ej SQLite3. Ladda ner den officiella binären frÃ¥n %s (inte 'gobuild' versionen). +test_git_failed=Misslyckades att testa "git" kommando: %v +sqlite3_not_available=Denna version av Forgejo stödjer inte SQLite3. Ladda ner den officiella binären frÃ¥n %s (inte "gobuild" versionen). invalid_db_setting=Databasinställningarna är ogiltiga: %v invalid_repo_path=Utvecklingskatalogens rotsökväg är ogiltig: %v run_user_not_match=Systemtjänstanvändaren är inte den nuvarande användaren: %s -> %s @@ -260,10 +306,10 @@ default_keep_email_private=Dölj e-postadresser som standard default_keep_email_private.description=Dölj e-postadress för nya användarkonton som standard sÃ¥ att den informationen inte omedelbart läcker efter registrering. default_allow_create_organization=TillÃ¥t skapandet utav organisationer som standard default_allow_create_organization.description=TillÃ¥t nya användarkonton att skapa organisationer som standard. När detta alternativt ej är aktivt sÃ¥ behöver en administratör tilldela rättigheter att skapa organisationer till nya användare. -default_enable_timetracking=Aktivera tidredovisning som Standard +default_enable_timetracking=Aktivera tidredovisning som standard default_enable_timetracking.description=Aktivera tidsredovisning för nya utvecklingskataloger som standard. -no_reply_address=Dold mejldomän -no_reply_address_helper=Domännamn för användare med en dold mailadress. Exempelvis kommer användarnamnet 'joe' att loggas i Git som 'joe@noreply.example.org' om dold maildomän är satt till 'noreply.example.org'. +no_reply_address=Dold e-postdomän +no_reply_address_helper=Domännamn för användare med en dold e-postadress. Exempelvis kommer användarnamnet "joe" att loggas i Git som "joe@noreply.example.org" om den dolda e-postdomänen är satt till "noreply.example.org". require_db_desc = Forgejo kräver MySQL, PostgreSQL, SQLite3 eller TiDB (MySQL-protokoll). allow_only_external_registration = TillÃ¥t registrering endast via externa tjänster app_slogan = Instansslogan @@ -271,19 +317,30 @@ app_slogan_helper = Skriv in din slogan här. Lämna tom för att stänga av. domain = Serverdomän domain_helper = Domän eller värdadress för servern. reinstall_error = Du försöker att installera i en existerande Forgejo-databas +password_algorithm_helper = Ställ in hashalgoritmen för lösenord. Algoritmer har olika krav och styrka. Argon2-algoritmen är ganska säker men använder mycket minne och kan vara olämplig för smÃ¥ system. +config_location_hint = Dessa konfigurationsinställningar kommer att sparas i: +invalid_db_table = Databastabellen "%s" är ogiltig: %v +secret_key_failed = Misslyckades att generera hemlig nyckel: %v +allow_dots_in_usernames = TillÃ¥t användare att använda punkter i sina användarnamn. PÃ¥verkar inte befintliga användare. +reinstall_confirm_message = Ominstallation med en befintlig Forgejo-databas kan orsaka flera problem. I de flesta fall bör du använda din befintliga "app.ini" för att köra Forgejo. Om du vet vad du hÃ¥ller pÃ¥ med, bekräfta följande: +require_sign_in_view.description = Begränsa Ã¥tkomst till innehÃ¥ll till inloggade användare. Gäster kommer endast att kunna besöka autentiseringssidorna. +invalid_app_data_path = Sökvägen för appdata är ogiltig: %v +internal_token_failed = Misslyckades att generera intern token: %v +password_algorithm = Hashalgoritm för lösenord +invalid_password_algorithm = Ogiltig hashalgoritm för lösenord [home] -uname_holder=Användarnamn eller Mejladress +uname_holder=Användarnamn eller e-postadress password_holder=Lösenord -switch_dashboard_context=Växla Visad Instrumentpanel +switch_dashboard_context=Växla visad instrumentpanel my_repos=Utvecklingskataloger show_more_repos=Visa flera utvecklingskataloger… collaborative_repos=Kollaborativa Utvecklingskataloger -my_orgs=Mina organisationer +my_orgs=Organisationer my_mirrors=Mina speglar view_home=Visa %s search_repos=Hitta en utvecklingskatalog… -filter=Övriga Filter +filter=Övriga filter show_archived=Arkiverade show_both_archived_unarchived=Visar bÃ¥de arkiverade och icke arkiverade @@ -296,6 +353,7 @@ show_only_private=Visar endast privata show_only_public=Visar endast publika issues.in_your_repos=I dina utvecklingskataloger +filter_by_team_repositories = Filtrera efter lagutvecklingskataloger [explore] repos=Utvecklingskataloger @@ -308,9 +366,13 @@ user_no_results=Inga matchande användare hittades. org_no_results=Inga matchande organisationer hittades. code_no_results=Ingen källkod hittades som matchar din sökterm. code_last_indexed_at=Indexerades senast %s +stars_one = %d stjärna +go_to = GÃ¥ till +relevant_repositories = Endast relevanta utvecklingskataloger visas, visa ofiltrerade resultat. +stars_few = %d stjärnor [auth] -create_new_account=Registrera Konto +create_new_account=Registrera konto register_helper_msg=Har du redan ett konto? Logga in nu! social_register_helper_msg=Har du redan ett konto? Länka det nu! disable_register_prompt=Registrering inaktiverad. Vänligen kontakta din sidadministratör. @@ -319,18 +381,18 @@ remember_me=Kom ihÃ¥g denna enhet forgot_password_title=Glömt lösenord forgot_password=Glömt lösenord? sign_up_now=Behöver du ett konto? Registrera nu. -confirmation_mail_sent_prompt=Ett nytt bekräftelsemail has skickats till %s. Vänligen kolla din inkorg inom dom kommande %s för att slutföra registreringsprocessen. +confirmation_mail_sent_prompt=Ett nytt bekräftelsemejl has skickats till %s. För att slutföra registreringsprocessen, vänligen kolla din inkorg inom dom kommande %s. Om e-postadressen är felaktig sÃ¥ kan du logga in och begära att fÃ¥ ett nytt bekräftelsemejlet skickat till en annan e-postadressen. must_change_password=Ändra ditt lösenord allow_password_change=Kräv att användaren byter lösenord (rekommenderas) -reset_password_mail_sent_prompt=Ett nytt bekräftelsemail has skickats till %s. Vänligen kontrollera din inkorg inom de kommande %s för att slutföra Ã¥terställning av ditt konto. +reset_password_mail_sent_prompt=Ett nytt bekräftelsemail has skickats till %s. För att slutföra Ã¥terställning av ditt konto, kontrollera din inkorg och gÃ¥ till den bifogade länken inom de kommande %s. active_your_account=Aktivera ditt konto account_activated=Kontot har aktiverats -prohibit_login=Inloggning otillÃ¥ten +prohibit_login=Kontot är avstängd resent_limit_prompt=Du har redan begärt ett aktiveringsmejl nyligen. Vänligen vänta 3 minuter och försök igen. has_unconfirmed_mail=Hej %s, du har en obekräftad epostaddress (%s). Om du inte har fÃ¥tt ett bekräftelsemail eller behöver ett nytt, klicka pÃ¥ knappen nedan. resend_mail=Klicka här för att skicka ditt aktiveringsmejl igen email_not_associate=Denna e-postadress är inte knutet till nÃ¥got konto. -send_reset_mail=Skicka mail för kontoÃ¥terställning +send_reset_mail=Skicka mejl för kontoÃ¥terställning reset_password=KontoÃ¥terställning invalid_code=Din bekräftelsekod är ogiltig eller har löpt ut. reset_password_helper=Ã…terställ konto @@ -364,9 +426,24 @@ authorize_title=Ge "%s" tillgÃ¥ng till ditt konto? authorization_failed=Auktorisering misslyckades sspi_auth_failed=SSPI-autentisering misslyckades password_pwned_err=Kunde inte slutföra begäran till HaveIBeenPwned +reset_password_wrong_user = Du är inloggad som %s, men kontoÃ¥terställningslänken är avsedd för %s +invalid_code_forgot_password = Din bekräftelsekod är ogiltig eller har gÃ¥tt ut. Klicka pÃ¥ här för att pÃ¥börja en ny session. +invalid_password = Ditt lösenord matchar inte lösenordet som användes för att skapa kontot. +openid_signin_desc = Ange din OpenID URI. Till exempel: alice.openid.example.org eller https://openid.example.org/alice. +sign_in_openid = Fortsätt med OpenID +hint_login = Har du redan ett konto? Logga in nu! +change_unconfirmed_email_summary = Ändra e-postadressen som aktiveringsmejl skickas till. +change_unconfirmed_email_error = Det gÃ¥r inte att ändra e-postadressen: %v +use_onetime_code = Använde en engÃ¥ngskod +last_admin = Du kan inte ta bort den sista administratören. Det mÃ¥ste finnas minst en administratör. +back_to_sign_in = Tillbaka till Logga in +hint_register = Behöver du ett konto? Registrera ett nu. +prohibit_login_desc = Ditt konto har blivit avstängt frÃ¥n att interagera med instansen. Kontakta instansadministratören för att Ã¥terfÃ¥ tillgÃ¥ng. +password_pwned = Lösenordet du valde finns pÃ¥ en lista över stulna lösenord som tidigare exponerats i offentliga dataintrÃ¥ng. Försök igen med ett annat lösenord och överväg att ändra detta lösenord pÃ¥ annat hÃ¥ll ocksÃ¥. +sign_up_button = Registrera dig. +sign_up_successful = Kontot skapades. Välkommen! [mail] - activate_account=Vänligen aktivera ditt konto activate_email=Verifiera din epostaddress @@ -376,6 +453,14 @@ register_notify=Välkommen till %s reset_password=Ã…terställ ditt konto register_success=Registreringen lyckades +password_change.subject = Ditt lösenord har uppdaterats +password_change.text_1 = Lösenordet för ditt konto ändrades just. +primary_mail_change.subject = Din primära e-postadress har ändrats +activate_account.text_1 = Hej %[1]s, tack för att du registrerat dig hos %[2]s! +reply = eller svara pÃ¥ detta e-postmeddelande direkt +hi_user_x = Hej %s, +admin.new_user.user_info = Användarinformation +admin.new_user.text = Vänligen klicka här för att hantera denna användare frÃ¥n administratörspanelen. @@ -413,8 +498,8 @@ SSPISeparatorReplacement=Avgränsare SSPIDefaultLanguage=StandardsprÃ¥k require_error=fÃ¥r inte vara tomt -alpha_dash_error=` bör endast innehÃ¥lla alfanumeriska tecken, bindestreck ('-') och understreck ('_').` -alpha_dash_dot_error=` bör endast innehÃ¥lla alfanumeriska tecken, bindestreck ('-'), understreck ('_') och punkter ('.').` +alpha_dash_error=` bör endast innehÃ¥lla alfanumeriska tecken, bindestreck ("-") och understreck ("_").` +alpha_dash_dot_error=` bör endast innehÃ¥lla alfanumeriska tecken, bindestreck ("-"), understreck ("_") och punkter (".").` git_ref_name_error=mÃ¥ste vara ett för Git välformaterat referensnamn. size_error=` mÃ¥ste vara av storleken %s` min_size_error=` mÃ¥ste innehÃ¥lla minst %s tecken.` @@ -450,7 +535,7 @@ enterred_invalid_owner_name=Det nya namnet pÃ¥ ägaren är ogiltligt. enterred_invalid_password=Det angivna lösenordet är felaktigt. user_not_exist=Användaren finns inte. team_not_exist=Teamet finns inte. -last_org_owner=Du kan inte ta bort den sista användaren frÃ¥n 'owners' teamet. Det mÃ¥ste finnas minst en ägare för en organisation. +last_org_owner=Du kan inte ta bort den sista användaren frÃ¥n "owners" teamet. Det mÃ¥ste finnas minst en ägare för en organisation. cannot_add_org_to_team=En organisation kan inte läggas till som teammedlem. invalid_ssh_key=Kunde inte verifiera din SSH-nyckel: %s @@ -464,9 +549,9 @@ target_branch_not_exist=MÃ¥lgrenen finns inte. [user] change_avatar=Byt din avatar… repositories=Utvecklingskataloger -activity=Offentlig Aktivitet +activity=Offentlig aktivitet followers_few=%d följare -starred=Stjärnmärkta Utvecklingskataloger +starred=Stjärnmärkta utvecklingskataloger projects=Projekt overview=Översikt following_few=%d följer @@ -482,13 +567,13 @@ account=Konto password=Lösenord security=Säkerhet avatar=Visningsbild -ssh_gpg_keys=SSH / GPG-nycklar +ssh_gpg_keys=SSH/GPG-nycklar social=Sociala konton applications=Applikationer -orgs=Hantera Organisationer +orgs=Organisationer repos=Utvecklingskataloger delete=Radera konto -twofa=TvÃ¥faktorsautentisering +twofa=TvÃ¥faktorsautentisering (TOTP) account_link=Länkade Konton organization=Organisationer @@ -509,16 +594,16 @@ comment_type_group_title=Titel privacy=Sekretess keep_activity_private_popup=Gör aktiviteten endast synlig för dig och administratörerna -lookup_avatar_by_mail=SlÃ¥ upp avatarer med hjälp utav mejladress +lookup_avatar_by_mail=SlÃ¥ upp avatar efter e-postadress federated_avatar_lookup=Förenad uppslagning av avatar -enable_custom_avatar=Aktivera Egen Avatar +enable_custom_avatar=Använd anpassad avatar choose_new_avatar=Välj ny avatar -update_avatar=Uppdatera Avatar -delete_current_avatar=Tag bort aktuell avatar +update_avatar=Uppdatera avatar +delete_current_avatar=Ta bort aktuell avatar uploaded_avatar_not_a_image=Den uppladdade filen är inte en bild. update_avatar_success=Din avatar har blivit uppdaterad. -update_password=Ändra Lösenordet +update_password=Ändra lösenord old_password=Nuvarande lösenord new_password=Nytt lösenord password_incorrect=Det nuvarande lösenordet är felaktigt. @@ -526,18 +611,18 @@ change_password_success=Ditt lösenord har uppdaterats. Logga in med ditt nya l password_change_disabled=Externa användare kan inte ändra sitt lösenord genom Forgejos webbgränssnitt. emails=E-postadresser -manage_emails=Hantera mejladresser -manage_themes=Välj standardtema -manage_openid=Hantera OpenID-adresser -theme_desc=Detta kommer att vara ditt standardtema pÃ¥ webbplatsen. +manage_emails=Hantera e-postadresser +manage_themes=Standardtema +manage_openid=OpenID-adresser +theme_desc=Detta tema kommer att användas för webbgränssnittet när du är inloggad. primary=Primär activated=Aktiverad requires_activation=Aktivering krävs -primary_email=Sätt Som Primär +primary_email=Gör primär activate_email=Skicka aktivering activations_pending=Väntar pÃ¥ aktivering delete_email=Ta Bort -email_deletion=Ta Bort mejladress +email_deletion=Ta bort e-postadress email_deletion_desc=Mejladressen och relaterad information kommer tas bort frÃ¥n ditt konto. Git-commits med denna mejladress förblir oförändrade. Vill du fortsätta? email_deletion_success=Mejladressen har tagits bort. theme_update_success=Ditt tema ändrades. @@ -545,26 +630,26 @@ theme_update_error=Det valda temat finns inte. openid_deletion=Ta bort OpenID-adress openid_deletion_desc=Borttagning av denna OpenID-adress frÃ¥n ditt konto kommer förhindra framtida inloggningar med den. Vill du fortsätta? openid_deletion_success=OpenID-adressen har tagits bort. -add_new_email=Lägg till ny mejladress -add_new_openid=Lägg till ny OpenID URI -add_email=Lägg till mejladress +add_new_email=Lägg till ny e-postadress +add_new_openid=Lägg till ny OpenID-URI +add_email=Lägg till e-postadress add_openid=Lägg till OpenID URI add_email_success=Den nya mejladressen har lagts till. email_preference_set_success=E-postinställningen har uppdaterats. add_openid_success=Den nya OpenID-adressen har lagts till. -keep_email_private=Göm mejladress +keep_email_private=Göm e-postadress openid_desc=OpenID lÃ¥ter dig delegera autentiseringen till en extern leverantör. manage_ssh_keys=Hantera SSH-nycklar manage_gpg_keys=Hantera GPG-nycklar add_key=Lägg till nyckel -ssh_desc=Dessa publika SSH nycklar är associerade med ditt konto. De motsvarande privata nycklarna tillÃ¥ter full Ã¥tkomst till dina utvecklingskataloger. +ssh_desc=Dessa publika SSH nycklar är associerade med ditt konto. De motsvarande privata nycklarna tillÃ¥ter full Ã¥tkomst till dina utvecklingskataloger. SSH-nycklar som har blivit verifierade kan användas för att verifiera SSH-signerade Git-commiter. gpg_desc=Dessa publika GPG nycklar är associerade med ditt konto. HÃ¥ll dina privata nycklar säkra dÃ¥ de tillÃ¥ter att commits kan verifieras. ssh_helper=Behöver du hjälp? Kolla in Github's guide för att skapa din egen SSH-nycklar eller lösa vanliga problem som kan uppstÃ¥ med SSH. gpg_helper=Behöver du hjälp? Ta en titt pÃ¥ Github's guide om GPG. add_new_key=Lägg till SSH-nyckel add_new_gpg_key=Lägg till GPG-nyckel -key_content_gpg_placeholder=Börjar med '-----BEGIN PGP PUBLIC KEY BLOCK-----' +key_content_gpg_placeholder=Börjar med "-----BEGIN PGP PUBLIC KEY BLOCK-----" ssh_key_been_used=Denna SSH-nyckel har redan lagts till pÃ¥ servern. gpg_key_id_used=En publik GPG-nyckel med samma ID existerar redan. gpg_key_verify=Verifiera @@ -596,15 +681,15 @@ ssh_disabled=SSH är inaktiverat manage_social=Hantera länkade sociala konton unbind=Koppla frÃ¥n -manage_access_token=Hantera Ã¥tkomst-tokens -generate_new_token=Generera Nya Tokens +manage_access_token=Ã…tkomsttokens +generate_new_token=Generera ny token tokens_desc=Dessa tokens tillÃ¥ter Ã¥tkomst till ditt konto via Forgejo API. token_name=Tokennamn -generate_token=Generera Token +generate_token=Generera token generate_token_success=Din nya token har genererats. Kopiera nu dÃ¥ den inte kommer visas igen. generate_token_name_duplicate=%s finns redan som programnamn. Välj ett annat. delete_token=Radera -access_token_deletion=Ta bort Ã¥tkomst token +access_token_deletion=Ta bort Ã¥tkomsttoken access_token_deletion_cancel_action=Avbryt access_token_deletion_confirm_action=Radera delete_token_success=Token har tagits bort. Applikationer som använder den kommer inte längre ha Ã¥tkomst till ditt konto. @@ -629,7 +714,7 @@ oauth2_application_create_description=OAuth2-applikationer ger tredjepartsapplik authorized_oauth2_applications=Auktoriserade OAuth2-appar revoke_key=Upphäv -revoke_oauth2_grant=Upphäv Ã¥tkomst +revoke_oauth2_grant=Dra in Ã¥tkomst revoke_oauth2_grant_description=Ã…terkallning av Ã¥tkomst för detta tredjepartsprogram kommer att hindra programmet frÃ¥n att komma Ã¥t dina data. Är du säker? twofa_desc=TvÃ¥faktorsautentisering förbättrar säkerheten pÃ¥ ditt konto. @@ -649,27 +734,27 @@ passcode_invalid=Koden är ogiltig. Försök igen. twofa_enrolled=TvÃ¥faktorsautentisering har aktiverats för ditt konto. Förvara din skrapkod (%s) pÃ¥ en säker plats eftersom den bara visas en gÃ¥ng! -manage_account_links=Hantera Länkade Konton +manage_account_links=Länkade konton manage_account_links_desc=Dessa externa konton är länkade till ditt Forgejo-konto. account_links_not_available=Det finns för närvarande inga externa konton länkade till ditt Forgejo-konto. link_account=Länka konto -remove_account_link=Ta Bort Länkat Konto +remove_account_link=Ta bort länkat konto remove_account_link_desc=Borttagning av länkade konton kommer häva dess Ã¥tkomst till ditt Forgejo-konto. Vill du fortsätta? remove_account_link_success=Det länkade konton har tagits bort. orgs_none=Du är inte en medlem i nÃ¥gon organisation. -delete_account=Radera ditt konto +delete_account=Ta bort ditt konto delete_prompt=Denna Ã¥tgärd kommer ta bort ditt konto permanent. Det KAN INTE Ã¥ngras. -confirm_delete_account=Bekräfta Borttagelsen -delete_account_title=Ta Bort Användarkonto +confirm_delete_account=Bekräfta borttagelse +delete_account_title=Ta bort användarkonto delete_account_desc=Är du säker pÃ¥ att du vill ta bort ditt konto permanent? -email_notifications.enable=Aktivera notiser via mejl +email_notifications.enable=Aktivera notiser via e-post email_notifications.onmention=Endast e-post vid omnämnanden -email_notifications.disable=Inaktivera notiser via mejl -email_notifications.submit=Ställ in e-post inställningar +email_notifications.disable=Inaktivera notiser via e-post +email_notifications.submit=Ställ in e-postpreferenser visibility.public=Offentlig visibility.private=Privat @@ -687,23 +772,23 @@ template_description=Utvecklingskatalogmallar lÃ¥ter användare skapa nya utveck visibility=Synligt för visibility_description=Bara ägaren eller medlemmar i organisationen med rätt rättigheter kommer kunna se det. visibility_helper_forced=Din tjänstadministratör pÃ¥tvingar privata utvecklingskataloger. -visibility_fork_helper=(Ändring av detta kommer pÃ¥verka alla forkar.) +visibility_fork_helper=(Att ändra detta kommer att pÃ¥verka alla forkar.) clone_helper=Hjälp med kloning? Se hjälp. -fork_repo=Forka Repo -fork_from=Forka FrÃ¥n +fork_repo=Forka utveckligskatalog +fork_from=Forka frÃ¥n fork_visibility_helper=Synligheten av en forkad utvecklingskatalog kan inte ändras. use_template=Välj den här mallen -generate_repo=Skapa utvecklingskatalog +generate_repo=Generera utvecklingskatalog generate_from=Generera frÃ¥n repo_desc=Beskrivning repo_lang=SprÃ¥k repo_gitignore_helper=Välj .gitignore-mallar repo_gitignore_helper_desc=Välj vilka filer som inte ska spÃ¥ras frÃ¥n en lista med mallar för vanliga sprÃ¥k. Typiska artefakter som genereras av varje sprÃ¥k byggverktyg ingÃ¥r i .gitignore som standard. -issue_labels=Ärendeetiketter +issue_labels=Etiketter issue_labels_helper=Välj en uppsättning av etiketter license=Licens license_helper=Välj en licensfil -license_helper_desc=En licens styr vad andra kan och inte kan göra med din kod. Inte säker pÃ¥ vilken som är rätt för ditt projekt? Se Välj en licens. +license_helper_desc=En licens styr vad andra kan och inte kan göra med din kod. Inte säker pÃ¥ vilken som är rätt för ditt projekt? Se Välj en licens. readme=README readme_helper=Välj en mall för README-filen readme_helper_desc=Här kan du skriva en fullständig beskrivning för ditt projekt. @@ -714,8 +799,8 @@ default_branch_helper=Den förvalda grenen är bas-gren för pull requests och k mirror_prune=Rensa mirror_prune_desc=Ta bort förlegade fjärrföljande referenser mirror_interval_invalid=Speglingsintervallen är inte giltig. -mirror_address=Klona FrÃ¥n URL -mirror_last_synced=Senaste Synkronisering +mirror_address=Klona frÃ¥n URL +mirror_last_synced=Synkroniserad senast watchers=Observerare stargazers=Stjärnmärkare forks=Förgreningar @@ -736,7 +821,7 @@ desc.internal=Intern desc.archived=Arkiverade template.items=Mallobjekt -template.git_content=Git innehÃ¥ll (Default branch) +template.git_content=Git-innehÃ¥ll (standardgren) template.git_hooks=Githookar template.webhooks=Webbhookar template.topics=Ämnen @@ -749,7 +834,7 @@ archive.issue.nocomment=Den här utvecklingskatalogen är arkiverad. Du kan inte archive.pull.nocomment=Den här utvecklingskatalogen är arkiverad. Du kan inte kommentera pÃ¥ pull-förfrÃ¥gningar. -migrate_options=Migrationsalternativ +migrate_options=Migreringsalternativ migrate_service=Migreringstjänst migrate_items=Migrationsobjekt migrate_items_wiki=Wiki @@ -759,9 +844,9 @@ migrate_items_issues=Ärenden migrate_items_pullrequests=Pull Requester migrate_items_merge_requests=Begäran om sammanslagning migrate_items_releases=Releaser -migrate_repo=Migrera Repot -migrate.clone_address=Migrera Eller Klona FrÃ¥n URL -migrate.clone_address_desc=HTTP(S)- eller Git 'clone' länken för en existerande utvecklingskatalog +migrate_repo=Migrera utvecklingskatalog +migrate.clone_address=Migrera eller klona frÃ¥n URL +migrate.clone_address_desc=HTTP(S)- eller Git "clone" länk för en existerande utvecklingskatalog migrate.clone_local_path=eller en lokal serversökväg migrate.permission_denied=Du fÃ¥r inte importera lokala repon. migrate.failed=Migrering misslyckades: %v @@ -771,7 +856,7 @@ migrated_from_fake=Migrerad frÃ¥n %[1]s migrate.migrate=Migrera frÃ¥n %s migrate.migrating=Migrerar frÃ¥n %s ... migrate.migrating_failed=Migrering frÃ¥n %s misslyckades. -migrate.migrating_issues=Migrerar Ärenden +migrate.migrating_issues=Migrerar ärenden mirror_from=spegling av forked_from=forkad frÃ¥n @@ -785,7 +870,7 @@ watch=Bevaka unstar=Ta bort stjärnmärkning star=Stjärnmärk fork=Förgrening -download_archive=Ladda Ned Utvecklingskatalogen +download_archive=Ladda ner utvecklingskatalogen no_desc=Ingen beskrivning quick_guide=Snabbguide @@ -819,38 +904,38 @@ file_view_raw=Visa i rÃ¥format file_permalink=Permalänk file_too_large=Filen är för stor för att visas. -video_not_supported_in_browser=Din webbläsare stödjer ej HTML5-taggen 'video'. -audio_not_supported_in_browser=Din webbläsare stöder inte taggen 'audio' i HTML5. +video_not_supported_in_browser=Din webbläsare stödjer ej HTML5-taggen "video". +audio_not_supported_in_browser=Din webbläsare stödjer ej HTML5-taggen "audio". stored_lfs=Sparad med Git LFS symbolic_link=Symbolisk länk -commit_graph=Commit-Graf +commit_graph=Commitgraf commit_graph.monochrome=Mono blame=Blame normal_view=Normal vy line=rad lines=rader -editor.new_file=Ny Fil -editor.upload_file=Ladda Upp Fil -editor.edit_file=Redigera Fil +editor.new_file=Ny fil +editor.upload_file=Ladda upp fil +editor.edit_file=Redigera fil editor.preview_changes=Förhandsgranska ändringar editor.cannot_edit_lfs_files=LFS-filer kan inte redigeras i webbgränssnittet. editor.cannot_edit_non_text_files=Binära filer kan inte redigeras genom webbgränssnittet. -editor.edit_this_file=Redigera Fil +editor.edit_this_file=Redigera fil editor.this_file_locked=Filen är lÃ¥st editor.must_be_on_a_branch=Du mÃ¥ste vara pÃ¥ en branch för att göra eller föreslÃ¥ ändringar i denna fil. editor.fork_before_edit=Du mÃ¥ste forka denna utvecklingskatalog för att göra eller föreslÃ¥ förändringar pÃ¥ denna fil. editor.delete_this_file=Ta bort fil editor.must_have_write_access=Du mÃ¥ste ha skrivÃ¥tkomst för att göra eller föreslÃ¥ ändringar av denna fil. editor.name_your_file=Namnge din fil… -editor.filename_help=Lägg till en katalog genom att skriva dess namn följt utav en slash ('/'). Ta bort katalog genom att sudda i början utav fältet. +editor.filename_help=Lägg till en katalog genom att skriva dess namn följt utav ett snedstreck ("/"). Ta bort katalog genom att sudda i början utav fältet. editor.or=eller editor.cancel_lower=Avbryt editor.commit_signed_changes=Committa signerade ändringar editor.commit_changes=Checka in ändringar -editor.add_tmpl=Lägg till '' +editor.add_tmpl=Lägg till '<%s>' editor.commit_message_desc=Lägg till en valfri utökad beskrivning… -editor.commit_directly_to_this_branch=Checka in direkt till grenen %s. +editor.commit_directly_to_this_branch=Checka in direkt till grenen %[1]s. editor.create_new_branch=Skapa en ny gren för denna incheckning och pÃ¥börja en hämtningsbegäran. editor.create_new_branch_np=Skapa en ny branch för den här committen. editor.propose_file_change=FöreslÃ¥ filändring @@ -871,7 +956,7 @@ commits.desc=Bläddra i källkodens förändringshistorik. commits.commits=Incheckningar commits.search=Sök commits… commits.find=Sök -commits.search_all=Alla brancher +commits.search_all=Alla grenar commits.author=Upphovsman commits.message=Meddelande commits.date=Datum @@ -880,7 +965,7 @@ commits.newer=Nyare commits.signed_by=Signerad av commits.signed_by_untrusted_user=Signerad av opÃ¥litlig användare commits.signed_by_untrusted_user_unmatched=Signerad av opÃ¥litlig användare som inte matchar den som committat -commits.gpg_key_id=GPG-nyckel ID +commits.gpg_key_id=GPG-nyckel-ID commitstatus.pending=Väntande @@ -895,7 +980,7 @@ projects.new=Nytt projekt projects.deletion=Ta bort projekt projects.deletion_success=Projektet har tagits bort. projects.edit=Redigera projekt -projects.modify=Uppdatera projekt +projects.modify=Redigera projekt projects.type.none=Ingen projects.template.desc=Projektmall projects.type.uncategorized=Okatergoriserad @@ -910,10 +995,10 @@ issues.filter_milestones=Filtrera milstolpe issues.filter_projects=Filtrera projekt issues.filter_labels=Filtrera etikett issues.filter_reviewers=Filtrera granskare -issues.new=Nytt Ärende +issues.new=Nytt ärende issues.new.title_empty=Titeln kan inte vara tom issues.new.labels=Etiketter -issues.new.no_label=Ingen Etikett +issues.new.no_label=Inga etiketter issues.new.clear_labels=Rensa etiketter issues.new.projects=Projekt issues.new.clear_projects=Rensa projekt @@ -922,26 +1007,26 @@ issues.new.open_projects=Öppna projekt issues.new.closed_projects=Stängda projekt issues.new.no_items=Inga objekt issues.new.milestone=Milsten -issues.new.no_milestone=Ingen Milsten +issues.new.no_milestone=Ingen milstolpe issues.new.clear_milestone=Rensa milstenar -issues.new.open_milestone=Öppna Milstenar -issues.new.closed_milestone=Stängda Milstenar +issues.new.open_milestone=Öppna milstolpar +issues.new.closed_milestone=Stängda milstolpar issues.new.assignees=Tilldelade issues.new.clear_assignees=Rensa tilldelade -issues.new.no_assignees=Ingen tilldelad +issues.new.no_assignees=Inga tilldelade issues.new.no_reviewers=Inga granskare issues.choose.get_started=Kom igÃ¥ng issues.choose.open_external_link=Öppna issues.choose.blank=Standard issues.choose.blank_about=Skapa ett ärende frÃ¥n standardmall. -issues.no_ref=Ingen Branch/Tag specificerad -issues.create=Skapa Ärende +issues.no_ref=Ingen gren/etikett specificerad +issues.create=Skapa ärende issues.new_label=Ny etikett issues.new_label_placeholder=Etikettsnamn issues.new_label_desc_placeholder=Beskrivning -issues.create_label=Skapa Etikett +issues.create_label=Skapa etikett issues.label_templates.title=Ladda en fördefinierad uppsättning etiketter -issues.label_templates.info=Inga etiketter finns ännu. Skapa en etikett med 'Ny etikett' eller använd fördefinierade etiketter: +issues.label_templates.info=Inga etiketter finns ännu. Skapa en etikett med "Ny etikett" eller använd fördefinierade etiketter: issues.label_templates.helper=Markera en uppsättning etiketter issues.label_templates.use=Använd etikettsamling issues.add_milestone_at=`lade till denna till milstolpe %s %s` @@ -1001,20 +1086,20 @@ issues.commented_at=`kommenterad %s` issues.delete_comment_confirm=Är du säker pÃ¥ att du vill ta bort den här kommentaren? issues.context.copy_link=Kopiera länk issues.context.quote_reply=Citerat svar -issues.context.reference_issue=Referens i nytt ärende +issues.context.reference_issue=Hänvisa till i nytt ärende issues.context.edit=Redigera issues.context.delete=Ta bort -issues.close_comment_issue=Kommentera och stäng +issues.close_comment_issue=Stäng med kommentar issues.reopen_issue=Ã…teröppna -issues.reopen_comment_issue=Kommentera och Ã¥teröppna +issues.reopen_comment_issue=Öppna igen med kommentar issues.create_comment=Kommentera issues.closed_at=`stängde ärendet %[2]s` issues.reopened_at=`Ã¥teröppnade detta ärende %[2]s` issues.commit_ref_at=`refererade till detta ärende frÃ¥n en incheckning %[2]s` issues.ref_issue_from=`refererade till detta ärende %[4]s %[2]s` issues.ref_pull_from=`refererade till denna pull-förfrÃ¥gan %[4]s %[2]s` -issues.ref_closing_from=`refererade till en pull-förfrÃ¥gan %[4]s som kommer att stänga detta ärende %[2]s` -issues.ref_reopening_from=`refererade till en pull-förfrÃ¥gan %[4]s som kommer att öppna ärendet pÃ¥ nytt %[2]s` +issues.ref_closing_from=`hänvisade till detta ärende frÃ¥n en pull-förfrÃ¥gan %[4]s som kommer att stänga det %[2]s` +issues.ref_reopening_from=`hänvisade till detta ärende frÃ¥n en pull-förfrÃ¥gan %[4]s som kommer att öppna ärendet pÃ¥ nytt %[2]s` issues.ref_closed_from=`stängde detta ärende %[4]s %[2]s` issues.ref_reopened_from=`öpnnade detta ärende igen %[4]s %[2]s` issues.ref_from=`frÃ¥n %[1]s` @@ -1053,11 +1138,11 @@ issues.lock.unknown_reason=Kan inte lÃ¥sa ärende utan angiven anledning. issues.lock_duplicate=Ett ärende kan inte lÃ¥sas tvÃ¥ gÃ¥nger. issues.unlock_error=Kan inte lÃ¥sa upp ett olÃ¥st ärende. issues.lock_with_reason=lÃ¥st som %s och begränsad konversation till medarbetare %s -issues.lock_no_reason=lÃ¥st och begränsat konversation till kollaboratörer %s +issues.lock_no_reason=lÃ¥st och begränsat konversation till medarbetare %s issues.unlock_comment=lÃ¥s upp denna konversation %s issues.lock_confirm=LÃ¥s issues.unlock_confirm=LÃ¥s upp -issues.lock.notice_1=- Andra användare kan inte kommentera detta ärende. +issues.lock.notice_1=- Andra användare kan inte kommentera pÃ¥ detta ärende. issues.lock.notice_2=- Du och andra kollaboratörer med tillgÃ¥ng till denna utvecklingskatalog kan fortfarande skriva kommentarer som andra kan se. issues.lock.notice_3=- Du kan alltid lÃ¥sa upp detta ärende senare. issues.unlock.notice_1=- Alla kommer kunna kommentera detta ärende en gÃ¥ng till. @@ -1083,7 +1168,7 @@ issues.del_time_history=`raderade tillbringad tid %s` issues.add_time_hours=Timmar issues.add_time_minutes=Minuter issues.add_time_sum_to_small=Inge tid har angivits. -issues.time_spent_total=Total Tid Spenderad +issues.time_spent_total=Total tid spenderad issues.time_spent_from_all_authors=`Total Tid Spenderad: %s` issues.due_date=Förfallodatum issues.invalid_due_date_format=Datumsformatet för förfallodatum mÃ¥ste följa 'yyyy-MM-dd'. @@ -1100,7 +1185,7 @@ issues.due_date_not_set=Inget förfallodatum satt. issues.due_date_added=lade till förfallodatumet %s %s issues.due_date_remove=tog bort förfallodatumet %s %s issues.due_date_overdue=Försenad -issues.due_date_invalid=Förfallodatumet är ogiltigt eller utanför gränserna. Använd formatet 'åååå-mm-dd'. +issues.due_date_invalid=Förfallodatumet är ogiltigt eller utanför gränserna. Använd formatet "åååå-mm-dd". issues.dependency.title=Beroenden issues.dependency.add=Lägg till beroende… issues.dependency.cancel=Avbryt @@ -1130,10 +1215,10 @@ issues.review.approve=godkände dessa ändringar %s issues.review.comment=granskad av %s issues.review.left_comment=lämnade en kommentar issues.review.content.empty=Du mÃ¥ste skriva en kommentar som anger de önskade ändringarna. -issues.review.reject=begärda ändringar %s -issues.review.wait=begärdes för granskning %s -issues.review.add_review_request=begärde granskning frÃ¥n %s %s -issues.review.remove_review_request=tog bort granskningsbegäran för %s %s +issues.review.reject=efterfrÃ¥gade ändringar %s +issues.review.wait=efterfrÃ¥gades för granskning %s +issues.review.add_review_request=efterfrÃ¥gade granskning frÃ¥n %[1]s %[2]s +issues.review.remove_review_request=tog bort granskningsförfrÃ¥gan för %[1]s %[2]s issues.review.remove_review_request_self=vägrade att granska %s issues.review.pending=Väntande issues.review.review=Granska @@ -1149,21 +1234,21 @@ issues.content_history.options=Alternativ pulls.desc=Aktivera pull-förfrÃ¥gningar och kodgranskning. -pulls.new=Ny Pull-FörfrÃ¥gan -pulls.compare_changes=Ny Pull-Request +pulls.new=Ny pull-förfrÃ¥gan +pulls.compare_changes=Ny pull-förfrÃ¥gan pulls.compare_changes_desc=Välj branchen att merga in i, och ifrÃ¥n. pulls.compare_base=merga in i pulls.compare_compare=pulla frÃ¥n pulls.filter_branch=Filtrera gren pulls.no_results=Inga resultat hittades. pulls.nothing_to_compare=Dessa brancher är ekvivalenta. Det finns ingen anledning att skapa en pull-request. -pulls.create=Skapa PullförfrÃ¥gan -pulls.title_desc_few=vill sammanfoga %[1]d incheckningar frÃ¥n s[2]s in i %[3]s +pulls.create=Skapa pull-förfrÃ¥gan +pulls.title_desc_few=vill sammanfoga %[1]d incheckningar frÃ¥n s[2]s in i %[3]s pulls.merged_title_desc_few=sammanfogade %[1]d incheckningar frÃ¥n %[2]s in i %[3]s %[4]s pulls.change_target_branch_at=`ändrade mÃ¥l-branch frÃ¥n %s till %s%s` pulls.tab_conversation=Konversation pulls.tab_commits=Incheckningar -pulls.tab_files=Ändrade Filer +pulls.tab_files=Ändrade filer pulls.reopen_to_merge=Vänligen Ã¥teröppna denna Pull-förfrÃ¥gan igen för att utföra sammanfogningen. pulls.cant_reopen_deleted_branch=Denna pull-förfrÃ¥gan kan inte öppnas igen eftersom branchen tagits bort. pulls.merged=Sammanfogat @@ -1200,12 +1285,12 @@ milestones.no_due_date=Inget förfallodatum milestones.open=Öppna milestones.close=Stäng milestones.completeness=%d%% Slutförd -milestones.create=Skapa Milstolpe +milestones.create=Skapa milstolpe milestones.title=Titel milestones.desc=Beskrivning milestones.due_date=Förfallodatum (valfritt) milestones.clear=Rensa -milestones.invalid_due_date_format=Förfallodatumsformatet mÃ¥ste vara 'yyyy-MM-dd'. +milestones.invalid_due_date_format=Förfallodatumsformatet mÃ¥ste vara "åååå-mm-dd". milestones.edit=Redigera milstolpe milestones.edit_subheader=Milstolpar organiserar ärenden och följer utvecklingens fortskridande. milestones.cancel=Avbryt @@ -1233,7 +1318,7 @@ wiki.default_commit_message=Skriv en anteckning om den här uppdateringen (valfr wiki.save_page=Spara sidan wiki.last_commit_info=%s redigerade denna sida %s wiki.edit_page_button=Redigera -wiki.new_page_button=Ny Sida +wiki.new_page_button=Ny sida wiki.back_to_wiki=Tillbaka till wikisidan wiki.delete_page_button=Tag bort sida wiki.page_already_exists=Wiki-sida med samma namn finns redan. @@ -1250,39 +1335,39 @@ activity.period.quarterly=3 mÃ¥nader activity.period.semiyearly=6 mÃ¥nader activity.period.yearly=1 Ã¥r activity.overview=Översikt -activity.active_prs_count_1=%d Aktiv Pull begäran -activity.active_prs_count_n=%d Aktiva Pull begärelser +activity.active_prs_count_1=%d aktiv pull-förfrÃ¥gan +activity.active_prs_count_n=%d aktiva pull-förfrÃ¥gningar activity.merged_prs_count_1=Sammanfogad Pull-förfrÃ¥gan activity.merged_prs_count_n=Sammanfogade Pull-förfrÃ¥gningar -activity.opened_prs_count_1=Föreslagen Pull begäran -activity.opened_prs_count_n=Föreslagna Pull-förfrÃ¥gningar +activity.opened_prs_count_1=Föreslagen pull-förfrÃ¥gan +activity.opened_prs_count_n=Föreslagna pull-förfrÃ¥gningar activity.title.user_1=%d användare activity.title.user_n=%d användare -activity.title.prs_1=%d Pull-begäran -activity.title.prs_n=%d Pull begärelser +activity.title.prs_1=%d pull-förfrÃ¥gningar +activity.title.prs_n=%d pull-förfrÃ¥gningar activity.title.prs_merged_by=%s sammanfogad av %s activity.title.prs_opened_by=%s föreslÃ¥s av %s activity.merged_prs_label=Sammanfogad activity.opened_prs_label=Föreslagen -activity.active_issues_count_1=%d Aktivt ärende -activity.active_issues_count_n=%d Aktiva ärenden +activity.active_issues_count_1=%d aktivt ärende +activity.active_issues_count_n=%d aktiva ärenden activity.closed_issues_count_1=Stängt ärende activity.closed_issues_count_n=Stängda ärenden activity.title.issues_1=%d ärende -activity.title.issues_n=%d Ärenden +activity.title.issues_n=%d ärenden activity.title.issues_created_by=%s skapad av %s activity.closed_issue_label=Stängd activity.new_issues_count_1=Nytt ärende activity.new_issues_count_n=Nya ärenden activity.new_issue_label=Öppnad -activity.title.unresolved_conv_1=%d Olöst konversation -activity.title.unresolved_conv_n=%d Olösta konversationer +activity.title.unresolved_conv_1=%d olöst konversation +activity.title.unresolved_conv_n=%d olösta konversationer activity.unresolved_conv_desc=De nyligen förändrade ärendena och pull-requesterna har inte blivit lösta ännu. activity.unresolved_conv_label=Öppna -activity.title.releases_1=%d release -activity.title.releases_n=%d releaser +activity.title.releases_1=%d utgÃ¥va +activity.title.releases_n=%d utgÃ¥vor activity.title.releases_published_by=%s publicerad av %s -activity.published_release_label=Publicerad +activity.published_release_label=UtgÃ¥va activity.no_git_activity=Det har inte gjorts nÃ¥gra commit under den här perioden. activity.git_stats_exclude_merges=Exkludera merger, activity.git_stats_author_1=%d författare @@ -1322,34 +1407,34 @@ settings.mirror_settings=Inställningar för spegling settings.sync_mirror=Synkronisera nu settings.site=Webbplats -settings.update_settings=Uppdatera inställningar -settings.advanced_settings=Advancerade Inställningar +settings.update_settings=Spara inställningar +settings.advanced_settings=Avancerade Inställningar settings.wiki_desc=Aktivera wiki för utvecklingskatalog -settings.use_internal_wiki=Använd inbyggd Wiki -settings.use_external_wiki=Använd extern Wiki -settings.external_wiki_url=Extern Wiki-URL +settings.use_internal_wiki=Använd inbyggd wiki +settings.use_external_wiki=Använd extern wiki +settings.external_wiki_url=URL till extern wiki settings.external_wiki_url_error=Den externa wiki-länken är inte giltig. settings.external_wiki_url_desc=Besökare omdirigeras till den externa wiki-länken när de trycker pÃ¥ wiki-tabben. settings.issues_desc=Aktivera ärendehantering för utvecklingskatalogen settings.use_internal_issue_tracker=Använd inbyggt ärendehanteringssystem settings.use_external_issue_tracker=Använd externt ärendehanteringssystem -settings.external_tracker_url=URL För Extern Ärendehanterare +settings.external_tracker_url=URL för externt ärendehanteringssystem settings.external_tracker_url_error=Länken för ärendehanteringsystemet är inte en giltig länk. settings.external_tracker_url_desc=Besökare dirigeras om till länken för det externa ärendehanteringssystemet när de trycker pÃ¥ ärende-tabben. -settings.tracker_url_format=URL-Format För Extern Ärendehanterare +settings.tracker_url_format=URL-format för externt ärendehanteringssystem settings.tracker_url_format_error=URL-formatet för den extern ärendehanterare är inte en giltig URL. -settings.tracker_issue_style=Externt ärendenummersformat +settings.tracker_issue_style=Externt ärendenummerformat settings.tracker_issue_style.numeric=Numerisk settings.tracker_issue_style.alphanumeric=Alfanumerisk settings.tracker_url_format_desc=Använd variablerna {user}, {repo} och {index} för användarnamn, utvecklingskatalogsnamn och ärenderegister. settings.enable_timetracker=Aktivera tidsredovisning -settings.allow_only_contributors_to_track_time=LÃ¥t endast medarbetare spÃ¥ra tidsredovisning -settings.pulls_desc=Aktivera Pull Requests för utvecklingskatalog +settings.allow_only_contributors_to_track_time=LÃ¥t endast medarbetare spÃ¥ra tid +settings.pulls_desc=Aktivera pull-förfrÃ¥gningar för utvecklingskatalog settings.pulls.ignore_whitespace=Ignorera blanksteg vid konflikter settings.admin_settings=Administratörsinställningar settings.admin_enable_health_check=Aktivera hälsokontroll för utvecklingskataloger (git fsck) settings.admin_enable_close_issues_via_commit_in_any_branch=Stäng ett ärende via en commit gjord i en icke standard-gren -settings.danger_zone=HögrisksomrÃ¥de +settings.danger_zone=Farozon settings.new_owner_has_same_repo=Den nya ägaren har redan ett repo med det namnet. Vänligen välj ett annat namn. settings.convert=Konvertera till vanlig utvecklingskatalog settings.convert_desc=Du kan konvertera denna spegling till en vanlig utvecklingskatalog. Detta kan ej Ã¥ngras. @@ -1363,15 +1448,15 @@ settings.transfer_desc=Överför denna utvecklingskatalog till en användare ell settings.transfer_form_title=Ange utvecklingskatalogens namn för att bekräfta: settings.transfer_notices_1=- Du kommer förlora Ã¥tkomst till denna utvecklingskatalog om du för över den till en individuell användare. settings.transfer_notices_2=- Du kommer behÃ¥lla Ã¥tkomst till utvecklingskatalogen om du för över den till en organisation som du antingen äger eller är delägare i. -settings.transfer_owner=Ny Ägare +settings.transfer_owner=Ny ägare settings.transfer_succeed=Utvecklingskatalogen har flyttats över. settings.trust_model.collaborator=Medarbetare -settings.wiki_delete=Ta bort wiki-data +settings.wiki_delete=Ta bort wikidata settings.wiki_delete_desc=Borttagning av utvecklingskatalogens wiki-data är permanent och kan ej Ã¥ngras. settings.wiki_delete_notices_1=- Detta kommer permanent ta bort och inaktivera utvecklingskatalogens wiki för %s. -settings.confirm_wiki_delete=Ta bort wiki-data +settings.confirm_wiki_delete=Ta bort wikidata settings.wiki_deletion_success=Utvecklingskatalogens wiki-data har blivit borttaget. -settings.delete=Ta Bort Detta Repo +settings.delete=Ta bort denna utvecklingskatalog settings.delete_desc=Borttagning av en utvecklingskatalog är permanent och kan ej Ã¥ngras. settings.delete_notices_1=- Denna Ã¥tgärd kan INTE Ã¥ngras. settings.delete_notices_2=- Denna Ã¥tgärd kommer permanent ta bort utvecklingskatalogen %s inklusive kod, ärenden, kommentarer, wiki-data samt medarbetarinställningar. @@ -1394,12 +1479,12 @@ settings.teams=Grupper settings.add_team_duplicate=Teamet har redan utvecklingskatalogen settings.add_team_success=Teamet har nu tillgÃ¥ng till utvecklingskatalogen. settings.remove_team_success=Teamets Ã¥tkomst till utvecklingskatalogen har tagits bort. -settings.add_webhook=Lägg Till Webbhook +settings.add_webhook=Lägg till webbhook settings.hooks_desc=Webhooks gör automatiskt ett HTTP POST anrop mot en server när vissa Forgejo events triggas. Läs mer om detta i webhooks guiden. -settings.webhook_deletion=Ta bort Webhook +settings.webhook_deletion=Ta bort webbhook settings.webhook_deletion_desc=Borttagning utav en webhook tar även bort dess inställningar och leveranshistorik. Vill du fortsätta? settings.webhook_deletion_success=Webhooken har blivit borttagen. -settings.webhook.test_delivery=Testa Leverans +settings.webhook.test_delivery=Testa leverans settings.webhook.test_delivery_desc=Testa webhooken genom ett testevent. settings.webhook.request=Begäran settings.webhook.response=Svar @@ -1410,19 +1495,19 @@ settings.githook_edit_desc=Om kroken är inaktiv visas exempelinnehÃ¥ll. Inaktiv settings.githook_name=Kroknamn settings.githook_content=KrokinnehÃ¥ll settings.update_githook=Uppdatera krok -settings.add_webhook_desc=Forgejo kommer skicka ett POST anrop med en specificerad Content-Type till mÃ¥ladressen. Läs mer om detta i webhook guiden. +settings.add_webhook_desc=Forgejo kommer skicka ett POST anrop med en specificerad Content-Type till mÃ¥ladressen. Läs mer om detta i webhook-guiden. settings.payload_url=MÃ¥l-URL settings.http_method=HTTP-metod -settings.content_type=POST Content Type +settings.content_type=POST content type settings.secret=Hemlighet settings.slack_username=Användarnamn settings.slack_icon_url=URL för ikon settings.discord_username=Användarnamn settings.discord_icon_url=URL för ikon settings.event_desc=Trigga vid: -settings.event_push_only=Push Events -settings.event_send_everything=Alla events -settings.event_choose=Anpassade events… +settings.event_push_only=Push-händelser +settings.event_send_everything=Alla händelser +settings.event_choose=Anpassade händelser… settings.event_header_repository=Händelser i utvecklingskatalogen settings.event_create=Skapa settings.event_create_desc=Branch eller tagg skapad. @@ -1462,19 +1547,19 @@ settings.title=Titel settings.deploy_key_content=InnehÃ¥ll settings.key_been_used=En distributionsnyckel med identiskt innehÃ¥ller används redan. settings.key_name_used=En distributionsnyckel med samma namn finns redan. -settings.deploy_key_deletion=Ta bort distributionsnyckel +settings.deploy_key_deletion=Ta bort driftsättningsnyckel settings.deploy_key_deletion_desc=Borttagning utav en distributionsnyckel kommer att Ã¥terkalla dess Ã¥tkomst till utvecklingskatalogen. Vill du fortsätta? settings.deploy_key_deletion_success=Distributionsnyckeln har blivit borttagen. settings.branches=Brancher -settings.protected_branch=Branchskydd +settings.protected_branch=Grenskydd settings.protected_branch_can_push=TillÃ¥t push? settings.protected_branch_can_push_yes=Du kan pusha settings.protected_branch_can_push_no=Du kan inte pusha -settings.branch_protection=Branchskydd för '%s' +settings.branch_protection=Skyddsregler för gren "%s" settings.protect_this_branch=Aktivera branchskydd -settings.protect_disable_push=Inaktivera Push +settings.protect_disable_push=Inaktivera push settings.protect_disable_push_desc=Inga push-förfrÃ¥gningar kommer att tillÃ¥tas till denna branch. -settings.protect_enable_push=Aktivera Push +settings.protect_enable_push=Aktivera push settings.protect_enable_push_desc=Alla med skrivrättigheter kommer att kunna pusha till denna branch (men inte force-pusha). settings.protect_whitelist_deploy_keys=Vitlista deploy-nyckar med skrivÃ¥tkomst till push. settings.protect_whitelist_users=Vitlistade användare för pushning @@ -1491,33 +1576,33 @@ settings.protect_check_status_contexts_list=Statuskontroller funna under senaste settings.protect_required_approvals=Godkännanden som krävs settings.protect_approvals_whitelist_users=Vitlistade granskare settings.protect_approvals_whitelist_teams=Vitlistade team för granskning -settings.require_signed_commits=Kräv signerade commits +settings.require_signed_commits=Kräv signerade commiter settings.require_signed_commits_desc=Avvisa pushar till den här grenen om dom är osignerade eller inte verifierbara. settings.add_protected_branch=Aktivera skydd settings.delete_protected_branch=Inaktivera skydd -settings.protected_branch_deletion=Inaktivera skydd för branch +settings.protected_branch_deletion=Inaktivera grenskydd settings.protected_branch_deletion_desc=Genom att inaktivera branchskyddet tillÃ¥ts användare med skrivrättigheter att pusha till branchen. Vill du fortsätta? settings.default_branch_desc=Välj en standard branch för Pull Requests och Code Commits: settings.choose_branch=Välj en branch… settings.no_protected_branch=Det finns inga skyddade brancher. settings.edit_protected_branch=Ändra settings.protected_branch_required_approvals_min=Antal erforderliga godkännanden kan inte vara negativa. -settings.bot_token=Bot Token +settings.bot_token=Bottoken settings.chat_id=Chatt-ID settings.matrix.room_id=Rum-ID settings.matrix.message_type=Typ av meddelande -settings.archive.button=Arkivera förrÃ¥d -settings.archive.header=Arkivera detta förrÃ¥d +settings.archive.button=Arkivera utvecklingskatalog +settings.archive.header=Arkivera denna utvecklingskatalog settings.archive.success=FörrÃ¥det arkiverades. settings.archive.error=Ett fel uppstod när utvecklingskatalogen arkiverades. Se loggen för fler detaljer. settings.archive.error_ismirror=Du kan inte arkivera ett speglat förrÃ¥d. -settings.archive.branchsettings_unavailable=Inställningar för grenar är inte tillgängliga om förrÃ¥det arkiverats. +settings.archive.branchsettings_unavailable=Inställningar för grenar är inte tillgängliga för arkiverade utvecklingskataloger. settings.update_avatar_success=Utvecklingskatalogens avatar har uppdaterats. settings.lfs=LFS settings.lfs_filelist=LFS filer lagrade i denna utvecklingskatalog settings.lfs_no_lfs_files=Inga LFS filer är lagrade i denna utvecklingskatalog settings.lfs_findcommits=Hitta commits -settings.lfs_lfs_file_no_commits=Ingen commit hittad för denna LFS fil +settings.lfs_lfs_file_no_commits=Ingen commit hittad för denna LFS-fil settings.lfs_locks=LÃ¥s settings.lfs_invalid_locking_path=Ogiltig sökväg: %s settings.lfs_invalid_lock_directory=Kan inte lÃ¥sa katalog: %s @@ -1526,18 +1611,18 @@ settings.lfs_lock=LÃ¥s settings.lfs_lock_path=Filväg att lÃ¥sa... settings.lfs_locks_no_locks=Inga lÃ¥s settings.lfs_force_unlock=Tvinga upplÃ¥sning -settings.lfs_pointers.sha=Blob SHA +settings.lfs_pointers.sha=Blobhash settings.lfs_pointers.oid=OID settings.lfs_pointers.inRepo=I utvecklingskatalogen settings.rename_branch_failed_not_exist=Kan inte byta namn pÃ¥ branchen %s eftersom den inte finns. -diff.browse_source=Bläddra i källkod +diff.browse_source=Bläddra källkod diff.parent=förälder diff.commit=incheckning diff.git-notes=Anteckningar -diff.data_not_available=Diff Content ej tillgänglig -diff.show_split_view=Delad Vy -diff.show_unified_view=Unifierad Vy +diff.data_not_available=Diff-innehÃ¥ll ej tillgänglig +diff.show_split_view=Delad vy +diff.show_unified_view=Unifierad vy diff.whitespace_button=Blanksteg diff.whitespace_show_everything=Visa alla ändringar diff.whitespace_ignore_all_whitespace=Ignorera blanksteg när rader jämförs @@ -1553,12 +1638,12 @@ diff.file_image_height=Höjd diff.file_byte_size=Storlek diff.file_suppressed=Filskillnaden har hÃ¥llits tillbaka eftersom den är för stor diff.comment.placeholder=Lämna en kommentar -diff.comment.markdown_info=Styling med markdown stöds. +diff.comment.markdown_info=Stilisering med Markdown stöds. diff.comment.add_single_comment=Lägg till en kommentar diff.comment.add_review_comment=Lägg till kommentar diff.comment.start_review=Starta granskning diff.comment.reply=Svara -diff.review=Granska +diff.review=Slutför granskning diff.review.placeholder=Granskningskommentar diff.review.comment=Kommentar diff.review.approve=Godkänn @@ -1567,12 +1652,12 @@ diff.committed_by=committad av releases.desc=Följ projektversioner och nerladdningar. release.releases=Släpp -release.new_release=Nytt Släpp +release.new_release=Ny utgÃ¥va release.draft=Utkast -release.prerelease=Försläpp +release.prerelease=FörutgÃ¥va release.stable=Stabil release.compare=Jämför -release.edit=redigera +release.edit=Redigera release.ahead.commits=%d committer release.ahead.target=till %s sedan denna utgÃ¥va release.source_code=Källkod @@ -1581,23 +1666,23 @@ release.edit_subheader=Releaser organiserar projektversioner. release.tag_name=Taggnamn release.target=MÃ¥l release.tag_helper=Välj en existerande tagg eller skapa en ny tagg. -release.prerelease_desc=Markera som en Pre-Release +release.prerelease_desc=Markera som en förutgÃ¥va release.prerelease_helper=Markera denna Release olämpliga för användning i produktion. release.cancel=Avbryt -release.publish=Publicera Släpp -release.save_draft=Spara Utkast -release.edit_release=Uppdatera Release -release.delete_release=Ta bort Release -release.deletion=Ta bort Release +release.publish=Publicera utgÃ¥va +release.save_draft=Spara utkast +release.edit_release=Uppdatera utgÃ¥va +release.delete_release=Ta bort utgÃ¥va +release.deletion=Ta bort utgÃ¥va release.deletion_success=Releasen har blivit raderad. release.tag_name_already_exist=En release med denna tagg existerar redan. release.tag_name_invalid=Taggnamnet är inte giltigt. release.downloads=Nedladdningar release.download_count=Nedladdningar: %s -branch.name=Branch namn +branch.name=Grennamn branch.delete_head=Radera -branch.delete_html=Radera branch +branch.delete_html=Ta borg gren branch.create_branch=Skapa branchen %s branch.deleted_by=Raderad av %s @@ -1614,7 +1699,7 @@ settings.enter_repo_name = Ange ägar- och utvecklingskatalog-namnet exakt som d [org] org_name_holder=Organisationsnamn -org_full_name_holder=Organisationens Fullständiga Namn +org_full_name_holder=Fullständigt organisationsnamn org_name_helper=Organisationsnamn bör vara korta och enkla att komma ihÃ¥g. create_org=Skapa organisation repo_updated=Uppdaterad %s @@ -1622,10 +1707,10 @@ members=Medlemmar teams=Grupper lower_members=medlemmar lower_repositories=utvecklingskataloger -create_new_team=Nytt Team -create_team=Skapa Team +create_new_team=Nytt lag +create_team=Skapa lag org_desc=Beskrivning -team_name=Gruppnamn +team_name=Lagnamn team_desc=Beskrivning team_name_helper=Teamnamn bör vara korta och lätta att komma ihÃ¥g. team_desc_helper=Beskriv syftet eller rollen för teamet. @@ -1652,7 +1737,7 @@ settings.update_settings=Uppdatera inställningar settings.update_setting_success=Organisationsinställningarna har uppdaterats. settings.update_avatar_success=Organisationens avatar har uppdateras. settings.delete=Tag bort organisation -settings.delete_account=Tag bort denna organisation +settings.delete_account=Ta bort denna organisationen settings.delete_prompt=Organisationen kommer tas bort permanent, och det gÃ¥r INTE att Ã¥ngra detta! settings.confirm_delete_account=Bekräfta borttagning settings.delete_org_title=Ta bort organisation @@ -1663,9 +1748,9 @@ settings.labels_desc=Lägg till etiketter som kan användas till ärenden för < members.membership_visibility=Synlighet för medlemskap: members.public=Synlig -members.public_helper=gör dold +members.public_helper=Gör dold members.private=Dold -members.private_helper=gör synlig +members.private_helper=Gör synlig members.member_role=Medlemsroll: members.owner=Ägare members.member=Medlem @@ -1686,18 +1771,18 @@ teams.admin_access_helper=Medlemmar kan pulla och pusha till teamets utvecklings teams.no_desc=Detta team har ingen beskrivning teams.settings=Inställningar teams.owners_permission_desc=Ägare har full Ã¥tkomst till alla utvecklingskataloger och har administratörsÃ¥tkomst till organisationen. -teams.members=Teammedlemmar +teams.members=Lagmedlemmar teams.update_settings=Uppdatera inställningar -teams.delete_team=Ta bort team -teams.add_team_member=Lägg till teammedlem -teams.delete_team_title=Ta bort team +teams.delete_team=Ta bort lag +teams.add_team_member=Lägg till lagmedlem +teams.delete_team_title=Ta bort lag teams.delete_team_desc=Borttagning av ett team Ã¥terkallar Ã¥tkomsten till utvecklingskatalogen för dess medlemmar. Vill du fortsätta? teams.delete_team_success=Teamet har blivit borttaget. teams.read_permission_desc=Medlemskap i detta team ger läsrättigheter: medlemmar kan se och klona teamets utvecklingskataloger. teams.write_permission_desc=Medlemskap i detta team ger skrivrättigheter: medlemmar kan läsa och pusha till teamets utvecklingskataloger. -teams.admin_permission_desc=Medlemskap i detta team ger administratörsrättigheter: medlemmar kan läsa, pusha och lägga till medarbetare till teamets utvecklingskataloger. +teams.admin_permission_desc=Medlemskap i detta lag ger administratörsrättigheter: medlemmar kan läsa frÃ¥n, pusha till och lägga till medarbetare till lagets utvecklingskataloger. teams.create_repo_permission_desc=Vidare sÃ¥ ger detta team Skapa utvecklingskatalog rättigheten: medlemmar can skapa nya utvecklingskataloger i organisationen. -teams.repositories=TeamförrÃ¥d +teams.repositories=Lagets utvecklingskataloger teams.search_repo_placeholder=Sök utvecklingskatalog… teams.remove_all_repos_title=Ta bort alla utvecklingskataloger för teamet teams.remove_all_repos_desc=Detta kommer att ta bort alla utvecklingskataloger frÃ¥n teamet. @@ -1716,10 +1801,10 @@ teams.all_repositories_admin_permission_desc=Detta team beviljar Admin/.well-known/openid-configuration) för att ange slutpunkterna auths.tip.twitter=GÃ¥ till %s, skapa en applikation och försäkra att alternativet "Allow this application to be used to Sign in with Twitter" är aktiverat auths.tip.discord=Registrera en ny applikation pÃ¥ %s -auths.edit=Redigera autensieringskälla +auths.edit=Redigera autentiseringskälla auths.activated=Denna autentiseringskälla är aktiverad auths.update_success=Autentiseringskällan har uppdaterats. -auths.update=Uppdatera autensieringskälla +auths.update=Uppdatera autentiseringskälla auths.delete=Ta bort autentiseringskälla -auths.delete_auth_title=Tag bort denna autentisering +auths.delete_auth_title=Tag bort autentiseringskälla auths.delete_auth_desc=Borttagning av en autensieringskälla förhindrar användare frÃ¥n att använda den för inloggning. Vill du fortsätta? auths.still_in_used=Autentiseringskällan är fortfarande i bruk. Konvertera eller ta bort alla användare som använder denna autentiseringskälla först. auths.deletion_success=Autentiseringskällan har tagits bort. -config.server_config=Server-konfiguration -config.app_name=Sajtens namn -config.app_ver=Forgejo Version -config.app_url=Forgejo Bas-URL -config.custom_conf=Konfigurationsfil -config.offline_mode=Offlineläge -config.disable_router_log=Avaktivera Router Loggning -config.run_user=Kör som användarnamn +config.server_config=Serverkonfiguration +config.app_name=Instansnamn +config.app_ver=Forgejo-version +config.app_url=Bas-URL för Forgejo +config.custom_conf=Sökväg för konfigurationsfil +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.git_version=Git-version config.repo_root_path=Rotsökväg för utvecklingskatalog -config.lfs_root_path=LFS Rotsökväg +config.lfs_root_path=LFS rotsökväg config.log_file_root_path=Sökväg för loggar -config.script_type=Script-typ -config.reverse_auth_user=Motsatt autentiserings användare +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_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_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 @@ -1944,48 +2029,48 @@ config.db_ssl_mode=SSL config.db_path=Sökväg config.service_config=Tjänstkonfiguration -config.register_email_confirm=Kräv mejlbekräftelse för att registrera +config.register_email_confirm=Kräv e-postbekräftelse för att registrera config.disable_register=Inaktivera självregistrering config.enable_openid_signup=Aktivera självregistrering genom OpenID config.enable_openid_signin=Aktivera OpenID-inloggning config.show_registration_button=Visa registreringsknapp -config.require_sign_in_view=Kräv inloggning för att visa sidor -config.mail_notify=Aktivera Mejlnotifikationer +config.require_sign_in_view=Kräv inloggning för att visa innehÃ¥ll +config.mail_notify=Aktivera e-postnotiser config.enable_captcha=Aktivera CAPTCHA -config.active_code_lives=Aktivera livstid för koder -config.default_keep_email_private=Dölj mejladresser som standard +config.active_code_lives=Livstid för aktiveringskoder +config.default_keep_email_private=Dölj e-postadresser som standard config.default_allow_create_organization=TillÃ¥t skapandet utav organisationer som standard config.enable_timetracking=Aktivera tidsredovisning -config.default_enable_timetracking=Aktivera tidredovisning som Standard -config.default_allow_only_contributors_to_track_time=LÃ¥t endast medarbetare spÃ¥ra tidsredovisning -config.no_reply_address=Dold mejldomän +config.default_enable_timetracking=Aktivera tidredovisning som standard +config.default_allow_only_contributors_to_track_time=LÃ¥t endast bidragsgivare spÃ¥ra tid +config.no_reply_address=Dold e-postdomän config.webhook_config=Webbkrokskonfiguration config.queue_length=Kölängd config.deliver_timeout=Tidsfrist för leverans -config.skip_tls_verify=Skippa TLS verifiering +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=Sendmail sökväg +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.send_test_mail=Skicka testmejl config.oauth_config=OAuth-konfiguration config.oauth_enabled=Aktiverad -config.cache_config=Mellanlagringskonfiguration -config.cache_adapter=Mellanlagringsadapter -config.cache_interval=Mellanlagringsintervall -config.cache_conn=Mellanlagringsanslutning +config.cache_config=Cachekonfiguration +config.cache_adapter=Cacheadapter +config.cache_interval=Cacheintervall +config.cache_conn=Cacheanslutning config.session_config=Sessionskonfiguration config.session_provider=Sessionsleverantör config.provider_config=Leverantörskonfiguration -config.cookie_name=Cookie-namn +config.cookie_name=Cookienamn config.gc_interval_time=Tidsintervall för skräpsamling config.session_life_time=Livstid för session config.https_only=Endast HTTPS @@ -1994,21 +2079,21 @@ config.cookie_life_time=Livstid för kaka config.picture_config=Konfiguration för bild och avatar config.picture_service=Bildtjänst config.disable_gravatar=Inaktivera Gravatar -config.enable_federated_avatar=Aktivera Förenad Uppslaging av Profilbilder +config.enable_federated_avatar=Aktivera federerade avatarer config.git_config=Git-konfiguration -config.git_disable_diff_highlight=Inaktivera Diff Syntax Highlight -config.git_max_diff_lines=Max Diff-rader (per fil) -config.git_max_diff_line_characters=Max Diff-tecken (per rad) -config.git_max_diff_files=Max Diff-filer (att visa) +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=Spelgingsuppdateringstimeout -config.git_clone_timeout=Klonoperationstimeout -config.git_pull_timeout=Klonoperationstimeout -config.git_gc_timeout=GC-operationstimeout +config.git_mirror_timeout=Tidsfrist för spegeluppdatering +config.git_clone_timeout=Tidsfrist för kloning +config.git_pull_timeout=Tidsfrist för pull +config.git_gc_timeout=Tidsfrist för skräpsamling -config.log_config=Logg-konfiguration +config.log_config=Loggkonfiguration config.disabled_logger=Inaktiverad config.xorm_log_sql=Logga SQL @@ -2035,18 +2120,26 @@ monitor.queue.settings.submit=Uppdatera inställningar monitor.queue.settings.changed=Inställningar uppdaterade notices.system_notice_list=Systemnotiser -notices.view_detail_header=Visa notisdetaljer -notices.select_all=Markera Alla +notices.view_detail_header=Notisdetaljer +notices.select_all=Markera alla notices.deselect_all=Avmarkera alla -notices.inverse_selection=Invertera Markeringar -notices.delete_selected=Ta Bort Markerade -notices.delete_all=Ta Bort Alla Notiser +notices.inverse_selection=Invertera markeringar +notices.delete_selected=Ta bort markerade +notices.delete_all=Ta bort alla notiser notices.type=Typ notices.type_1=Utvecklingskatalog 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Ã¥ 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 utvecklingskataloger och organisationer där den här användaren finns tillagd som medarbetare. Det förhindrar tillgÃ¥ng till allmänna utvecklingskataloger i den här instansen. +users.is_restricted = Begränsat konto +self_check.database_inconsistent_collation_columns = Databasen använder kollateringen %s, men dessa kolumner använder felanpassade kollateringar. Det kan komma att orsaka oväntade problem. [action] @@ -2059,6 +2152,10 @@ compare_branch=Jämför compare_commits=Jämför %d commits compare_commits_general=Jämför commits mirror_sync_delete=synkade och raderade referens %[2]s pÃ¥ %[3]s frÃ¥n spegel +approve_pull_request = `godkände %[3]s#%[2]s` +create_branch = skapade grenen %[3]s i %[4]s +starred_repo = stjärnmärkte %[2]s +watched_repo = började följa %[2]s [tool] now=nu @@ -2122,9 +2219,6 @@ owner.settings.cleanuprules.enabled=Aktiv [secrets] [actions] - - - runners.name=Namn runners.owner_type=Typ runners.description=Beskrivning @@ -2141,7 +2235,6 @@ runs.commit=Commit [projects] [git.filemode] -; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", … symbolic_link=Symbolisk länk @@ -2149,4 +2242,32 @@ symbolic_link=Symbolisk länk [search] milestone_kind = Sök milstolpar... exact = Exakt -exact_tooltip = Inkludera bara resultat som exakt matchar söktermen \ No newline at end of file +exact_tooltip = Inkludera bara resultat som exakt matchar söktermen +repo_kind = Sök repon... +user_kind = Sök användare... +code_kind = Sök kod... +package_kind = Sök paket... +runner_kind = Sök exekutorer... +branch_kind = Sök grenar... +commit_kind = Sök commiter... +project_kind = Sök projekt... +search = Sök... +type_tooltip = Söktyp +team_kind = Sök lag... +org_kind = Sök organisationer... +issue_kind = Sök ärenden... +regexp_tooltip = Tolka söktermen som ett reguljärt uttryck +code_search_unavailable = Kodsökning är för närvarande inte tillgänglig. Vänligen kontakta webbplatsadministratören. +fuzzy_tooltip = Inkludera resultat som är närliggande till söktermen +no_results = Inga matchande resultat hittades. +code_search_by_git_grep = Nuvarande kodsökningsresultat gjordes med "git grep". Det kan finnas bättre resultat om webbplatsadministratören möjliggör indexering av kod. +fuzzy = Ungefärlig +union = Nyckelord +union_tooltip = Inkludera resultat som matchar nÃ¥got av de med mellanslag sepererade sökorden +pull_kind = Sök ändringsförslag… +regexp = RegExp +keyword_search_unavailable = Sökning pÃ¥ nyckelord är för närvarande inte tillgängligt. Vänligen kontakta webbplatsadministratören. + + +[translation_meta] +test = Det här är en teststräng. Den visas inte i Forgejo UI men används vid testtillfälle. Vänligen skriv in "ok" för att spara tid (eller en intressant fakta du själv väljer) för att nÃ¥ upp till 100% komplett :) \ No newline at end of file diff --git a/options/locale/locale_tr-TR.ini b/options/locale/locale_tr-TR.ini index d5fc65e261..9a8d716083 100644 --- a/options/locale/locale_tr-TR.ini +++ b/options/locale/locale_tr-TR.ini @@ -17,10 +17,10 @@ page=Sayfa template=Åžablon language=Dil notifications=Bildirimler -active_stopwatch=Etkin Zaman Takibi +active_stopwatch=Etkin Zaman Takipçisi tracked_time_summary=Konu listesi süzgeçlerine dayanan takip edilen zamanın özeti create_new=OluÅŸtur… -user_profile_and_more=Profil ve Ayarlar… +user_profile_and_more=Profil ve ayarlar… signed_in_as=GiriÅŸ yapan: enable_javascript=Bu web sitesinin çalışması için JavaScript gereklidir. toc=İçindekiler Tablosu @@ -28,12 +28,12 @@ licenses=Lisanslar return_to_forgejo=Forgejo'ya Dön username=Kullanıcı Adı -email=E-posta Adresi +email=E-posta adresi password=Parola access_token=EriÅŸim Kodu -re_type=Parolayı DoÄŸrula +re_type=Parolayı doÄŸrula captcha=CAPTCHA -twofa=İki AÅŸamalı DoÄŸrulama +twofa=İki aÅŸamalı doÄŸrulama twofa_scratch=İki aÅŸamalı kazınmış kod passcode=Åžifre @@ -59,10 +59,10 @@ new_migrate=Yeni Göç new_mirror=Yeni Yansı new_fork=Yeni Depo Çatalı new_org=Yeni Organizasyon -new_project=Yeni Proje -new_project_column=Yeni Sütun +new_project=Yeni proje +new_project_column=Yeni sütun manage_org=Organizasyonları Yönet -admin_panel=Site Yönetimi +admin_panel=Site yönetimi account_settings=Hesap Ayarları settings=Ayarlar your_profile=Profil @@ -87,9 +87,9 @@ rerun=Yeniden çalıştır rerun_all=Tüm görevleri yeniden çalıştır save=Kaydet add=Ekle -add_all=Tümünü Ekle +add_all=Tümünü ekle remove=Kaldır -remove_all=Tümünü Kaldır +remove_all=Tümünü kaldır remove_label_str=`"%s" öğesini kaldır` edit=Düzenle view=Görüntüle @@ -118,7 +118,7 @@ go_back=Geri Git never=Asla unknown=Bilinmiyor -rss_feed=RSS Beslemesi +rss_feed=RSS yayını pin=Sabitle unpin=Sabitlemeyi kaldır @@ -141,17 +141,17 @@ confirm_delete_selected=Tüm seçili öğeleri gerçekten silmek istiyor musunuz name=İsim value=DeÄŸer -copy_generic = Kopyala +copy_generic = Panoya kopyala filter = Filtrele filter.not_archived = ArÅŸivlenmemiÅŸ filter.clear = Filtreleri Temizle filter.is_archived = ArÅŸivlenmiÅŸ filter.is_mirror = YansılaÅŸtırılmış -filter.is_fork = Çatallanmış -filter.not_fork = Çatallanmamış +filter.is_fork = Çatallar +filter.not_fork = Çatallanmayanlar filter.not_mirror = Yansılanmamış filter.is_template = Åžablon -filter.not_template = Åžablon deÄŸil +filter.not_template = Åžablon olmayan filter.public = Herkese açık filter.private = Gizli more_items = Daha fazla öğe @@ -165,11 +165,12 @@ error413 = Kotanızı doldurdunuz. toggle_menu = Menüyü aç-kapa new_migrate.title = Yeni geçiÅŸ new_migrate.link = Yeni geçiÅŸ +copy_path = Dizini kopyala [aria] -navbar=Gezinti ÇubuÄŸu +navbar=Gezinti çubuÄŸu footer=Alt Bilgi -footer.software=Yazılım Hakkında +footer.software=Bu yazılım hakkında footer.links=BaÄŸlantılar [heatmap] @@ -195,6 +196,12 @@ buttons.ref.tooltip=Bir konuya veya deÄŸiÅŸiklik isteÄŸine deÄŸin buttons.switch_to_legacy.tooltip=Eski düzenleyiciyi kullan buttons.enable_monospace_font=EÅŸaralıklı yazıtipini etkinleÅŸtir buttons.disable_monospace_font=EÅŸaralıklı yazıtipini devre dışı bırak +buttons.new_table.tooltip = Tablo ekle +table_modal.header = Tablo ekle +table_modal.placeholder.header = BaÅŸlık +table_modal.placeholder.content = İçerik +table_modal.label.rows = Satırlar +table_modal.label.columns = Sütunlar [filter] string.asc=A - Z @@ -214,7 +221,6 @@ app_desc=Zahmetsiz, kendi sunucunuzda barındırabileceÄŸiniz Git servisi install=Kurulumu kolay install_desc=Platformunuz için ikili dosyayı çalıştırın, Docker ile yükleyin veya paket olarak edinin. platform=Farklı platformlarda çalışablir -platform_desc=Forgejo Go ile derleme yapılabilecek her yerde çalışmaktadır: Windows, macOS, Linux, ARM, vb. Hangisini seviyorsanız onu seçin! lightweight=Hafif lightweight_desc=Forgejo'nın minimal gereksinimleri çok düşüktür ve ucuz bir Raspberry Pi üzerinde çalışabilmektedir. Makine enerjinizden tasarruf edin! license=Açık Kaynak @@ -225,12 +231,12 @@ install=Kurulum title=BaÅŸlangıç Yapılandırması docker_helper=EÄŸer Forgejo'yı Docker içerisinde çalıştırıyorsanız, lütfen herhangi bir deÄŸiÅŸiklik yapmadan önce belgeleri okuyun. require_db_desc=Forgejo MySQL, PostgreSQL, SQLite3 veya TiDB (MySQL protokolü) gerektirir. -db_title=Veritabanı Ayarları -db_type=Veritabanı Türü +db_title=Veritabanı ayarları +db_type=Veritabanı tipi host=Sunucu user=Kullanıcı adı password=Parola -db_name=Veritabanı Adı +db_name=Veritabanı adı db_schema=Åžema db_schema_helper=Veritabanı varsayılanı için boÅŸ bırakın ("genel"). ssl_mode=SSL @@ -249,16 +255,16 @@ err_admin_name_is_reserved=Yönetici Kullanıcı Adı geçersiz, bu kullanıcı err_admin_name_pattern_not_allowed=Yönetici kullanıcı adı geçersiz, kullanıcı adı ayrılmış bir desenle eÅŸleÅŸiyor err_admin_name_is_invalid=Yönetici Kullanıcı Adı geçersiz -general_title=Genel Ayarlar +general_title=Genel ayarlar app_name=Site BaÅŸlığı app_name_helper=Åžirket adınızı buraya girebilirsiniz. -repo_path=Depo Kök Yolu +repo_path=Depo kök dizini repo_path_helper=Tüm uzak Git depoları bu dizine kaydedilecektir. -lfs_path=Git LFS Kök Yolu +lfs_path=Git LFS kök dizini lfs_path_helper=Git LFS tarafından izlenen dosyalar bu dizinde saklanacaktır. LFS'yi devre dışı bırakmak için boÅŸ bırakın. run_user=Åžu Kullanıcı Olarak Çalıştır run_user_helper=Forgejo'nin çalışacağı iÅŸletim sistemi kullanıcı adı. Bu kullanıcının depo kök yoluna eriÅŸiminin olması gerektiÄŸini unutmayın. -domain=Sunucu Alan Adı +domain=Sunucu alan adı domain_helper=Sunucu için alan adı veya ana bilgisayar adresi. ssh_port=SSH Sunucu Portu ssh_port_helper=SSH sunucusunun dinleyeceÄŸi port numarası. EtkisizleÅŸtimek için boÅŸ bırakın. @@ -270,15 +276,15 @@ log_root_path=Günlük Dosyaları Yolu log_root_path_helper=Günlük dosyaları bu dizine kaydedilecektir. optional_title=İsteÄŸe BaÄŸlı Ayarlar -email_title=E-posta Ayarları -smtp_addr=SMTP Sunucusu -smtp_port=SMTP Portu +email_title=E-posta ayarları +smtp_addr=SMTP sunucusu +smtp_port=SMTP portu smtp_from=E-posta Gönderen smtp_from_helper=Forgejo'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ı +mailer_user=SMTP kullanıcı adı +mailer_password=SMTP parolası register_confirm=Kayıt için E-posta DoÄŸrulaması Gereksin -mail_notify=E-Posta Bildirimlerini EtkinleÅŸtir +mail_notify=E-Posta bildirimlerini etkinleÅŸtir server_service_title=Sunucu ve DiÄŸer Servis Ayarları offline_mode=Yerel Kipi EtkinleÅŸtir offline_mode.description=Üçüncü parti içerik teslim aÄŸlarını etkisizleÅŸtirin ve bütün kaynakları yerelden sunun. @@ -298,11 +304,11 @@ enable_captcha.description=Kullanıcının kendi kendine kaydolması için captc require_sign_in_view=Sayfaları Görüntülemek için GiriÅŸ Yapmak Gereksin require_sign_in_view.description=Sayfa eriÅŸimini giriÅŸ yapmış kullanıcılarla sınırlandır. Ziyaretçiler sadece oturum açma ve kayıt sayfalarını görecektir. admin_setting.description=Bir yönetici hesabı açmak isteÄŸe baÄŸlıdır. İlk kayıt olan kullanıcı kendiliÄŸinden yönetici olacaktır. -admin_title=Yönetici Hesabı Ayarları -admin_name=Yönetici Kullanıcı Adı +admin_title=Yönetici hesabı ayarları +admin_name=Yönetici kullanıcı adı admin_password=Parola -confirm_password=Parolayı DoÄŸrula -admin_email=E-posta Adresi +confirm_password=Parolayı doÄŸrula +admin_email=E-posta adresi install_btn_confirm=Forgejo'u Kur test_git_failed='git' komut testi baÅŸarısız: %v sqlite3_not_available=Bu Gieta sürümü SQLite3 desteklemiyor. Lütfen %s adresinden resmi çalışır sürümü ('gobuild' sürümünü deÄŸil) indirin. @@ -317,7 +323,7 @@ save_config_failed=%v Yapılandırması kaydedilirken hata oluÅŸtu invalid_admin_setting=Yönetici hesap ayarları geçersiz: %v invalid_log_root_path=Log dosya yolu geçersiz: %v default_keep_email_private=E-posta adreslerini varsayılan olarak gizle -default_keep_email_private.description=Yeni kullanıcı hesaplarının e-posta adreslerini varsayılan olarak gizle. +default_keep_email_private.description=Kayıt olunduktan hemen sonra bilgi sızıntısı olmaması için yeni kullanıcı hesaplarının e-posta adreslerini varsayılan olarak gizle. default_allow_create_organization=Varsayılan Olarak Organizasyon OluÅŸturmaya İzin Ver default_allow_create_organization.description=Varsayılan olarak yeni kullanıcı hesaplarının organizasyon oluÅŸturmasına izin ver. default_enable_timetracking=Varsayılan Olarak Zaman Takibini EtkinleÅŸtir @@ -327,7 +333,7 @@ no_reply_address_helper=GizlenmiÅŸ e-posta adresine sahip kullanıcılar için a password_algorithm=Parola Hash Algoritması invalid_password_algorithm=Hatalı parola hash algoritması password_algorithm_helper=Parola hash algoritmasını ayarlayın. Algoritmalar deÄŸiÅŸen gereksinimlere ve güce sahiptirler. argon2 algoritması iyi özelliklere sahip olmasına raÄŸmen fazla miktarda bellek kullanır ve küçük sistemler için uygun olmayabilir. -enable_update_checker=Güncelleme Denetleyicisini EtkinleÅŸtir +enable_update_checker=Güncelleme denetleyicisini etkinleÅŸtir 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: allow_only_external_registration = Sadece dış hizmetler aracılığıyla kullanıcı kaydına izin ver @@ -337,7 +343,7 @@ enable_update_checker_helper_forgejo = release.forgejo.org adresindeki TXT DNS k allow_dots_in_usernames = Kullanıcı isimlerinde noktaya izin ver. Var olan kullanıcıları etkilemez. [home] -uname_holder=Kullanıcı Adı veya E-Posta Adresi +uname_holder=Kullanıcı adı veya e-posta adresi password_holder=Parola switch_dashboard_context=Panoya GeçiÅŸ Yap my_repos=Depolar @@ -390,13 +396,13 @@ forks_one = %d çatal forks_few = %d çatal [auth] -create_new_account=Hesap OluÅŸtur +create_new_account=Hesap oluÅŸtur register_helper_msg=Bir hesabınız var mı? Åžimdi giriÅŸ yapın! social_register_helper_msg=Hesabınız var mı? Hemen baÄŸlayın! disable_register_prompt=Kayıt iÅŸlemi devre dışıdır. Lütfen site yöneticinizle iletiÅŸim kurun. disable_register_mail=Kayıt için e-posta doÄŸrulama devre dışıdır. manual_activation_only=EtkinleÅŸtirmeyi tamamlamak için site yöneticinizle baÄŸlantıya geçin. -remember_me=Bu Aygıtı hatırla +remember_me=Bu cihazı hatırla remember_me.compromised=Oturum açma tokeni artık geçerli deÄŸil, bu ele geçirilmiÅŸ bir hesaba iÅŸaret ediyor olabilir. Lütfen hesabınızda olaÄŸandışı faaliyet olup olmadığını denetleyin. forgot_password_title=Åžifremi unuttum forgot_password=Åžifrenizi mi unuttunuz? @@ -415,7 +421,7 @@ has_unconfirmed_mail=Merhaba %s, doÄŸrulanmamış bir e-posta adresin var (%s 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 -reset_password=Hesap Kurtarma +reset_password=Hesap kurtarma invalid_code=DoÄŸrulama kodunuz geçersiz veya süresi dolmuÅŸ. invalid_code_forgot_password=Onay kodunuz hatalı veya süresi geçmiÅŸ. Yeni bir oturum baÅŸlatmak için buraya tıklayın. invalid_password=Parolanız hesap oluÅŸturulurken kullanılan parolayla eÅŸleÅŸmiyor. @@ -429,9 +435,9 @@ use_scratch_code=Bir çizgi kodu kullanınız twofa_scratch_used=Geçici kodunuzu kullandınız. İki aÅŸamalı ayarlar sayfasına yönlendirildiniz, burada aygıt kaydınızı kaldırabilir veya yeni bir geçici kod oluÅŸturabilirsiniz. twofa_passcode_incorrect=Åžifreniz yanlış. Aygıtınızı yanlış yerleÅŸtirdiyseniz, oturum açmak için çizgi kodunuzu kullanın. twofa_scratch_token_incorrect=Çizgi kodunuz doÄŸru deÄŸildir. -login_userpass=Oturum Aç +login_userpass=Oturum aç tab_openid=Açık Kimlik -oauth_signup_tab=Yeni Hesap OluÅŸtur +oauth_signup_tab=Yeni hesap oluÅŸtur oauth_signup_title=Yeni Hesabı Tamamla oauth_signup_submit=Hesabı Tamamla oauth_signin_tab=Mevcut Hesaba BaÄŸla @@ -467,6 +473,7 @@ sign_up_button = Hemen kaydol. hint_register = Hesaba ihtiyacın var mı? Hemen kaydol. sign_in_openid = OpenID ile giriÅŸ yap hint_login = Mevcut hesabın var mı? Hemen giriÅŸ yap! +use_onetime_code = Tek kullanımlık kod kullan [mail] view_it_on=%s üzerinde görüntüle @@ -544,6 +551,7 @@ account_security_caution.text_1 = EÄŸer bu sizseniz bu e-postayı görmezden gel password_change.subject = Parolanız deÄŸiÅŸti admin.new_user.user_info = Kullanıcı bilgisi admin.new_user.text = Lütfen bu kullanıcıyı admin panelinden yönetmek için buraya tıklayın. +password_change.text_1 = Hesabınızın parolası deÄŸiÅŸti. [modal] yes=Evet @@ -651,6 +659,8 @@ Biography = Biyografi AccessToken = EriÅŸim jetonu Location = Konum Website = Websitesi +admin_cannot_delete_self = Yöneticiyken kullanıcınızı silemezsiniz. Lütfen önce yönetici yetkilerinizi kaldırın. +username_error_no_dots = ` sadece alfanumerik karakterler ("0-9","a-z","A-Z"), tire ("-") ve alt tire ("-") içerebilir. Alfanumerik olmayan karakterlerle baÅŸlayamaz ve bitemez, ayrıca ardışık alfanumerik olmayan karakterler de kullanılamaz.` [user] @@ -691,6 +701,9 @@ 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_1 = Birbirinizden takipten çıkacak ve birbirinizi takip edemeyeceksiniz. +block_user.detail = Bu kullanıcıyı engellediÄŸinizde: [settings] profile=Profil @@ -908,7 +921,7 @@ select_permissions=İzinleri seçin permission_no_access=EriÅŸim Yok permission_read=OkunmuÅŸ permission_write=Okuma ve Yazma -access_token_desc=Seçili token izinleri, yetkilendirmeyi ilgili API yollarıyla sınırlandıracaktır. Daha fazla bilgi için belgeleri okuyun. +access_token_desc=Seçili token izinleri, yetkilendirmeyi ilgili API yollarıyla sınırlandıracaktır. Daha fazla bilgi için belgeleri okuyun. at_least_one_permission=Bir token oluÅŸturmak için en azından bir izin seçmelisiniz permissions_list=İzinler: @@ -1308,7 +1321,8 @@ 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='' eklendi +editor.add_tmpl='<%s>' eklendi +editor.add_tmpl.filename = dosyaadi editor.add=%s Ekle editor.update=%s Güncelle editor.delete=%s Sil @@ -1318,7 +1332,7 @@ editor.fail_to_apply_patch=`"%s" yaması uygulanamıyor` editor.new_patch=Yeni Yama editor.commit_message_desc=İsteÄŸe baÄŸlı uzun bir açıklama ekleyin… editor.signoff_desc=İşleme günlüğü mesajının sonuna iÅŸleyen tarafından imzalanan bir fragman ekleyin. -editor.commit_directly_to_this_branch=DoÄŸrudan %s bölümüne uygula. +editor.commit_directly_to_this_branch=DoÄŸrudan %[1]s bölümüne uygula. editor.create_new_branch=Bu iÅŸleme için yeni bir dal oluÅŸturun ve bir deÄŸiÅŸiklik isteÄŸi baÅŸlatın. editor.create_new_branch_np=Bu iÅŸleme için yeni bir dal oluÅŸtur. editor.propose_file_change=Dosya deÄŸiÅŸikliÄŸi öner @@ -1684,7 +1698,7 @@ issues.error_modifying_due_date=BitiÅŸ tarihi deÄŸiÅŸtirilemedi. issues.error_removing_due_date=BitiÅŸ tarihi silinemedi. issues.push_commit_1=%d iÅŸlemeyi %s ekledi issues.push_commits_n=%d iÅŸlemeyi %s ekledi -issues.force_push_codes=`%[1]s %[2]s hedefinden %[4]s hedefine zorla gönderildi %[6]s` +issues.force_push_codes=`%[1]s %[2]s hedefinden %[4]s hedefine zorla gönderildi %[6]s` issues.force_push_compare=KarşılaÅŸtır issues.due_date_form=yyyy-aa-gg issues.due_date_form_add=BitiÅŸ tarihi ekle @@ -1799,7 +1813,7 @@ pulls.nothing_to_compare=Bu dallar eÅŸit. DeÄŸiÅŸiklik isteÄŸi oluÅŸturmaya gere 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 -pulls.title_desc_few=%[2]s içindeki %[1]d iÅŸlemeyi %[3]s ile birleÅŸtirmek istiyor +pulls.title_desc_few=%[2]s içindeki %[1]d iÅŸlemeyi %[3]s ile birleÅŸtirmek istiyor pulls.merged_title_desc_few=%[4]s %[2]s içindeki %[1]d iÅŸlemeyi %[3]s ile birleÅŸtirdi pulls.change_target_branch_at='hedef dal %s adresinden %s%s adresine deÄŸiÅŸtirildi' pulls.tab_conversation=Sohbet @@ -3663,7 +3677,7 @@ need_approval_desc=DeÄŸiÅŸiklik isteÄŸi çatalında iÅŸ akışı çalıştırmak variables=DeÄŸiÅŸkenler variables.management=DeÄŸiÅŸken Yönetimi -variables.creation=DeÄŸiÅŸken Ekle +variables.creation=DeÄŸiÅŸken ekle 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? @@ -3683,10 +3697,10 @@ runs.no_workflows.quick_start = Gitea İşlem'i nasıl baÅŸlatacağınızı bilm type-1.display_name=KiÅŸisel Proje type-2.display_name=Depo Projesi type-3.display_name=Organizasyon Projesi +deleted.display_name = SilinmiÅŸ proje [git.filemode] changed_filemode=%[1]s → %[2]s -; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", … directory=Dizin normal_file=Normal dosya executable_file=Çalıştırılabilir dosya @@ -3714,4 +3728,7 @@ code_search_unavailable = Kod araması ÅŸu anda kullanıma açık deÄŸildir. Lü issue_kind = Sorunları ara... pull_kind = BirleÅŸtirme isteklerini ara... code_search_by_git_grep = Anlık kod araması sonuçları "git grep" komutu tarafından saÄŸlanmaktadır. Site yöneticisinin kod endekslemesini açması durumunda daha iyi sonuçlar verilmesi mümkün olabilir. -keyword_search_unavailable = Anahtar kelime ile arama ÅŸu anda kullanıma açık deÄŸildir. Lütfen site yöneticisi ile iletiÅŸime geçin. \ No newline at end of file +keyword_search_unavailable = Anahtar kelime ile arama ÅŸu anda kullanıma açık deÄŸildir. Lütfen site yöneticisi ile iletiÅŸime geçin. +fuzzy_tooltip = Arama terimine yakın olan eÅŸleÅŸmeleri dahil et +union_tooltip = BoÅŸlukla ayrılmış anahtar kelime eÅŸleÅŸmelerini dahil et +exact_tooltip = Sadece arama terimiyle tam uyuÅŸan sonuçları dahit et. diff --git a/options/locale/locale_uk-UA.ini b/options/locale/locale_uk-UA.ini index c75f9b4cde..472ce499f1 100644 --- a/options/locale/locale_uk-UA.ini +++ b/options/locale/locale_uk-UA.ini @@ -41,7 +41,7 @@ mirror=Дзеркало new_repo=Ðовий репозиторій new_migrate=Ðова Ð¼Ñ–Ð³Ñ€Ð°Ñ†Ñ–Ñ new_mirror=Ðове дзеркало -new_fork=Ðова розвилка репозиторію +new_fork=Ðовий форк репозиторію new_org=Ðова Ð¾Ñ€Ð³Ð°Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ new_project=Ðовий проєкт manage_org=ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ñ€Ð³Ð°Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñми @@ -108,7 +108,7 @@ enable_javascript = Цей вебÑайт потребує JavaScript. webauthn_press_button = ÐатиÑніть кнопку на ключі безпеки… webauthn_use_twofa = Введіть код Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð· телефону webauthn_error = Ðе вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ñ‚Ð¸ ключ безпеки. -webauthn_error_unknown = ТрапилаÑÑŒ невідома помилка. Будь лаÑка, повторіть Ñпробу. +webauthn_error_unknown = СталаÑÑ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° помилка. Будь лаÑка, повторіть Ñпробу. webauthn_error_unable_to_process = Сервер не зміг обробити запит. webauthn_error_duplicated = Запит із наданим ключем безпеки відхилено. ВпевнітьÑÑ, що цього ключа ще не зареєÑтровано. webauthn_error_empty = Ключ Ñлід ÑкоÑÑŒ назвати. @@ -132,7 +132,7 @@ value = Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ webauthn_insert_key = Під'єднайте ключ безпеки download_logs = Завантажити журнали webauthn_sign_in = ÐатиÑніть кнопку на ключі безпеки. Якщо ключ безпеки не має кнопки, від'єднайте його й під'єднайте ще раз. -webauthn_unsupported_browser = Ваш оглÑдач наразі не підтримує WebAuthn. +webauthn_unsupported_browser = Ваш браузер наразі не підтримує WebAuthn. webauthn_error_insecure = WebAuthn підтримує лише захищені з'єднаннÑ. Ð”Ð»Ñ Ñ‚ÐµÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· HTTP можете викориÑтати origin-Ñ€Ñдок «localhost» чи «127.0.0.1» webauthn_error_timeout = Ключ не вÑтиг зчитатиÑÑŒ протÑгом відведеного терміну. Будь лаÑка, перезавантажте Ñторінку й повторіть Ñпробу. locked = Заблоковано @@ -143,13 +143,13 @@ filter.clear = ОчиÑтити фільтри filter.is_archived = Ðрхівовано filter = Фільтри toggle_menu = Перемкнути видиміÑть меню -confirm_delete_artifact = Ви впевнені, що хочете видалити артефакт "%s"? +confirm_delete_artifact = Ви впевнені, що хочете видалити артефакт «%s»? artifacts = Ðртефакти filter.not_archived = Ðе архівовано filter.public = ЗагальнодоÑтупні filter.private = Приватні more_items = Більше пунктів -remove_label_str = Видалити об'єкт "%s" +remove_label_str = Видалити об'єкт «%s» new_repo.title = Ðовий репозиторій new_migrate.title = Ðова Ð¼Ñ–Ð³Ñ€Ð°Ñ†Ñ–Ñ new_org.title = Ðова Ð¾Ñ€Ð³Ð°Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ @@ -159,13 +159,14 @@ new_org.link = Ðова Ð¾Ñ€Ð³Ð°Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ copy_generic = Скопіювати до буфера обміну show_log_seconds = Показувати Ñекунди show_full_screen = Показувати у повноекранному режимі -filter.is_fork = Розвилки -filter.not_fork = Ðе розвилки +filter.is_fork = Форки +filter.not_fork = Ðе форки filter.is_mirror = Дзеркала filter.not_mirror = Ðе дзеркала filter.not_template = Ðе шаблони error413 = Ви вичерпали Ñвою чаÑтку. invalid_data = ÐедійÑні дані: %v +copy_path = Копіювати шлÑÑ… [aria] footer.software = Про заÑтоÑунок @@ -197,8 +198,14 @@ buttons.disable_monospace_font = Вимкнути моноширинний шр buttons.indent.tooltip = ВклаÑти предмет на один рівень buttons.unindent.tooltip = ВиклаÑти об'єкт на один рівень buttons.mention.tooltip = Згадати кориÑтувача чи команду -buttons.ref.tooltip = ПоÑилатиÑÑŒ на недолік чи на запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ +buttons.ref.tooltip = ПоÑлатиÑÑŒ на задачу чи на запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ buttons.enable_monospace_font = Увімкнути моноширинний шрифт +buttons.new_table.tooltip = Додати таблицю +table_modal.label.columns = Стовпці +table_modal.header = Додати таблицю +table_modal.placeholder.header = Заголовок +table_modal.placeholder.content = ВміÑÑ‚ +table_modal.label.rows = РÑдки [filter] string.asc = Ð - Я @@ -228,7 +235,7 @@ install=Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ title=Початкова ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ docker_helper=Якщо ви запуÑкаєте Forgejo вÑередині Docker, будь лаÑка уважно прочитайте документацію перед тим, Ñк щоÑÑŒ змінити на цій Ñторінці. db_title=ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних -db_type=Вид бази даних +db_type=Тип бази даних host=ХоÑÑ‚ user=Ім'Ñ ÐºÑ€Ð¸Ñтувача password=Пароль @@ -247,13 +254,13 @@ err_empty_db_path=ШлÑÑ… до файлу бази даних SQLite3 не мо no_admin_and_disable_registration=Ви не можете вимкнути реєÑтрацію до ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу адмініÑтратора. err_empty_admin_password=Пароль адмініÑтратора не може бути порожнім. err_empty_admin_email=Електронна адреÑа адмініÑтратора не може бути порожньою. -err_admin_name_is_reserved=Ðеправильне ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача-адмініÑтратора - ім'Ñ Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¾Ð²Ð°Ð½Ðµ +err_admin_name_is_reserved=Ðеправильне ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача-адмініÑтратора — ім'Ñ Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¾Ð²Ð°Ð½Ðµ err_admin_name_pattern_not_allowed=Ім'Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтратора недійÑне, це ім'Ñ Ð¿Ñ–Ð´Ð¿Ð°Ð´Ð°Ñ” під зарезервований шаблон err_admin_name_is_invalid=Ðеправильне ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача-адмініÑтратора general_title=Загальні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ -app_name=Ðазва екземплÑру -app_name_helper=Тут ви можете ввеÑти назву Ñвого екземплÑру. +app_name=Ðазва екземплÑра +app_name_helper=Уведіть тут назву Ñвого екземплÑра. Вона відображатиметьÑÑ Ð½Ð° кожній Ñторінці. repo_path=Коренева тека репозиторію repo_path_helper=Ð’ÑÑ– вилучені Git репозиторії будуть збережені в цей каталог. lfs_path=Кореневий шлÑÑ… Git LFS @@ -299,7 +306,7 @@ enable_captcha.description=Вимагати перевірку CAPTCHA Ð´Ð»Ñ Ñ require_sign_in_view=Вимагати авторизації Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду вміÑту екземплÑра admin_setting.description=Створювати обліковий Ð·Ð°Ð¿Ð¸Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтратора необов'Ñзково. Перший зареєÑтрований кориÑтувач автоматично Ñтає адмініÑтратором. admin_title=ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу адмініÑтратора -admin_name=Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача адмініÑтратора +admin_name=Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача-адмініÑтратора admin_password=Пароль confirm_password=ÐŸÑ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ admin_email=ÐдреÑа електронної пошти @@ -327,14 +334,14 @@ password_algorithm=Ðлгоритм Ñ…ÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ config_location_hint = Ці опції налаштувань будуть збережені в: env_config_keys = ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ñередовища env_config_keys_prompt = Ці змінні Ñередовища будуть також заÑтоÑовані до вашого файлу конфігурації: -invalid_db_table = База даних "%s" недійÑна: %v +invalid_db_table = База даних «%s» недійÑна: %v enable_update_checker = Увімкнути перевірку оновлень require_db_desc = Forgejo вимагає MySQL, PostgreSQL, SQLite3 чи TiDB (протокол MySQL). allow_only_external_registration = Дозволити реєÑтрацію тільки через зовнішні ÑервіÑи require_sign_in_view.description = Обмежити доÑтуп до контенту лише кориÑтувачам, що увійшли. ГоÑті зможуть лише відвідувати Ñторінки автентифікації. password_algorithm_helper = Ð’Ñтановити алгоритм Ñ…ÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð². Ðлгоритми мають різні вимоги та Ñилу. Ðлгоритм argon2 Ñ” доÑить безпечним, проте Ñпоживає багато памʼÑті та Ñ” недоречним Ð´Ð»Ñ Ð¼Ð°Ð»Ð¸Ñ… ÑиÑтем. -app_slogan = ГаÑло екземплÑру -app_slogan_helper = Уведіть гаÑло вашого екземплÑру тут. Залиште порожнім, аби вимкнути. +app_slogan = ГаÑло екземплÑра +app_slogan_helper = Уведіть гаÑло вашого екземплÑра тут. Залиште порожнім, аби вимкнути. run_user_helper = Ð†Ð¼Ê¼Ñ ÐºÐ¾Ñ€Ð¸Ñтувача операційної ÑиÑтеми, від Ñкого запущено Forgejo. Зауважте, що цей кориÑтувач повинен мати доÑтуп до кореневої теки репозиторію. smtp_from_invalid = ÐдреÑа з «ВідправлÑти email від імені» недійÑна allow_dots_in_usernames = Дозволити кориÑтувачам викориÑтовувати крапки у Ñвоїх іменах. Ðе впливає на облікові запиÑи, що вже Ñ–Ñнують. @@ -382,12 +389,12 @@ org_no_results=Відповідних організацій не знайден code_no_results=Відповідний пошуковому запитанню код не знайдено. code_last_indexed_at=ОÑтанні індекÑовані %s relevant_repositories = ВідображаютьÑÑ Ð»Ð¸ÑˆÐµ релевантні репозиторії, переглÑнути результати без фільтру. -relevant_repositories_tooltip = Приховано розвилки, а також Ñховища без теми, значка й опиÑу. +relevant_repositories_tooltip = Приховано форки, а також репозиторії без теми, значка й опиÑу. go_to = Перейти до stars_one = %d зірка stars_few = %d зірок -forks_one = розвилка %d -forks_few = %d розвилок +forks_one = %d форк +forks_few = %d форків [auth] create_new_account=РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу @@ -396,7 +403,7 @@ social_register_helper_msg=Вже Ñ” аккаунт? Зв'Ñжіть його з disable_register_prompt=Вибачте, можливіÑть реєÑтрації відключена. Будь лаÑка, зв'ÑжітьÑÑ Ð· адмініÑтратором Ñайту. disable_register_mail=ÐŸÑ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ñ€ÐµÑ”Ñтрації електронною поштою вимкнено. remember_me=Запам'Ñтати цей приÑтрій -forgot_password_title=Забув пароль +forgot_password_title=Забули пароль forgot_password=Забули пароль? sign_up_now=Потрібен обліковий запиÑ? ЗареєÑтруйтеÑÑ Ð·Ð°Ñ€Ð°Ð·. confirmation_mail_sent_prompt=Ðовий лиÑÑ‚ Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ відправлено на %s, будь лаÑка, перевірте вашу поштову Ñкриньку протÑгом %s Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€ÐµÑ”Ñтрації. @@ -405,12 +412,12 @@ allow_password_change=Вимагати в кориÑтувача змінити reset_password_mail_sent_prompt=Електронний лиÑÑ‚ із підтвердженнÑм надіÑлано %s. Перевірте папку 'Вхідні' в межах наÑтупних %s, щоб завершити Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу. active_your_account=Ðктивувати обліковий Ð·Ð°Ð¿Ð¸Ñ account_activated=Обліковий Ð·Ð°Ð¿Ð¸Ñ Ð°ÐºÑ‚Ð¸Ð²Ð¾Ð²Ð°Ð½Ð¾ -prohibit_login=Вхід заборонений +prohibit_login=Обліковий Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ð¾ resent_limit_prompt=Вибачте, ви вже запроÑили активацію по електронній пошті нещодавно. Будь лаÑка, зачекайте 3 хвилини, а потім Ñпробуйте ще раз. has_unconfirmed_mail=Привіт %s, у Ð²Ð°Ñ Ñ” непідтверджена електронна адреÑа (%s ). Якщо ви не отримали електронний лиÑÑ‚ із підтвердженнÑм або вам потрібно надіÑлати новий, натиÑніть на кнопку нижче. resend_mail=ÐатиÑніть тут, щоб виÑлати лиÑÑ‚ активації знову email_not_associate=Ð¦Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð° пошта не пов'Ñзана ні з одним обліковим запиÑом. -send_reset_mail=ÐадіÑлати електронний лиÑÑ‚ Ð´Ð»Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу +send_reset_mail=ÐадіÑлати лиÑта Ð´Ð»Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ reset_password=Ð’Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу invalid_code=Цей код Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð½ÐµÐ´Ñ–Ð¹Ñний або закінчивÑÑ. reset_password_helper=Відновити обліковий Ð·Ð°Ð¿Ð¸Ñ @@ -425,8 +432,8 @@ twofa_scratch_token_incorrect=Ðевірний одноразовий парол login_userpass=Увійти tab_openid=OpenID oauth_signup_tab=ЗареєÑтрувати обліковий Ð·Ð°Ð¿Ð¸Ñ -oauth_signup_title=Повний новий обліковий Ð·Ð°Ð¿Ð¸Ñ -oauth_signup_submit=Повний обліковий Ð·Ð°Ð¿Ð¸Ñ +oauth_signup_title=Завершити реєÑтрацію +oauth_signup_submit=Завершити oauth_signin_tab=ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñ–Ñнуючий обліковий Ð·Ð°Ð¿Ð¸Ñ oauth_signin_title=Увійдіть, щоб авторизувати пов'Ñзаний обліковий Ð·Ð°Ð¿Ð¸Ñ oauth_signin_submit=Прив'Ñзати обліковий Ð·Ð°Ð¿Ð¸Ñ @@ -462,8 +469,13 @@ openid_signin_desc = Введіть ваше поÑÐ¸Ð»Ð°Ð½Ð½Ñ OpenID. Ðапр invalid_password = Ваш пароль не відповідає тому, що був заданий при Ñтворенні облікового запиÑу. hint_login = Вже маєте обліковий запиÑ? Увійдіть зараз! hint_register = Потрібен обліковий запиÑ? ЗареєÑтруйтеÑÑ Ð·Ð°Ñ€Ð°Ð·. -sign_up_button = ЗареєÑтруватиÑÑŒ зараз. +sign_up_button = ЗареєÑтруватиÑÑ. sign_up_successful = Обліковий Ð·Ð°Ð¿Ð¸Ñ ÑƒÑпішно Ñтворений. Вітаємо! +unauthorized_credentials = Хибні або проÑтрочені дані Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ. Спробуйте ще раз або перейдіть до %s по докладнішу інформацію +use_onetime_code = КориÑтати одноразовий код +oauth.signin.error = Виникла помилка при обробці запиту на авторизацію. Якщо Ñ†Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° буде повторюватиÑÑŒ, звернітьÑÑ Ð´Ð¾ адмініÑтратора Ñайту. +authorization_failed_desc = ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ñ–Ñ Ð½Ðµ відбулаÑÑ: виÑвлено недійÑний запит. Будь лаÑка, звернітьÑÑ Ð´Ð¾ розробника програми, Ñку ви намагалиÑÑ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·ÑƒÐ²Ð°Ñ‚Ð¸. +password_pwned = Вибраний вами пароль Ñ” у ÑпиÑку викрадених паролів, виÑвлених під Ñ‡Ð°Ñ Ð²Ð¸Ñ‚Ð¾ÐºÑ–Ð² даних. Будь лаÑка, Ñпробуйте ще раз з іншим паролем. Варто також змінити цей пароль в інших міÑцÑÑ…. [mail] view_it_on=ПереглÑнути на %s @@ -482,11 +494,11 @@ register_notify=Вітаємо у %s register_notify.title=%[1]s, лаÑкаво проÑимо до %[2]s register_notify.text_1=це ваша е-пошта Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ñ€ÐµÑ”Ñтрації Ð´Ð»Ñ %s! register_notify.text_2=Ви можете ввійти до Ñвого облікового запиÑу, викориÑтовуючи ім'Ñ: %s -register_notify.text_3=Якщо цей обліковий Ð·Ð°Ð¿Ð¸Ñ Ð±ÑƒÐ»Ð¾ Ñтворено Ð´Ð»Ñ Ð²Ð°Ñ, будь лаÑка, Ñпочатку вÑтановіть Ñвій пароль. +register_notify.text_3=Якщо цей обліковий Ð·Ð°Ð¿Ð¸Ñ Ð±ÑƒÐ»Ð¾ Ñтворено не вами, будь лаÑка, Ñпочатку вÑтановіть Ñвій пароль. reset_password=Ð’Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ облікового запиÑу reset_password.title=%s, ви відправили запит на Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу -reset_password.text=Перейдіть за цим поÑиланнÑм, щоб відновити ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ð² %s: +reset_password.text=Перейдіть за цим поÑиланнÑм, щоб відновити Ñвій обліковий Ð·Ð°Ð¿Ð¸Ñ Ð² %s: register_success=РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ ÑƒÑпішна @@ -521,17 +533,31 @@ repo.transfer.subject_to_you=%s бажає передати вам репози repo.transfer.to_you=вам repo.transfer.body=Щоб прийнÑти або відхилити перейдіть до %s або проÑто ігноруйте. -repo.collaborator.added.subject=%s додав Ð²Ð°Ñ Ð´Ð¾ %s -repo.collaborator.added.text=Ви були додані в ÑкоÑті Ñпівавтора репозиторію: +repo.collaborator.added.subject=%s додав Ð²Ð°Ñ Ð´Ð¾ %s в ÑкоÑті Ñпівавтора +repo.collaborator.added.text=Ð’Ð°Ñ Ð´Ð¾Ð´Ð°Ð½Ð¾ в ÑкоÑті Ñпівавтора репозиторію: primary_mail_change.subject = Ваша оÑновна пошта була змінена totp_disabled.subject = TOTP було вимкнено totp_disabled.text_1 = ТимчаÑовий одноразовий пароль (TOTP) на вашому обліковому запиÑÑ– було вимкнено. -password_change.subject = Ваш пароль було уÑпішно змінено -password_change.text_1 = Пароль до вашого облікового запиÑу щойно був змінений. +password_change.subject = Ваш пароль уÑпішно змінено +password_change.text_1 = Пароль до вашого облікового запиÑу було щойно змінено. reply = чи відповіÑти напрÑму з електронної адреÑи admin.new_user.user_info = Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ ÐºÐ¾Ñ€Ð¸Ñтувача admin.new_user.text = Будь лаÑка, натиÑніть тут, щоб керувати цим кориÑтувачем із панелі адмініÑтрації. admin.new_user.subject = Ðовий кориÑтувач %s щойно ввійшов +removed_security_key.text_1 = Ключ безпеки «%[1]s» було щойно видалено з вашого облікового запиÑу. +removed_security_key.subject = Ключ безпеки видалено +team_invite.text_2 = Щоб приєднатиÑÑ Ð´Ð¾ команди, будь лаÑка, перейдіть за поÑиланнÑм: +team_invite.subject = %[1]s запрошує Ð’Ð°Ñ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ Ð´Ð¾ організації %[2]s +team_invite.text_3 = Примітка: Це Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð´Ð»Ñ %[1]s. Якщо Ви не очікували цього запрошеннÑ, можете проігнорувати цей лиÑÑ‚. +team_invite.text_1 = %[1]s запрошує Ð’Ð°Ñ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ Ð´Ð¾ команди %[2]s в організації %[3]s. +primary_mail_change.text_1 = ОÑновну адреÑу електронної пошти вашого облікового запиÑу було змінено на %[1]s. Це означає, що Ñ†Ñ Ð°Ð´Ñ€ÐµÑа більше не отримуватиме ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ облікового запиÑу. +account_security_caution.text_1 = Якщо це були ви, можете Ñміливо знехтувати цим лиÑтом. +account_security_caution.text_2 = Якщо це були не ви, ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ð·Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ÑŒÑÑ Ð¿Ñ–Ð´ загрозою. Будь лаÑка, звʼÑжітьÑÑ Ð· адмініÑтраторами цього Ñайту. +totp_enrolled.subject = Ви задіÑли TOTP Ñк заÑіб двофакторної автентифікації +totp_enrolled.text_1.has_webauthn = Ви щойно задіÑли TOTP Ð´Ð»Ñ Ñвого облікового запиÑу. Ð’ÑÑ– наÑтупні Ñпроби входу вимагатимуть викориÑÑ‚Ð°Ð½Ð½Ñ TOTP Ñк заÑобу двофакторної автентифікації або будь-Ñкого з ваших ключів безпеки. +totp_enrolled.text_1.no_webauthn = Ви щойно задіÑли TOTP Ð´Ð»Ñ Ñвого облікового запиÑу. Ð’ÑÑ– наÑтупні Ñпроби входу вимагатимуть викориÑÑ‚Ð°Ð½Ð½Ñ TOTP Ñк заÑобу двофакторної автентифікації. +totp_disabled.no_2fa = Ðе налаштовано жодного заÑобу двофакторної автентифікації. Це означає, що ви можете входити у Ñвій обліковий Ð·Ð°Ð¿Ð¸Ñ Ð±ÐµÐ· необхідноÑті викориÑтовувати двофакторну автентифікацію. +removed_security_key.no_2fa = Ðе налаштовано жодного заÑобу двофакторної автентифікації. Це означає, що ви можете входити у Ñвій обліковий Ð·Ð°Ð¿Ð¸Ñ Ð±ÐµÐ· необхідноÑті викориÑтовувати двофакторну автентифікацію. [modal] @@ -539,6 +565,7 @@ yes=Так no=ÐÑ– cancel=Відмінити modify=ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ +confirm = Підтвердити [form] UserName=Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача @@ -618,18 +645,39 @@ still_own_packages = Ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ð²Ð¾Ð»Ð¾Ð´Ñ–Ñ” одн org_still_own_packages = ÐžÑ€Ð³Ð°Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð²Ñе ще володіє одним чи більше пакунками, Ñпочатку видаліть Ñ—Ñ…. username_error_no_dots = ` може міÑтити тільки літерно-цифрові Ñимволи («0-9», «a-z», «A-Z»), Ð´ÐµÑ„Ñ–Ñ («-») та підкреÑÐ»ÐµÐ½Ð½Ñ («_»). Ðе може починатиÑÑ Ð°Ð±Ð¾ закінчуватиÑÑ Ð½ÐµÐ»Ñ–Ñ‚ÐµÑ€Ð½Ð¸Ð¼Ð¸ Ñимволами; нелітерні Ñимволи підрÑд також заборонені.` username_error = ` може міÑтити тільки літерно-цифрові Ñимволи («0-9», «a-z», «A-Z»), Ð´ÐµÑ„Ñ–Ñ («-»), підкреÑÐ»ÐµÐ½Ð½Ñ («_») та крапки («.»). Ðе може починатиÑÑ Ð°Ð±Ð¾ закінчуватиÑÑ Ð½ÐµÐ»Ñ–Ñ‚ÐµÑ€Ð½Ð¸Ð¼Ð¸ Ñимволами; нелітерні Ñимволи підрÑд також заборонені.` +Description = ÐžÐ¿Ð¸Ñ +Pronouns = Займенники +Biography = Про Ñебе +FullName = Повне ім'Ñ +Website = ВебÑайт +url_error = `«%s» Ñ” недійÑним поÑиланнÑм.` +To = Ðазва гілки +Location = Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ +AccessToken = Токен доÑтупу +unable_verify_ssh_key = Ðе вдалоÑÑ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¸Ñ‚Ð¸ ключ SSH, перевірте його на наÑвніÑть помилок. +repository_force_private = Увімкнено примуÑову приватніÑть: приватні репозиторії не можна зробити публічними. +must_use_public_key = Ключ, Ñкий ви надали, Ñ” приватним. Будь лаÑка, нікуди не завантажуйте Ñвій приватний ключ. ВикориÑтовуйте заміÑть нього публічний ключ. +openid_been_used = ÐдреÑа OpenID «%s» вже викориÑтовуєтьÑÑ. +still_has_org = Ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ” учаÑником однієї або декількох організацій, Ñпочатку покиньте Ñ—Ñ…. +duplicate_invite_to_team = Цього кориÑтувача вже запрошено Ñк учаÑника команди. +organization_leave_success = Ви уÑпішно покинули організацію %s. +include_error = ` має міÑтити підрÑдок «%s».` +invalid_group_team_map_error = ` Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½ÐµÐ´Ñ–Ð¹Ñне: %s` +unsupported_login_type = Цей тип входу не підтримує Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу. +admin_cannot_delete_self = Ви не можете видалити Ñебе, Ñкщо ви Ñ” адмініÑтратором. Спочатку зніміть із Ñебе права адмініÑтратора. +unset_password = Ð”Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача не вÑтановлено пароль. [user] change_avatar=Змінити Ñвій аватар… repositories=Репозиторії activity=Публічна активніÑть -followers_few=%d читачі +followers_few=%d cтежать starred=Обрані репозиторії watched=ВідÑтежувані репозиторії projects=Проєкт overview=ОглÑд -following_few=%d читає +following_few=%d відÑтежуваних follow=ПідпиÑатиÑÑ unfollow=ВідпиÑатиÑÑ user_bio=Ð‘Ñ–Ð¾Ð³Ñ€Ð°Ñ„Ñ–Ñ @@ -638,6 +686,24 @@ joined_on = РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ %s email_visibility.private = Ваш email видно лише вам Ñ– адмініÑтраторам email_visibility.limited = Вашу е-пошту видно вÑім авторизованим settings = КориÑтувацькі параметри +block_user.detail_3 = Ви не зможете додати один одного в ÑкоÑті Ñпівавтора репозиторію. +show_on_map = Показати це міÑце на мапі +block_user.detail_2 = Цей кориÑтувач не зможе взаємодіÑти з репозиторіÑми, влаÑником Ñких Ñ” ви, а також із задачами та коментарÑми, Ñкі ви Ñтворили. +block_user.detail_1 = Ви припините Ñтежити один за одним Ñ– не зможете підпиÑатиÑÑ Ð¾Ð´Ð¸Ð½ на одного. +block = Заблокувати +unblock = Розблокувати +code = Код +block_user = Заблокувати кориÑтувача +block_user.detail = Зверніть увагу, що Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача має такі наÑлідки: +follow_blocked_user = Ви не можете Ñтежити за цим кориÑтувачем, тому що ви його заблокували або він заблокував ваÑ. +following_one = %d відÑтежуваний +followers_one = %d cтежить +followers.title.one = Cтежить +followers.title.few = Cтежать +following.title.one = ВідÑтежуваний +following.title.few = ВідÑтежувані +form.name_reserved = Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача «%s» зарезервовано. +form.name_chars_not_allowed = Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача «%s» міÑтить неприпуÑтимі Ñимволи. [settings] @@ -702,7 +768,7 @@ emails=ÐдреÑа електронної пошти manage_emails=ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð´Ñ€ÐµÑами ел. пошти manage_themes=Тема за замовчуваннÑм manage_openid=ÐдреÑи OpenID -theme_desc=Ð¦Ñ Ñ‚ÐµÐ¼Ð° буде типовою Ð´Ð»Ñ Ð²Ñього Ñайту. +theme_desc=Ð¦Ñ Ñ‚ÐµÐ¼Ð° буде типовою Ð´Ð»Ñ Ð²ÐµÐ±-інтерфейÑу, коли ви ввійдете в ÑиÑтему. primary=ОÑновний activated=Ðктивовано requires_activation=Потрібна Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ @@ -732,7 +798,7 @@ manage_ssh_keys=Керувати ключами SSH manage_ssh_principals=Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ SSH Ñертифікатами кориÑтувачів manage_gpg_keys=Керувати ключами GPG add_key=Додати ключ -ssh_desc=Ці відкриті SSH-ключі пов'Ñзані з вашим обліковим запиÑом. Відповідні приватні ключі дозволÑють отримати повний доÑтуп до ваших репозиторіїв. +ssh_desc=Ці відкриті ключі SSH повʼÑзані з вашим обліковим запиÑом. Відповідні приватні ключі дозволÑють отримати повний доÑтуп до ваших репозиторіїв. Підтверджені ключі можна викориÑтати Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñ–Ð² Git, підпиÑані з SSH. principal_desc=Ці наÑтройки SSH Ñертифікатів вказані у вашому обліковому запиÑÑ– та надають повний доÑтуп до ваших репозиторіїв. gpg_desc=Ці публічні ключі GPG пов'Ñзані з вашим обліковим запиÑом. Тримайте Ñвої приватні ключі в безпеці, оÑкільки вони дозволÑють здійÑнювати перевірку комітів. ssh_helper=Потрібна допомога? ДивітьÑÑ Ð³Ñ–Ð´ на GitHub з генерації ключів SSH або Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¸Ñ… неполадок SSH. @@ -797,7 +863,7 @@ unbind=Від'єднати manage_access_token=Токени доÑтупу generate_new_token=Згенерувати новий токен tokens_desc=Ці токени надають доÑтуп до вашого облікового запиÑу за допомогою Forgejo API. -token_name=Ім'Ñ Ñ‚Ð¾ÐºÐµÐ½Ñƒ +token_name=Ім'Ñ Ñ‚Ð¾ÐºÐµÐ½Ð° generate_token=Згенерувати токен generate_token_success=Ваш новий токен був Ñтворений. Скопіюйте його зараз, оÑкільки він не буде показаний знову. generate_token_name_duplicate=Ðазва програми %s вже викориÑтовуєтьÑÑ. Будь лаÑка, викориÑтайте нову. @@ -814,7 +880,7 @@ oauth2_applications_desc=Програми OAuth2 дають можливіÑть remove_oauth2_application=Видалити програму OAuth2 remove_oauth2_application_desc=Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ OAuth2 ÑкаÑовує доÑтуп до вÑÑ–Ñ… підпиÑаних маркерів доÑтупу. Продовжити? remove_oauth2_application_success=Програму видалено. -create_oauth2_application=Створити нову програму OAuth2 +create_oauth2_application=Створити новий додаток OAuth2 create_oauth2_application_button=Створити програму oauth2_application_name=Ðазва програми save_application=Зберегти @@ -866,10 +932,10 @@ confirm_delete_account=Підтвердити Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ delete_account_title=Видалити обліковий Ð·Ð°Ð¿Ð¸Ñ delete_account_desc=Ви впевнені, що хочете оÑтаточно видалити цей обліковий запиÑ? -email_notifications.enable=Увімкнути ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ email -email_notifications.onmention=ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ email тільки коли згадують -email_notifications.disable=Вимкнути email ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ -email_notifications.submit=Ðалаштувати параметри email +email_notifications.enable=Увімкнути email-ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ +email_notifications.onmention=Email тільки коли згадують +email_notifications.disable=Вимкнути email-ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ +email_notifications.submit=Зберегти параметри email visibility=ВидиміÑть кориÑтувача visibility.public=Публічний @@ -878,12 +944,12 @@ visibility.private=Приватний saved_successfully = ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑпішно збережено. comment_type_group_time_tracking = Облік чаÑу location_placeholder = ПоділітьÑÑ Ð· іншими, де приблизно ви знаходитеÑÑŒ -biography_placeholder = Розкажіть трохи про Ñебе! (Можете викориÑтати Markdown) +biography_placeholder = Розкажіть трохи про Ñебе! (ПідтримуєтьÑÑ Markdown) hidden_comment_types = Приховані типи коментарів keep_activity_private = Приховати активніÑть зі Ñторінки профілю blocked_users = Заблоковані кориÑтувачі blocked_users_none = Ðемає заблокованих кориÑтувачів. -profile_desc = Керуйте тим, Ñк ваш профіль відображаєтьÑÑ Ñ–Ð½ÑˆÐ¸Ð¼ кориÑтувачам. Ваша оÑновна адреÑа електронної пошти буде викориÑтовуватиÑÑ Ð´Ð»Ñ Ñповіщень, Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ñ‚Ð° операцій з Git через веб-інтерфейÑ. +profile_desc = Про Ñебе retype_new_password = Підтвердіть новий пароль email_desc = Ваша оÑновна адреÑа електронної пошти буде викориÑтовуватиÑÑ Ð´Ð»Ñ Ñповіщень, Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ñ–, за умови, що вона не прихована, Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ð¹ з Git через веб-інтерфейÑ. visibility.limited_tooltip = Видимий(а) тільки Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… кориÑтувачів @@ -899,6 +965,47 @@ revoke_oauth2_grant_success = ДоÑтуп відкликано уÑпішно. twofa_recovery_tip = Якщо ви втратите ваш приÑтрій, ви зможете викориÑтати одноразовий код відновленнÑ, щоб знову отримати доÑтуп до Ñвого облікового запиÑу. webauthn_delete_key_desc = Якщо ви видалите ключ безпеки, ви більше не зможете з ним зайти. Продовжити? change_password = Зміна Ð¿Ð°Ñ€Ð¾Ð»Ñ +email_notifications.andyourown = І ваші влаÑні ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ +visibility.public_tooltip = Видимий(а) Ð´Ð»Ñ Ð²ÑÑ–Ñ… +update_language_not_found = Мова «%s» недоÑтупна. +pronouns = Займенники +pronouns_unspecified = Ðе вказані +hints = Підказки +language.title = Мова за замовчуваннÑм +update_hints = Оновити підказки +update_hints_success = Підказки оновлено. +additional_repo_units_hint = Пропонувати увімкнути додаткові розділи репозиторію +additional_repo_units_hint_description = Показувати підказку «Увімкнути ще» Ð´Ð»Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–Ñ—Ð², у Ñких увімкнено не вÑÑ– доÑтупні розділи. +language.description = Цю мову буде збережено у вашому обліковому запиÑÑ–, вона викориÑтовуватиметьÑÑ Ð¿Ñ–ÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾, Ñк ви ввійдете в ÑиÑтему. +language.localization_project = Допоможіть нам переклаÑти Forgejo вашою мовою! ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ. +permissions_list = Дозволи: +comment_type_group_dependency = ЗалежніÑть +comment_type_group_pull_request_push = Додані коміти +permissions_public_only = Тільки публічні +select_permissions = Виберіть дозволи +permissions_access_all = УÑÑ– (публічні, приватні й обмежені) +create_oauth2_application_success = Ви уÑпішно Ñтворили новий додаток OAuth2. +keep_email_private_popup = Ваша адреÑа електронної пошти не буде відображатиÑÑ Ñƒ вашому профілі Ñ– не буде викориÑтовуватиÑÑ Ð·Ð° замовчуваннÑм Ð´Ð»Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñ–Ð², зроблених через веб-інтерфейÑ, таких Ñк Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð², Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñ–Ð². ÐатоміÑть ви можете викориÑтовувати Ñпеціальну адреÑу %s Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²'Ñзки комітів до Ñвого облікового запиÑу. Ð¦Ñ Ð¾Ð¿Ñ†Ñ–Ñ Ð½Ðµ вплине на Ñ–Ñнуючі коміти. +blocked_since = Заблокований з %s +can_not_add_email_activations_pending = ОчікуєтьÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ, Ñпробуйте ще раз за кілька хвилин, Ñкщо хочете додати нову адреÑу електронної пошти. +ssh_signonly = SSH наразі вимкнено, тому ці ключі викориÑтовуютьÑÑ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ підпиÑу комітів. +uid = UID +at_least_one_permission = Ð”Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð¾ÐºÐµÐ½Ð° необхідно вибрати хоча б один дозвіл +verify_gpg_key_success = Ключ GPG «%s» перевірено. +repos_none = Ви не Ñ” влаÑником жодного репозиторію. +add_gpg_key_success = Ключ GPG «%s» додано. +add_key_success = Ключ SSH «%s» додано. +permission_no_access = Ðемає доÑтупу +permission_write = Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ– Ð·Ð°Ð¿Ð¸Ñ +uploaded_avatar_is_too_big = Розмір завантаженого файлу (%d КіБ) перевищує макÑимальний розмір (%d КіБ). +verify_ssh_key_success = Ключ SSH «%s» перевірено. +ssh_invalid_token_signature = Ðаданий SSH-ключ, Ð¿Ñ–Ð´Ð¿Ð¸Ñ Ð°Ð±Ð¾ токен не збігаютьÑÑ Ð°Ð±Ð¾ токен заÑтарів. +valid_until_date = ДійÑний до %s +added_on = Додано %s +key_signature_ssh_placeholder = ПочинаєтьÑÑ Ð· «-----BEGIN SSH SIGNATURE-----» +user_block_yourself = Ви не можете заблокувати Ñебе. +pronouns_custom_label = Інші займенники +repo_and_org_access = ДоÑтуп до репозиторію та організації [repo] owner=ВлаÑник @@ -907,15 +1014,15 @@ repo_name=Ðазва репозиторію repo_name_helper=Хороші назви репозиторіїв викориÑтовують короткі, унікальні ключові Ñлова що легко запам'Ñтати. repo_size=Розмір репозиторію template=Шаблон -template_select=Оберіть шаблон +template_select=Виберіть шаблон template_helper=Зробити репозиторій шаблоном template_description=Шаблонні репозиторії дозволÑють кориÑтувачам генерувати нові репозиторії із такою ж Ñтруктурою директорій, файлами та додатковими налаштуваннÑми. visibility=ВидиміÑть visibility_description=Тільки влаÑник або члени організації Ñкі мають віповідні права, зможуть побачити. visibility_helper_forced=ÐдмініÑтратор вашого Ñайту налаштував параметри: вÑÑ– нові репозиторії будуть приватними. -visibility_fork_helper=(Ці зміни вплинуть на вÑÑ– розвилки.) +visibility_fork_helper=(Ці зміни вплинуть на вÑÑ– форки.) clone_helper=Потрібна допомога у клонуванні? Відвідайте Ñторінку Допомога. -fork_repo=Форкнути репозиторій +fork_repo=Створити форк репозиторію fork_from=Форк з fork_visibility_helper=Ðеможливо змінити видиміÑть форкнутого репозиторію. use_template=ЗаÑтоÑувати цей шаблон @@ -934,11 +1041,11 @@ issue_labels=Мітки issue_labels_helper=Виберіть набір міток license=Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ license_helper=Виберіть файл ліцензії -license_helper_desc=Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Ñ€ÐµÐ³ÑƒÐ»ÑŽÑ” те, що інші можуть Ñ– не можуть робити з вашим кодом. Ðе впевнені, що Ñаме підходить Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ проєкту? ДивітьÑÑ Ð’Ð¸Ð±ÐµÑ€Ñ–Ñ‚ÑŒ ліцензію. +license_helper_desc=Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Ñ€ÐµÐ³ÑƒÐ»ÑŽÑ” те, що інші можуть Ñ– не можуть робити з вашим кодом. Ðе впевнені, що Ñаме підходить Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ проєкту? ДивітьÑÑ Ð’Ð¸Ð±ÐµÑ€Ñ–Ñ‚ÑŒ ліцензію. readme=README readme_helper=Виберіть шаблон README readme_helper_desc=Це міÑце, де ви можете напиÑати повний Ð¾Ð¿Ð¸Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ проєкту. -auto_init=Ініціалізувати репозиторій (Додає .gitignore, License та README) +auto_init=Ініціалізувати репозиторій trust_model_helper=Виберіть модель довіри Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñу. Можливі варіанти: trust_model_helper_collaborator=Співавтор: підпиÑи довіри від Ñпівавторів trust_model_helper_committer=УчаÑник: довірені підпиÑи учаÑтників @@ -1000,7 +1107,7 @@ template.one_item=Слід обрати хоча б один елемент ша template.invalid=Слід обрати шаблонний репозиторій archive.issue.nocomment=Цей репозиторій архівовано. Ви не можете коментувати задачі. -archive.pull.nocomment=Це архівний репозитарій. Ви не можете коментувати пулл-реквеÑти. +archive.pull.nocomment=Цей репозиторій архівовано. Ви не можете коментувати запити на злиттÑ. form.reach_limit_of_creation_1=Ви вже доÑÑгли ліміту в %d репозиторіїв. form.reach_limit_of_creation_n=Ви доÑÑгли макÑимальної кількоÑті %d Ñтворених репозиторіїв. @@ -1018,11 +1125,11 @@ migrate_items_milestones=Етапи migrate_items_labels=Мітки migrate_items_issues=Задачі migrate_items_pullrequests=Запити на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ -migrate_items_merge_requests=Запити на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ +migrate_items_merge_requests=Запити на об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ migrate_items_releases=Релізи migrate_repo=ПеренеÑти репозиторій migrate.clone_address=ÐœÑ–Ð³Ñ€Ð°Ñ†Ñ–Ñ / клонувати з URL-адреÑи -migrate.clone_address_desc=URL-адреÑа HTTP(S) або Git "clone" Ñ–Ñнуючого Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–Ñ +migrate.clone_address_desc=URL-адреÑа HTTP(S) або Git «clone» Ñ–Ñнуючого репозиторію migrate.clone_local_path=або шлÑÑ… до локального Ñерверу migrate.permission_denied=Вам не дозволено імпортувати локальні репозиторії. migrate.permission_denied_blocked=Ви не можете імпортувати з заборонених вузлів, будь лаÑка, попроÑіть адмініÑтратора перевірити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS. @@ -1132,15 +1239,15 @@ editor.fork_before_edit=Ðеобхідно зробити форк цього Ñ€ editor.delete_this_file=Видалити файл editor.must_have_write_access=Ви повинні мати доÑтуп на Ð·Ð°Ð¿Ð¸Ñ Ñ‰Ð¾Ð± запропонувати зміни до цього файлу. editor.name_your_file=Дайте назву файлу… -editor.filename_help=Щоб додати каталог, наберіть його назву, а потім - коÑу риÑку ('/'). Щоб видалити каталог, перейдіть до початку Ð¿Ð¾Ð»Ñ Ñ– натиÑніть backspace. +editor.filename_help=Щоб додати каталог, наберіть його назву, а потім — коÑу риÑку «/». Щоб видалити каталог, перейдіть до початку Ð¿Ð¾Ð»Ñ Ñ– натиÑніть Backspace. editor.or=або editor.cancel_lower=СкаÑувати editor.commit_signed_changes=ВнеÑти підпиÑані зміни editor.commit_changes=Закомітити зміни -editor.add_tmpl=Додати «» +editor.add_tmpl=Додати «<%s>» editor.commit_message_desc=Додати необов'Ñзковий розширений опиÑ… editor.signoff_desc=Додати повідомленню в журналі комітів Ñ€Ñдок Signed-off-by від Ñвого імені. -editor.commit_directly_to_this_branch=Зробіть коміт прÑмо в гілку %s. +editor.commit_directly_to_this_branch=Зробіть коміт прÑмо в гілку %[1]s. editor.create_new_branch=Створити нову гілку Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ коміту та відкрити запит на злиттÑ. editor.create_new_branch_np=Створити нову гілку Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ коміту. editor.propose_file_change=Запропонувати зміну файлу @@ -1152,7 +1259,7 @@ editor.commit_empty_file_header=Закомітити порожній файл editor.commit_empty_file_text=Файл, в комміті порожній. Продовжити? editor.no_changes_to_show=Ðема змін Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ. editor.fail_to_update_file_summary=Помилка: -editor.push_rejected_summary=Повне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ відмову: +editor.push_rejected_summary=Повне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ відхиленнÑ: editor.add_subdir=Додати каталог… editor.no_commit_to_branch=Ðе вдалоÑÑ Ð²Ð½ÐµÑти коміт безпоÑередньо до гілки, тому що: editor.user_no_push_to_branch=КориÑтувач не може здійÑнити пуш до гілки @@ -1163,7 +1270,7 @@ commits.commits=Коміти commits.nothing_to_compare=Ці гілки однакові. commits.search=Знайти коміт… commits.find=Пошук -commits.search_all=УÑÑ– гілки +commits.search_all=У вÑÑ–Ñ… гілках commits.author=Ðвтор commits.message=ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ commits.date=Дата @@ -1199,7 +1306,7 @@ projects.type.none=Ðемає projects.type.basic_kanban=Спрощений канбан projects.type.bug_triage=Ð¡Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº projects.template.desc=Шаблон -projects.template.desc_helper=Оберіть шаблон проєкту, аби почати +projects.template.desc_helper=Виберіть шаблон проєкту, аби почати projects.type.uncategorized=Без категорії projects.column.edit_title=Ðазва projects.column.new_title=Ðазва @@ -1411,7 +1518,7 @@ issues.error_modifying_due_date=Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ дату за issues.error_removing_due_date=Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ дату завершеннÑ. issues.push_commit_1=додав %d коміт %s issues.push_commits_n=додав %d коміти(-ів) %s -issues.force_push_codes=`примуÑово залито %[1]s з %[2]s до %[4]s %[6]s` +issues.force_push_codes=`примуÑово залито %[1]s з %[2]s до %[4]s %[6]s` issues.force_push_compare=ПорівнÑти issues.due_date_form=рррр-мм-дд issues.due_date_form_add=Додати дату Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ @@ -1497,8 +1604,8 @@ pulls.nothing_to_compare=Ці гілки однакові. Ðемає необх pulls.nothing_to_compare_and_allow_empty_pr=Одинакові гілки. Цей PR буде порожнім. pulls.has_pull_request=`Запит Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð´Ð»Ñ Ñ†Ð¸Ñ… гілок вже Ñ–Ñнує: %[2]s#%[3]d` pulls.create=Створити запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ -pulls.title_desc_few=хоче злити %[1]d комітів з %[2]s в %[3]s -pulls.merged_title_desc_few=злито %[1]d комітів з %[2]s до %[3]s %[4]s +pulls.title_desc_few=хоче об'єднати %[1]d комітів з %[2]s в %[3]s +pulls.merged_title_desc_few=об'єднав %[1]d комітів з %[2]s в %[3]s %[4]s pulls.change_target_branch_at=`змінена цільова гілка з %s на %s %s` pulls.tab_conversation=ÐžÐ±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ pulls.tab_commits=Коміти @@ -1530,7 +1637,7 @@ pulls.reject_count_1=%d запит на зміну pulls.reject_count_n=%d запити на зміну pulls.waiting_count_1=очікуєтьÑÑ %d Ñ€ÐµÑ†ÐµÐ½Ð·Ñ–Ñ pulls.waiting_count_n=очікуєтьÑÑ %d рецензії(й) -pulls.wrong_commit_id=id коміту повинен бути id коміту в цільовій гілці +pulls.wrong_commit_id=ID коміта повинен бути ID коміта в цільовій гілці pulls.no_merge_desc=Цей запити на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ злити, оÑкільки вÑÑ– параметри об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾. pulls.no_merge_helper=Увімкніть параметри Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð² налаштуваннÑÑ… Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–Ñ Ð°Ð±Ð¾ злийте запити на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð²Ñ€ÑƒÑ‡Ð½Ñƒ. @@ -1546,13 +1653,13 @@ pulls.merge_commit_id=ID коміту Ð·Ð»Ð¸Ñ‚Ñ‚Ñ pulls.require_signed_wont_sign=Гілка вимагає підпиÑаних комітів, але це Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð½Ðµ буде підпиÑано pulls.invalid_merge_option=Цей параметр Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð½Ðµ можна викориÑтовувати Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Pull Request'а. -pulls.merge_conflict=Ð—Ð»Ð¸Ñ‚Ñ‚Ñ Ð½Ðµ вдалоÑÑ: Був конфлікт при злиттÑ. Підказка: Ñпробуйте іншу Ñтратегію +pulls.merge_conflict=Ðе вдалоÑÑ Ð¾Ð±'єднати: при об'єднанні виник конфлікт. Підказка: Ñпробуйте іншу Ñтратегію pulls.merge_conflict_summary=ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку -pulls.rebase_conflict=Ð—Ð»Ð¸Ñ‚Ñ‚Ñ Ð½Ðµ вдалоÑÑ: відбувÑÑ ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ під Ñ‡Ð°Ñ Ð·Ð»Ð¸Ñ‚Ñ‚Ñ: %[1]s. Підказка: Ñпробуйте іншу Ñтратегію +pulls.rebase_conflict=Ðе вдалоÑÑ Ð¾Ð±'єднати: виник конфлікт під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ±Ð°Ð·ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ð°: %[1]s. Підказка: Ñпробуйте іншу Ñтратегію pulls.rebase_conflict_summary=ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку -pulls.unrelated_histories=Помилка злиттÑ: head та base Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð½Ðµ мають Ñпільної Ñ–Ñторії. Підказка: Ñпробуйте іншу Ñтратегію -pulls.merge_out_of_date=Помилка злиттÑ: base було оновлено, поки відбувалоÑÑ Ð·Ð»Ð¸Ñ‚Ñ‚Ñ. Підказка: Ñпробуйте знову. -pulls.push_rejected_summary=Повне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ відмову +pulls.unrelated_histories=Ðе вдалоÑÑ Ð¾Ð±'єднати: head та base Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð½Ðµ мають Ñпільної Ñ–Ñторії. Підказка: Ñпробуйте іншу Ñтратегію +pulls.merge_out_of_date=Ðе вдалоÑÑ Ð¾Ð±'єднати: base було оновлено, поки відбувалоÑÑ Ð¾Ð±'єднаннÑ. Підказка: Ñпробуйте знову. +pulls.push_rejected_summary=Повне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ pulls.open_unmerged_pull_exists=`Ви не можете знову відкрити, оÑкільки вже Ñ–Ñнує запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ (%d) з того ж Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–Ñ Ð· тією ж інформацією про Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ñ– в очікуванні.` pulls.status_checking=ДеÑкі перевірки знаходÑтьÑÑ Ð½Ð° розглÑді pulls.status_checks_success=Ð’ÑÑ– перевірки були уÑпішними @@ -1636,8 +1743,8 @@ activity.period.yearly=1 рік activity.overview=ОглÑд activity.active_prs_count_1=%d активний запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ activity.active_prs_count_n=%d активних запитів на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ -activity.merged_prs_count_1=Злитий запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ -activity.merged_prs_count_n=Злиті запити на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ +activity.merged_prs_count_1=Об'єднаний запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ +activity.merged_prs_count_n=Об'єднані запити на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ activity.opened_prs_count_1=Запропонований запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ activity.opened_prs_count_n=Запропонованих запитів на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ activity.title.user_1=%d кориÑтувачем @@ -1726,9 +1833,9 @@ settings.site=Веб-Ñайт settings.update_settings=Зберегти Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ settings.branches.update_default_branch=Оновити гілку за замовчуваннÑм settings.advanced_settings=Додаткові Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ -settings.wiki_desc=Увімкнути репозиторії Вікі -settings.use_internal_wiki=ВикориÑтовувати вбудовані Вікі -settings.use_external_wiki=ВикориÑтовувати зовнішні Вікі +settings.wiki_desc=Увімкнути вікі репозиторію +settings.use_internal_wiki=ВикориÑтовувати вбудовану вікі +settings.use_external_wiki=ВикориÑтовувати зовнішню вікі settings.external_wiki_url=URL зовнішньої вікі settings.external_wiki_url_error=Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ URL-адреÑа wiki не Ñ” допуÑтимою URL-адреÑою. settings.external_wiki_url_desc=Відвідувачі будуть перенаправлені на URL-адреÑу, коли вони клацають по вкладці. @@ -1778,7 +1885,7 @@ settings.transfer_notices_1=- Ви втратите доÑтуп до репоз settings.transfer_notices_2=- Ви збережете доÑтуп, Ñкщо новим влаÑником Ñтане організаціÑ, влаÑником Ñкої ви Ñ”. settings.transfer_notices_3=- Якщо репозиторій Ñ” приватним Ñ– передаєтьÑÑ Ð¾ÐºÑ€ÐµÐ¼Ð¾Ð¼Ñƒ кориÑтувачеві, Ñ†Ñ Ð´Ñ–Ñ Ð³Ð°Ñ€Ð°Ð½Ñ‚ÑƒÑ”, що кориÑтувач має хоча б дозвіл на Ñ‡Ð¸Ñ‚Ð°Ð½Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð°Ñ€Ñ–ÑŽ (Ñ– при необхідноÑті змінює права дозволів). settings.transfer_owner=Ðовий влаÑник -settings.transfer_perform=ЗдіÑнити перенеÑÐµÐ½Ð½Ñ +settings.transfer_perform=ЗдійÑнити перенеÑÐµÐ½Ð½Ñ settings.transfer_started=`Цей репозиторій чекає Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ½ÐµÑÐµÐ½Ð½Ñ Ð²Ñ–Ð´ "%s"` settings.transfer_succeed=Репозиторій був перенеÑений. settings.signing_settings=Параметри перевірки підпиÑу @@ -1796,7 +1903,7 @@ settings.trust_model.collaboratorcommitter.desc=ДопуÑтимі Ð¿Ñ–Ð´Ð¿Ð¸Ñ settings.wiki_delete=Видалити вікі-дані settings.wiki_delete_desc=Будьте уважні! Як тільки ви видалите Вікі - шлÑху назад не буде. settings.wiki_delete_notices_1=- Це назавжди знищить Ñ– відключить wiki Ð´Ð»Ñ %s. -settings.confirm_wiki_delete=Видалити Вікі-дані +settings.confirm_wiki_delete=Видалити вікі-дані settings.wiki_deletion_success=Дані wiki були видалені. settings.delete=Видалити цей репозиторій settings.delete_desc=Будьте уважні! Як тільки ви видалите репозиторій - шлÑху назад не буде. @@ -1888,7 +1995,7 @@ settings.event_pull_request_desc=Запит до Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¾, settings.event_pull_request_assign=ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ settings.event_pull_request_assign_desc=Запит про Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ або ÑкаÑовано. settings.event_pull_request_label=Мітки -settings.event_pull_request_label_desc=Мітка запиту на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð° або очищена. +settings.event_pull_request_label_desc=Мітки запиту на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ або очищено. settings.event_pull_request_milestone=Запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ на етап settings.event_pull_request_milestone_desc=Запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ на етап або видалений з етапу. settings.event_pull_request_comment=Коментарі @@ -1910,8 +2017,8 @@ settings.hook_type=Тип хука settings.slack_token=Токен settings.slack_domain=Домен settings.slack_channel=Канал -settings.deploy_keys=Ключі Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ -settings.add_deploy_key=Додати ключ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ +settings.deploy_keys=Ключі Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ +settings.add_deploy_key=Додати ключ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ settings.deploy_key_desc=Ключі Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупні тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ. Це не те ж Ñаме що Ñ– SSH-ключі аккаунта. settings.is_writable=Увімкнути доÑтуп Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу settings.is_writable_info=Чи може цей ключ бути викориÑтаний Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ push в репозиторій? Ключі Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð¶Ð´Ð¸ мають доÑтуп на pull. @@ -1920,7 +2027,7 @@ settings.title=Заголовок settings.deploy_key_content=ЗміÑÑ‚ settings.key_been_used=ЗміÑÑ‚ ключа Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ð¶Ðµ викориÑтовуєтьÑÑ. settings.key_name_used=Ключ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð· таким заголовком вже Ñ–Ñнує. -settings.deploy_key_deletion=Видалити ключ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ +settings.deploy_key_deletion=Видалити ключ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ settings.deploy_key_deletion_desc=Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° розгортки унеможливить доÑтуп до Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–Ñ Ð· його допомогою. Ви впевнені? settings.deploy_key_deletion_success=Ключі Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð±ÑƒÐ»Ð¾ видалено. settings.branches=Гілки @@ -1931,9 +2038,9 @@ settings.protected_branch_can_push_no=Ви не можете виконуват settings.branch_protection=Правила захиÑту Ð´Ð»Ñ Ð³Ñ–Ð»ÐºÐ¸ «%s» settings.protect_this_branch=ЗахиÑтити цю гілку settings.protect_this_branch_desc=Запобігає видаленню гілки та обмежує Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð² ній push та злиттÑ. -settings.protect_disable_push=Заборонити Push +settings.protect_disable_push=Заборонити push settings.protect_disable_push_desc=Ð”Ð»Ñ Ñ†Ñ–Ñ”Ñ— гілки буде заборонено Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ push. -settings.protect_enable_push=Дозволити Push +settings.protect_enable_push=Дозволити push settings.protect_enable_push_desc=Будь-хто із правом запиÑу зможе виконувати push Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— гілки (за виключеннÑм force push). settings.protect_whitelist_committers=Білий ÑпиÑок Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Push settings.protect_whitelist_committers_desc=Лише кориÑтувачі та команди з білого ÑпиÑку зможуть виконувати push в цій гілці (за виключенÑм force push). @@ -1942,10 +2049,10 @@ settings.protect_whitelist_users=КориÑтувачі, Ñкі можуть Ñ€ settings.protect_whitelist_search_users=Пошук кориÑтувачів… settings.protect_whitelist_teams=Команди, учаÑники Ñких можуть робити push в цю гілку settings.protect_whitelist_search_teams=Пошук команд… -settings.protect_merge_whitelist_committers=Обмежити право на прийнÑÑ‚Ñ‚Ñ Pull Request'ів в цю гілку ÑпиÑком +settings.protect_merge_whitelist_committers=Обмежити право на об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ ÑпиÑком settings.protect_merge_whitelist_committers_desc=Ви можете додавати кориÑтувачів або цілі команди в 'білий' ÑпиÑок цієї гілки. Тільки приÑутні в ÑпиÑку зможуть приймати запити на злиттÑ. Ð’ іншому випадку будь-хто з правами запиÑу до головного репозиторію буде володіти такою можливіÑтю. -settings.protect_merge_whitelist_users=КориÑтувачі з правом на прийнÑÑ‚Ñ‚Ñ Pull Request'ів в цю гілку -settings.protect_merge_whitelist_teams=Команди, Ñким дозволено Ð·Ð»Ð¸Ñ‚Ñ‚Ñ +settings.protect_merge_whitelist_users=КориÑтувачі з правом на об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ +settings.protect_merge_whitelist_teams=Команди, Ñким дозволено об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ settings.protect_check_status_contexts=Увімкнути перевірку Ñтану settings.protect_check_status_contexts_desc=Вимагати уÑпішного Ð¿Ñ€Ð¾Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¾Ðº Ñтану перед злиттÑм. Оберіть перевірки Ñтану, Ñкі Ñлід провеÑти Ð´Ð»Ñ Ð³Ñ–Ð»Ð¾Ðº, перед Ñ—Ñ… об'єднаннÑм з гілкою, що відповідає цьому правилу. Коли цей пункт увімкнено, коміти Ñпершу надÑилаютьÑÑ Ð´Ð¾ іншої гілки, а потім зливаютьÑÑ Ð°Ð±Ð¾ надÑилаютьÑÑ Ð±ÐµÐ·Ð¿Ð¾Ñередньо до гілки, Ñка відповідає цьому правилу піÑÐ»Ñ ÑƒÑпішного Ð¿Ñ€Ð¾Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¾Ðº Ñтану. Якщо не вибрано контекÑÑ‚, оÑтанній коміт має уÑпішно проходити перевірки, незалежно від контекÑту. settings.protect_check_status_contexts_list=Перевірки ÑтатуÑу знайдено Ð´Ð»Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð°Ñ€Ñ–ÑŽ за минулий тиждень @@ -1970,7 +2077,7 @@ settings.block_on_official_review_requests_desc=ÐžÐ±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶ settings.block_outdated_branch=Блокувати злиттÑ, Ñкщо запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð·Ð°Ñтарів settings.block_outdated_branch_desc=Ð—Ð»Ð¸Ñ‚Ñ‚Ñ Ð±ÑƒÐ´Ðµ неможливим, коли головна гілка позаду оÑновної. settings.default_branch_desc=Головна гілка Ñ” 'базовою' Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ репозиторіÑ, на Ñку за замовчуваннÑм ÑпрÑмовані вÑÑ– запити на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ñ– Ñка Ñ” обличчÑм вашого репозиторіÑ. Перше, що побачить відвідувач - це зміÑÑ‚ головної гілки. Виберіть Ñ—Ñ— з уже Ñ–Ñнуючих: -settings.default_merge_style_desc=Стиль Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð·Ð° замовчуваннÑм +settings.default_merge_style_desc=Стиль об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ð° замовчуваннÑм settings.choose_branch=Оберіть гілку… settings.no_protected_branch=Ðемає захищених гілок. settings.edit_protected_branch=Редагувати @@ -1994,8 +2101,8 @@ settings.archive.header=Ðрхівувати цей репозиторій settings.archive.success=Репозиторію уÑпішно приÑвоєно ÑÑ‚Ð°Ñ‚ÑƒÑ Ð°Ñ€Ñ…Ñ–Ð²Ð½Ð¾Ð³Ð¾. settings.archive.error=СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при Ñпробі архівувати репозиторій. Докладнішу інформацію див. у журналі. settings.archive.error_ismirror=Ðеможливо архівувати дзеркальний репозиротрій. -settings.archive.branchsettings_unavailable=Параметри гілки не доÑтупні, Ñкщо репозиторій архівний. -settings.archive.tagsettings_unavailable=Параметри міток недоÑтупні, Ñкщо репозиторій архівний. +settings.archive.branchsettings_unavailable=Параметри гілки недоÑтупні в архівованих репозиторіÑÑ…. +settings.archive.tagsettings_unavailable=Параметри міток недоÑтупні в архівованих репозиторіÑÑ…. settings.update_avatar_success=Ðватар репозиторію оновлений. settings.lfs=LFS settings.lfs_filelist=Файли LFS, Ñкі зберігаютьÑÑ Ð² цьому репозиторії @@ -2004,7 +2111,7 @@ settings.lfs_findcommits=Знайти коміти settings.lfs_lfs_file_no_commits=Ðе знайдено комітів Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ файлу LFS settings.lfs_noattribute=Цей шлÑÑ… не має атрибуту Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð² гілці за замовчуваннÑм settings.lfs_delete=Видалити файл LFS з OID %s -settings.lfs_delete_warning=Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ LFS може Ñпричинити помилки "Об'єкт не Ñ–Ñнує" під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸. Ви впевнені? +settings.lfs_delete_warning=Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ LFS може Ñпричинити помилки «Об'єкт не Ñ–Ñнує» під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸. Ви впевнені? settings.lfs_findpointerfiles=Знайти файли-поÑÐ¸Ð»Ð°Ð½Ð½Ñ settings.lfs_locks=Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ settings.lfs_invalid_locking_path=ÐеприпуÑтимий шлÑÑ…: %s @@ -2063,7 +2170,7 @@ diff.load=Завантажити різницю diff.generated=згенерований diff.vendored=Ñторонній diff.comment.placeholder=Залишити коментар -diff.comment.markdown_info=Ð¡Ñ‚Ð¸Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð· markdown підтримуєтьÑÑ. +diff.comment.markdown_info=ПідтримуєтьÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñ‚ÐºÐ° Markdown. diff.comment.add_single_comment=Додати проÑтий коментар diff.comment.add_review_comment=Додати коментар diff.comment.start_review=Розпочати рецензію @@ -2092,7 +2199,7 @@ release.compare=ПорівнÑти release.edit=Редагувати release.ahead.commits=%d коміт(ів) release.ahead.target=до %s з моменту цього випуÑку -release.source_code=Код +release.source_code=Вихідний код release.new_subheader=ÐŸÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ Ñ€ÐµÐ»Ñ–Ð·Ñ–Ð² допоможе вам організувати верÑÑ–ÑŽ проєкту. release.edit_subheader=ÐŸÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ Ñ€ÐµÐ»Ñ–Ð·Ñ–Ð² допоможе вам організувати верÑÑ–ÑŽ проєкту. release.tag_name=Ðазва тегу @@ -2158,7 +2265,7 @@ find_file.go_to_file = Знайти файл visibility_helper = Зробити репозиторій приватним projects.card_type.desc = Попередній виглÑд карток projects.card_type.text_only = Лише текÑÑ‚ -projects.card_type.images_and_text = Світлини та текÑÑ‚ +projects.card_type.images_and_text = Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ– текÑÑ‚ issues.filter_poster = Ðвтор issues.author = Ðвтор issues.author_helper = Цей кориÑтувач - автор. @@ -2223,9 +2330,158 @@ settings.tracker_issue_style.regexp_pattern = Шаблон регулÑрног settings.tracker_issue_style.regexp = РегулÑрний вираз release.download_count_one = %s Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ release.download_count_few = %s завантажень +release.invalid_external_url = Ðеправильна Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ URL-адреÑа: «%s» +issues.role.collaborator_helper = Цього кориÑтувача запрошено до Ñпівпраці над репозиторієм. +settings.add_collaborator_owner = Ðеможливо додати влаÑника в ÑкоÑті Ñпівавтора. +settings.protect_status_check_patterns = Шаблони перевірки Ñтану +issues.role.collaborator = Співавтор +pulls.auto_merge_cancel_schedule = СкаÑувати автоматичне об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ +issues.comment_pull_merged_at = об'єднав коміт %[1]s в %[2]s %[3]s +pulls.title_desc_one = хоче об'єднати %[1]d коміт з %[2]s в %[3]s +settings.merge_style_desc = Стилі об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ +pulls.auto_merge_when_succeed = Об'єднувати автоматично, Ñкщо вÑÑ– перевірки проходÑть уÑпішно +pulls.cmd_instruction_merge_title = Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ +settings.protect_enable_merge = Увімкнути об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ +pulls.merged_success = Запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ ÑƒÑпішно об'єднано Ñ– закрито +pulls.auto_merge_button_when_succeed = (Якщо перевірки проходÑть уÑпішно) +editor.commit_id_not_matching = Файл було змінено, поки ви його редагували. Зробіть коміт у нову гілку, а потім об'єднайте. +settings.event_pull_request_merge = Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ +pulls.auto_merge_canceled_schedule = Ðвтоматичне об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ ÑкаÑовано Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ запиту на злиттÑ. +pulls.auto_merge_not_scheduled = Цей запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð½Ðµ заплановано Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ об'єднаннÑ. +pulls.merged_title_desc_one = об'єднав %[1]d коміт з %[2]s в %[3]s %[4]s +pulls.fast_forward_only_merge_pull_request = Тільки fast-forward +pulls.merged_by = від %[3]s об'єднано %[1]s +issues.comment_manually_pull_merged_at = вручну об'єднав коміт %[1]s в %[2]s %[3]s +pulls.merged_by_fake = від %[2]s об'єднано %[1]s +pulls.clear_merge_message = ОчиÑтити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ +pulls.cmd_instruction_merge_desc = Об'єднайте зміни й оновіть Ñ—Ñ… на Forgejo. +pulls.is_ancestor = Цю гілку вже включено в цільову гілку. Ðічого об'єднувати. +pulls.has_merged = Помилка: запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð²Ð¶Ðµ об'єднано, неможливо об'єднати знову чи змінити цільову гілку. +pulls.head_out_of_date = Ðе вдалоÑÑ Ð¾Ð±'єднати: head було оновлено, поки відбувалоÑÑ Ð¾Ð±'єднаннÑ. Підказка: Ñпробуйте знову. +no_eol.tooltip = У цьому файлі відÑутній Ñимвол Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ñ€Ñдка (EOL) у кінці. +settings.trust_model.committer.desc = ДопуÑтимі підпиÑи будуть позначатиÑÑ Ñк «довірені», тільки Ñкщо вони відповідають автору коміта, в іншому випадку вони позначатимутьÑÑ Ñк «невідповідні». Це змуÑить Forgejo бути автором підпиÑаних комітів, а фактичного автора зазначати в трейлерах «Co-authored-by» Ñ– «Co-committed-by» в опиÑÑ– коміта. Типовий ключ Forgejo повинен відповідати кориÑтувачу в базі даних. +pulls.clear_merge_message_hint = ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚ÑŒ лише вміÑÑ‚ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñƒ Ñ– збереже згенеровані git-трейлери, такі Ñк «Co-Authored-By…». +branch.delete_branch_has_new_commits = Гілку «%s» не можна видалити, оÑкільки піÑÐ»Ñ Ð¾Ð±'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð±ÑƒÐ»Ð¾ додано нові коміти. +settings.graphql_url = ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ GraphQL +settings.packagist_api_token = Токен API +settings.archive.text = ÐÑ€Ñ…Ñ–Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–ÑŽ зробить його доÑтупним тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ. Він буде прихований з панелі управліннÑ. Ðіхто (навіть ви!) не зможе робити нові коміти, Ñтворювати задачі чи запити на злиттÑ. +settings.protected_branch.delete_rule = Видалити правило +settings.branches.add_new_rule = Додати нове правило +settings.add_key_success = Ключ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Â«%s» уÑпішно додано. +settings.update_settings_no_unit = Репозиторій повинен дозволÑти хоча б ÑкуÑÑŒ взаємодію. +settings.packagist_package_url = ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° пакунок Packagist +settings.transfer.modal.title = Передати новому влаÑнику +settings.transfer.button = Передати новому влаÑнику +settings.event_package = Пакунок +settings.event_package_desc = Пакунок у репозиторії Ñтворено або видалено. +settings.new_owner_blocked_doer = Ðовий влаÑник заблокував ваÑ. +settings.transfer_quota_exceeded = Ðовий влаÑник (%s) перевищив квоту. Репозиторій не передано. +release.title_empty = Заголовок не може бути порожнім. +issues.role.member_helper = Цей кориÑтувач Ñ” членом організації, що володіє цим репозиторієм. +wiki.page_content = ВміÑÑ‚ Ñторінки +wiki.page_title = Заголовок Ñторінки +pulls.close = Закрити запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ +branch.delete = Видалити гілку «%s» +diff.comment.add_line_comment = Додати коментар до Ñ€Ñдка +issues.review.option.hide_outdated_comments = Приховати заÑтарілі коментарі +issues.num_participants_one = %d учаÑник +issues.review.option.show_outdated_comments = Показати заÑтарілі коментарі +pulls.delete.title = Видалити цей запит на злиттÑ? +issues.author.tooltip.pr = Ðвтор цього запиту на злиттÑ. +branch.deletion_failed = Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ гілку «%s». +pulls.status_checks_show_all = Показати вÑÑ– перевірки +wiki.cancel = СкаÑувати +issues.role.first_time_contributor_helper = Це перший внеÑок цього кориÑтувача до репозиторію. +pulls.filter_changes_by_commit = Фільтрувати за комітом +pulls.is_empty = Зміни з цієї гілки вже Ñ” в цільовій гілці. Коміт буде порожній. +issues.author.tooltip.issue = Ðвтор цієї задачі. +pulls.made_using_agit = AGit +activity.navbar.recent_commits = Ðещодавні коміти +branch.deletion_success = Гілку «%s» видалено. +pulls.show_all_commits = Показати вÑÑ– коміти +pull.deleted_branch = (видалено): %s +milestones.update_ago = Оновлено %s +size_format = %[1]s: %[2]s; %[3]s: %[4]s +settings.units.add_more = Увімкнути ще +migrate.cancel_migrating_title = СкаÑувати перенеÑÐµÐ½Ð½Ñ +settings.units.units = Розділи +settings.units.overview = ОглÑд +projects.create_success = Проєкт «%s» Ñтворено. +issues.no_content = Ðемає опиÑу. +settings.mirror_settings.docs.doc_link_title = Як дзеркалювати репозиторії? +n_commit_one = %s коміт +n_commit_few = %s комітів +signing.will_sign = Коміт буде підпиÑано ключем «%s». +signing.wont_sign.error = Під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ можливоÑті підпиÑати коміт ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. +commits.search_branch = У цій гілці +ext_wiki = Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ Ð²Ñ–ÐºÑ– +pulls.commit_ref_at = `поÑлавÑÑ Ð½Ð° цей запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð² коміті %[2]s` +pulls.cmd_instruction_hint = ПереглÑнути інÑтрукції Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³Ð¾ Ñ€Ñдка +issues.max_pinned = Ðеможливо закріпити більше задач +issues.unpin_comment = відкріпив %s +issues.pin_comment = закріпив %s +project = Проєкти +issues.review.outdated_description = ВміÑÑ‚ змінивÑÑ Ð· моменту напиÑÐ°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ +commits.browse_further = ДивитиÑÑ Ð´Ð°Ð»Ñ– +issues.unpin_issue = Відкріпити задачу +n_branch_one = %s гілка +n_branch_few = %s гілок +executable_file = Виконуваний файл +migrate_options_mirror_helper = Цей репозиторій буде дзеркалом +projects.edit_success = Проєкт «%s» оновлено. +wiki.search = Пошук по вікі +wiki.no_search_results = Ðічого не знайдено +pulls.closed = Запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾ +signing.wont_sign.not_signed_in = Ви не ввійшли в ÑиÑтему. +settings.wiki_globally_editable = Дозволити вÑім кориÑтувачам редагувати вікі +settings.reindex_button = Додати в чергу на переіндекÑацію +settings.reindex_requested = Потрібна переіндекÑÐ°Ñ†Ñ–Ñ +editor.file_delete_success = Файл «%s» видалено. +file_follow = Слідувати за Ñимвольним поÑиланнÑм +projects.column.set_default = УÑтановити за замовчуваннÑм +settings.federation_following_repos = URL-адреÑи відÑтежуваних репозиторіїв. Через «;», без пробілів. +settings.federation_not_enabled = Федерацію вимкнено у вашому екземплÑрі. +settings.federation_settings = ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„ÐµÐ´ÐµÑ€Ð°Ñ†Ñ–Ñ— +signing.wont_sign.nokey = Цей екземплÑÑ€ не має ключа Ð´Ð»Ñ Ð¿Ñ–Ð´Ð¿Ð¸ÑÐ°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ коміта. +settings.federation_apapiurl = URL федерації цього репозиторію. Скопіюйте Ñ—Ñ— та вÑтавте в Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„ÐµÐ´ÐµÑ€Ð°Ñ†Ñ–Ñ— іншого репозиторію Ñк URL-адреÑу відÑтежуваного репозиторію. +fork_branch = Гілка, Ñку буде клоновано у форк +already_forked = Ви вже Ñтворили форк %s +fork_to_different_account = Створити форк до іншого облікового запиÑу +fork_no_valid_owners = Ðеможливо Ñтворити форк цього репозиторію, оÑкільки тут немає дійÑних влаÑників. +pulls.agit_explanation = Створено через робочий потік AGit. AGit дозволÑÑ” допиÑувачам пропонувати зміни за допомогою «git push» без ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð¾Ñ€ÐºÑƒ або нової гілки. +diff.review.self_approve = Ðвтори запитів на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð½Ðµ можуть Ñхвалювати влаÑні запити на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ +settings.event_pull_request_approvals = Ð¡Ñ…Ð²Ð°Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð² на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ +diff.git-notes.add = Додати примітку +diff.git-notes.remove-header = Видалити примітку +projects.column.assigned_to = Призначено на +issues.new.assign_to_me = Призначити Ñобі +contributors.contribution_type.additions = Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ +settings.add_web_hook_desc = Інтегрувати %s у цей репозиторій. +settings.event_wiki_desc = Вікі-Ñторінку Ñтворено, перейменовано, відредаговано або видалено. +settings.mirror_settings.push_mirror.copy_public_key = Копіювати публічний ключ +editor.add_tmpl.filename = назва файлу +settings.unarchive.button = Розархівувати репозиторій +object_format = Формат об'єкта +settings.archive.mirrors_unavailable = Дзеркала недоÑтупні в архівованих репозиторіÑÑ…. +pulls.sign_in_require = Увійдіть, щоб Ñтворити новий запит на злиттÑ. +new_advanced_expand = ÐатиÑніть, щоб розгорнути +new_from_template = ВикориÑтати шаблон +new_advanced = Додаткові Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ +auto_init_description = Почніть Ñ–Ñторію Git з README Ñ– за бажаннÑм додайте файли License та .gitignore. +new_from_template_description = Можете вибрати наÑвний шаблон репозиторію на цьому екземплÑрі Ñ– заÑтоÑувати його налаштуваннÑ. +form.string_too_long = Довжина введеного Ñ€Ñдка більша за %d Ñимволів. +form.name_reserved = Ðазву репозиторію «%s» зарезервовано. +form.name_pattern_not_allowed = Шаблон «%s» не допуÑкаєтьÑÑ Ñƒ назві репозиторію. +settings.wiki_rename_branch_main_desc = Перейменувати внутрішню гілку, Ñка викориÑтовуєтьÑÑ Ñƒ вікі, на «%s». Ð¦Ñ Ð·Ð¼Ñ–Ð½Ð° Ñ” оÑтаточною Ñ– Ñ—Ñ— неможливо ÑкаÑувати. +wiki.reserved_page = Ðазву вікі-Ñторінки «%s» зарезервовано. [graphs] contributors.what = внеÑки +component_loading_info = Це може зайнÑти деÑкий чаÑ… +component_loading = Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ %s... +component_loading_failed = Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ %s +recent_commits.what = нещодавні коміти +component_failed_to_load = СталаÑÑ Ð½ÐµÑподівана помилка. [org] org_name_holder=Ðазва організації @@ -2315,7 +2571,7 @@ teams.delete_team_desc=Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ ÑкаÑовує Ð´Ð¾Ñ teams.delete_team_success=Команду було видалено. teams.read_permission_desc=Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° має доÑтуп Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ: учаÑники можуть переглÑдати та клонувати репозиторії. teams.write_permission_desc=Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° надає доÑтуп на запиÑ: учаÑники можуть отримувати й виконувати push команди до репозитрію. -teams.admin_permission_desc=Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° надає адмініÑтраторÑький доÑтуп: учаÑники можуть читати, виконувати push команди та додавати Ñпівробітників до репозиторію. +teams.admin_permission_desc=Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° надає адмініÑтраторÑький доÑтуп: учаÑники можуть читати, виконувати push та додавати Ñпівавторів до Ñ—Ñ— репозиторіїв. teams.create_repo_permission_desc=Крім того, Ñ†Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° надає дозвіл Створити репозиторій: учаÑники можуть Ñтворювати нові репозиторії в організації. teams.repositories=Репозиторії команди teams.search_repo_placeholder=Пошук репозиторію… @@ -2333,6 +2589,12 @@ teams.all_repositories_helper=Команда має доÑтуп до вÑÑ–Ñ… teams.all_repositories_read_permission_desc=Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° надає дозвіл ПереглÑд Ð´Ð»Ñ Ð²ÑÑ–Ñ… репозиторіїв: учаÑники можуть переглÑдати та клонувати Ñ—Ñ…. teams.all_repositories_write_permission_desc=Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° надає дозвіл Ð—Ð°Ð¿Ð¸Ñ Ð´Ð»Ñ Ð²ÑÑ–Ñ… репозиторіїв: учаÑники можуть переглÑдати та виконувати push в репозиторіÑÑ…. teams.all_repositories_admin_permission_desc=Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° надає дозвіл ÐдмініÑÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð²ÑÑ–Ñ… репозиторіїв: учаÑники можуть переглÑдати, виконувати push та додавати Ñпівробітників. +code = Код +open_dashboard = Відкрити панель ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ +follow_blocked_user = Ви не можете Ñтежити за цією організацією, тому що Ð²Ð°Ñ Ñƒ ній заблокували. +teams.invite.description = Щоб приєднатиÑÑ Ð´Ð¾ команди, натиÑніть кнопку нижче. +teams.invite.title = Ð’Ð°Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð¾ приєднатиÑÑ Ð´Ð¾ команди %s в організації %s. +form.name_reserved = Ðазву організації «%s» зарезервовано. [admin] dashboard=Панель ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ @@ -2351,7 +2613,7 @@ total=Разом: %d dashboard.statistic=ПідÑумок dashboard.operations=Технічне обÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ -dashboard.system_status=Ð¡Ñ‚Ð°Ñ‚ÑƒÑ ÑиÑтеми +dashboard.system_status=Стан ÑиÑтеми dashboard.operation_name=Ðазва операції dashboard.operation_switch=Перемкнути dashboard.operation_run=ЗапуÑтити @@ -2588,15 +2850,15 @@ auths.tips.oauth2.general=ÐÐ²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ OAuth2 auths.tip.oauth2_provider=ПоÑтачальник OAuth2 auths.tip.bitbucket=Створіть OAuth URI на Ñторінці %s auths.tip.nextcloud=`ЗареєÑтруйте нового Ñпоживача OAuth у вашому екземплÑрі за допомогою наÑтупного меню "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ -> Безпека -> клієнт OAuth 2.0"` -auths.tip.dropbox=Додайте новий додаток на %s -auths.tip.facebook=`Створіть новий додаток на %s Ñ– додайте модуль "Facebook Login"` -auths.tip.github=Додайте OAuth додаток на %s +auths.tip.dropbox=Створіть новий додаток на %s +auths.tip.facebook=ЗареєÑтруйте новий додаток на %s Ñ– додайте модуль «Facebook Login» +auths.tip.github=ЗареєÑтруйте новий додаток OAuth на %s auths.tip.gitlab=Додайте новий додаток на https://gitlab.com/profile/applications auths.tip.google_plus=Отримайте облікові дані клієнта OAuth2 в конÑолі Google API на Ñторінці %s auths.tip.openid_connect=ВикориÑтовуйте OpenID Connect Discovery URL (/.well-known/openid-configuration) Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ñ— наÑтройки входу OAuth auths.tip.twitter=Перейдіть на %s, Ñтворіть програму Ñ– переконайтеÑÑ, що включена Ð¾Ð¿Ñ†Ñ–Ñ Â«Ð”Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ‚Ð¸ цю програму Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ в ÑиÑтему за допомогою Twitter» auths.tip.discord=ЗареєÑтруйте новий додаток на %s -auths.tip.yandex=`Створіть нову програму в %s. Виберіть наÑтупні дозволи з "Yandex. assport API": "ДоÑтуп до адреÑи електронної пошти", "ДоÑтуп до аватара" Ñ– "ДоÑтуп до імені кориÑтувача, імені та прізвища, Ñтаті"` +auths.tip.yandex=Створіть новий додаток на %s. Виберіть наÑтупні дозволи з «Yandex.Passport API»: «ДоÑтуп до адреÑи електронної пошти», «ДоÑтуп до аватара» Ñ– «ДоÑтуп до імені кориÑтувача, імені та прізвища, Ñтаті» auths.tip.mastodon=Введіть URL Ñпеціального екземплÑра Ð´Ð»Ñ ÐµÐºÐ·ÐµÐ¼Ð¿Ð»Ñра mastodon, Ñкий ви хочете автентифікувати за допомогою (або викориÑтовувати за замовчуваннÑм) auths.edit=Редагувати джерело автентифікації auths.activated=Це джерело авторизації активоване @@ -2621,7 +2883,7 @@ config.disable_router_log=Вимкнути Ð»Ð¾Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾ÑƒÑ‚ÐµÑ€Ñƒ config.run_user=КориÑтувач, від Ñкого запуÑтити config.run_mode=Режим Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ config.git_version=ВерÑÑ–Ñ Git -config.repo_root_path=Кореневий шлÑÑ… Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–Ñ +config.repo_root_path=ШлÑÑ… до ÐºÐ¾Ñ€ÐµÐ½Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–ÑŽ config.lfs_root_path=Кореневий шлÑÑ… LFS config.log_file_root_path=ШлÑÑ… до лог файлу config.script_type=Тип Ñкрипта @@ -2703,7 +2965,7 @@ config.cache_item_ttl=Ð§Ð°Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… кешу config.session_config=ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ ÑеÑÑ–Ñ— config.session_provider=Провайдер ÑеÑÑ–Ñ— config.provider_config=ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð¿Ð¾Ñтачальника -config.cookie_name=Ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ cookie +config.cookie_name=Ðазва файлу cookie config.gc_interval_time=Інтервал запуÑку збирача ÑÐ¼Ñ–Ñ‚Ñ‚Ñ (GC) config.session_life_time=Ð§Ð°Ñ Ð¶Ð¸Ñ‚Ñ‚Ñ ÑеÑÑ–Ñ— config.https_only=Тільки HTTPS @@ -2744,7 +3006,7 @@ monitor.desc=ÐžÐ¿Ð¸Ñ monitor.start=Ð§Ð°Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ monitor.execute_time=Ð§Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ monitor.process.cancel=Зупинити Ð¿Ñ€Ð¾Ñ†ÐµÑ -monitor.process.cancel_desc=Зупинка процеÑу може призвеÑти до втрати даних +monitor.process.cancel_desc=СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу може призвеÑти до втрати даних monitor.process.cancel_notices=Зупинити: %s? monitor.process.children=Дочірні процеÑи @@ -2753,8 +3015,8 @@ monitor.queue=Черга: %s monitor.queue.name=Ðазва monitor.queue.type=Тип monitor.queue.exemplar=Приклад типу -monitor.queue.numberworkers=КількіÑть робочих потоків -monitor.queue.maxnumberworkers=МакÑимальна кількіÑть робочих потоків +monitor.queue.numberworkers=КількіÑть обробників +monitor.queue.maxnumberworkers=МакÑимальна кількіÑть обробників monitor.queue.settings.title=ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÑƒÐ»Ñƒ monitor.queue.settings.maxnumberworkers=МакÑимальна кількіÑть робочих потоків monitor.queue.settings.maxnumberworkers.placeholder=Поточний %[1]d @@ -2787,12 +3049,34 @@ notices.operations = Дії packages.cleanup = ОчиÑтити недійÑні дані packages.cleanup.success = УÑпішно очищено недійÑні дані users.still_own_packages = Цей кориÑтувач доÑÑ– володіє одним чи більше пакунками, Ñпочатку видаліть ці пакунки. -users.purge_help = ПримуÑово видалити кориÑтувача Ñ– будь-Ñкі репозиторії, організації та пакунки, Ñкими він володіє. Ð’ÑÑ– коментарі та недоліки, напиÑані цим кориÑтувачем, також будуть видалені. +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 = ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ +self_check.no_problem_found = Проблем поки що не виÑвлено. +config_summary = ПідÑумок +monitor.queue.review_add = ПереглÑнути / додати обробники +monitor.queue.activeworkers = Ðктивні обробники +monitor.queue.numberinqueue = Ðомер у черзі +monitor.queue.settings.desc = Пули динамічно зроÑтають у відповідь на Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ—Ñ…Ð½Ñ–Ñ… черг обробників. +monitor.queue.settings.remove_all_items_done = УÑÑ– елементи в черзі видалено. +monitor.queue.settings.remove_all_items = Видалити вÑÑ– +config.app_slogan = ГаÑло екземплÑра +auths.tip.gitea = ЗареєÑтруйте новий додаток OAuth. ІнÑтрукцію можна знайти на %s +auths.tip.gitlab_new = ЗареєÑтруйте новий додаток на %s +monitor.duration = ТриваліÑть (Ñ) +users.reserved = Зарезервовано [action] @@ -2826,6 +3110,7 @@ review_dismissed_reason=Причина: create_branch=Ñтворив гілку %[3]s в %[4]s starred_repo=додав %[2]s у обране watched_repo=почав Ñлідкувати за %[2]s +auto_merge_pull_request = `автоматично об'єднав запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ %[3]s#%[2]s` [tool] now=зараз @@ -2890,8 +3175,8 @@ conan.details.repository=Репозиторій owner.settings.cleanuprules.enabled=Увімкнено about = Про цей пакунок empty = Поки що тут немає пакунків. -empty.documentation = Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації щодо реєÑтру пакунків, переглÑньте документацію. -registry.documentation = Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації щодо реєÑтру %s, переглÑньте документацію. +empty.documentation = Докладніше про реєÑтр пакунків читайте в документації. +registry.documentation = Докладніше про реєÑтр %s читайте в документації. settings.delete.notice = Ви збираєтеÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ %s (%s). Цю операцію не можна ÑкаÑувати, ви впевнені? details.author = Ðвтор title = Пакунки @@ -2903,21 +3188,21 @@ arch.version.groups = Група conda.install = Ðби вÑтановити пакунок, викориÑтовуючи Conda, запуÑтіть команду: cargo.install = Ðби вÑтановити пакунок, викориÑтовуючи Cargo, запуÑтіть команду: versions.view_all = ПереглÑнути вÑÑ– -generic.download = Завантажте пакунок з командного Ñ€Ñдка: +generic.download = Завантажте пакунок із командного Ñ€Ñдка: details = Подробиці arch.version.optdepends = ÐеобовʼÑзково залежить installation = УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ details.license = Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ filter.type.all = УÑÑ– conan.install = Ðби вÑтановити пакунок, викориÑтовуючи Conan, запуÑтіть команду: -container.layers = Шари Ñвітлини +container.layers = Шари образу details.project_site = ВебÑторінка проєкту details.documentation_site = ВебÑторінка документації desc = Керувати пакунками репозиторію. requirements = Вимоги dependencies = ЗалежноÑті empty.repo = Ви опублікували пакунок, але він не показаний тут? Перейдіть до налаштувань пакунків та привʼÑжіть його до цього репозиторію. -alpine.repository = Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–ÑŽ +alpine.repository = Про репозиторій alpine.install = Ðби вÑтановити цей пакунок, запуÑтіть команду: cran.install = Ðби вÑтановити пакунок, запуÑтіть команду: composer.dependencies.development = ЗалежноÑті розробки @@ -2935,16 +3220,16 @@ arch.version.properties = ВлаÑтивоÑті верÑÑ–Ñ— arch.version.description = ÐžÐ¿Ð¸Ñ chef.install = Ðби вÑтановити пакунок, запуÑтіть команду: container.details.platform = Платформа -container.details.type = Вид Ñвітлини -container.pull = Завантажити Ñвітлину з командного Ñ€Ñдка: +container.details.type = Тип образу +container.pull = Завантажити образ із командного Ñ€Ñдка: details.repository_site = ВебÑторінка репозиторію composer.dependencies = ЗалежноÑті debian.install = Ðби вÑтановити пакунок, запуÑтіть команду: -debian.repository = Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–ÑŽ +debian.repository = Про репозиторій debian.repository.distributions = ДиÑтрибутиви alpine.repository.architectures = Ðрхітектури arch.version.depends = Залежить -go.install = Ð’Ñтановити пакунок з командного Ñ€Ñдка: +go.install = Ð’Ñтановити пакунок із командного Ñ€Ñдка: debian.repository.architectures = Ðрхітектури helm.install = Ðби вÑтановити пакунок, запуÑтіть команду: keywords = Ключові Ñлова @@ -2954,6 +3239,33 @@ dependency.version = ВерÑÑ–Ñ container.labels = Мітки filter.no_result = Ваш фільтр не видав жодних результатів. dependency.id = ID +rpm.repository = Про репозиторій +rpm.repository.architectures = Ðрхітектури +settings.delete.error = Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ пакунок. +settings.delete.success = Пакунок видалено. +npm.dependencies = ЗалежноÑті +settings.delete = Видалити пакунок +npm.dependencies.development = ЗалежноÑті розробки +rubygems.dependencies.development = ЗалежноÑті розробки +npm.dependencies.optional = Ðеобов'Ñзкові залежноÑті +container.images.title = Образи +search_in_external_registry = Шукати в %s +owner.settings.cleanuprules.keep.count.n = %d верÑій на пакунок +settings.delete.description = Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÑƒÐ½ÐºÐ° Ñ” оÑтаточним Ñ– його неможливо ÑкаÑувати. +owner.settings.cleanuprules.keep.count.1 = 1 верÑÑ–ÑŽ на пакунок +rpm.repository.multiple_groups = Цей пакунок доÑтупний у кількох групах. +helm.registry = Ðалаштуйте цей реєÑтр із командного Ñ€Ñдка: +rpm.registry = Ðалаштуйте цей реєÑтр із командного Ñ€Ñдка: +conan.registry = Ðалаштуйте цей реєÑтр із командного Ñ€Ñдка: +nuget.registry = Ðалаштуйте цей реєÑтр із командного Ñ€Ñдка: +swift.registry = Ðалаштуйте цей реєÑтр із командного Ñ€Ñдка: +alt.repository.architectures = Ðрхітектури +alt.repository = Про репозиторій +alt.repository.multiple_groups = Цей пакунок доÑтупний у кількох групах. +alt.install = Ð’Ñтановити пакунок +alt.registry = Ðалаштуйте цей реєÑтр із командного Ñ€Ñдка: +debian.registry = Ðалаштуйте цей реєÑтр із командного Ñ€Ñдка: +debian.registry.info = Виберіть $distribution Ñ– $component зі ÑпиÑку нижче. [secrets] deletion = Видалити Ñекрет @@ -2966,11 +3278,10 @@ deletion.description = Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñекрету Ñ” оÑтаточним creation = Додати Ñекрет none = Секретів ще немає. creation.name_placeholder = без ÑƒÑ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтру, тільки літерно-цифрові Ñимволи або підкреÑленнÑ, не може починатиÑÑ Ð· GITEA_ або GITHUB_ +secrets = Секрети +creation.value_placeholder = Уведіть довільний вміÑÑ‚. Пробіли на початку та в кінці будуть пропущені. [actions] - - - runners.name=Ðазва runners.owner_type=Тип runners.description=ÐžÐ¿Ð¸Ñ @@ -3008,6 +3319,27 @@ variables.id_not_exist = Змінної з ідентифікатором %d н variables.edit = Редагувати змінну runs.expire_log_message = Журнали очищено, тому що вони були занадто Ñтарі. runs.empty_commit_message = (порожнє Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ð°) +runners.status.unspecified = Ðевідомо +runs.status_no_select = УÑÑ– Ñтани +runs.status = Стан +runners.task_list.status = Стан +runners.status = Стан +runs.no_workflows.documentation = Докладніше про Дії Forgejo читайте в документації. +runners.reset_registration_token = Скинути токен реєÑтрації +workflow.enable_success = Робочий потік «%s» уÑпішно ввімкнено. +runs.workflow = Робочий потік +workflow.disable = Вимкнути робочий потік +workflow.disable_success = Робочий потік «%s» уÑпішно вимкнено. +workflow.disabled = Робочий потік вимкнено. +workflow.enable = Увімкнути робочий потік +runs.no_workflows = Робочих потоків ще немає. +runs.all_workflows = УÑÑ– робочі потоки +runs.no_results = Ðе знайдено відповідних результатів. +status.failure = Помилка +status.running = Працює +status.success = УÑпіх +status.skipped = Пропущено +need_approval_desc = Потрібне ÑÑ…Ð²Ð°Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку робочих потоків Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на злиттÑ. @@ -3019,7 +3351,6 @@ type-1.display_name = ОÑобиÑтий проєкт deleted.display_name = Видалений проєкт [git.filemode] -; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", … symbolic_link=Символічне поÑÐ¸Ð»Ð°Ð½Ð½Ñ directory = Тека submodule = Підмодуль @@ -3050,11 +3381,11 @@ milestone_kind = Шукати віхи... commit_kind = Шукати коментарі... no_results = Ðе знайдено відповідних результатів. keyword_search_unavailable = Пошук за ключовими Ñловами наразі недоÑтупний. Будь лаÑка, зв'ÑжітьÑÑ Ð· адмініÑтратором Ñайту. -code_search_by_git_grep = Поточні результати пошуку коду надаютьÑÑ Ð· "git grep". Тут можуть бути кращі результати, Ñкщо адмініÑтратор Ñайту ввімкнув індекÑацію коду. +code_search_by_git_grep = Поточні результати пошуку коду надаютьÑÑ Ð· «git grep». Тут можуть бути кращі результати, Ñкщо адмініÑтратор Ñайту ввімкнув індекÑацію коду. package_kind = Шукати пакунки... project_kind = Шукати проєкти... branch_kind = Шукати гілки... -issue_kind = Шукати недоліки... +issue_kind = Шукати задачі... pull_kind = Шукати запити на злиттÑ... runner_kind = Пошук раннерів... @@ -3077,4 +3408,4 @@ kib = КіБ mib = МіБ gib = ГіБ tib = ТіБ -b = Б \ No newline at end of file +b = Б diff --git a/options/locale/locale_vi.ini b/options/locale/locale_vi.ini index 1295731977..b12bac0c89 100644 --- a/options/locale/locale_vi.ini +++ b/options/locale/locale_vi.ini @@ -1,6 +1,3 @@ - - - [common] home = Trang chá»§ explore = Khám phá @@ -60,7 +57,7 @@ forks = Các phân nhánh activities = Hoạt động pull_requests = Yêu cầu thêm mã save = Lưu -issues = +issues = enabled = Bật disabled = Tắt copy = Chép diff --git a/options/locale/locale_yi.ini b/options/locale/locale_yi.ini index 8b13789179..9340e3ef0a 100644 --- a/options/locale/locale_yi.ini +++ b/options/locale/locale_yi.ini @@ -1 +1 @@ - +[common] \ No newline at end of file diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini index f4ad6754ef..b17d85cffa 100644 --- a/options/locale/locale_zh-CN.ini +++ b/options/locale/locale_zh-CN.ini @@ -70,7 +70,7 @@ your_starred=点赞 your_settings=设置 all=所有 -sources=自建 +sources=æ¥æº mirrors=é•œåƒ collaborative=å作 forks=派生 @@ -115,7 +115,7 @@ error=错误 error404=您正å°è¯•è®¿é—®çš„é¡µé¢ ä¸å­˜åœ¨ 或 æ‚¨å°šæœªè¢«æŽˆæƒ æŸ¥çœ‹è¯¥é¡µé¢ã€‚ go_back=返回 -never=ä»Žä¸ +never=从未 unknown=未知 rss_feed=RSS è®¢é˜…æº @@ -126,7 +126,7 @@ unpin=å–æ¶ˆç½®é¡¶ artifacts=åˆ¶å“ confirm_delete_artifact=您确定è¦åˆ é™¤åˆ¶å““%sâ€å—? -archived=已归档 +archived=已存档 concept_system_global=全局 concept_user_individual=个人 @@ -144,8 +144,8 @@ name=åç§° value=值 filter = 筛选 filter.clear = 清除筛选æ¡ä»¶ -filter.is_archived = 已归档 -filter.not_archived = 未归档 +filter.is_archived = 已存档 +filter.not_archived = 未存档 filter.is_fork = 是派生 filter.not_fork = 䏿˜¯æ´¾ç”Ÿ filter.is_mirror = æ˜¯é•œåƒ @@ -166,6 +166,7 @@ new_org.title = 创建组织 new_repo.link = 创建仓库 new_migrate.link = 开始è¿ç§» new_org.link = 创建组织 +copy_path = å¤åˆ¶è·¯å¾„ [aria] navbar=å¯¼èˆªæ  @@ -174,11 +175,11 @@ footer.software=关于软件 footer.links=链接 [heatmap] -number_of_contributions_in_the_last_12_months=一年内 %s 次贡献 -contributions_zero=ç›®å‰è¿˜æ²¡æœ‰è´¡çŒ® -less=显示更少 -more=显示更多 -contributions_format = {year}{month}{day} 当日有 {contributions} +number_of_contributions_in_the_last_12_months=过去的一年内有 %s 次贡献 +contributions_zero=没有贡献 +less=较少 +more=较多 +contributions_format = {year}å¹´{month}{day}日有{contributions} contributions_few = 贡献 contributions_one = 贡献 @@ -198,7 +199,13 @@ buttons.switch_to_legacy.tooltip=使用旧版编辑器 buttons.enable_monospace_font=å¯ç”¨ç­‰å®½å­—体 buttons.disable_monospace_font=ç¦ç”¨ç­‰å®½å­—体 buttons.unindent.tooltip = 解除一级嵌套æ¡ç›® -buttons.indent.tooltip = 解除一级嵌套æ¡ç›® +buttons.indent.tooltip = 嵌套一级æ¡ç›® +table_modal.header = 添加表格 +table_modal.placeholder.header = 标题 +table_modal.label.columns = 列数 +table_modal.label.rows = 行数 +buttons.new_table.tooltip = 添加表格 +table_modal.placeholder.content = 内容 [filter] string.asc=A - Z @@ -278,7 +285,7 @@ email_title=电å­é‚®ç®±è®¾ç½® smtp_addr=SMTP ä¸»æœºåœ°å€ smtp_port=SMTP ç«¯å£ smtp_from=电å­é‚®ä»¶å‘件人 -smtp_from_helper=请输入一个用于 Forgejo 的电å­é‚®ä»¶åœ°å€ï¼Œæˆ–者使用完整格å¼ï¼š"åç§°" +smtp_from_helper=Forgejo 使用的电å­é‚®ä»¶åœ°å€ã€‚ç›´æŽ¥è¾“å…¥é‚®ä»¶åœ°å€æˆ–使用完整格å¼ï¼š"åç§°" 。 mailer_user=SMTP 用户å mailer_password=SMTP å¯†ç  register_confirm=需è¦å‘电å­é‚®ä»¶ç¡®è®¤æ³¨å†Œ @@ -357,10 +364,10 @@ filter=其他过滤器 filter_by_team_repositories=按团队仓库筛选 feed_of=`"%s"çš„æº` -show_archived=已归档 -show_both_archived_unarchived=显示已归档和未归档的 -show_only_archived=åªæ˜¾ç¤ºå·²å½’档的 -show_only_unarchived=åªæ˜¾ç¤ºæœªå½’档的 +show_archived=已存档 +show_both_archived_unarchived=显示已存档和未存档的 +show_only_archived=åªæ˜¾ç¤ºå·²å­˜æ¡£çš„ +show_only_unarchived=åªæ˜¾ç¤ºæœªå­˜æ¡£çš„ show_private=ç§æœ‰åº“ show_both_private_public=åŒæ—¶æ˜¾ç¤ºå…¬å¼€çš„å’Œç§æœ‰çš„ @@ -477,6 +484,7 @@ sign_in_openid = 继续使用 OpenID sign_up_button = ç«‹å³æ³¨å†Œã€‚ hint_register = 需è¦è´¦å·ï¼Ÿç«‹å³æ³¨å†Œã€‚ unauthorized_credentials = 凭æ®ä¸æ­£ç¡®æˆ–已过期。请é‡è¯•您的命令,或查看 %s ä»¥èŽ·å–æ›´å¤šä¿¡æ¯ +use_onetime_code = ä½¿ç”¨ä¸€æ¬¡æ€§ä»£ç  [mail] view_it_on=在 %s 上查看 @@ -505,8 +513,8 @@ reset_password.text=如果此请求是您本人作出的,则请在 %s register_success=注册æˆåŠŸ -issue_assigned.pull=@%[1]s 已将仓库 %[3]s 中的åˆå¹¶è¯·æ±‚ %[2]s 指派给您 -issue_assigned.issue=@%[1]s 已将仓库 %[3]s ä¸­çš„å·¥å• %[2]s 指派给您 +issue_assigned.pull=@%[1]s 已将仓库 %[3]s 中的åˆå¹¶è¯·æ±‚ %[2]s 指派给您。 +issue_assigned.issue=@%[1]s 已将仓库 %[3]s ä¸­çš„å·¥å• %[2]s 指派给您。 issue.x_mentioned_you=@%s æåˆ°äº†æ‚¨ï¼š issue.action.force_push=%[1]s 强制从 %[3]s æŽ¨é€ %[2]s 至 [4]s。 @@ -592,14 +600,14 @@ Content=内容 SSPISeparatorReplacement=分隔符 SSPIDefaultLanguage=默认语言 -require_error=ä¸èƒ½ä¸ºç©ºã€‚ -alpha_dash_error=` åªå…许包å«å­—æ¯æ•°å­—ã€ç ´æŠ˜å·ï¼ˆâ€œ-â€ï¼‰å’Œä¸‹åˆ’线(“_â€ï¼‰å­—符。 +require_error=` ä¸èƒ½ä¸ºç©ºã€‚` +alpha_dash_error=` 应åªåŒ…å«å­—æ¯æ•°å­—ã€ç ´æŠ˜å·ï¼ˆâ€œ-â€ï¼‰å’Œä¸‹åˆ’线(“_â€ï¼‰å­—符。` alpha_dash_dot_error=` 应该åªåŒ…å«åŠè§’å­—æ¯ã€æ•°å­—ã€ç ´æŠ˜å·ï¼ˆâ€œ-â€ï¼‰ã€ä¸‹åˆ’线(“_â€ï¼‰å’ŒåŠè§’å¥å·ï¼ˆâ€œ.â€ï¼‰ 。` git_ref_name_error=` 必须是格å¼è‰¯å¥½çš„ git 引用å称。` -size_error=长度必须为 %s。 -min_size_error=长度最å°ä¸º %s 个字符。 -max_size_error=长度最大为 %s 个字符。 -email_error=䏿˜¯ä¸€ä¸ªæœ‰æ•ˆçš„邮箱地å€ã€‚ +size_error=`长度必须为 %s。` +min_size_error=`长度最å°ä¸º %s 个字符。` +max_size_error=`长度最大为 %s 个字符。` +email_error=`䏿˜¯ä¸€ä¸ªæœ‰æ•ˆçš„邮箱地å€ã€‚` url_error=`'%s' 䏿˜¯ä¸€ä¸ªæœ‰æ•ˆçš„ URL。` include_error=`必须包å«å­å­—符串 "%s"。` glob_pattern_error=`åŒ¹é…æ¨¡å¼æ— æ•ˆï¼š%s.` @@ -609,7 +617,7 @@ invalid_group_team_map_error=`映射无效: %s` unknown_error=未知错误: captcha_incorrect=验è¯ç ä¸æ­£ç¡®ã€‚ password_not_match=密ç ä¸åŒ¹é…。 -lang_select_error=从列表中选出语言 +lang_select_error=从列表中选择一个语言。 username_been_taken=用户å已被使用。 username_change_not_local_user=éžæœ¬åœ°ç”¨æˆ·ä¸å…许更改用户å。 @@ -634,12 +642,12 @@ password_lowercase_one=至少一个å°å†™å­—符 password_uppercase_one=至少一个大写字符 password_digit_one=至少一个数字 password_special_one=至少一个特殊字符(标点符å·ï¼Œæ‹¬å·ï¼Œå¼•å·ç­‰) -enterred_invalid_repo_name=输入的仓库åç§°ä¸æ­£ç¡® +enterred_invalid_repo_name=输入的仓库åç§°ä¸æ­£ç¡®ã€‚ enterred_invalid_org_name=您输入的组织åç§°ä¸æ­£ç¡®ã€‚ enterred_invalid_owner_name=新的所有者å称无效。 -enterred_invalid_password=输入的密ç ä¸æ­£ç¡® -user_not_exist=该用户ä¸å­˜åœ¨ -team_not_exist=团队ä¸å­˜åœ¨ +enterred_invalid_password=输入的密ç ä¸æ­£ç¡®ã€‚ +user_not_exist=该用户ä¸å­˜åœ¨ã€‚ +team_not_exist=团队ä¸å­˜åœ¨ã€‚ last_org_owner=您ä¸èƒ½ä»Žâ€œæ‰€æœ‰è€…â€å›¢é˜Ÿä¸­åˆ é™¤æœ€åŽä¸€ä¸ªç”¨æˆ·ã€‚组织中必须至少有一个所有者。 cannot_add_org_to_team=组织ä¸èƒ½è¢«åŠ å…¥åˆ°å›¢é˜Ÿä¸­ã€‚ duplicate_invite_to_team=此用户已被邀请为团队æˆå‘˜ã€‚ @@ -660,9 +668,7 @@ org_still_own_packages=è¯¥ç»„ç»‡ä¸‹ä»æœ‰è½¯ä»¶åŒ…,请先删除它们。 target_branch_not_exist=目标分支ä¸å­˜åœ¨ã€‚ username_error_no_dots = ` åªèƒ½åŒ…å«è‹±æ–‡å­—æ¯ä¸Žæ•°å­—(“0-9â€ã€â€œa-zâ€ã€â€œA-Zâ€ï¼‰ã€æ¨ªæ ï¼ˆâ€œ-â€ï¼‰ 与下划线(“_â€ï¼‰ã€‚ 开头与结尾的字符åªèƒ½ä½¿ç”¨è‹±æ–‡å­—æ¯æˆ–数字,且ä¸èƒ½åŒ…å«è¿žç»­çš„éžå­—æ¯éžæ•°å­—字符。` -admin_cannot_delete_self = 您无法以管ç†å‘˜çš„身份删除自己。请先移除您的管ç†å‘˜æƒé™ã€‚ - -admin_cannot_delete_self=当您是管ç†å‘˜æ—¶ï¼Œæ‚¨ä¸èƒ½åˆ é™¤è‡ªå·±ã€‚请先移除您的管ç†å‘˜æƒé™ +admin_cannot_delete_self=当您是管ç†å‘˜æ—¶ï¼Œæ‚¨ä¸èƒ½åˆ é™¤è‡ªå·±ã€‚请先移除您的管ç†å‘˜æƒé™ã€‚ unsupported_login_type = 该账å·ä½¿ç”¨çš„登录方å¼ä¸æ”¯æŒåˆ é™¤æ­¤è´¦æˆ·ã€‚ unset_password = 当å‰ç™»å½•用户尚未设置密ç ã€‚ required_prefix = 输入必须以“%sâ€å¼€å¤´ @@ -707,7 +713,7 @@ follow_blocked_user = 您ä¸èƒ½å…³æ³¨è¯¥ç”¨æˆ·ï¼Œå› ä¸ºæ‚¨å·²å±è”½è¯¥ç”¨æˆ·æˆ– block = å±è”½ unblock = 解除å±è”½ block_user.detail_3 = 您将无法将彼此添加为仓库å作者。 -followers_one = %d ä½å…³æ³¨è€… +followers_one = %d 关注者 following_one = %d 关注 public_activity.visibility_hint.self_public = 您的活动对所有人都是å¯è§çš„,但在ç§äººç©ºé—´ä¸­çš„交互除外。é…置。 public_activity.visibility_hint.admin_public = 此活动对所有人å¯è§ï¼Œä½†ä½œä¸ºç®¡ç†å‘˜ï¼Œæ‚¨è¿˜å¯ä»¥çœ‹åˆ°ç§äººç©ºé—´ä¸­çš„交互。 @@ -739,9 +745,9 @@ uid=UID webauthn=两步验è¯ï¼ˆå®‰å…¨å¯†é’¥ï¼‰ public_profile=å…¬å¼€ä¿¡æ¯ -biography_placeholder=å‘Šè¯‰æˆ‘ä»¬ä¸€ç‚¹æ‚¨è‡ªå·±ï¼ (您å¯ä»¥ä½¿ç”¨Markdown) +biography_placeholder=å‘他人介ç»ä¸€ä¸‹ä½ è‡ªå·±ï¼ï¼ˆæ”¯æŒ Markdown) location_placeholder=与他人分享你的大概ä½ç½® -profile_desc=控制您的个人资料对其他用户的显示方å¼ã€‚您的主è¦ç”µå­é‚®ä»¶åœ°å€å°†ç”¨äºŽé€šçŸ¥ã€å¯†ç æ¢å¤å’ŒåŸºäºŽç½‘页界é¢çš„ Git æ“作。 +profile_desc=关于您 password_username_disabled=ä¸å…è®¸éžæœ¬åœ°ç”¨æˆ·æ›´æ”¹ä»–们的用户å。更多详情请è”系您的系统管ç†å‘˜ã€‚ full_name=å…¨å website=个人网站 @@ -751,16 +757,16 @@ update_profile=更新个人资料 update_language=更改语言 update_language_not_found=语言 %s ä¸å¯ç”¨ã€‚ update_language_success=语言已更新。 -update_profile_success=您的资料信æ¯å·²ç»æ›´æ–° +update_profile_success=æ‚¨çš„ä¸ªäººèµ„æ–™å·²ç»æ›´æ–°ã€‚ change_username=您的用户å已更改。 change_username_prompt=注æ„:更改您的用户åä¹Ÿæ›´æ”¹æ‚¨çš„å¸æˆ· URL。 -change_username_redirect_prompt=åœ¨å…¶ä»–ç”¨æˆ·ä½¿ç”¨æ‚¨çš„æ—§ç”¨æˆ·åæ³¨å†Œå‰ï¼Œæ­¤æ—§ç”¨æˆ·å将会é‡å®šå‘到您的新用户å +change_username_redirect_prompt=åœ¨å…¶ä»–ç”¨æˆ·ä½¿ç”¨æ‚¨çš„æ—§ç”¨æˆ·åæ³¨å†Œå‰ï¼Œæ­¤æ—§ç”¨æˆ·å将会é‡å®šå‘到您的新用户å。 continue=ç»§ç»­æ“作 cancel=å–æ¶ˆæ“作 language=界é¢è¯­è¨€ ui=主题 -hidden_comment_types=éšè—的评论类型 -hidden_comment_types_description=此处选中的注释类型ä¸ä¼šæ˜¾ç¤ºåœ¨é—®é¢˜é¡µé¢ä¸­ã€‚æ¯”å¦‚ï¼Œå‹¾é€‰â€æ ‡ç­¾â€œåˆ é™¤æ‰€æœ‰ " 添加/删除的 -

{{ctx.Locale.Tr "repo.branch.deleted_by" .DBBranch.DeletedBy.Name}} {{TimeSinceUnix .DBBranch.DeletedUnix ctx.Locale}}

+

{{ctx.Locale.Tr "repo.branch.deleted_by" .DBBranch.DeletedBy.Name}} {{DateUtils.TimeSince .DBBranch.DeletedUnix}}

{{else}}
{{.DBBranch.Name}} @@ -102,7 +102,7 @@ {{template "repo/commit_statuses" dict "Status" (index $.CommitStatus .DBBranch.CommitID) "Statuses" (index $.CommitStatuses .DBBranch.CommitID)}}
-

{{svg "octicon-git-commit" 16 "tw-mr-1"}}{{ShortSha .DBBranch.CommitID}} · {{RenderCommitMessage $.Context .DBBranch.CommitMessage ($.Repository.ComposeMetas ctx)}} · {{ctx.Locale.Tr "org.repo_updated" (TimeSince .DBBranch.CommitTime.AsTime ctx.Locale)}} {{if .DBBranch.Pusher}}  {{template "shared/user/avatarlink" dict "user" .DBBranch.Pusher}}  {{template "shared/user/namelink" .DBBranch.Pusher}}{{end}}

+

{{svg "octicon-git-commit" 16 "tw-mr-1"}}{{ShortSha .DBBranch.CommitID}} · {{RenderCommitMessage $.Context .DBBranch.CommitMessage ($.Repository.ComposeMetas ctx)}} · {{ctx.Locale.Tr "org.repo_updated" (DateUtils.TimeSince .DBBranch.CommitTime)}}{{if .DBBranch.Pusher}}  {{template "shared/user/avatarlink" dict "user" .DBBranch.Pusher}}  {{template "shared/user/namelink" .DBBranch.Pusher}}{{end}}

{{end}} diff --git a/templates/repo/code/recently_pushed_new_branches.tmpl b/templates/repo/code/recently_pushed_new_branches.tmpl index d996acc5b2..dd663762db 100644 --- a/templates/repo/code/recently_pushed_new_branches.tmpl +++ b/templates/repo/code/recently_pushed_new_branches.tmpl @@ -1,7 +1,7 @@ {{range .RecentlyPushedNewBranches}}
- {{$timeSince := TimeSince .CommitTime.AsTime ctx.Locale}} + {{$timeSince := DateUtils.TimeSince .CommitTime}} {{$repo := .GetRepo $.Context}} {{$name := .Name}} {{if ne $repo.ID $.Repository.ID}} diff --git a/templates/repo/commit_page.tmpl b/templates/repo/commit_page.tmpl index e37686025b..36de789dd1 100644 --- a/templates/repo/commit_page.tmpl +++ b/templates/repo/commit_page.tmpl @@ -128,6 +128,11 @@
+ {{if not .NoteRendered}} +
+ {{ctx.Locale.Tr "repo.diff.git-notes.add"}} +
+ {{end}} {{end}} @@ -152,11 +157,12 @@ {{ctx.AvatarUtils.AvatarByEmail .Commit.Author.Email .Commit.Author.Email 28 "tw-mr-2"}} {{.Commit.Author.Name}} {{end}} - {{TimeSince .Commit.Author.When ctx.Locale}} + {{DateUtils.TimeSince .Commit.Author.When}} {{if or (ne .Commit.Committer.Name .Commit.Author.Name) (ne .Commit.Committer.Email .Commit.Author.Email)}} + • {{ctx.Locale.Tr "repo.diff.committed_by"}} {{if ne .Verification.CommittingUser.ID 0}} - {{ctx.AvatarUtils.Avatar .Verification.CommittingUser 28 "tw-mx-2"}} + {{ctx.AvatarUtils.Avatar .Verification.CommittingUser 28 "tw-mr-2"}} {{.Commit.Committer.Name}} {{else}} {{ctx.AvatarUtils.AvatarByEmail .Commit.Committer.Email .Commit.Committer.Name 28 "tw-mr-2"}} @@ -259,7 +265,7 @@ {{end}} {{if .NoteRendered}} -
+
{{svg "octicon-note" 16 "tw-mr-2"}} {{ctx.Locale.Tr "repo.diff.git-notes"}}: {{if .NoteAuthor}} @@ -273,11 +279,61 @@ {{else}} {{.NoteCommit.Author.Name}} {{end}} - {{TimeSince .NoteCommit.Author.When ctx.Locale}} + {{DateUtils.TimeSince .NoteCommit.Author.When}} + {{if and ($.Permission.CanWrite $.UnitTypeCode) (not $.Repository.IsArchived) (not .IsDeleted)}} +
+ + +
+ + {{end}}
-
+
{{.NoteRendered | SanitizeHTML}}
+ {{if and ($.Permission.CanWrite $.UnitTypeCode) (not $.Repository.IsArchived) (not .IsDeleted)}} +
+
+ {{.CsrfTokenHtml}} + +
+ +
+ +
+ +
+
+
+ {{end}} + {{else if and ($.Permission.CanWrite $.UnitTypeCode) (not $.Repository.IsArchived) (not .IsDeleted)}} +
+
+ {{.CsrfTokenHtml}} + +
+ +
+ +
+ +
+
+
{{end}} {{template "repo/diff/box" .}}
diff --git a/templates/repo/commits_list.tmpl b/templates/repo/commits_list.tmpl index c8c695e332..b23de20583 100644 --- a/templates/repo/commits_list.tmpl +++ b/templates/repo/commits_list.tmpl @@ -74,9 +74,9 @@ {{end}} {{if .Committer}} - {{TimeSince .Committer.When ctx.Locale}} + {{DateUtils.TimeSince .Committer.When}} {{else}} - {{TimeSince .Author.When ctx.Locale}} + {{DateUtils.TimeSince .Author.When}} {{end}} diff --git a/templates/repo/contributors.tmpl b/templates/repo/contributors.tmpl index f7f5d796f4..c71312fc6c 100644 --- a/templates/repo/contributors.tmpl +++ b/templates/repo/contributors.tmpl @@ -1,6 +1,7 @@ {{if .Permission.CanRead $.UnitTypeCode}}
{{ctx.Locale.TrN .MaxCreationLimit "repo.form.reach_limit_of_creation_1" "repo.form.reach_limit_of_creation_n" .MaxCreationLimit}}

{{end}} -
- - - {{ctx.Locale.Tr "repo.owner_helper"}} -
+
+ {{template "repo/create_basic" .}} +
-
- - - {{ctx.Locale.Tr "repo.repo_name_helper"}} -
-
- -
- - -
- {{if .IsForcedPrivate}} - {{ctx.Locale.Tr "repo.visibility_helper_forced"}} - {{end}} - {{ctx.Locale.Tr "repo.visibility_description"}} -
-
- - -
-
- - -
- -
-
- -
- - -
-
- - -
-
-
- -
- - -
-
- - -
-
-
- -
- - -
-
- - -
-
-
- -
- - -
-
-
+
+ + {{ctx.Locale.Tr "repo.new_from_template"}} + {{ctx.Locale.Tr "repo.new_from_template_description"}} + + {{template "repo/create_from_template" .}} +
-
- - -
+
+ {{ctx.Locale.Tr "repo.auto_init"}} + {{template "repo/create_init" .}} +
-
- -
- - - {{ctx.Locale.Tr "repo.repo_gitignore_helper_desc"}} -
-
- - - {{ctx.Locale.Tr "repo.license_helper_desc" "https://choosealicense.com/"}} -
- -
- - - {{ctx.Locale.Tr "repo.readme_helper_desc"}} -
-
-
- - -
-
-
- - - {{ctx.Locale.Tr "repo.default_branch_helper"}} -
-
- - - {{ctx.Locale.Tr "repo.object_format_helper"}} -
-
- -
- - -
-
-
-
-
- - +
+ {{ctx.Locale.Tr "repo.new_advanced"}} +
{{ctx.Locale.Tr "repo.new_advanced_expand"}} + {{template "repo/create_advanced" .}} +
+
+
diff --git a/templates/repo/create_advanced.tmpl b/templates/repo/create_advanced.tmpl new file mode 100644 index 0000000000..c0274701f8 --- /dev/null +++ b/templates/repo/create_advanced.tmpl @@ -0,0 +1,45 @@ + + +{{$supportedFormatsLength := len .SupportedObjectFormats}} +{{/* Only offer object format selection if there is an actual choice */}} +{{if ge $supportedFormatsLength 2}} + +{{else}} + +{{end}} + + + + diff --git a/templates/repo/create_basic.tmpl b/templates/repo/create_basic.tmpl new file mode 100644 index 0000000000..0396629fef --- /dev/null +++ b/templates/repo/create_basic.tmpl @@ -0,0 +1,47 @@ + + + + diff --git a/templates/repo/create_from_template.tmpl b/templates/repo/create_from_template.tmpl new file mode 100644 index 0000000000..47cda3df02 --- /dev/null +++ b/templates/repo/create_from_template.tmpl @@ -0,0 +1,49 @@ + +{{/* If the dropdown is inside the label, the focus works correctly and it is more accessible. + However, the Javascript takes the focus and opens the dropdown again immediately after closing. + When the user interacts (via mouse or keyboard), the dropdown closes again. + Due to the fieldset legend, this solutions is probably acceptable until the dropdown can be fixed properly. */}} + + +
+ {{ctx.Locale.Tr "repo.template.items"}} + + + + + + + + +
diff --git a/templates/repo/create_init.tmpl b/templates/repo/create_init.tmpl new file mode 100644 index 0000000000..729b44c8e6 --- /dev/null +++ b/templates/repo/create_init.tmpl @@ -0,0 +1,56 @@ + + +
+ + + + + {{$supportedReadmesLength := len .Readmes}} + {{/* Only offer README selection if there is an actual choice */}} + {{if ge $supportedReadmesLength 2}} + + {{else}} + + {{end}} +
diff --git a/templates/repo/diff/box.tmpl b/templates/repo/diff/box.tmpl index 230e49752f..e24c880746 100644 --- a/templates/repo/diff/box.tmpl +++ b/templates/repo/diff/box.tmpl @@ -85,7 +85,6 @@ diffFileInfo.files.push(...diffDataFiles); window.config.pageData.diffFileInfo = diffFileInfo; -
{{end}}
{{if $showFileTree}} @@ -130,7 +129,7 @@
{{if $file.IsRenamed}}{{$file.OldName}} → {{end}}{{$file.Name}} {{if .IsLFSFile}} ({{ctx.Locale.Tr "repo.stored_lfs"}}){{end}} - + {{if $file.IsGenerated}} {{ctx.Locale.Tr "repo.diff.generated"}} {{end}} @@ -248,8 +247,8 @@ {{end}}
- - + +
diff --git a/templates/repo/diff/comments.tmpl b/templates/repo/diff/comments.tmpl index 2e0c85d0a1..b36f20269e 100644 --- a/templates/repo/diff/comments.tmpl +++ b/templates/repo/diff/comments.tmpl @@ -1,6 +1,6 @@ {{range .comments}} -{{$createdStr:= TimeSinceUnix .CreatedUnix ctx.Locale}} +{{$createdStr:= DateUtils.TimeSince .CreatedUnix}}
{{if .OriginalAuthor}} {{ctx.AvatarUtils.Avatar nil}} @@ -53,7 +53,7 @@
-
+
{{if .RenderedContent}} {{.RenderedContent}} {{else}} diff --git a/templates/repo/diff/compare.tmpl b/templates/repo/diff/compare.tmpl index 110f8ac60b..024577afcc 100644 --- a/templates/repo/diff/compare.tmpl +++ b/templates/repo/diff/compare.tmpl @@ -212,9 +212,13 @@ {{if .Repository.ArchivedUnix.IsZero}} {{ctx.Locale.Tr "repo.archive.title"}} {{else}} - {{ctx.Locale.Tr "repo.archive.title_date" (DateTime "long" .Repository.ArchivedUnix)}} + {{ctx.Locale.Tr "repo.archive.title_date" (DateUtils.AbsoluteLong .Repository.ArchivedUnix)}} {{end}}
+ {{else}} +
+ {{ctx.Locale.Tr "repo.pulls.sign_in_require" .SignInLink}} +
{{end}} {{if $.IsSigned}}
diff --git a/templates/repo/diff/options_dropdown.tmpl b/templates/repo/diff/options_dropdown.tmpl index 09b7b80e41..44b0743e09 100644 --- a/templates/repo/diff/options_dropdown.tmpl +++ b/templates/repo/diff/options_dropdown.tmpl @@ -1,7 +1,6 @@ -
-
- - {{template "shared/search/button"}} -
-
{{/* it should match the code in issue-home.js */}} @@ -53,7 +47,7 @@ {{if .Repository.ArchivedUnix.IsZero}} {{ctx.Locale.Tr "repo.archive.title"}} {{else}} - {{ctx.Locale.Tr "repo.archive.title_date" (DateTime "long" .Repository.ArchivedUnix)}} + {{ctx.Locale.Tr "repo.archive.title_date" (DateUtils.AbsoluteLong .Repository.ArchivedUnix)}} {{end}}
{{end}} @@ -113,6 +107,7 @@ / {{- if eq $i $l -}} {{$v}} + {{- else -}} {{$p := index $.Paths $i}}{{$v}} {{- end -}} @@ -157,6 +152,22 @@ {{else if .IsBlame}} {{template "repo/blame" .}} {{else}}{{/* IsViewDirectory */}} + {{/* display the search bar only if */}} + {{$isCommit := StringUtils.HasPrefix .BranchNameSubURL "commit"}} + {{if and (not $isCommit) (or .CodeIndexerDisabled (and (not .TagName) (eq .Repository.DefaultBranch .BranchName)))}} + + {{end}} {{template "repo/view_list" .}} {{end}}
diff --git a/templates/repo/issue/card.tmpl b/templates/repo/issue/card.tmpl index 0b255d6705..c29c14a54b 100644 --- a/templates/repo/issue/card.tmpl +++ b/templates/repo/issue/card.tmpl @@ -24,7 +24,7 @@
{{if not $.Page.Repository}}{{.Repo.FullName}}{{end}}#{{.Index}} - {{$timeStr := TimeSinceUnix .GetLastEventTimestamp ctx.Locale}} + {{$timeStr := DateUtils.TimeSince .GetLastEventTimestamp}} {{if .OriginalAuthor}} {{ctx.Locale.Tr .GetLastEventLabelFake $timeStr .OriginalAuthor}} {{else if gt .Poster.ID 0}} diff --git a/templates/repo/issue/filter_list.tmpl b/templates/repo/issue/filter_list.tmpl index 09f87b582f..0e1d8f8036 100644 --- a/templates/repo/issue/filter_list.tmpl +++ b/templates/repo/issue/filter_list.tmpl @@ -146,13 +146,11 @@ {{svg "octicon-triangle-down" 14 "dropdown icon"}}
diff --git a/templates/repo/issue/milestone_issues.tmpl b/templates/repo/issue/milestone_issues.tmpl index e5dc8cb605..8b8b194f46 100644 --- a/templates/repo/issue/milestone_issues.tmpl +++ b/templates/repo/issue/milestone_issues.tmpl @@ -30,7 +30,7 @@
- {{$closedDate:= TimeSinceUnix .Milestone.ClosedDateUnix ctx.Locale}} + {{$closedDate:= DateUtils.TimeSince .Milestone.ClosedDateUnix}} {{if .IsClosed}} {{svg "octicon-clock"}} {{ctx.Locale.Tr "repo.milestones.closed" $closedDate}} {{else}} @@ -38,7 +38,7 @@ {{if .Milestone.DeadlineString}} {{svg "octicon-calendar"}} - {{DateTime "short" .Milestone.DeadlineString}} + {{DateUtils.AbsoluteShort (.Milestone.DeadlineString|DateUtils.ParseLegacy)}} {{else}} {{svg "octicon-calendar"}} diff --git a/templates/repo/issue/milestone_new.tmpl b/templates/repo/issue/milestone_new.tmpl index 9f32df00e3..4a5f0a15ba 100644 --- a/templates/repo/issue/milestone_new.tmpl +++ b/templates/repo/issue/milestone_new.tmpl @@ -35,8 +35,15 @@
- - + {{template "shared/combomarkdowneditor" (dict + "MarkdownPreviewUrl" (print .Repository.Link "/markup") + "MarkdownPreviewContext" .RepoLink + "TextareaName" "content" + "TextareaPlaceholder" (ctx.Locale.Tr "repo.milestones.desc") + "TextareaAriaLabel" (ctx.Locale.Tr "repo.milestones.desc") + "TextareaContent" .content + "EasyMDE" true + )}}
diff --git a/templates/repo/issue/milestones.tmpl b/templates/repo/issue/milestones.tmpl index 63a6f6b26a..fab483c79d 100644 --- a/templates/repo/issue/milestones.tmpl +++ b/templates/repo/issue/milestones.tmpl @@ -49,19 +49,19 @@ {{if .UpdatedUnix}}
{{svg "octicon-clock"}} - {{ctx.Locale.Tr "repo.milestones.update_ago" (TimeSinceUnix .UpdatedUnix ctx.Locale)}} + {{ctx.Locale.Tr "repo.milestones.update_ago" (DateUtils.TimeSince .UpdatedUnix)}}
{{end}}
{{if .IsClosed}} - {{$closedDate:= TimeSinceUnix .ClosedDateUnix ctx.Locale}} + {{$closedDate:= DateUtils.TimeSince .ClosedDateUnix}} {{svg "octicon-clock" 14}} {{ctx.Locale.Tr "repo.milestones.closed" $closedDate}} {{else}} {{if .DeadlineString}} {{svg "octicon-calendar" 14}} - {{DateTime "short" .DeadlineString}} + {{DateUtils.AbsoluteShort (.DeadlineString|DateUtils.ParseLegacy)}} {{else}} {{svg "octicon-calendar" 14}} diff --git a/templates/repo/issue/navbar.tmpl b/templates/repo/issue/navbar.tmpl index 30e42c77cc..4d90ca3c0e 100644 --- a/templates/repo/issue/navbar.tmpl +++ b/templates/repo/issue/navbar.tmpl @@ -1,4 +1,4 @@ - +
diff --git a/templates/repo/issue/openclose.tmpl b/templates/repo/issue/openclose.tmpl index eb2d6e09ee..efe4fa6756 100644 --- a/templates/repo/issue/openclose.tmpl +++ b/templates/repo/issue/openclose.tmpl @@ -1,5 +1,5 @@ -
- {{template "shared/user/org_profile_avatar" .}} -
- {{template "user/overview/header" .}} -
+
+ {{if .ContextUser.IsOrganization}} + {{template "org/header" .}} + {{else}} + {{template "shared/user/org_profile_avatar" .}} +
+ {{template "user/overview/header" .}} +
+ {{end}}
{{template "projects/view" .}}
diff --git a/templates/org/settings/options.tmpl b/templates/org/settings/options.tmpl index 62debfc0ae..2ef7031aef 100644 --- a/templates/org/settings/options.tmpl +++ b/templates/org/settings/options.tmpl @@ -6,14 +6,18 @@
{{.CsrfTokenHtml}} -
- +
+ + {{ctx.Locale.Tr "org.settings.change_orgname_prompt"}} + {{if gt .CooldownPeriod 0}} + {{ctx.Locale.TrN .CooldownPeriod "org.settings.change_orgname_redirect_prompt.with_cooldown.one" "org.settings.change_orgname_redirect_prompt.with_cooldown.few" .CooldownPeriod}} + {{else}} + {{ctx.Locale.Tr "org.settings.change_orgname_redirect_prompt"}} + {{end}} + +
diff --git a/templates/package/content/alt.tmpl b/templates/package/content/alt.tmpl new file mode 100644 index 0000000000..9a5e9c7656 --- /dev/null +++ b/templates/package/content/alt.tmpl @@ -0,0 +1,49 @@ +{{if eq .PackageDescriptor.Package.Type "alt"}} +

{{ctx.Locale.Tr "packages.installation"}}

+
+
+
+ +
{{- if gt (len .Groups) 1 -}}
+# {{ctx.Locale.Tr "packages.alt.repository.multiple_groups"}}
+
+{{end -}}
+# {{ctx.Locale.Tr "packages.alt.setup"}}
+{{- range $group := .Groups}}
+	{{- if $group}}{{$group = print "/" $group}}{{end}}
+apt-repo add rpm  _arch_ classic
+
+{{- end}}
+
+
+ +
+
# {{ctx.Locale.Tr "packages.alt.registry.install"}}
+apt-get update
+apt-get install {{$.PackageDescriptor.Package.Name}}
+
+
+
+ +
+
+
+ +

{{ctx.Locale.Tr "packages.alt.repository"}}

+
+ + + + + + + +
{{ctx.Locale.Tr "packages.alt.repository.architectures"}}
{{StringUtils.Join .Architectures ", "}}
+
+ + {{if or .PackageDescriptor.Metadata.Summary .PackageDescriptor.Metadata.Description}} +

{{ctx.Locale.Tr "packages.about"}}

+ {{if .PackageDescriptor.Metadata.Summary}}
{{.PackageDescriptor.Metadata.Summary}}
{{end}} + {{if .PackageDescriptor.Metadata.Description}}
{{.PackageDescriptor.Metadata.Description}}
{{end}} + {{end}} +{{end}} diff --git a/templates/package/content/arch.tmpl b/templates/package/content/arch.tmpl index 6138b1d698..6a041d323b 100644 --- a/templates/package/content/arch.tmpl +++ b/templates/package/content/arch.tmpl @@ -25,7 +25,7 @@ pacman-key --lsign-key '{{$.SignMail}}'
{{end -}}{{- if gt $GroupSize 1 -}} # {{ctx.Locale.Tr "packages.arch.pacman.repo.multi.item" .}} {{end -}} -[{{$.PackageDescriptor.Owner.LowerName}}.{{$.RegistryHost}}] +[{{$.PackageDescriptor.Owner.LowerName}}.{{$.PackageRegistryHost}}] SigLevel = Required Server = {{end -}} diff --git a/templates/package/content/container.tmpl b/templates/package/content/container.tmpl index b5fdcfeb1b..dd1c24269b 100644 --- a/templates/package/content/container.tmpl +++ b/templates/package/content/container.tmpl @@ -5,13 +5,13 @@
{{if eq .PackageDescriptor.Metadata.Type "helm"}} -
helm pull oci://{{.RegistryHost}}/{{.PackageDescriptor.Owner.LowerName}}/{{.PackageDescriptor.Package.LowerName}} --version {{.PackageDescriptor.Version.LowerVersion}}
+
helm pull oci://{{.PackageRegistryHost}}/{{.PackageDescriptor.Owner.LowerName}}/{{.PackageDescriptor.Package.LowerName}} --version {{.PackageDescriptor.Version.LowerVersion}}
{{else}} {{$separator := ":"}} {{if not .PackageDescriptor.Metadata.IsTagged}} {{$separator = "@"}} {{end}} -
docker pull {{.RegistryHost}}/{{.PackageDescriptor.Owner.LowerName}}/{{.PackageDescriptor.Package.LowerName}}{{$separator}}{{.PackageDescriptor.Version.LowerVersion}}
+
docker pull {{.PackageRegistryHost}}/{{.PackageDescriptor.Owner.LowerName}}/{{.PackageDescriptor.Package.LowerName}}{{$separator}}{{.PackageDescriptor.Version.LowerVersion}}
{{end}}
@@ -24,7 +24,7 @@
{{if .PackageDescriptor.Metadata.Manifests}} -

{{ctx.Locale.Tr "packages.container.multi_arch"}}

+

{{ctx.Locale.Tr "packages.container.images.title"}}

@@ -36,11 +36,13 @@ {{range .PackageDescriptor.Metadata.Manifests}} - + {{if ne .Platform "unknown/unknown"}} + - + + {{end}} {{end}}
{{.Digest}} {{.Platform}} {{ctx.Locale.TrSize .Size}}
diff --git a/templates/package/content/nuget.tmpl b/templates/package/content/nuget.tmpl index ea665c7bbc..c8568845f1 100644 --- a/templates/package/content/nuget.tmpl +++ b/templates/package/content/nuget.tmpl @@ -35,11 +35,12 @@ + {{$tooltipSearchInNuget := ctx.Locale.Tr "packages.search_in_external_registry" "nuget.org"}} {{range $framework, $dependencies := .PackageDescriptor.Metadata.Dependencies}} {{range $dependencies}} - {{.ID}} - {{.Version}} + {{.ID}} {{svg "octicon-link-external"}} + {{.Version}} {{svg "octicon-link-external"}} {{$framework}} {{end}} diff --git a/templates/package/metadata/alt.tmpl b/templates/package/metadata/alt.tmpl new file mode 100644 index 0000000000..16fb52e9b1 --- /dev/null +++ b/templates/package/metadata/alt.tmpl @@ -0,0 +1,4 @@ +{{if eq .PackageDescriptor.Package.Type "alt"}} + {{if .PackageDescriptor.Metadata.ProjectURL}}
{{svg "octicon-link-external" 16 "tw-mr-2"}} {{ctx.Locale.Tr "packages.details.project_site"}}
{{end}} + {{if .PackageDescriptor.Metadata.License}}
{{svg "octicon-law" 16 "tw-mr-2"}} {{.PackageDescriptor.Metadata.License}}
{{end}} +{{end}} diff --git a/templates/package/shared/cleanup_rules/preview.tmpl b/templates/package/shared/cleanup_rules/preview.tmpl index 0d9c4b0d46..da034fec7a 100644 --- a/templates/package/shared/cleanup_rules/preview.tmpl +++ b/templates/package/shared/cleanup_rules/preview.tmpl @@ -22,7 +22,7 @@ {{.Version.Version}} {{.Creator.Name}} {{ctx.Locale.TrSize .CalculateBlobSize}} - {{DateTime "short" .Version.CreatedUnix}} + {{DateUtils.AbsoluteShort .Version.CreatedUnix}} {{else}} diff --git a/templates/package/shared/list.tmpl b/templates/package/shared/list.tmpl index 36f8bc1522..19b41d0bc8 100644 --- a/templates/package/shared/list.tmpl +++ b/templates/package/shared/list.tmpl @@ -24,7 +24,7 @@ {{svg .Package.Type.SVGName 16}} {{.Package.Type.Name}}
- {{$timeStr := TimeSinceUnix .Version.CreatedUnix ctx.Locale}} + {{$timeStr := DateUtils.TimeSince .Version.CreatedUnix}} {{$hasRepositoryAccess := false}} {{if .Repository}} {{$hasRepositoryAccess = index $.RepositoryAccessMap .Repository.ID}} diff --git a/templates/package/shared/versionlist.tmpl b/templates/package/shared/versionlist.tmpl index e5c568e059..7a1059e262 100644 --- a/templates/package/shared/versionlist.tmpl +++ b/templates/package/shared/versionlist.tmpl @@ -25,7 +25,7 @@
{{.Version.LowerVersion}}
- {{ctx.Locale.Tr "packages.published_by" (TimeSinceUnix .Version.CreatedUnix ctx.Locale) .Creator.HomeLink .Creator.GetDisplayName}} + {{ctx.Locale.Tr "packages.published_by" (DateUtils.TimeSince .Version.CreatedUnix) .Creator.HomeLink .Creator.GetDisplayName}}
diff --git a/templates/package/view.tmpl b/templates/package/view.tmpl index fe88e54317..18220e904b 100644 --- a/templates/package/view.tmpl +++ b/templates/package/view.tmpl @@ -8,7 +8,7 @@

{{.PackageDescriptor.Package.Name}} ({{.PackageDescriptor.Version.Version}})

- {{$timeStr := TimeSinceUnix .PackageDescriptor.Version.CreatedUnix ctx.Locale}} + {{$timeStr := DateUtils.TimeSince .PackageDescriptor.Version.CreatedUnix}} {{if .HasRepositoryAccess}} {{ctx.Locale.Tr "packages.published_by_in" $timeStr .PackageDescriptor.Creator.HomeLink .PackageDescriptor.Creator.GetDisplayName .PackageDescriptor.Repository.Link .PackageDescriptor.Repository.FullName}} {{else}} @@ -37,6 +37,7 @@ {{template "package/content/pub" .}} {{template "package/content/pypi" .}} {{template "package/content/rpm" .}} + {{template "package/content/alt" .}} {{template "package/content/rubygems" .}} {{template "package/content/swift" .}} {{template "package/content/vagrant" .}} @@ -48,7 +49,7 @@ {{if .HasRepositoryAccess}}
{{svg "octicon-repo" 16 "tw-mr-2"}} {{.PackageDescriptor.Repository.FullName}}
{{end}} -
{{svg "octicon-calendar" 16 "tw-mr-2"}} {{TimeSinceUnix .PackageDescriptor.Version.CreatedUnix ctx.Locale}}
+
{{svg "octicon-calendar" 16 "tw-mr-2"}} {{DateUtils.TimeSince .PackageDescriptor.Version.CreatedUnix}}
{{svg "octicon-download" 16 "tw-mr-2"}} {{.PackageDescriptor.Version.DownloadCount}}
{{template "package/metadata/alpine" .}} {{template "package/metadata/arch" .}} @@ -68,6 +69,7 @@ {{template "package/metadata/pub" .}} {{template "package/metadata/pypi" .}} {{template "package/metadata/rpm" .}} + {{template "package/metadata/alt" .}} {{template "package/metadata/rubygems" .}} {{template "package/metadata/swift" .}} {{template "package/metadata/vagrant" .}} @@ -94,7 +96,7 @@ {{range .LatestVersions}}
{{.Version}} - {{DateTime "short" .CreatedUnix}} + {{DateUtils.AbsoluteShort .CreatedUnix}}
{{end}}
diff --git a/templates/projects/list.tmpl b/templates/projects/list.tmpl index b892cff996..5da2757748 100644 --- a/templates/projects/list.tmpl +++ b/templates/projects/list.tmpl @@ -1,6 +1,6 @@ {{if and $.CanWriteProjects (not $.Repository.IsArchived)}}
- {{if .RefLink}} - {{.PrettyRef}} + {{if .IsRefDeleted}} + {{.PrettyRef}} {{else}} - {{.PrettyRef}} + {{.PrettyRef}} {{end}}
-
{{svg "octicon-calendar" 16}}{{TimeSinceUnix .Updated ctx.Locale}}
+
{{svg "octicon-calendar" 16}}{{DateUtils.TimeSince .Updated}}
{{svg "octicon-stopwatch" 16}}{{.Duration}}
diff --git a/templates/repo/actions/status.tmpl b/templates/repo/actions/status.tmpl index a0e02cf8d7..99fa74ac17 100644 --- a/templates/repo/actions/status.tmpl +++ b/templates/repo/actions/status.tmpl @@ -17,13 +17,15 @@ {{svg "octicon-check-circle-fill" $size (printf "text green %s" $className)}} {{else if eq .status "skipped"}} {{svg "octicon-skip" $size (printf "text grey %s" $className)}} +{{else if eq .status "cancelled"}} + {{svg "octicon-stop" $size (printf "text grey %s" $className)}} {{else if eq .status "waiting"}} {{svg "octicon-clock" $size (printf "text yellow %s" $className)}} {{else if eq .status "blocked"}} {{svg "octicon-blocked" $size (printf "text yellow %s" $className)}} {{else if eq .status "running"}} {{svg "octicon-meter" $size (printf "text yellow job-status-rotate %s" $className)}} -{{else if or (eq .status "failure") or (eq .status "cancelled") or (eq .status "unknown")}} +{{else}}{{/*failure, unknown*/}} {{svg "octicon-x-circle-fill" $size (printf "text red %s" $className)}} {{end}} diff --git a/templates/repo/branch/list.tmpl b/templates/repo/branch/list.tmpl index f5bffb097e..c60017ba87 100644 --- a/templates/repo/branch/list.tmpl +++ b/templates/repo/branch/list.tmpl @@ -27,7 +27,7 @@ {{template "repo/commit_statuses" dict "Status" (index $.CommitStatus .DefaultBranchBranch.DBBranch.CommitID) "Statuses" (index $.CommitStatuses .DefaultBranchBranch.DBBranch.CommitID)}}
-

{{svg "octicon-git-commit" 16 "tw-mr-1"}}{{ShortSha .DefaultBranchBranch.DBBranch.CommitID}} · {{RenderCommitMessage $.Context .DefaultBranchBranch.DBBranch.CommitMessage (.Repository.ComposeMetas ctx)}} · {{ctx.Locale.Tr "org.repo_updated" (TimeSince .DefaultBranchBranch.DBBranch.CommitTime.AsTime ctx.Locale)}} {{if .DefaultBranchBranch.DBBranch.Pusher}}  {{template "shared/user/avatarlink" dict "user" .DefaultBranchBranch.DBBranch.Pusher}}{{template "shared/user/namelink" .DefaultBranchBranch.DBBranch.Pusher}}{{end}}

+

{{svg "octicon-git-commit" 16 "tw-mr-1"}}{{ShortSha .DefaultBranchBranch.DBBranch.CommitID}} · {{RenderCommitMessage $.Context .DefaultBranchBranch.DBBranch.CommitMessage (.Repository.ComposeMetas ctx)}} · {{ctx.Locale.Tr "org.repo_updated" (DateUtils.TimeSince .DefaultBranchBranch.DBBranch.CommitTime)}}{{if .DefaultBranchBranch.DBBranch.Pusher}}  {{template "shared/user/avatarlink" dict "user" .DefaultBranchBranch.DBBranch.Pusher}}{{template "shared/user/namelink" .DefaultBranchBranch.DBBranch.Pusher}}{{end}}

{{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted)}} @@ -92,7 +92,7 @@ {{.DBBranch.Name}}