diff options
330 files changed, 24958 insertions, 3461 deletions
diff --git a/.codeclimate.yml b/.codeclimate.yml index 216ecf43beb..8699a903f2a 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -10,12 +10,6 @@ engines: - javascript exclude_paths: - "lib/api/v3/*" - eslint: - enabled: true - channel: "eslint-4" - rubocop: - enabled: true - channel: "gitlab-rubocop-0-52-1" ratings: paths: - Gemfile.lock diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 86bdb7a4643..e0719221221 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -78,6 +78,19 @@ stages: - mysql:latest - redis:alpine +.rails5-variables: &rails5-variables + script: + - export RAILS5=${RAILS5} + - export BUNDLE_GEMFILE=${BUNDLE_GEMFILE} + +.rails5: &rails5 + allow_failure: true + only: + - /rails5/ + variables: + BUNDLE_GEMFILE: "Gemfile.rails5" + RAILS5: "true" + # Skip all jobs except the ones that begin with 'docs/'. # Used for commits including ONLY documentation changes. # https://docs.gitlab.com/ce/development/writing_documentation.html#testing @@ -118,6 +131,7 @@ stages: <<: *dedicated-runner <<: *except-docs-and-qa <<: *pull-cache + <<: *rails5-variables stage: test script: - JOB_NAME=( $CI_JOB_NAME ) @@ -148,14 +162,23 @@ stages: <<: *rspec-metadata <<: *use-pg +.rspec-metadata-pg-rails5: &rspec-metadata-pg-rails5 + <<: *rspec-metadata-pg + <<: *rails5 + .rspec-metadata-mysql: &rspec-metadata-mysql <<: *rspec-metadata <<: *use-mysql +.rspec-metadata-mysql-rails5: &rspec-metadata-mysql-rails5 + <<: *rspec-metadata-mysql + <<: *rails5 + .spinach-metadata: &spinach-metadata <<: *dedicated-runner <<: *except-docs-and-qa <<: *pull-cache + <<: *rails5-variables stage: test script: - JOB_NAME=( $CI_JOB_NAME ) @@ -179,10 +202,18 @@ stages: <<: *spinach-metadata <<: *use-pg +.spinach-metadata-pg-rails5: &spinach-metadata-pg-rails5 + <<: *spinach-metadata-pg + <<: *rails5 + .spinach-metadata-mysql: &spinach-metadata-mysql <<: *spinach-metadata <<: *use-mysql +.spinach-metadata-mysql-rails5: &spinach-metadata-mysql-rails5 + <<: *spinach-metadata-mysql + <<: *rails5 + .only-canonical-masters: &only-canonical-masters only: - master@gitlab-org/gitlab-ce @@ -468,6 +499,70 @@ spinach-pg 1 2: *spinach-metadata-pg spinach-mysql 0 2: *spinach-metadata-mysql spinach-mysql 1 2: *spinach-metadata-mysql +rspec-pg-rails5 0 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 1 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 2 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 3 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 4 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 5 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 6 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 7 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 8 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 9 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 10 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 11 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 12 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 13 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 14 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 15 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 16 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 17 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 18 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 19 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 20 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 21 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 22 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 23 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 24 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 25 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 26 28: *rspec-metadata-pg-rails5 +rspec-pg-rails5 27 28: *rspec-metadata-pg-rails5 + +rspec-mysql-rails5 0 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 1 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 2 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 3 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 4 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 5 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 6 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 7 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 8 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 9 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 10 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 11 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 12 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 13 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 14 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 15 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 16 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 17 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 18 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 19 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 20 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 21 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 22 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 23 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 24 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 25 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 26 28: *rspec-metadata-mysql-rails5 +rspec-mysql-rails5 27 28: *rspec-metadata-mysql-rails5 + +spinach-pg-rails5 0 2: *spinach-metadata-pg-rails5 +spinach-pg-rails5 1 2: *spinach-metadata-pg-rails5 + +spinach-mysql-rails5 0 2: *spinach-metadata-mysql-rails5 +spinach-mysql-rails5 1 2: *spinach-metadata-mysql-rails5 + static-analysis: <<: *dedicated-no-docs-no-db-pull-cache-job dependencies: @@ -632,9 +727,6 @@ codequality: cache: {} dependencies: [] script: - # Get the custom rubocop codeclimate image (https://gitlab.com/gitlab-org/codeclimate-rubocop/wikis/home) - - docker pull dev.gitlab.org:5005/gitlab/gitlab-build-images:gitlab-codeclimate-rubocop-0-52-1 - - docker tag dev.gitlab.org:5005/gitlab/gitlab-build-images:gitlab-codeclimate-rubocop-0-52-1 codeclimate/codeclimate-rubocop:gitlab-codeclimate-rubocop-0-52-1 # Extract "MAJOR.MINOR" from CI_SERVER_VERSION and generate "MAJOR-MINOR-stable" for Security Products - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/') - docker run --env SOURCE_CODE="$PWD" --volume "$PWD":/code --volume /var/run/docker.sock:/var/run/docker.sock "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code @@ -670,7 +762,13 @@ qa:selectors: - bundle exec bin/qa Test::Sanity::Selectors coverage: - <<: *dedicated-no-docs-no-db-pull-cache-job + # Don't include dedicated-no-docs-no-db-pull-cache-job here since we need to + # download artifacts from all the rspec jobs instead of from setup-test-env only + <<: *dedicated-runner + <<: *except-docs-and-qa + <<: *pull-cache + variables: + SETUP_DB: "false" stage: post-test script: - bundle exec scripts/merge-simplecov diff --git a/CHANGELOG.md b/CHANGELOG.md index 6491905a1ac..9109f04fb17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ documentation](doc/development/changelog.md) for instructions on adding your own entry. +## 10.6.3 (2018-04-03) + +### Security (2 changes) + +- Fix XSS on diff view stored on filenames. +- Adds confidential notes channel for Slack/Mattermost. + + ## 10.6.2 (2018-03-29) ### Fixed (2 changes, 1 of them is from the community) @@ -217,6 +225,14 @@ entry. - Use host URL to build JIRA remote link icon. +## 10.5.7 (2018-04-03) + +### Security (2 changes) + +- Fix XSS on diff view stored on filenames. +- Adds confidential notes channel for Slack/Mattermost. + + ## 10.5.6 (2018-03-16) ### Security (2 changes) @@ -484,6 +500,14 @@ entry. - Adds empty state illustration for pending job. +## 10.4.7 (2018-04-03) + +### Security (2 changes) + +- Fix XSS on diff view stored on filenames. +- Adds confidential notes channel for Slack/Mattermost. + + ## 10.4.6 (2018-03-16) ### Security (2 changes) diff --git a/GITLAB_PAGES_VERSION b/GITLAB_PAGES_VERSION index 39e898a4f95..a3df0a6959e 100644 --- a/GITLAB_PAGES_VERSION +++ b/GITLAB_PAGES_VERSION @@ -1 +1 @@ -0.7.1 +0.8.0 diff --git a/app/assets/javascripts/awards_handler.js b/app/assets/javascripts/awards_handler.js index 0e1ca7fe883..976d32abe9b 100644 --- a/app/assets/javascripts/awards_handler.js +++ b/app/assets/javascripts/awards_handler.js @@ -4,7 +4,8 @@ import $ from 'jquery'; import _ from 'underscore'; import Cookies from 'js-cookie'; import { __ } from './locale'; -import { isInIssuePage, isInMRPage, isInEpicPage, hasVueMRDiscussionsCookie, updateTooltipTitle } from './lib/utils/common_utils'; +import { updateTooltipTitle } from './lib/utils/common_utils'; +import { isInVueNoteablePage } from './lib/utils/dom_utils'; import flash from './flash'; import axios from './lib/utils/axios_utils'; @@ -243,7 +244,7 @@ class AwardsHandler { addAward(votesBlock, awardUrl, emoji, checkMutuality, callback) { const isMainAwardsBlock = votesBlock.closest('.js-noteable-awards').length; - if (this.isInVueNoteablePage() && !isMainAwardsBlock) { + if (isInVueNoteablePage() && !isMainAwardsBlock) { const id = votesBlock.attr('id').replace('note_', ''); this.hideMenuElement($('.emoji-menu')); @@ -295,16 +296,8 @@ class AwardsHandler { } } - isVueMRDiscussions() { - return isInMRPage() && hasVueMRDiscussionsCookie() && !$('#diffs').is(':visible'); - } - - isInVueNoteablePage() { - return isInIssuePage() || isInEpicPage() || this.isVueMRDiscussions(); - } - getVotesBlock() { - if (this.isInVueNoteablePage()) { + if (isInVueNoteablePage()) { const $el = $('.js-add-award.is-active').closest('.note.timeline-entry'); if ($el.length) { diff --git a/app/assets/javascripts/boards/components/board_sidebar.js b/app/assets/javascripts/boards/components/board_sidebar.js index a44969272a1..c4ee4f6c855 100644 --- a/app/assets/javascripts/boards/components/board_sidebar.js +++ b/app/assets/javascripts/boards/components/board_sidebar.js @@ -60,10 +60,6 @@ gl.issueBoards.BoardSidebar = Vue.extend({ this.issue = this.detail.issue; this.list = this.detail.list; - - this.$nextTick(() => { - this.endpoint = this.$refs.assigneeDropdown.dataset.issueUpdate; - }); }, deep: true }, @@ -91,7 +87,7 @@ gl.issueBoards.BoardSidebar = Vue.extend({ saveAssignees () { this.loadingAssignees = true; - gl.issueBoards.BoardsStore.detail.issue.update(this.endpoint) + gl.issueBoards.BoardsStore.detail.issue.update() .then(() => { this.loadingAssignees = false; }) diff --git a/app/assets/javascripts/boards/components/issue_card_inner.js b/app/assets/javascripts/boards/components/issue_card_inner.js index 8aee5b23c76..84fe9b1288a 100644 --- a/app/assets/javascripts/boards/components/issue_card_inner.js +++ b/app/assets/javascripts/boards/components/issue_card_inner.js @@ -68,15 +68,6 @@ gl.issueBoards.IssueCardInner = Vue.extend({ return this.issue.assignees.length > this.numberOverLimit; }, - cardUrl() { - let baseUrl = this.issueLinkBase; - - if (this.groupId && this.issue.project) { - baseUrl = this.issueLinkBase.replace(':project_path', this.issue.project.path); - } - - return `${baseUrl}/${this.issue.iid}`; - }, issueId() { if (this.issue.iid) { return `#${this.issue.iid}`; @@ -153,13 +144,13 @@ gl.issueBoards.IssueCardInner = Vue.extend({ /> <a class="js-no-trigger" - :href="cardUrl" + :href="issue.path" :title="issue.title">{{ issue.title }}</a> <span class="card-number" v-if="issueId" > - <template v-if="groupId && issue.project">{{issue.project.path}}</template>{{ issueId }} + {{ issue.referencePath }} </span> </h4> <div class="card-assignee"> diff --git a/app/assets/javascripts/boards/components/sidebar/remove_issue.js b/app/assets/javascripts/boards/components/sidebar/remove_issue.js index 09c683ff621..0a0820ec5fd 100644 --- a/app/assets/javascripts/boards/components/sidebar/remove_issue.js +++ b/app/assets/javascripts/boards/components/sidebar/remove_issue.js @@ -17,14 +17,10 @@ gl.issueBoards.RemoveIssueBtn = Vue.extend({ type: Object, required: true, }, - issueUpdate: { - type: String, - required: true, - }, }, computed: { updateUrl() { - return this.issueUpdate.replace(':project_path', this.issue.project.path); + return this.issue.path; }, }, methods: { diff --git a/app/assets/javascripts/boards/filtered_search_boards.js b/app/assets/javascripts/boards/filtered_search_boards.js index fb40b9f5565..70367c4f711 100644 --- a/app/assets/javascripts/boards/filtered_search_boards.js +++ b/app/assets/javascripts/boards/filtered_search_boards.js @@ -6,6 +6,7 @@ export default class FilteredSearchBoards extends FilteredSearchManager { constructor(store, updateUrl = false, cantEdit = []) { super({ page: 'boards', + isGroupDecendent: true, stateFiltersSelector: '.issues-state-filters', }); diff --git a/app/assets/javascripts/boards/models/issue.js b/app/assets/javascripts/boards/models/issue.js index 4c5079efc8b..b381d48d625 100644 --- a/app/assets/javascripts/boards/models/issue.js +++ b/app/assets/javascripts/boards/models/issue.js @@ -23,6 +23,8 @@ class ListIssue { }; this.isLoading = {}; this.sidebarInfoEndpoint = obj.issue_sidebar_endpoint; + this.referencePath = obj.reference_path; + this.path = obj.real_path; this.toggleSubscriptionEndpoint = obj.toggle_subscription_endpoint; this.milestone_id = obj.milestone_id; this.project_id = obj.project_id; @@ -98,7 +100,7 @@ class ListIssue { this.isLoading[key] = value; } - update (url) { + update () { const data = { issue: { milestone_id: this.milestone ? this.milestone.id : null, @@ -113,7 +115,7 @@ class ListIssue { } const projectPath = this.project ? this.project.path : ''; - return Vue.http.patch(url.replace(':project_path', projectPath), data); + return Vue.http.patch(`${this.path}.json`, data); } } diff --git a/app/assets/javascripts/boards/services/board_service.js b/app/assets/javascripts/boards/services/board_service.js index d78d4701974..7c90597f77c 100644 --- a/app/assets/javascripts/boards/services/board_service.js +++ b/app/assets/javascripts/boards/services/board_service.js @@ -19,7 +19,7 @@ export default class BoardService { } static generateIssuePath(boardId, id) { - return `${gon.relative_url_root}/-/boards/${boardId ? `/${boardId}` : ''}/issues${id ? `/${id}` : ''}`; + return `${gon.relative_url_root}/-/boards/${boardId ? `${boardId}` : ''}/issues${id ? `/${id}` : ''}`; } all() { diff --git a/app/assets/javascripts/ide/components/ide.vue b/app/assets/javascripts/ide/components/ide.vue index d22869466c9..1c237c0ec97 100644 --- a/app/assets/javascripts/ide/components/ide.vue +++ b/app/assets/javascripts/ide/components/ide.vue @@ -3,7 +3,6 @@ import { mapState, mapGetters } from 'vuex'; import ideSidebar from './ide_side_bar.vue'; import ideContextbar from './ide_context_bar.vue'; import repoTabs from './repo_tabs.vue'; -import repoFileButtons from './repo_file_buttons.vue'; import ideStatusBar from './ide_status_bar.vue'; import repoEditor from './repo_editor.vue'; @@ -12,7 +11,6 @@ export default { ideSidebar, ideContextbar, repoTabs, - repoFileButtons, ideStatusBar, repoEditor, }, @@ -70,9 +68,6 @@ export default { class="multi-file-edit-pane-content" :file="activeFile" /> - <repo-file-buttons - :file="activeFile" - /> <ide-status-bar :file="activeFile" /> diff --git a/app/assets/javascripts/ide/components/ide_file_buttons.vue b/app/assets/javascripts/ide/components/ide_file_buttons.vue new file mode 100644 index 00000000000..6d07329df71 --- /dev/null +++ b/app/assets/javascripts/ide/components/ide_file_buttons.vue @@ -0,0 +1,83 @@ +<script> +import { __ } from '~/locale'; +import tooltip from '~/vue_shared/directives/tooltip'; +import Icon from '~/vue_shared/components/icon.vue'; + +export default { + components: { + Icon, + }, + directives: { + tooltip, + }, + props: { + file: { + type: Object, + required: true, + }, + }, + computed: { + showButtons() { + return ( + this.file.rawPath || this.file.blamePath || this.file.commitsPath || this.file.permalink + ); + }, + rawDownloadButtonLabel() { + return this.file.binary ? __('Download') : __('Raw'); + }, + }, +}; +</script> + +<template> + <div + v-if="showButtons" + class="pull-right ide-btn-group" + > + <a + v-tooltip + :href="file.blamePath" + :title="__('Blame')" + class="btn btn-xs btn-transparent blame" + > + <icon + name="blame" + :size="16" + /> + </a> + <a + v-tooltip + :href="file.commitsPath" + :title="__('History')" + class="btn btn-xs btn-transparent history" + > + <icon + name="history" + :size="16" + /> + </a> + <a + v-tooltip + :href="file.permalink" + :title="__('Permalink')" + class="btn btn-xs btn-transparent permalink" + > + <icon + name="link" + :size="16" + /> + </a> + <a + v-tooltip + :href="file.rawPath" + target="_blank" + class="btn btn-xs btn-transparent prepend-left-10 raw" + rel="noopener noreferrer" + :title="rawDownloadButtonLabel"> + <icon + name="download" + :size="16" + /> + </a> + </div> +</template> diff --git a/app/assets/javascripts/ide/components/repo_editor.vue b/app/assets/javascripts/ide/components/repo_editor.vue index b1a16350c19..8a709b31ea0 100644 --- a/app/assets/javascripts/ide/components/repo_editor.vue +++ b/app/assets/javascripts/ide/components/repo_editor.vue @@ -2,10 +2,16 @@ /* global monaco */ import { mapState, mapGetters, mapActions } from 'vuex'; import flash from '~/flash'; +import ContentViewer from '~/vue_shared/components/content_viewer/content_viewer.vue'; import monacoLoader from '../monaco_loader'; import Editor from '../lib/editor'; +import IdeFileButtons from './ide_file_buttons.vue'; export default { + components: { + ContentViewer, + IdeFileButtons, + }, props: { file: { type: Object, @@ -13,11 +19,21 @@ export default { }, }, computed: { - ...mapState(['leftPanelCollapsed', 'rightPanelCollapsed', 'viewer', 'delayViewerUpdated']), + ...mapState(['rightPanelCollapsed', 'viewer', 'delayViewerUpdated', 'panelResizing']), ...mapGetters(['currentMergeRequest']), shouldHideEditor() { return this.file && this.file.binary && !this.file.raw; }, + editTabCSS() { + return { + active: this.file.viewMode === 'edit', + }; + }, + previewTabCSS() { + return { + active: this.file.viewMode === 'preview', + }; + }, }, watch: { file(oldVal, newVal) { @@ -26,15 +42,17 @@ export default { this.initMonaco(); } }, - leftPanelCollapsed() { - this.editor.updateDimensions(); - }, rightPanelCollapsed() { this.editor.updateDimensions(); }, viewer() { this.createEditorInstance(); }, + panelResizing() { + if (!this.panelResizing) { + this.editor.updateDimensions(); + } + }, }, beforeDestroy() { this.editor.dispose(); @@ -56,6 +74,7 @@ export default { 'changeFileContent', 'setFileLanguage', 'setEditorPosition', + 'setFileViewMode', 'setFileEOL', 'updateViewer', 'updateDelayViewerUpdated', @@ -153,15 +172,47 @@ export default { class="blob-viewer-container blob-editor-container" > <div - v-if="shouldHideEditor" - v-html="file.html" - > + class="ide-mode-tabs clearfix" + v-if="!shouldHideEditor"> + <ul class="nav-links pull-left"> + <li :class="editTabCSS"> + <a + href="javascript:void(0);" + role="button" + @click.prevent="setFileViewMode({ file, viewMode: 'edit' })"> + <template v-if="viewer === 'editor'"> + {{ __('Edit') }} + </template> + <template v-else> + {{ __('Review') }} + </template> + </a> + </li> + <li + v-if="file.previewMode" + :class="previewTabCSS"> + <a + href="javascript:void(0);" + role="button" + @click.prevent="setFileViewMode({ file, viewMode:'preview' })"> + {{ file.previewMode.previewTitle }} + </a> + </li> + </ul> + <ide-file-buttons + :file="file" + /> </div> <div - v-show="!shouldHideEditor" + v-show="!shouldHideEditor && file.viewMode === 'edit'" ref="editor" class="multi-file-editor-holder" > </div> + <content-viewer + v-if="!shouldHideEditor && file.viewMode === 'preview'" + :content="file.content || file.raw" + :path="file.path" + :project-path="file.projectId"/> </div> </template> diff --git a/app/assets/javascripts/ide/components/repo_file_buttons.vue b/app/assets/javascripts/ide/components/repo_file_buttons.vue deleted file mode 100644 index 4ea8cf7504b..00000000000 --- a/app/assets/javascripts/ide/components/repo_file_buttons.vue +++ /dev/null @@ -1,61 +0,0 @@ -<script> -export default { - props: { - file: { - type: Object, - required: true, - }, - }, - computed: { - showButtons() { - return this.file.rawPath || - this.file.blamePath || - this.file.commitsPath || - this.file.permalink; - }, - rawDownloadButtonLabel() { - return this.file.binary ? 'Download' : 'Raw'; - }, - }, -}; -</script> - -<template> - <div - v-if="showButtons" - class="multi-file-editor-btn-group" - > - <a - :href="file.rawPath" - target="_blank" - class="btn btn-default btn-sm raw" - rel="noopener noreferrer"> - {{ rawDownloadButtonLabel }} - </a> - - <div - class="btn-group" - role="group" - aria-label="File actions" - > - <a - :href="file.blamePath" - class="btn btn-default btn-sm blame" - > - Blame - </a> - <a - :href="file.commitsPath" - class="btn btn-default btn-sm history" - > - History - </a> - <a - :href="file.permalink" - class="btn btn-default btn-sm permalink" - > - Permalink - </a> - </div> - </div> -</template> diff --git a/app/assets/javascripts/ide/components/resizable_panel.vue b/app/assets/javascripts/ide/components/resizable_panel.vue index faa690ecba0..5ea2a2f6825 100644 --- a/app/assets/javascripts/ide/components/resizable_panel.vue +++ b/app/assets/javascripts/ide/components/resizable_panel.vue @@ -1,67 +1,64 @@ <script> - import { mapActions, mapState } from 'vuex'; - import PanelResizer from '~/vue_shared/components/panel_resizer.vue'; +import { mapActions, mapState } from 'vuex'; +import PanelResizer from '~/vue_shared/components/panel_resizer.vue'; - export default { - components: { - PanelResizer, +export default { + components: { + PanelResizer, + }, + props: { + collapsible: { + type: Boolean, + required: true, }, - props: { - collapsible: { - type: Boolean, - required: true, - }, - initialWidth: { - type: Number, - required: true, - }, - minSize: { - type: Number, - required: false, - default: 200, - }, - side: { - type: String, - required: true, - }, + initialWidth: { + type: Number, + required: true, }, - data() { - return { - width: this.initialWidth, - }; + minSize: { + type: Number, + required: false, + default: 340, }, - computed: { - ...mapState({ - collapsed(state) { - return state[`${this.side}PanelCollapsed`]; - }, - }), - panelStyle() { - if (!this.collapsed) { - return { - width: `${this.width}px`, - }; - } - - return {}; - }, + side: { + type: String, + required: true, }, - methods: { - ...mapActions([ - 'setPanelCollapsedStatus', - 'setResizingStatus', - ]), - toggleFullbarCollapsed() { - if (this.collapsed && this.collapsible) { - this.setPanelCollapsedStatus({ - side: this.side, - collapsed: !this.collapsed, - }); - } + }, + data() { + return { + width: this.initialWidth, + }; + }, + computed: { + ...mapState({ + collapsed(state) { + return state[`${this.side}PanelCollapsed`]; }, + }), + panelStyle() { + if (!this.collapsed) { + return { + width: `${this.width}px`, + }; + } + + return {}; + }, + }, + methods: { + ...mapActions(['setPanelCollapsedStatus', 'setResizingStatus']), + toggleFullbarCollapsed() { + if (this.collapsed && this.collapsible) { + this.setPanelCollapsedStatus({ + side: this.side, + collapsed: !this.collapsed, + }); + } }, - maxSize: (window.innerWidth / 2), - }; + }, + maxSize: window.innerWidth / 2, +}; </script> <template> diff --git a/app/assets/javascripts/ide/lib/editor.js b/app/assets/javascripts/ide/lib/editor.js index 6b4ba30e086..001737d6ee8 100644 --- a/app/assets/javascripts/ide/lib/editor.js +++ b/app/assets/javascripts/ide/lib/editor.js @@ -69,6 +69,7 @@ export default class Editor { occurrencesHighlight: false, renderLineHighlight: 'none', hideCursorInOverviewRuler: true, + renderSideBySide: Editor.renderSideBySide(domElement), })), ); @@ -81,7 +82,7 @@ export default class Editor { } attachModel(model) { - if (this.instance.getEditorType() === 'vs.editor.IDiffEditor') { + if (this.isDiffEditorType) { this.instance.setModel({ original: model.getOriginalModel(), modified: model.getModel(), @@ -153,6 +154,7 @@ export default class Editor { updateDimensions() { this.instance.layout(); + this.updateDiffView(); } setPosition({ lineNumber, column }) { @@ -171,4 +173,20 @@ export default class Editor { this.disposable.add(this.instance.onDidChangeCursorPosition(e => cb(this.instance, e))); } + + updateDiffView() { + if (!this.isDiffEditorType) return; + + this.instance.updateOptions({ + renderSideBySide: Editor.renderSideBySide(this.instance.getDomNode()), + }); + } + + get isDiffEditorType() { + return this.instance.getEditorType() === 'vs.editor.IDiffEditor'; + } + + static renderSideBySide(domElement) { + return domElement.offsetWidth >= 700; + } } diff --git a/app/assets/javascripts/ide/lib/editor_options.js b/app/assets/javascripts/ide/lib/editor_options.js index a213862f9b3..9f895d49f2e 100644 --- a/app/assets/javascripts/ide/lib/editor_options.js +++ b/app/assets/javascripts/ide/lib/editor_options.js @@ -6,7 +6,7 @@ export const defaultEditorOptions = { minimap: { enabled: false, }, - wordWrap: 'bounded', + wordWrap: 'on', }; export default [ diff --git a/app/assets/javascripts/ide/stores/actions/file.js b/app/assets/javascripts/ide/stores/actions/file.js index 6b034ea1e82..1a17320a1ea 100644 --- a/app/assets/javascripts/ide/stores/actions/file.js +++ b/app/assets/javascripts/ide/stores/actions/file.js @@ -149,6 +149,10 @@ export const setEditorPosition = ({ getters, commit }, { editorRow, editorColumn } }; +export const setFileViewMode = ({ state, commit }, { file, viewMode }) => { + commit(types.SET_FILE_VIEWMODE, { file, viewMode }); +}; + export const discardFileChanges = ({ state, commit }, path) => { const file = state.entries[path]; diff --git a/app/assets/javascripts/ide/stores/mutation_types.js b/app/assets/javascripts/ide/stores/mutation_types.js index ee759bff516..e3f504e5ab0 100644 --- a/app/assets/javascripts/ide/stores/mutation_types.js +++ b/app/assets/javascripts/ide/stores/mutation_types.js @@ -38,6 +38,7 @@ export const SET_FILE_BASE_RAW_DATA = 'SET_FILE_BASE_RAW_DATA'; export const UPDATE_FILE_CONTENT = 'UPDATE_FILE_CONTENT'; export const SET_FILE_LANGUAGE = 'SET_FILE_LANGUAGE'; export const SET_FILE_POSITION = 'SET_FILE_POSITION'; +export const SET_FILE_VIEWMODE = 'SET_FILE_VIEWMODE'; export const SET_FILE_EOL = 'SET_FILE_EOL'; export const DISCARD_FILE_CHANGES = 'DISCARD_FILE_CHANGES'; export const ADD_FILE_TO_CHANGED = 'ADD_FILE_TO_CHANGED'; diff --git a/app/assets/javascripts/ide/stores/mutations/file.js b/app/assets/javascripts/ide/stores/mutations/file.js index 926b6f66d78..6a143e518f9 100644 --- a/app/assets/javascripts/ide/stores/mutations/file.js +++ b/app/assets/javascripts/ide/stores/mutations/file.js @@ -42,6 +42,7 @@ export default { renderError: data.render_error, raw: null, baseRaw: null, + html: data.html, }); }, [types.SET_FILE_RAW_DATA](state, { file, raw }) { @@ -83,6 +84,11 @@ export default { mrChange, }); }, + [types.SET_FILE_VIEWMODE](state, { file, viewMode }) { + Object.assign(state.entries[file.path], { + viewMode, + }); + }, [types.DISCARD_FILE_CHANGES](state, path) { Object.assign(state.entries[path], { content: state.entries[path].raw, diff --git a/app/assets/javascripts/ide/stores/utils.js b/app/assets/javascripts/ide/stores/utils.js index 63e4de3b17d..4befcc501ef 100644 --- a/app/assets/javascripts/ide/stores/utils.js +++ b/app/assets/javascripts/ide/stores/utils.js @@ -38,6 +38,8 @@ export const dataStructure = () => ({ editorColumn: 1, fileLanguage: '', eol: '', + viewMode: 'edit', + previewMode: null, }); export const decorateData = entity => { @@ -57,8 +59,9 @@ export const decorateData = entity => { changed = false, parentTreeUrl = '', base64 = false, - + previewMode, file_lock, + html, } = entity; return { @@ -79,8 +82,9 @@ export const decorateData = entity => { renderError, content, base64, - + previewMode, file_lock, + html, }; }; diff --git a/app/assets/javascripts/ide/stores/workers/files_decorator_worker.js b/app/assets/javascripts/ide/stores/workers/files_decorator_worker.js index a4cd1ab099f..a1673276900 100644 --- a/app/assets/javascripts/ide/stores/workers/files_decorator_worker.js +++ b/app/assets/javascripts/ide/stores/workers/files_decorator_worker.js @@ -1,14 +1,8 @@ +import { viewerInformationForPath } from '~/vue_shared/components/content_viewer/lib/viewer_utils'; import { decorateData, sortTree } from '../utils'; self.addEventListener('message', e => { - const { - data, - projectId, - branchId, - tempFile = false, - content = '', - base64 = false, - } = e.data; + const { data, projectId, branchId, tempFile = false, content = '', base64 = false } = e.data; const treeList = []; let file; @@ -19,9 +13,7 @@ self.addEventListener('message', e => { if (pathSplit.length > 0) { pathSplit.reduce((pathAcc, folderName) => { const parentFolder = acc[pathAcc[pathAcc.length - 1]]; - const folderPath = `${ - parentFolder ? `${parentFolder.path}/` : '' - }${folderName}`; + const folderPath = `${parentFolder ? `${parentFolder.path}/` : ''}${folderName}`; const foundEntry = acc[folderPath]; if (!foundEntry) { @@ -33,9 +25,7 @@ self.addEventListener('message', e => { path: folderPath, url: `/${projectId}/tree/${branchId}/${folderPath}/`, type: 'tree', - parentTreeUrl: parentFolder - ? parentFolder.url - : `/${projectId}/tree/${branchId}/`, + parentTreeUrl: parentFolder ? parentFolder.url : `/${projectId}/tree/${branchId}/`, tempFile, changed: tempFile, opened: tempFile, @@ -70,13 +60,12 @@ self.addEventListener('message', e => { path, url: `/${projectId}/blob/${branchId}/${path}`, type: 'blob', - parentTreeUrl: fileFolder - ? fileFolder.url - : `/${projectId}/blob/${branchId}`, + parentTreeUrl: fileFolder ? fileFolder.url : `/${projectId}/blob/${branchId}`, tempFile, changed: tempFile, content, base64, + previewMode: viewerInformationForPath(blobName), }); Object.assign(acc, { diff --git a/app/assets/javascripts/jobs/components/sidebar_details_block.vue b/app/assets/javascripts/jobs/components/sidebar_details_block.vue index 172de6b3679..af47056d98f 100644 --- a/app/assets/javascripts/jobs/components/sidebar_details_block.vue +++ b/app/assets/javascripts/jobs/components/sidebar_details_block.vue @@ -45,7 +45,7 @@ return `#${this.job.runner.id}`; }, hasTimeout() { - return this.job.metadata != null && this.job.metadata.timeout_human_readable !== ''; + return this.job.metadata != null && this.job.metadata.timeout_human_readable !== null; }, timeout() { if (this.job.metadata == null) { diff --git a/app/assets/javascripts/lib/utils/dom_utils.js b/app/assets/javascripts/lib/utils/dom_utils.js index de65ea15a60..914de9de940 100644 --- a/app/assets/javascripts/lib/utils/dom_utils.js +++ b/app/assets/javascripts/lib/utils/dom_utils.js @@ -1,7 +1,12 @@ -/* eslint-disable import/prefer-default-export */ +import $ from 'jquery'; +import { isInIssuePage, isInMRPage, isInEpicPage, hasVueMRDiscussionsCookie } from './common_utils'; + +const isVueMRDiscussions = () => isInMRPage() && hasVueMRDiscussionsCookie() && !$('#diffs').is(':visible'); export const addClassIfElementExists = (element, className) => { if (element) { element.classList.add(className); } }; + +export const isInVueNoteablePage = () => isInIssuePage() || isInEpicPage() || isVueMRDiscussions(); diff --git a/app/assets/javascripts/milestone_select.js b/app/assets/javascripts/milestone_select.js index add07c156a4..c749042a14a 100644 --- a/app/assets/javascripts/milestone_select.js +++ b/app/assets/javascripts/milestone_select.js @@ -94,10 +94,10 @@ export default class MilestoneSelect { if (showMenuAbove) { $dropdown.data('glDropdown').positionMenuAbove(); } - $(`[data-milestone-id="${selectedMilestone}"] > a`).addClass('is-active'); + $(`[data-milestone-id="${_.escape(selectedMilestone)}"] > a`).addClass('is-active'); }), renderRow: milestone => ` - <li data-milestone-id="${milestone.name}"> + <li data-milestone-id="${_.escape(milestone.name)}"> <a href='#' class='dropdown-menu-milestone-link'> ${_.escape(milestone.title)} </a> @@ -125,7 +125,6 @@ export default class MilestoneSelect { return milestone.id; } }, - isSelected: milestone => milestone.name === selectedMilestone, hidden: () => { $selectBox.hide(); // display:block overrides the hide-collapse rule @@ -137,7 +136,7 @@ export default class MilestoneSelect { selectedMilestone = $dropdown[0].dataset.selected || selectedMilestoneDefault; } $('a.is-active', $el).removeClass('is-active'); - $(`[data-milestone-id="${selectedMilestone}"] > a`, $el).addClass('is-active'); + $(`[data-milestone-id="${_.escape(selectedMilestone)}"] > a`, $el).addClass('is-active'); }, vue: $dropdown.hasClass('js-issue-board-sidebar'), clicked: (clickEvent) => { @@ -158,6 +157,7 @@ export default class MilestoneSelect { const isMRIndex = (page === page && page === 'projects:merge_requests:index'); const isSelecting = (selected.name !== selectedMilestone); selectedMilestone = isSelecting ? selected.name : selectedMilestoneDefault; + if ($dropdown.hasClass('js-filter-bulk-update') || $dropdown.hasClass('js-issuable-form-dropdown')) { e.preventDefault(); return; diff --git a/app/assets/javascripts/mr_notes/index.js b/app/assets/javascripts/mr_notes/index.js index 096c4ef5f31..e3c5bf06b3d 100644 --- a/app/assets/javascripts/mr_notes/index.js +++ b/app/assets/javascripts/mr_notes/index.js @@ -13,8 +13,11 @@ export default function initMrNotes() { data() { const notesDataset = document.getElementById('js-vue-mr-discussions') .dataset; + const noteableData = JSON.parse(notesDataset.noteableData); + noteableData.noteableType = notesDataset.noteableType; + return { - noteableData: JSON.parse(notesDataset.noteableData), + noteableData, currentUserData: JSON.parse(notesDataset.currentUserData), notesData: JSON.parse(notesDataset.notesData), }; diff --git a/app/assets/javascripts/notes.js b/app/assets/javascripts/notes.js index b0573510ff9..ac70ddb3ff4 100644 --- a/app/assets/javascripts/notes.js +++ b/app/assets/javascripts/notes.js @@ -1190,12 +1190,12 @@ export default class Notes { addForm = false; let lineTypeSelector = ''; rowCssToAdd = - '<tr class="notes_holder js-temp-notes-holder"><td class="notes_line" colspan="2"></td><td class="notes_content"><div class="content"></div></td></tr>'; + '<tr class="notes_holder js-temp-notes-holder"><td class="notes_line" colspan="2"></td><td class="notes_content"><div class="content discussion-notes"></div></td></tr>'; // In parallel view, look inside the correct left/right pane if (this.isParallelView()) { lineTypeSelector = `.${lineType}`; rowCssToAdd = - '<tr class="notes_holder js-temp-notes-holder"><td class="notes_line old"></td><td class="notes_content parallel old"><div class="content"></div></td><td class="notes_line new"></td><td class="notes_content parallel new"><div class="content"></div></td></tr>'; + '<tr class="notes_holder js-temp-notes-holder"><td class="notes_line old"></td><td class="notes_content parallel old"><div class="content discussion-notes"></div></td><td class="notes_line new"></td><td class="notes_content parallel new"><div class="content discussion-notes"></div></td></tr>'; } const notesContentSelector = `.notes_content${lineTypeSelector} .content`; let notesContent = targetRow.find(notesContentSelector); diff --git a/app/assets/javascripts/notes/components/noteable_discussion.vue b/app/assets/javascripts/notes/components/noteable_discussion.vue index e0f883a8e08..476b15aca4a 100644 --- a/app/assets/javascripts/notes/components/noteable_discussion.vue +++ b/app/assets/javascripts/notes/components/noteable_discussion.vue @@ -258,9 +258,7 @@ Please check your network connection and try again.`; :key="note.id" /> </ul> - <div - :class="{ 'is-replying': isReplying }" - class="discussion-reply-holder"> + <div class="discussion-reply-holder"> <template v-if="!isReplying && canReply"> <div class="btn-group-justified discussion-with-resolve-btn" diff --git a/app/assets/javascripts/notes/components/notes_app.vue b/app/assets/javascripts/notes/components/notes_app.vue index 5bd81c7cad6..ebfc827ac57 100644 --- a/app/assets/javascripts/notes/components/notes_app.vue +++ b/app/assets/javascripts/notes/components/notes_app.vue @@ -49,16 +49,7 @@ export default { computed: { ...mapGetters(['notes', 'getNotesDataByProp', 'discussionCount']), noteableType() { - // FIXME -- @fatihacet Get this from JSON data. - const { ISSUE_NOTEABLE_TYPE, MERGE_REQUEST_NOTEABLE_TYPE, EPIC_NOTEABLE_TYPE } = constants; - - if (this.noteableData.noteableType === EPIC_NOTEABLE_TYPE) { - return EPIC_NOTEABLE_TYPE; - } - - return this.noteableData.merge_params - ? MERGE_REQUEST_NOTEABLE_TYPE - : ISSUE_NOTEABLE_TYPE; + return this.noteableData.noteableType; }, allNotes() { if (this.isLoading) { diff --git a/app/assets/javascripts/notes/constants.js b/app/assets/javascripts/notes/constants.js index 68f8cb1cf1e..c4de4826eda 100644 --- a/app/assets/javascripts/notes/constants.js +++ b/app/assets/javascripts/notes/constants.js @@ -14,3 +14,9 @@ export const EPIC_NOTEABLE_TYPE = 'epic'; export const MERGE_REQUEST_NOTEABLE_TYPE = 'merge_request'; export const UNRESOLVE_NOTE_METHOD_NAME = 'delete'; export const RESOLVE_NOTE_METHOD_NAME = 'post'; + +export const NOTEABLE_TYPE_MAPPING = { + Issue: ISSUE_NOTEABLE_TYPE, + MergeRequest: MERGE_REQUEST_NOTEABLE_TYPE, + Epic: EPIC_NOTEABLE_TYPE, +}; diff --git a/app/assets/javascripts/notes/mixins/noteable.js b/app/assets/javascripts/notes/mixins/noteable.js index 5bf8216a1f3..b68543d71c8 100644 --- a/app/assets/javascripts/notes/mixins/noteable.js +++ b/app/assets/javascripts/notes/mixins/noteable.js @@ -9,16 +9,7 @@ export default { }, computed: { noteableType() { - switch (this.note.noteable_type) { - case 'MergeRequest': - return constants.MERGE_REQUEST_NOTEABLE_TYPE; - case 'Issue': - return constants.ISSUE_NOTEABLE_TYPE; - case 'Epic': - return constants.EPIC_NOTEABLE_TYPE; - default: - return ''; - } + return constants.NOTEABLE_TYPE_MAPPING[this.note.noteable_type]; }, }, }; diff --git a/app/assets/javascripts/pipelines/components/graph/job_component.vue b/app/assets/javascripts/pipelines/components/graph/job_component.vue index a3ee1057e5d..c6e5ae6df41 100644 --- a/app/assets/javascripts/pipelines/components/graph/job_component.vue +++ b/app/assets/javascripts/pipelines/components/graph/job_component.vue @@ -17,6 +17,7 @@ import tooltip from '../../../vue_shared/directives/tooltip'; * "text": "passed", * "label": "passed", * "group": "success", + * "tooltip": "passed", * "details_path": "/root/ci-mock/builds/4256", * "action": { * "icon": "retry", @@ -75,12 +76,12 @@ export default { textBuilder.push(this.job.name); } - if (this.job.name && this.status.label) { + if (this.job.name && this.status.tooltip) { textBuilder.push('-'); } - if (this.status.label) { - textBuilder.push(`${this.job.status.label}`); + if (this.status.tooltip) { + textBuilder.push(`${this.job.status.tooltip}`); } return textBuilder.join(' '); @@ -106,6 +107,7 @@ export default { :title="tooltipText" :class="cssClassJobName" data-container="body" + data-html="true" class="js-pipeline-graph-job-link" > @@ -121,6 +123,7 @@ export default { class="js-job-component-tooltip" :title="tooltipText" :class="cssClassJobName" + data-html="true" data-container="body" > diff --git a/app/assets/javascripts/profile/account/components/update_username.vue b/app/assets/javascripts/profile/account/components/update_username.vue new file mode 100644 index 00000000000..e5de3f69b01 --- /dev/null +++ b/app/assets/javascripts/profile/account/components/update_username.vue @@ -0,0 +1,121 @@ +<script> +import _ from 'underscore'; +import axios from '~/lib/utils/axios_utils'; +import GlModal from '~/vue_shared/components/gl_modal.vue'; +import { s__, sprintf } from '~/locale'; +import Flash from '~/flash'; + +export default { + components: { + GlModal, + }, + props: { + actionUrl: { + type: String, + required: true, + }, + rootUrl: { + type: String, + required: true, + }, + initialUsername: { + type: String, + required: true, + }, + }, + data() { + return { + isRequestPending: false, + username: this.initialUsername, + newUsername: this.initialUsername, + }; + }, + computed: { + path() { + return sprintf(s__('Profiles|Current path: %{path}'), { + path: `${this.rootUrl}${this.username}`, + }); + }, + modalText() { + return sprintf( + s__(`Profiles| +You are going to change the username %{currentUsernameBold} to %{newUsernameBold}. +Profile and projects will be redirected to the %{newUsername} namespace but this redirect will expire once the %{currentUsername} namespace is registered by another user or group. +Please update your Git repository remotes as soon as possible.`), + { + currentUsernameBold: `<strong>${_.escape(this.username)}</strong>`, + newUsernameBold: `<strong>${_.escape(this.newUsername)}</strong>`, + currentUsername: _.escape(this.username), + newUsername: _.escape(this.newUsername), + }, + false, + ); + }, + }, + methods: { + onConfirm() { + this.isRequestPending = true; + const username = this.newUsername; + const putData = { + user: { + username, + }, + }; + + return axios + .put(this.actionUrl, putData) + .then(result => { + Flash(result.data.message, 'notice'); + this.username = username; + this.isRequestPending = false; + }) + .catch(error => { + Flash(error.response.data.message); + this.isRequestPending = false; + throw error; + }); + }, + }, + modalId: 'username-change-confirmation-modal', + inputId: 'username-change-input', + buttonText: s__('Profiles|Update username'), +}; +</script> +<template> + <div> + <div class="form-group"> + <label :for="$options.inputId">{{ s__('Profiles|Path') }}</label> + <div class="input-group"> + <div class="input-group-addon">{{ rootUrl }}</div> + <input + :id="$options.inputId" + class="form-control" + required="required" + v-model="newUsername" + :disabled="isRequestPending" + /> + </div> + <p class="help-block"> + {{ path }} + </p> + </div> + <button + :data-target="`#${$options.modalId}`" + class="btn btn-warning" + type="button" + data-toggle="modal" + :disabled="isRequestPending || newUsername === username" + > + {{ $options.buttonText }} + </button> + <gl-modal + :id="$options.modalId" + :header-title-text="s__('Profiles|Change username') + '?'" + footer-primary-button-variant="warning" + :footer-primary-button-text="$options.buttonText" + @submit="onConfirm" + > + <span v-html="modalText"></span> + </gl-modal> + </div> +</template> diff --git a/app/assets/javascripts/profile/account/index.js b/app/assets/javascripts/profile/account/index.js index 84049a1f0b7..59c13e1a042 100644 --- a/app/assets/javascripts/profile/account/index.js +++ b/app/assets/javascripts/profile/account/index.js @@ -1,10 +1,25 @@ import Vue from 'vue'; import Translate from '~/vue_shared/translate'; +import UpdateUsername from './components/update_username.vue'; import deleteAccountModal from './components/delete_account_modal.vue'; export default () => { Vue.use(Translate); + const updateUsernameElement = document.getElementById('update-username'); + // eslint-disable-next-line no-new + new Vue({ + el: updateUsernameElement, + components: { + UpdateUsername, + }, + render(createElement) { + return createElement('update-username', { + props: { ...updateUsernameElement.dataset }, + }); + }, + }); + const deleteAccountButton = document.getElementById('delete-account-button'); const deleteAccountModalEl = document.getElementById('delete-account-modal'); // eslint-disable-next-line no-new diff --git a/app/assets/javascripts/vue_shared/components/content_viewer/content_viewer.vue b/app/assets/javascripts/vue_shared/components/content_viewer/content_viewer.vue new file mode 100644 index 00000000000..fb8ccea91c7 --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/content_viewer/content_viewer.vue @@ -0,0 +1,43 @@ +<script> +import { viewerInformationForPath } from './lib/viewer_utils'; +import MarkdownViewer from './viewers/markdown_viewer.vue'; + +export default { + props: { + content: { + type: String, + required: true, + }, + path: { + type: String, + required: true, + }, + projectPath: { + type: String, + required: false, + default: '', + }, + }, + computed: { + viewer() { + const previewInfo = viewerInformationForPath(this.path); + switch (previewInfo.id) { + case 'markdown': + return MarkdownViewer; + default: + return null; + } + }, + }, +}; +</script> + +<template> + <div class="preview-container"> + <component + :is="viewer" + :project-path="projectPath" + :content="content" + /> + </div> +</template> diff --git a/app/assets/javascripts/vue_shared/components/content_viewer/lib/viewer_utils.js b/app/assets/javascripts/vue_shared/components/content_viewer/lib/viewer_utils.js new file mode 100644 index 00000000000..4f2e1e47dd1 --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/content_viewer/lib/viewer_utils.js @@ -0,0 +1,23 @@ +const viewers = { + markdown: { + id: 'markdown', + previewTitle: 'Preview Markdown', + }, +}; + +const fileNameViewers = {}; +const fileExtensionViewers = { + md: 'markdown', + markdown: 'markdown', +}; + +export function viewerInformationForPath(path) { + if (!path) return null; + const name = path.split('/').pop(); + const viewerName = + fileNameViewers[name] || fileExtensionViewers[name ? name.split('.').pop() : ''] || ''; + + return viewers[viewerName]; +} + +export default viewers; diff --git a/app/assets/javascripts/vue_shared/components/content_viewer/viewers/markdown_viewer.vue b/app/assets/javascripts/vue_shared/components/content_viewer/viewers/markdown_viewer.vue new file mode 100644 index 00000000000..09e0094054d --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/content_viewer/viewers/markdown_viewer.vue @@ -0,0 +1,90 @@ +<script> +import axios from '~/lib/utils/axios_utils'; +import { __ } from '~/locale'; +import $ from 'jquery'; +import SkeletonLoadingContainer from '~/vue_shared/components/skeleton_loading_container.vue'; + +const CancelToken = axios.CancelToken; +let axiosSource; + +export default { + components: { + SkeletonLoadingContainer, + }, + props: { + content: { + type: String, + required: true, + }, + projectPath: { + type: String, + required: true, + }, + }, + data() { + return { + previewContent: null, + isLoading: false, + }; + }, + watch: { + content() { + this.previewContent = null; + }, + }, + created() { + axiosSource = CancelToken.source(); + this.fetchMarkdownPreview(); + }, + updated() { + this.fetchMarkdownPreview(); + }, + destroyed() { + if (this.isLoading) axiosSource.cancel('Cancelling Preview'); + }, + methods: { + fetchMarkdownPreview() { + if (this.content && this.previewContent === null) { + this.isLoading = true; + const postBody = { + text: this.content, + }; + const postOptions = { + cancelToken: axiosSource.token, + }; + + axios + .post( + `${gon.relative_url_root}/${this.projectPath}/preview_markdown`, + postBody, + postOptions, + ) + .then(({ data }) => { + this.previewContent = data.body; + this.isLoading = false; + + this.$nextTick(() => { + $(this.$refs['markdown-preview']).renderGFM(); + }); + }) + .catch(() => { + this.previewContent = __('An error occurred while fetching markdown preview'); + this.isLoading = false; + }); + } + }, + }, +}; +</script> + +<template> + <div + ref="markdown-preview" + class="md md-previewer"> + <skeleton-loading-container v-if="isLoading" /> + <div + v-else + v-html="previewContent"> + </div> + </div> +</template> diff --git a/app/assets/javascripts/vue_shared/components/gl_modal.vue b/app/assets/javascripts/vue_shared/components/gl_modal.vue index 67c9181c7b1..f28e5e2715d 100644 --- a/app/assets/javascripts/vue_shared/components/gl_modal.vue +++ b/app/assets/javascripts/vue_shared/components/gl_modal.vue @@ -1,47 +1,42 @@ <script> - const buttonVariants = [ - 'danger', - 'primary', - 'success', - 'warning', - ]; +const buttonVariants = ['danger', 'primary', 'success', 'warning']; - export default { - name: 'GlModal', +export default { + name: 'GlModal', - props: { - id: { - type: String, - required: false, - default: null, - }, - headerTitleText: { - type: String, - required: false, - default: '', - }, - footerPrimaryButtonVariant: { - type: String, - required: false, - default: 'primary', - validator: value => buttonVariants.indexOf(value) !== -1, - }, - footerPrimaryButtonText: { - type: String, - required: false, - default: '', - }, + props: { + id: { + type: String, + required: false, + default: null, }, + headerTitleText: { + type: String, + required: false, + default: '', + }, + footerPrimaryButtonVariant: { + type: String, + required: false, + default: 'primary', + validator: value => buttonVariants.includes(value), + }, + footerPrimaryButtonText: { + type: String, + required: false, + default: '', + }, + }, - methods: { - emitCancel(event) { - this.$emit('cancel', event); - }, - emitSubmit(event) { - this.$emit('submit', event); - }, + methods: { + emitCancel(event) { + this.$emit('cancel', event); + }, + emitSubmit(event) { + this.$emit('submit', event); }, - }; + }, +}; </script> <template> @@ -60,7 +55,7 @@ <slot name="header"> <button type="button" - class="close" + class="close js-modal-close-action" data-dismiss="modal" :aria-label="s__('Modal|Close')" @click="emitCancel($event)" @@ -83,7 +78,7 @@ <slot name="footer"> <button type="button" - class="btn" + class="btn js-modal-cancel-action" data-dismiss="modal" @click="emitCancel($event)" > @@ -91,7 +86,7 @@ </button> <button type="button" - class="btn" + class="btn js-modal-primary-action" :class="`btn-${footerPrimaryButtonVariant}`" data-dismiss="modal" @click="emitSubmit($event)" diff --git a/app/assets/stylesheets/framework/lists.scss b/app/assets/stylesheets/framework/lists.scss index 7e829826eba..f1a8a46dda4 100644 --- a/app/assets/stylesheets/framework/lists.scss +++ b/app/assets/stylesheets/framework/lists.scss @@ -24,6 +24,10 @@ color: $list-text-disabled-color; } + &:not(.ui-sort-disabled):hover { + background: $row-hover; + } + &.unstyled { &:hover { background: none; @@ -34,14 +38,15 @@ background-color: $list-warning-row-bg; border-color: $list-warning-row-border; color: $list-warning-row-color; - } - &.smoke { background-color: $gray-light; } + &:hover { + background: $list-warning-row-bg; + } - &:not(.ui-sort-disabled):hover { - background: $row-hover; } + &.smoke { background-color: $gray-light; } + &:last-child { border-bottom: 0; diff --git a/app/assets/stylesheets/framework/typography.scss b/app/assets/stylesheets/framework/typography.scss index 294c59f037f..9e1371648ed 100644 --- a/app/assets/stylesheets/framework/typography.scss +++ b/app/assets/stylesheets/framework/typography.scss @@ -289,6 +289,11 @@ body { &:last-child { margin-bottom: 0; } + + &.with-button { + line-height: 34px; + } + } .page-title-empty { diff --git a/app/assets/stylesheets/pages/builds.scss b/app/assets/stylesheets/pages/builds.scss index 98d460339cd..7a6352e45f1 100644 --- a/app/assets/stylesheets/pages/builds.scss +++ b/app/assets/stylesheets/pages/builds.scss @@ -391,7 +391,7 @@ } &:hover { - background-color: $row-hover; + background-color: $dropdown-item-hover-bg; } .icon-retry { diff --git a/app/assets/stylesheets/pages/diff.scss b/app/assets/stylesheets/pages/diff.scss index 7f037582ca0..679f783b1b6 100644 --- a/app/assets/stylesheets/pages/diff.scss +++ b/app/assets/stylesheets/pages/diff.scss @@ -813,6 +813,7 @@ } .discussion-notes { + padding: 0 $gl-padding $gl-padding; min-height: 35px; &:first-child { diff --git a/app/assets/stylesheets/pages/note_form.scss b/app/assets/stylesheets/pages/note_form.scss index 4a528bc2bb1..8720f821ce9 100644 --- a/app/assets/stylesheets/pages/note_form.scss +++ b/app/assets/stylesheets/pages/note_form.scss @@ -173,11 +173,7 @@ } .discussion-form { - background-color: $white-light; -} - -.discussion-form-container { - padding: $gl-padding-top $gl-padding $gl-padding; + padding-top: $gl-padding-top; } .discussion-notes .disabled-comment { @@ -237,12 +233,7 @@ .discussion-body, .diff-file { .discussion-reply-holder { - background-color: $white-light; - padding: 10px 16px; - - &.is-replying { - padding-bottom: $gl-padding; - } + padding-top: $gl-padding; } } diff --git a/app/assets/stylesheets/pages/notes.scss b/app/assets/stylesheets/pages/notes.scss index 81e98f358a8..9d9cbecc958 100644 --- a/app/assets/stylesheets/pages/notes.scss +++ b/app/assets/stylesheets/pages/notes.scss @@ -47,7 +47,7 @@ ul.notes { } .timeline-entry-inner { - padding: $gl-padding $gl-btn-padding; + padding: $gl-padding 0; border-bottom: 1px solid $white-normal; } @@ -94,12 +94,6 @@ ul.notes { } } - &.note-discussion { - .timeline-entry-inner { - padding: $gl-padding 10px; - } - } - .editing-spinner { display: none; } @@ -352,6 +346,8 @@ ul.notes { } .discussion-notes { + background-color: $white-light; + &:not(:first-child) { border-top: 1px solid $white-normal; margin-top: 20px; @@ -363,10 +359,6 @@ ul.notes { } } - .notes { - background-color: $white-light; - } - a code { top: 0; margin-right: 0; @@ -647,8 +639,6 @@ ul.notes { border-bottom: 1px solid $white-normal; .timeline-entry-inner { - padding-left: $gl-padding; - padding-right: $gl-padding; border-bottom: 0; } } diff --git a/app/assets/stylesheets/pages/pages.scss b/app/assets/stylesheets/pages/pages.scss new file mode 100644 index 00000000000..fb42dee66d2 --- /dev/null +++ b/app/assets/stylesheets/pages/pages.scss @@ -0,0 +1,60 @@ +.pages-domain-list { + &-item { + position: relative; + display: flex; + align-items: center; + + .domain-status { + display: inline-flex; + left: $gl-padding; + position: absolute; + } + + .domain-name { + flex-grow: 1; + } + + } + + &.has-verification-status > li { + padding-left: 3 * $gl-padding; + } + +} + +.status-badge { + + display: inline-flex; + margin-bottom: $gl-padding-8; + + // Most of the following settings "stolen" from btn-sm + // Border radius is overwritten for both + .label, + .btn { + padding: $gl-padding-4 $gl-padding-8; + font-size: $gl-font-size; + line-height: $gl-btn-line-height; + border-radius: 0; + display: flex; + align-items: center; + } + + .btn svg { + top: auto; + } + + :first-child { + border-bottom-left-radius: $border-radius-default; + border-top-left-radius: $border-radius-default; + } + + :not(:first-child) { + border-left: 0; + } + + :last-child { + border-bottom-right-radius: $border-radius-default; + border-top-right-radius: $border-radius-default; + } + +} diff --git a/app/assets/stylesheets/pages/profile.scss b/app/assets/stylesheets/pages/profile.scss index ac745019319..b199f9876d3 100644 --- a/app/assets/stylesheets/pages/profile.scss +++ b/app/assets/stylesheets/pages/profile.scss @@ -210,13 +210,8 @@ } .created-personal-access-token-container { - #created-personal-access-token { - width: 90%; - display: inline; - } - .btn-clipboard { - margin-left: 5px; + border: 1px solid $border-color; } } diff --git a/app/assets/stylesheets/pages/repo.scss b/app/assets/stylesheets/pages/repo.scss index 1f6f7138e1f..8cc5c8fc877 100644 --- a/app/assets/stylesheets/pages/repo.scss +++ b/app/assets/stylesheets/pages/repo.scss @@ -308,14 +308,34 @@ height: 100%; } -.multi-file-editor-btn-group { - padding: $gl-bar-padding $gl-padding; - border-top: 1px solid $white-dark; +.preview-container { + height: 100%; + overflow: auto; + + .md-previewer { + padding: $gl-padding; + } +} + +.ide-mode-tabs { border-bottom: 1px solid $white-dark; - background: $white-light; + + .nav-links { + border-bottom: 0; + + li a { + padding: $gl-padding-8 $gl-padding; + line-height: $gl-btn-line-height; + } + } +} + +.ide-btn-group { + padding: $gl-padding-4 $gl-vert-padding; } .ide-status-bar { + border-top: 1px solid $white-dark; padding: $gl-bar-padding $gl-padding; background: $white-light; display: flex; diff --git a/app/controllers/boards/issues_controller.rb b/app/controllers/boards/issues_controller.rb index 19dbee84c11..7d7ff217e5d 100644 --- a/app/controllers/boards/issues_controller.rb +++ b/app/controllers/boards/issues_controller.rb @@ -96,7 +96,8 @@ module Boards resource.as_json( only: [:id, :iid, :project_id, :title, :confidential, :due_date, :relative_position], labels: true, - sidebar_endpoints: true, + issue_endpoints: true, + include_full_project_path: board.group_board?, include: { project: { only: [:id, :path] }, assignees: { only: [:id, :name, :username], methods: [:avatar_url] }, diff --git a/app/controllers/groups/milestones_controller.rb b/app/controllers/groups/milestones_controller.rb index acf6aaf57f4..5903689dc62 100644 --- a/app/controllers/groups/milestones_controller.rb +++ b/app/controllers/groups/milestones_controller.rb @@ -12,7 +12,7 @@ class Groups::MilestonesController < Groups::ApplicationController @milestones = Kaminari.paginate_array(milestones).page(params[:page]) end format.json do - render json: milestones.map { |m| m.for_display.slice(:title, :name) } + render json: milestones.map { |m| m.for_display.slice(:id, :title, :name) } end end end diff --git a/app/controllers/profiles_controller.rb b/app/controllers/profiles_controller.rb index 3d27ae18b17..ac71f72e624 100644 --- a/app/controllers/profiles_controller.rb +++ b/app/controllers/profiles_controller.rb @@ -53,13 +53,19 @@ class ProfilesController < Profiles::ApplicationController def update_username result = Users::UpdateService.new(current_user, user: @user, username: username_param).execute - options = if result[:status] == :success - { notice: "Username successfully changed" } - else - { alert: "Username change failed - #{result[:message]}" } - end + respond_to do |format| + if result[:status] == :success + message = s_("Profiles|Username successfully changed") - redirect_back_or_default(default: { action: 'show' }, options: options) + format.html { redirect_back_or_default(default: { action: 'show' }, options: { notice: message }) } + format.json { render json: { message: message }, status: :ok } + else + message = s_("Profiles|Username change failed - %{message}") % { message: result[:message] } + + format.html { redirect_back_or_default(default: { action: 'show' }, options: { alert: message }) } + format.json { render json: { message: message }, status: :unprocessable_entity } + end + end end private diff --git a/app/controllers/projects/discussions_controller.rb b/app/controllers/projects/discussions_controller.rb index 7bc16214010..8e86af43fee 100644 --- a/app/controllers/projects/discussions_controller.rb +++ b/app/controllers/projects/discussions_controller.rb @@ -4,8 +4,8 @@ class Projects::DiscussionsController < Projects::ApplicationController before_action :check_merge_requests_available! before_action :merge_request - before_action :discussion - before_action :authorize_resolve_discussion! + before_action :discussion, only: [:resolve, :unresolve] + before_action :authorize_resolve_discussion!, only: [:resolve, :unresolve] def resolve Discussions::ResolveService.new(project, current_user, merge_request: merge_request).execute(discussion) diff --git a/app/controllers/projects/git_http_client_controller.rb b/app/controllers/projects/git_http_client_controller.rb index dd5e66f60e3..07249fe3182 100644 --- a/app/controllers/projects/git_http_client_controller.rb +++ b/app/controllers/projects/git_http_client_controller.rb @@ -7,6 +7,7 @@ class Projects::GitHttpClientController < Projects::ApplicationController attr_reader :authentication_result, :redirected_path delegate :actor, :authentication_abilities, to: :authentication_result, allow_nil: true + delegate :type, to: :authentication_result, allow_nil: true, prefix: :auth_result alias_method :user, :actor alias_method :authenticated_user, :actor diff --git a/app/controllers/projects/git_http_controller.rb b/app/controllers/projects/git_http_controller.rb index 45910a9be44..1dcf837f78e 100644 --- a/app/controllers/projects/git_http_controller.rb +++ b/app/controllers/projects/git_http_controller.rb @@ -64,7 +64,7 @@ class Projects::GitHttpController < Projects::GitHttpClientController @access ||= access_klass.new(access_actor, project, 'http', authentication_abilities: authentication_abilities, namespace_path: params[:namespace_id], project_path: project_path, - redirected_path: redirected_path) + redirected_path: redirected_path, auth_result_type: auth_result_type) end def access_actor diff --git a/app/controllers/projects/jobs_controller.rb b/app/controllers/projects/jobs_controller.rb index 85e972d9731..dd12d30a085 100644 --- a/app/controllers/projects/jobs_controller.rb +++ b/app/controllers/projects/jobs_controller.rb @@ -2,7 +2,6 @@ class Projects::JobsController < Projects::ApplicationController include SendFileUpload before_action :build, except: [:index, :cancel_all] - before_action :authorize_read_build!, only: [:index, :show, :status, :raw, :trace] before_action :authorize_update_build!, @@ -45,8 +44,11 @@ class Projects::JobsController < Projects::ApplicationController end def show - @builds = @project.pipelines.find_by_sha(@build.sha).builds.order('id DESC') - @builds = @builds.where("id not in (?)", @build.id) + @builds = @project.pipelines + .find_by_sha(@build.sha) + .builds + .order('id DESC') + .present(current_user: current_user) @pipeline = @build.pipeline respond_to do |format| @@ -128,7 +130,7 @@ class Projects::JobsController < Projects::ApplicationController if stream.file? send_file stream.path, type: 'text/plain; charset=utf-8', disposition: 'inline' else - render_404 + send_data stream.raw, type: 'text/plain; charset=utf-8', disposition: 'inline', filename: 'job.log' end end end diff --git a/app/controllers/projects/lfs_api_controller.rb b/app/controllers/projects/lfs_api_controller.rb index c77f10ef1dd..ee4ed674110 100644 --- a/app/controllers/projects/lfs_api_controller.rb +++ b/app/controllers/projects/lfs_api_controller.rb @@ -41,7 +41,7 @@ class Projects::LfsApiController < Projects::GitHttpClientController def existing_oids @existing_oids ||= begin - storage_project.lfs_objects.where(oid: objects.map { |o| o['oid'].to_s }).pluck(:oid) + project.all_lfs_objects.where(oid: objects.map { |o| o['oid'].to_s }).pluck(:oid) end end diff --git a/app/controllers/projects/lfs_storage_controller.rb b/app/controllers/projects/lfs_storage_controller.rb index 2515e4b9a17..ebde0df1f7b 100644 --- a/app/controllers/projects/lfs_storage_controller.rb +++ b/app/controllers/projects/lfs_storage_controller.rb @@ -31,7 +31,9 @@ class Projects::LfsStorageController < Projects::GitHttpClientController render plain: 'Unprocessable entity', status: 422 end rescue ActiveRecord::RecordInvalid - render_400 + render_lfs_forbidden + rescue UploadedFile::InvalidPathError + render_lfs_forbidden rescue ObjectStorage::RemoteStoreError render_lfs_forbidden end @@ -66,10 +68,11 @@ class Projects::LfsStorageController < Projects::GitHttpClientController end def create_file!(oid, size) - LfsObject.new(oid: oid, size: size).tap do |object| - object.file.store_workhorse_file!(params, :file) - object.save! - end + uploaded_file = UploadedFile.from_params( + params, :file, LfsObjectUploader.workhorse_local_upload_path) + return unless uploaded_file + + LfsObject.create!(oid: oid, size: size, file: uploaded_file) end def link_to_project!(object) diff --git a/app/controllers/projects/pipelines_settings_controller.rb b/app/controllers/projects/pipelines_settings_controller.rb index 557671ab186..73c613b26f3 100644 --- a/app/controllers/projects/pipelines_settings_controller.rb +++ b/app/controllers/projects/pipelines_settings_controller.rb @@ -4,41 +4,4 @@ class Projects::PipelinesSettingsController < Projects::ApplicationController def show redirect_to project_settings_ci_cd_path(@project, params: params) end - - def update - Projects::UpdateService.new(project, current_user, update_params).tap do |service| - if service.execute - flash[:notice] = "Pipelines settings for '#{@project.name}' were successfully updated." - - run_autodevops_pipeline(service) - - redirect_to project_settings_ci_cd_path(@project) - else - render 'show' - end - end - end - - private - - def run_autodevops_pipeline(service) - return unless service.run_auto_devops_pipeline? - - if @project.empty_repo? - flash[:warning] = "This repository is currently empty. A new Auto DevOps pipeline will be created after a new file has been pushed to a branch." - return - end - - CreatePipelineWorker.perform_async(project.id, current_user.id, project.default_branch, :web, ignore_skip_ci: true, save_on_errors: false) - flash[:success] = "A new Auto DevOps pipeline has been created, go to <a href=\"#{project_pipelines_path(@project)}\">Pipelines page</a> for details".html_safe - end - - def update_params - params.require(:project).permit( - :runners_token, :builds_enabled, :build_allow_git_fetch, - :build_timeout_in_minutes, :build_coverage_regex, :public_builds, - :auto_cancel_pending_pipelines, :ci_config_path, - auto_devops_attributes: [:id, :domain, :enabled] - ) - end end diff --git a/app/controllers/projects/refs_controller.rb b/app/controllers/projects/refs_controller.rb index 2376f469213..48a09e1ddb8 100644 --- a/app/controllers/projects/refs_controller.rb +++ b/app/controllers/projects/refs_controller.rb @@ -25,7 +25,7 @@ class Projects::RefsController < Projects::ApplicationController when "graphs_commits" commits_project_graph_path(@project, @id) when "badges" - project_pipelines_settings_path(@project, ref: @id) + project_settings_ci_cd_path(@project, ref: @id) else project_commits_path(@project, @id) end diff --git a/app/controllers/projects/settings/ci_cd_controller.rb b/app/controllers/projects/settings/ci_cd_controller.rb index 96125b549b7..d80ef8113aa 100644 --- a/app/controllers/projects/settings/ci_cd_controller.rb +++ b/app/controllers/projects/settings/ci_cd_controller.rb @@ -2,13 +2,24 @@ module Projects module Settings class CiCdController < Projects::ApplicationController before_action :authorize_admin_pipeline! + before_action :define_variables def show - define_runners_variables - define_secret_variables - define_triggers_variables - define_badges_variables - define_auto_devops_variables + end + + def update + Projects::UpdateService.new(project, current_user, update_params).tap do |service| + result = service.execute + if result[:status] == :success + flash[:notice] = "Pipelines settings for '#{@project.name}' were successfully updated." + + run_autodevops_pipeline(service) + + redirect_to project_settings_ci_cd_path(@project) + else + render 'show' + end + end end def reset_cache @@ -25,6 +36,35 @@ module Projects private + def update_params + params.require(:project).permit( + :runners_token, :builds_enabled, :build_allow_git_fetch, + :build_timeout_human_readable, :build_coverage_regex, :public_builds, + :auto_cancel_pending_pipelines, :ci_config_path, + auto_devops_attributes: [:id, :domain, :enabled] + ) + end + + def run_autodevops_pipeline(service) + return unless service.run_auto_devops_pipeline? + + if @project.empty_repo? + flash[:warning] = "This repository is currently empty. A new Auto DevOps pipeline will be created after a new file has been pushed to a branch." + return + end + + CreatePipelineWorker.perform_async(project.id, current_user.id, project.default_branch, :web, ignore_skip_ci: true, save_on_errors: false) + flash[:success] = "A new Auto DevOps pipeline has been created, go to <a href=\"#{project_pipelines_path(@project)}\">Pipelines page</a> for details".html_safe + end + + def define_variables + define_runners_variables + define_secret_variables + define_triggers_variables + define_badges_variables + define_auto_devops_variables + end + def define_runners_variables @project_runners = @project.runners.ordered @assignable_runners = current_user.ci_authorized_runners diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index ee197c75764..37f14230196 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -324,7 +324,7 @@ class ProjectsController < Projects::ApplicationController :avatar, :build_allow_git_fetch, :build_coverage_regex, - :build_timeout_in_minutes, + :build_timeout_human_readable, :resolve_outdated_diff_discussions, :container_registry_enabled, :default_branch, diff --git a/app/helpers/services_helper.rb b/app/helpers/services_helper.rb index f435c80c656..f872990122e 100644 --- a/app/helpers/services_helper.rb +++ b/app/helpers/services_helper.rb @@ -1,4 +1,29 @@ module ServicesHelper + def service_event_description(event) + case event + when "push", "push_events" + "Event will be triggered by a push to the repository" + when "tag_push", "tag_push_events" + "Event will be triggered when a new tag is pushed to the repository" + when "note", "note_events" + "Event will be triggered when someone adds a comment" + when "confidential_note", "confidential_note_events" + "Event will be triggered when someone adds a comment on a confidential issue" + when "issue", "issue_events" + "Event will be triggered when an issue is created/updated/closed" + when "confidential_issue", "confidential_issues_events" + "Event will be triggered when a confidential issue is created/updated/closed" + when "merge_request", "merge_request_events" + "Event will be triggered when a merge request is created/updated/merged" + when "pipeline", "pipeline_events" + "Event will be triggered when a pipeline status changes" + when "wiki_page", "wiki_page_events" + "Event will be triggered when a wiki page is created/updated" + when "commit", "commit_events" + "Event will be triggered when a commit is created/updated" + end + end + def service_event_field_name(event) event = event.pluralize if %w[merge_request issue confidential_issue].include?(event) "#{event}_events" diff --git a/app/models/appearance.rb b/app/models/appearance.rb index 2a6406d63c7..fb66dd0b766 100644 --- a/app/models/appearance.rb +++ b/app/models/appearance.rb @@ -16,7 +16,7 @@ class Appearance < ActiveRecord::Base has_many :uploads, as: :model, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent - CACHE_KEY = 'current_appearance'.freeze + CACHE_KEY = "current_appearance:#{Gitlab::VERSION}".freeze after_commit :flush_redis_cache diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index 18e96389199..4aa65bf4273 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -90,6 +90,7 @@ module Ci before_save :ensure_token before_destroy { unscoped_project } + before_create :ensure_metadata after_create unless: :importing? do |build| run_after_commit { BuildHooksWorker.perform_async(build.id) } end diff --git a/app/models/ci/job_artifact.rb b/app/models/ci/job_artifact.rb index df57b4f65e3..fbb95fe16df 100644 --- a/app/models/ci/job_artifact.rb +++ b/app/models/ci/job_artifact.rb @@ -7,6 +7,7 @@ module Ci belongs_to :project belongs_to :job, class_name: "Ci::Build", foreign_key: :job_id + before_save :update_file_store before_save :set_size, if: :file_changed? scope :with_files_stored_locally, -> { where(file_store: [nil, ::JobArtifactUploader::Store::LOCAL]) } @@ -21,6 +22,10 @@ module Ci trace: 3 } + def update_file_store + self.file_store = file.object_store + end + def self.artifacts_size_for(project) self.where(project: project).sum(:size) end diff --git a/app/models/concerns/chronic_duration_attribute.rb b/app/models/concerns/chronic_duration_attribute.rb index fa1eafb1d7a..593a9b3d71d 100644 --- a/app/models/concerns/chronic_duration_attribute.rb +++ b/app/models/concerns/chronic_duration_attribute.rb @@ -8,14 +8,14 @@ module ChronicDurationAttribute end end - def chronic_duration_attr_writer(virtual_attribute, source_attribute) + def chronic_duration_attr_writer(virtual_attribute, source_attribute, parameters = {}) chronic_duration_attr_reader(virtual_attribute, source_attribute) define_method("#{virtual_attribute}=") do |value| - chronic_duration_attributes[virtual_attribute] = value.presence || '' + chronic_duration_attributes[virtual_attribute] = value.presence || parameters[:default].presence.to_s begin - new_value = ChronicDuration.parse(value).to_i if value.present? + new_value = value.present? ? ChronicDuration.parse(value).to_i : parameters[:default].presence assign_attributes(source_attribute => new_value) rescue ChronicDuration::DurationParseError # ignore error as it will be caught by validation diff --git a/app/models/concerns/presentable.rb b/app/models/concerns/presentable.rb index 7b33b837004..bc4fbd19a02 100644 --- a/app/models/concerns/presentable.rb +++ b/app/models/concerns/presentable.rb @@ -1,4 +1,12 @@ module Presentable + extend ActiveSupport::Concern + + class_methods do + def present(attributes) + all.map { |klass_object| klass_object.present(attributes) } + end + end + def present(**attributes) Gitlab::View::Presenter::Factory .new(self, attributes) diff --git a/app/models/hooks/project_hook.rb b/app/models/hooks/project_hook.rb index b6dd39b860b..ec072882cc9 100644 --- a/app/models/hooks/project_hook.rb +++ b/app/models/hooks/project_hook.rb @@ -7,6 +7,7 @@ class ProjectHook < WebHook :issue_hooks, :confidential_issue_hooks, :note_hooks, + :confidential_note_hooks, :merge_request_hooks, :job_hooks, :pipeline_hooks, diff --git a/app/models/issue.rb b/app/models/issue.rb index 13abc6c1a0d..13d9e42bcc8 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -272,11 +272,17 @@ class Issue < ActiveRecord::Base def as_json(options = {}) super(options).tap do |json| - if options.key?(:sidebar_endpoints) && project + if options.key?(:issue_endpoints) && project url_helper = Gitlab::Routing.url_helpers - json.merge!(issue_sidebar_endpoint: url_helper.project_issue_path(project, self, format: :json, serializer: 'sidebar'), - toggle_subscription_endpoint: url_helper.toggle_subscription_project_issue_path(project, self)) + issue_reference = options[:include_full_project_path] ? to_reference(full: true) : to_reference + + json.merge!( + reference_path: issue_reference, + real_path: url_helper.project_issue_path(project, self), + issue_sidebar_endpoint: url_helper.project_issue_path(project, self, format: :json, serializer: 'sidebar'), + toggle_subscription_endpoint: url_helper.toggle_subscription_project_issue_path(project, self) + ) end if options.key?(:labels) diff --git a/app/models/merge_request_diff_commit.rb b/app/models/merge_request_diff_commit.rb index b75387e236e..1c2e57bb01f 100644 --- a/app/models/merge_request_diff_commit.rb +++ b/app/models/merge_request_diff_commit.rb @@ -17,7 +17,7 @@ class MergeRequestDiffCommit < ActiveRecord::Base commit_hash.merge( merge_request_diff_id: merge_request_diff_id, relative_order: index, - sha: sha_attribute.type_cast_for_database(sha), + sha: sha_attribute.serialize(sha), # rubocop:disable Cop/ActiveRecordSerialize authored_date: Gitlab::Database.sanitize_timestamp(commit_hash[:authored_date]), committed_date: Gitlab::Database.sanitize_timestamp(commit_hash[:committed_date]) ) diff --git a/app/models/milestone.rb b/app/models/milestone.rb index dafae58d121..a66a0015827 100644 --- a/app/models/milestone.rb +++ b/app/models/milestone.rb @@ -34,8 +34,8 @@ class Milestone < ActiveRecord::Base scope :for_projects_and_groups, -> (project_ids, group_ids) do conditions = [] - conditions << arel_table[:project_id].in(project_ids) if project_ids.compact.any? - conditions << arel_table[:group_id].in(group_ids) if group_ids.compact.any? + conditions << arel_table[:project_id].in(project_ids) if project_ids&.compact&.any? + conditions << arel_table[:group_id].in(group_ids) if group_ids&.compact&.any? where(conditions.reduce(:or)) end diff --git a/app/models/note.rb b/app/models/note.rb index 0f5fb529a87..e426f84832b 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -268,6 +268,10 @@ class Note < ActiveRecord::Base self.special_role = Note::SpecialRole::FIRST_TIME_CONTRIBUTOR end + def confidential? + noteable.try(:confidential?) + end + def editable? !system? end @@ -313,6 +317,10 @@ class Note < ActiveRecord::Base !system? && !for_snippet? end + def can_create_notification? + true + end + def discussion_class(noteable = nil) # When commit notes are rendered on an MR's Discussion page, they are # displayed in one discussion instead of individually. diff --git a/app/models/project.rb b/app/models/project.rb index 714a15ade9c..1b29cbf28d2 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -21,6 +21,7 @@ class Project < ActiveRecord::Base include Gitlab::SQL::Pattern include DeploymentPlatform include ::Gitlab::Utils::StrongMemoize + include ChronicDurationAttribute extend Gitlab::ConfigHelper @@ -325,6 +326,12 @@ class Project < ActiveRecord::Base enum auto_cancel_pending_pipelines: { disabled: 0, enabled: 1 } + chronic_duration_attr :build_timeout_human_readable, :build_timeout, default: 3600 + + validates :build_timeout, allow_nil: true, + numericality: { greater_than_or_equal_to: 600, + message: 'needs to be at least 10 minutes' } + # Returns a collection of projects that is either public or visible to the # logged in user. def self.public_or_visible_to_user(user = nil) @@ -630,7 +637,7 @@ class Project < ActiveRecord::Base end def create_or_update_import_data(data: nil, credentials: nil) - return unless import_url.present? && valid_import_url? + return if data.nil? && credentials.nil? project_import_data = import_data || build_import_data if data @@ -1066,6 +1073,16 @@ class Project < ActiveRecord::Base end end + # This will return all `lfs_objects` that are accessible to the project. + # So this might be `self.lfs_objects` if the project is not part of a fork + # network, or it is the base of the fork network. + # + # TODO: refactor this to get the correct lfs objects when implementing + # https://gitlab.com/gitlab-org/gitlab-ce/issues/39769 + def all_lfs_objects + lfs_storage_project.lfs_objects + end + def personal? !group end @@ -1299,14 +1316,6 @@ class Project < ActiveRecord::Base self.runners_token && ActiveSupport::SecurityUtils.variable_size_secure_compare(token, self.runners_token) end - def build_timeout_in_minutes - build_timeout / 60 - end - - def build_timeout_in_minutes=(value) - self.build_timeout = value.to_i * 60 - end - def open_issues_count Projects::OpenIssuesCountService.new(self).count end @@ -1478,6 +1487,7 @@ class Project < ActiveRecord::Base remove_import_jid update_project_counter_caches after_create_default_branch + refresh_markdown_cache! end def update_project_counter_caches diff --git a/app/models/project_services/chat_notification_service.rb b/app/models/project_services/chat_notification_service.rb index dab0ea1a681..7591ab4f478 100644 --- a/app/models/project_services/chat_notification_service.rb +++ b/app/models/project_services/chat_notification_service.rb @@ -21,8 +21,16 @@ class ChatNotificationService < Service end end + def confidential_issue_channel + properties['confidential_issue_channel'].presence || properties['issue_channel'] + end + + def confidential_note_channel + properties['confidential_note_channel'].presence || properties['note_channel'] + end + def self.supported_events - %w[push issue confidential_issue merge_request note tag_push + %w[push issue confidential_issue merge_request note confidential_note tag_push pipeline wiki_page] end @@ -55,7 +63,9 @@ class ChatNotificationService < Service return false unless message - channel_name = get_channel_field(object_kind).presence || channel + event_type = data[:event_type] || object_kind + + channel_name = get_channel_field(event_type).presence || channel opts = {} opts[:channel] = channel_name if channel_name diff --git a/app/models/project_services/hipchat_service.rb b/app/models/project_services/hipchat_service.rb index f31c3f02af2..dce878e485f 100644 --- a/app/models/project_services/hipchat_service.rb +++ b/app/models/project_services/hipchat_service.rb @@ -46,7 +46,7 @@ class HipchatService < Service end def self.supported_events - %w(push issue confidential_issue merge_request note tag_push pipeline) + %w(push issue confidential_issue merge_request note confidential_note tag_push pipeline) end def execute(data) diff --git a/app/models/service.rb b/app/models/service.rb index 7424cef0fc0..e9b6f005aec 100644 --- a/app/models/service.rb +++ b/app/models/service.rb @@ -14,6 +14,7 @@ class Service < ActiveRecord::Base default_value_for :merge_requests_events, true default_value_for :tag_push_events, true default_value_for :note_events, true + default_value_for :confidential_note_events, true default_value_for :job_events, true default_value_for :pipeline_events, true default_value_for :wiki_page_events, true @@ -42,6 +43,7 @@ class Service < ActiveRecord::Base scope :confidential_issue_hooks, -> { where(confidential_issues_events: true, active: true) } scope :merge_request_hooks, -> { where(merge_requests_events: true, active: true) } scope :note_hooks, -> { where(note_events: true, active: true) } + scope :confidential_note_hooks, -> { where(confidential_note_events: true, active: true) } scope :job_hooks, -> { where(job_events: true, active: true) } scope :pipeline_hooks, -> { where(pipeline_events: true, active: true) } scope :wiki_page_hooks, -> { where(wiki_page_events: true, active: true) } @@ -168,8 +170,10 @@ class Service < ActiveRecord::Base def self.prop_accessor(*args) args.each do |arg| class_eval %{ - def #{arg} - properties['#{arg}'] + unless method_defined?(arg) + def #{arg} + properties['#{arg}'] + end end def #{arg}=(value) diff --git a/app/models/user.rb b/app/models/user.rb index ba51595e6a3..ce56b39b1c8 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -164,12 +164,15 @@ class User < ActiveRecord::Base before_validation :sanitize_attrs before_validation :set_notification_email, if: :email_changed? + before_save :set_notification_email, if: :email_changed? # in case validation is skipped before_validation :set_public_email, if: :public_email_changed? + before_save :set_public_email, if: :public_email_changed? # in case validation is skipped before_save :ensure_incoming_email_token before_save :ensure_user_rights_and_limits, if: ->(user) { user.new_record? || user.external_changed? } before_save :skip_reconfirmation!, if: ->(user) { user.email_changed? && user.read_only_attribute?(:email) } before_save :check_for_verified_email, if: ->(user) { user.email_changed? && !user.new_record? } before_validation :ensure_namespace_correct + before_save :ensure_namespace_correct # in case validation is skipped after_validation :set_username_errors after_update :username_changed_hook, if: :username_changed? after_destroy :post_destroy_hook @@ -408,7 +411,6 @@ class User < ActiveRecord::Base unique_internal(where(ghost: true), 'ghost', email) do |u| u.bio = 'This is a "Ghost User", created to hold all issues authored by users that have since been deleted. This user cannot be removed.' u.name = 'Ghost User' - u.notification_email = email end end end @@ -1044,11 +1046,6 @@ class User < ActiveRecord::Base end end - def update_cache_counts - assigned_open_merge_requests_count(force: true) - assigned_open_issues_count(force: true) - end - def update_todos_count_cache todos_done_count(force: true) todos_pending_count(force: true) diff --git a/app/policies/issuable_policy.rb b/app/policies/issuable_policy.rb index 3f6d7d04667..e86d1c8f98e 100644 --- a/app/policies/issuable_policy.rb +++ b/app/policies/issuable_policy.rb @@ -2,20 +2,6 @@ class IssuablePolicy < BasePolicy delegate { @subject.project } condition(:locked, scope: :subject, score: 0) { @subject.discussion_locked? } - - # We aren't checking `:read_issue` or `:read_merge_request` in this case - # because it could be possible for a user to see an issuable-iid - # (`:read_issue_iid` or `:read_merge_request_iid`) but then wouldn't be allowed - # to read the actual issue after a more expensive `:read_issue` check. - # - # `:read_issue` & `:read_issue_iid` could diverge in gitlab-ee. - condition(:visible_to_user, score: 4) do - Project.where(id: @subject.project) - .public_or_visible_to_user(@user) - .with_feature_available_for_user(@subject, @user) - .any? - end - condition(:is_project_member) { @user && @subject.project && @subject.project.team.member?(@user) } desc "User is the assignee or author" diff --git a/app/policies/issue_policy.rb b/app/policies/issue_policy.rb index ed499511999..263c6e3039c 100644 --- a/app/policies/issue_policy.rb +++ b/app/policies/issue_policy.rb @@ -17,6 +17,4 @@ class IssuePolicy < IssuablePolicy prevent :update_issue prevent :admin_issue end - - rule { can?(:read_issue) | visible_to_user }.enable :read_issue_iid end diff --git a/app/policies/merge_request_policy.rb b/app/policies/merge_request_policy.rb index e003376d219..c3fe857f8a2 100644 --- a/app/policies/merge_request_policy.rb +++ b/app/policies/merge_request_policy.rb @@ -1,3 +1,2 @@ class MergeRequestPolicy < IssuablePolicy - rule { can?(:read_merge_request) | visible_to_user }.enable :read_merge_request_iid end diff --git a/app/policies/project_policy.rb b/app/policies/project_policy.rb index 57ab0c23dcd..b1ed034cd00 100644 --- a/app/policies/project_policy.rb +++ b/app/policies/project_policy.rb @@ -66,6 +66,22 @@ class ProjectPolicy < BasePolicy project.merge_requests_allowing_push_to_user(user).any? end + # We aren't checking `:read_issue` or `:read_merge_request` in this case + # because it could be possible for a user to see an issuable-iid + # (`:read_issue_iid` or `:read_merge_request_iid`) but then wouldn't be + # allowed to read the actual issue after a more expensive `:read_issue` + # check. These checks are intended to be used alongside + # `:read_project_for_iids`. + # + # `:read_issue` & `:read_issue_iid` could diverge in gitlab-ee. + condition(:issues_visible_to_user, score: 4) do + @subject.feature_available?(:issues, @user) + end + + condition(:merge_requests_visible_to_user, score: 4) do + @subject.feature_available?(:merge_requests, @user) + end + features = %w[ merge_requests issues @@ -81,6 +97,10 @@ class ProjectPolicy < BasePolicy condition(:"#{f}_disabled", score: 32) { !feature_available?(f.to_sym) } end + # `:read_project` may be prevented in EE, but `:read_project_for_iids` should + # not. + rule { guest | admin }.enable :read_project_for_iids + rule { guest }.enable :guest_access rule { reporter }.enable :reporter_access rule { developer }.enable :developer_access @@ -150,6 +170,7 @@ class ProjectPolicy < BasePolicy # where we enable or prevent it based on other coditions. rule { (~anonymous & public_project) | internal_access }.policy do enable :public_user_access + enable :read_project_for_iids end rule { can?(:public_user_access) }.policy do @@ -255,7 +276,11 @@ class ProjectPolicy < BasePolicy end rule { anonymous & ~public_project }.prevent_all - rule { public_project }.enable(:public_access) + + rule { public_project }.policy do + enable :public_access + enable :read_project_for_iids + end rule { can?(:public_access) }.policy do enable :read_project @@ -305,6 +330,14 @@ class ProjectPolicy < BasePolicy enable :update_pipeline end + rule do + (can?(:read_project_for_iids) & issues_visible_to_user) | can?(:read_issue) + end.enable :read_issue_iid + + rule do + (can?(:read_project_for_iids) & merge_requests_visible_to_user) | can?(:read_merge_request) + end.enable :read_merge_request_iid + private def team_member? diff --git a/app/presenters/ci/build_presenter.rb b/app/presenters/ci/build_presenter.rb index 255475e1fe6..9afebda19be 100644 --- a/app/presenters/ci/build_presenter.rb +++ b/app/presenters/ci/build_presenter.rb @@ -15,6 +15,8 @@ module Ci def status_title if auto_canceled? "Job is redundant and is auto-canceled by Pipeline ##{auto_canceled_by_id}" + else + tooltip_for_badge end end @@ -28,5 +30,19 @@ module Ci trigger_request.user_variables end end + + def tooltip_message + "#{subject.name} - #{detailed_status.status_tooltip}" + end + + private + + def tooltip_for_badge + detailed_status.badge_tooltip.capitalize + end + + def detailed_status + @detailed_status ||= subject.detailed_status(user) + end end end diff --git a/app/serializers/build_metadata_entity.rb b/app/serializers/build_metadata_entity.rb index 39f429aa6c3..f16f3badffa 100644 --- a/app/serializers/build_metadata_entity.rb +++ b/app/serializers/build_metadata_entity.rb @@ -1,8 +1,5 @@ class BuildMetadataEntity < Grape::Entity - expose :timeout_human_readable do |metadata| - metadata.timeout_human_readable unless metadata.timeout.nil? - end - + expose :timeout_human_readable expose :timeout_source do |metadata| metadata.present.timeout_source end diff --git a/app/serializers/status_entity.rb b/app/serializers/status_entity.rb index a7c2e21e92b..8e8bda2f9df 100644 --- a/app/serializers/status_entity.rb +++ b/app/serializers/status_entity.rb @@ -2,7 +2,7 @@ class StatusEntity < Grape::Entity include RequestAwareEntity expose :icon, :text, :label, :group - + expose :status_tooltip, as: :tooltip expose :has_details?, as: :has_details expose :details_path diff --git a/app/services/boards/issues/list_service.rb b/app/services/boards/issues/list_service.rb index ecd74b74f8a..ac70a99c2c5 100644 --- a/app/services/boards/issues/list_service.rb +++ b/app/services/boards/issues/list_service.rb @@ -35,6 +35,7 @@ module Boards def filter_params set_parent set_state + set_scope params end @@ -51,6 +52,10 @@ module Boards params[:state] = list && list.closed? ? 'closed' : 'opened' end + def set_scope + params[:include_subgroups] = board.group_board? + end + def board_label_ids @board_label_ids ||= board.lists.movable.pluck(:label_id) end diff --git a/app/services/boards/issues/move_service.rb b/app/services/boards/issues/move_service.rb index 15fed7d17c1..3ceab209f3f 100644 --- a/app/services/boards/issues/move_service.rb +++ b/app/services/boards/issues/move_service.rb @@ -42,7 +42,10 @@ module Boards ) end - attrs[:move_between_ids] = move_between_ids if move_between_ids + if move_between_ids + attrs[:move_between_ids] = move_between_ids + attrs[:board_group_id] = board.group&.id + end attrs end diff --git a/app/services/ci/register_job_service.rb b/app/services/ci/register_job_service.rb index e09b445636f..d46dcff34a1 100644 --- a/app/services/ci/register_job_service.rb +++ b/app/services/ci/register_job_service.rb @@ -4,6 +4,9 @@ module Ci class RegisterJobService attr_reader :runner + JOB_QUEUE_DURATION_SECONDS_BUCKETS = [1, 3, 10, 30].freeze + JOBS_RUNNING_FOR_PROJECT_MAX_BUCKET = 5.freeze + Result = Struct.new(:build, :valid?) def initialize(runner) @@ -104,10 +107,22 @@ module Ci end def register_success(job) - job_queue_duration_seconds.observe({ shared_runner: @runner.shared? }, Time.now - job.created_at) + labels = { shared_runner: runner.shared?, + jobs_running_for_project: jobs_running_for_project(job) } + + job_queue_duration_seconds.observe(labels, Time.now - job.queued_at) attempt_counter.increment end + def jobs_running_for_project(job) + return '+Inf' unless runner.shared? + + # excluding currently started job + running_jobs_count = job.project.builds.running.where(runner: Ci::Runner.shared) + .limit(JOBS_RUNNING_FOR_PROJECT_MAX_BUCKET + 1).count - 1 + running_jobs_count < JOBS_RUNNING_FOR_PROJECT_MAX_BUCKET ? running_jobs_count : "#{JOBS_RUNNING_FOR_PROJECT_MAX_BUCKET}+" + end + def failed_attempt_counter @failed_attempt_counter ||= Gitlab::Metrics.counter(:job_register_attempts_failed_total, "Counts the times a runner tries to register a job") end @@ -117,7 +132,7 @@ module Ci end def job_queue_duration_seconds - @job_queue_duration_seconds ||= Gitlab::Metrics.histogram(:job_queue_duration_seconds, 'Request handling execution time') + @job_queue_duration_seconds ||= Gitlab::Metrics.histogram(:job_queue_duration_seconds, 'Request handling execution time', {}, JOB_QUEUE_DURATION_SECONDS_BUCKETS) end end end diff --git a/app/services/issuable/destroy_service.rb b/app/services/issuable/destroy_service.rb index 7197a426a72..0b1a33518c6 100644 --- a/app/services/issuable/destroy_service.rb +++ b/app/services/issuable/destroy_service.rb @@ -4,6 +4,7 @@ module Issuable TodoService.new.destroy_target(issuable) do |issuable| if issuable.destroy issuable.update_project_counter_caches + issuable.assignees.each(&:invalidate_cache_counts) end end end diff --git a/app/services/issuable_base_service.rb b/app/services/issuable_base_service.rb index 91ec702fbc6..1f67e3ecf9d 100644 --- a/app/services/issuable_base_service.rb +++ b/app/services/issuable_base_service.rb @@ -51,9 +51,10 @@ class IssuableBaseService < BaseService return unless milestone_id params[:milestone_id] = '' if milestone_id == IssuableFinder::NONE + group_ids = project.group&.self_and_ancestors&.pluck(:id) milestone = - Milestone.for_projects_and_groups([project.id], [project.group&.id]).find_by_id(milestone_id) + Milestone.for_projects_and_groups([project.id], group_ids).find_by_id(milestone_id) params[:milestone_id] = '' unless milestone end diff --git a/app/services/issues/update_service.rb b/app/services/issues/update_service.rb index d7aa7e2347e..1374f10c586 100644 --- a/app/services/issues/update_service.rb +++ b/app/services/issues/update_service.rb @@ -55,9 +55,10 @@ module Issues return unless params[:move_between_ids] after_id, before_id = params.delete(:move_between_ids) + board_group_id = params.delete(:board_group_id) - issue_before = get_issue_if_allowed(issue.project, before_id) if before_id - issue_after = get_issue_if_allowed(issue.project, after_id) if after_id + issue_before = get_issue_if_allowed(before_id, board_group_id) + issue_after = get_issue_if_allowed(after_id, board_group_id) issue.move_between(issue_before, issue_after) end @@ -84,8 +85,16 @@ module Issues private - def get_issue_if_allowed(project, id) - issue = project.issues.find(id) + def get_issue_if_allowed(id, board_group_id = nil) + return unless id + + issue = + if board_group_id + IssuesFinder.new(current_user, group_id: board_group_id, include_subgroups: true).find_by(id: id) + else + project.issues.find(id) + end + issue if can?(current_user, :update_issue, issue) end diff --git a/app/services/notes/post_process_service.rb b/app/services/notes/post_process_service.rb index ad3dcc5010b..199b8028dbc 100644 --- a/app/services/notes/post_process_service.rb +++ b/app/services/notes/post_process_service.rb @@ -11,7 +11,7 @@ module Notes unless @note.system? EventCreateService.new.leave_note(@note, @note.author) - return unless @note.for_project_noteable? + return if @note.for_personal_snippet? @note.create_cross_references! execute_note_hooks @@ -23,9 +23,13 @@ module Notes end def execute_note_hooks + return unless @note.project + note_data = hook_data - @note.project.execute_hooks(note_data, :note_hooks) - @note.project.execute_services(note_data, :note_hooks) + hooks_scope = @note.confidential? ? :confidential_note_hooks : :note_hooks + + @note.project.execute_hooks(note_data, hooks_scope) + @note.project.execute_services(note_data, hooks_scope) end end end diff --git a/app/services/projects/gitlab_projects_import_service.rb b/app/services/projects/gitlab_projects_import_service.rb index a68ecb4abe1..fb4afb85588 100644 --- a/app/services/projects/gitlab_projects_import_service.rb +++ b/app/services/projects/gitlab_projects_import_service.rb @@ -5,8 +5,8 @@ module Projects class GitlabProjectsImportService attr_reader :current_user, :params - def initialize(user, params) - @current_user, @params = user, params.dup + def initialize(user, import_params, override_params = nil) + @current_user, @params, @override_params = user, import_params.dup, override_params end def execute @@ -17,6 +17,7 @@ module Projects params[:import_type] = 'gitlab_project' params[:import_source] = import_upload_path + params[:import_data] = { data: { override_params: @override_params } } if @override_params ::Projects::CreateService.new(current_user, params).execute end diff --git a/app/services/projects/import_export/export_service.rb b/app/services/projects/import_export/export_service.rb index 402cddd3ec1..7bf0b90b491 100644 --- a/app/services/projects/import_export/export_service.rb +++ b/app/services/projects/import_export/export_service.rb @@ -28,7 +28,7 @@ module Projects end def save_services - [version_saver, avatar_saver, project_tree_saver, uploads_saver, repo_saver, wiki_repo_saver].all?(&:save) + [version_saver, avatar_saver, project_tree_saver, uploads_saver, repo_saver, wiki_repo_saver, lfs_saver].all?(&:save) end def version_saver @@ -55,6 +55,10 @@ module Projects Gitlab::ImportExport::WikiRepoSaver.new(project: project, shared: @shared) end + def lfs_saver + Gitlab::ImportExport::LfsSaver.new(project: project, shared: @shared) + end + def cleanup_and_notify_error Rails.logger.error("Import/Export - Project #{project.name} with ID: #{project.id} export error - #{@shared.errors.join(', ')}") diff --git a/app/services/system_note_service.rb b/app/services/system_note_service.rb index 2253d638e93..00bf5434b7f 100644 --- a/app/services/system_note_service.rb +++ b/app/services/system_note_service.rb @@ -429,7 +429,7 @@ module SystemNoteService def cross_reference(noteable, mentioner, author) return if cross_reference_disallowed?(noteable, mentioner) - gfm_reference = mentioner.gfm_reference(noteable.project) + gfm_reference = mentioner.gfm_reference(noteable.project || noteable.group) body = cross_reference_note_content(gfm_reference) if noteable.is_a?(ExternalIssue) @@ -582,7 +582,7 @@ module SystemNoteService text = "#{cross_reference_note_prefix}%#{mentioner.to_reference(nil)}" notes.where('(note LIKE ? OR note LIKE ?)', text, text.capitalize) else - gfm_reference = mentioner.gfm_reference(noteable.project) + gfm_reference = mentioner.gfm_reference(noteable.project || noteable.group) text = cross_reference_note_content(gfm_reference) notes.where(note: [text, text.capitalize]) end diff --git a/app/uploaders/job_artifact_uploader.rb b/app/uploaders/job_artifact_uploader.rb index ef0f8acefd6..dd86753479d 100644 --- a/app/uploaders/job_artifact_uploader.rb +++ b/app/uploaders/job_artifact_uploader.rb @@ -2,6 +2,8 @@ class JobArtifactUploader < GitlabUploader extend Workhorse::UploadPath include ObjectStorage::Concern + ObjectNotReadyError = Class.new(StandardError) + storage_options Gitlab.config.artifacts def size @@ -25,6 +27,8 @@ class JobArtifactUploader < GitlabUploader private def dynamic_segment + raise ObjectNotReadyError, 'JobArtifact is not ready' unless model.id + creation_date = model.created_at.utc.strftime('%Y_%m_%d') File.join(disk_hash[0..1], disk_hash[2..3], disk_hash, diff --git a/app/uploaders/legacy_artifact_uploader.rb b/app/uploaders/legacy_artifact_uploader.rb index b726b053493..efb7893d153 100644 --- a/app/uploaders/legacy_artifact_uploader.rb +++ b/app/uploaders/legacy_artifact_uploader.rb @@ -2,6 +2,8 @@ class LegacyArtifactUploader < GitlabUploader extend Workhorse::UploadPath include ObjectStorage::Concern + ObjectNotReadyError = Class.new(StandardError) + storage_options Gitlab.config.artifacts def store_dir @@ -11,6 +13,8 @@ class LegacyArtifactUploader < GitlabUploader private def dynamic_segment + raise ObjectNotReadyError, 'Build is not ready' unless model.id + File.join(model.created_at.utc.strftime('%Y_%m'), model.project_id.to_s, model.id.to_s) end end diff --git a/app/uploaders/object_storage.rb b/app/uploaders/object_storage.rb index 4028b052768..bd258e04d3f 100644 --- a/app/uploaders/object_storage.rb +++ b/app/uploaders/object_storage.rb @@ -128,7 +128,7 @@ module ObjectStorage end def direct_upload_enabled? - object_store_options.direct_upload + object_store_options&.direct_upload end def background_upload_enabled? @@ -156,11 +156,10 @@ module ObjectStorage end def workhorse_authorize - if options = workhorse_remote_upload_options - { RemoteObject: options } - else - { TempPath: workhorse_local_upload_path } - end + { + RemoteObject: workhorse_remote_upload_options, + TempPath: workhorse_local_upload_path + }.compact end def workhorse_local_upload_path @@ -184,6 +183,14 @@ module ObjectStorage StoreURL: connection.put_object_url(remote_store_path, upload_path, expire_at, options) } end + + def default_object_store + if self.object_store_enabled? && self.direct_upload_enabled? + Store::REMOTE + else + Store::LOCAL + end + end end # allow to configure and overwrite the filename @@ -204,12 +211,12 @@ module ObjectStorage end def object_store - @object_store ||= model.try(store_serialization_column) || Store::LOCAL + @object_store ||= model.try(store_serialization_column) || self.class.default_object_store end # rubocop:disable Gitlab/ModuleWithInstanceVariables def object_store=(value) - @object_store = value || Store::LOCAL + @object_store = value || self.class.default_object_store @storage = storage_for(object_store) end # rubocop:enable Gitlab/ModuleWithInstanceVariables @@ -285,16 +292,14 @@ module ObjectStorage } end - def store_workhorse_file!(params, identifier) - filename = params["#{identifier}.name"] - - if remote_object_id = params["#{identifier}.remote_id"] - store_remote_file!(remote_object_id, filename) - elsif local_path = params["#{identifier}.path"] - store_local_file!(local_path, filename) - else - raise RemoteStoreError, 'Bad file' + def cache!(new_file = sanitized_file) + # We intercept ::UploadedFile which might be stored on remote storage + # We use that for "accelerated" uploads, where we store result on remote storage + if new_file.is_a?(::UploadedFile) && new_file.remote_id + return cache_remote_file!(new_file.remote_id, new_file.original_filename) end + + super end private @@ -305,36 +310,29 @@ module ObjectStorage self.file_storage? end - def store_remote_file!(remote_object_id, filename) - raise RemoteStoreError, 'Missing filename' unless filename - + def cache_remote_file!(remote_object_id, original_filename) file_path = File.join(TMP_UPLOAD_PATH, remote_object_id) file_path = Pathname.new(file_path).cleanpath.to_s raise RemoteStoreError, 'Bad file path' unless file_path.start_with?(TMP_UPLOAD_PATH + '/') - self.object_store = Store::REMOTE - # TODO: # This should be changed to make use of `tmp/cache` mechanism # instead of using custom upload directory, # using tmp/cache makes this implementation way easier than it is today - CarrierWave::Storage::Fog::File.new(self, storage, file_path).tap do |file| + CarrierWave::Storage::Fog::File.new(self, storage_for(Store::REMOTE), file_path).tap do |file| raise RemoteStoreError, 'Missing file' unless file.exists? - self.filename = filename - self.file = storage.store!(file) - end - end - - def store_local_file!(local_path, filename) - raise RemoteStoreError, 'Missing filename' unless filename + # Remote stored file, we force to store on remote storage + self.object_store = Store::REMOTE - root_path = File.realpath(self.class.workhorse_local_upload_path) - file_path = File.realpath(local_path) - raise RemoteStoreError, 'Bad file path' unless file_path.start_with?(root_path) - - self.object_store = Store::LOCAL - self.store!(UploadedFile.new(file_path, filename)) + # TODO: + # We store file internally and force it to be considered as `cached` + # This makes CarrierWave to store file in permament location (copy/delete) + # once this object is saved, but not sooner + @cache_id = "force-to-use-cache" # rubocop:disable Gitlab/ModuleWithInstanceVariables + @file = file # rubocop:disable Gitlab/ModuleWithInstanceVariables + @filename = original_filename # rubocop:disable Gitlab/ModuleWithInstanceVariables + end end # this is a hack around CarrierWave. The #migrate method needs to be diff --git a/app/views/admin/application_settings/show.html.haml b/app/views/admin/application_settings/show.html.haml index 9e605054523..caaa93aa1e2 100644 --- a/app/views/admin/application_settings/show.html.haml +++ b/app/views/admin/application_settings/show.html.haml @@ -76,7 +76,7 @@ %button.btn.js-settings-toggle{ type: 'button' } = expanded ? 'Collapse' : 'Expand' %p - = _('Auto DevOps, runners amd job artifacts') + = _('Auto DevOps, runners and job artifacts') .settings-content = render 'ci_cd' diff --git a/app/views/ci/status/_badge.html.haml b/app/views/ci/status/_badge.html.haml index 35a3563dff1..5114387984b 100644 --- a/app/views/ci/status/_badge.html.haml +++ b/app/views/ci/status/_badge.html.haml @@ -4,10 +4,10 @@ - css_classes = "ci-status ci-#{status.group} #{'has-tooltip' if title.present?}" - if link && status.has_details? - = link_to status.details_path, class: css_classes, title: title do + = link_to status.details_path, class: css_classes, title: title, data: { html: title.present? } do = sprite_icon(status.icon) = status.text - else - %span{ class: css_classes, title: title } + %span{ class: css_classes, title: title, data: { html: title.present? } } = sprite_icon(status.icon) = status.text diff --git a/app/views/ci/status/_dropdown_graph_badge.html.haml b/app/views/ci/status/_dropdown_graph_badge.html.haml index c5b4439e273..db2040110fa 100644 --- a/app/views/ci/status/_dropdown_graph_badge.html.haml +++ b/app/views/ci/status/_dropdown_graph_badge.html.haml @@ -3,14 +3,15 @@ - subject = local_assigns.fetch(:subject) - status = subject.detailed_status(current_user) - klass = "ci-status-icon ci-status-icon-#{status.group}" -- tooltip = "#{subject.name} - #{status.label}" +- tooltip = "#{subject.name} - #{status.status_tooltip}" - if status.has_details? - = link_to status.details_path, class: 'mini-pipeline-graph-dropdown-item', data: { toggle: 'tooltip', title: tooltip, container: 'body' } do + = link_to status.details_path, class: 'mini-pipeline-graph-dropdown-item', data: { toggle: 'tooltip', title: tooltip, html: true, container: 'body' } do %span{ class: klass }= sprite_icon(status.icon) %span.ci-build-text= subject.name + - else - .menu-item.mini-pipeline-graph-dropdown-item{ data: { toggle: 'tooltip', title: tooltip, container: 'body' } } + .menu-item.mini-pipeline-graph-dropdown-item{ data: { toggle: 'tooltip', html: true, title: tooltip, container: 'body' } } %span{ class: klass }= sprite_icon(status.icon) %span.ci-build-text= subject.name diff --git a/app/views/email_rejection_mailer/rejection.text.haml b/app/views/email_rejection_mailer/rejection.text.haml index 6693e6f90e8..af518b5b583 100644 --- a/app/views/email_rejection_mailer/rejection.text.haml +++ b/app/views/email_rejection_mailer/rejection.text.haml @@ -1,4 +1,3 @@ Unfortunately, your email message to GitLab could not be processed. - - +\ = @reason diff --git a/app/views/profiles/accounts/show.html.haml b/app/views/profiles/accounts/show.html.haml index 02263095599..9c95b6281ba 100644 --- a/app/views/profiles/accounts/show.html.haml +++ b/app/views/profiles/accounts/show.html.haml @@ -57,20 +57,8 @@ = succeed '.' do = link_to 'Learn more', help_page_path('user/profile/index', anchor: 'changing-your-username'), target: '_blank' .col-lg-8 - = form_for @user, url: update_username_profile_path, method: :put, html: {class: "update-username"} do |f| - .form-group - = f.label :username, "Path", class: "label-light" - .input-group - .input-group-addon - = root_url - = f.text_field :username, required: true, class: 'form-control' - .help-block - Current path: - #{root_url}#{current_user.username} - .prepend-top-default - = f.button class: "btn btn-warning", type: "submit" do - = icon "spinner spin", class: "hidden loading-username" - Update username + - data = { initial_username: current_user.username, root_url: root_url, action_url: update_username_profile_path(format: :json) } + #update-username{ data: data } %hr .row.prepend-top-default diff --git a/app/views/profiles/personal_access_tokens/index.html.haml b/app/views/profiles/personal_access_tokens/index.html.haml index 78848542810..b96251cd982 100644 --- a/app/views/profiles/personal_access_tokens/index.html.haml +++ b/app/views/profiles/personal_access_tokens/index.html.haml @@ -19,8 +19,10 @@ %h5.prepend-top-0 Your New Personal Access Token .form-group - = text_field_tag 'created-personal-access-token', @new_personal_access_token, readonly: true, class: "form-control js-select-on-focus", 'aria-describedby' => "created-personal-access-token-help-block" - = clipboard_button(text: @new_personal_access_token, title: "Copy personal access token to clipboard", placement: "left") + .input-group + = text_field_tag 'created-personal-access-token', @new_personal_access_token, readonly: true, class: "form-control js-select-on-focus", 'aria-describedby' => "created-personal-access-token-help-block" + %span.input-group-btn + = clipboard_button(text: @new_personal_access_token, title: "Copy personal access token to clipboard", placement: "left", class: "btn-default btn-clipboard") %span#created-personal-access-token-help-block.help-block.text-danger Make sure you save it - you won't be able to access it again. %hr diff --git a/app/views/projects/_export.html.haml b/app/views/projects/_export.html.haml index 825bfd0707f..1e7d9444986 100644 --- a/app/views/projects/_export.html.haml +++ b/app/views/projects/_export.html.haml @@ -21,11 +21,11 @@ %li Project uploads %li Project configuration including web hooks and services %li Issues with comments, merge requests with diffs and comments, labels, milestones, snippets, and other project entities + %li LFS objects %p The following items will NOT be exported: %ul %li Job traces and artifacts - %li LFS objects %li Container registry images %li CI variables %li Any encrypted tokens diff --git a/app/views/projects/issues/_discussion.html.haml b/app/views/projects/issues/_discussion.html.haml index cdfc3e232c5..816f2fa816d 100644 --- a/app/views/projects/issues/_discussion.html.haml +++ b/app/views/projects/issues/_discussion.html.haml @@ -8,4 +8,5 @@ %section.js-vue-notes-event #js-vue-notes{ data: { notes_data: notes_data(@issue), noteable_data: serialize_issuable(@issue), + noteable_type: 'issue', current_user_data: UserSerializer.new.represent(current_user, only_path: true).to_json } } diff --git a/app/views/projects/jobs/_sidebar.html.haml b/app/views/projects/jobs/_sidebar.html.haml index ecf186e3dc8..0b57ebedebd 100644 --- a/app/views/projects/jobs/_sidebar.html.haml +++ b/app/views/projects/jobs/_sidebar.html.haml @@ -1,5 +1,3 @@ -- builds = @build.pipeline.builds.to_a - %aside.right-sidebar.right-sidebar-expanded.build-sidebar.js-build-sidebar.js-right-sidebar{ data: { "offset-top" => "101", "spy" => "affix" } } .sidebar-container .blocks-container @@ -91,7 +89,8 @@ - HasStatus::ORDERED_STATUSES.each do |build_status| - builds.select{|build| build.status == build_status}.each do |build| .build-job{ class: sidebar_build_class(build, @build), data: { stage: build.stage } } - = link_to project_job_path(@project, build) do + - tooltip = build.tooltip_message + = link_to(project_job_path(@project, build), data: { toggle: 'tooltip', html: true, title: tooltip, container: 'body' }) do = sprite_icon('arrow-right', size:16, css_class: 'icon-arrow-right') %span{ class: "ci-status-icon-#{build.status}" } = ci_icon_for_status(build.status) @@ -101,5 +100,4 @@ - else = build.id - if build.retried? - %span.has-tooltip{ data: { container: 'body', placement: 'bottom' }, title: 'Job was retried' } - = sprite_icon('retry', size:16, css_class: 'icon-retry') + = sprite_icon('retry', size:16, css_class: 'icon-retry') diff --git a/app/views/projects/jobs/show.html.haml b/app/views/projects/jobs/show.html.haml index fa27ded7cc2..dece4dfe167 100644 --- a/app/views/projects/jobs/show.html.haml +++ b/app/views/projects/jobs/show.html.haml @@ -107,7 +107,7 @@ illustration_size: 'svg-430', title: _('This job has not started yet'), content: _('This job is in pending state and is waiting to be picked by a runner') - = render "sidebar" + = render "sidebar", builds: @builds .js-build-options{ data: javascript_build_options } diff --git a/app/views/projects/merge_requests/show.html.haml b/app/views/projects/merge_requests/show.html.haml index 9866cc716ee..15a0e4d7ef5 100644 --- a/app/views/projects/merge_requests/show.html.haml +++ b/app/views/projects/merge_requests/show.html.haml @@ -80,6 +80,7 @@ - if has_vue_discussions_cookie? #js-vue-mr-discussions{ data: { notes_data: notes_data(@merge_request), noteable_data: serialize_issuable(@merge_request), + noteable_type: 'merge_request', current_user_data: UserSerializer.new.represent(current_user).to_json} } #commits.commits.tab-pane diff --git a/app/views/projects/pages/_list.html.haml b/app/views/projects/pages/_list.html.haml index 75df92b05a7..27bbe52a714 100644 --- a/app/views/projects/pages/_list.html.haml +++ b/app/views/projects/pages/_list.html.haml @@ -1,28 +1,29 @@ +- verification_enabled = Gitlab::CurrentSettings.pages_domain_verification_enabled? + - if can?(current_user, :update_pages, @project) && @domains.any? .panel.panel-default .panel-heading Domains (#{@domains.count}) - %ul.well-list - - verification_enabled = Gitlab::CurrentSettings.pages_domain_verification_enabled? + %ul.well-list.pages-domain-list{ class: ("has-verification-status" if verification_enabled) } - @domains.each do |domain| - %li - .pull-right + %li.pages-domain-list-item.unstyled + - if verification_enabled + - tooltip, status = domain.unverified? ? [_('Unverified'), 'failed'] : [_('Verified'), 'success'] + .domain-status.ci-status-icon.has-tooltip{ class: "ci-status-icon-#{status}", title: tooltip } + = sprite_icon("status_#{status}", size: 16 ) + .domain-name + = link_to domain.url do + = domain.url + = icon('external-link') + - if domain.subject + %p + %span.label.label-gray Certificate: #{domain.subject} + - if domain.expired? + %span.label.label-danger Expired + %div = link_to 'Details', project_pages_domain_path(@project, domain), class: "btn btn-sm btn-grouped" = link_to 'Remove', project_pages_domain_path(@project, domain), data: { confirm: 'Are you sure?'}, method: :delete, class: "btn btn-remove btn-sm btn-grouped" - .clearfix - - if verification_enabled - - tooltip, status = domain.unverified? ? ['Unverified', 'failed'] : ['Verified', 'success'] - = link_to domain.url, title: tooltip, class: 'has-tooltip' do - = sprite_icon("status_#{status}", size: 16, css_class: "has-tooltip ci-status-icon ci-status-icon-#{status}") - = domain.domain - - else - = link_to domain.domain, domain.url - %p - - if domain.subject - %span.label.label-gray Certificate: #{domain.subject} - - if domain.expired? - %span.label.label-danger Expired - if verification_enabled && domain.unverified? %li.warning-row #{domain.domain} is not verified. To learn how to verify ownership, visit your - = link_to 'domain details', project_pages_domain_path(@project, domain) + #{link_to 'domain details', project_pages_domain_path(@project, domain)}. diff --git a/app/views/projects/pages/show.html.haml b/app/views/projects/pages/show.html.haml index f17d9d24db6..6adaea799b2 100644 --- a/app/views/projects/pages/show.html.haml +++ b/app/views/projects/pages/show.html.haml @@ -1,11 +1,10 @@ - page_title 'Pages' -%h3.page_title +%h3.page-title.with-button Pages - if can?(current_user, :update_pages, @project) && (Gitlab.config.pages.external_http || Gitlab.config.pages.external_https) = link_to new_project_pages_domain_path(@project), class: 'btn btn-new pull-right', title: 'New Domain' do - %i.fa.fa-plus New Domain %p.light diff --git a/app/views/projects/pages_domains/edit.html.haml b/app/views/projects/pages_domains/edit.html.haml index 5645a4604bf..6c404990492 100644 --- a/app/views/projects/pages_domains/edit.html.haml +++ b/app/views/projects/pages_domains/edit.html.haml @@ -1,7 +1,7 @@ - add_to_breadcrumbs "Pages", project_pages_path(@project) - breadcrumb_title @domain.domain - page_title @domain.domain -%h3.page_title +%h3.page-title = @domain.domain %hr.clearfix %div diff --git a/app/views/projects/pages_domains/new.html.haml b/app/views/projects/pages_domains/new.html.haml index e49163880c7..269df803a2b 100644 --- a/app/views/projects/pages_domains/new.html.haml +++ b/app/views/projects/pages_domains/new.html.haml @@ -1,6 +1,6 @@ - add_to_breadcrumbs "Pages", project_pages_path(@project) - page_title 'New Pages Domain' -%h3.page_title +%h3.page-title New Pages Domain %hr.clearfix %div diff --git a/app/views/projects/pages_domains/show.html.haml b/app/views/projects/pages_domains/show.html.haml index ba0713daee9..44d66f3b2d0 100644 --- a/app/views/projects/pages_domains/show.html.haml +++ b/app/views/projects/pages_domains/show.html.haml @@ -1,17 +1,19 @@ - add_to_breadcrumbs "Pages", project_pages_path(@project) - breadcrumb_title @domain.domain - page_title "#{@domain.domain}", 'Pages Domains' +- dns_record = "#{@domain.domain} CNAME #{@domain.project.pages_subdomain}.#{Settings.pages.host}." - verification_enabled = Gitlab::CurrentSettings.pages_domain_verification_enabled? + - if verification_enabled && @domain.unverified? - %p.alert.alert-warning - %strong - This domain is not verified. You will need to verify ownership before - access is enabled. + = content_for :flash_message do + .alert.alert-warning + .container-fluid.container-limited + This domain is not verified. You will need to verify ownership before access is enabled. -%h3.page-title - Pages Domain +%h3.page-title.with-button = link_to 'Edit', edit_project_pages_domain_path(@project, @domain), class: 'btn btn-success pull-right' + Pages Domain .table-holder %table.table @@ -19,31 +21,41 @@ %td Domain %td - = link_to @domain.domain, @domain.url + = link_to @domain.url do + = @domain.url + = icon('external-link') %tr %td DNS %td - %p - To access this domain create a new DNS record: - %pre - #{@domain.domain} CNAME #{@domain.project.pages_subdomain}.#{Settings.pages.host}. + .input-group + = text_field_tag :domain_dns, dns_record , class: "monospace js-select-on-focus form-control", readonly: true + .input-group-btn + = clipboard_button(target: '#domain_dns', class: 'btn-default hidden-xs') + %p.help-block + To access this domain create a new DNS record + - if verification_enabled + - verification_record = "#{@domain.verification_domain} TXT #{@domain.keyed_verification_code}" %tr %td Verification status %td - %p + = form_tag verify_project_pages_domain_path(@project, @domain) do + .status-badge + - text, status = @domain.unverified? ? [_('Unverified'), 'label-danger'] : [_('Verified'), 'label-success'] + .label{ class: status } + = text + %button.btn.has-tooltip{ type: "submit", data: { container: 'body' }, title: _("Retry verification") } + = sprite_icon('redo') + .input-group + = text_field_tag :domain_verification, verification_record, class: "monospace js-select-on-focus form-control", readonly: true + .input-group-btn + = clipboard_button(target: '#domain_verification', class: 'btn-default hidden-xs') + %p.help-block - help_link = help_page_path('user/project/pages/getting_started_part_three.md', anchor: 'dns-txt-record') - To #{link_to 'verify ownership', help_link} of your domain, create - this DNS record: - %pre - #{@domain.verification_domain} TXT #{@domain.keyed_verification_code} - %p - - if @domain.verified? - #{@domain.domain} has been successfully verified. - - else - = button_to 'Verify ownership', verify_project_pages_domain_path(@project, @domain), class: 'btn btn-save btn-sm' + To #{link_to 'verify ownership', help_link} of your domain, + add the above key to a TXT record within to your DNS configuration. %tr %td diff --git a/app/views/projects/pipelines_settings/_badge.html.haml b/app/views/projects/settings/ci_cd/_badge.html.haml index e8028059487..e8028059487 100644 --- a/app/views/projects/pipelines_settings/_badge.html.haml +++ b/app/views/projects/settings/ci_cd/_badge.html.haml diff --git a/app/views/projects/pipelines_settings/_show.html.haml b/app/views/projects/settings/ci_cd/_form.html.haml index 646c01c0989..20868f9ba5d 100644 --- a/app/views/projects/pipelines_settings/_show.html.haml +++ b/app/views/projects/settings/ci_cd/_form.html.haml @@ -1,6 +1,7 @@ .row.prepend-top-default .col-lg-12 - = form_for @project, url: project_pipelines_settings_path(@project) do |f| + = form_for @project, url: project_settings_ci_cd_path(@project) do |f| + = form_errors(@project) %fieldset.builds-feature .form-group %h5 Auto DevOps (Beta) @@ -73,10 +74,10 @@ %hr .form-group - = f.label :build_timeout_in_minutes, 'Timeout', class: 'label-light' - = f.number_field :build_timeout_in_minutes, class: 'form-control', min: '0' + = f.label :build_timeout_human_readable, 'Timeout', class: 'label-light' + = f.text_field :build_timeout_human_readable, class: 'form-control' %p.help-block - Per job in minutes. If a job passes this threshold, it will be marked as failed + Per job. If a job passes this threshold, it will be marked as failed = link_to icon('question-circle'), help_page_path('user/project/pipelines/settings', anchor: 'timeout'), target: '_blank' %hr @@ -151,10 +152,13 @@ %li excoveralls (Elixir) - %code \[TOTAL\]\s+(\d+\.\d+)% + %li + JaCoCo (Java/Kotlin) + %code Total.*?([0-9]{1,3})% = f.submit 'Save changes', class: "btn btn-save" %hr .row.prepend-top-default - = render partial: 'projects/pipelines_settings/badge', collection: @badges + = render partial: 'badge', collection: @badges diff --git a/app/views/projects/settings/ci_cd/show.html.haml b/app/views/projects/settings/ci_cd/show.html.haml index d65341dbd40..09268c9943b 100644 --- a/app/views/projects/settings/ci_cd/show.html.haml +++ b/app/views/projects/settings/ci_cd/show.html.haml @@ -3,8 +3,9 @@ - page_title "CI / CD" - expanded = Rails.env.test? +- general_expanded = @project.errors.empty? ? expanded : true -%section.settings#js-general-pipeline-settings.no-animate{ class: ('expanded' if expanded) } +%section.settings#js-general-pipeline-settings.no-animate{ class: ('expanded' if general_expanded) } .settings-header %h4 General pipelines settings @@ -13,7 +14,7 @@ %p Update your CI/CD configuration, like job timeout or Auto DevOps. .settings-content - = render 'projects/pipelines_settings/show' + = render 'form' %section.settings.no-animate{ class: ('expanded' if expanded) } .settings-header diff --git a/app/views/shared/boards/components/_sidebar.html.haml b/app/views/shared/boards/components/_sidebar.html.haml index 8e5e32e9f16..b385cc3f962 100644 --- a/app/views/shared/boards/components/_sidebar.html.haml +++ b/app/views/shared/boards/components/_sidebar.html.haml @@ -22,6 +22,6 @@ = render "shared/boards/components/sidebar/labels" = render "shared/boards/components/sidebar/notifications" %remove-btn{ ":issue" => "issue", - ":issue-update" => "'#{build_issue_link_base}/' + issue.iid + '.json'", + ":issue-update" => "issue.sidebarInfoEndpoint", ":list" => "list", "v-if" => "canRemove" } diff --git a/app/views/shared/boards/components/sidebar/_assignee.html.haml b/app/views/shared/boards/components/sidebar/_assignee.html.haml index 3d2e8471a60..1374da9d82c 100644 --- a/app/views/shared/boards/components/sidebar/_assignee.html.haml +++ b/app/views/shared/boards/components/sidebar/_assignee.html.haml @@ -21,8 +21,7 @@ .dropdown - dropdown_options = issue_assignees_dropdown_options %button.dropdown-menu-toggle.js-user-search.js-author-search.js-multiselect.js-save-user-data.js-issue-board-sidebar{ type: 'button', ref: 'assigneeDropdown', data: board_sidebar_user_data, - ":data-issuable-id" => "issue.iid", - ":data-issue-update" => "'#{build_issue_link_base}/' + issue.iid + '.json'" } + ":data-issuable-id" => "issue.iid" } = dropdown_options[:title] = icon("chevron-down") .dropdown-menu.dropdown-select.dropdown-menu-user.dropdown-menu-selectable.dropdown-menu-author diff --git a/app/views/shared/boards/components/sidebar/_due_date.html.haml b/app/views/shared/boards/components/sidebar/_due_date.html.haml index db794d6f855..d13b998e6f4 100644 --- a/app/views/shared/boards/components/sidebar/_due_date.html.haml +++ b/app/views/shared/boards/components/sidebar/_due_date.html.haml @@ -22,8 +22,7 @@ ":value" => "issue.dueDate" } .dropdown %button.dropdown-menu-toggle.js-due-date-select.js-issue-boards-due-date{ type: 'button', - data: { toggle: 'dropdown', field_name: "issue[due_date]", ability_name: "issue" }, - ":data-issue-update" => "'#{build_issue_link_base}/' + issue.iid + '.json'" } + data: { toggle: 'dropdown', field_name: "issue[due_date]", ability_name: "issue" } } %span.dropdown-toggle-text Due date = icon('chevron-down') .dropdown-menu.dropdown-menu-due-date diff --git a/app/views/shared/boards/components/sidebar/_labels.html.haml b/app/views/shared/boards/components/sidebar/_labels.html.haml index dfc0f9be321..87e6b52f46e 100644 --- a/app/views/shared/boards/components/sidebar/_labels.html.haml +++ b/app/views/shared/boards/components/sidebar/_labels.html.haml @@ -26,8 +26,7 @@ project_id: @project&.try(:id), labels: labels_filter_path(false), namespace_path: @namespace_path, - project_path: @project.try(:path) }, - ":data-issue-update" => "'#{build_issue_link_base}/' + issue.iid + '.json'" } + project_path: @project.try(:path) } } %span.dropdown-toggle-text Label = icon('chevron-down') diff --git a/app/views/shared/boards/components/sidebar/_milestone.html.haml b/app/views/shared/boards/components/sidebar/_milestone.html.haml index d09c7c218e0..f51c4a97f2b 100644 --- a/app/views/shared/boards/components/sidebar/_milestone.html.haml +++ b/app/views/shared/boards/components/sidebar/_milestone.html.haml @@ -18,8 +18,7 @@ .dropdown %button.dropdown-menu-toggle.js-milestone-select.js-issue-board-sidebar{ type: "button", data: { toggle: "dropdown", show_no: "true", field_name: "issue[milestone_id]", milestones: milestones_filter_path(format: :json), ability_name: "issue", use_id: "true", default_no: "true" }, ":data-selected" => "milestoneTitle", - ":data-issuable-id" => "issue.iid", - ":data-issue-update" => "'#{build_issue_link_base}/' + issue.iid + '.json'" } + ":data-issuable-id" => "issue.iid" } Milestone = icon("chevron-down") .dropdown-menu.dropdown-select.dropdown-menu-selectable diff --git a/app/views/shared/notes/_form.html.haml b/app/views/shared/notes/_form.html.haml index 71c0d740bc8..725bf916592 100644 --- a/app/views/shared/notes/_form.html.haml +++ b/app/views/shared/notes/_form.html.haml @@ -24,21 +24,20 @@ -# DiffNote = f.hidden_field :position - .discussion-form-container - = render layout: 'projects/md_preview', locals: { url: preview_url, referenced_users: true } do - = render 'projects/zen', f: f, - attr: :note, - classes: 'note-textarea js-note-text', - placeholder: "Write a comment or drag your files here...", - supports_quick_actions: supports_quick_actions, - supports_autocomplete: supports_autocomplete - = render 'shared/notes/hints', supports_quick_actions: supports_quick_actions - .error-alert - - .note-form-actions.clearfix - = render partial: 'shared/notes/comment_button' - - = yield(:note_actions) - - %a.btn.btn-cancel.js-note-discard{ role: "button", data: {cancel_text: "Cancel" } } - Discard draft + = render layout: 'projects/md_preview', locals: { url: preview_url, referenced_users: true } do + = render 'projects/zen', f: f, + attr: :note, + classes: 'note-textarea js-note-text', + placeholder: "Write a comment or drag your files here...", + supports_quick_actions: supports_quick_actions, + supports_autocomplete: supports_autocomplete + = render 'shared/notes/hints', supports_quick_actions: supports_quick_actions + .error-alert + + .note-form-actions.clearfix + = render partial: 'shared/notes/comment_button' + + = yield(:note_actions) + + %a.btn.btn-cancel.js-note-discard{ role: "button", data: {cancel_text: "Cancel" } } + Discard draft diff --git a/app/views/shared/web_hooks/_form.html.haml b/app/views/shared/web_hooks/_form.html.haml index ad4d39b4aa1..d36ca032558 100644 --- a/app/views/shared/web_hooks/_form.html.haml +++ b/app/views/shared/web_hooks/_form.html.haml @@ -33,6 +33,13 @@ %p.light This URL will be triggered when someone adds a comment %li + = form.check_box :confidential_note_events, class: 'pull-left' + .prepend-left-20 + = form.label :confidential_note_events, class: 'list-label' do + %strong Confidential Comments + %p.light + This URL will be triggered when someone adds a comment on a confidential issue + %li = form.check_box :issues_events, class: 'pull-left' .prepend-left-20 = form.label :issues_events, class: 'list-label' do diff --git a/app/workers/new_note_worker.rb b/app/workers/new_note_worker.rb index 67c54fbf10e..b925741934a 100644 --- a/app/workers/new_note_worker.rb +++ b/app/workers/new_note_worker.rb @@ -5,7 +5,7 @@ class NewNoteWorker # old `NewNoteWorker` jobs (can remove later) def perform(note_id, _params = {}) if note = Note.find_by(id: note_id) - NotificationService.new.new_note(note) + NotificationService.new.new_note(note) if note.can_create_notification? Notes::PostProcessService.new(note).execute else Rails.logger.error("NewNoteWorker: couldn't find note with ID=#{note_id}, skipping job") diff --git a/changelogs/unreleased/41758-after-changing-username-url-still-redirects-to-old-route.yml b/changelogs/unreleased/41758-after-changing-username-url-still-redirects-to-old-route.yml new file mode 100644 index 00000000000..36e79ea1ed4 --- /dev/null +++ b/changelogs/unreleased/41758-after-changing-username-url-still-redirects-to-old-route.yml @@ -0,0 +1,5 @@ +--- +title: Added confirmation modal for changing username +merge_request: 17405 +author: +type: added diff --git a/changelogs/unreleased/42028-xss-diffs.yml b/changelogs/unreleased/42028-xss-diffs.yml new file mode 100644 index 00000000000..a05f9d3c78d --- /dev/null +++ b/changelogs/unreleased/42028-xss-diffs.yml @@ -0,0 +1,5 @@ +--- +title: Fix XSS on diff view stored on filenames +merge_request: +author: +type: security diff --git a/changelogs/unreleased/43098-controller-projects-issuescontroller-show-executes-more-than-100-sql-queries.yml b/changelogs/unreleased/43098-controller-projects-issuescontroller-show-executes-more-than-100-sql-queries.yml new file mode 100644 index 00000000000..686258460e0 --- /dev/null +++ b/changelogs/unreleased/43098-controller-projects-issuescontroller-show-executes-more-than-100-sql-queries.yml @@ -0,0 +1,5 @@ +--- +title: Improve performance of loading issues with lots of references to merge requests +merge_request: 17986 +author: +type: performance diff --git a/changelogs/unreleased/43215-update-design-for-verifying-domains.yml b/changelogs/unreleased/43215-update-design-for-verifying-domains.yml new file mode 100644 index 00000000000..8326540f7b2 --- /dev/null +++ b/changelogs/unreleased/43215-update-design-for-verifying-domains.yml @@ -0,0 +1,5 @@ +--- +title: Polish design for verifying domains +merge_request: 17767 +author: +type: changed diff --git a/changelogs/unreleased/43976-fix-access-token-clipboard-button-style.yml b/changelogs/unreleased/43976-fix-access-token-clipboard-button-style.yml new file mode 100644 index 00000000000..b341d5dfa7f --- /dev/null +++ b/changelogs/unreleased/43976-fix-access-token-clipboard-button-style.yml @@ -0,0 +1,5 @@ +--- +title: Fix personal access token clipboard button style +merge_request: 17978 +author: Fabian Schneider +type: fixed diff --git a/changelogs/unreleased/44269-show-failure-reason-on-upgrade-tooltip-of-jobs.yml b/changelogs/unreleased/44269-show-failure-reason-on-upgrade-tooltip-of-jobs.yml new file mode 100644 index 00000000000..b3ae8ca7340 --- /dev/null +++ b/changelogs/unreleased/44269-show-failure-reason-on-upgrade-tooltip-of-jobs.yml @@ -0,0 +1,5 @@ +--- +title: Display error message on job's tooltip if this one fails +merge_request: 17782 +author: +type: added diff --git a/changelogs/unreleased/44389-always-allow-http-for-ci-git-operations.yml b/changelogs/unreleased/44389-always-allow-http-for-ci-git-operations.yml new file mode 100644 index 00000000000..2e5a0302ee6 --- /dev/null +++ b/changelogs/unreleased/44389-always-allow-http-for-ci-git-operations.yml @@ -0,0 +1,5 @@ +--- +title: Allow HTTP(s) when git request is made by GitLab CI +merge_request: 18021 +author: +type: changed diff --git a/changelogs/unreleased/44665-fix-db-trace-stream-by-raw-access.yml b/changelogs/unreleased/44665-fix-db-trace-stream-by-raw-access.yml new file mode 100644 index 00000000000..4166d4fe320 --- /dev/null +++ b/changelogs/unreleased/44665-fix-db-trace-stream-by-raw-access.yml @@ -0,0 +1,5 @@ +--- +title: Fix `JobsController#raw` endpoint can not read traces in database +merge_request: 18101 +author: +type: fixed diff --git a/changelogs/unreleased/44870-remove-extra-space-around-comment-form-on-merge-requests.yml b/changelogs/unreleased/44870-remove-extra-space-around-comment-form-on-merge-requests.yml new file mode 100644 index 00000000000..53e4ebdb996 --- /dev/null +++ b/changelogs/unreleased/44870-remove-extra-space-around-comment-form-on-merge-requests.yml @@ -0,0 +1,5 @@ +--- +title: Refactor and tweak margin for note forms on Issuable +merge_request: 18120 +author: Takuya Noguchi +type: fixed diff --git a/changelogs/unreleased/45070-prometheus-integration-via-kubernetes-is-broken.yml b/changelogs/unreleased/45070-prometheus-integration-via-kubernetes-is-broken.yml new file mode 100644 index 00000000000..046785deb3f --- /dev/null +++ b/changelogs/unreleased/45070-prometheus-integration-via-kubernetes-is-broken.yml @@ -0,0 +1,5 @@ +--- +title: Work around Prometheus Helm chart name changes to fix integration +merge_request: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18206/ +author: joshlambert +type: fixed diff --git a/changelogs/unreleased/bvl-export-import-lfs.yml b/changelogs/unreleased/bvl-export-import-lfs.yml new file mode 100644 index 00000000000..dd1f499c3a3 --- /dev/null +++ b/changelogs/unreleased/bvl-export-import-lfs.yml @@ -0,0 +1,5 @@ +--- +title: Support LFS objects when importing/exporting GitLab project archives +merge_request: 18115 +author: +type: added diff --git a/changelogs/unreleased/bvl-override-import-params.yml b/changelogs/unreleased/bvl-override-import-params.yml new file mode 100644 index 00000000000..18cfef873df --- /dev/null +++ b/changelogs/unreleased/bvl-override-import-params.yml @@ -0,0 +1,5 @@ +--- +title: Allow overriding params on project import through API +merge_request: 18086 +author: +type: added diff --git a/changelogs/unreleased/direct-upload-of-uploads.yml b/changelogs/unreleased/direct-upload-of-uploads.yml new file mode 100644 index 00000000000..7900fa5f58d --- /dev/null +++ b/changelogs/unreleased/direct-upload-of-uploads.yml @@ -0,0 +1,5 @@ +--- +title: Allow to store uploads by default on Object Storage +merge_request: +author: +type: added diff --git a/changelogs/unreleased/dm-internal-user-namespace.yml b/changelogs/unreleased/dm-internal-user-namespace.yml new file mode 100644 index 00000000000..8517c116795 --- /dev/null +++ b/changelogs/unreleased/dm-internal-user-namespace.yml @@ -0,0 +1,5 @@ +--- +title: Ensure internal users (ghost, support bot) get assigned a namespace +merge_request: +author: +type: fixed diff --git a/changelogs/unreleased/improve-jobs-queuing-time-metric.yml b/changelogs/unreleased/improve-jobs-queuing-time-metric.yml new file mode 100644 index 00000000000..cee8b8523fd --- /dev/null +++ b/changelogs/unreleased/improve-jobs-queuing-time-metric.yml @@ -0,0 +1,5 @@ +--- +title: Partition job_queue_duration_seconds with jobs_running_for_project +merge_request: 17730 +author: +type: changed diff --git a/changelogs/unreleased/issue_42443.yml b/changelogs/unreleased/issue_42443.yml new file mode 100644 index 00000000000..954fbd98a4b --- /dev/null +++ b/changelogs/unreleased/issue_42443.yml @@ -0,0 +1,5 @@ +--- +title: Include subgroup issues when searching for group issues using the API +merge_request: +author: +type: added diff --git a/changelogs/unreleased/issue_44270.yml b/changelogs/unreleased/issue_44270.yml new file mode 100644 index 00000000000..6234162be30 --- /dev/null +++ b/changelogs/unreleased/issue_44270.yml @@ -0,0 +1,5 @@ +--- +title: Show issues of subgroups in group-level issue board +merge_request: +author: +type: changed diff --git a/changelogs/unreleased/issue_44551.yml b/changelogs/unreleased/issue_44551.yml new file mode 100644 index 00000000000..d5265667b00 --- /dev/null +++ b/changelogs/unreleased/issue_44551.yml @@ -0,0 +1,5 @@ +--- +title: Fix 404 in group boards when moving issue between lists +merge_request: +author: +type: fixed diff --git a/changelogs/unreleased/jej-mattermost-notification-confidentiality.yml b/changelogs/unreleased/jej-mattermost-notification-confidentiality.yml new file mode 100644 index 00000000000..d5219b5d019 --- /dev/null +++ b/changelogs/unreleased/jej-mattermost-notification-confidentiality.yml @@ -0,0 +1,5 @@ +--- +title: Adds confidential notes channel for Slack/Mattermost +merge_request: +author: +type: security diff --git a/changelogs/unreleased/osw-44295-adjust-authorization-for-discussions-show.yml b/changelogs/unreleased/osw-44295-adjust-authorization-for-discussions-show.yml new file mode 100644 index 00000000000..978c5468bb1 --- /dev/null +++ b/changelogs/unreleased/osw-44295-adjust-authorization-for-discussions-show.yml @@ -0,0 +1,5 @@ +--- +title: Adjust 404's for LegacyDiffNote discussion rendering +merge_request: 18201 +author: +type: fixed diff --git a/changelogs/unreleased/sh-appearance-cache-key-version.yml b/changelogs/unreleased/sh-appearance-cache-key-version.yml new file mode 100644 index 00000000000..c17a3dc36cd --- /dev/null +++ b/changelogs/unreleased/sh-appearance-cache-key-version.yml @@ -0,0 +1,5 @@ +--- +title: Use the GitLab version as part of the appearances cache key +merge_request: +author: +type: fixed diff --git a/changelogs/unreleased/ui-mr-counter-cache.yml b/changelogs/unreleased/ui-mr-counter-cache.yml new file mode 100644 index 00000000000..5e241bfe93f --- /dev/null +++ b/changelogs/unreleased/ui-mr-counter-cache.yml @@ -0,0 +1,5 @@ +--- +title: Deleting a MR you are assigned to should decrements counter +merge_request: 17951 +author: m b +type: fixed diff --git a/changelogs/unreleased/use-chronic-duration-attribute-for-project-build-timeout.yml b/changelogs/unreleased/use-chronic-duration-attribute-for-project-build-timeout.yml new file mode 100644 index 00000000000..675d347b64c --- /dev/null +++ b/changelogs/unreleased/use-chronic-duration-attribute-for-project-build-timeout.yml @@ -0,0 +1,5 @@ +--- +title: Use human readable value build_timeout in Project +merge_request: 17386 +author: +type: changed diff --git a/changelogs/unreleased/zj-opt-out-list-commits-by-oid.yml b/changelogs/unreleased/zj-opt-out-list-commits-by-oid.yml new file mode 100644 index 00000000000..3871293ee04 --- /dev/null +++ b/changelogs/unreleased/zj-opt-out-list-commits-by-oid.yml @@ -0,0 +1,5 @@ +--- +title: ListCommitsByOid is executed by Gitaly by default +merge_request: +author: +type: performance diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example index 126a9b8b803..8c39a1f2aa9 100644 --- a/config/gitlab.yml.example +++ b/config/gitlab.yml.example @@ -154,7 +154,7 @@ production: &base # provider: AWS # Only AWS supported at the moment # aws_access_key_id: AWS_ACCESS_KEY_ID # aws_secret_access_key: AWS_SECRET_ACCESS_KEY - # region: eu-central-1 + # region: us-east-1 ## Git LFS lfs: @@ -164,13 +164,14 @@ production: &base object_store: enabled: false remote_directory: lfs-objects # Bucket name + # direct_upload: false # Use Object Storage directly for uploads instead of background uploads if enabled (Default: false) # background_upload: false # Temporary option to limit automatic upload (Default: true) # proxy_download: false # Passthrough all downloads via GitLab instead of using Redirects to Object Storage connection: provider: AWS aws_access_key_id: AWS_ACCESS_KEY_ID aws_secret_access_key: AWS_SECRET_ACCESS_KEY - region: eu-central-1 + region: us-east-1 # Use the following options to configure an AWS compatible host # host: 'localhost' # default: s3.amazonaws.com # endpoint: 'http://127.0.0.1:9000' # default: nil @@ -183,17 +184,18 @@ production: &base # base_dir: uploads/-/system object_store: enabled: false - # remote_directory: uploads # Bucket name - # background_upload: false # Temporary option to limit automatic upload (Default: true) - # proxy_download: false # Passthrough all downloads via GitLab instead of using Redirects to Object Storage - # connection: - # provider: AWS - # aws_access_key_id: AWS_ACCESS_KEY_ID - # aws_secret_access_key: AWS_SECRET_ACCESS_KEY - # region: eu-central-1 - # host: 'localhost' # default: s3.amazonaws.com - # endpoint: 'http://127.0.0.1:9000' # default: nil - # path_style: true # Use 'host/bucket_name/object' instead of 'bucket_name.host/object' + # remote_directory: uploads # Bucket name + # direct_upload: false # Use Object Storage directly for uploads instead of background uploads if enabled (Default: false) + # background_upload: false # Temporary option to limit automatic upload (Default: true) + # proxy_download: false # Passthrough all downloads via GitLab instead of using Redirects to Object Storage + connection: + provider: AWS + aws_access_key_id: AWS_ACCESS_KEY_ID + aws_secret_access_key: AWS_SECRET_ACCESS_KEY + region: us-east-1 + # host: 'localhost' # default: s3.amazonaws.com + # endpoint: 'http://127.0.0.1:9000' # default: nil + # path_style: true # Use 'host/bucket_name/object' instead of 'bucket_name.host/object' ## GitLab Pages pages: diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb index 187e70868ea..acf7754abe6 100644 --- a/config/initializers/1_settings.rb +++ b/config/initializers/1_settings.rb @@ -308,6 +308,7 @@ Settings.artifacts['max_size'] ||= 100 # in megabytes Settings.artifacts['object_store'] ||= Settingslogic.new({}) Settings.artifacts['object_store']['enabled'] = false if Settings.artifacts['object_store']['enabled'].nil? Settings.artifacts['object_store']['remote_directory'] ||= nil +Settings.artifacts['object_store']['direct_upload'] = false if Settings.artifacts['object_store']['direct_upload'].nil? Settings.artifacts['object_store']['background_upload'] = true if Settings.artifacts['object_store']['background_upload'].nil? Settings.artifacts['object_store']['proxy_download'] = false if Settings.artifacts['object_store']['proxy_download'].nil? # Convert upload connection settings to use string keys, to make Fog happy @@ -365,6 +366,7 @@ Settings.uploads['base_dir'] = Settings.uploads['base_dir'] || 'uploads/-/system Settings.uploads['object_store'] ||= Settingslogic.new({}) Settings.uploads['object_store']['enabled'] = false if Settings.uploads['object_store']['enabled'].nil? Settings.uploads['object_store']['remote_directory'] ||= 'uploads' +Settings.uploads['object_store']['direct_upload'] = false if Settings.uploads['object_store']['direct_upload'].nil? Settings.uploads['object_store']['background_upload'] = true if Settings.uploads['object_store']['background_upload'].nil? Settings.uploads['object_store']['proxy_download'] = false if Settings.uploads['object_store']['proxy_download'].nil? # Convert upload connection settings to use string keys, to make Fog happy diff --git a/config/initializers/active_record_array_type_casting.rb b/config/initializers/active_record_array_type_casting.rb index d94d592add6..a149e048ee2 100644 --- a/config/initializers/active_record_array_type_casting.rb +++ b/config/initializers/active_record_array_type_casting.rb @@ -1,20 +1,23 @@ -module ActiveRecord - class PredicateBuilder - class ArrayHandler - module TypeCasting - def call(attribute, value) - # This is necessary because by default ActiveRecord does not respect - # custom type definitions (like our `ShaAttribute`) when providing an - # array in `where`, like in `where(commit_sha: [sha1, sha2, sha3])`. - model = attribute.relation&.engine - type = model.user_provided_columns[attribute.name] if model - value = value.map { |value| type.type_cast_for_database(value) } if type +# Remove this initializer when upgraded to Rails 5.0 +unless Gitlab.rails5? + module ActiveRecord + class PredicateBuilder + class ArrayHandler + module TypeCasting + def call(attribute, value) + # This is necessary because by default ActiveRecord does not respect + # custom type definitions (like our `ShaAttribute`) when providing an + # array in `where`, like in `where(commit_sha: [sha1, sha2, sha3])`. + model = attribute.relation&.engine + type = model.user_provided_columns[attribute.name] if model + value = value.map { |value| type.type_cast_for_database(value) } if type - super(attribute, value) + super(attribute, value) + end end - end - prepend TypeCasting + prepend TypeCasting + end end end end diff --git a/config/initializers/artifacts_direct_upload_support.rb b/config/initializers/artifacts_direct_upload_support.rb new file mode 100644 index 00000000000..d2bc35ea613 --- /dev/null +++ b/config/initializers/artifacts_direct_upload_support.rb @@ -0,0 +1,7 @@ +artifacts_object_store = Gitlab.config.artifacts.object_store + +if artifacts_object_store.enabled && + artifacts_object_store.direct_upload && + artifacts_object_store.connection&.provider.to_s != 'Google' + raise "Only 'Google' is supported as a object storage provider when 'direct_upload' of artifacts is used" +end diff --git a/config/routes/project.rb b/config/routes/project.rb index 48ba8ef06f9..0f2ea1c01d1 100644 --- a/config/routes/project.rb +++ b/config/routes/project.rb @@ -420,7 +420,7 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do end namespace :settings do get :members, to: redirect("%{namespace_id}/%{project_id}/project_members") - resource :ci_cd, only: [:show], controller: 'ci_cd' do + resource :ci_cd, only: [:show, :update], controller: 'ci_cd' do post :reset_cache end resource :integrations, only: [:show] diff --git a/db/migrate/20171222115326_add_confidential_note_events_to_web_hooks.rb b/db/migrate/20171222115326_add_confidential_note_events_to_web_hooks.rb new file mode 100644 index 00000000000..900a6386922 --- /dev/null +++ b/db/migrate/20171222115326_add_confidential_note_events_to_web_hooks.rb @@ -0,0 +1,15 @@ +class AddConfidentialNoteEventsToWebHooks < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_column :web_hooks, :confidential_note_events, :boolean + end + + def down + remove_column :web_hooks, :confidential_note_events + end +end diff --git a/db/migrate/20180103123548_add_confidential_note_events_to_services.rb b/db/migrate/20180103123548_add_confidential_note_events_to_services.rb new file mode 100644 index 00000000000..b54ad88df43 --- /dev/null +++ b/db/migrate/20180103123548_add_confidential_note_events_to_services.rb @@ -0,0 +1,16 @@ +class AddConfidentialNoteEventsToServices < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_column :services, :confidential_note_events, :boolean + change_column_default :services, :confidential_note_events, true + end + + def down + remove_column :services, :confidential_note_events + end +end diff --git a/db/post_migrate/20180104131052_schedule_set_confidential_note_events_on_webhooks.rb b/db/post_migrate/20180104131052_schedule_set_confidential_note_events_on_webhooks.rb new file mode 100644 index 00000000000..fa51ac83619 --- /dev/null +++ b/db/post_migrate/20180104131052_schedule_set_confidential_note_events_on_webhooks.rb @@ -0,0 +1,23 @@ +class ScheduleSetConfidentialNoteEventsOnWebhooks < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + BATCH_SIZE = 1_000 + INTERVAL = 5.minutes + + disable_ddl_transaction! + + def up + migration = Gitlab::BackgroundMigration::SetConfidentialNoteEventsOnWebhooks + migration_name = migration.to_s.demodulize + relation = migration::WebHook.hooks_to_update + + queue_background_migration_jobs_by_range_at_intervals(relation, + migration_name, + INTERVAL, + batch_size: BATCH_SIZE) + end + + def down + end +end diff --git a/db/post_migrate/20180122154930_schedule_set_confidential_note_events_on_services.rb b/db/post_migrate/20180122154930_schedule_set_confidential_note_events_on_services.rb new file mode 100644 index 00000000000..a3ff9f1719e --- /dev/null +++ b/db/post_migrate/20180122154930_schedule_set_confidential_note_events_on_services.rb @@ -0,0 +1,23 @@ +class ScheduleSetConfidentialNoteEventsOnServices < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + BATCH_SIZE = 1_000 + INTERVAL = 20.minutes + + disable_ddl_transaction! + + def up + migration = Gitlab::BackgroundMigration::SetConfidentialNoteEventsOnServices + migration_name = migration.to_s.demodulize + relation = migration::Service.services_to_update + + queue_background_migration_jobs_by_range_at_intervals(relation, + migration_name, + INTERVAL, + batch_size: BATCH_SIZE) + end + + def down + end +end diff --git a/db/post_migrate/20180212101928_schedule_build_stage_migration.rb b/db/post_migrate/20180212101928_schedule_build_stage_migration.rb index df15b2cd9d4..0f61fa81832 100644 --- a/db/post_migrate/20180212101928_schedule_build_stage_migration.rb +++ b/db/post_migrate/20180212101928_schedule_build_stage_migration.rb @@ -1,26 +1,11 @@ class ScheduleBuildStageMigration < ActiveRecord::Migration - include Gitlab::Database::MigrationHelpers - - DOWNTIME = false - MIGRATION = 'MigrateBuildStage'.freeze - BATCH_SIZE = 500 - - disable_ddl_transaction! - - class Build < ActiveRecord::Base - include EachBatch - self.table_name = 'ci_builds' - end + ## + # This migration has been rescheduled to run again, see + # `20180405101928_reschedule_builds_stages_migration.rb` + # def up - disable_statement_timeout - - Build.where('stage_id IS NULL').tap do |relation| - queue_background_migration_jobs_by_range_at_intervals(relation, - MIGRATION, - 5.minutes, - batch_size: BATCH_SIZE) - end + # noop end def down diff --git a/db/post_migrate/20180405101928_reschedule_builds_stages_migration.rb b/db/post_migrate/20180405101928_reschedule_builds_stages_migration.rb new file mode 100644 index 00000000000..e19387bce1e --- /dev/null +++ b/db/post_migrate/20180405101928_reschedule_builds_stages_migration.rb @@ -0,0 +1,33 @@ +class RescheduleBuildsStagesMigration < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + ## + # Rescheduled `20180212101928_schedule_build_stage_migration.rb` + # + + DOWNTIME = false + MIGRATION = 'MigrateBuildStage'.freeze + BATCH_SIZE = 500 + + disable_ddl_transaction! + + class Build < ActiveRecord::Base + include EachBatch + self.table_name = 'ci_builds' + end + + def up + disable_statement_timeout + + Build.where('stage_id IS NULL').tap do |relation| + queue_background_migration_jobs_by_range_at_intervals(relation, + MIGRATION, + 5.minutes, + batch_size: BATCH_SIZE) + end + end + + def down + # noop + end +end diff --git a/db/schema.rb b/db/schema.rb index 06fc1a9d7e9..2cd51b200b3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20180327101207) do +ActiveRecord::Schema.define(version: 20180405101928) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -1684,6 +1684,7 @@ ActiveRecord::Schema.define(version: 20180327101207) do t.boolean "confidential_issues_events", default: true, null: false t.boolean "commit_events", default: true, null: false t.boolean "job_events", default: false, null: false + t.boolean "confidential_note_events", default: true end add_index "services", ["project_id"], name: "index_services_on_project_id", using: :btree @@ -2022,6 +2023,7 @@ ActiveRecord::Schema.define(version: 20180327101207) do t.boolean "confidential_issues_events", default: false, null: false t.boolean "repository_update_events", default: false, null: false t.boolean "job_events", default: false, null: false + t.boolean "confidential_note_events" end add_index "web_hooks", ["project_id"], name: "index_web_hooks_on_project_id", using: :btree diff --git a/doc/administration/index.md b/doc/administration/index.md index 60a45426636..c8f27719ce9 100644 --- a/doc/administration/index.md +++ b/doc/administration/index.md @@ -85,7 +85,6 @@ created in snippets, wikis, and repos. - [Postfix for incoming email](reply_by_email_postfix_setup.md): Set up a basic Postfix mail server with IMAP authentication on Ubuntu for incoming emails. -server with IMAP authentication on Ubuntu, to be used with Reply by email. - [User Cohorts](../user/admin_area/user_cohorts.md): Display the monthly cohorts of new users and their activities over time. [reply by email]: reply_by_email.md diff --git a/doc/administration/job_artifacts.md b/doc/administration/job_artifacts.md index ac3a12930c3..896cb93e5ed 100644 --- a/doc/administration/job_artifacts.md +++ b/doc/administration/job_artifacts.md @@ -108,6 +108,7 @@ For source installations the following settings are nested under `artifacts:` an |---------|-------------|---------| | `enabled` | Enable/disable object storage | `false` | | `remote_directory` | The bucket name where Artfacts will be stored| | +| `direct_upload` | Set to true to enable direct upload of Artifacts without the need of local shared storage. Option may be removed once we decide to support only single storage for all files. Currently only `Google` provider is supported | `false` | | `background_upload` | Set to false to disable automatic upload. Option may be removed once upload is direct to S3 | `true` | | `proxy_download` | Set to true to enable proxying all files served. Option allows to reduce egress traffic as this allows clients to download directly from remote storage instead of proxying all data | `false` | | `connection` | Various connection options described below | | diff --git a/doc/administration/monitoring/prometheus/index.md b/doc/administration/monitoring/prometheus/index.md index f43c89dad87..3d24812c66a 100644 --- a/doc/administration/monitoring/prometheus/index.md +++ b/doc/administration/monitoring/prometheus/index.md @@ -62,7 +62,14 @@ To change the address/port that Prometheus listens on: ``` Replace `localhost:9090` with the address/port you want Prometheus to - listen on. + listen on. If you would like to allow access to Prometheus to hosts other + than `localhost`, leave out the host, or use `0.0.0.0` to allow public access: + + ```ruby + prometheus['listen_address'] = ':9090' + # or + prometheus['listen_address'] = '0.0.0.0:9090' + ``` 1. Save the file and [reconfigure GitLab][reconfigure] for the changes to take effect diff --git a/doc/administration/uploads.md b/doc/administration/uploads.md index a82735cc72c..2fa3284b6be 100644 --- a/doc/administration/uploads.md +++ b/doc/administration/uploads.md @@ -65,6 +65,7 @@ For source installations the following settings are nested under `uploads:` and |---------|-------------|---------| | `enabled` | Enable/disable object storage | `false` | | `remote_directory` | The bucket name where Uploads will be stored| | +| `direct_upload` | Set to true to enable direct upload of Uploads without the need of local shared storage. Option may be removed once we decide to support only single storage for all files. This is beta option as it uses inefficient way of uploading data (via Unicorn). The accelerated uploads gonna be implemented in future releases | `false` | | `background_upload` | Set to false to disable automatic upload. Option may be removed once upload is direct to S3 | `true` | | `proxy_download` | Set to true to enable proxying all files served. Option allows to reduce egress traffic as this allows clients to download directly from remote storage instead of proxying all data | `false` | | `connection` | Various connection options described below | | diff --git a/doc/api/commits.md b/doc/api/commits.md index db0a80d04d9..d1584cf64de 100644 --- a/doc/api/commits.md +++ b/doc/api/commits.md @@ -539,6 +539,8 @@ Example response: ## List Merge Requests associated with a commit +> [Introduced][ce-18004] in GitLab 10.7. + Get a list of Merge Requests related to the specified commit. ``` @@ -608,3 +610,4 @@ Example response: [ce-6096]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6096 "Multi-file commit" [ce-8047]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8047 [ce-15026]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15026 +[ce-18004]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18004 diff --git a/doc/api/project_import_export.md b/doc/api/project_import_export.md index 5467187788a..995f10571d0 100644 --- a/doc/api/project_import_export.md +++ b/doc/api/project_import_export.md @@ -111,6 +111,9 @@ POST /projects/import | `namespace` | integer/string | no | The ID or path of the namespace that the project will be imported to. Defaults to the current user's namespace | | `file` | string | yes | The file to be uploaded | | `path` | string | yes | Name and path for new project | +| `override_params` | Hash | no | Supports all fields defined in the [Project API](projects.md)] | + +The override params passed will take precendence over all values defined inside the export file. To upload a file from your filesystem, use the `--form` argument. This causes cURL to post data using the header `Content-Type: multipart/form-data`. diff --git a/doc/user/admin_area/settings/email.md b/doc/user/admin_area/settings/email.md new file mode 100644 index 00000000000..7c9e5bf882e --- /dev/null +++ b/doc/user/admin_area/settings/email.md @@ -0,0 +1,5 @@ +# Email + +## Custom logo + +The logo in the header of some emails can be customized, see the [logo customization section](../../../customization/branded_page_and_email_header.md). diff --git a/doc/user/admin_area/settings/visibility_and_access_controls.md b/doc/user/admin_area/settings/visibility_and_access_controls.md index 633f16a617c..3d38588a9ed 100644 --- a/doc/user/admin_area/settings/visibility_and_access_controls.md +++ b/doc/user/admin_area/settings/visibility_and_access_controls.md @@ -32,9 +32,15 @@ When you choose to allow only one of the protocols, a couple of things will happ On top of these UI restrictions, GitLab will deny all Git actions on the protocol not selected. +CAUTION: **Important:** +Starting with [GitLab 10.7][ce-18021], HTTP(s) protocol will be allowed for +git clone/fetch requests done by GitLab Runner from CI/CD Jobs, even if +_Only SSH_ was selected. + > **Note:** Please keep in mind that disabling an access protocol does not actually - block access to the server itself. The ports used for the protocol, be it SSH or - HTTP, will still be accessible. What GitLab does is restrict access on the - application level. +block access to the server itself. The ports used for the protocol, be it SSH or +HTTP, will still be accessible. What GitLab does is restrict access on the +application level. [ce-4696]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4696 +[ce-18021]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18021 diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md index b4a842f33d6..7eab825fa32 100644 --- a/doc/user/project/issue_board.md +++ b/doc/user/project/issue_board.md @@ -240,8 +240,7 @@ Issue Board, that is create/delete lists and drag issues around. >Introduced in GitLab 10.6 Group issue board is analogous to project-level issue board and it is accessible at the group -navigation level. A group-level issue board allows you to view all issues from all projects in that group -(currently, it does not see issues from projects in subgroups). Similarly, you can only filter by group labels for these +navigation level. A group-level issue board allows you to view all issues from all projects in that group or descendant subgroups. Similarly, you can only filter by group labels for these boards. When updating milestones and labels for an issue through the sidebar update mechanism, again only group-level objects are available. diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md index dedf102fc37..eb0ac221e30 100644 --- a/doc/user/project/settings/import_export.md +++ b/doc/user/project/settings/import_export.md @@ -57,11 +57,11 @@ The following items will be exported: - Project configuration including web hooks and services - Issues with comments, merge requests with diffs and comments, labels, milestones, snippets, and other project entities +- LFS objects The following items will NOT be exported: - Build traces and artifacts -- LFS objects - Container registry images - CI variables - Any encrypted tokens diff --git a/lib/api/api.rb b/lib/api/api.rb index 62ffebeacb0..073471b4c4d 100644 --- a/lib/api/api.rb +++ b/lib/api/api.rb @@ -78,6 +78,14 @@ module API rack_response({ 'message' => '404 Not found' }.to_json, 404) end + rescue_from UploadedFile::InvalidPathError do |e| + rack_response({ 'message' => e.message }.to_json, 400) + end + + rescue_from ObjectStorage::RemoteStoreError do |e| + rack_response({ 'message' => e.message }.to_json, 500) + end + # Retain 405 error rather than a 500 error for Grape 0.15.0+. # https://github.com/ruby-grape/grape/blob/a3a28f5b5dfbb2797442e006dbffd750b27f2a76/UPGRADING.md#changes-to-method-not-allowed-routes rescue_from Grape::Exceptions::MethodNotAllowed do |e| diff --git a/lib/api/entities.rb b/lib/api/entities.rb index e5ecd37e473..e35b1a0ff63 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -72,7 +72,7 @@ module API class ProjectHook < Hook expose :project_id, :issues_events, :confidential_issues_events - expose :note_events, :pipeline_events, :wiki_page_events + expose :note_events, :confidential_note_events, :pipeline_events, :wiki_page_events expose :job_events end @@ -794,7 +794,7 @@ module API expose :id, :title, :created_at, :updated_at, :active expose :push_events, :issues_events, :confidential_issues_events expose :merge_requests_events, :tag_push_events, :note_events - expose :pipeline_events, :wiki_page_events + expose :confidential_note_events, :pipeline_events, :wiki_page_events expose :job_events # Expose serialized properties expose :properties do |service, options| diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb index 61c138a7dec..a582aa0ec2c 100644 --- a/lib/api/helpers.rb +++ b/lib/api/helpers.rb @@ -389,28 +389,6 @@ module API # file helpers - def uploaded_file(field, uploads_path) - if params[field] - bad_request!("#{field} is not a file") unless params[field][:filename] - return params[field] - end - - return nil unless params["#{field}.path"] && params["#{field}.name"] - - # sanitize file paths - # this requires all paths to exist - required_attributes! %W(#{field}.path) - uploads_path = File.realpath(uploads_path) - file_path = File.realpath(params["#{field}.path"]) - bad_request!('Bad file path') unless file_path.start_with?(uploads_path) - - UploadedFile.new( - file_path, - params["#{field}.name"], - params["#{field}.type"] || 'application/octet-stream' - ) - end - def present_disk_file!(path, filename, content_type = 'application/octet-stream') filename ||= File.basename(path) header['Content-Disposition'] = "attachment; filename=#{filename}" diff --git a/lib/api/helpers/projects_helpers.rb b/lib/api/helpers/projects_helpers.rb new file mode 100644 index 00000000000..381d5e8968c --- /dev/null +++ b/lib/api/helpers/projects_helpers.rb @@ -0,0 +1,38 @@ +module API + module Helpers + module ProjectsHelpers + extend ActiveSupport::Concern + + included do + helpers do + params :optional_project_params_ce do + optional :description, type: String, desc: 'The description of the project' + optional :ci_config_path, type: String, desc: 'The path to CI config file. Defaults to `.gitlab-ci.yml`' + optional :issues_enabled, type: Boolean, desc: 'Flag indication if the issue tracker is enabled' + optional :merge_requests_enabled, type: Boolean, desc: 'Flag indication if merge requests are enabled' + optional :wiki_enabled, type: Boolean, desc: 'Flag indication if the wiki is enabled' + optional :jobs_enabled, type: Boolean, desc: 'Flag indication if jobs are enabled' + optional :snippets_enabled, type: Boolean, desc: 'Flag indication if snippets are enabled' + optional :shared_runners_enabled, type: Boolean, desc: 'Flag indication if shared runners are enabled for that project' + optional :resolve_outdated_diff_discussions, type: Boolean, desc: 'Automatically resolve merge request diffs discussions on lines changed with a push' + optional :container_registry_enabled, type: Boolean, desc: 'Flag indication if the container registry is enabled for that project' + optional :lfs_enabled, type: Boolean, desc: 'Flag indication if Git LFS is enabled for that project' + optional :visibility, type: String, values: Gitlab::VisibilityLevel.string_values, desc: 'The visibility of the project.' + optional :public_builds, type: Boolean, desc: 'Perform public builds' + optional :request_access_enabled, type: Boolean, desc: 'Allow users to request member access' + optional :only_allow_merge_if_pipeline_succeeds, type: Boolean, desc: 'Only allow to merge if builds succeed' + optional :only_allow_merge_if_all_discussions_are_resolved, type: Boolean, desc: 'Only allow to merge if all discussions are resolved' + optional :tag_list, type: Array[String], desc: 'The list of tags for a project' + optional :avatar, type: File, desc: 'Avatar image for project' + optional :printing_merge_request_link_enabled, type: Boolean, desc: 'Show link to create/view merge request when pushing from the command line' + optional :merge_method, type: String, values: %w(ff rebase_merge merge), desc: 'The merge method used when merging merge requests' + end + + params :optional_project_params do + use :optional_project_params_ce + end + end + end + end + end +end diff --git a/lib/api/issues.rb b/lib/api/issues.rb index f74b3b26802..88e7f46c92c 100644 --- a/lib/api/issues.rb +++ b/lib/api/issues.rb @@ -97,7 +97,7 @@ module API get ":id/issues" do group = find_group!(params[:id]) - issues = paginate(find_issues(group_id: group.id)) + issues = paginate(find_issues(group_id: group.id, include_subgroups: true)) options = { with: Entities::IssueBasic, diff --git a/lib/api/project_hooks.rb b/lib/api/project_hooks.rb index f82241058e5..68921ae439b 100644 --- a/lib/api/project_hooks.rb +++ b/lib/api/project_hooks.rb @@ -14,6 +14,7 @@ module API optional :merge_requests_events, type: Boolean, desc: "Trigger hook on merge request events" optional :tag_push_events, type: Boolean, desc: "Trigger hook on tag push events" optional :note_events, type: Boolean, desc: "Trigger hook on note(comment) events" + optional :confidential_note_events, type: Boolean, desc: "Trigger hook on confidential note(comment) events" optional :job_events, type: Boolean, desc: "Trigger hook on job events" optional :pipeline_events, type: Boolean, desc: "Trigger hook on pipeline events" optional :wiki_page_events, type: Boolean, desc: "Trigger hook on wiki events" diff --git a/lib/api/project_import.rb b/lib/api/project_import.rb index a509c1f32c1..303b58a5942 100644 --- a/lib/api/project_import.rb +++ b/lib/api/project_import.rb @@ -1,6 +1,7 @@ module API class ProjectImport < Grape::API include PaginationParams + include Helpers::ProjectsHelpers helpers do def import_params @@ -25,6 +26,11 @@ module API requires :path, type: String, desc: 'The new project path and name' requires :file, type: File, desc: 'The project export file to be imported' optional :namespace, type: String, desc: "The ID or name of the namespace that the project will be imported into. Defaults to the current user's namespace." + optional :override_params, + type: Hash, + desc: 'New project params to override values in the export' do + use :optional_project_params + end end desc 'Create a new project import' do detail 'This feature was introduced in GitLab 10.6.' @@ -47,7 +53,11 @@ module API file: import_params[:file]['tempfile'] } - project = ::Projects::GitlabProjectsImportService.new(current_user, project_params).execute + override_params = import_params.delete(:override_params) + + project = ::Projects::GitlabProjectsImportService.new( + current_user, project_params, override_params + ).execute render_api_error!(project.errors.full_messages&.first, 400) unless project.saved? diff --git a/lib/api/projects.rb b/lib/api/projects.rb index 3d5b3c5a535..d0a4a23e074 100644 --- a/lib/api/projects.rb +++ b/lib/api/projects.rb @@ -4,37 +4,11 @@ module API class Projects < Grape::API include PaginationParams include Helpers::CustomAttributes + include Helpers::ProjectsHelpers before { authenticate_non_get! } helpers do - params :optional_params_ce do - optional :description, type: String, desc: 'The description of the project' - optional :ci_config_path, type: String, desc: 'The path to CI config file. Defaults to `.gitlab-ci.yml`' - optional :issues_enabled, type: Boolean, desc: 'Flag indication if the issue tracker is enabled' - optional :merge_requests_enabled, type: Boolean, desc: 'Flag indication if merge requests are enabled' - optional :wiki_enabled, type: Boolean, desc: 'Flag indication if the wiki is enabled' - optional :jobs_enabled, type: Boolean, desc: 'Flag indication if jobs are enabled' - optional :snippets_enabled, type: Boolean, desc: 'Flag indication if snippets are enabled' - optional :shared_runners_enabled, type: Boolean, desc: 'Flag indication if shared runners are enabled for that project' - optional :resolve_outdated_diff_discussions, type: Boolean, desc: 'Automatically resolve merge request diffs discussions on lines changed with a push' - optional :container_registry_enabled, type: Boolean, desc: 'Flag indication if the container registry is enabled for that project' - optional :lfs_enabled, type: Boolean, desc: 'Flag indication if Git LFS is enabled for that project' - optional :visibility, type: String, values: Gitlab::VisibilityLevel.string_values, desc: 'The visibility of the project.' - optional :public_builds, type: Boolean, desc: 'Perform public builds' - optional :request_access_enabled, type: Boolean, desc: 'Allow users to request member access' - optional :only_allow_merge_if_pipeline_succeeds, type: Boolean, desc: 'Only allow to merge if builds succeed' - optional :only_allow_merge_if_all_discussions_are_resolved, type: Boolean, desc: 'Only allow to merge if all discussions are resolved' - optional :tag_list, type: Array[String], desc: 'The list of tags for a project' - optional :avatar, type: File, desc: 'Avatar image for project' - optional :printing_merge_request_link_enabled, type: Boolean, desc: 'Show link to create/view merge request when pushing from the command line' - optional :merge_method, type: String, values: %w(ff rebase_merge merge), desc: 'The merge method used when merging merge requests' - end - - params :optional_params do - use :optional_params_ce - end - params :statistics_params do optional :statistics, type: Boolean, default: false, desc: 'Include project statistics' end @@ -144,7 +118,7 @@ module API optional :name, type: String, desc: 'The name of the project' optional :path, type: String, desc: 'The path of the repository' at_least_one_of :name, :path - use :optional_params + use :optional_project_params use :create_params end post do @@ -172,7 +146,7 @@ module API requires :user_id, type: Integer, desc: 'The ID of a user' optional :path, type: String, desc: 'The path of the repository' optional :default_branch, type: String, desc: 'The default branch of the project' - use :optional_params + use :optional_project_params use :create_params end post "user/:user_id" do @@ -293,7 +267,7 @@ module API optional :default_branch, type: String, desc: 'The default branch of the project' optional :path, type: String, desc: 'The path of the repository' - use :optional_params + use :optional_project_params at_least_one_of(*at_least_one_of_ce) end put ':id' do diff --git a/lib/api/runner.rb b/lib/api/runner.rb index 834253d8e94..60aeb69e10a 100644 --- a/lib/api/runner.rb +++ b/lib/api/runner.rb @@ -186,7 +186,7 @@ module API status 200 content_type Gitlab::Workhorse::INTERNAL_API_CONTENT_TYPE - Gitlab::Workhorse.artifact_upload_ok + JobArtifactUploader.workhorse_authorize end desc 'Upload artifacts for job' do @@ -201,14 +201,15 @@ module API requires :id, type: Integer, desc: %q(Job's ID) optional :token, type: String, desc: %q(Job's authentication token) optional :expire_in, type: String, desc: %q(Specify when artifacts should expire) - optional :file, type: File, desc: %q(Artifact's file) optional 'file.path', type: String, desc: %q(path to locally stored body (generated by Workhorse)) optional 'file.name', type: String, desc: %q(real filename as send in Content-Disposition (generated by Workhorse)) optional 'file.type', type: String, desc: %q(real content type as send in Content-Type (generated by Workhorse)) - optional 'file.sha256', type: String, desc: %q(sha256 checksum of the file) + optional 'file.size', type: Integer, desc: %q(real size of file (generated by Workhorse)) + optional 'file.sha256', type: String, desc: %q(sha256 checksum of the file (generated by Workhorse)) optional 'metadata.path', type: String, desc: %q(path to locally stored body (generated by Workhorse)) optional 'metadata.name', type: String, desc: %q(filename (generated by Workhorse)) - optional 'metadata.sha256', type: String, desc: %q(sha256 checksum of the file) + optional 'metadata.size', type: Integer, desc: %q(real size of metadata (generated by Workhorse)) + optional 'metadata.sha256', type: String, desc: %q(sha256 checksum of metadata (generated by Workhorse)) end post '/:id/artifacts' do not_allowed! unless Gitlab.config.artifacts.enabled @@ -217,21 +218,34 @@ module API job = authenticate_job! forbidden!('Job is not running!') unless job.running? - workhorse_upload_path = JobArtifactUploader.workhorse_upload_path - artifacts = uploaded_file(:file, workhorse_upload_path) - metadata = uploaded_file(:metadata, workhorse_upload_path) + artifacts = UploadedFile.from_params(params, :file, JobArtifactUploader.workhorse_local_upload_path) + metadata = UploadedFile.from_params(params, :metadata, JobArtifactUploader.workhorse_local_upload_path) bad_request!('Missing artifacts file!') unless artifacts file_to_large! unless artifacts.size < max_artifacts_size + bad_request!("Already uploaded") if job.job_artifacts_archive + expire_in = params['expire_in'] || Gitlab::CurrentSettings.current_application_settings.default_artifacts_expire_in - job.build_job_artifacts_archive(project: job.project, file_type: :archive, file: artifacts, file_sha256: params['file.sha256'], expire_in: expire_in) - job.build_job_artifacts_metadata(project: job.project, file_type: :metadata, file: metadata, file_sha256: params['metadata.sha256'], expire_in: expire_in) if metadata - job.artifacts_expire_in = expire_in + job.build_job_artifacts_archive( + project: job.project, + file: artifacts, + file_type: :archive, + file_sha256: artifacts.sha256, + expire_in: expire_in) + + if metadata + job.build_job_artifacts_metadata( + project: job.project, + file: metadata, + file_type: :metadata, + file_sha256: metadata.sha256, + expire_in: expire_in) + end - if job.save + if job.update(artifacts_expire_in: expire_in) present job, with: Entities::JobRequest::Response else render_validation_error!(job) diff --git a/lib/banzai/cross_project_reference.rb b/lib/banzai/cross_project_reference.rb index d8fb7705b2a..3f1e95d4cc0 100644 --- a/lib/banzai/cross_project_reference.rb +++ b/lib/banzai/cross_project_reference.rb @@ -4,7 +4,7 @@ module Banzai module CrossProjectReference # Given a cross-project reference string, get the Project record # - # Defaults to value of `context[:project]` if: + # Defaults to value of `context[:project]`, or `context[:group]` if: # * No reference is given OR # * Reference given doesn't exist # @@ -12,7 +12,7 @@ module Banzai # # Returns a Project, or nil if the reference can't be found def parent_from_ref(ref) - return context[:project] unless ref + return context[:project] || context[:group] unless ref Project.find_by_full_path(ref) end diff --git a/lib/banzai/filter/abstract_reference_filter.rb b/lib/banzai/filter/abstract_reference_filter.rb index c3a03f13306..6efaed7e624 100644 --- a/lib/banzai/filter/abstract_reference_filter.rb +++ b/lib/banzai/filter/abstract_reference_filter.rb @@ -196,13 +196,15 @@ module Banzai end end - def data_attributes_for(text, project, object, link_content: false, link_reference: false) + def data_attributes_for(text, parent, object, link_content: false, link_reference: false) + object_parent_type = parent.is_a?(Group) ? :group : :project + data_attribute( - original: text, - link: link_content, - link_reference: link_reference, - project: project.id, - object_sym => object.id + original: text, + link: link_content, + link_reference: link_reference, + object_parent_type => parent.id, + object_sym => object.id ) end @@ -337,6 +339,12 @@ module Banzai def parent parent_type == :project ? project : group end + + def full_group_path(group_ref) + return current_parent_path unless group_ref + + group_ref + end end end end diff --git a/lib/banzai/filter/label_reference_filter.rb b/lib/banzai/filter/label_reference_filter.rb index faa5b344e6f..1cbada818fb 100644 --- a/lib/banzai/filter/label_reference_filter.rb +++ b/lib/banzai/filter/label_reference_filter.rb @@ -32,16 +32,25 @@ module Banzai end end - def find_label(project_ref, label_id, label_name) - project = parent_from_ref(project_ref) - return unless project + def find_label(parent_ref, label_id, label_name) + parent = parent_from_ref(parent_ref) + return unless parent label_params = label_params(label_id, label_name) - find_labels(project).find_by(label_params) + find_labels(parent).find_by(label_params) end - def find_labels(project) - LabelsFinder.new(nil, project_id: project.id, include_ancestor_groups: true).execute(skip_authorization: true) + def find_labels(parent) + params = if parent.is_a?(Group) + { group_id: parent.id, + include_ancestor_groups: true, + only_group_labels: true } + else + { project_id: parent.id, + include_ancestor_groups: true } + end + + LabelsFinder.new(nil, params).execute(skip_authorization: true) end # Parameters to pass to `Label.find_by` based on the given arguments @@ -59,20 +68,34 @@ module Banzai end end - def url_for_object(label, project) + def url_for_object(label, parent) h = Gitlab::Routing.url_helpers - h.project_issues_url(project, label_name: label.name, only_path: context[:only_path]) + + if parent.is_a?(Project) + h.project_issues_url(parent, label_name: label.name, only_path: context[:only_path]) + elsif context[:label_url_method] + h.public_send(context[:label_url_method], parent, label_name: label.name, only_path: context[:only_path]) # rubocop:disable GitlabSecurity/PublicSend + end end def object_link_text(object, matches) - project_path = full_project_path(matches[:namespace], matches[:project]) - project_from_ref = from_ref_cached(project_path) - reference = project_from_ref.to_human_reference(project) - label_suffix = " <i>in #{reference}</i>" if reference.present? + label_suffix = '' + + if project || full_path_ref?(matches) + project_path = full_project_path(matches[:namespace], matches[:project]) + parent_from_ref = from_ref_cached(project_path) + reference = parent_from_ref.to_human_reference(project || group) + + label_suffix = " <i>in #{reference}</i>" if reference.present? + end LabelsHelper.render_colored_label(object, label_suffix) end + def full_path_ref?(matches) + matches[:namespace] && matches[:project] + end + def unescape_html_entities(text) CGI.unescapeHTML(text.to_s) end diff --git a/lib/gitlab/background_migration/deserialize_merge_request_diffs_and_commits.rb b/lib/gitlab/background_migration/deserialize_merge_request_diffs_and_commits.rb index fd5cbf76e47..a357538a885 100644 --- a/lib/gitlab/background_migration/deserialize_merge_request_diffs_and_commits.rb +++ b/lib/gitlab/background_migration/deserialize_merge_request_diffs_and_commits.rb @@ -96,7 +96,7 @@ module Gitlab commit_hash.merge( merge_request_diff_id: merge_request_diff.id, relative_order: index, - sha: sha_attribute.type_cast_for_database(sha) + sha: sha_attribute.serialize(sha) ) end diff --git a/lib/gitlab/background_migration/set_confidential_note_events_on_services.rb b/lib/gitlab/background_migration/set_confidential_note_events_on_services.rb new file mode 100644 index 00000000000..e5e8837221e --- /dev/null +++ b/lib/gitlab/background_migration/set_confidential_note_events_on_services.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true +# rubocop:disable Style/Documentation + +module Gitlab + module BackgroundMigration + # Ensures services which previously recieved all notes events continue + # to recieve confidential ones. + class SetConfidentialNoteEventsOnServices + class Service < ActiveRecord::Base + self.table_name = 'services' + + include ::EachBatch + + def self.services_to_update + where(confidential_note_events: nil, note_events: true) + end + end + + def perform(start_id, stop_id) + Service.services_to_update + .where(id: start_id..stop_id) + .update_all(confidential_note_events: true) + end + end + end +end diff --git a/lib/gitlab/background_migration/set_confidential_note_events_on_webhooks.rb b/lib/gitlab/background_migration/set_confidential_note_events_on_webhooks.rb new file mode 100644 index 00000000000..171c8ef21b7 --- /dev/null +++ b/lib/gitlab/background_migration/set_confidential_note_events_on_webhooks.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true +# rubocop:disable Style/Documentation + +module Gitlab + module BackgroundMigration + # Ensures hooks which previously recieved all notes events continue + # to recieve confidential ones. + class SetConfidentialNoteEventsOnWebhooks + class WebHook < ActiveRecord::Base + self.table_name = 'web_hooks' + + include ::EachBatch + + def self.hooks_to_update + where(confidential_note_events: nil, note_events: true) + end + end + + def perform(start_id, stop_id) + WebHook.hooks_to_update + .where(id: start_id..stop_id) + .update_all(confidential_note_events: true) + end + end + end +end diff --git a/lib/gitlab/checks/lfs_integrity.rb b/lib/gitlab/checks/lfs_integrity.rb index f7276a380dc..f0e5773ec3c 100644 --- a/lib/gitlab/checks/lfs_integrity.rb +++ b/lib/gitlab/checks/lfs_integrity.rb @@ -15,8 +15,7 @@ module Gitlab return false unless new_lfs_pointers.present? - existing_count = @project.lfs_storage_project - .lfs_objects + existing_count = @project.all_lfs_objects .where(oid: new_lfs_pointers.map(&:lfs_oid)) .count diff --git a/lib/gitlab/ci/status/build/factory.rb b/lib/gitlab/ci/status/build/factory.rb index c852d607373..20a319caf86 100644 --- a/lib/gitlab/ci/status/build/factory.rb +++ b/lib/gitlab/ci/status/build/factory.rb @@ -6,10 +6,12 @@ module Gitlab def self.extended_statuses [[Status::Build::Cancelable, Status::Build::Retryable], + [Status::Build::Failed], [Status::Build::FailedAllowed, Status::Build::Play, Status::Build::Stop], - [Status::Build::Action]] + [Status::Build::Action], + [Status::Build::Retried]] end def self.common_helpers diff --git a/lib/gitlab/ci/status/build/failed.rb b/lib/gitlab/ci/status/build/failed.rb new file mode 100644 index 00000000000..155f4fc1343 --- /dev/null +++ b/lib/gitlab/ci/status/build/failed.rb @@ -0,0 +1,40 @@ +module Gitlab + module Ci + module Status + module Build + class Failed < Status::Extended + REASONS = { + 'unknown_failure' => 'unknown failure', + 'script_failure' => 'script failure', + 'api_failure' => 'API failure', + 'stuck_or_timeout_failure' => 'stuck or timeout failure', + 'runner_system_failure' => 'runner system failure', + 'missing_dependency_failure' => 'missing dependency failure' + }.freeze + + def status_tooltip + base_message + end + + def badge_tooltip + base_message + end + + def self.matches?(build, user) + build.failed? + end + + private + + def base_message + "#{s_('CiStatusLabel|failed')} #{description}" + end + + def description + "<br> (#{REASONS[subject.failure_reason]})" + end + end + end + end + end +end diff --git a/lib/gitlab/ci/status/build/failed_allowed.rb b/lib/gitlab/ci/status/build/failed_allowed.rb index dc90f398c7e..ca0046fb1f7 100644 --- a/lib/gitlab/ci/status/build/failed_allowed.rb +++ b/lib/gitlab/ci/status/build/failed_allowed.rb @@ -4,7 +4,7 @@ module Gitlab module Build class FailedAllowed < Status::Extended def label - 'failed (allowed to fail)' + "failed #{allowed_to_fail_title}" end def icon @@ -15,9 +15,19 @@ module Gitlab 'failed_with_warnings' end + def status_tooltip + "#{@status.status_tooltip} #{allowed_to_fail_title}" + end + def self.matches?(build, user) build.failed? && build.allow_failure? end + + private + + def allowed_to_fail_title + "(allowed to fail)" + end end end end diff --git a/lib/gitlab/ci/status/build/retried.rb b/lib/gitlab/ci/status/build/retried.rb new file mode 100644 index 00000000000..6e190e4ee3c --- /dev/null +++ b/lib/gitlab/ci/status/build/retried.rb @@ -0,0 +1,17 @@ +module Gitlab + module Ci + module Status + module Build + class Retried < Status::Extended + def status_tooltip + @status.status_tooltip + " (retried)" + end + + def self.matches?(build, user) + build.retried? + end + end + end + end + end +end diff --git a/lib/gitlab/ci/status/core.rb b/lib/gitlab/ci/status/core.rb index d4fd83b93f8..daab6bb2de5 100644 --- a/lib/gitlab/ci/status/core.rb +++ b/lib/gitlab/ci/status/core.rb @@ -57,6 +57,16 @@ module Gitlab def action_title raise NotImplementedError end + + # Hint that appears on all the pipeline graph tooltips and builds on the right sidebar in Job detail view + def status_tooltip + label + end + + # Hint that appears on the build badges + def badge_tooltip + subject.status + end end end end diff --git a/lib/gitlab/ci/trace/stream.rb b/lib/gitlab/ci/trace/stream.rb index b3fe3ef1c4d..54894a46077 100644 --- a/lib/gitlab/ci/trace/stream.rb +++ b/lib/gitlab/ci/trace/stream.rb @@ -8,7 +8,7 @@ module Gitlab attr_reader :stream - delegate :close, :tell, :seek, :size, :path, :url, :truncate, to: :stream, allow_nil: true + delegate :close, :tell, :seek, :size, :url, :truncate, to: :stream, allow_nil: true delegate :valid?, to: :stream, as: :present?, allow_nil: true @@ -25,6 +25,10 @@ module Gitlab self.path.present? end + def path + self.stream.path if self.stream.respond_to?(:path) + end + def limit(last_bytes = LIMIT_SIZE) if last_bytes < size stream.seek(-last_bytes, IO::SEEK_END) diff --git a/lib/gitlab/data_builder/note.rb b/lib/gitlab/data_builder/note.rb index 50fea1232af..f573368e572 100644 --- a/lib/gitlab/data_builder/note.rb +++ b/lib/gitlab/data_builder/note.rb @@ -9,6 +9,7 @@ module Gitlab # # data = { # object_kind: "note", + # event_type: "confidential_note", # user: { # name: String, # username: String, @@ -51,8 +52,11 @@ module Gitlab end def build_base_data(project, user, note) + event_type = note.confidential? ? 'confidential_note' : 'note' + base_data = { object_kind: "note", + event_type: event_type, user: user.hook_attrs, project_id: project.id, project: project.hook_attrs, diff --git a/lib/gitlab/database/migration_helpers.rb b/lib/gitlab/database/migration_helpers.rb index 1634fe4e9cb..77079e5e72b 100644 --- a/lib/gitlab/database/migration_helpers.rb +++ b/lib/gitlab/database/migration_helpers.rb @@ -860,7 +860,7 @@ into similar problems in the future (e.g. when new tables are created). # Each job is scheduled with a `delay_interval` in between. # If you use a small interval, then some jobs may run at the same time. # - # model_class - The table being iterated over + # model_class - The table or relation being iterated over # job_class_name - The background migration job class as a string # delay_interval - The duration between each job's scheduled time (must respond to `to_f`) # batch_size - The maximum number of rows per job diff --git a/lib/gitlab/database/sha_attribute.rb b/lib/gitlab/database/sha_attribute.rb index d9400e04b83..b2d8ee81977 100644 --- a/lib/gitlab/database/sha_attribute.rb +++ b/lib/gitlab/database/sha_attribute.rb @@ -1,12 +1,20 @@ module Gitlab module Database - BINARY_TYPE = if Gitlab::Database.postgresql? - # PostgreSQL defines its own class with slightly different - # behaviour from the default Binary type. - ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Bytea - else - ActiveRecord::Type::Binary - end + BINARY_TYPE = + if Gitlab::Database.postgresql? + # PostgreSQL defines its own class with slightly different + # behaviour from the default Binary type. + ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Bytea + else + # In Rails 5.0 `Type` has been moved from `ActiveRecord` to `ActiveModel` + # https://github.com/rails/rails/commit/9cc8c6f3730df3d94c81a55be9ee1b7b4ffd29f6#diff-f8ba7983a51d687976e115adcd95822b + # Remove this method and leave just `ActiveModel::Type::Binary` when removing Gitlab.rails5? code. + if Gitlab.rails5? + ActiveModel::Type::Binary + else + ActiveRecord::Type::Binary + end + end # Class for casting binary data to hexadecimal SHA1 hashes (and vice-versa). # @@ -16,18 +24,39 @@ module Gitlab class ShaAttribute < BINARY_TYPE PACK_FORMAT = 'H*'.freeze - # Casts binary data to a SHA1 in hexadecimal. + # It is called from activerecord-4.2.10/lib/active_record internal methods. + # Remove this method when removing Gitlab.rails5? code. def type_cast_from_database(value) - value = super + unpack_sha(super) + end + + # It is called from activerecord-4.2.10/lib/active_record internal methods. + # Remove this method when removing Gitlab.rails5? code. + def type_cast_for_database(value) + serialize(value) + end + # It is called from activerecord-5.0.6/lib/active_record/attribute.rb + # Remove this method when removing Gitlab.rails5? code.. + def deserialize(value) + value = Gitlab.rails5? ? super : method(:type_cast_from_database).super_method.call(value) + + unpack_sha(value) + end + + # Rename this method to `deserialize(value)` removing Gitlab.rails5? code. + # Casts binary data to a SHA1 in hexadecimal. + def unpack_sha(value) + # Uncomment this line when removing Gitlab.rails5? code. + # value = super value ? value.unpack(PACK_FORMAT)[0] : nil end # Casts a SHA1 in hexadecimal to the proper binary format. - def type_cast_for_database(value) + def serialize(value) arg = value ? [value].pack(PACK_FORMAT) : nil - super(arg) + Gitlab.rails5? ? super(arg) : method(:type_cast_for_database).super_method.call(arg) end end end diff --git a/lib/gitlab/diff/inline_diff_marker.rb b/lib/gitlab/diff/inline_diff_marker.rb index 010b4be7b40..81e91ea0ab7 100644 --- a/lib/gitlab/diff/inline_diff_marker.rb +++ b/lib/gitlab/diff/inline_diff_marker.rb @@ -1,11 +1,14 @@ module Gitlab module Diff class InlineDiffMarker < Gitlab::StringRangeMarker + def initialize(line, rich_line = nil) + super(line, rich_line || line) + end + def mark(line_inline_diffs, mode: nil) - mark = super(line_inline_diffs) do |text, left:, right:| + super(line_inline_diffs) do |text, left:, right:| %{<span class="#{html_class_names(left, right, mode)}">#{text}</span>} end - mark.html_safe end private diff --git a/lib/gitlab/git/commit.rb b/lib/gitlab/git/commit.rb index 93037ed8d90..0fb82441bf8 100644 --- a/lib/gitlab/git/commit.rb +++ b/lib/gitlab/git/commit.rb @@ -231,7 +231,8 @@ module Gitlab # relation to each other. The last 10 commits for a branch for example, # should go through .where def batch_by_oid(repo, oids) - repo.gitaly_migrate(:list_commits_by_oid) do |is_enabled| + repo.gitaly_migrate(:list_commits_by_oid, + status: Gitlab::GitalyClient::MigrationStatus::OPT_OUT) do |is_enabled| if is_enabled repo.gitaly_commit_client.list_commits_by_oid(oids) else diff --git a/lib/gitlab/git/hook.rb b/lib/gitlab/git/hook.rb index 24f027d8da4..7c201c6169b 100644 --- a/lib/gitlab/git/hook.rb +++ b/lib/gitlab/git/hook.rb @@ -95,13 +95,13 @@ module Gitlab args = [ref, oldrev, newrev] stdout, stderr, status = Open3.capture3(env, path, *args, options) - [status.success?, (stderr.presence || stdout).gsub(/\R/, "<br>").html_safe] + [status.success?, Gitlab::Utils.nlbr(stderr.presence || stdout)] end def retrieve_error_message(stderr, stdout) err_message = stderr.read err_message = err_message.blank? ? stdout.read : err_message - err_message.gsub(/\R/, "<br>").html_safe + Gitlab::Utils.nlbr(err_message) end end end diff --git a/lib/gitlab/git_access.rb b/lib/gitlab/git_access.rb index ed0644f6cf1..6a01957184d 100644 --- a/lib/gitlab/git_access.rb +++ b/lib/gitlab/git_access.rb @@ -29,9 +29,9 @@ module Gitlab PUSH_COMMANDS = %w{ git-receive-pack }.freeze ALL_COMMANDS = DOWNLOAD_COMMANDS + PUSH_COMMANDS - attr_reader :actor, :project, :protocol, :authentication_abilities, :namespace_path, :project_path, :redirected_path + attr_reader :actor, :project, :protocol, :authentication_abilities, :namespace_path, :project_path, :redirected_path, :auth_result_type - def initialize(actor, project, protocol, authentication_abilities:, namespace_path: nil, project_path: nil, redirected_path: nil) + def initialize(actor, project, protocol, authentication_abilities:, namespace_path: nil, project_path: nil, redirected_path: nil, auth_result_type: nil) @actor = actor @project = project @protocol = protocol @@ -39,6 +39,7 @@ module Gitlab @namespace_path = namespace_path @project_path = project_path @redirected_path = redirected_path + @auth_result_type = auth_result_type end def check(cmd, changes) @@ -78,6 +79,12 @@ module Gitlab authentication_abilities.include?(:build_download_code) && user_access.can_do_action?(:build_download_code) end + def request_from_ci_build? + return false unless protocol == 'http' + + auth_result_type == :build || auth_result_type == :ci + end + def protocol_allowed? Gitlab::ProtocolAccess.allowed?(protocol) end @@ -93,6 +100,8 @@ module Gitlab end def check_protocol! + return if request_from_ci_build? + unless protocol_allowed? raise UnauthorizedError, "Git access over #{protocol.upcase} is not allowed" end diff --git a/lib/gitlab/hook_data/issuable_builder.rb b/lib/gitlab/hook_data/issuable_builder.rb index 4febb0ab430..6ab36676127 100644 --- a/lib/gitlab/hook_data/issuable_builder.rb +++ b/lib/gitlab/hook_data/issuable_builder.rb @@ -11,7 +11,8 @@ module Gitlab def build(user: nil, changes: {}) hook_data = { - object_kind: issuable.class.name.underscore, + object_kind: object_kind, + event_type: event_type, user: user.hook_attrs, project: issuable.project.hook_attrs, object_attributes: issuable.hook_attrs, @@ -36,6 +37,18 @@ module Gitlab private + def object_kind + issuable.class.name.underscore + end + + def event_type + if issuable.try(:confidential?) + "confidential_#{object_kind}" + else + object_kind + end + end + def issuable_builder case issuable when Issue diff --git a/lib/gitlab/import_export/import_export.yml b/lib/gitlab/import_export/import_export.yml index 4bdd01f5e94..cd840bd5b01 100644 --- a/lib/gitlab/import_export/import_export.yml +++ b/lib/gitlab/import_export/import_export.yml @@ -105,6 +105,7 @@ excluded_attributes: - :last_repository_updated_at - :last_repository_check_at - :storage_version + - :description_html snippets: - :expired_at merge_request_diff: @@ -124,6 +125,8 @@ excluded_attributes: - :trace - :token - :when + - :artifacts_file + - :artifacts_metadata push_event_payload: - :event_id project_badges: @@ -144,8 +147,6 @@ methods: - :diff_head_sha - :source_branch_sha - :target_branch_sha - project: - - :description_html events: - :action push_event_payload: diff --git a/lib/gitlab/import_export/importer.rb b/lib/gitlab/import_export/importer.rb index c38df9102eb..c490bf059d2 100644 --- a/lib/gitlab/import_export/importer.rb +++ b/lib/gitlab/import_export/importer.rb @@ -13,7 +13,7 @@ module Gitlab end def execute - if import_file && check_version! && [repo_restorer, wiki_restorer, project_tree, avatar_restorer, uploads_restorer].all?(&:restore) + if import_file && check_version! && restorers.all?(&:restore) project_tree.restored_project else raise Projects::ImportService::Error.new(@shared.errors.join(', ')) @@ -24,6 +24,11 @@ module Gitlab private + def restorers + [repo_restorer, wiki_restorer, project_tree, avatar_restorer, + uploads_restorer, lfs_restorer] + end + def import_file Gitlab::ImportExport::FileImporter.import(archive_file: @archive_file, shared: @shared) @@ -60,6 +65,10 @@ module Gitlab Gitlab::ImportExport::UploadsRestorer.new(project: project_tree.restored_project, shared: @shared) end + def lfs_restorer + Gitlab::ImportExport::LfsRestorer.new(project: project_tree.restored_project, shared: @shared) + end + def path_with_namespace File.join(@project.namespace.full_path, @project.path) end diff --git a/lib/gitlab/import_export/lfs_restorer.rb b/lib/gitlab/import_export/lfs_restorer.rb new file mode 100644 index 00000000000..b28c3c161b7 --- /dev/null +++ b/lib/gitlab/import_export/lfs_restorer.rb @@ -0,0 +1,43 @@ +module Gitlab + module ImportExport + class LfsRestorer + def initialize(project:, shared:) + @project = project + @shared = shared + end + + def restore + return true if lfs_file_paths.empty? + + lfs_file_paths.each do |file_path| + link_or_create_lfs_object!(file_path) + end + + true + rescue => e + @shared.error(e) + false + end + + private + + def link_or_create_lfs_object!(path) + size = File.size(path) + oid = LfsObject.calculate_oid(path) + + lfs_object = LfsObject.find_or_initialize_by(oid: oid, size: size) + lfs_object.file = File.open(path) unless lfs_object.file&.exists? + + @project.all_lfs_objects << lfs_object + end + + def lfs_file_paths + @lfs_file_paths ||= Dir.glob("#{lfs_storage_path}/*") + end + + def lfs_storage_path + File.join(@shared.export_path, 'lfs-objects') + end + end + end +end diff --git a/lib/gitlab/import_export/lfs_saver.rb b/lib/gitlab/import_export/lfs_saver.rb new file mode 100644 index 00000000000..29410e2331c --- /dev/null +++ b/lib/gitlab/import_export/lfs_saver.rb @@ -0,0 +1,55 @@ +module Gitlab + module ImportExport + class LfsSaver + include Gitlab::ImportExport::CommandLineUtil + + def initialize(project:, shared:) + @project = project + @shared = shared + end + + def save + @project.all_lfs_objects.each do |lfs_object| + save_lfs_object(lfs_object) + end + + true + rescue => e + @shared.error(e) + + false + end + + private + + def save_lfs_object(lfs_object) + if lfs_object.local_store? + copy_file_for_lfs_object(lfs_object) + else + download_file_for_lfs_object(lfs_object) + end + end + + def download_file_for_lfs_object(lfs_object) + destination = destination_path_for_object(lfs_object) + mkdir_p(File.dirname(destination)) + + File.open(destination, 'w') do |file| + IO.copy_stream(URI.parse(lfs_object.file.url).open, file) + end + end + + def copy_file_for_lfs_object(lfs_object) + copy_files(lfs_object.file.path, destination_path_for_object(lfs_object)) + end + + def destination_path_for_object(lfs_object) + File.join(lfs_export_path, lfs_object.oid) + end + + def lfs_export_path + File.join(@shared.export_path, 'lfs-objects') + end + end + end +end diff --git a/lib/gitlab/import_export/project_tree_restorer.rb b/lib/gitlab/import_export/project_tree_restorer.rb index 8f5bb8f9597..2c315207298 100644 --- a/lib/gitlab/import_export/project_tree_restorer.rb +++ b/lib/gitlab/import_export/project_tree_restorer.rb @@ -77,24 +77,31 @@ module Gitlab end def default_relation_list - Gitlab::ImportExport::Reader.new(shared: @shared).tree.reject do |model| + reader.tree.reject do |model| model.is_a?(Hash) && model[:project_members] end end def restore_project - params = project_params - - if params[:description].present? - params[:description_html] = nil - end - - @project.update_columns(params) + @project.update_columns(project_params) @project end def project_params - @tree_hash.reject do |key, value| + @project_params ||= json_params.merge(override_params) + end + + def override_params + return {} unless params = @project.import_data&.data&.fetch('override_params') + + @override_params ||= params.select do |key, _value| + Project.column_names.include?(key.to_s) && + !reader.project_tree[:except].include?(key.to_sym) + end + end + + def json_params + @json_params ||= @tree_hash.reject do |key, value| # return params that are not 1 to many or 1 to 1 relations value.respond_to?(:each) && !Project.column_names.include?(key) end @@ -181,6 +188,10 @@ module Gitlab relation_hash.merge(params) end + + def reader + @reader ||= Gitlab::ImportExport::Reader.new(shared: @shared) + end end end end diff --git a/lib/gitlab/middleware/multipart.rb b/lib/gitlab/middleware/multipart.rb index d4c54049b74..a5f5d719cc1 100644 --- a/lib/gitlab/middleware/multipart.rb +++ b/lib/gitlab/middleware/multipart.rb @@ -82,7 +82,7 @@ module Gitlab end def open_file(path, name) - ::UploadedFile.new(path, name || File.basename(path), 'application/octet-stream') + ::UploadedFile.new(path, filename: name || File.basename(path), content_type: 'application/octet-stream') end end diff --git a/lib/gitlab/utils.rb b/lib/gitlab/utils.rb index dc9391f32cf..b0a492eaa58 100644 --- a/lib/gitlab/utils.rb +++ b/lib/gitlab/utils.rb @@ -27,6 +27,11 @@ module Gitlab .gsub(/(\A-+|-+\z)/, '') end + # Converts newlines into HTML line break elements + def nlbr(str) + ActionView::Base.full_sanitizer.sanitize(str, tags: []).gsub(/\r?\n/, '<br>').html_safe + end + def remove_line_breaks(str) str.gsub(/\r?\n/, '') end diff --git a/lib/gitlab/workhorse.rb b/lib/gitlab/workhorse.rb index b102812ec12..2faeaf16d55 100644 --- a/lib/gitlab/workhorse.rb +++ b/lib/gitlab/workhorse.rb @@ -36,10 +36,6 @@ module Gitlab } end - def artifact_upload_ok - { TempPath: JobArtifactUploader.workhorse_upload_path } - end - def send_git_blob(repository, blob) params = if Gitlab::GitalyClient.feature_enabled?(:workhorse_raw_show, status: Gitlab::GitalyClient::MigrationStatus::OPT_OUT) { diff --git a/lib/uploaded_file.rb b/lib/uploaded_file.rb index 4a3c40f88eb..5dc85b2baea 100644 --- a/lib/uploaded_file.rb +++ b/lib/uploaded_file.rb @@ -1,8 +1,10 @@ require "tempfile" +require "tmpdir" require "fileutils" -# Taken from: Rack::Test::UploadedFile class UploadedFile + InvalidPathError = Class.new(StandardError) + # The filename, *not* including the path, of the "uploaded" file attr_reader :original_filename @@ -12,14 +14,46 @@ class UploadedFile # The content type of the "uploaded" file attr_accessor :content_type - def initialize(path, filename, content_type = "text/plain") - raise "#{path} file does not exist" unless ::File.exist?(path) + attr_reader :remote_id + attr_reader :sha256 + + def initialize(path, filename: nil, content_type: "application/octet-stream", sha256: nil, remote_id: nil) + raise InvalidPathError, "#{path} file does not exist" unless ::File.exist?(path) @content_type = content_type @original_filename = filename || ::File.basename(path) + @content_type = content_type + @sha256 = sha256 + @remote_id = remote_id @tempfile = File.new(path, 'rb') end + def self.from_params(params, field, upload_path) + unless params["#{field}.path"] + raise InvalidPathError, "file is invalid" if params["#{field}.remote_id"] + + return + end + + file_path = File.realpath(params["#{field}.path"]) + + unless self.allowed_path?(file_path, [upload_path, Dir.tmpdir].compact) + raise InvalidPathError, "insecure path used '#{file_path}'" + end + + UploadedFile.new(file_path, + filename: params["#{field}.name"], + content_type: params["#{field}.type"] || 'application/octet-stream', + sha256: params["#{field}.sha256"], + remote_id: params["#{field}.remote_id"]) + end + + def self.allowed_path?(file_path, paths) + paths.any? do |path| + File.exist?(path) && file_path.start_with?(File.realpath(path)) + end + end + def path @tempfile.path end diff --git a/locale/bg/gitlab.po b/locale/bg/gitlab.po index c996b30d7fa..a170014844f 100644 --- a/locale/bg/gitlab.po +++ b/locale/bg/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:19-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:34-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Bulgarian\n" "Language: bg_BG\n" @@ -29,6 +29,11 @@ msgid_plural "%d commits behind" msgstr[0] "" msgstr[1] "" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" +msgstr[1] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" @@ -44,6 +49,11 @@ msgid_plural "%d merge requests" msgstr[0] "" msgstr[1] "" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" +msgstr[1] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "%s подаване беше пропуÑнато, за да не Ñе натоварва ÑиÑтемата." @@ -60,6 +70,9 @@ msgid_plural "%{count} participants" msgstr[0] "" msgstr[1] "" +msgid "%{loadingIcon} Started" +msgstr "" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "" @@ -103,15 +116,30 @@ msgstr "" msgid "2FA enabled" msgstr "" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "Ðабор от графики отноÑно непрекъÑнатата интеграциÑ" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "ОтноÑно автоматичното внедрÑване" msgid "Abuse Reports" msgstr "" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "" @@ -121,6 +149,9 @@ msgstr "" msgid "Account" msgstr "" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "Ðктивно" @@ -217,9 +248,33 @@ msgstr "" msgid "All changes are committed" msgstr "" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "" +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + msgid "An error occurred previewing the blob" msgstr "" @@ -298,6 +353,9 @@ msgstr "" msgid "An error occurred. Please try again." msgstr "" +msgid "Any Label" +msgstr "" + msgid "Appearance" msgstr "" @@ -331,6 +389,9 @@ msgstr "" msgid "Artifacts" msgstr "" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "" @@ -343,6 +404,15 @@ msgstr "" msgid "Assign to" msgstr "" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "" @@ -367,6 +437,9 @@ msgstr "" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -409,6 +482,12 @@ msgstr "" msgid "Average per day: %{average}" msgstr "" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "" @@ -492,6 +571,15 @@ msgstr "Превключване на клона" msgid "Branches" msgstr "Клони" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "" @@ -537,12 +625,39 @@ msgstr "" msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" msgstr "" msgid "Branches|Sort by" msgstr "" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -588,30 +703,45 @@ msgstr "Преглед на файловете" msgid "Browse files" msgstr "Разглеждане на файловете" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "от" msgid "CI / CD" msgstr "" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" msgstr "" +msgid "CI/CD for external repo" +msgstr "" + msgid "CICD|Jobs" msgstr "" msgid "Cancel" msgstr "Отказ" -msgid "Cancel edit" +msgid "Cannot be merged automatically" msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "Избиране в клона" @@ -666,6 +796,12 @@ msgstr "" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "" +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "" @@ -768,6 +904,15 @@ msgstr "" msgid "Click to expand text" msgstr "" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "" @@ -867,6 +1012,9 @@ msgstr "" msgid "ClusterIntegration|Helm Tiller" msgstr "" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "" @@ -876,6 +1024,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "" @@ -894,6 +1045,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -927,6 +1081,9 @@ msgstr "" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "" @@ -987,6 +1144,9 @@ msgstr "" msgid "ClusterIntegration|Save changes" msgstr "" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1014,6 +1174,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1138,6 +1301,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1153,9 +1322,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "" @@ -1201,6 +1406,12 @@ msgstr "" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "" +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "РъководÑтво за ÑътрудничеÑтво" @@ -1264,8 +1475,8 @@ msgstr "" msgid "Create directory" msgstr "Създаване на папка" -msgid "Create empty bare repository" -msgstr "Създаване на празно хранилище" +msgid "Create empty repository" +msgstr "" msgid "Create epic" msgstr "" @@ -1273,6 +1484,9 @@ msgstr "" msgid "Create file" msgstr "" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1297,6 +1511,9 @@ msgstr "" msgid "Create new..." msgstr "Създаване на нов…" +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "РазклонÑване" @@ -1330,6 +1547,9 @@ msgstr "ПерÑонализирани ÑÑŠÐ±Ð¸Ñ‚Ð¸Ñ Ð·Ð° извеÑÑ‚ÑванРmsgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "ПерÑонализираните нива на извеÑÑ‚Ñване Ñа Ñъщите като нивата за учаÑтие. С перÑонализираните нива на извеÑÑ‚Ñване ще можете да получавате и извеÑÑ‚Ð¸Ñ Ð·Ð° избрани ÑъбитиÑ. За да научите повече, прегледайте %{notification_link}." +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "Ðнализ на циклите" @@ -1413,9 +1633,15 @@ msgstr "" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "Да не Ñе показва повече" +msgid "Done" +msgstr "" + msgid "Download" msgstr "СвалÑне" @@ -1443,9 +1669,15 @@ msgstr "Обикновен файл Ñ Ñ€Ð°Ð·Ð»Ð¸ÐºÐ¸" msgid "DownloadSource|Download" msgstr "СвалÑне" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "Редактиране" @@ -1455,6 +1687,18 @@ msgstr "Редактиране на плана %{id} за Ñхема" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "" @@ -1464,6 +1708,33 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1524,6 +1795,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1599,9 +1873,15 @@ msgstr "" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1611,6 +1891,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1644,6 +1927,9 @@ msgstr "Файлове" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "Филтриране по Ñъобщение" @@ -1653,12 +1939,21 @@ msgstr "ТърÑене по път" msgid "Find file" msgstr "ТърÑене на файл" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "Първо" msgid "FirstPushedBy|pushed by" msgstr "изпращане на промени от" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "Разклонение" @@ -1670,9 +1965,15 @@ msgstr "Разклонение на" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "От Ñъздаването на проблема до внедрÑването в крайната верÑиÑ" @@ -1691,12 +1992,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "" +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1742,21 +2049,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1769,9 +2103,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1802,6 +2148,9 @@ msgstr "" msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1811,12 +2160,30 @@ msgstr "" msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "Към Вашето разклонение" @@ -1883,9 +2250,6 @@ msgstr "" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "" @@ -1916,6 +2280,9 @@ msgstr "" msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "" @@ -1934,6 +2301,15 @@ msgstr "" msgid "HealthCheck|Unhealthy" msgstr "" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1945,12 +2321,39 @@ msgstr "" msgid "Housekeeping successfully started" msgstr "ОÑвежаването започна уÑпешно" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "ВнаÑÑне на хранилище" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "" @@ -1974,6 +2377,9 @@ msgstr[1] "" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2028,6 +2434,9 @@ msgstr "" msgid "June" msgstr "" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2058,12 +2467,30 @@ msgstr "Изключено" msgid "LFSStatus|Enabled" msgstr "Включено" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "ПоÑÐ»ÐµÐ´Ð½Ð¸Ñ %d ден" @@ -2123,6 +2550,9 @@ msgstr "" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2135,9 +2565,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "" @@ -2153,9 +2580,21 @@ msgstr "" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "" @@ -2177,6 +2616,9 @@ msgstr "Медиана" msgid "Members" msgstr "" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "" @@ -2189,15 +2631,87 @@ msgstr "" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2213,6 +2727,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "добавите SSH ключ" @@ -2225,6 +2748,9 @@ msgstr "" msgid "Monitoring" msgstr "" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2299,6 +2825,9 @@ msgstr "" msgid "New tag" msgstr "Ðов етикет" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2317,6 +2846,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "ÐÑма хранилище" @@ -2332,6 +2864,12 @@ msgstr "" msgid "Not available" msgstr "Ðе е налично" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2341,6 +2879,18 @@ msgstr "ÐÑма доÑтатъчно данни" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "Ð¡ÑŠÐ±Ð¸Ñ‚Ð¸Ñ Ð·Ð° извеÑÑ‚Ñване" @@ -2425,6 +2975,12 @@ msgstr "" msgid "OfSearchInADropdown|Filter" msgstr "Филтър" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "" @@ -2446,12 +3002,18 @@ msgstr "Опции" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "" msgid "Owner" msgstr "СобÑтвеник" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "" @@ -2464,9 +3026,21 @@ msgstr "" msgid "Pagination|« First" msgstr "" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "Схема" @@ -2548,9 +3122,36 @@ msgstr "" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2581,6 +3182,9 @@ msgstr "Ñ ÐµÑ‚Ð°Ð¿" msgid "Pipeline|with stages" msgstr "Ñ ÐµÑ‚Ð°Ð¿Ð¸" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2590,6 +3194,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "" @@ -2644,6 +3254,9 @@ msgstr "" msgid "Profiles|your account" msgstr "" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2668,9 +3281,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "" @@ -2767,6 +3377,12 @@ msgstr "" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2779,9 +3395,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "" +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "" +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2794,19 +3422,13 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "" - msgid "PrometheusService|Missing environment variable" msgstr "" -msgid "PrometheusService|Monitored" -msgstr "" - msgid "PrometheusService|More information" msgstr "" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." +msgid "PrometheusService|New metric" msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" @@ -2815,6 +3437,9 @@ msgstr "" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2824,7 +3449,16 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" msgid "Protip:" @@ -2860,6 +3494,9 @@ msgstr "Прочетете повече" msgid "Readme" msgstr "ПрочетиМе" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "Клони" @@ -2893,6 +3530,9 @@ msgstr "Свързани заÑвки за Ñливане" msgid "Related Merged Requests" msgstr "Свързани приложени заÑвки за Ñливане" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "ÐапомнÑне по-къÑно" @@ -2908,12 +3548,24 @@ msgstr "Премахване на проекта" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "ЗаÑвка за доÑтъп" @@ -2929,6 +3581,9 @@ msgstr "" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2940,9 +3595,36 @@ msgstr "ОтмÑна на това подаване" msgid "Revert this merge request" msgstr "ОтмÑна на тази заÑвка за Ñливане" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "" @@ -2958,6 +3640,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "Създаване на нов план за Ñхема" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "" @@ -2967,6 +3652,9 @@ msgstr "Планиране на Ñхемите" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "ТърÑете в клоните и етикетите" @@ -3030,15 +3718,33 @@ msgstr "" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "Задайте парола на акаунта Ñи, за да можете да изтеглÑте и изпращате промени чрез %{protocol}." +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "ÐаÑтройка на „Koding“" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "зададете парола" @@ -3048,6 +3754,9 @@ msgstr "" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3083,40 +3792,40 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" -msgid "Snippets" +msgid "Sign-in restrictions" msgstr "" -msgid "Something went wrong on our end" +msgid "Sign-up restrictions" msgstr "" -msgid "Something went wrong on our end." +msgid "Size and domain settings for static websites" msgstr "" -msgid "Something went wrong trying to change the confidentiality of this issue" +msgid "Slack application" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" +msgid "Snippets" msgstr "" -msgid "Something went wrong when toggling the button" +msgid "Something went wrong on our end" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong on our end." msgstr "" -msgid "Something went wrong while fetching SAST." +msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while fetching the projects." +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" -msgid "Something went wrong while fetching the registry list." +msgid "Something went wrong while fetching SAST." msgstr "" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" +msgid "Something went wrong while fetching the projects." msgstr "" -msgid "Something went wrong while resolving this discussion. Please try again." +msgid "Something went wrong while fetching the registry list." msgstr "" msgid "Something went wrong. Please try again." @@ -3236,12 +3945,21 @@ msgstr "" msgid "Spam Logs" msgstr "" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "" msgid "StarProject|Star" msgstr "Звезда" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "" @@ -3251,6 +3969,15 @@ msgstr "Създайте %{new_merge_request} Ñ Ñ‚ÐµÐ·Ð¸ промени" msgid "Start the Runner!" msgstr "" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "" @@ -3263,9 +3990,15 @@ msgstr "" msgid "Switch branch/tag" msgstr "Преминаване към клон/етикет" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3346,6 +4079,9 @@ msgstr "" msgid "Target Branch" msgstr "Целеви клон" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "" @@ -3361,15 +4097,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "Етапът на програмиране показва времето от първото подаване до Ñъздаването на заÑвката за Ñливане. Данните ще бъдат добавени тук автоматично Ñлед като бъде Ñъздадена първата заÑвка за Ñливане." msgid "The collection of events added to the data gathered for that stage." msgstr "СъвкупноÑтта от ÑÑŠÐ±Ð¸Ñ‚Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²ÐµÐ½Ð¸ към данните Ñъбрани за този етап." +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "Връзката на разклонение беше премахната." +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "Етапът на проблемите показва колко е времето от Ñъздаването на проблем до определÑнето на целеви етап на проекта за него, или до добавÑнето му в ÑпиÑък на дъÑката за проблеми. Започнете да добавÑте проблеми, за да видите данните за този етап." @@ -3382,12 +4127,18 @@ msgstr "" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "Етапът от цикъла на разработка" msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "Етапът на планиране показва колко е времето от преходната Ñтъпка до изпращането на първото подаване. Това време ще бъде добавено автоматично Ñлед като изпратите първото Ñи подаване." +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "Етапът на издаване показва общото време, което е нужно от Ñъздаването на проблем до внедрÑването на кода в крайната верÑиÑ. Данните ще бъдат добавени автоматично Ñлед като завършите един пълен цикъл и превърнете първата Ñи Ð¸Ð´ÐµÑ Ð² реалноÑÑ‚." @@ -3403,6 +4154,9 @@ msgstr "Хранилището за този проект не ÑъщеÑтвуРmsgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "Етапът на преглед и одобрение показва времето от Ñъздаването на заÑвката за Ñливане до прилагането Ñ. Данните ще бъдат добавени автоматично Ñлед като приложите първата Ñи заÑвка за Ñливане." @@ -3439,6 +4193,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "" +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3511,6 +4268,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3523,6 +4283,12 @@ msgstr "Време преди работата по проблем да запо msgid "Time between merge request creation and merge/close" msgstr "Време между Ñъздаване на заÑвка за Ñливане и прилагането/отхвърлÑнето Ñ" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3680,6 +4446,36 @@ msgstr "" msgid "Title" msgstr "" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3719,18 +4515,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "" @@ -3770,6 +4560,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "щракнете за качване" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3779,24 +4575,51 @@ msgstr "" msgid "Use your global notification setting" msgstr "Използване на глобалната Ви наÑтройка за извеÑтиÑта" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "" +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "Преглед на отворената заÑвка за Ñливане" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "" +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "Вътрешен" @@ -3824,12 +4647,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "" @@ -3950,14 +4779,20 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "Ðа път Ñте да премахнете „%{group_name}“. Ðко Ñ Ð¿Ñ€ÐµÐ¼Ð°Ñ…Ð½ÐµÑ‚Ðµ, групата ÐЕ може да бъде възÑтановена! ÐÐИСТИÐРли иÑкате това?" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "Ðа път Ñте да премахнете „%{project_name_with_namespace}“. Ðко го премахнете, той ÐЕ може да бъде възÑтановен!ÐÐИСТИÐРли иÑкате това?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "Ðа път Ñте да премахнете връзката на разклонението към Ð¾Ñ€Ð¸Ð³Ð¸Ð½Ð°Ð»Ð½Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚, „%{forked_from_project}“. ÐÐИСТИÐРли иÑкате това?" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "Ðа път Ñте да прехвърлите „%{project_name_with_namespace}“ към друг ÑобÑтвеник. ÐÐИСТИÐРли иÑкате това?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." +msgstr "" msgid "You can also create a project from the command line." msgstr "" @@ -4031,9 +4866,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4049,6 +4902,14 @@ msgstr "Вашето име" msgid "Your projects" msgstr "" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + msgid "assign yourself" msgstr "" @@ -4058,12 +4919,30 @@ msgstr "" msgid "by" msgstr "" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4091,9 +4970,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4106,25 +4982,28 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" @@ -4132,15 +5011,40 @@ msgid_plural "days" msgstr[0] "ден" msgstr[1] "дни" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4152,9 +5056,21 @@ msgstr[1] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4167,6 +5083,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4194,18 +5113,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4290,6 +5218,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4328,6 +5259,9 @@ msgstr "" msgid "personal access token" msgstr "" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4337,6 +5271,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "" diff --git a/locale/de/gitlab.po b/locale/de/gitlab.po index 76982ff61b1..5a5cf1a19a3 100644 --- a/locale/de/gitlab.po +++ b/locale/de/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:21-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:37-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: German\n" "Language: de_DE\n" @@ -29,6 +29,11 @@ msgid_plural "%d commits behind" msgstr[0] "" msgstr[1] "" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" +msgstr[1] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" @@ -44,6 +49,11 @@ msgid_plural "%d merge requests" msgstr[0] "" msgstr[1] "" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" +msgstr[1] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "%s zusätzlicher Commit wurde ausgelassen um Leistungsprobleme zu verhindern." @@ -60,6 +70,9 @@ msgid_plural "%{count} participants" msgstr[0] "" msgstr[1] "" +msgid "%{loadingIcon} Started" +msgstr "" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "" @@ -103,15 +116,30 @@ msgstr "" msgid "2FA enabled" msgstr "" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "Eine Sammlung von Graphen bezüglich kontinuierlicher Integration" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "Ãœber automatische Bereitstellung " msgid "Abuse Reports" msgstr "" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "" @@ -121,6 +149,9 @@ msgstr "Zugriff auf fehlerhafte Speicher wurde vorübergehend deaktiviert, um di msgid "Account" msgstr "Konto" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "Aktiv" @@ -217,9 +248,33 @@ msgstr "Alle" msgid "All changes are committed" msgstr "" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "" +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + msgid "An error occurred previewing the blob" msgstr "" @@ -298,6 +353,9 @@ msgstr "" msgid "An error occurred. Please try again." msgstr "" +msgid "Any Label" +msgstr "" + msgid "Appearance" msgstr "" @@ -331,6 +389,9 @@ msgstr "Bist Du sicher?" msgid "Artifacts" msgstr "" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "" @@ -343,6 +404,15 @@ msgstr "" msgid "Assign to" msgstr "" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "" @@ -367,6 +437,9 @@ msgstr "" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -409,6 +482,12 @@ msgstr "" msgid "Average per day: %{average}" msgstr "" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "" @@ -492,6 +571,15 @@ msgstr "Branch wechseln" msgid "Branches" msgstr "" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "" @@ -537,12 +625,39 @@ msgstr "" msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" msgstr "" msgid "Branches|Sort by" msgstr "" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -588,30 +703,45 @@ msgstr "Dateien durchsuchen" msgid "Browse files" msgstr "Dateien durchsuchen" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "von" msgid "CI / CD" msgstr "CI / CD" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" msgstr "" +msgid "CI/CD for external repo" +msgstr "" + msgid "CICD|Jobs" msgstr "" msgid "Cancel" msgstr "Abbrechen" -msgid "Cancel edit" -msgstr "Bearbeitung abbrechen" +msgid "Cannot be merged automatically" +msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "In dem Branch wählen" @@ -666,6 +796,12 @@ msgstr "" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "" +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "" @@ -768,6 +904,15 @@ msgstr "" msgid "Click to expand text" msgstr "" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "" @@ -867,6 +1012,9 @@ msgstr "" msgid "ClusterIntegration|Helm Tiller" msgstr "" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "" @@ -876,6 +1024,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "" @@ -894,6 +1045,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -927,6 +1081,9 @@ msgstr "" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "" @@ -987,6 +1144,9 @@ msgstr "" msgid "ClusterIntegration|Save changes" msgstr "" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1014,6 +1174,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1138,6 +1301,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1153,9 +1322,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "" @@ -1201,6 +1406,12 @@ msgstr "" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "" +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "Mitarbeitsanleitung" @@ -1264,8 +1475,8 @@ msgstr "" msgid "Create directory" msgstr "Erstelle Verzeichnis" -msgid "Create empty bare repository" -msgstr "Erstelle leeres Repository" +msgid "Create empty repository" +msgstr "" msgid "Create epic" msgstr "" @@ -1273,6 +1484,9 @@ msgstr "" msgid "Create file" msgstr "" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1297,6 +1511,9 @@ msgstr "" msgid "Create new..." msgstr "Erstelle neues..." +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "Ableger" @@ -1330,6 +1547,9 @@ msgstr "Individuelle Benachrichtigungsereignisse" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "Individuelle Benachrichtigungsstufen sind identisch mit den Beteiligungsstufen. Mit individuellen Benachrichtigungsstufen erhältst Du ebenfalls Mitteilungen für ausgewählte Ereignisse. Für weitere Informationen lies %{notification_link}. " +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "Arbeitsablaufsanalysen" @@ -1413,9 +1633,15 @@ msgstr "" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "Nicht erneut anzeigen" +msgid "Done" +msgstr "" + msgid "Download" msgstr "Herunterladen" @@ -1443,9 +1669,15 @@ msgstr "Unterschiede" msgid "DownloadSource|Download" msgstr "Herunterladen" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "Bearbeiten" @@ -1455,6 +1687,18 @@ msgstr "Pipeline Zeitplan bearbeiten %{id}" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "E-Mails" @@ -1464,6 +1708,33 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1524,6 +1795,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1599,9 +1873,15 @@ msgstr "" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1611,6 +1891,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1644,6 +1927,9 @@ msgstr "Dateien" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "Filter nach Commit Nachricht" @@ -1653,12 +1939,21 @@ msgstr "Finde über den Pfad" msgid "Find file" msgstr "Finde Datei" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "Erster" msgid "FirstPushedBy|pushed by" msgstr "übertragen von" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "Ableger" @@ -1670,9 +1965,15 @@ msgstr "Ableger von" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "Von der Ticketbeschreibung bis zur Bereitstellung" @@ -1691,12 +1992,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "" +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1742,21 +2049,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1769,9 +2103,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1802,6 +2148,9 @@ msgstr "" msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1811,12 +2160,30 @@ msgstr "Informationen über den Speicherzustand von Gitlab wurden zurückgesetzt msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "GitLab Runner Bereich" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "Gehe zu Deinem Ableger" @@ -1883,9 +2250,6 @@ msgstr "" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "" @@ -1916,6 +2280,9 @@ msgstr "" msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "Systemzustand" @@ -1934,6 +2301,15 @@ msgstr "Keine Probleme erkannt" msgid "HealthCheck|Unhealthy" msgstr "Problematisch" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1945,12 +2321,39 @@ msgstr "" msgid "Housekeeping successfully started" msgstr "Aufräumen erfolgreich gestartet" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "Repository importieren" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "" @@ -1974,6 +2377,9 @@ msgstr[1] "" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2028,6 +2434,9 @@ msgstr "" msgid "June" msgstr "" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2058,12 +2467,30 @@ msgstr "Deaktiviert" msgid "LFSStatus|Enabled" msgstr "Aktiviert" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "Letzten %d Tag" @@ -2123,6 +2550,9 @@ msgstr "" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2135,9 +2565,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "" @@ -2153,9 +2580,21 @@ msgstr "" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "" @@ -2177,6 +2616,9 @@ msgstr "Median" msgid "Members" msgstr "Mitglieder" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "" @@ -2189,15 +2631,87 @@ msgstr "" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "Nachrichten" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2213,6 +2727,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "einen SSH Schlüssel hinzufügst" @@ -2225,6 +2748,9 @@ msgstr "" msgid "Monitoring" msgstr "Ãœberwachung" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2299,6 +2825,9 @@ msgstr "" msgid "New tag" msgstr "Neuer Tag" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2317,6 +2846,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "Kein Repository" @@ -2332,6 +2864,12 @@ msgstr "" msgid "Not available" msgstr "Nicht verfügbar" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2341,6 +2879,18 @@ msgstr "Nicht genügend Daten" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "Benachrichtigungsereignisse" @@ -2425,6 +2975,12 @@ msgstr "" msgid "OfSearchInADropdown|Filter" msgstr "Filter" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "" @@ -2446,12 +3002,18 @@ msgstr "Optionen" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "Ãœbersicht" msgid "Owner" msgstr "Besitzer" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "" @@ -2464,9 +3026,21 @@ msgstr "" msgid "Pagination|« First" msgstr "" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "Passwort" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "" @@ -2548,9 +3122,36 @@ msgstr "Pipelines des letzten Jahres" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2581,6 +3182,9 @@ msgstr "mit Stage" msgid "Pipeline|with stages" msgstr "mit Stages" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2590,6 +3194,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "" @@ -2644,6 +3254,9 @@ msgstr "" msgid "Profiles|your account" msgstr "" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2668,9 +3281,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "Projektdetails" @@ -2767,6 +3377,12 @@ msgstr "" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2779,9 +3395,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "" +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "" +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2794,19 +3422,13 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "" - msgid "PrometheusService|Missing environment variable" msgstr "" -msgid "PrometheusService|Monitored" -msgstr "" - msgid "PrometheusService|More information" msgstr "" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." +msgid "PrometheusService|New metric" msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" @@ -2815,6 +3437,9 @@ msgstr "" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2824,7 +3449,16 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" msgid "Protip:" @@ -2860,6 +3494,9 @@ msgstr "Mehr lesen" msgid "Readme" msgstr "Lies mich" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "Branches" @@ -2893,6 +3530,9 @@ msgstr "Zugehörige Merge Requests" msgid "Related Merged Requests" msgstr "Zugehörige umgesetzte Merge Requests" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "Später erinnern" @@ -2908,12 +3548,24 @@ msgstr "Projekt entfernen" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "Anfrage auf Zugriff" @@ -2929,6 +3581,9 @@ msgstr "Registrierungstoken für Runner zurücksetzen" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2940,9 +3595,36 @@ msgstr "Commit zurücksetzen" msgid "Revert this merge request" msgstr "Merge Request zurücksetzen" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "SSH-Schlüssel" @@ -2958,6 +3640,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "Plane eine neue Pipeline" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "" @@ -2967,6 +3652,9 @@ msgstr "Pipelines planen" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "Suche nach Branches und Tags" @@ -3030,15 +3718,33 @@ msgstr "" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "Lege ein Passwort für dein Konto fest, um mittels %{protocol} zu übertragen (push) oder abzurufen (pull)." +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "Koding einrichten" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "ein Passwort festlegst" @@ -3048,6 +3754,9 @@ msgstr "Einstellungen" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3083,40 +3792,40 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" -msgid "Snippets" +msgid "Sign-in restrictions" msgstr "" -msgid "Something went wrong on our end" +msgid "Sign-up restrictions" msgstr "" -msgid "Something went wrong on our end." +msgid "Size and domain settings for static websites" msgstr "" -msgid "Something went wrong trying to change the confidentiality of this issue" +msgid "Slack application" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" +msgid "Snippets" msgstr "" -msgid "Something went wrong when toggling the button" +msgid "Something went wrong on our end" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong on our end." msgstr "" -msgid "Something went wrong while fetching SAST." +msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while fetching the projects." +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" -msgid "Something went wrong while fetching the registry list." +msgid "Something went wrong while fetching SAST." msgstr "" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" +msgid "Something went wrong while fetching the projects." msgstr "" -msgid "Something went wrong while resolving this discussion. Please try again." +msgid "Something went wrong while fetching the registry list." msgstr "" msgid "Something went wrong. Please try again." @@ -3236,12 +3945,21 @@ msgstr "" msgid "Spam Logs" msgstr "Spam-Protokolle" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "Lege die folgende URL während des Runner Setups fest:" msgid "StarProject|Star" msgstr "Favorisieren" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "" @@ -3251,6 +3969,15 @@ msgstr "Beginne einen %{new_merge_request} mit diesen Änderungen" msgid "Start the Runner!" msgstr "Starte den Runner!" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "" @@ -3263,9 +3990,15 @@ msgstr "" msgid "Switch branch/tag" msgstr "Zu Branch/Tag wechseln" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3346,6 +4079,9 @@ msgstr "" msgid "Target Branch" msgstr "Zielbranch" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "" @@ -3361,15 +4097,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "Die Entwicklungsphase stellt die Zeit vom ersten Commit bis zum Erstellen eines Merge Requests dar. Sobald Du Deinen ersten Merge Request anlegst, werden dessen Daten automatisch ergänzt." msgid "The collection of events added to the data gathered for that stage." msgstr "Ereignisse, die für diese Phase ausgewertet wurden." +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "Die Beziehung des Ablegers wurde entfernt." +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "Die Ticketphase stellt die Zeit vom Anlegen eines Tickets bis zum Zuweisen eines Meilensteins oder Hinzufügen zur Aufgabentafel dar. Erstelle einen Ticket, damit dessen Daten hier erscheinen." @@ -3382,12 +4127,18 @@ msgstr "" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "Die Phase des Entwicklungslebenszyklus." msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "Die Planungsphase stellt die Zeit von der vorherigen Phase bis zum Ãœbertragen des ersten Commits dar. Sobald Du den ersten Commit überträgst, werden dessen Daten hier erscheinen." +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "Die Produktionsphase stellt die Gesamtzeit vom Anlegen eines Tickets bis zur Bereitstellung des Codes auf dem Produktivsystem dar. Sobald Du den vollständigen Entwicklungszyklus, von einer Idee bis zur Fertigstellung, durchlaufen hast, erscheinen die zugehörigen Daten hier." @@ -3403,6 +4154,9 @@ msgstr "Das Repository für das Projekt existiert nicht." msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "Die Ãœberprüfungsphase stellt die Zeit vom Anlegen eines Merge Requests bis dessen Umsetzung dar. Sobald Du Deinen ersten Merge Request abschließt, werden dessen Daten hier automatisch angezeigt." @@ -3439,6 +4193,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "Es gibt ein Problem beim Zugriff auf den Gitspeicher:" +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3511,6 +4268,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3523,6 +4283,12 @@ msgstr "Zeit bis die Implementierung für ein Ticket beginnt" msgid "Time between merge request creation and merge/close" msgstr "Zeit zwischen einem Merge Request und dessen Umsetzung / Schließung" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3680,6 +4446,36 @@ msgstr "" msgid "Title" msgstr "" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3719,18 +4515,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "" @@ -3770,6 +4560,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "Zum Upload klicken" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3779,24 +4575,51 @@ msgstr "Benutze den folgenden Registrierungstoken während des Setups:" msgid "Use your global notification setting" msgstr "Benutze Deine globalen Benachrichtigungseinstellungen" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "" +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "Zeige offene Merge Requests." +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "" +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "Intern" @@ -3824,12 +4647,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "Wiki" @@ -3950,14 +4779,20 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "Du bist dabei %{group_name} zu entfernen. Entfernte Gruppen können NICHT wiederhergestellt werden! Bist Du dir WIRKLICH sicher?" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "Du bist dabei %{project_name_with_namespace} zu entfernen. Entfernte Projekte können NICHT wiederhergestellt werden! Bist Du dir WIRKLICH sicher?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "Du bist dabei, die Beziehung des Ablegers zum Ursprungsprojekt %{forked_from_project}, zu entfernen. Bist Du dir WIRKLICH sicher?" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "Du bist dabei %{project_name_with_namespace} einem andere Besitzer zu übergeben. Bist Du dir WIRKLICH sicher?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." +msgstr "" msgid "You can also create a project from the command line." msgstr "" @@ -4031,9 +4866,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4049,6 +4902,14 @@ msgstr "Dein Name" msgid "Your projects" msgstr "Deine Projekte" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + msgid "assign yourself" msgstr "" @@ -4058,12 +4919,30 @@ msgstr "" msgid "by" msgstr "" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4091,9 +4970,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4106,25 +4982,28 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" @@ -4132,15 +5011,40 @@ msgid_plural "days" msgstr[0] "Tag" msgstr[1] "Tage" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4152,9 +5056,21 @@ msgstr[1] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4167,6 +5083,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4194,18 +5113,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4290,6 +5218,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4328,6 +5259,9 @@ msgstr "" msgid "personal access token" msgstr "" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4337,6 +5271,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "" diff --git a/locale/eo/gitlab.po b/locale/eo/gitlab.po index 2613d719882..009ad31d28b 100644 --- a/locale/eo/gitlab.po +++ b/locale/eo/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:22-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:38-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Esperanto\n" "Language: eo_UY\n" @@ -29,6 +29,11 @@ msgid_plural "%d commits behind" msgstr[0] "" msgstr[1] "" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" +msgstr[1] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" @@ -44,6 +49,11 @@ msgid_plural "%d merge requests" msgstr[0] "" msgstr[1] "" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" +msgstr[1] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "%s enmetado estis transsaltita, por ne troÅarÄi la sistemon." @@ -60,6 +70,9 @@ msgid_plural "%{count} participants" msgstr[0] "" msgstr[1] "" +msgid "%{loadingIcon} Started" +msgstr "" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "" @@ -103,15 +116,30 @@ msgstr "" msgid "2FA enabled" msgstr "" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "Aro da diagramoj pri la seninterrompa integrado" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "Pri la aÅtomata disponigado" msgid "Abuse Reports" msgstr "" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "" @@ -121,6 +149,9 @@ msgstr "" msgid "Account" msgstr "" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "Aktiva" @@ -217,9 +248,33 @@ msgstr "" msgid "All changes are committed" msgstr "" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "" +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + msgid "An error occurred previewing the blob" msgstr "" @@ -298,6 +353,9 @@ msgstr "" msgid "An error occurred. Please try again." msgstr "" +msgid "Any Label" +msgstr "" + msgid "Appearance" msgstr "" @@ -331,6 +389,9 @@ msgstr "" msgid "Artifacts" msgstr "" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "" @@ -343,6 +404,15 @@ msgstr "" msgid "Assign to" msgstr "" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "" @@ -367,6 +437,9 @@ msgstr "" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -409,6 +482,12 @@ msgstr "" msgid "Average per day: %{average}" msgstr "" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "" @@ -492,6 +571,15 @@ msgstr "Iri al branĉo" msgid "Branches" msgstr "Branĉoj" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "" @@ -537,12 +625,39 @@ msgstr "" msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" msgstr "" msgid "Branches|Sort by" msgstr "" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -588,30 +703,45 @@ msgstr "Foliumi dosierojn" msgid "Browse files" msgstr "Elekti dosierojn" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "de" msgid "CI / CD" msgstr "" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" msgstr "" +msgid "CI/CD for external repo" +msgstr "" + msgid "CICD|Jobs" msgstr "" msgid "Cancel" msgstr "Nuligi" -msgid "Cancel edit" +msgid "Cannot be merged automatically" msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "Elekti en branĉon" @@ -666,6 +796,12 @@ msgstr "" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "" +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "" @@ -768,6 +904,15 @@ msgstr "" msgid "Click to expand text" msgstr "" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "" @@ -867,6 +1012,9 @@ msgstr "" msgid "ClusterIntegration|Helm Tiller" msgstr "" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "" @@ -876,6 +1024,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "" @@ -894,6 +1045,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -927,6 +1081,9 @@ msgstr "" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "" @@ -987,6 +1144,9 @@ msgstr "" msgid "ClusterIntegration|Save changes" msgstr "" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1014,6 +1174,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1138,6 +1301,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1153,9 +1322,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "" @@ -1201,6 +1406,12 @@ msgstr "" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "" +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "Gvidlinioj por kontribuado" @@ -1264,8 +1475,8 @@ msgstr "" msgid "Create directory" msgstr "Krei dosierujon" -msgid "Create empty bare repository" -msgstr "Krei malplenan deponejon" +msgid "Create empty repository" +msgstr "" msgid "Create epic" msgstr "" @@ -1273,6 +1484,9 @@ msgstr "" msgid "Create file" msgstr "" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1297,6 +1511,9 @@ msgstr "" msgid "Create new..." msgstr "Krei novan…" +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "Disbranĉigi" @@ -1330,6 +1547,9 @@ msgstr "Propraj sciigaj eventoj" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "La propraj sciigaj niveloj estas la samaj kiel la niveloj de partoprenado. Uzante la proprajn sciigajn nivelojn, vi ricevos ankaÅ sciigojn por elektitaj de vi eventoj. Por lerni pli, bonvolu vidi %{notification_link}." +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "Cikla analizo" @@ -1413,9 +1633,15 @@ msgstr "" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "Ne montru denove" +msgid "Done" +msgstr "" + msgid "Download" msgstr "ElÅuti" @@ -1443,9 +1669,15 @@ msgstr "Normala dosiero kun diferencoj" msgid "DownloadSource|Download" msgstr "ElÅuti" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "Redakti" @@ -1455,6 +1687,18 @@ msgstr "Redakti ĉenstablan planon %{id}" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "" @@ -1464,6 +1708,33 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1524,6 +1795,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1599,9 +1873,15 @@ msgstr "" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1611,6 +1891,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1644,6 +1927,9 @@ msgstr "Dosieroj" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "Filtri per mesaÄo" @@ -1653,12 +1939,21 @@ msgstr "Trovi per dosierindiko" msgid "Find file" msgstr "Trovi dosieron" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "Unue" msgid "FirstPushedBy|pushed by" msgstr "alpuÅita de" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "Disbranĉigo" @@ -1670,9 +1965,15 @@ msgstr "Disbranĉigita el" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "De la kreado de la problemo Äis la disponigado en la publika versio" @@ -1691,12 +1992,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "" +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1742,21 +2049,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1769,9 +2103,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1802,6 +2148,9 @@ msgstr "" msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1811,12 +2160,30 @@ msgstr "" msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "Al via disbranĉigo" @@ -1883,9 +2250,6 @@ msgstr "" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "" @@ -1916,6 +2280,9 @@ msgstr "" msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "" @@ -1934,6 +2301,15 @@ msgstr "" msgid "HealthCheck|Unhealthy" msgstr "" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1945,12 +2321,39 @@ msgstr "" msgid "Housekeeping successfully started" msgstr "La refreÅigo komenciÄis sukcese" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "Enporti deponejon" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "" @@ -1974,6 +2377,9 @@ msgstr[1] "" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2028,6 +2434,9 @@ msgstr "" msgid "June" msgstr "" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2058,12 +2467,30 @@ msgstr "MalÅaltita" msgid "LFSStatus|Enabled" msgstr "Åœaltita" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "La lasta %d tago" @@ -2123,6 +2550,9 @@ msgstr "" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2135,9 +2565,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "" @@ -2153,9 +2580,21 @@ msgstr "" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "" @@ -2177,6 +2616,9 @@ msgstr "Mediano" msgid "Members" msgstr "" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "" @@ -2189,15 +2631,87 @@ msgstr "" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2213,6 +2727,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "aldonos SSH-Ålosilon" @@ -2225,6 +2748,9 @@ msgstr "" msgid "Monitoring" msgstr "" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2299,6 +2825,9 @@ msgstr "" msgid "New tag" msgstr "Nova etikedo" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2317,6 +2846,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "Ne estas deponejo" @@ -2332,6 +2864,12 @@ msgstr "" msgid "Not available" msgstr "Ne disponebla" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2341,6 +2879,18 @@ msgstr "Ne estas sufiĉe da datenoj" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "Sciigaj eventoj" @@ -2425,6 +2975,12 @@ msgstr "" msgid "OfSearchInADropdown|Filter" msgstr "Filtrilo" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "" @@ -2446,12 +3002,18 @@ msgstr "Opcioj" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "" msgid "Owner" msgstr "Posedanto" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "" @@ -2464,9 +3026,21 @@ msgstr "" msgid "Pagination|« First" msgstr "" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "Ĉenstablo" @@ -2548,9 +3122,36 @@ msgstr "" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2581,6 +3182,9 @@ msgstr "kun etapo" msgid "Pipeline|with stages" msgstr "kun etapoj" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2590,6 +3194,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "" @@ -2644,6 +3254,9 @@ msgstr "" msgid "Profiles|your account" msgstr "" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2668,9 +3281,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "" @@ -2767,6 +3377,12 @@ msgstr "" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2779,9 +3395,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "" +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "" +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2794,19 +3422,13 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "" - msgid "PrometheusService|Missing environment variable" msgstr "" -msgid "PrometheusService|Monitored" -msgstr "" - msgid "PrometheusService|More information" msgstr "" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." +msgid "PrometheusService|New metric" msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" @@ -2815,6 +3437,9 @@ msgstr "" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2824,7 +3449,16 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" msgid "Protip:" @@ -2860,6 +3494,9 @@ msgstr "Legu pli" msgid "Readme" msgstr "LeguMin" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "Branĉoj" @@ -2893,6 +3530,9 @@ msgstr "Rilataj petoj pri kunfando" msgid "Related Merged Requests" msgstr "Rilataj aplikitaj petoj pri kunfando" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "Rememorigu denove" @@ -2908,12 +3548,24 @@ msgstr "Forigi la projekton" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "Peti atingeblon" @@ -2929,6 +3581,9 @@ msgstr "" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2940,9 +3595,36 @@ msgstr "Malfari ĉi tiun enmetadon" msgid "Revert this merge request" msgstr "Malfari ĉi tiun peton pri kunfando" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "" @@ -2958,6 +3640,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "Plani novan ĉenstablon" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "" @@ -2967,6 +3652,9 @@ msgstr "Planado de la ĉenstabloj" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "Serĉu branĉon aÅ etikedon" @@ -3030,15 +3718,33 @@ msgstr "" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "Kreu pasvorton por via konto por ebligi al vi eltiri kaj alpuÅi per %{protocol}." +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "Agordi „Koding“" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "kreos pasvorton" @@ -3048,6 +3754,9 @@ msgstr "" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3083,40 +3792,40 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" -msgid "Snippets" +msgid "Sign-in restrictions" msgstr "" -msgid "Something went wrong on our end" +msgid "Sign-up restrictions" msgstr "" -msgid "Something went wrong on our end." +msgid "Size and domain settings for static websites" msgstr "" -msgid "Something went wrong trying to change the confidentiality of this issue" +msgid "Slack application" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" +msgid "Snippets" msgstr "" -msgid "Something went wrong when toggling the button" +msgid "Something went wrong on our end" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong on our end." msgstr "" -msgid "Something went wrong while fetching SAST." +msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while fetching the projects." +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" -msgid "Something went wrong while fetching the registry list." +msgid "Something went wrong while fetching SAST." msgstr "" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" +msgid "Something went wrong while fetching the projects." msgstr "" -msgid "Something went wrong while resolving this discussion. Please try again." +msgid "Something went wrong while fetching the registry list." msgstr "" msgid "Something went wrong. Please try again." @@ -3236,12 +3945,21 @@ msgstr "" msgid "Spam Logs" msgstr "" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "" msgid "StarProject|Star" msgstr "Steligi" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "" @@ -3251,6 +3969,15 @@ msgstr "Kreu %{new_merge_request} kun ĉi tiuj ÅanÄoj" msgid "Start the Runner!" msgstr "" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "" @@ -3263,9 +3990,15 @@ msgstr "" msgid "Switch branch/tag" msgstr "Iri al branĉo/etikedo" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3346,6 +4079,9 @@ msgstr "" msgid "Target Branch" msgstr "Cela branĉo" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "" @@ -3361,15 +4097,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "La etapo de programado montras la tempon de la unua enmetado Äis la kreado de la peto pri kunfando. La datenoj aldoniÄos aÅtomate ĉi tie post kiam vi kreas la unuan peton pri kunfando." msgid "The collection of events added to the data gathered for that stage." msgstr "La aro da eventoj, kiuj estas aldonitaj al la datenoj kolektitaj por la etapo." +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "La rilato de disbranĉigo estis forigita." +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "La etapo de la problemo montras kiom la tempo pasas de la kreado de problemo Äis la atribuado de la problemo al cela etapo de la projekto, aÅ al listo sur la problemtabulo. Komencu krei problemojn por vidi la datenojn por ĉi tiu etapo." @@ -3382,12 +4127,18 @@ msgstr "" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "La etapo de la disvolva ciklo." msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "La etapo de la plano montras la tempon de la antaÅa Åtupo Äis la alpuÅado de via unua enmetado. Ĉi tiu tempo aldoniÄos aÅtomate post kiam vi alpuÅas la unuan enmetadon." +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "La etapo de eldonado montras la tutan tempon de la kreado de problemo Äis la disponigado en la publika versio. La datenoj aldoniÄos aÅtomate post kiam vi kompletigos plenan ciklon de ideo Äis realaĵo." @@ -3403,6 +4154,9 @@ msgstr "La deponejo por ĉi tiu projekto ne ekzistas." msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "La etapo de la kontrolo montras la tempon de la kreado de la peto pri kunfando Äis Äia aplikado. La datenoj aldoniÄos aÅtomate post kiam vi aplikos la unuan peton pri kunfando." @@ -3439,6 +4193,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "" +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3511,6 +4268,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3523,6 +4283,12 @@ msgstr "Tempo antaÅ la komenco de laboro super problemo" msgid "Time between merge request creation and merge/close" msgstr "Tempo inter la kreado de poeto pri kunfando kaj Äia aplikado/fermado" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3680,6 +4446,36 @@ msgstr "" msgid "Title" msgstr "" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3719,18 +4515,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "" @@ -3770,6 +4560,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "alklaku por alÅuti" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3779,24 +4575,51 @@ msgstr "" msgid "Use your global notification setting" msgstr "Uzi vian Äeneralan agordon pri la sciigoj" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "" +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "Vidi la malfermitan peton pri kunfando" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "" +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "Interna" @@ -3824,12 +4647,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "" @@ -3950,14 +4779,20 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "Vi forigos „%{group_name}“. Oni NE POVAS malfari la forigon de grupo! Ĉu vi estas ABSOLUTE certa?" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "Vi forigos „%{project_name_with_namespace}“. Oni NE POVAS malfari la forigon de projekto! Ĉu vi estas ABSOLUTE certa?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "Vi forigos la rilaton de la disbranĉigo al la originala projekto, „%{forked_from_project}“. Ĉu vi estas ABSOLUTE certa?" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "Vi estas transigonta „%{project_name_with_namespace}“ al alia posedanto. Ĉu vi estas ABSOLUTE certa?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." +msgstr "" msgid "You can also create a project from the command line." msgstr "" @@ -4031,9 +4866,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4049,6 +4902,14 @@ msgstr "Via nomo" msgid "Your projects" msgstr "" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + msgid "assign yourself" msgstr "" @@ -4058,12 +4919,30 @@ msgstr "" msgid "by" msgstr "" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4091,9 +4970,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4106,25 +4982,28 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" @@ -4132,15 +5011,40 @@ msgid_plural "days" msgstr[0] "tago" msgstr[1] "tagoj" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4152,9 +5056,21 @@ msgstr[1] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4167,6 +5083,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4194,18 +5113,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4290,6 +5218,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4328,6 +5259,9 @@ msgstr "" msgid "personal access token" msgstr "" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4337,6 +5271,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "" diff --git a/locale/es/gitlab.po b/locale/es/gitlab.po index 76926fd5c64..e2af97f1b83 100644 --- a/locale/es/gitlab.po +++ b/locale/es/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:20-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:35-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -29,6 +29,11 @@ msgid_plural "%d commits behind" msgstr[0] "" msgstr[1] "" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" +msgstr[1] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" @@ -44,6 +49,11 @@ msgid_plural "%d merge requests" msgstr[0] "" msgstr[1] "" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" +msgstr[1] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "%s cambio adicional ha sido omitido para evitar problemas de rendimiento." @@ -60,6 +70,9 @@ msgid_plural "%{count} participants" msgstr[0] "%{count} participante" msgstr[1] "%{count} participantes" +msgid "%{loadingIcon} Started" +msgstr "" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "" @@ -103,15 +116,30 @@ msgstr "¡1ra contribución!" msgid "2FA enabled" msgstr "" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "Una colección de gráficos sobre Integración Continua" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "Acerca del auto despliegue" msgid "Abuse Reports" msgstr "Reportes de abuso" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "Tokens de acceso" @@ -121,6 +149,9 @@ msgstr "" msgid "Account" msgstr "Cuenta" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "Activo" @@ -217,9 +248,33 @@ msgstr "Todos" msgid "All changes are committed" msgstr "" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "" +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + msgid "An error occurred previewing the blob" msgstr "Ha ocurrido un error visualizando el blob" @@ -298,6 +353,9 @@ msgstr "" msgid "An error occurred. Please try again." msgstr "Se produjo un error. Por favor inténtelo de nuevo." +msgid "Any Label" +msgstr "" + msgid "Appearance" msgstr "Apariencia" @@ -331,6 +389,9 @@ msgstr "¿Estás seguro?" msgid "Artifacts" msgstr "Artefactos" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "" @@ -343,6 +404,15 @@ msgstr "Asignar milestone" msgid "Assign to" msgstr "Asignar a" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "Asignado a" @@ -367,6 +437,9 @@ msgstr "Autores: %{authors}" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -409,6 +482,12 @@ msgstr "" msgid "Average per day: %{average}" msgstr "Promedio por dÃa: %{average}" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "Iniciar con el commit seleccionado" @@ -492,6 +571,15 @@ msgstr "Cambiar rama" msgid "Branches" msgstr "Ramas" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "No puedo encontrar el commit HEAD para esta rama" @@ -537,12 +625,39 @@ msgstr "" msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" msgstr "" msgid "Branches|Sort by" msgstr "" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -588,30 +703,45 @@ msgstr "Examinar archivos" msgid "Browse files" msgstr "Examinar archivos" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "por" msgid "CI / CD" msgstr "CI / CD" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" msgstr "Configuración de CI/CD" +msgid "CI/CD for external repo" +msgstr "" + msgid "CICD|Jobs" msgstr "" msgid "Cancel" msgstr "Cancelar" -msgid "Cancel edit" -msgstr "Cancelar edición" +msgid "Cannot be merged automatically" +msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "Cambiar peso" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "Escoger en la rama" @@ -666,6 +796,12 @@ msgstr "Elegir archivo..." msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "Elija qué grupos desea sincronizar a este nodo secundario." +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "Elija qué fragmentos desea sincronizar a este nodo secundario." @@ -768,6 +904,15 @@ msgstr "" msgid "Click to expand text" msgstr "Haga clic para expandir el texto" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "" @@ -867,6 +1012,9 @@ msgstr "Proyecto Google Kubernetes Engine" msgid "ClusterIntegration|Helm Tiller" msgstr "Helm Tiller" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "" @@ -876,6 +1024,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "Instalar" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "Instalado" @@ -894,6 +1045,9 @@ msgstr "cluster de Kubernetes" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "Detalles del cluster de Kubernetes" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "Integración de cluster de Kubernetes" @@ -927,6 +1081,9 @@ msgstr "Conozca más sobre %{link_to_documentation}" msgid "ClusterIntegration|Learn more about environments" msgstr "Conozca más sobre los entornos" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "Tipo de máquina" @@ -987,6 +1144,9 @@ msgstr "Falló la solicitud para iniciar la instalación" msgid "ClusterIntegration|Save changes" msgstr "Guardar cambios" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1014,6 +1174,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "Algo salió mal durante la instalación de %{title}" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1138,6 +1301,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1153,9 +1322,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "Confidencialidad" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "" @@ -1201,6 +1406,12 @@ msgstr "Usar nombres de imagen diferentes" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "" +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "GuÃa de contribución" @@ -1264,8 +1475,8 @@ msgstr "" msgid "Create directory" msgstr "Crear directorio" -msgid "Create empty bare repository" -msgstr "Crear repositorio vacÃo" +msgid "Create empty repository" +msgstr "" msgid "Create epic" msgstr "Crear epic" @@ -1273,6 +1484,9 @@ msgstr "Crear epic" msgid "Create file" msgstr "Crear archivo" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1297,6 +1511,9 @@ msgstr "Crear nueva etiqueta" msgid "Create new..." msgstr "Crear nuevo..." +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "Bifurcar" @@ -1330,6 +1547,9 @@ msgstr "Eventos de notificaciones personalizadas" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "Los niveles de notificación personalizados son los mismos que los niveles participantes. Con los niveles de notificación personalizados, también recibirá notificaciones para eventos seleccionados. Para obtener más información, consulte %{notification_link}." +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "" @@ -1413,9 +1633,15 @@ msgstr "" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "No mostrar de nuevo" +msgid "Done" +msgstr "" + msgid "Download" msgstr "Descargar" @@ -1443,9 +1669,15 @@ msgstr "Diferencias en texto plano" msgid "DownloadSource|Download" msgstr "Descargar" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "Editar" @@ -1455,6 +1687,18 @@ msgstr "Editar Programación del Pipeline %{id}" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "" @@ -1464,6 +1708,33 @@ msgstr "Habilitar" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1524,6 +1795,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1599,9 +1873,15 @@ msgstr "Explorar grupos públicos" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1611,6 +1891,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1644,6 +1927,9 @@ msgstr "Archivos" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "Filtrar por mensaje del cambio" @@ -1653,12 +1939,21 @@ msgstr "Buscar por ruta" msgid "Find file" msgstr "Buscar archivo" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "Primer" msgid "FirstPushedBy|pushed by" msgstr "enviado por" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "Bifurcación" @@ -1670,9 +1965,15 @@ msgstr "Bifurcado de" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "Formato" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "Desde la creación de la incidencia hasta el despliegue a producción" @@ -1691,12 +1992,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "El nodo está fallando o dañado." msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "El nodo está lento, sobrecargado o se esta recuperando de una interrupción." +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1742,21 +2049,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1769,9 +2103,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1802,6 +2148,9 @@ msgstr "Seleccionar grupos a replicar." msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1811,12 +2160,30 @@ msgstr "" msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "Sección GitLab Runner" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "Ir a tu bifurcación" @@ -1883,9 +2250,6 @@ msgstr "No se encuentran grupos" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "Crear un proyecto en este grupo." @@ -1916,6 +2280,9 @@ msgstr "Lo sentimos, no existen grupos ni proyectos que coincidan con su búsque msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "" @@ -1934,6 +2301,15 @@ msgstr "" msgid "HealthCheck|Unhealthy" msgstr "Poco Saludable" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1945,12 +2321,39 @@ msgstr "Historial" msgid "Housekeeping successfully started" msgstr "Servicio de limpieza iniciado con éxito" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "Importar repositorio" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "Mejore los tableros de Incidencias con GitLab Enterprise Edition." @@ -1974,6 +2377,9 @@ msgstr[1] "Instancias" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2028,6 +2434,9 @@ msgstr "" msgid "June" msgstr "Junio" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2058,12 +2467,30 @@ msgstr "Deshabilitado" msgid "LFSStatus|Enabled" msgstr "Habilitado" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "Último %d dÃa" @@ -2123,6 +2550,9 @@ msgstr "Licencia" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2135,9 +2565,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "Bloqueado" @@ -2153,9 +2580,21 @@ msgstr "Iniciar sesión" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "" @@ -2177,6 +2616,9 @@ msgstr "Mediana" msgid "Members" msgstr "Miembros" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "" @@ -2189,15 +2631,87 @@ msgstr "" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "Mensajes" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2213,6 +2727,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "agregar una clave SSH" @@ -2225,6 +2748,9 @@ msgstr "" msgid "Monitoring" msgstr "" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2299,6 +2825,9 @@ msgstr "Nuevo sub-grupo" msgid "New tag" msgstr "Nueva etiqueta" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2317,6 +2846,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "No hay repositorio" @@ -2332,6 +2864,12 @@ msgstr "" msgid "Not available" msgstr "No disponible" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2341,6 +2879,18 @@ msgstr "No hay suficientes datos" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "Eventos de notificación" @@ -2425,6 +2975,12 @@ msgstr "Octubre" msgid "OfSearchInADropdown|Filter" msgstr "Filtrar" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "Sólo los miembros de proyecto pueden comentar." @@ -2446,12 +3002,18 @@ msgstr "Opciones" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "Resumen" msgid "Owner" msgstr "Propietario" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "" @@ -2464,9 +3026,21 @@ msgstr "" msgid "Pagination|« First" msgstr "" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "Contraseña" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "Pipeline" @@ -2548,9 +3122,36 @@ msgstr "" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2581,6 +3182,9 @@ msgstr "con etapa" msgid "Pipeline|with stages" msgstr "con etapas" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2590,6 +3194,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "Preferencias" @@ -2644,6 +3254,9 @@ msgstr "Actualmente su cuenta es propietaria de estos grupos:" msgid "Profiles|your account" msgstr "tu cuenta" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2668,9 +3281,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "Detalles del Proyecto" @@ -2767,6 +3377,12 @@ msgstr "Lo sentimos, no hay proyectos que coincidan con su búsqueda" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "Esta función requiere que el navegador soporte localStorage" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2779,9 +3395,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "De manera predeterminada, Prometheus escucha en 'http://localhost:9090'. No se recomienda cambiar la dirección y el puerto predeterminados, ya que esto podrÃa afectar o entrar en conflicto con otros servicios que se ejecutan en el servidor de GitLab." +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "Encontrar y configurar métricas..." +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2794,20 +3422,14 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "Métricas" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "Las métricas se configuran y supervisan automáticamente en función de una biblioteca de métricas de exportadores populares." - msgid "PrometheusService|Missing environment variable" msgstr "Falta la variable de entorno" -msgid "PrometheusService|Monitored" -msgstr "Monitoreado" - msgid "PrometheusService|More information" msgstr "Más información" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." -msgstr "No se están supervisando las métricas. Para comenzar a monitorear, despliega en un entorno." +msgid "PrometheusService|New metric" +msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" msgstr "URL Base de Prometheus, como http://prometheus.example.com/" @@ -2815,6 +3437,9 @@ msgstr "URL Base de Prometheus, como http://prometheus.example.com/" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2824,8 +3449,17 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" -msgstr "Ver entornos" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" +msgstr "" msgid "Protip:" msgstr "" @@ -2860,6 +3494,9 @@ msgstr "Leer más" msgid "Readme" msgstr "Léeme" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "Ramas" @@ -2893,6 +3530,9 @@ msgstr "Solicitudes de fusión Relacionadas" msgid "Related Merged Requests" msgstr "Solicitudes de fusión Relacionadas" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "Recordar después" @@ -2908,12 +3548,24 @@ msgstr "Eliminar proyecto" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "Repositorio" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "Solicitar acceso" @@ -2929,6 +3581,9 @@ msgstr "Reinicializar el token de registro del runner" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2940,9 +3595,36 @@ msgstr "Revertir este cambio" msgid "Revert this merge request" msgstr "Revertir esta solicitud de fusión" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "Llaves SSH" @@ -2958,6 +3640,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "Programar un nuevo pipeline" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "" @@ -2967,6 +3652,9 @@ msgstr "Programación de Pipelines" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "Buscar ramas y etiquetas" @@ -3030,15 +3718,33 @@ msgstr "Plantillas de Servicio" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "Establezca una contraseña en su cuenta para actualizar o enviar a través de %{protocol}." +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "Configurar Koding" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "establecer una contraseña" @@ -3048,6 +3754,9 @@ msgstr "Configuración" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3083,40 +3792,40 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" -msgid "Snippets" +msgid "Sign-in restrictions" msgstr "" -msgid "Something went wrong on our end" +msgid "Sign-up restrictions" msgstr "" -msgid "Something went wrong on our end." +msgid "Size and domain settings for static websites" msgstr "" -msgid "Something went wrong trying to change the confidentiality of this issue" +msgid "Slack application" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" +msgid "Snippets" msgstr "" -msgid "Something went wrong when toggling the button" +msgid "Something went wrong on our end" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong on our end." msgstr "" -msgid "Something went wrong while fetching SAST." +msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while fetching the projects." +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" -msgid "Something went wrong while fetching the registry list." +msgid "Something went wrong while fetching SAST." msgstr "" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" +msgid "Something went wrong while fetching the projects." msgstr "" -msgid "Something went wrong while resolving this discussion. Please try again." +msgid "Something went wrong while fetching the registry list." msgstr "" msgid "Something went wrong. Please try again." @@ -3236,12 +3945,21 @@ msgstr "" msgid "Spam Logs" msgstr "" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "" msgid "StarProject|Star" msgstr "Destacar" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "Proyectos favoritos" @@ -3251,6 +3969,15 @@ msgstr "Iniciar una %{new_merge_request} con estos cambios" msgid "Start the Runner!" msgstr "" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "Detenido" @@ -3263,9 +3990,15 @@ msgstr "Sub-grupos" msgid "Switch branch/tag" msgstr "Cambiar rama/etiqueta" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "Hooks de sistema" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3346,6 +4079,9 @@ msgstr "" msgid "Target Branch" msgstr "Rama de destino" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "Equipo" @@ -3361,15 +4097,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "La etapa de desarrollo muestra el tiempo desde el primer cambio hasta la creación de la solicitud de fusión. Los datos serán automáticamente incorporados aquà una vez creada tu primera solicitud de fusión." msgid "The collection of events added to the data gathered for that stage." msgstr "La colección de eventos agregados a los datos recopilados para esa etapa." +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "La relación con la bifurcación se ha eliminado." +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "La etapa de incidencia muestra el tiempo que toma desde la creación de un tema hasta asignar el tema a un hito, o añadir el tema a una lista en el panel de temas. Empieza a crear temas para ver los datos de esta etapa." @@ -3382,12 +4127,18 @@ msgstr "" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "La etapa del ciclo de vida de desarrollo." msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "La etapa de planificación muestra el tiempo desde el paso anterior hasta el envÃo de tu primera confirmación. Este tiempo se añadirá automáticamente una vez que usted envÃe el primer cambio." +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "La etapa de producción muestra el tiempo total que tarda entre la creación de una incidencia y el despliegue del código a producción. Los datos se añadirán automáticamente una vez haya finalizado por completo el ciclo de idea a producción." @@ -3403,6 +4154,9 @@ msgstr "El repositorio para este proyecto no existe." msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "La etapa de revisión muestra el tiempo desde la creación de la solicitud de fusión hasta que los cambios se fusionaron. Los datos se añadirán automáticamente después de fusionar su primera solicitud de fusión." @@ -3439,6 +4193,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "" +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3511,6 +4268,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3523,6 +4283,12 @@ msgstr "Tiempo antes de que empieze la implementación de una incidencia" msgid "Time between merge request creation and merge/close" msgstr "Tiempo entre la creación de la solicitud de fusión y la integración o cierre de ésta" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3680,6 +4446,36 @@ msgstr "" msgid "Title" msgstr "TÃtulo" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3719,18 +4515,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "Desbloquear" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "Desbloqueado" @@ -3770,6 +4560,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "Hacer clic para subir" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3779,24 +4575,51 @@ msgstr "" msgid "Use your global notification setting" msgstr "Utiliza tu configuración de notificación global" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "Ver archivo @ " +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "Ver solicitud de fusión abierta" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "Ver archivo reemplazado @ " +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "Interno" @@ -3824,12 +4647,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "Peso" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "Wiki" @@ -3950,14 +4779,20 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "Va a eliminar %{group_name}. ¡El grupo eliminado NO puede ser restaurado! ¿Estás TOTALMENTE seguro?" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "Va a eliminar %{project_name_with_namespace}. ¡El proyecto eliminado NO puede ser restaurado! ¿Estás TOTALMENTE seguro?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "Vas a eliminar el enlace de la bifurcación con el proyecto original %{forked_from_project}. ¿Estás TOTALMENTE seguro?" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "Vas a transferir %{project_name_with_namespace} a otro propietario. ¿Estás TOTALMENTE seguro?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." +msgstr "" msgid "You can also create a project from the command line." msgstr "" @@ -4031,9 +4866,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "La información del cluster de Kubernetes en esta página aún se puede editar, pero se recomienda desactivarla y modificar" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4049,6 +4902,14 @@ msgstr "Tu nombre" msgid "Your projects" msgstr "Tus proyectos" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + msgid "assign yourself" msgstr "" @@ -4058,12 +4919,30 @@ msgstr "nombre de la rama" msgid "by" msgstr "por" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4091,9 +4970,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4106,25 +4982,28 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "commit" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" @@ -4132,15 +5011,40 @@ msgid_plural "days" msgstr[0] "dÃa" msgstr[1] "dÃas" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4152,9 +5056,21 @@ msgstr[1] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4167,6 +5083,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4194,18 +5113,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4290,6 +5218,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4328,6 +5259,9 @@ msgstr "contraseña" msgid "personal access token" msgstr "token de acceso personal" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4337,6 +5271,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "para ayudar a sus colaboradores a comunicarse de manera efectiva!" diff --git a/locale/fil_PH/gitlab.po b/locale/fil_PH/gitlab.po index 1037ec675e9..ed955f68381 100644 --- a/locale/fil_PH/gitlab.po +++ b/locale/fil_PH/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:19-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:34-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Filipino\n" "Language: fil_PH\n" @@ -29,6 +29,11 @@ msgid_plural "%d commits behind" msgstr[0] "" msgstr[1] "" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" +msgstr[1] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" @@ -44,6 +49,11 @@ msgid_plural "%d merge requests" msgstr[0] "" msgstr[1] "" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" +msgstr[1] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "" @@ -60,6 +70,9 @@ msgid_plural "%{count} participants" msgstr[0] "" msgstr[1] "" +msgid "%{loadingIcon} Started" +msgstr "" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "" @@ -103,15 +116,30 @@ msgstr "" msgid "2FA enabled" msgstr "" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "" msgid "Abuse Reports" msgstr "" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "" @@ -121,6 +149,9 @@ msgstr "" msgid "Account" msgstr "" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "" @@ -217,9 +248,33 @@ msgstr "" msgid "All changes are committed" msgstr "" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "" +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + msgid "An error occurred previewing the blob" msgstr "" @@ -298,6 +353,9 @@ msgstr "" msgid "An error occurred. Please try again." msgstr "" +msgid "Any Label" +msgstr "" + msgid "Appearance" msgstr "" @@ -331,6 +389,9 @@ msgstr "" msgid "Artifacts" msgstr "" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "" @@ -343,6 +404,15 @@ msgstr "" msgid "Assign to" msgstr "" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "" @@ -367,6 +437,9 @@ msgstr "" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -409,6 +482,12 @@ msgstr "" msgid "Average per day: %{average}" msgstr "" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "" @@ -492,6 +571,15 @@ msgstr "" msgid "Branches" msgstr "" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "" @@ -537,12 +625,39 @@ msgstr "" msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" msgstr "" msgid "Branches|Sort by" msgstr "" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -588,30 +703,45 @@ msgstr "" msgid "Browse files" msgstr "" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "" msgid "CI / CD" msgstr "" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" msgstr "" +msgid "CI/CD for external repo" +msgstr "" + msgid "CICD|Jobs" msgstr "" msgid "Cancel" msgstr "" -msgid "Cancel edit" +msgid "Cannot be merged automatically" msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "" @@ -666,6 +796,12 @@ msgstr "" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "" +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "" @@ -768,6 +904,15 @@ msgstr "" msgid "Click to expand text" msgstr "" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "" @@ -867,6 +1012,9 @@ msgstr "" msgid "ClusterIntegration|Helm Tiller" msgstr "" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "" @@ -876,6 +1024,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "" @@ -894,6 +1045,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -927,6 +1081,9 @@ msgstr "" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "" @@ -987,6 +1144,9 @@ msgstr "" msgid "ClusterIntegration|Save changes" msgstr "" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1014,6 +1174,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1138,6 +1301,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1153,9 +1322,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "" @@ -1201,6 +1406,12 @@ msgstr "" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "" +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "" @@ -1264,7 +1475,7 @@ msgstr "" msgid "Create directory" msgstr "" -msgid "Create empty bare repository" +msgid "Create empty repository" msgstr "" msgid "Create epic" @@ -1273,6 +1484,9 @@ msgstr "" msgid "Create file" msgstr "" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1297,6 +1511,9 @@ msgstr "" msgid "Create new..." msgstr "" +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "" @@ -1330,6 +1547,9 @@ msgstr "" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "" +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "" @@ -1413,9 +1633,15 @@ msgstr "" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "" +msgid "Done" +msgstr "" + msgid "Download" msgstr "" @@ -1443,9 +1669,15 @@ msgstr "" msgid "DownloadSource|Download" msgstr "" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "" @@ -1455,6 +1687,18 @@ msgstr "" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "" @@ -1464,6 +1708,33 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1524,6 +1795,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1599,9 +1873,15 @@ msgstr "" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1611,6 +1891,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1644,6 +1927,9 @@ msgstr "" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "" @@ -1653,12 +1939,21 @@ msgstr "" msgid "Find file" msgstr "" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "" msgid "FirstPushedBy|pushed by" msgstr "" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "" @@ -1670,9 +1965,15 @@ msgstr "" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "" @@ -1691,12 +1992,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "" +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1742,21 +2049,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1769,9 +2103,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1802,6 +2148,9 @@ msgstr "" msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1811,12 +2160,30 @@ msgstr "" msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "" @@ -1883,9 +2250,6 @@ msgstr "" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "" @@ -1916,6 +2280,9 @@ msgstr "" msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "" @@ -1934,6 +2301,15 @@ msgstr "" msgid "HealthCheck|Unhealthy" msgstr "" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1945,12 +2321,39 @@ msgstr "" msgid "Housekeeping successfully started" msgstr "" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "" @@ -1974,6 +2377,9 @@ msgstr[1] "" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2028,6 +2434,9 @@ msgstr "" msgid "June" msgstr "" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2058,12 +2467,30 @@ msgstr "" msgid "LFSStatus|Enabled" msgstr "" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "" @@ -2123,6 +2550,9 @@ msgstr "" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2135,9 +2565,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "" @@ -2153,9 +2580,21 @@ msgstr "" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "" @@ -2177,6 +2616,9 @@ msgstr "" msgid "Members" msgstr "" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "" @@ -2189,15 +2631,87 @@ msgstr "" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2213,6 +2727,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "" @@ -2225,6 +2748,9 @@ msgstr "" msgid "Monitoring" msgstr "" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2299,6 +2825,9 @@ msgstr "" msgid "New tag" msgstr "" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2317,6 +2846,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "" @@ -2332,6 +2864,12 @@ msgstr "" msgid "Not available" msgstr "" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2341,6 +2879,18 @@ msgstr "" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "" @@ -2425,6 +2975,12 @@ msgstr "" msgid "OfSearchInADropdown|Filter" msgstr "" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "" @@ -2446,12 +3002,18 @@ msgstr "" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "" msgid "Owner" msgstr "" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "" @@ -2464,9 +3026,21 @@ msgstr "" msgid "Pagination|« First" msgstr "" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "" @@ -2548,9 +3122,36 @@ msgstr "" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2581,6 +3182,9 @@ msgstr "" msgid "Pipeline|with stages" msgstr "" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2590,6 +3194,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "" @@ -2644,6 +3254,9 @@ msgstr "" msgid "Profiles|your account" msgstr "" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2668,9 +3281,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "" @@ -2767,6 +3377,12 @@ msgstr "" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2779,9 +3395,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "" +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "" +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2794,19 +3422,13 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "" - msgid "PrometheusService|Missing environment variable" msgstr "" -msgid "PrometheusService|Monitored" -msgstr "" - msgid "PrometheusService|More information" msgstr "" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." +msgid "PrometheusService|New metric" msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" @@ -2815,6 +3437,9 @@ msgstr "" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2824,7 +3449,16 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" msgid "Protip:" @@ -2860,6 +3494,9 @@ msgstr "" msgid "Readme" msgstr "" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "" @@ -2893,6 +3530,9 @@ msgstr "" msgid "Related Merged Requests" msgstr "" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "" @@ -2908,12 +3548,24 @@ msgstr "" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "" @@ -2929,6 +3581,9 @@ msgstr "" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2940,9 +3595,36 @@ msgstr "" msgid "Revert this merge request" msgstr "" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "" @@ -2958,6 +3640,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "" @@ -2967,6 +3652,9 @@ msgstr "" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "" @@ -3030,15 +3718,33 @@ msgstr "" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "" +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "" @@ -3048,6 +3754,9 @@ msgstr "" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3083,40 +3792,40 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" -msgid "Snippets" +msgid "Sign-in restrictions" msgstr "" -msgid "Something went wrong on our end" +msgid "Sign-up restrictions" msgstr "" -msgid "Something went wrong on our end." +msgid "Size and domain settings for static websites" msgstr "" -msgid "Something went wrong trying to change the confidentiality of this issue" +msgid "Slack application" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" +msgid "Snippets" msgstr "" -msgid "Something went wrong when toggling the button" +msgid "Something went wrong on our end" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong on our end." msgstr "" -msgid "Something went wrong while fetching SAST." +msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while fetching the projects." +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" -msgid "Something went wrong while fetching the registry list." +msgid "Something went wrong while fetching SAST." msgstr "" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" +msgid "Something went wrong while fetching the projects." msgstr "" -msgid "Something went wrong while resolving this discussion. Please try again." +msgid "Something went wrong while fetching the registry list." msgstr "" msgid "Something went wrong. Please try again." @@ -3236,12 +3945,21 @@ msgstr "" msgid "Spam Logs" msgstr "" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "" msgid "StarProject|Star" msgstr "" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "" @@ -3251,6 +3969,15 @@ msgstr "" msgid "Start the Runner!" msgstr "" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "" @@ -3263,9 +3990,15 @@ msgstr "" msgid "Switch branch/tag" msgstr "" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3346,6 +4079,9 @@ msgstr "" msgid "Target Branch" msgstr "" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "" @@ -3361,15 +4097,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "" msgid "The collection of events added to the data gathered for that stage." msgstr "" +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "" +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "" @@ -3382,12 +4127,18 @@ msgstr "" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "" msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "" +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "" @@ -3403,6 +4154,9 @@ msgstr "" msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "" @@ -3439,6 +4193,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "" +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3511,6 +4268,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3523,6 +4283,12 @@ msgstr "" msgid "Time between merge request creation and merge/close" msgstr "" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3680,6 +4446,36 @@ msgstr "" msgid "Title" msgstr "" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3719,18 +4515,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "" @@ -3770,6 +4560,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3779,24 +4575,51 @@ msgstr "" msgid "Use your global notification setting" msgstr "" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "" +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "" +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "" @@ -3824,12 +4647,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "" @@ -3950,13 +4779,19 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." msgstr "" msgid "You can also create a project from the command line." @@ -4031,9 +4866,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4049,6 +4902,14 @@ msgstr "" msgid "Your projects" msgstr "" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + msgid "assign yourself" msgstr "" @@ -4058,12 +4919,30 @@ msgstr "" msgid "by" msgstr "" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4091,9 +4970,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4106,25 +4982,28 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" @@ -4132,15 +5011,40 @@ msgid_plural "days" msgstr[0] "" msgstr[1] "" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4152,9 +5056,21 @@ msgstr[1] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4167,6 +5083,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4194,18 +5113,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4290,6 +5218,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4328,6 +5259,9 @@ msgstr "" msgid "personal access token" msgstr "" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4337,6 +5271,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "" diff --git a/locale/fr/gitlab.po b/locale/fr/gitlab.po index 85fe26b83a7..3f30c5c4b87 100644 --- a/locale/fr/gitlab.po +++ b/locale/fr/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 06:24-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:38-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: French\n" "Language: fr_FR\n" @@ -29,6 +29,11 @@ msgid_plural "%d commits behind" msgstr[0] "%d commit de retard" msgstr[1] "%d commits de retard" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "%d exportateur" +msgstr[1] "%d exportateurs" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "%d ticket" @@ -44,6 +49,11 @@ msgid_plural "%d merge requests" msgstr[0] "%d demande de fusion" msgstr[1] "%d demandes de fusion" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "%d métrique" +msgstr[1] "%d métriques" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "%s validation supplémentaire a été masquée afin d'éviter de créer de problèmes de performances." @@ -60,6 +70,9 @@ msgid_plural "%{count} participants" msgstr[0] "%{count} participant•e" msgstr[1] "%{count} participant•e•s" +msgid "%{loadingIcon} Started" +msgstr "%{loadingIcon} Démarré" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "%{lock_path} est verrouillé par l’utilisateur GitLab %{lock_user_id}" @@ -103,15 +116,30 @@ msgstr "1ère contribution !" msgid "2FA enabled" msgstr "2FA activé" +msgid "<strong>Removes</strong> source branch" +msgstr "<strong>Supprime</strong> la branche source" + msgid "A collection of graphs regarding Continuous Integration" msgstr "Un ensemble de graphiques concernant l’Intégration Continue (CI)" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "Une nouvelle branche sera créée dans votre fourche et une nouvelle demande de fusion sera lancée." + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "Un projet est l’endroit où vous hébergez vos fichiers (dépôt), planifiez votre travail (tickets) et publiez votre documentation (wiki), %{among_other_things_link}." + +msgid "A user with write access to the source branch selected this option" +msgstr "Un•e utilisateur•rice avec un accès en écriture à la branche source a sélectionné cette option" + msgid "About auto deploy" msgstr "À propos de l'auto-déploiement" msgid "Abuse Reports" msgstr "Rapports d’abus" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "Jetons d'Accès" @@ -121,6 +149,9 @@ msgstr "L'accès aux stockages défaillants a été temporairement désactivé p msgid "Account" msgstr "Compte" +msgid "Account and limit settings" +msgstr "Paramètres de compte et de limitation" + msgid "Active" msgstr "Actif" @@ -217,9 +248,33 @@ msgstr "Tous" msgid "All changes are committed" msgstr "Toutes les modifications sont validées" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "Toutes les fonctionnalités sont activées pour les projets vierges, à partir de modèles ou lors de l’importation, mais vous pouvez les désactiver ultérieurement dans les paramètres du projet." + +msgid "Allow edits from maintainers." +msgstr "Autoriser les modifications par les mainteneur•se•s." + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "Vous permet d’ajouter et de gérer des clusters Kubernetes." +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "Alternativement, vous pouvez utiliser un %{personal_access_token_link}. Lorsque vous créez votre jeton d’accès, vous devrez sélectionner le champ <code>repo</code>, afin que nous puissions afficher une liste de vos dépôts publics et privés qui sont disponibles pour se connecter." + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "Alternativement, vous pouvez utiliser un %{personal_access_token_link}. Lorsque vous créez votre jeton d’accès, vous devrez sélectionner le champ <code>repo</code>, afin que nous puissions afficher une liste de vos dépôts publics et privés qui sont disponibles pour être importés." + msgid "An error occurred previewing the blob" msgstr "Une erreur s’est produite lors de la prévisualisation du blob" @@ -298,6 +353,9 @@ msgstr "Une erreur s’est produite lors de la validation du nom d’utilisateur msgid "An error occurred. Please try again." msgstr "Une erreur s’est produite. Veuillez réessayer." +msgid "Any Label" +msgstr "Tout label" + msgid "Appearance" msgstr "Apparence" @@ -331,6 +389,9 @@ msgstr "Êtes-vous certain ?" msgid "Artifacts" msgstr "Artéfacts" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "Attribuer une couleur personnalisée comme #FF0000" @@ -343,6 +404,15 @@ msgstr "Attribuer un jalon" msgid "Assign to" msgstr "Assigner à " +msgid "Assigned Issues" +msgstr "Tickets assignés" + +msgid "Assigned Merge Requests" +msgstr "Demandes de fusion assignées" + +msgid "Assigned to :name" +msgstr "Assigné•e à :name" + msgid "Assignee" msgstr "Assigné•e" @@ -367,6 +437,9 @@ msgstr "Auteur•e•s : %{authors}" msgid "Auto DevOps enabled" msgstr "Auto DevOps activé" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "Auto Review Apps et Auto Deploy ont besoin d’un %{kubernetes} qui fonctionne correctement." @@ -409,6 +482,12 @@ msgstr "L’avatar sera supprimé. Êtes-vous sûr•e ?" msgid "Average per day: %{average}" msgstr "Moyenne par jour : %{average}" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "Commencer avec le commit sélectionné" @@ -492,6 +571,15 @@ msgstr "Changer de branche" msgid "Branches" msgstr "Branches" +msgid "Branches|Active" +msgstr "Active" + +msgid "Branches|Active branches" +msgstr "Branches actives" + +msgid "Branches|All" +msgstr "Toutes" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "Impossible de trouver le commit HEAD pour cette branche" @@ -537,12 +625,39 @@ msgstr "Une fois que vous aurez confirmé et cliqué sur %{delete_protected_bran msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "Seulement un maître ou un propriétaire du projet peut supprimer une branche protégée" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" -msgstr "Les branches protégées peuvent être gérées dans %{project_settings_link}" +msgid "Branches|Overview" +msgstr "Vue d’ensemble" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "Les branches protégées peuvent être gérées dans %{project_settings_link}." + +msgid "Branches|Show active branches" +msgstr "Afficher les branches actives" + +msgid "Branches|Show all branches" +msgstr "Afficher toutes les branches" + +msgid "Branches|Show more active branches" +msgstr "Afficher plus de branches actives" + +msgid "Branches|Show more stale branches" +msgstr "Afficher plus de branches périmées" + +msgid "Branches|Show overview of the branches" +msgstr "Afficher l’aperçu des branches" + +msgid "Branches|Show stale branches" +msgstr "Afficher les branches périmées" msgid "Branches|Sort by" msgstr "Trier par" +msgid "Branches|Stale" +msgstr "Périmée" + +msgid "Branches|Stale branches" +msgstr "Branches périmées" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "Cette branche ne peut pas être mise à jour automatiquement car elle a dévié par rapport à son dépôt en amont." @@ -588,30 +703,45 @@ msgstr "Parcourir les fichiers" msgid "Browse files" msgstr "Parcourir les fichiers" +msgid "Business" +msgstr "Entreprise" + msgid "ByAuthor|by" msgstr "par" msgid "CI / CD" msgstr "Intégration continu / Déploiement continu" +msgid "CI/CD" +msgstr "CI/CD" + msgid "CI/CD configuration" msgstr "Configuration CI/CD" +msgid "CI/CD for external repo" +msgstr "CI / CD pour dépôt externe" + msgid "CICD|Jobs" msgstr "Tâches" msgid "Cancel" msgstr "Annuler" -msgid "Cancel edit" -msgstr "Annuler modification" +msgid "Cannot be merged automatically" +msgstr "Ne peut être fusionnée automatiquement" msgid "Cannot modify managed Kubernetes cluster" msgstr "Impossible de modifier le cluster géré par Kubernetes" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "Changer le poids" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "Picorer dans la branche" @@ -666,6 +796,12 @@ msgstr "Choisir le fichier…" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "Choisissez les groupes que vous souhaitez synchroniser avec ce nÅ“ud secondaire." +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "Choisissez à quels dépôts vous voulez connecter et exécuter des pipelines CI/CD." + +msgid "Choose which repositories you want to import." +msgstr "Choisissez les dépôts que vous voulez importer." + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "Choisissez les partitions que vous souhaitez synchroniser avec ce nÅ“ud secondaire." @@ -768,6 +904,15 @@ msgstr "Cliquez sur le bouton ci-dessous pour lancer le processus d’installati msgid "Click to expand text" msgstr "Cliquez pour agrandir le texte" +msgid "Client authentication certificate" +msgstr "Certificat d’authentification du client" + +msgid "Client authentication key" +msgstr "Clé d’authentification du client" + +msgid "Client authentication key password" +msgstr "Mot de passe de la clé d’authentification client" + msgid "Clone repository" msgstr "Cloner le dépôt" @@ -867,6 +1012,9 @@ msgstr "Projet Google Kubernetes Engine" msgid "ClusterIntegration|Helm Tiller" msgstr "Helm Tiller" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "Afin d’afficher l’état du cluster, nous devons mettre votre cluster à disposition de Prometheus pour récupérer les données nécessaires." + msgid "ClusterIntegration|Ingress" msgstr "Ingress" @@ -876,6 +1024,9 @@ msgstr "Adresse IP entrante" msgid "ClusterIntegration|Install" msgstr "Installer" +msgid "ClusterIntegration|Install Prometheus" +msgstr "Installer Prometheus" + msgid "ClusterIntegration|Installed" msgstr "Installé" @@ -894,6 +1045,9 @@ msgstr "Cluster Kubernetes" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "Détails du cluster Kubernetes" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "État du cluster Kubernetes" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "Intégration d’un cluster Kubernetes" @@ -927,6 +1081,9 @@ msgstr "En savoir plus sur %{link_to_documentation}" msgid "ClusterIntegration|Learn more about environments" msgstr "En savoir plus sur les environnements" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "En savoir plus sur la configuration de la sécurité" + msgid "ClusterIntegration|Machine type" msgstr "Type de machine" @@ -987,6 +1144,9 @@ msgstr "La demande de lancement d'installation a échoué" msgid "ClusterIntegration|Save changes" msgstr "Enregistrer les modifications" +msgid "ClusterIntegration|Security" +msgstr "Sécurité" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "Voir et modifier les détails de votre cluster Kubernetes" @@ -1014,6 +1174,9 @@ msgstr "Une erreur s’est produite lors de la création de votre cluster Kubern msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "Une erreur s’est produite lors de l'installation de %{title}" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "La configuration par défaut du cluster permet d’accéder à un large éventail de fonctionnalités nécessaires pour construire et déployer, avec succès, une application conteneurisée." + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "Ce compte doit disposer des autorisations pour créer un cluster Kubernetes dans le %{link_to_container_project} spécifié ci-dessous" @@ -1063,7 +1226,7 @@ msgid "Comment and resolve discussion" msgstr "Commenter et résoudre la discussion" msgid "Comment and unresolve discussion" -msgstr "" +msgstr "Commenter et marquer la discussion comme non résolue" msgid "Comments" msgstr "Commentaires" @@ -1091,7 +1254,7 @@ msgid "Commit statistics for %{ref} %{start_time} - %{end_time}" msgstr "Statistiques des commits pour %{ref} %{start_time} - %{end_time}" msgid "Commit to %{branchName} branch" -msgstr "" +msgstr "Valider dans la branche %{branchName}" msgid "CommitBoxTitle|Commit" msgstr "Commit" @@ -1138,6 +1301,12 @@ msgstr "Comparer les révisions Git" msgid "Compare Revisions" msgstr "Comparer les révisions" +msgid "Compare changes with the last commit" +msgstr "Comparer les changements avec le dernier commit" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "%{source_branch} et %{target_branch} sont identiques." @@ -1153,9 +1322,45 @@ msgstr "Cible" msgid "CompareBranches|There isn't anything to compare." msgstr "Il n’y a rien à comparer." +msgid "Confidential" +msgstr "Confidentiel" + msgid "Confidentiality" msgstr "Confidentialité" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "Configurez la façon dont un•e utilisateur•rice crée un nouveau compte." + +msgid "Connect" +msgstr "Connecter" + +msgid "Connect all repositories" +msgstr "Connecter tous les dépôts" + +msgid "Connect repositories from GitHub" +msgstr "Se connecter à des dépôts à partir de GitHub" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "Connectez vos dépôts externes et les pipelines CI / CD s’exécuteront pour les nouveaux commits. Un projet GitLab sera créé avec uniquement les fonctionnalités CI / CD activées." + +msgid "Connecting..." +msgstr "Connexion en cours…" + msgid "Container Registry" msgstr "Registre de conteneur" @@ -1201,6 +1406,12 @@ msgstr "Utilisez des noms d’images différents" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "Avec le registre de conteneur Docker intégré à GitLab, chaque projet peut avoir son propre espace pour stocker ses images Docker." +msgid "Continuous Integration and Deployment" +msgstr "Intégration et déploiement continus" + +msgid "Contribution" +msgstr "Contribution" + msgid "Contribution guide" msgstr "Guide de contribution" @@ -1264,7 +1475,7 @@ msgstr "Créer une branche" msgid "Create directory" msgstr "Créer un dossier" -msgid "Create empty bare repository" +msgid "Create empty repository" msgstr "Créer un dépôt vide" msgid "Create epic" @@ -1273,6 +1484,9 @@ msgstr "Créer l'épopée" msgid "Create file" msgstr "Créer un fichier" +msgid "Create group label" +msgstr "Créer un label de groupe" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "Créer des listes à partir de labels. Les tickets avec ce label apparaissent dans cette liste." @@ -1297,6 +1511,9 @@ msgstr "Créer un nouveau label" msgid "Create new..." msgstr "Créer nouveau..." +msgid "Create project label" +msgstr "Créer un label de projet" + msgid "CreateNewFork|Fork" msgstr "Fourcher" @@ -1330,6 +1547,9 @@ msgstr "Événements de notification personnalisés" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "Le niveau de notification Personnalisé est similaire au niveau Participation. Cependant, il permet également de recevoir des notifications pour des événements sélectionnés. Pour plus d’information, vous pouvez consulter %{notification_link}." +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "Analyseur de cycle" @@ -1413,9 +1633,15 @@ msgstr "Passer l’introduction Cycle Analytics" msgid "Dismiss Merge Request promotion" msgstr "Rejeter la promotion de la demande de fusion" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "Ne plus montrer" +msgid "Done" +msgstr "Fait" + msgid "Download" msgstr "Télécharger" @@ -1443,9 +1669,15 @@ msgstr "Diff simple" msgid "DownloadSource|Download" msgstr "Télécharger" +msgid "Downvotes" +msgstr "Votes négatifs" + msgid "Due date" msgstr "Date d’échéance" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "Éditer" @@ -1455,6 +1687,18 @@ msgstr "Éditer le pipeline programmé %{id}" msgid "Edit files in the editor and commit changes here" msgstr "Modifier les fichiers dans l'éditeur et valider les modifications ici" +msgid "Editing" +msgstr "En cours de modification" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "Courriels" @@ -1464,6 +1708,33 @@ msgstr "Activer" msgid "Enable Auto DevOps" msgstr "Activer Auto DevOps" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "Activer et configurer les métriques InfluxDB." + +msgid "Enable and configure Prometheus metrics." +msgstr "Activer et configurer les métriques Prometheus." + +msgid "Enable classification control using an external service" +msgstr "Activer le contrôle de classification à l’aide d’un service externe" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "Une erreur s‘est produite lors de la récupération des environnements." @@ -1524,6 +1795,9 @@ msgstr "Feuille de route des épopées" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "Les épopées vous permettent de gérer votre portefeuille de projets plus efficacement et avec moins d'effort" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "Erreur lors de la vérification des données de branche. Veuillez réessayer." @@ -1599,9 +1873,15 @@ msgstr "Explorer les groupes publics" msgid "External Classification Policy Authorization" msgstr "Autorisation de politique de classification externe" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "L’autorisation externe a refusé l’accès à ce projet" +msgid "External authorization request timeout" +msgstr "Expiration de la demande d’autorisation externe" + msgid "ExternalAuthorizationService|Classification Label" msgstr "Label de classification" @@ -1611,8 +1891,11 @@ msgstr "Label de classification" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "Quand aucun label de classification n’est défini, le label par défaut `%{default_label}` sera utilisé." +msgid "Failed" +msgstr "Échec" + msgid "Failed Jobs" -msgstr "Travaux ayant échoué" +msgstr "Tâches ayant échoué" msgid "Failed to change the owner" msgstr "Échec du changement de propriétaire" @@ -1644,6 +1927,9 @@ msgstr "Fichiers" msgid "Files (%{human_size})" msgstr "Fichiers (%{human_size})" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "Filtrer par message de commit" @@ -1653,12 +1939,21 @@ msgstr "Rechercher par chemin" msgid "Find file" msgstr "Rechercher un fichier" +msgid "Finished" +msgstr "Terminé" + msgid "FirstPushedBy|First" msgstr "En premier" msgid "FirstPushedBy|pushed by" msgstr "poussé par" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "Fourche" @@ -1670,9 +1965,15 @@ msgstr "Fourché depuis" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "Fourché depuis %{project_name} (supprimé)" +msgid "Forking in progress" +msgstr "Fourchage en cours" + msgid "Format" msgstr "Format" +msgid "From %{provider_title}" +msgstr "De %{provider_title}" + msgid "From issue creation until deploy to production" msgstr "Depuis la création du ticket jusqu'au déploiement en production" @@ -1691,12 +1992,18 @@ msgstr "Générer un ensemble de labels par défaut" msgid "Geo Nodes" msgstr "NÅ“uds Geo" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "Le nÅ“ud est défaillant ou cassé." msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "Le nÅ“ud est lent, surchargé, ou il vient juste de récupérer après un problème." +msgid "GeoNodes|Checksummed" +msgstr "Vérifié par somme de contrôle" + msgid "GeoNodes|Database replication lag:" msgstr "Retard de réplication de la base de données :" @@ -1742,21 +2049,48 @@ msgstr "Artefacts de tâches locaux :" msgid "GeoNodes|New node" msgstr "Nouveau nÅ“ud" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "Le nÅ“ud d'Authentification a été réparé avec succès." + +msgid "GeoNodes|Node was successfully removed." +msgstr "Le nÅ“ud a été supprimé avec succès." + +msgid "GeoNodes|Not checksummed" +msgstr "Non vérifié par somme de contrôle" + msgid "GeoNodes|Out of sync" msgstr "Désynchronisé" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "Supprimer un nÅ“ud arrête le processus de synchronisation. Êtes-vous sûr•e ?" + msgid "GeoNodes|Replication slot WAL:" msgstr "Emplacement de réplication WAL :" msgid "GeoNodes|Replication slots:" msgstr "Emplacements de réplication :" +msgid "GeoNodes|Repositories checksummed:" +msgstr "Dépôts avec une somme de contrôle calculée:" + msgid "GeoNodes|Repositories:" msgstr "Dépôts :" +msgid "GeoNodes|Repository checksums verified:" +msgstr "Dépôts avec une somme de contrôle vérifiée :" + msgid "GeoNodes|Selective" msgstr "Sélectif" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "Une erreur s’est produite lors du changement de statut du nÅ“ud" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "Une erreur s’est produite lors de la suppression du nÅ“ud" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "Une erreur s’est produite lors de la réparation du nÅ“ud" + msgid "GeoNodes|Storage config:" msgstr "Configuration de stockage :" @@ -1769,9 +2103,21 @@ msgstr "Synchronisé" msgid "GeoNodes|Unused slots" msgstr "Emplacements non utilisés" +msgid "GeoNodes|Unverified" +msgstr "Non vérifié" + msgid "GeoNodes|Used slots" msgstr "Emplacements utilisés" +msgid "GeoNodes|Verified" +msgstr "Vérifié" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "Wiki avec une somme de contrôle vérifiée :" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "Wiki avec une somme de contrôle calculée :" + msgid "GeoNodes|Wikis:" msgstr "Wikis :" @@ -1802,6 +2148,9 @@ msgstr "Sélectionner les groupes à répliquer." msgid "Geo|Shards to synchronize" msgstr "Fragments à synchroniser" +msgid "Git repository URL" +msgstr "URL du dépôt Git" + msgid "Git revision" msgstr "Révision de Git" @@ -1811,12 +2160,30 @@ msgstr "Les informations de santé du stockage Git ont été réinitialisées" msgid "Git version" msgstr "Version de Git" +msgid "GitHub import" +msgstr "Importation de GitHub" + +msgid "GitLab CI Linter has been moved" +msgstr "GitLab CI Linter a été déplacé" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "Section de l'Exécuteur GitLab" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "Serveurs Gitaly" +msgid "Go back" +msgstr "Retour en arrière" + msgid "Go to your fork" msgstr "Aller à votre fourche" @@ -1883,9 +2250,6 @@ msgstr "Aucun groupe trouvé" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "Vous pouvez gérer les autorisations des membres de votre groupe et accéder à chacun de ses projets." -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "Êtes-vous sûr•e de vouloir quitter le groupe \"${group.fullName}\" ?" - msgid "GroupsTree|Create a project in this group." msgstr "Créez un projet dans ce groupe." @@ -1916,6 +2280,9 @@ msgstr "Désolé, aucun groupe ni projet ne correspond à vos critères de reche msgid "Have your users email" msgstr "Lister les emails utilisateurs" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "État des services" @@ -1934,6 +2301,15 @@ msgstr "Aucun problème détecté" msgid "HealthCheck|Unhealthy" msgstr "En mauvaise santé" +msgid "Help" +msgstr "Aide" + +msgid "Help page" +msgstr "Page d’aide" + +msgid "Help page text and support page url." +msgstr "Texte de la page d’aide et URL de la page de support." + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "Masquer la valeur" @@ -1945,12 +2321,39 @@ msgstr "Historique" msgid "Housekeeping successfully started" msgstr "Maintenance démarrée avec succès" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "Si activé, l’accès aux projets sera validé sur un service externe en utilisant leur étiquette de classification." + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "Si vous utilisez GitHub, vous verrez les statuts des pipelines sur GitHub pour vos commit et demandes de fusion. %{more_info_link}" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "Si vous avez déjà des fichiers, vous pouvez les pousser à l’aide de la %{link_to_cli} ci-dessous." +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "Si votre dépôt HTTP n’est pas accessible publiquement, ajoutez des informations d’authentification à l’URL: <code>https: //utilisateur:mot_de_passe@gitlab.company.com/group/project.git</code>." + +msgid "Import" +msgstr "Importer" + +msgid "Import all repositories" +msgstr "Importer tous les dépôts" + +msgid "Import in progress" +msgstr "Importation en cours" + +msgid "Import repositories from GitHub" +msgstr "Importer des dépôts à partir de GitHub" + msgid "Import repository" msgstr "Importer un dépôt" +msgid "ImportButtons|Connect repositories from" +msgstr "Connecter des dépôts à partir de" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "Améliorer les tableaux de tickets avec Gitlab Entreprise Edition." @@ -1974,6 +2377,9 @@ msgstr[1] "Instances" msgid "Instance does not support multiple Kubernetes clusters" msgstr "L’instance ne prend pas en charge plusieurs clusters Kubernetes" +msgid "Integrations" +msgstr "Intégrations" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "Les parties intéressées peuvent même contribuer en poussant des commits si elles le souhaitent." @@ -2028,6 +2434,9 @@ msgstr "Juin" msgid "June" msgstr "Juin" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "Kubernetes" @@ -2058,12 +2467,30 @@ msgstr "Désactivé" msgid "LFSStatus|Enabled" msgstr "Activé" +msgid "Label" +msgstr "Label" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "%{firstLabelName} +%{remainingLabelCount} de plus" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "%{labelsString} et %{remainingLabelCount} de plus" + msgid "Labels" msgstr "Labels" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "Les labels peuvent être appliqués à %{features}. Des labels de groupe sont disponibles pour tout type de projet au sein du groupe." + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "Les labels peuvent être appliqués aux tickets et aux demandes de fusion pour les classer." +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "<span>Promouvoir le label</span> %{labelTitle} <span>en label de groupe ?</span>" + +msgid "Labels|Promote Label" +msgstr "Promouvoir le label" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "Le dernier %d jour" @@ -2123,6 +2550,9 @@ msgstr "Licence" msgid "List" msgstr "Liste" +msgid "List your GitHub repositories" +msgstr "Lister vos dépôts GitHub" + msgid "Loading the GitLab IDE..." msgstr "Chargement de l’IDE GitLab…" @@ -2135,9 +2565,6 @@ msgstr "Verrouiller %{issuableDisplayName}" msgid "Lock not found" msgstr "Verrou non trouvé" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "Verrouiller ce•tte %{issuableDisplayName} ? Seul•e•s les <strong>membres du projet</strong> seront en mesure de commenter." - msgid "Locked" msgstr "Verrouillé" @@ -2153,9 +2580,21 @@ msgstr "Se connecter" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "Rendez votre équipe plus productive quel que soit son emplacement. GitLab Geo crée des miroirs en lecture seule de votre instance GitLab afin que vous puissiez réduire le temps nécessaire pour cloner et récupérer de gros dépôts." +msgid "Manage all notifications" +msgstr "Gérer toutes les notifications" + +msgid "Manage group labels" +msgstr "Gérer les labels de groupe" + msgid "Manage labels" msgstr "Gérer les labels" +msgid "Manage project labels" +msgstr "Gérer les labels de projet" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "Mars" @@ -2177,6 +2616,9 @@ msgstr "Médian" msgid "Members" msgstr "Membres" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "Demandes de fusion" @@ -2189,15 +2631,87 @@ msgstr "Demande de fusion" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "Les demandes de fusion permettent de proposer les modifications que vous avez apportées à un projet et de discuter de ces modifications avec les autres" -msgid "MergeRequest|Approved" -msgstr "Approuvée" - msgid "Merged" msgstr "Fusionnée" msgid "Messages" msgstr "Messages" +msgid "Metrics - Influx" +msgstr "Métriques - Influx" + +msgid "Metrics - Prometheus" +msgstr "Métriques - Prometheus" + +msgid "Metrics|Business" +msgstr "Affaires" + +msgid "Metrics|Create metric" +msgstr "Créer une métrique" + +msgid "Metrics|Edit metric" +msgstr "Modifier la métrique" + +msgid "Metrics|For grouping similar metrics" +msgstr "Pour regrouper des métriques similaires" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "Etiquette de l’axe vertical du graphique. Habituellement, le type de l’unité étant cartographiée. L’axe horizontal (axe X) représente toujours le temps." + +msgid "Metrics|Legend label (optional)" +msgstr "Légende de l’étiquette (facultatif)" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "Doit être une requête PromQL valide." + +msgid "Metrics|Name" +msgstr "Nom" + +msgid "Metrics|New metric" +msgstr "Nouvelle métrique" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "Documentation de requête Prometheus" + +msgid "Metrics|Query" +msgstr "Requête" + +msgid "Metrics|Response" +msgstr "Réponse" + +msgid "Metrics|System" +msgstr "Système" + +msgid "Metrics|Type" +msgstr "Type" + +msgid "Metrics|Unit label" +msgstr "Étiquette de l’unité" + +msgid "Metrics|Used as a title for the chart" +msgstr "Utilisé comme titre pour le graphique" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "Utilisé si la requête renvoie une seule série. Si elle renvoie plusieurs séries, leurs étiquettes de légende seront récupérées à partir de la réponse." + +msgid "Metrics|Y-axis label" +msgstr "Étiquette de l’axe Y" + +msgid "Metrics|e.g. HTTP requests" +msgstr "Par exemple, requêtes HTTP" + +msgid "Metrics|e.g. Requests/second" +msgstr "Par exemple, requêtes / seconde" + +msgid "Metrics|e.g. Throughput" +msgstr "Par exemple, débit" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "Par exemple, rate(http_requests_total[5m])" + +msgid "Metrics|e.g. req/sec" +msgstr "Par exemple, req/sec" + msgid "Milestone" msgstr "Jalon" @@ -2213,6 +2727,15 @@ msgstr "Impossible de supprimer le jalon %{milestoneTitle}" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "Le jalon %{milestoneTitle} est introuvable" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "Promouvoir %{milestoneTitle} à un jalon de groupe ?" + +msgid "Milestones|Promote Milestone" +msgstr "Promouvoir le jalon" + +msgid "Milestones|This action cannot be reversed." +msgstr "Cette action ne peut pas être annulée." + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "ajouter une clé SSH" @@ -2225,6 +2748,9 @@ msgstr "Fermer" msgid "Monitoring" msgstr "Surveillance" +msgid "More info" +msgstr "En savoir plus" + msgid "More information" msgstr "Plus d’informations" @@ -2299,6 +2825,9 @@ msgstr "Nouveau sous-groupe" msgid "New tag" msgstr "Nouveau tag" +msgid "No Label" +msgstr "Pas de label" + msgid "No assignee" msgstr "Aucune personne assignée" @@ -2317,6 +2846,9 @@ msgstr "Aucune estimation ou temps passé" msgid "No file chosen" msgstr "Aucun fichier sélectionné" +msgid "No labels created yet." +msgstr "Aucun label créé pour le moment." + msgid "No repository" msgstr "Pas de dépôt" @@ -2332,6 +2864,12 @@ msgstr "Non autorisé•e à fusionner" msgid "Not available" msgstr "Indisponible" +msgid "Not available for private projects" +msgstr "Non disponible pour les projets privés" + +msgid "Not available for protected branches" +msgstr "Non disponible pour les branches protégées" + msgid "Not confidential" msgstr "Pas confidentiel•le" @@ -2341,6 +2879,18 @@ msgstr "Données insuffisantes" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "Notez que la branche principale est automatiquement protégée. %{link_to_protected_branches}" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "Remarque : En tant qu’administrateur•rice, vous pouvez configurer %{github_integration_link}, ce qui vous permettra de vous connecter via GitHub et de permettre la connexion de dépôts sans générer de jeton d’accès personnel." + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "Remarque : En tant qu’administrateur•rice, vous pouvez configurer %{github_integration_link}, ce qui vous permettra de vous connecter via GitHub et de permettre l’importation de dépôts sans générer de jeton d’accès personnel." + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "Remarque : Envisagez de demander à votre administrateur•rice GitLab de configurer %{github_integration_link}, ce qui vous permettra de vous connecter via GitHub et de permettre la connexion des dépôts sans générer de jeton d’accès personnel." + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "Remarque : Envisagez de demander à votre administrateur•rice GitLab de configurer %{github_integration_link}, ce qui vous permettra de vous connecter via GitHub et d’importer des dépôts sans générer de jeton d’accès personnel." + msgid "Notification events" msgstr "Événement de notifications" @@ -2425,6 +2975,12 @@ msgstr "Octobre" msgid "OfSearchInADropdown|Filter" msgstr "Filtre" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "Une fois importés, les dépôts peuvent être mis en miroir via SSH. Lire plus %{ssh_link}" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "Seuls les membres du projet peuvent commenter." @@ -2446,12 +3002,18 @@ msgstr "Paramètres" msgid "Otherwise it is recommended you start with one of the options below." msgstr "Sinon, il est recommandé de commencer avec l’une des options ci-dessous." +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "Vue d'ensemble" msgid "Owner" msgstr "Propriétaire" +msgid "Pages" +msgstr "Pages" + msgid "Pagination|Last »" msgstr "Dernière »" @@ -2464,9 +3026,21 @@ msgstr "Précédente" msgid "Pagination|« First" msgstr "« Première" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "Mot de Passe" +msgid "Pending" +msgstr "En attente" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "Jeton d’accès personnel" + msgid "Pipeline" msgstr "Pipeline" @@ -2548,9 +3122,36 @@ msgstr "Pipelines de l’année dernière" msgid "Pipelines|Build with confidence" msgstr "Construire en toute confiance" +msgid "Pipelines|CI Lint" +msgstr "CI Lint" + +msgid "Pipelines|Clear Runner Caches" +msgstr "Vider les caches des Exécuteurs" + msgid "Pipelines|Get started with Pipelines" msgstr "Premiers pas avec les Pipelines" +msgid "Pipelines|Loading Pipelines" +msgstr "Chargement des pipelines" + +msgid "Pipelines|Project cache successfully reset." +msgstr "Réinitialisation réussie du cache de projet." + +msgid "Pipelines|Run Pipeline" +msgstr "Éxécuter un pipeline" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "Une erreur s’est produite lors du nettoyage du cache des exécuteurs." + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "Il n’y a actuellement pas de pipelines %{scope}." + +msgid "Pipelines|There are currently no pipelines." +msgstr "Il n’y a actuellement pas de pipelines." + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "Ce projet n’est actuellement pas configuré pour exécuter des pipelines." + msgid "Pipeline|Retry pipeline" msgstr "Relancer le pipeline" @@ -2581,6 +3182,9 @@ msgstr "avec l'étape" msgid "Pipeline|with stages" msgstr "avec les étapes" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "Lancer" @@ -2590,6 +3194,12 @@ msgstr "Merci d’<a href=%{link_to_billing} target=\"_blank\" rel=\"noopener no msgid "Please solve the reCAPTCHA" msgstr "Veuillez résoudre le reCAPTCHA" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "Veuillez patienter pendant que nous nous connectons à votre dépôt. Actualisez à volonté." + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "Veuillez patienter pendant que nous importons le dépôt pour vous. Actualisez à volonté." + msgid "Preferences" msgstr "Préférences" @@ -2644,6 +3254,9 @@ msgstr "Votre compte est actuellement propriétaire des groupes suivants :" msgid "Profiles|your account" msgstr "votre compte" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "Langages de programmation utilisés dans ce dépôt" @@ -2668,9 +3281,6 @@ msgstr "Avatar du projet" msgid "Project avatar in repository: %{link}" msgstr "Avatar du project dans le dépôt : %{link}" -msgid "Project cache successfully reset." -msgstr "Le cache du projet a bien été réinitialisé." - msgid "Project details" msgstr "Détails du projet" @@ -2767,6 +3377,12 @@ msgstr "Désolé, aucun projet ne correspond à votre recherche" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "Cette fonctionnalité requiert le support du localStorage par votre navigateur" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "%{exporters} avec %{metrics} ont été trouvés" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "<p class=\"text-tertiary\">Aucune <a href=\"%{docsUrl}\">métrique commune</a> trouvée</p>" + msgid "PrometheusService|Active" msgstr "Actif" @@ -2779,9 +3395,21 @@ msgstr "Déployer et configurer automatiquement Prometheus sur vos clusters pour msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "Par défaut, Prometheus écoute sur 'http://localhost:9090'. Il n’est pas recommandé de changer l’adresse et le port par défaut car cela pourrait affecter ou entrer en conflit avec d'autres services fonctionnant sur le serveur GitLab." +msgid "PrometheusService|Common metrics" +msgstr "Métriques communes" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "Les métriques communes sont automatiquement surveillées en fonction d’une bibliothèque de métriques provenant d’exportateurs populaires." + +msgid "PrometheusService|Custom metrics" +msgstr "Métriques personnalisés" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "Recherche et configuration des métriques en cours…" +msgid "PrometheusService|Finding custom metrics..." +msgstr "Recherche de métriques personnalisées…" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "Installer Prometheus sur les clusters" @@ -2794,20 +3422,14 @@ msgstr "Configuration manuelle" msgid "PrometheusService|Metrics" msgstr "Métriques" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "Les métriques sont automatiquement configurées et surveillées en fonction d’une bibliothèque de métriques provenant d’exportateurs populaires." - msgid "PrometheusService|Missing environment variable" msgstr "Variable d’environnement manquante" -msgid "PrometheusService|Monitored" -msgstr "Surveillé" - msgid "PrometheusService|More information" msgstr "Plus d’informations" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." -msgstr "Aucune métrique n’est surveillée. Pour démarrer la surveillance, déployez sur un environnement." +msgid "PrometheusService|New metric" +msgstr "Nouvelle métrique" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" msgstr "URL de base de l’API Prometheus, comme http://prometheus.example.com/" @@ -2815,6 +3437,9 @@ msgstr "URL de base de l’API Prometheus, comme http://prometheus.example.com/" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "Prometheus est géré automatiquement sur vos clusters" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "Ces métriques ne seront surveillés qu’après votre premier déploiement dans un environnement" + msgid "PrometheusService|Time-series monitoring service" msgstr "Service de surveillance de séries temporelles" @@ -2824,8 +3449,17 @@ msgstr "Pour activer la configuration manuelle, désinstallez Prometheus de vos msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "Pour activer l’installation de Prometheus sur vos clusters, désactivez la configuration manuelle ci-dessous" -msgid "PrometheusService|View environments" -msgstr "Afficher les environnements" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "En attente de votre premier déploiement dans un environnement pour trouver des métriques communes" + +msgid "Promote" +msgstr "Promouvoir" + +msgid "Promote to Group Label" +msgstr "Promouvoir en label de groupe" + +msgid "Promote to Group Milestone" +msgstr "Promouvoir en jalon de groupe" msgid "Protip:" msgstr "Astuce :" @@ -2860,6 +3494,9 @@ msgstr "Lire plus" msgid "Readme" msgstr "LisezMoi" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "Branches" @@ -2893,6 +3530,9 @@ msgstr "Demandes de fusion liées" msgid "Related Merged Requests" msgstr "Demandes fusionnées liées" +msgid "Related merge requests" +msgstr "Demandes de fusion liées" + msgid "Remind later" msgstr "Me le rappeler ultérieurement" @@ -2908,12 +3548,24 @@ msgstr "Supprimer le projet" msgid "Repair authentication" msgstr "Réparer l’authentification" +msgid "Repo by URL" +msgstr "Dépôt par URL" + msgid "Repository" msgstr "Dépôt" msgid "Repository has no locks." msgstr "Le dépôt n’a pas de verrous." +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "Demander l'accès" @@ -2929,6 +3581,9 @@ msgstr "Réinitialiser le jeton d’inscription des exécuteurs" msgid "Resolve discussion" msgstr "Résoudre la discussion" +msgid "Response" +msgstr "Réponse" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "Révéler la valeur" @@ -2940,9 +3595,36 @@ msgstr "Défaire ce commit" msgid "Revert this merge request" msgstr "Défaire cette demande de fusion" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "Examiner" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "Feuille de route" +msgid "Run CI/CD pipelines for external repositories" +msgstr "Exécuter des pipelines CI / CD pour les dépôts externes" + +msgid "Runners" +msgstr "Exécuteurs" + +msgid "Running" +msgstr "En cours" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "Clés SSH" @@ -2958,6 +3640,9 @@ msgstr "Enregistrer les variables" msgid "Schedule a new pipeline" msgstr "Programmer un nouveau pipeline" +msgid "Scheduled" +msgstr "Planifié" + msgid "Schedules" msgstr "Programmes" @@ -2967,6 +3652,9 @@ msgstr "Programmer des pipelines" msgid "Scoped issue boards" msgstr "Tableaux de tickets avec portée limitée" +msgid "Search" +msgstr "Rechercher" + msgid "Search branches and tags" msgstr "Rechercher dans les branches et les étiquettes" @@ -3030,15 +3718,33 @@ msgstr "Modèles de service" msgid "Service URL" msgstr "URL du service" +msgid "Session expiration, projects limit and attachment size." +msgstr "Expiration de la session, limite des projets et taille des pièces jointes." + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "Définissez un mot de passe pour votre compte pour pouvoir tirer ou pousser par %{protocol}." +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "Définir les valeurs par défaut et limiter les niveaux de visibilité. Configurer les sources d’importation et le protocole d’accès git." + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "Définir les exigences pour la connexion d’un utilisateur. Activer l’authentification obligatoire à deux facteurs." + msgid "Set up CI/CD" msgstr "Configurer CI/CD" msgid "Set up Koding" msgstr "Mettre en place Koding" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "définir un mot de passe" @@ -3048,6 +3754,9 @@ msgstr "Paramètres" msgid "Setup a specific Runner automatically" msgstr "Configurer un Exécuteur spécifique automatiquement" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "En réinitialisant les minutes du pipeline pour cet espace de noms, les minutes actuellement utilisées seront remises à zéro." @@ -3083,6 +3792,18 @@ msgstr "Aucun" msgid "Sidebar|Weight" msgstr "Poids" +msgid "Sign-in restrictions" +msgstr "Restrictions de connexion" + +msgid "Sign-up restrictions" +msgstr "Restrictions d’inscription" + +msgid "Size and domain settings for static websites" +msgstr "Paramètres de taille et de domaine pour les sites web statiques" + +msgid "Slack application" +msgstr "" + msgid "Snippets" msgstr "Extraits de code" @@ -3092,17 +3813,11 @@ msgstr "Une erreur est survenue de notre côté" msgid "Something went wrong on our end." msgstr "Une erreur est survenue de notre côté." -msgid "Something went wrong trying to change the confidentiality of this issue" -msgstr "Quelque chose s’est mal passé en essayant de changer la confidentialité de ce ticket" - -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" -msgstr "Quelque chose ne s‘est pas bien passé en essayant de changer l’état de verrouillage de cette ${this.issuableDisplayName}" - msgid "Something went wrong when toggling the button" msgstr "Une erreur s’est produite lors du basculement du bouton" -msgid "Something went wrong while closing the %{issuable}. Please try again later" -msgstr "Une erreur s’est produite lors de la fermeture du/de la %{issuable}. Veuillez réessayer plus tard" +msgid "Something went wrong while fetching Dependency Scanning." +msgstr "Une erreur s’est produite lors de la recherche des dépendances." msgid "Something went wrong while fetching SAST." msgstr "Une erreur s’est produite lors de la récupération de la SAST." @@ -3113,12 +3828,6 @@ msgstr "Une erreur s'est produite lors de la récupération des projets." msgid "Something went wrong while fetching the registry list." msgstr "Une erreur s'est produite lors de la récupération de la liste du registre." -msgid "Something went wrong while reopening the %{issuable}. Please try again later" -msgstr "Une erreur s’est produite lors de la réouverture du / de la %{issuable}. Veuillez réessayer plus tard" - -msgid "Something went wrong while resolving this discussion. Please try again." -msgstr "" - msgid "Something went wrong. Please try again." msgstr "Quelque chose s’est mal passé. Veuillez réessayer." @@ -3236,12 +3945,21 @@ msgstr "La source n’est pas disponible" msgid "Spam Logs" msgstr "Journaux des messages indésirables" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "Spécifiez l’URL suivante lors de la configuration de l'Exécuteur :" msgid "StarProject|Star" msgstr "Mettre en favori" +msgid "Starred Projects" +msgstr "Projets favoris" + +msgid "Starred Projects' Activity" +msgstr "Activité des projets favoris" + msgid "Starred projects" msgstr "Projets favoris" @@ -3251,6 +3969,15 @@ msgstr "Créer une %{new_merge_request} avec ces changements" msgid "Start the Runner!" msgstr "Démarrer l'Exécuteur !" +msgid "Started" +msgstr "Démarré" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "État" + msgid "Stopped" msgstr "Arrêté" @@ -3263,9 +3990,15 @@ msgstr "Sous-groupes" msgid "Switch branch/tag" msgstr "Changer de branche / tag" +msgid "System" +msgstr "Système" + msgid "System Hooks" msgstr "Crochets système" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "Tag (%{tag_count})" @@ -3346,6 +4079,9 @@ msgstr "protégé" msgid "Target Branch" msgstr "Branche cible" +msgid "Target branch" +msgstr "Branche cible" + msgid "Team" msgstr "Équipe" @@ -3361,15 +4097,24 @@ msgstr "Le suivi des tickets est l’endroit où ajouter des éléments à amél msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "Le suivi des tickets est l’endroit où ajouter des éléments à améliorer ou à résoudre dans un projet. Vous pouvez vous inscrire ou vous connecter pour créer des tickets pour ce projet." +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "Le certificat X509 à utiliser lorsque le protocole TLS est requis pour communiquer avec le service d’autorisation externe. Si ce champ est vide, le certificat du serveur est utilisé lors de l’accès via HTTPS." + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "L’étape de développement montre le temps entre le premier commit et la création de la demande de fusion. Les données seront automatiquement ajoutées ici une fois que vous aurez créé votre première demande de fusion." msgid "The collection of events added to the data gathered for that stage." msgstr "L’ensemble d’évènements ajoutés aux données récupérées pour cette étape." +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "La connexion expirera après %{timeout}. Pour les dépôts qui prennent plus de temps, utilisez une combinaison cloner / pousser." + msgid "The fork relationship has been removed." msgstr "La relation de fourche a été supprimée." +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "L’importation expirera après %{timeout}. Pour les dépôts qui prennent plus de temps, utilisez une combinaison clone / push." + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "L'étape des tickets montre le temps nécessaire entre la création d'un ticket et son assignation à un jalon, ou son ajout à une liste d'un tableau de tickets. Commencez par créer des tickets pour voir des données pour cette étape." @@ -3382,12 +4127,18 @@ msgstr "Le nombre de tentatives que GitLab va effectuer pour accéder au stockag msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "Nombre d’échecs avant que GitLab n’empêche tout accès au stockage. Ce nombre d’échecs peut être réinitialisé dans l’interface d’administration : %{link_to_health_page} ou en suivant le %{api_documentation_link}." +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "La phrase secrète est requise pour déchiffrer la clé privée. Ceci est facultatif et la valeur est cryptée à l’arrêt." + msgid "The phase of the development lifecycle." msgstr "Les étapes du cycle de développement." msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "L’étape de planification montre le temps entre l’étape précédente et l’envoi de votre premier commit. Ce temps sera automatiquement ajouté quand vous pousserez votre premier commit." +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "La clé privée à utiliser lorsqu’un certificat client est fourni. Cette valeur est cryptée à l’arrêt." + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "L’étape de mise en production montre le temps nécessaire entre la création d’un ticket et le déploiement du code en production. Les données seront automatiquement ajoutées une fois que vous aurez complété le cycle complet, depuis l’idée jusqu’à la mise en production." @@ -3403,6 +4154,9 @@ msgstr "Le dépôt pour ce projet n'existe pas." msgid "The repository for this project is empty" msgstr "Le dépôt de ce projet est vide" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "Le dépôt doit être accessible via <code>http://</code>, <code>https://</code> ou <code>git://</code>." + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "L’étape d’évaluation montre le temps entre la création de la demande de fusion et la fusion effective de celle-ci. Ces données seront automatiquement ajoutées après que vous ayez fusionné votre première demande de fusion." @@ -3439,6 +4193,9 @@ msgstr "Il n’y a aucune demande de fusion à afficher" msgid "There are problems accessing Git storage: " msgstr "Il y a des difficultés à accéder aux données Git : " +msgid "There was an error loading results" +msgstr "Une erreur s’est produite lors du chargement des résultats" + msgid "There was an error loading users activity calendar." msgstr "Une erreur s’est produite lors du chargement du calendrier d’activité des utilisateurs." @@ -3511,6 +4268,9 @@ msgstr "Ce projet" msgid "This repository" msgstr "Ce dépôt" +msgid "This will delete the custom metric, Are you sure?" +msgstr "Cela supprimera la métrique personnalisée, êtes-vous sûr•e ?" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "Ces emails deviennent automatiquement des tickets (les commentaires étant extrait de la conversation par email) répertoriés ici." @@ -3523,6 +4283,12 @@ msgstr "Temps avant que la résolution du ticket ne débute" msgid "Time between merge request creation and merge/close" msgstr "Temps entre la création d'une demande de fusion et sa fusion/clôture" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "Temps en secondes où GitLab attendra une réponse du service externe. Si le service ne répond pas à temps, l’accès sera refusé." + msgid "Time tracking" msgstr "Suivi du temps" @@ -3680,6 +4446,36 @@ msgstr "Astuce :" msgid "Title" msgstr "Titre" +msgid "To GitLab" +msgstr "Vers GitLab" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "Pour connecter les dépôts GitHub, vous pouvez utiliser un %{personal_access_token_link}. Lorsque vous créez votre jeton d’accès, vous devrez sélectionner le champ <code>repo</code>, afin que nous puissions afficher une liste de vos dépôts publics et privés qui sont disponibles pour se connecter." + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "Pour connecter les dépôts GitHub, vous devez d’abord autoriser GitLab à accéder à la liste de vos dépôts GitHub :" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "Pour connecter un dépôt SVN, consultez %{svn_link}." + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "Pour importer les dépôts GitHub, vous pouvez utiliser un %{personal_access_token_link}. Lorsque vous créez votre jeton d’accès, vous devrez sélectionner le champ <code>repo</code>, afin que nous puissions afficher une liste de vos dépôts publics et privés qui sont disponibles pour être importés." + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "Pour importer des dépôts GitHub, vous devez d’abord autoriser GitLab à accéder à la liste de vos dépôts GitHub :" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "Pour importer un dépôt SVN, consultez %{svn_link}." + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "Pour utiliser uniquement les fonctionnalités CI / CD pour un dépôt externe, choisissez <strong>CI / CD pour le dépôt externe</strong>." + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "Pour valider vos configurations GitLab CI, allez dans 'CI / CD → Pipelines' dans votre projet, et cliquez sur le bouton 'CI Lint'." + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "Pour afficher la feuille de route, ajoutez une date de début ou de fin planifiée à l’une de vos épopées dans ce groupe ou ses sous-groupes. Seules les épopées des 3 derniers mois et des 3 prochains mois sont affichées." @@ -3719,23 +4515,17 @@ msgstr "Déclencher cette action manuelle" msgid "Turn on Service Desk" msgstr "Activer le Service Desk" -msgid "Unable to reset project cache." -msgstr "Impossible de réinitialiser le cache du projet." - msgid "Unknown" msgstr "Inconnu" msgid "Unlock" msgstr "Déverrouiller" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "Débloquez le•a %{issuableDisplayName} ? <strong>Tout le monde</strong> sera en mesure de commenter." - msgid "Unlocked" msgstr "Déverrouillé" msgid "Unresolve discussion" -msgstr "" +msgstr "Marquer la discussion comme non résolue" msgid "Unstar" msgstr "Supprimer des favoris" @@ -3770,6 +4560,12 @@ msgstr "Importer un nouvel avatar" msgid "UploadLink|click to upload" msgstr "Cliquez pour envoyer" +msgid "Upvotes" +msgstr "Votes positifs" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "Utilisez Service Desk pour intéragir avec vos utilisateurs (par exemple pour offrir un support client) par email directement dans GitLab" @@ -3779,24 +4575,51 @@ msgstr "Utiliser le jeton d’inscription suivant pendant l’installation :" msgid "Use your global notification setting" msgstr "Utiliser vos paramètres de notification globaux" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "Les variables sont appliquées aux environnements via l’exécuteur. Elles peuvent être protégées en les exposant uniquement à des branches ou des tags protégées. Vous pouvez utiliser des variables pour les mots de passe, les clés secrètes ou tout ce que vous voulez." +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "Afficher et modifier les lignes" + msgid "View epics list" msgstr "Afficher la liste des épopées" msgid "View file @ " msgstr "Voir le fichier @ " +msgid "View group labels" +msgstr "Afficher les labels de groupe" + msgid "View labels" msgstr "Afficher les labels" msgid "View open merge request" msgstr "Afficher la demande de fusion" +msgid "View project labels" +msgstr "Afficher les labels de projet" + msgid "View replaced file @ " msgstr "Voir le fichier remplacé @ " +msgid "Visibility and access controls" +msgstr "Contrôles de visibilité et d’accès" + msgid "VisibilityLevel|Internal" msgstr "Interne" @@ -3824,12 +4647,18 @@ msgstr "Nous voulons être sûrs que c'est bien vous, merci de confirmer que vou msgid "Web IDE" msgstr "Web IDE" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "Les webhooks vous permettent d’appeler une URL si, par exemple, du nouveau code est poussé ou un nouveau ticket est créé. Vous pouvez configurer les webhooks pour écouter les événements spécifiques comme des poussées de code, des tickets ou des demandes de fusion. Les webhooks de groupes s’appliqueront à tous les projets dans un groupe, ce qui vous permet de normaliser la fonctionnalité du webhook dans votre groupe entier." msgid "Weight" msgstr "Poids" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "Lorsque vous laissez l’URL vide, les étiquettes de classification peuvent toujours être spécifiées sans désactiver les fonctionnalités inter-projets ou effectuer des vérifications d’autorisation externes." + msgid "Wiki" msgstr "Wiki" @@ -3950,14 +4779,20 @@ msgstr "Écrire un message de commit…" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "Vous êtes sur le point de supprimer %{group_name}. Les groupes supprimés NE PEUVENT PAS être restaurés ! Êtes vous ABSOLUMENT sûr·e ?" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "Vous êtes sur le point de supprimer %{project_name_with_namespace}. Les projets supprimés NE PEUVENT PAS être restaurés ! Êtes vous ABSOLUMENT sûr·e ?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "Vous êtes sur le point de supprimer %{project_full_name}. Les projets supprimés NE PEUVENT PAS être restaurés ! Êtes-vous ABSOLUMENT sûr•e ?" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "Vous allez supprimer la relation de fourche avec le projet source %{forked_from_project}. Êtes-vous ABSOLUMENT sûr·e ?" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "Vous allez transférer %{project_name_with_namespace} à un nouveau propriétaire. Êtes vous ABSOLUMENT sûr·e ?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "Vous allez transférer %{project_full_name} à un•e nouveau•elle propriétaire. Êtes-vous VRAIMENT sûr•e ?" + +msgid "You are on a read-only GitLab instance." +msgstr "Vous êtes sur une instance GitLab en lecture seule." + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." +msgstr "Vous êtes sur un nÅ“ud Geo secondaire (en lecture seule). Si vous voulez apporter des modifications, vous devez visiter le %{primary_node}." msgid "You can also create a project from the command line." msgstr "Vous pouvez également créer un projet en ligne de commande." @@ -4031,9 +4866,27 @@ msgstr "Vous ne pourrez pas récupérer ou pousser de code par SSH tant que vous msgid "You'll need to use different branch names to get a valid comparison." msgstr "Vous devrez utiliser différents noms de branches pour obtenir une comparaison valide." +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "Vous recevez ce courriel en raison de votre compte sur %{host}. %{manage_notifications_link} · %{help_link}" + +msgid "Your Groups" +msgstr "Vos groupes" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "Vos informations de cluster Kubernetes sur cette page sont toujours modifiables, mais il est conseillé de désactiver et reconfigurer" +msgid "Your Projects (default)" +msgstr "Vos projets (défaut)" + +msgid "Your Projects' Activity" +msgstr "Activité de vos projets favoris" + +msgid "Your Todos" +msgstr "Vos tâches à faire" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "Vos modifications peuvent être validées sur %{branch_name} car une demande de fusion est ouverte." + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "Vos modifications ont été validées. Commit %{commitId} %{commitStats}" @@ -4049,6 +4902,14 @@ msgstr "Votre nom" msgid "Your projects" msgstr "Vos projets" +msgid "among other things" +msgstr "entre autres choses" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "et %d vulnérabilité corrigée" +msgstr[1] "et %d vulnérabilités corrigées" + msgid "assign yourself" msgstr "assignez vous" @@ -4058,12 +4919,30 @@ msgstr "nom de la branche" msgid "by" msgstr "par" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "%{type} n’a détecté aucune nouvelle vulnérabilité de sécurité" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "%{type} n’a détecté aucune vulnérabilité de sécurité" + msgid "ciReport|Code quality" msgstr "Qualité du code" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "DAST n’a détecté aucune alerte en analysant l’application de revue" +msgid "ciReport|Dependency scanning" +msgstr "Analyse de dépendance" + +msgid "ciReport|Dependency scanning detected" +msgstr "Analyse de dépendance détectée" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "L’analyse des dépendances n’a détecté aucune nouvelle vulnérabilité de sécurité" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "L’analyse des dépendances n’a détecté aucune vulnérabilité de sécurité" + msgid "ciReport|Failed to load %{reportName} report" msgstr "Impossible de charger le rapport %{reportName}" @@ -4091,9 +4970,6 @@ msgstr "Indicateurs de performance" msgid "ciReport|SAST" msgstr "SAST" -msgid "ciReport|SAST degraded on" -msgstr "SAST dégradée sur" - msgid "ciReport|SAST detected" msgstr "SAST détectée" @@ -4106,41 +4982,69 @@ msgstr "SAST n’a détecté aucune vulnérabilité de sécurité" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "SAST:conteneur aucune vulnérabilité n’a été trouvée" +msgid "ciReport|Security scanning" +msgstr "Analyse de sécurité" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "L’analyse de sécurité n’a pas réussi à charger de résultats" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "Afficher le rapport complet sur les vulnérabilités du code" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "Les vulnérabilités non approuvées (en rouge) peuvent être marquées comme approuvées. %{helpLink}" -msgid "ciReport|no security vulnerabilities" -msgstr "aucune vulnérabilité de sécurité" +msgid "ciReport|no vulnerabilities" +msgstr "aucune vulnérabilité" msgid "command line instructions" msgstr "instructions en ligne de commande" -msgid "commit" -msgstr "validation" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." -msgstr "Vous allez désactiver la confidentialité. Cela signifie que <strong>tout le monde</strong> sera en mesure de voir et de laisser un commentaire sur ce ticket." +msgid "connecting" +msgstr "connexion en cours" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." -msgstr "Vous allez activer la confidentialité. Cela signifie que seuls les membres de l’équipe avec <strong>au moins un accès Reporter</strong> sont capables de voir et de laisser des commentaires sur le ticket." +msgid "could not read private key, is the passphrase correct?" +msgstr "impossible de lire la clé privée, la phrase secrète est-elle correcte ?" msgid "day" msgid_plural "days" msgstr[0] "jour" msgstr[1] "jours" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "a détecté %d vulnérabilité corrigée" +msgstr[1] "a détecté %d vulnérabilités corrigées" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "a détecté %d nouvelle vulnérabilité" +msgstr[1] "a détecté %d nouvelle vulnérabilité" + +msgid "detected no vulnerabilities" +msgstr "n’a détecté aucune vulnérabilité" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "%{slash_command} mettra à jour la durée estimée avec la dernière commande." +msgid "here" +msgstr "ici" + +msgid "importing" +msgstr "importation en cours" + +msgid "in progress" +msgstr "en cours" + msgid "is invalid because there is downstream lock" msgstr "est invalide car il y a un verrou en aval" msgid "is invalid because there is upstream lock" msgstr "est invalide car il y a un verrou en amont" +msgid "is not a valid X509 certificate." +msgstr "n’est pas un certificat X509 valide." + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "verrouillé par %{path_lock_user_name} %{created_at}" @@ -4152,9 +5056,21 @@ msgstr[1] "demandes de fusion" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "Veuillez la restaurer ou utiliser une autre branche %{missingBranchName}" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "%{metricsLinkStart}L’usage mémoire%{metricsLinkEnd} %{emphasisStart}a diminué%{emphasisEnd} de %{memoryFrom}MO à %{memoryTo}MO" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "%{metricsLinkStart}L’usage mémoire%{metricsLinkEnd} %{emphasisStart}a augmenté%{emphasisEnd} de %{memoryFrom}MO à %{memoryTo}MO" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "%{metricsLinkStart}L’usage mémoire%{metricsLinkEnd} %{emphasisStart}est resté stable%{emphasisEnd} à %{memoryFrom}MO" + msgid "mrWidget|Add approval" msgstr "Ajouter une approbation" +msgid "mrWidget|Allows edits from maintainers" +msgstr "Autoriser les modifications par les mainteneurs" + msgid "mrWidget|An error occured while removing your approval." msgstr "Une erreur est survenue lors de la suppression de votre approbation." @@ -4167,6 +5083,9 @@ msgstr "Une erreur est survenue pendant l’envoi de votre approbation." msgid "mrWidget|Approve" msgstr "Approuver" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "Approuvée par" @@ -4194,18 +5113,27 @@ msgstr "Fermée par" msgid "mrWidget|Closes" msgstr "Résout" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "Les statistiques de déploiement ne sont pas disponibles pour le moment" + msgid "mrWidget|Did not close" msgstr "N’a pas résolu" msgid "mrWidget|Email patches" msgstr "Patchs par courriel" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "Impossible de charger les statistiques de déploiement" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "Si la branche %{branch} existe dans votre dépôt local, vous pouvez fusionner cette demande de fusion manuellement à l’aide de" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "Si la branche %{missingBranchName} existe dans votre dépôt local, vous pouvez fusionner cette demande de fusion manuellement en ligne de commande" +msgid "mrWidget|Loading deployment statistics" +msgstr "mrWidget | Chargement des statistiques de déploiement" + msgid "mrWidget|Mentions" msgstr "Mentionne" @@ -4243,7 +5171,7 @@ msgid "mrWidget|Remove your approval" msgstr "Supprimer votre approbation" msgid "mrWidget|Request to merge" -msgstr "Demander la fusion" +msgstr "Demande de fusion de" msgid "mrWidget|Resolve conflicts" msgstr "Résoudre les conflits" @@ -4290,6 +5218,9 @@ msgstr "Cette demande de fusion est en cours de fusion" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "Ce projet est archivé, l’accès en écriture a été désactivé" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "Vous pouvez fusionner cette demande de fusion manuellement à l’aide de la" @@ -4328,6 +5259,9 @@ msgstr "mot de passe" msgid "personal access token" msgstr "jeton d’accès personnel" +msgid "private key does not match certificate." +msgstr "clé privée ne correspond pas au certificat." + msgid "remove due date" msgstr "supprimer la date d’échéance" @@ -4337,6 +5271,9 @@ msgstr "source" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "%{slash_command} mettra à jour la somme du temps passé." +msgid "this document" +msgstr "ce document" + msgid "to help your contributors communicate effectively!" msgstr "pour aider vos contributeurs à communiquer efficacement !" diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 68d0c0c8854..d7eb123b48b 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab 1.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-27 14:40+0300\n" -"PO-Revision-Date: 2018-03-27 14:40+0300\n" +"POT-Creation-Date: 2018-04-04 18:02+0200\n" +"PO-Revision-Date: 2018-04-04 18:02+0200\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "Language: \n" @@ -133,6 +133,9 @@ msgstr "" msgid "Abuse Reports" msgstr "" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "" @@ -142,6 +145,9 @@ msgstr "" msgid "Account" msgstr "" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "" @@ -235,6 +241,9 @@ msgstr "" msgid "Allow edits from maintainers." msgstr "" +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "" @@ -343,6 +352,12 @@ msgstr "" msgid "Assign to" msgstr "" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + msgid "Assigned to :name" msgstr "" @@ -370,6 +385,9 @@ msgstr "" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -412,6 +430,9 @@ msgstr "" msgid "Average per day: %{average}" msgstr "" +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "" @@ -1102,6 +1123,9 @@ msgstr "" msgid "Compare changes with the last commit" msgstr "" +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1123,6 +1147,21 @@ msgstr "" msgid "Confidentiality" msgstr "" +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + msgid "Connect" msgstr "" @@ -1174,6 +1213,9 @@ msgstr "" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "" +msgid "Continuous Integration and Deployment" +msgstr "" + msgid "Contribution" msgstr "" @@ -1419,6 +1461,21 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1467,6 +1524,9 @@ msgstr "" msgid "Environments|You don't have any environments right now." msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1637,6 +1697,9 @@ msgstr "" msgid "GitHub import" msgstr "" +msgid "GitLab CI Linter has been moved" +msgstr "" + msgid "GitLab Runner section" msgstr "" @@ -1742,6 +1805,12 @@ msgstr "" msgid "Help" msgstr "" +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1879,10 +1948,10 @@ msgstr "" msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" -msgid "Labels|Promote Label" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" msgstr "" -msgid "Labels|Promote label %{labelTitle} to Group Label?" +msgid "Labels|Promote Label" msgstr "" msgid "Last %d day" @@ -1950,9 +2019,6 @@ msgstr "" msgid "Lock %{issuableDisplayName}" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "" @@ -2010,6 +2076,12 @@ msgstr "" msgid "Messages" msgstr "" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + msgid "Milestone" msgstr "" @@ -2264,12 +2336,18 @@ msgstr "" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "" msgid "Owner" msgstr "" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "" @@ -2282,6 +2360,9 @@ msgstr "" msgid "Pagination|« First" msgstr "" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "" @@ -2492,6 +2573,9 @@ msgstr "" msgid "Profiles|your account" msgstr "" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2723,6 +2807,12 @@ msgstr "" msgid "Repository" msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "" @@ -2752,6 +2842,9 @@ msgstr "" msgid "Reviewing" msgstr "" +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Runners" msgstr "" @@ -2839,9 +2932,21 @@ msgstr "" msgid "Service Templates" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "" +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" @@ -2871,19 +2976,22 @@ msgid_plural "Showing %d events" msgstr[0] "" msgstr[1] "" -msgid "Snippets" +msgid "Sign-in restrictions" msgstr "" -msgid "Something went wrong on our end" +msgid "Sign-up restrictions" msgstr "" -msgid "Something went wrong on our end." +msgid "Size and domain settings for static websites" +msgstr "" + +msgid "Snippets" msgstr "" -msgid "Something went wrong trying to change the confidentiality of this issue" +msgid "Something went wrong on our end" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" +msgid "Something went wrong on our end." msgstr "" msgid "Something went wrong when toggling the button" @@ -3003,12 +3111,21 @@ msgstr "" msgid "Spam Logs" msgstr "" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "" msgid "StarProject|Star" msgstr "" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "" @@ -3456,6 +3573,9 @@ msgstr "" msgid "To import an SVN repository, check out %{svn_link}." msgstr "" +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "Todo" msgstr "" @@ -3486,9 +3606,6 @@ msgstr "" msgid "Unlock" msgstr "" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "" @@ -3522,6 +3639,9 @@ msgstr "" msgid "Use your global notification setting" msgstr "" +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" @@ -3546,6 +3666,9 @@ msgstr "" msgid "View replaced file @ " msgstr "" +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "" @@ -3762,9 +3885,21 @@ msgstr "" msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" msgstr "" +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + msgid "Your changes can be committed to %{branch_name} because a merge request is open." msgstr "" @@ -3795,12 +3930,6 @@ msgstr "" msgid "command line instructions" msgstr "" -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." -msgstr "" - -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." -msgstr "" - msgid "connecting" msgstr "" @@ -3823,6 +3952,15 @@ msgstr[1] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Allows edits from maintainers" msgstr "" @@ -3850,18 +3988,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -3943,6 +4090,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" diff --git a/locale/id_ID/gitlab.po b/locale/id_ID/gitlab.po index 183cb996b0a..adb9746e854 100644 --- a/locale/id_ID/gitlab.po +++ b/locale/id_ID/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:23-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:39-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -27,6 +27,10 @@ msgid "%d commit behind" msgid_plural "%d commits behind" msgstr[0] "" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" @@ -39,6 +43,10 @@ msgid "%d merge request" msgid_plural "%d merge requests" msgstr[0] "" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "" @@ -53,6 +61,9 @@ msgid "%{count} participant" msgid_plural "%{count} participants" msgstr[0] "" +msgid "%{loadingIcon} Started" +msgstr "" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "" @@ -94,15 +105,30 @@ msgstr "" msgid "2FA enabled" msgstr "" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "" msgid "Abuse Reports" msgstr "" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "" @@ -112,6 +138,9 @@ msgstr "" msgid "Account" msgstr "" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "" @@ -208,9 +237,33 @@ msgstr "" msgid "All changes are committed" msgstr "" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "" +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + msgid "An error occurred previewing the blob" msgstr "" @@ -289,6 +342,9 @@ msgstr "" msgid "An error occurred. Please try again." msgstr "" +msgid "Any Label" +msgstr "" + msgid "Appearance" msgstr "" @@ -322,6 +378,9 @@ msgstr "" msgid "Artifacts" msgstr "" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "" @@ -334,6 +393,15 @@ msgstr "" msgid "Assign to" msgstr "" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "" @@ -358,6 +426,9 @@ msgstr "" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -400,6 +471,12 @@ msgstr "" msgid "Average per day: %{average}" msgstr "" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "" @@ -482,6 +559,15 @@ msgstr "" msgid "Branches" msgstr "" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "" @@ -527,12 +613,39 @@ msgstr "" msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" msgstr "" msgid "Branches|Sort by" msgstr "" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -578,30 +691,45 @@ msgstr "" msgid "Browse files" msgstr "" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "" msgid "CI / CD" msgstr "" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" msgstr "" +msgid "CI/CD for external repo" +msgstr "" + msgid "CICD|Jobs" msgstr "" msgid "Cancel" msgstr "" -msgid "Cancel edit" +msgid "Cannot be merged automatically" msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "" @@ -656,6 +784,12 @@ msgstr "" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "" +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "" @@ -758,6 +892,15 @@ msgstr "" msgid "Click to expand text" msgstr "" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "" @@ -857,6 +1000,9 @@ msgstr "" msgid "ClusterIntegration|Helm Tiller" msgstr "" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "" @@ -866,6 +1012,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "" @@ -884,6 +1033,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -917,6 +1069,9 @@ msgstr "" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "" @@ -977,6 +1132,9 @@ msgstr "" msgid "ClusterIntegration|Save changes" msgstr "" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1004,6 +1162,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1126,6 +1287,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1141,9 +1308,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "" @@ -1189,6 +1392,12 @@ msgstr "" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "" +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "" @@ -1252,7 +1461,7 @@ msgstr "" msgid "Create directory" msgstr "" -msgid "Create empty bare repository" +msgid "Create empty repository" msgstr "" msgid "Create epic" @@ -1261,6 +1470,9 @@ msgstr "" msgid "Create file" msgstr "" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1285,6 +1497,9 @@ msgstr "" msgid "Create new..." msgstr "" +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "" @@ -1318,6 +1533,9 @@ msgstr "" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "" +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "" @@ -1400,9 +1618,15 @@ msgstr "" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "" +msgid "Done" +msgstr "" + msgid "Download" msgstr "" @@ -1430,9 +1654,15 @@ msgstr "" msgid "DownloadSource|Download" msgstr "" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "" @@ -1442,6 +1672,18 @@ msgstr "" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "" @@ -1451,6 +1693,33 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1511,6 +1780,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1586,9 +1858,15 @@ msgstr "" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1598,6 +1876,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1631,6 +1912,9 @@ msgstr "" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "" @@ -1640,12 +1924,21 @@ msgstr "" msgid "Find file" msgstr "" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "" msgid "FirstPushedBy|pushed by" msgstr "" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "" @@ -1656,9 +1949,15 @@ msgstr "" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "" @@ -1677,12 +1976,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "" +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1728,21 +2033,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1755,9 +2087,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1788,6 +2132,9 @@ msgstr "" msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1797,12 +2144,30 @@ msgstr "" msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "" @@ -1869,9 +2234,6 @@ msgstr "" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "" @@ -1902,6 +2264,9 @@ msgstr "" msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "" @@ -1920,6 +2285,15 @@ msgstr "" msgid "HealthCheck|Unhealthy" msgstr "" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1930,12 +2304,39 @@ msgstr "" msgid "Housekeeping successfully started" msgstr "" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "" @@ -1958,6 +2359,9 @@ msgstr[0] "" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2012,6 +2416,9 @@ msgstr "" msgid "June" msgstr "" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2042,12 +2449,30 @@ msgstr "" msgid "LFSStatus|Enabled" msgstr "" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "" @@ -2106,6 +2531,9 @@ msgstr "" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2118,9 +2546,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "" @@ -2136,9 +2561,21 @@ msgstr "" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "" @@ -2160,6 +2597,9 @@ msgstr "" msgid "Members" msgstr "" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "" @@ -2172,15 +2612,87 @@ msgstr "" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2196,6 +2708,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "" @@ -2208,6 +2729,9 @@ msgstr "" msgid "Monitoring" msgstr "" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2281,6 +2805,9 @@ msgstr "" msgid "New tag" msgstr "" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2299,6 +2826,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "" @@ -2314,6 +2844,12 @@ msgstr "" msgid "Not available" msgstr "" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2323,6 +2859,18 @@ msgstr "" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "" @@ -2407,6 +2955,12 @@ msgstr "" msgid "OfSearchInADropdown|Filter" msgstr "" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "" @@ -2428,12 +2982,18 @@ msgstr "" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "" msgid "Owner" msgstr "" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "" @@ -2446,9 +3006,21 @@ msgstr "" msgid "Pagination|« First" msgstr "" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "" @@ -2530,9 +3102,36 @@ msgstr "" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2563,6 +3162,9 @@ msgstr "" msgid "Pipeline|with stages" msgstr "" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2572,6 +3174,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "" @@ -2626,6 +3234,9 @@ msgstr "" msgid "Profiles|your account" msgstr "" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2650,9 +3261,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "" @@ -2749,6 +3357,12 @@ msgstr "" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2761,9 +3375,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "" +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "" +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2776,19 +3402,13 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "" - msgid "PrometheusService|Missing environment variable" msgstr "" -msgid "PrometheusService|Monitored" -msgstr "" - msgid "PrometheusService|More information" msgstr "" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." +msgid "PrometheusService|New metric" msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" @@ -2797,6 +3417,9 @@ msgstr "" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2806,7 +3429,16 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" msgid "Protip:" @@ -2842,6 +3474,9 @@ msgstr "" msgid "Readme" msgstr "" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "" @@ -2875,6 +3510,9 @@ msgstr "" msgid "Related Merged Requests" msgstr "" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "" @@ -2890,12 +3528,24 @@ msgstr "" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "" @@ -2911,6 +3561,9 @@ msgstr "" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2921,9 +3574,36 @@ msgstr "" msgid "Revert this merge request" msgstr "" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "" @@ -2939,6 +3619,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "" @@ -2948,6 +3631,9 @@ msgstr "" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "" @@ -3011,15 +3697,33 @@ msgstr "" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "" +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "" @@ -3029,6 +3733,9 @@ msgstr "" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3063,40 +3770,40 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" -msgid "Snippets" +msgid "Sign-in restrictions" msgstr "" -msgid "Something went wrong on our end" +msgid "Sign-up restrictions" msgstr "" -msgid "Something went wrong on our end." +msgid "Size and domain settings for static websites" msgstr "" -msgid "Something went wrong trying to change the confidentiality of this issue" +msgid "Slack application" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" +msgid "Snippets" msgstr "" -msgid "Something went wrong when toggling the button" +msgid "Something went wrong on our end" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong on our end." msgstr "" -msgid "Something went wrong while fetching SAST." +msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while fetching the projects." +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" -msgid "Something went wrong while fetching the registry list." +msgid "Something went wrong while fetching SAST." msgstr "" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" +msgid "Something went wrong while fetching the projects." msgstr "" -msgid "Something went wrong while resolving this discussion. Please try again." +msgid "Something went wrong while fetching the registry list." msgstr "" msgid "Something went wrong. Please try again." @@ -3216,12 +3923,21 @@ msgstr "" msgid "Spam Logs" msgstr "" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "" msgid "StarProject|Star" msgstr "" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "" @@ -3231,6 +3947,15 @@ msgstr "" msgid "Start the Runner!" msgstr "" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "" @@ -3243,9 +3968,15 @@ msgstr "" msgid "Switch branch/tag" msgstr "" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3325,6 +4056,9 @@ msgstr "" msgid "Target Branch" msgstr "" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "" @@ -3340,15 +4074,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "" msgid "The collection of events added to the data gathered for that stage." msgstr "" +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "" +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "" @@ -3361,12 +4104,18 @@ msgstr "" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "" msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "" +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "" @@ -3382,6 +4131,9 @@ msgstr "" msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "" @@ -3418,6 +4170,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "" +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3490,6 +4245,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3502,6 +4260,12 @@ msgstr "" msgid "Time between merge request creation and merge/close" msgstr "" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3657,6 +4421,36 @@ msgstr "" msgid "Title" msgstr "" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3696,18 +4490,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "" @@ -3747,6 +4535,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3756,24 +4550,51 @@ msgstr "" msgid "Use your global notification setting" msgstr "" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "" +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "" +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "" @@ -3801,12 +4622,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "" @@ -3927,13 +4754,19 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." msgstr "" msgid "You can also create a project from the command line." @@ -4008,9 +4841,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4026,6 +4877,13 @@ msgstr "" msgid "Your projects" msgstr "" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" + msgid "assign yourself" msgstr "" @@ -4035,12 +4893,30 @@ msgstr "" msgid "by" msgstr "" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4068,9 +4944,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4083,40 +4956,66 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" msgid_plural "days" msgstr[0] "" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4127,9 +5026,21 @@ msgstr[0] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4142,6 +5053,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4169,18 +5083,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4265,6 +5188,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4302,6 +5228,9 @@ msgstr "" msgid "personal access token" msgstr "" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4311,6 +5240,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "" diff --git a/locale/it/gitlab.po b/locale/it/gitlab.po index 0cb814ac59c..41d6a76be66 100644 --- a/locale/it/gitlab.po +++ b/locale/it/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:21-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:37-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -29,6 +29,11 @@ msgid_plural "%d commits behind" msgstr[0] "" msgstr[1] "" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" +msgstr[1] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" @@ -44,6 +49,11 @@ msgid_plural "%d merge requests" msgstr[0] "" msgstr[1] "" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" +msgstr[1] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "%s commit aggiuntivo è stato omesso per evitare degradi di prestazioni negli issues." @@ -60,6 +70,9 @@ msgid_plural "%{count} participants" msgstr[0] "%{count} partecipante" msgstr[1] "%{count} partecipanti" +msgid "%{loadingIcon} Started" +msgstr "" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "" @@ -103,15 +116,30 @@ msgstr "Primo contributo!" msgid "2FA enabled" msgstr "2FA abilitata" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "Un insieme di grafici riguardo la Continuous Integration" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "Riguardo il rilascio automatico" msgid "Abuse Reports" msgstr "Segnalazioni di abuso" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "Token di accesso" @@ -121,6 +149,9 @@ msgstr "L'accesso agli storages è stato temporaneamente disabilitato per consen msgid "Account" msgstr "Account" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "Attivo" @@ -217,9 +248,33 @@ msgstr "Tutto" msgid "All changes are committed" msgstr "" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "" +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + msgid "An error occurred previewing the blob" msgstr "" @@ -298,6 +353,9 @@ msgstr "" msgid "An error occurred. Please try again." msgstr "Si è verificato un errore. Riprova." +msgid "Any Label" +msgstr "" + msgid "Appearance" msgstr "Aspetto" @@ -331,6 +389,9 @@ msgstr "Sei sicuro?" msgid "Artifacts" msgstr "Artefatti" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "" @@ -343,6 +404,15 @@ msgstr "" msgid "Assign to" msgstr "" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "" @@ -367,6 +437,9 @@ msgstr "" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -409,6 +482,12 @@ msgstr "" msgid "Average per day: %{average}" msgstr "" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "" @@ -492,6 +571,15 @@ msgstr "Cambia branch" msgid "Branches" msgstr "Branch" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "Impossibile trovare l'HEAD commit per questa branch" @@ -537,12 +625,39 @@ msgstr "Una volta confermato e premuto %{delete_protected_branch} non sarà poss msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "Solo gli Owner e i Master possono eliminare una branch protetta" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" -msgstr "Le branch protette possono esser gestite in %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" +msgstr "" msgid "Branches|Sort by" msgstr "Ordina per" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -588,30 +703,45 @@ msgstr "Esplora Files" msgid "Browse files" msgstr "Guarda i files" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "per" msgid "CI / CD" msgstr "CI / CD" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" msgstr "" +msgid "CI/CD for external repo" +msgstr "" + msgid "CICD|Jobs" msgstr "Jobs" msgid "Cancel" msgstr "Cancella" -msgid "Cancel edit" -msgstr "Annulla modifica" +msgid "Cannot be merged automatically" +msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "Preleva nella branch" @@ -666,6 +796,12 @@ msgstr "" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "" +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "" @@ -768,6 +904,15 @@ msgstr "" msgid "Click to expand text" msgstr "" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "Clona repository" @@ -867,6 +1012,9 @@ msgstr "" msgid "ClusterIntegration|Helm Tiller" msgstr "Helm Tiller" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "Ingresso" @@ -876,6 +1024,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "Installa" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "Installato" @@ -894,6 +1045,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -927,6 +1081,9 @@ msgstr "" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "Tipo di macchina" @@ -987,6 +1144,9 @@ msgstr "" msgid "ClusterIntegration|Save changes" msgstr "" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1014,6 +1174,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1138,6 +1301,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1153,9 +1322,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "" @@ -1201,6 +1406,12 @@ msgstr "Utilizza nomi d'immagine differenti" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "Con il Docker Container Registry integrato in Gitlab, ogni progetto può avere il suo spazio d'archiviazione sulle immagini Docker." +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "Guida per contribuire" @@ -1264,8 +1475,8 @@ msgstr "" msgid "Create directory" msgstr "Crea cartella" -msgid "Create empty bare repository" -msgstr "Crea una repository vuota" +msgid "Create empty repository" +msgstr "" msgid "Create epic" msgstr "" @@ -1273,6 +1484,9 @@ msgstr "" msgid "Create file" msgstr "Crea file" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1297,6 +1511,9 @@ msgstr "" msgid "Create new..." msgstr "Crea nuovo..." +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "Fork" @@ -1330,6 +1547,9 @@ msgstr "Eventi-Notifica personalizzati" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "I livelli di notifica personalizzati sono uguali a quelli di partecipazione. Con i livelli di notifica personalizzati riceverai anche notifiche per gli eventi da te scelti %{notification_link}." +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "Statistiche Cicliche" @@ -1413,9 +1633,15 @@ msgstr "Chiudi l'introduzione alle Analisi Cicliche" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "Non mostrare più" +msgid "Done" +msgstr "" + msgid "Download" msgstr "Scarica" @@ -1443,9 +1669,15 @@ msgstr "Differenze" msgid "DownloadSource|Download" msgstr "Scarica" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "Modifica" @@ -1455,6 +1687,18 @@ msgstr "Cambia programmazione della pipeline %{id}" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "E-mail" @@ -1464,6 +1708,33 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "Errore durante il fetch degli ambienti." @@ -1524,6 +1795,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1599,9 +1873,15 @@ msgstr "Esplora gruppi pubblici" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1611,6 +1891,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1644,6 +1927,9 @@ msgstr "Files" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "Filtra per messaggio di commit" @@ -1653,12 +1939,21 @@ msgstr "Trova in percorso" msgid "Find file" msgstr "Trova file" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "Primo" msgid "FirstPushedBy|pushed by" msgstr "Push di" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "Fork" @@ -1670,9 +1965,15 @@ msgstr "Fork da" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "Fork da %{project_name} (eliminato)" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "Formato" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "Dalla creazione di un issue fino al rilascio in produzione" @@ -1691,12 +1992,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "" +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1742,21 +2049,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1769,9 +2103,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1802,6 +2148,9 @@ msgstr "" msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1811,12 +2160,30 @@ msgstr "Le informazioni sullo stato dell'archiviazione Git è stata ripristinata msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "Sezione Gitlab Runner" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "Vai il tuo fork" @@ -1883,9 +2250,6 @@ msgstr "" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "" @@ -1916,6 +2280,9 @@ msgstr "" msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "Verifica stato" @@ -1934,6 +2301,15 @@ msgstr "" msgid "HealthCheck|Unhealthy" msgstr "" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1945,12 +2321,39 @@ msgstr "Cronologia" msgid "Housekeeping successfully started" msgstr "Housekeeping iniziato con successo" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "Importa repository" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "" @@ -1974,6 +2377,9 @@ msgstr[1] "" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2028,6 +2434,9 @@ msgstr "Giu" msgid "June" msgstr "Giugno" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2058,12 +2467,30 @@ msgstr "Disabilitato" msgid "LFSStatus|Enabled" msgstr "Abilitato" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "L'ultimo %d giorno" @@ -2123,6 +2550,9 @@ msgstr "" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2135,9 +2565,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "Bloccato" @@ -2153,9 +2580,21 @@ msgstr "Login" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "Mar" @@ -2177,6 +2616,9 @@ msgstr "Mediano" msgid "Members" msgstr "Membri" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "Richieste di merge" @@ -2189,15 +2631,87 @@ msgstr "Richiesta di merge" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "Messaggi" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2213,6 +2727,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "aggiungi una chiave SSH" @@ -2225,6 +2748,9 @@ msgstr "" msgid "Monitoring" msgstr "Monitoraggio" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2299,6 +2825,9 @@ msgstr "Nuovo sottogruppo" msgid "New tag" msgstr "Nuovo tag" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2317,6 +2846,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "Nessuna Repository" @@ -2332,6 +2864,12 @@ msgstr "" msgid "Not available" msgstr "Non disponibile" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2341,6 +2879,18 @@ msgstr "Dati insufficienti " msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "Notifica eventi" @@ -2425,6 +2975,12 @@ msgstr "Ottobre" msgid "OfSearchInADropdown|Filter" msgstr "Filtra" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "Solo i membri del progetto possono commentare." @@ -2446,12 +3002,18 @@ msgstr "Opzioni" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "Panoramica" msgid "Owner" msgstr "Proprietario" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "Ultima »" @@ -2464,9 +3026,21 @@ msgstr "Precedente" msgid "Pagination|« First" msgstr "« Prima" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "Password" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "Pipeline" @@ -2548,9 +3122,36 @@ msgstr "Pipeline per l'ultimo anno" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2581,6 +3182,9 @@ msgstr "con stadio" msgid "Pipeline|with stages" msgstr "con più stadi" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2590,6 +3194,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "Preferenze" @@ -2644,6 +3254,9 @@ msgstr "Il tuo account è attualmente proprietario in questi gruppi:" msgid "Profiles|your account" msgstr "il tuo account" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2668,9 +3281,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "Dettagli del progetto" @@ -2767,6 +3377,12 @@ msgstr "Siamo spiacenti, non ci sono progetti che corrispondono alla tua ricerca msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "Questa feature richiede il supporto del localStorage del browser" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2779,9 +3395,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "Di default, Prometheus è in ascolto su ‘http://localhost:9090‘. Non è consigliabile cambiare l'indirizzo e la porta di default in quanto ciò potrebbe influenzare o causare conflitto con altri servizi in esecuzione sul server GitLab." +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "Ricerco e configuro le metriche..." +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2794,20 +3422,14 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "Metriche" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "Le metriche sono configurate automaticamente e monitorate sulla base di una libreria di metriche di esportatori popolari." - msgid "PrometheusService|Missing environment variable" msgstr "Variabile d'ambiente mancante" -msgid "PrometheusService|Monitored" -msgstr "Monitorato" - msgid "PrometheusService|More information" msgstr "Ulteriori informazioni" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." -msgstr "Nessuna metrica è stata monitorata. Per iniziare a monitorare, rilascia su un ambiente." +msgid "PrometheusService|New metric" +msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" msgstr "" @@ -2815,6 +3437,9 @@ msgstr "" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2824,7 +3449,16 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" msgid "Protip:" @@ -2860,6 +3494,9 @@ msgstr "Vedi altro" msgid "Readme" msgstr "Leggimi" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "Branches" @@ -2893,6 +3530,9 @@ msgstr "Richieste di Merge Correlate" msgid "Related Merged Requests" msgstr "Richieste di Merge Completate Correlate" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "Ricordamelo più tardi" @@ -2908,12 +3548,24 @@ msgstr "Rimuovi progetto" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "Richiedi accesso" @@ -2929,6 +3581,9 @@ msgstr "" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2940,9 +3595,36 @@ msgstr "Ripristina questo commit" msgid "Revert this merge request" msgstr "Ripristina questa richiesta di merge" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "Chiavi SSH" @@ -2958,6 +3640,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "Pianifica una nuova Pipeline" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "" @@ -2967,6 +3652,9 @@ msgstr "Pianificazione pipelines" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "Ricerca branches e tags" @@ -3030,15 +3718,33 @@ msgstr "" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "Establezca una contraseña en su cuenta para actualizar o enviar a través de %{protocol}." +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "Configura Koding" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "imposta una password" @@ -3048,6 +3754,9 @@ msgstr "Impostazioni" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3083,6 +3792,18 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" +msgid "Sign-in restrictions" +msgstr "" + +msgid "Sign-up restrictions" +msgstr "" + +msgid "Size and domain settings for static websites" +msgstr "" + +msgid "Slack application" +msgstr "" + msgid "Snippets" msgstr "Snippet" @@ -3090,18 +3811,12 @@ msgid "Something went wrong on our end" msgstr "" msgid "Something went wrong on our end." -msgstr "Si è verificato un problema con il nostro server." - -msgid "Something went wrong trying to change the confidentiality of this issue" -msgstr "" - -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" msgstr "" msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" msgid "Something went wrong while fetching SAST." @@ -3113,12 +3828,6 @@ msgstr "Qualcosa è andato storto durante il fetch dei progetti." msgid "Something went wrong while fetching the registry list." msgstr "Qualcosa è andato storto durante il recupero dell'elenco dei registri." -msgid "Something went wrong while reopening the %{issuable}. Please try again later" -msgstr "" - -msgid "Something went wrong while resolving this discussion. Please try again." -msgstr "" - msgid "Something went wrong. Please try again." msgstr "" @@ -3236,12 +3945,21 @@ msgstr "" msgid "Spam Logs" msgstr "" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "" msgid "StarProject|Star" msgstr "Star" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "" @@ -3251,6 +3969,15 @@ msgstr "inizia una %{new_merge_request} con queste modifiche" msgid "Start the Runner!" msgstr "" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "" @@ -3263,9 +3990,15 @@ msgstr "" msgid "Switch branch/tag" msgstr "Cambia branch/tag" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3346,6 +4079,9 @@ msgstr "" msgid "Target Branch" msgstr "Branch di destinazione" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "" @@ -3361,15 +4097,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "Lo stadio di programmazione mostra il tempo trascorso dal primo commit alla creazione di una richiesta di merge (MR). I dati saranno aggiunti una volta che avrai creato la prima richiesta di merge." msgid "The collection of events added to the data gathered for that stage." msgstr "L'insieme di eventi aggiunti ai dati raccolti per quello stadio." +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "La relazione del fork è stata rimossa" +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "Lo stadio di Issue mostra il tempo che impiega un issue ad esser correlato ad una Milestone, o ad esser aggiunto ad una tua Lavagna. Inizia la creazione di problemi per visualizzare i dati in questo stadio." @@ -3382,12 +4127,18 @@ msgstr "" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "Il ciclo vitale della fase di sviluppo." msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "Lo stadio di pianificazione mostra il tempo trascorso dal primo commit al suo step precedente. Questo periodo sarà disponibile automaticamente nel momento in cui farai il primo commit." +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "Lo stadio di produzione mostra il tempo totale che trascorre tra la creazione di un issue il suo rilascio (inteso come codice) in produzione. Questo dato sarà disponibile automaticamente nel momento in cui avrai completato l'intero processo ideale del ciclo di produzione" @@ -3403,6 +4154,9 @@ msgstr "La repository di questo progetto non esiste." msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "Lo stadio di revisione mostra il tempo tra una richiesta di merge al suo svolgimento effettivo. Questo dato sarà disponibile appena avrai completato una MR (Merger Request)" @@ -3439,6 +4193,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "" +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3511,6 +4268,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3523,6 +4283,12 @@ msgstr "Il tempo che impiega un issue per esser implementato" msgid "Time between merge request creation and merge/close" msgstr "Il tempo tra la creazione di una richiesta di merge ed il merge/close" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3678,6 +4444,36 @@ msgid "Tip:" msgstr "" msgid "Title" +msgstr "Titolo" + +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." msgstr "" msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." @@ -3719,18 +4515,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "" @@ -3770,6 +4560,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "clicca per caricare" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3779,24 +4575,51 @@ msgstr "" msgid "Use your global notification setting" msgstr "Usa le tue impostazioni globali " +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "" +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "Mostra la richieste di merge aperte" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "" +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "Interno" @@ -3824,12 +4647,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "" @@ -3950,14 +4779,20 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "Stai per rimuovere il gruppo %{group_name}. I gruppi rimossi NON POSSONO esser ripristinati! Sei ASSOLUTAMENTE sicuro?" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "Stai per rimuovere %{project_name_with_namespace}. I progetti rimossi NON POSSONO essere ripristinati! Sei assolutamente sicuro?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "Stai per rimuovere la relazione con il progetto sorgente %{forked_from_project}. Sei ASSOLUTAMENTE sicuro?" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "Stai per trasferire %{project_name_with_namespace} ad un altro owner. Sei ASSOLUTAMENTE sicuro?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." +msgstr "" msgid "You can also create a project from the command line." msgstr "" @@ -4031,9 +4866,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4049,6 +4902,14 @@ msgstr "Il tuo nome" msgid "Your projects" msgstr "" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + msgid "assign yourself" msgstr "" @@ -4058,12 +4919,30 @@ msgstr "" msgid "by" msgstr "" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4091,9 +4970,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4106,25 +4982,28 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" @@ -4132,15 +5011,40 @@ msgid_plural "days" msgstr[0] "giorno" msgstr[1] "giorni" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4152,9 +5056,21 @@ msgstr[1] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4167,6 +5083,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4194,18 +5113,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4290,6 +5218,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4328,6 +5259,9 @@ msgstr "" msgid "personal access token" msgstr "" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4337,6 +5271,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "" diff --git a/locale/ja/gitlab.po b/locale/ja/gitlab.po index 180f1f0fbe7..b526b0ba202 100644 --- a/locale/ja/gitlab.po +++ b/locale/ja/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:21-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:36-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -27,6 +27,10 @@ msgid "%d commit behind" msgid_plural "%d commits behind" msgstr[0] "" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" @@ -39,6 +43,10 @@ msgid "%d merge request" msgid_plural "%d merge requests" msgstr[0] "" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "パフォーマンス低下をé¿ã‘ã‚‹ãŸã‚ %s 個ã®ã‚³ãƒŸãƒƒãƒˆã‚’çœç•¥ã—ã¾ã—ãŸã€‚" @@ -53,6 +61,9 @@ msgid "%{count} participant" msgid_plural "%{count} participants" msgstr[0] "" +msgid "%{loadingIcon} Started" +msgstr "" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "" @@ -94,15 +105,30 @@ msgstr "" msgid "2FA enabled" msgstr "" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "CIã«ã¤ã„ã¦ã®ã‚°ãƒ©ãƒ•" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "自動デプãƒã‚¤ã«ã¤ã„ã¦" msgid "Abuse Reports" msgstr "" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "" @@ -112,6 +138,9 @@ msgstr "" msgid "Account" msgstr "" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "有効" @@ -208,9 +237,33 @@ msgstr "" msgid "All changes are committed" msgstr "" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "" +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + msgid "An error occurred previewing the blob" msgstr "" @@ -289,6 +342,9 @@ msgstr "" msgid "An error occurred. Please try again." msgstr "" +msgid "Any Label" +msgstr "" + msgid "Appearance" msgstr "" @@ -322,6 +378,9 @@ msgstr "" msgid "Artifacts" msgstr "" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "" @@ -334,6 +393,15 @@ msgstr "" msgid "Assign to" msgstr "" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "" @@ -358,6 +426,9 @@ msgstr "" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -400,6 +471,12 @@ msgstr "" msgid "Average per day: %{average}" msgstr "" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "" @@ -482,6 +559,15 @@ msgstr "ブランãƒã‚’切替" msgid "Branches" msgstr "ブランãƒ" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "" @@ -527,12 +613,39 @@ msgstr "" msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" msgstr "" msgid "Branches|Sort by" msgstr "" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -578,30 +691,45 @@ msgstr "ファイルを表示" msgid "Browse files" msgstr "ファイルを表示" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "作者" msgid "CI / CD" msgstr "" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" msgstr "" +msgid "CI/CD for external repo" +msgstr "" + msgid "CICD|Jobs" msgstr "" msgid "Cancel" msgstr "ã‚ャンセル" -msgid "Cancel edit" +msgid "Cannot be merged automatically" msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "ピック先ブランãƒ:" @@ -656,6 +784,12 @@ msgstr "" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "" +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "" @@ -758,6 +892,15 @@ msgstr "" msgid "Click to expand text" msgstr "" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "" @@ -857,6 +1000,9 @@ msgstr "" msgid "ClusterIntegration|Helm Tiller" msgstr "" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "" @@ -866,6 +1012,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "" @@ -884,6 +1033,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -917,6 +1069,9 @@ msgstr "" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "" @@ -977,6 +1132,9 @@ msgstr "" msgid "ClusterIntegration|Save changes" msgstr "" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1004,6 +1162,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1126,6 +1287,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1141,9 +1308,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "" @@ -1189,6 +1392,12 @@ msgstr "" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "" +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "貢献者å‘ã‘ガイド" @@ -1252,8 +1461,8 @@ msgstr "" msgid "Create directory" msgstr "ディレクトリを作æˆ" -msgid "Create empty bare repository" -msgstr "空ã®bareレãƒã‚¸ãƒˆãƒªãƒ¼ã‚’作æˆ" +msgid "Create empty repository" +msgstr "" msgid "Create epic" msgstr "" @@ -1261,6 +1470,9 @@ msgstr "" msgid "Create file" msgstr "" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1285,6 +1497,9 @@ msgstr "" msgid "Create new..." msgstr "æ–°è¦ä½œæˆ" +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "フォーク" @@ -1318,6 +1533,9 @@ msgstr "カスタム通知è¨å®š" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "\"カスタム\" ã®é€šçŸ¥ãƒ¬ãƒ™ãƒ«ã®åŸºæœ¬ã¯ \"å‚åŠ \" ã¨åŒã˜ã§ã™ã€‚ã¾ãŸã€ã‚«ã‚¹ã‚¿ãƒ 通知ã«è¨å®šã™ã‚‹ã“ã¨ã§é¸æŠžã—ãŸã‚«ã‚¹ã‚¿ãƒ イベントã®é€šçŸ¥ã‚’å—ã‘å–ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ã‚‚ã£ã¨è©³ã—ã知りãŸã„å ´åˆã¯ %{notification_link} を見ã¦ãã ã•ã„。" +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "サイクル分æž" @@ -1400,9 +1618,15 @@ msgstr "" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "次回ã‹ã‚‰è¡¨ç¤ºã—ãªã„" +msgid "Done" +msgstr "" + msgid "Download" msgstr "ダウンãƒãƒ¼ãƒ‰" @@ -1430,9 +1654,15 @@ msgstr "プレーン差分" msgid "DownloadSource|Download" msgstr "ダウンãƒãƒ¼ãƒ‰" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "編集" @@ -1442,6 +1672,18 @@ msgstr "パイプラインスケジュール %{id} を編集" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "" @@ -1451,6 +1693,33 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1511,6 +1780,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1586,9 +1858,15 @@ msgstr "" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1598,6 +1876,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1631,6 +1912,9 @@ msgstr "ファイル" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "コミットメッセージã§çµžã‚Šè¾¼ã¿" @@ -1640,12 +1924,21 @@ msgstr "パスã§æ¤œç´¢" msgid "Find file" msgstr "ファイルを検索" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "åˆå›ž" msgid "FirstPushedBy|pushed by" msgstr "プッシュã—ãŸäºº" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "フォーク" @@ -1656,9 +1949,15 @@ msgstr "フォーク元" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "課題ãŒç™»éŒ²ã•ã‚Œã¦ã‹ã‚‰ãƒ—ãƒãƒ€ã‚¯ã‚·ãƒ§ãƒ³ã«ãƒ‡ãƒ—ãƒã‚¤ã•ã‚Œã‚‹ã¾ã§" @@ -1677,12 +1976,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "" +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1728,21 +2033,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1755,9 +2087,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1788,6 +2132,9 @@ msgstr "" msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1797,12 +2144,30 @@ msgstr "" msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "自分ã®ãƒ•ã‚©ãƒ¼ã‚¯ã¸ç§»å‹•" @@ -1869,9 +2234,6 @@ msgstr "" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "" @@ -1902,6 +2264,9 @@ msgstr "" msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "" @@ -1920,6 +2285,15 @@ msgstr "" msgid "HealthCheck|Unhealthy" msgstr "" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1930,12 +2304,39 @@ msgstr "" msgid "Housekeeping successfully started" msgstr "ãƒã‚¦ã‚¹ã‚ーピングã¯æ£å¸¸ã«èµ·å‹•ã—ã¾ã—ãŸã€‚" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "レãƒã‚¸ãƒˆãƒªãƒ¼ã‚’インãƒãƒ¼ãƒˆ" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "" @@ -1958,6 +2359,9 @@ msgstr[0] "" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2012,6 +2416,9 @@ msgstr "" msgid "June" msgstr "" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2042,12 +2449,30 @@ msgstr "無効" msgid "LFSStatus|Enabled" msgstr "有効" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "éŽåŽ»%d日間" @@ -2106,6 +2531,9 @@ msgstr "" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2118,9 +2546,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "" @@ -2136,9 +2561,21 @@ msgstr "" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "" @@ -2160,6 +2597,9 @@ msgstr "ä¸å¤®å€¤" msgid "Members" msgstr "" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "" @@ -2172,15 +2612,87 @@ msgstr "" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2196,6 +2708,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "SSH éµã‚’è¿½åŠ " @@ -2208,6 +2729,9 @@ msgstr "" msgid "Monitoring" msgstr "" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2281,6 +2805,9 @@ msgstr "" msgid "New tag" msgstr "æ–°è¦ã‚¿ã‚°" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2299,6 +2826,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "レãƒã‚¸ãƒˆãƒªãƒ¼ã¯ã‚ã‚Šã¾ã›ã‚“" @@ -2314,6 +2844,12 @@ msgstr "" msgid "Not available" msgstr "利用ã§ãã¾ã›ã‚“" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2323,6 +2859,18 @@ msgstr "データä¸è¶³" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "イベント通知" @@ -2407,6 +2955,12 @@ msgstr "" msgid "OfSearchInADropdown|Filter" msgstr "フィルター" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "" @@ -2428,12 +2982,18 @@ msgstr "オプション" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "" msgid "Owner" msgstr "オーナー" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "" @@ -2446,9 +3006,21 @@ msgstr "" msgid "Pagination|« First" msgstr "" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "パイプライン" @@ -2530,9 +3102,36 @@ msgstr "" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2563,6 +3162,9 @@ msgstr "ステージã‚ã‚Š" msgid "Pipeline|with stages" msgstr "ステージã‚ã‚Š" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2572,6 +3174,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "" @@ -2626,6 +3234,9 @@ msgstr "" msgid "Profiles|your account" msgstr "" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2650,9 +3261,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "" @@ -2749,6 +3357,12 @@ msgstr "" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2761,9 +3375,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "" +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "" +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2776,19 +3402,13 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "" - msgid "PrometheusService|Missing environment variable" msgstr "" -msgid "PrometheusService|Monitored" -msgstr "" - msgid "PrometheusService|More information" msgstr "" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." +msgid "PrometheusService|New metric" msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" @@ -2797,6 +3417,9 @@ msgstr "" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2806,7 +3429,16 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" msgid "Protip:" @@ -2842,6 +3474,9 @@ msgstr "続ãã‚’èªã‚€" msgid "Readme" msgstr "" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "ブランãƒ" @@ -2875,6 +3510,9 @@ msgstr "関連ã™ã‚‹ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆ" msgid "Related Merged Requests" msgstr "関連ã™ã‚‹ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆ" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "後ã§é€šçŸ¥" @@ -2890,12 +3528,24 @@ msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆã‚’削除" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "アクセス権é™ã‚’リクエストã™ã‚‹" @@ -2911,6 +3561,9 @@ msgstr "" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2921,9 +3574,36 @@ msgstr "ã“ã®ã‚³ãƒŸãƒƒãƒˆã‚’リãƒãƒ¼ãƒˆ" msgid "Revert this merge request" msgstr "ã“ã®ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’リãƒãƒ¼ãƒˆ" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "" @@ -2939,6 +3619,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "æ–°ã—ã„パイプラインã®ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’作æˆ" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "" @@ -2948,6 +3631,9 @@ msgstr "パイプラインスケジューリング" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "ブランãƒã¾ãŸã¯ã‚¿ã‚°ã‚’検索" @@ -3011,15 +3697,33 @@ msgstr "" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "%{protocol} プãƒã‚³ãƒˆãƒ«çµŒç”±ã§ãƒ—ルã€ãƒ—ッシュã™ã‚‹ãŸã‚ã«ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®ãƒ‘スワードをè¨å®šã€‚" +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "Koding ã‚’è¨å®š" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "パスワードをè¨å®š" @@ -3029,6 +3733,9 @@ msgstr "" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3063,40 +3770,40 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" -msgid "Snippets" +msgid "Sign-in restrictions" msgstr "" -msgid "Something went wrong on our end" +msgid "Sign-up restrictions" msgstr "" -msgid "Something went wrong on our end." +msgid "Size and domain settings for static websites" msgstr "" -msgid "Something went wrong trying to change the confidentiality of this issue" +msgid "Slack application" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" +msgid "Snippets" msgstr "" -msgid "Something went wrong when toggling the button" +msgid "Something went wrong on our end" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong on our end." msgstr "" -msgid "Something went wrong while fetching SAST." +msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while fetching the projects." +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" -msgid "Something went wrong while fetching the registry list." +msgid "Something went wrong while fetching SAST." msgstr "" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" +msgid "Something went wrong while fetching the projects." msgstr "" -msgid "Something went wrong while resolving this discussion. Please try again." +msgid "Something went wrong while fetching the registry list." msgstr "" msgid "Something went wrong. Please try again." @@ -3216,12 +3923,21 @@ msgstr "" msgid "Spam Logs" msgstr "" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "" msgid "StarProject|Star" msgstr "スターを付ã‘ã‚‹" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "" @@ -3231,6 +3947,15 @@ msgstr "ã“ã®å¤‰æ›´ã§ %{new_merge_request} を作æˆã™ã‚‹" msgid "Start the Runner!" msgstr "" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "" @@ -3243,9 +3968,15 @@ msgstr "" msgid "Switch branch/tag" msgstr "ブランãƒãƒ»ã‚¿ã‚°åˆ‡ã‚Šæ›¿ãˆ" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3325,6 +4056,9 @@ msgstr "" msgid "Target Branch" msgstr "ターゲットブランãƒ" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "" @@ -3340,15 +4074,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "コーディングステージã§ã¯ã€æœ€åˆã®ã‚³ãƒŸãƒƒãƒˆã‹ã‚‰ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆãŒä½œæˆã•ã‚Œã‚‹ã¾ã§ã®æ™‚é–“ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ã“ã®ãƒ‡ãƒ¼ã‚¿ã¯æœ€åˆã®ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆãŒä½œæˆã•ã‚ŒãŸã¨ãã«è‡ªå‹•çš„ã«è¿½åŠ ã•ã‚Œã¾ã™ã€‚" msgid "The collection of events added to the data gathered for that stage." msgstr "ã“ã®ã‚¹ãƒ†ãƒ¼ã‚¸ã§è¨ˆæ¸¬ãƒ‡ãƒ¼ã‚¿ã«è¿½åŠ ã•ã‚ŒãŸã‚¤ãƒ™ãƒ³ãƒˆãƒªã‚¹ãƒˆ" +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "フォークã®ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãŒå‰Šé™¤ã•ã‚Œã¾ã—ãŸã€‚" +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "課題ステージã§ã¯ã€èª²é¡ŒãŒç™»éŒ²ã•ã‚Œã¦ã‹ã‚‰ãƒžã‚¤ãƒ«ã‚¹ãƒˆãƒ¼ãƒ³ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã‚‹ã‹ã€èª²é¡Œãƒœãƒ¼ãƒ‰ã®ãƒªã‚¹ãƒˆã«è¿½åŠ ã•ã‚Œã‚‹ã¾ã§ã®æ™‚é–“ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ã“ã®ãƒªã‚¹ãƒˆã«è¡¨ç¤ºã™ã‚‹ã«ã¯èª²é¡Œã‚’最åˆã«ä½œæˆã—ã¦ãã ã•ã„。" @@ -3361,12 +4104,18 @@ msgstr "" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "開発ライフサイクルã®æ®µéšŽ" msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "計画ステージã§ã¯ã€èª²é¡Œã‚¹ãƒ†ãƒ¼ã‚¸ã«ç™»éŒ²ã•ã‚Œã¦ã‹ã‚‰ãƒ—ッシュã•ã‚ŒãŸæœ€åˆã®ã‚³ãƒŸãƒƒãƒˆæ™‚刻ã¾ã§ã®æ™‚é–“ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚最åˆã®ã‚³ãƒŸãƒƒãƒˆãŒãƒ—ッシュã•ã‚Œã¨ãã«è‡ªå‹•çš„ã«è¿½åŠ ã•ã‚Œã¾ã™ã€‚" +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "プãƒãƒ€ã‚¯ã‚·ãƒ§ãƒ³ã‚¹ãƒ†ãƒ¼ã‚¸ã§ã¯ã€èª²é¡ŒãŒä½œæˆã•ã‚Œã¦ã‹ã‚‰ãƒ—ãƒãƒ€ã‚¯ã‚·ãƒ§ãƒ³ã¸ãƒ‡ãƒ—ãƒã‚¤ã•ã‚Œã‚‹ã¾ã§ã®æ™‚é–“ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚アイディアã®æ™‚点ã‹ã‚‰ãƒ—ãƒãƒ€ã‚¯ã‚·ãƒ§ãƒ³ã¾ã§ã®å…¨ã‚¹ãƒ†ãƒ¼ã‚¸ãŒå®Œäº†ã—ãŸã¨ãã«è‡ªå‹•çš„ã«è¿½åŠ ã•ã‚Œã¾ã™ã€‚" @@ -3382,6 +4131,9 @@ msgstr "ã“ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã«ãƒ¬ãƒã‚¸ãƒˆãƒªãƒ¼ã¯ã‚ã‚Šã¾ã›ã‚“。" msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "レビューステージã¨ã¯ã€ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’作æˆã—ã¦ã‹ã‚‰ãƒžãƒ¼ã‚¸ã™ã‚‹ã¾ã§ã®æ™‚é–“ã§ã™ã€‚ã“ã®ãƒ‡ãƒ¼ã‚¿ã¯æœ€åˆã®ãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆãŒãƒžãƒ¼ã‚¸ã•ã‚ŒãŸã¨ãã«è‡ªå‹•çš„ã«è¿½åŠ ã•ã‚Œã¾ã™ã€‚" @@ -3418,6 +4170,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "" +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3490,6 +4245,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3502,6 +4260,12 @@ msgstr "課題ã®å®Ÿè£…ãŒé–‹å§‹ã•ã‚Œã‚‹ã¾ã§ã®æ™‚é–“" msgid "Time between merge request creation and merge/close" msgstr "マージリクエストãŒä½œæˆã•ã‚Œã¦ã‹ã‚‰ãƒžãƒ¼ã‚¸ã¾ãŸã¯ã‚¯ãƒãƒ¼ã‚ºã•ã‚Œã‚‹ã¾ã§ã®æ™‚é–“" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3657,6 +4421,36 @@ msgstr "" msgid "Title" msgstr "" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3696,18 +4490,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "" @@ -3747,6 +4535,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "クリックã—ã¦ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3756,24 +4550,51 @@ msgstr "" msgid "Use your global notification setting" msgstr "全体通知è¨å®šã‚’利用" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "" +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "オープンãªãƒžãƒ¼ã‚¸ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’表示" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "" +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "内部" @@ -3801,12 +4622,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "" @@ -3927,14 +4754,20 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "%{group_name} グループを削除ã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚ 削除ã•ã‚ŒãŸã‚°ãƒ«ãƒ¼ãƒ—ã¯çµ¶å¯¾ã«å…ƒã«æˆ»ã›ã¾ã›ã‚“ï¼æœ¬å½“ã«ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "%{project_name_with_namespace} プãƒã‚¸ã‚§ã‚¯ãƒˆã‚’削除ã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚削除ã•ã‚ŒãŸãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã¯çµ¶å¯¾ã«å…ƒã«ã¯æˆ»ã›ã¾ã›ã‚“ï¼æœ¬å½“ã«ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "å…ƒã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆ (%{forked_from_project}) ã¨ã®ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚’削除ã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚本当ã«ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "%{project_name_with_namespace} プãƒã‚¸ã‚§ã‚¯ãƒˆã‚’別ã®ã‚ªãƒ¼ãƒŠãƒ¼ã«ç§»è²ã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚本当ã«ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." +msgstr "" msgid "You can also create a project from the command line." msgstr "" @@ -4008,9 +4841,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4026,6 +4877,13 @@ msgstr "åå‰" msgid "Your projects" msgstr "" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" + msgid "assign yourself" msgstr "" @@ -4035,12 +4893,30 @@ msgstr "" msgid "by" msgstr "" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4068,9 +4944,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4083,40 +4956,66 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" msgid_plural "days" msgstr[0] "æ—¥" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4127,9 +5026,21 @@ msgstr[0] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4142,6 +5053,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4169,18 +5083,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4265,6 +5188,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4302,6 +5228,9 @@ msgstr "" msgid "personal access token" msgstr "" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4311,6 +5240,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "" diff --git a/locale/ko/gitlab.po b/locale/ko/gitlab.po index 13634091ed7..91f68dfdee1 100644 --- a/locale/ko/gitlab.po +++ b/locale/ko/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:19-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:34-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -27,6 +27,10 @@ msgid "%d commit behind" msgid_plural "%d commits behind" msgstr[0] "" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" @@ -39,6 +43,10 @@ msgid "%d merge request" msgid_plural "%d merge requests" msgstr[0] "" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "%s 추가 ì»¤ë°‹ì€ ì„±ëŠ¥ ì´ìŠˆë¥¼ 방지하기 위해 ìƒëžµë˜ì—ˆìŠµë‹ˆë‹¤." @@ -53,6 +61,9 @@ msgid "%{count} participant" msgid_plural "%{count} participants" msgstr[0] "" +msgid "%{loadingIcon} Started" +msgstr "" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "" @@ -94,15 +105,30 @@ msgstr "" msgid "2FA enabled" msgstr "" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "지ì†ì ì¸ í†µí•©ì— ê´€í•œ 그래프 모ìŒ" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "ìžë™ ë°°í¬ ì •ë³´" msgid "Abuse Reports" msgstr "" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "" @@ -112,6 +138,9 @@ msgstr "오ë™ìž‘ì¤‘ì¸ ì €ìž¥ê³µê°„ì— ëŒ€í•œ ì ‘ê·¼ì´ ë³µêµ¬ ìž‘ì—…ì„ ìœ„í•´ msgid "Account" msgstr "" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "활성" @@ -208,9 +237,33 @@ msgstr "ì „ì²´" msgid "All changes are committed" msgstr "" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "" +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + msgid "An error occurred previewing the blob" msgstr "" @@ -289,6 +342,9 @@ msgstr "" msgid "An error occurred. Please try again." msgstr "" +msgid "Any Label" +msgstr "" + msgid "Appearance" msgstr "" @@ -322,6 +378,9 @@ msgstr "확실합니까?" msgid "Artifacts" msgstr "" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "" @@ -334,6 +393,15 @@ msgstr "" msgid "Assign to" msgstr "" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "" @@ -358,6 +426,9 @@ msgstr "" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -400,6 +471,12 @@ msgstr "" msgid "Average per day: %{average}" msgstr "" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "" @@ -482,6 +559,15 @@ msgstr "브랜치 변경" msgid "Branches" msgstr "브랜치" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "" @@ -527,12 +613,39 @@ msgstr "" msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" msgstr "" msgid "Branches|Sort by" msgstr "" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -578,30 +691,45 @@ msgstr "íŒŒì¼ ì°¾ì•„ë³´ê¸°" msgid "Browse files" msgstr "íŒŒì¼ ì°¾ì•„ë³´ê¸°" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "작성ìž" msgid "CI / CD" msgstr "" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" msgstr "" +msgid "CI/CD for external repo" +msgstr "" + msgid "CICD|Jobs" msgstr "" msgid "Cancel" msgstr "취소" -msgid "Cancel edit" +msgid "Cannot be merged automatically" msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "브랜치ì—ì„œ Pick" @@ -656,6 +784,12 @@ msgstr "" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "" +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "" @@ -758,6 +892,15 @@ msgstr "" msgid "Click to expand text" msgstr "" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "" @@ -857,6 +1000,9 @@ msgstr "" msgid "ClusterIntegration|Helm Tiller" msgstr "" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "" @@ -866,6 +1012,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "" @@ -884,6 +1033,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -917,6 +1069,9 @@ msgstr "" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "" @@ -977,6 +1132,9 @@ msgstr "" msgid "ClusterIntegration|Save changes" msgstr "" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1004,6 +1162,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1126,6 +1287,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1141,9 +1308,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "" @@ -1189,6 +1392,12 @@ msgstr "" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "" +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "ê¸°ì—¬ì— ëŒ€í•œ 안내" @@ -1252,8 +1461,8 @@ msgstr "" msgid "Create directory" msgstr "ë””ë ‰í† ë¦¬ 만들기" -msgid "Create empty bare repository" -msgstr "빈 bare ì €ìž¥ì†Œ 만들기" +msgid "Create empty repository" +msgstr "" msgid "Create epic" msgstr "" @@ -1261,6 +1470,9 @@ msgstr "" msgid "Create file" msgstr "" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1285,6 +1497,9 @@ msgstr "" msgid "Create new..." msgstr "새로 만들기 ..." +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "í¬í¬" @@ -1318,6 +1533,9 @@ msgstr "ì‚¬ìš©ìž ì •ì˜ ì•Œë¦¼ ì´ë²¤íŠ¸" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "ì‚¬ìš©ìž ì •ì˜ ì•Œë¦¼ ìˆ˜ì¤€ì€ ì°¸ì—¬ 수준과 ë™ì¼í•©ë‹ˆë‹¤. 맞춤 알림 ìˆ˜ì¤€ì„ ì‚¬ìš©í•˜ë©´ ì¼ë¶€ ì´ë²¤íŠ¸ì— 대한 ì•Œë¦¼ë„ ë°›ê²Œë©ë‹ˆë‹¤. ìžì„¸í•œ ë‚´ìš©ì€ %{notification_link}ì„ í™•ì¸í•˜ì‹ì‹œì˜¤." +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "" @@ -1400,9 +1618,15 @@ msgstr "" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "다시 표시하지 ì•ŠìŒ" +msgid "Done" +msgstr "" + msgid "Download" msgstr "다운로드" @@ -1430,9 +1654,15 @@ msgstr "Plain Diff" msgid "DownloadSource|Download" msgstr "다운로드" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "편집" @@ -1442,6 +1672,18 @@ msgstr "파ì´í”„ë¼ì¸ 스케줄 편집 %{id}" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "" @@ -1451,6 +1693,33 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1511,6 +1780,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1586,9 +1858,15 @@ msgstr "" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1598,6 +1876,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1631,6 +1912,9 @@ msgstr "파ì¼" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "커밋 메시지로 í•„í„°" @@ -1640,12 +1924,21 @@ msgstr "경로로 찾기" msgid "Find file" msgstr "íŒŒì¼ ì°¾ê¸°" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "처ìŒ" msgid "FirstPushedBy|pushed by" msgstr "푸시한 사용ìž" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "í¬í¬" @@ -1656,9 +1949,15 @@ msgstr "í¬í¬í•œ 사용ìž" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "ì´ìŠˆ ìƒì„±ì—ì„œ 프로ë•ì…˜ ë°°í¬ê¹Œì§€" @@ -1677,12 +1976,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "" +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1728,21 +2033,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1755,9 +2087,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1788,6 +2132,9 @@ msgstr "" msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1797,12 +2144,30 @@ msgstr "git storage ìƒíƒœ ì •ë³´ê°€ 초기화ë˜ì—ˆìŠµë‹ˆë‹¤." msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "GitLab Runner 섹션" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "ë‹¹ì‹ ì˜ í¬í¬ë¡œ ì´ë™í•˜ì„¸ìš”" @@ -1869,9 +2234,6 @@ msgstr "" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "" @@ -1902,6 +2264,9 @@ msgstr "" msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "헬스 ì²´í¬" @@ -1920,6 +2285,15 @@ msgstr " 헬스 ë¬¸ì œê°€ 발견ë˜ì§€ 않았습니다." msgid "HealthCheck|Unhealthy" msgstr "ë¹„ì •ìƒ" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1930,12 +2304,39 @@ msgstr "" msgid "Housekeeping successfully started" msgstr "Housekeepingì´ ì„±ê³µì 으로 시작ë˜ì—ˆìŠµë‹ˆë‹¤" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "ì €ìž¥ì†Œ ê°€ì ¸ 오기" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "" @@ -1958,6 +2359,9 @@ msgstr[0] "" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2012,6 +2416,9 @@ msgstr "" msgid "June" msgstr "" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2042,12 +2449,30 @@ msgstr "Disabled" msgid "LFSStatus|Enabled" msgstr "Enabled" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "최근 %d ì¼" @@ -2106,6 +2531,9 @@ msgstr "" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2118,9 +2546,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "" @@ -2136,9 +2561,21 @@ msgstr "" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "" @@ -2160,6 +2597,9 @@ msgstr "중앙값" msgid "Members" msgstr "" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "" @@ -2172,15 +2612,87 @@ msgstr "" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2196,6 +2708,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "SSH 키 추가" @@ -2208,6 +2729,9 @@ msgstr "" msgid "Monitoring" msgstr "" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2281,6 +2805,9 @@ msgstr "" msgid "New tag" msgstr "새 태그 " +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2299,6 +2826,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "ì €ìž¥ì†Œ ì—†ìŒ" @@ -2314,6 +2844,12 @@ msgstr "" msgid "Not available" msgstr "ì‚¬ìš©í• ìˆ˜ ì—†ìŒ" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2323,6 +2859,18 @@ msgstr "ë°ì´í„°ê°€ 충분하지 않습니다." msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "알림 ì´ë²¤íŠ¸" @@ -2407,6 +2955,12 @@ msgstr "" msgid "OfSearchInADropdown|Filter" msgstr "í•„í„°" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "" @@ -2428,12 +2982,18 @@ msgstr "옵션 " msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "" msgid "Owner" msgstr "ì†Œìœ ìž" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "" @@ -2446,9 +3006,21 @@ msgstr "" msgid "Pagination|« First" msgstr "" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "파ì´í”„ë¼ì¸" @@ -2530,9 +3102,36 @@ msgstr "" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2563,6 +3162,9 @@ msgstr "스테ì´ì§•" msgid "Pipeline|with stages" msgstr "스테ì´ì§•" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2572,6 +3174,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "" @@ -2626,6 +3234,9 @@ msgstr "" msgid "Profiles|your account" msgstr "" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2650,9 +3261,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "프로ì 트 ìƒì„¸" @@ -2749,6 +3357,12 @@ msgstr "" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2761,9 +3375,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "" +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "" +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2776,19 +3402,13 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "" - msgid "PrometheusService|Missing environment variable" msgstr "" -msgid "PrometheusService|Monitored" -msgstr "" - msgid "PrometheusService|More information" msgstr "" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." +msgid "PrometheusService|New metric" msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" @@ -2797,6 +3417,9 @@ msgstr "" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2806,7 +3429,16 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" msgid "Protip:" @@ -2842,6 +3474,9 @@ msgstr "ë” ì½ê¸°" msgid "Readme" msgstr "" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "브랜치" @@ -2875,6 +3510,9 @@ msgstr "ê´€ë ¨ 머지 리퀘스트" msgid "Related Merged Requests" msgstr "ê´€ë ¨ 머지 리퀘스트" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "ë‚˜ì¤‘ì— ë‹¤ì‹œ 알림" @@ -2890,12 +3528,24 @@ msgstr "프로ì 트 ì‚ì œ" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "액세스 ìš”ì²" @@ -2911,6 +3561,9 @@ msgstr "runner ë“±ë¡ í† í° ì´ˆê¸°í™”" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2921,9 +3574,36 @@ msgstr "ì´ ì»¤ë°‹ ë˜ëŒë¦¬ê¸°" msgid "Revert this merge request" msgstr "ì´ ë¨¸ì§€ 리퀘스트 ë˜ëŒë¦¬ê¸°" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "" @@ -2939,6 +3619,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "새로운 파ì´í”„ë¼ì¸ 스케줄 잡기" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "" @@ -2948,6 +3631,9 @@ msgstr "파ì´í”„ë¼ì¸ 스케줄ë§" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "브랜치 ë° íƒœê·¸ 검색" @@ -3011,15 +3697,33 @@ msgstr "" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "%{protocol} í”„ë¡œí† ì½œì„ í†µí•´ Pull 하거나 Pushí•˜ë ¤ë©´ ê³„ì •ì— íŒ¨ìŠ¤ì›Œë“œë¥¼ ì„¤ì •í•˜ì‹ì‹œì˜¤." +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "Koding ì„¤ì •" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "패스워드 ì„¤ì •" @@ -3029,6 +3733,9 @@ msgstr "" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3063,40 +3770,40 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" -msgid "Snippets" +msgid "Sign-in restrictions" msgstr "" -msgid "Something went wrong on our end" +msgid "Sign-up restrictions" msgstr "" -msgid "Something went wrong on our end." +msgid "Size and domain settings for static websites" msgstr "" -msgid "Something went wrong trying to change the confidentiality of this issue" +msgid "Slack application" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" +msgid "Snippets" msgstr "" -msgid "Something went wrong when toggling the button" +msgid "Something went wrong on our end" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong on our end." msgstr "" -msgid "Something went wrong while fetching SAST." +msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while fetching the projects." +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" -msgid "Something went wrong while fetching the registry list." +msgid "Something went wrong while fetching SAST." msgstr "" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" +msgid "Something went wrong while fetching the projects." msgstr "" -msgid "Something went wrong while resolving this discussion. Please try again." +msgid "Something went wrong while fetching the registry list." msgstr "" msgid "Something went wrong. Please try again." @@ -3216,12 +3923,21 @@ msgstr "" msgid "Spam Logs" msgstr "" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "Runner ì„¤ì • 중 ë‹¤ìŒ URLì„ ì§€ì •í•˜ì„¸ìš”." msgid "StarProject|Star" msgstr "별표" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "" @@ -3231,6 +3947,15 @@ msgstr "ì´ ë³€ê²½ 사í•ìœ¼ë¡œ %{new_merge_request} ì„ ì‹œìž‘í•˜ì‹ì‹œì˜¤." msgid "Start the Runner!" msgstr "Runner 시작!" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "" @@ -3243,9 +3968,15 @@ msgstr "" msgid "Switch branch/tag" msgstr "스위치 브랜치/태그" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3325,6 +4056,9 @@ msgstr "" msgid "Target Branch" msgstr "ëŒ€ìƒ ë¸Œëžœì¹˜" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "" @@ -3340,15 +4074,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "Coding Stage는 첫 번째 커밋ì—서부터 머지 리퀘스트 ìƒì„±ê¹Œì§€ì˜ ì‹œê°„ì„ ë³´ì—¬ì¤ë‹ˆë‹¤. 첫 번째 머지 ë¦¬í€˜ìŠ¤íŠ¸ì„ ìƒì„±í•˜ë©´ ë°ì´í„°ê°€ ìžë™ìœ¼ë¡œ ì—¬ê¸°ì— ì¶”ê°€ë©ë‹ˆë‹¤." msgid "The collection of events added to the data gathered for that stage." msgstr "해당 단계ì—ì„œ 수집 ëœ ë°ì´í„°ê°€ ì´ë²¤íŠ¸ 모ìŒì— 추가ë˜ì—ˆìŠµë‹ˆë‹¤." +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "í¬í¬ 관계가 ì œê±°ë˜ì—ˆìŠµë‹ˆë‹¤." +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "ì´ìŠˆ 단계ì—는 ì´ìŠˆë¥¼ 작성하여 마ì¼ìŠ¤í†¤ìœ¼ë¡œ ì§€ì •í•˜ëŠ” ë° ê±¸ë¦¬ëŠ” 시간 ë˜ëŠ” ì´ìŠˆ ë³´ë“œì˜ ëª©ë¡ì— ì´ìŠˆë¥¼ 추가하는 ì‹œê°„ì´ í‘œì‹œë©ë‹ˆë‹¤. ì´ ë‹¨ê³„ì˜ ë°ì´í„°ë¥¼ 보기 위해서는 ì´ìŠˆë¥¼ ë¨¼ì € 작성해야 합니다." @@ -3361,12 +4104,18 @@ msgstr "" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "개발 ìˆ˜ëª…ì£¼ê¸°ì˜ ë‹¨ê³„." msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "ê³„íš ë‹¨ê³„ì—서는 ì´ì „ 단계ì—ì„œ 첫 번째 커밋 ì‹œê°„ì´ í‘œì‹œë©ë‹ˆë‹¤. ì´ ì‹œê°„ì€ ì²« 번째 ì»¤ë°‹ì„ ëˆ„ë¥´ë©´ ìžë™ìœ¼ë¡œ 추가ë©ë‹ˆë‹¤." +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "프로ë•ì…˜ 단계ì—서는 ë¬¸ì œë¥¼ ë§Œë“¤ê³ ì½”ë“œë¥¼ 프로ë•ì…˜ 환경으로 ë°°í¬í•˜ëŠ” ë° ê±¸ë¦¬ëŠ” ì´ ì‹œê°„ì„ ë³´ì—¬ì¤ë‹ˆë‹¤. ìƒì‚°ì£¼ê¸°ì— 대한 ì™„ì „í•œ ì•„ì´ë””어를 ì–»ì€ í›„ì—는 ë°ì´í„°ê°€ ìžë™ìœ¼ë¡œ 추가ë©ë‹ˆë‹¤." @@ -3382,6 +4131,9 @@ msgstr "ì´ í”„ë¡œì íŠ¸ì˜ ì €ìž¥ì†Œê°€ 존재하지 않습니다." msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "Review 단계ì—서는 머지 리퀘스트를 작성한 후 ë¨¸ì§€í•˜ê¸°ê¹Œì§€ì˜ ì‹œê°„ì„ ë³´ì—¬ì¤ë‹ˆë‹¤. ë°ì´í„°ëŠ” 첫 번째 머지 ë¦¬í€˜ìŠ¤íŠ¸ì„ ë¨¸ì§€ í•œ í›„ì— ìžë™ìœ¼ë¡œ 추가ë©ë‹ˆë‹¤." @@ -3418,6 +4170,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "git storageì— ì ‘ê·¼í•˜ëŠ”ë° ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. " +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3490,6 +4245,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3502,6 +4260,12 @@ msgstr "ì´ìŠˆê°€ 구현ë˜ê¸° ì „ì˜ ì‹œê°„" msgid "Time between merge request creation and merge/close" msgstr "머지 리퀘스트 ìƒì„±ê³¼ 머지 / 닫기 사ì´ì˜ 시간" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3657,6 +4421,36 @@ msgstr "" msgid "Title" msgstr "" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3696,18 +4490,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "" @@ -3747,6 +4535,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "ì—…ë¡œë“œí•˜ë ¤ë©´ í´ë¦í•˜ì‹ì‹œì˜¤." +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3756,24 +4550,51 @@ msgstr "ì„¤ì • ì¤‘ì— ë‹¤ìŒ ë“±ë¡ í† í° ì´ìš© : " msgid "Use your global notification setting" msgstr "ì „ì²´ 알림 ì„¤ì • 사용" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "" +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "열린 머지 리퀘스트보기" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "" +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "내부" @@ -3801,12 +4622,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "" @@ -3927,14 +4754,20 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "%{group_name} ê·¸ë£¹ì„ ì œê±°í•˜ë ¤ê³ í•©ë‹ˆë‹¤. \\\"ì •ë§ë¡œ\\\" 확실합니까?" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "%{project_name_with_namespace} 프로ì 트를 ì‚ì œí•˜ë ¤ê³ í•©ë‹ˆë‹¤. \"ì‚ì œëœ í”„ë¡œì 트를 ë³µì› í• ìˆ˜ 없습니다! \\\"ì •ë§ë¡œ\\\" 확실합니까?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "í¬í¬ 관계를 소스 프로ì 트 %{forked_from_project}ì— ëŒ€í•´ ì œê±°í•˜ë ¤ê³ í•©ë‹ˆë‹¤. \"ì •ë§ë¡œ\" 확실합니까?" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "%{project_name_with_namespace}ì„ ë‹¤ë¥¸ ì†Œìœ ìžì—게 ì´ì „í•˜ë ¤ê³ í•©ë‹ˆë‹¤. \"ì •ë§ë¡œ\" 확실합니까?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." +msgstr "" msgid "You can also create a project from the command line." msgstr "" @@ -4008,9 +4841,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4026,6 +4877,13 @@ msgstr "ê·€í•˜ì˜ ì´ë¦„" msgid "Your projects" msgstr "" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" + msgid "assign yourself" msgstr "" @@ -4035,12 +4893,30 @@ msgstr "" msgid "by" msgstr "" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4068,9 +4944,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4083,40 +4956,66 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" msgid_plural "days" msgstr[0] "ì¼" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4127,9 +5026,21 @@ msgstr[0] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4142,6 +5053,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4169,18 +5083,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4265,6 +5188,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4302,6 +5228,9 @@ msgstr "" msgid "personal access token" msgstr "" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4311,6 +5240,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "" diff --git a/locale/nl_NL/gitlab.po b/locale/nl_NL/gitlab.po index ce3f2e5627e..1b3811198a8 100644 --- a/locale/nl_NL/gitlab.po +++ b/locale/nl_NL/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:22-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:39-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -29,6 +29,11 @@ msgid_plural "%d commits behind" msgstr[0] "" msgstr[1] "" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" +msgstr[1] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" @@ -44,6 +49,11 @@ msgid_plural "%d merge requests" msgstr[0] "" msgstr[1] "" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" +msgstr[1] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "%s andere commit is weggelaten om prestatieproblemen te voorkomen." @@ -60,6 +70,9 @@ msgid_plural "%{count} participants" msgstr[0] "" msgstr[1] "" +msgid "%{loadingIcon} Started" +msgstr "" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "" @@ -103,15 +116,30 @@ msgstr "" msgid "2FA enabled" msgstr "" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "Over auto deploy" msgid "Abuse Reports" msgstr "Misbruik rapporten" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "Toegangstokens" @@ -121,6 +149,9 @@ msgstr "" msgid "Account" msgstr "Account" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "Actief" @@ -217,9 +248,33 @@ msgstr "Alles" msgid "All changes are committed" msgstr "" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "" +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + msgid "An error occurred previewing the blob" msgstr "" @@ -298,6 +353,9 @@ msgstr "" msgid "An error occurred. Please try again." msgstr "" +msgid "Any Label" +msgstr "" + msgid "Appearance" msgstr "Uiterlijk" @@ -331,6 +389,9 @@ msgstr "" msgid "Artifacts" msgstr "" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "" @@ -343,6 +404,15 @@ msgstr "" msgid "Assign to" msgstr "" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "" @@ -367,6 +437,9 @@ msgstr "" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -409,6 +482,12 @@ msgstr "" msgid "Average per day: %{average}" msgstr "" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "" @@ -492,6 +571,15 @@ msgstr "BranchSwitcherTitle|Ga naar branch" msgid "Branches" msgstr "Branches" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "Branches|Kan geen HEAD-commit vinden voor deze branch" @@ -537,12 +625,39 @@ msgstr "" msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" msgstr "" msgid "Branches|Sort by" msgstr "" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -588,30 +703,45 @@ msgstr "Door bestanden bladeren" msgid "Browse files" msgstr "Door bestanden bladeren" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "door" msgid "CI / CD" msgstr "CI / CD" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" msgstr "" +msgid "CI/CD for external repo" +msgstr "" + msgid "CICD|Jobs" msgstr "" msgid "Cancel" msgstr "Annuleren" -msgid "Cancel edit" -msgstr "Bewerken annuleren" +msgid "Cannot be merged automatically" +msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "" @@ -666,6 +796,12 @@ msgstr "" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "" +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "" @@ -768,6 +904,15 @@ msgstr "" msgid "Click to expand text" msgstr "" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "" @@ -867,6 +1012,9 @@ msgstr "" msgid "ClusterIntegration|Helm Tiller" msgstr "" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "" @@ -876,6 +1024,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "" @@ -894,6 +1045,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -927,6 +1081,9 @@ msgstr "" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "" @@ -987,6 +1144,9 @@ msgstr "" msgid "ClusterIntegration|Save changes" msgstr "" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1014,6 +1174,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1138,6 +1301,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1153,9 +1322,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "" @@ -1201,6 +1406,12 @@ msgstr "" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "" +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "" @@ -1264,7 +1475,7 @@ msgstr "" msgid "Create directory" msgstr "Maak map aan" -msgid "Create empty bare repository" +msgid "Create empty repository" msgstr "" msgid "Create epic" @@ -1273,6 +1484,9 @@ msgstr "" msgid "Create file" msgstr "" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1297,6 +1511,9 @@ msgstr "" msgid "Create new..." msgstr "" +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "" @@ -1330,6 +1547,9 @@ msgstr "" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "" +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "" @@ -1413,9 +1633,15 @@ msgstr "" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "" +msgid "Done" +msgstr "" + msgid "Download" msgstr "" @@ -1443,9 +1669,15 @@ msgstr "" msgid "DownloadSource|Download" msgstr "" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "" @@ -1455,6 +1687,18 @@ msgstr "" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "" @@ -1464,6 +1708,33 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1524,6 +1795,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1599,9 +1873,15 @@ msgstr "" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1611,6 +1891,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1644,6 +1927,9 @@ msgstr "" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "" @@ -1653,12 +1939,21 @@ msgstr "" msgid "Find file" msgstr "" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "" msgid "FirstPushedBy|pushed by" msgstr "" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "" @@ -1670,9 +1965,15 @@ msgstr "" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "" @@ -1691,12 +1992,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "" +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1742,21 +2049,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1769,9 +2103,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1802,6 +2148,9 @@ msgstr "" msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1811,12 +2160,30 @@ msgstr "" msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "" @@ -1883,9 +2250,6 @@ msgstr "" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "" @@ -1916,6 +2280,9 @@ msgstr "" msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "" @@ -1934,6 +2301,15 @@ msgstr "" msgid "HealthCheck|Unhealthy" msgstr "" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1945,12 +2321,39 @@ msgstr "" msgid "Housekeeping successfully started" msgstr "" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "" @@ -1974,6 +2377,9 @@ msgstr[1] "" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2028,6 +2434,9 @@ msgstr "" msgid "June" msgstr "" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2058,12 +2467,30 @@ msgstr "" msgid "LFSStatus|Enabled" msgstr "" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "" @@ -2123,6 +2550,9 @@ msgstr "" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2135,9 +2565,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "" @@ -2153,9 +2580,21 @@ msgstr "" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "" @@ -2177,6 +2616,9 @@ msgstr "" msgid "Members" msgstr "" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "" @@ -2189,15 +2631,87 @@ msgstr "" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2213,6 +2727,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "" @@ -2225,6 +2748,9 @@ msgstr "" msgid "Monitoring" msgstr "" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2299,6 +2825,9 @@ msgstr "" msgid "New tag" msgstr "" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2317,6 +2846,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "" @@ -2332,6 +2864,12 @@ msgstr "" msgid "Not available" msgstr "" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2341,6 +2879,18 @@ msgstr "" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "" @@ -2425,6 +2975,12 @@ msgstr "" msgid "OfSearchInADropdown|Filter" msgstr "" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "" @@ -2446,12 +3002,18 @@ msgstr "" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "" msgid "Owner" msgstr "" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "" @@ -2464,9 +3026,21 @@ msgstr "" msgid "Pagination|« First" msgstr "" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "" @@ -2548,9 +3122,36 @@ msgstr "" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2581,6 +3182,9 @@ msgstr "" msgid "Pipeline|with stages" msgstr "" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2590,6 +3194,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "" @@ -2644,6 +3254,9 @@ msgstr "" msgid "Profiles|your account" msgstr "" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2668,9 +3281,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "" @@ -2767,6 +3377,12 @@ msgstr "" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2779,9 +3395,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "" +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "" +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2794,19 +3422,13 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "" - msgid "PrometheusService|Missing environment variable" msgstr "" -msgid "PrometheusService|Monitored" -msgstr "" - msgid "PrometheusService|More information" msgstr "" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." +msgid "PrometheusService|New metric" msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" @@ -2815,6 +3437,9 @@ msgstr "" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2824,7 +3449,16 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" msgid "Protip:" @@ -2860,6 +3494,9 @@ msgstr "" msgid "Readme" msgstr "" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "" @@ -2893,6 +3530,9 @@ msgstr "" msgid "Related Merged Requests" msgstr "" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "" @@ -2908,12 +3548,24 @@ msgstr "" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "" @@ -2929,6 +3581,9 @@ msgstr "" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2940,9 +3595,36 @@ msgstr "" msgid "Revert this merge request" msgstr "" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "" @@ -2958,6 +3640,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "" @@ -2967,6 +3652,9 @@ msgstr "" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "" @@ -3030,15 +3718,33 @@ msgstr "" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "" +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "" @@ -3048,6 +3754,9 @@ msgstr "" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3083,40 +3792,40 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" -msgid "Snippets" +msgid "Sign-in restrictions" msgstr "" -msgid "Something went wrong on our end" +msgid "Sign-up restrictions" msgstr "" -msgid "Something went wrong on our end." +msgid "Size and domain settings for static websites" msgstr "" -msgid "Something went wrong trying to change the confidentiality of this issue" +msgid "Slack application" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" +msgid "Snippets" msgstr "" -msgid "Something went wrong when toggling the button" +msgid "Something went wrong on our end" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong on our end." msgstr "" -msgid "Something went wrong while fetching SAST." +msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while fetching the projects." +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" -msgid "Something went wrong while fetching the registry list." +msgid "Something went wrong while fetching SAST." msgstr "" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" +msgid "Something went wrong while fetching the projects." msgstr "" -msgid "Something went wrong while resolving this discussion. Please try again." +msgid "Something went wrong while fetching the registry list." msgstr "" msgid "Something went wrong. Please try again." @@ -3236,12 +3945,21 @@ msgstr "" msgid "Spam Logs" msgstr "" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "" msgid "StarProject|Star" msgstr "" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "" @@ -3251,6 +3969,15 @@ msgstr "" msgid "Start the Runner!" msgstr "" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "" @@ -3263,9 +3990,15 @@ msgstr "" msgid "Switch branch/tag" msgstr "" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3346,6 +4079,9 @@ msgstr "" msgid "Target Branch" msgstr "" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "" @@ -3361,15 +4097,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "" msgid "The collection of events added to the data gathered for that stage." msgstr "" +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "" +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "" @@ -3382,12 +4127,18 @@ msgstr "" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "" msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "" +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "" @@ -3403,6 +4154,9 @@ msgstr "" msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "" @@ -3439,6 +4193,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "" +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3511,6 +4268,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3523,6 +4283,12 @@ msgstr "" msgid "Time between merge request creation and merge/close" msgstr "" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3680,6 +4446,36 @@ msgstr "" msgid "Title" msgstr "" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3719,18 +4515,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "" @@ -3770,6 +4560,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3779,24 +4575,51 @@ msgstr "" msgid "Use your global notification setting" msgstr "" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "" +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "" +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "" @@ -3824,12 +4647,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "" @@ -3950,13 +4779,19 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." msgstr "" msgid "You can also create a project from the command line." @@ -4031,9 +4866,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4049,6 +4902,14 @@ msgstr "" msgid "Your projects" msgstr "" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + msgid "assign yourself" msgstr "" @@ -4058,12 +4919,30 @@ msgstr "" msgid "by" msgstr "" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4091,9 +4970,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4106,25 +4982,28 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" @@ -4132,15 +5011,40 @@ msgid_plural "days" msgstr[0] "" msgstr[1] "" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4152,9 +5056,21 @@ msgstr[1] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4167,6 +5083,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4194,18 +5113,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4290,6 +5218,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4328,6 +5259,9 @@ msgstr "" msgid "personal access token" msgstr "" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4337,6 +5271,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "" diff --git a/locale/pl_PL/gitlab.po b/locale/pl_PL/gitlab.po index 8e414d0d07b..4ae57235f90 100644 --- a/locale/pl_PL/gitlab.po +++ b/locale/pl_PL/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:21-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:36-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -33,6 +33,13 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" @@ -54,6 +61,13 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "" @@ -74,6 +88,9 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +msgid "%{loadingIcon} Started" +msgstr "" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "" @@ -121,15 +138,30 @@ msgstr "" msgid "2FA enabled" msgstr "" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "" msgid "Abuse Reports" msgstr "" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "" @@ -139,6 +171,9 @@ msgstr "" msgid "Account" msgstr "" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "" @@ -235,9 +270,33 @@ msgstr "" msgid "All changes are committed" msgstr "" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "" +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + msgid "An error occurred previewing the blob" msgstr "" @@ -316,6 +375,9 @@ msgstr "" msgid "An error occurred. Please try again." msgstr "" +msgid "Any Label" +msgstr "" + msgid "Appearance" msgstr "" @@ -349,6 +411,9 @@ msgstr "" msgid "Artifacts" msgstr "" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "" @@ -361,6 +426,15 @@ msgstr "" msgid "Assign to" msgstr "" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "" @@ -385,6 +459,9 @@ msgstr "" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -427,6 +504,12 @@ msgstr "" msgid "Average per day: %{average}" msgstr "" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "" @@ -512,6 +595,15 @@ msgstr "" msgid "Branches" msgstr "" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "" @@ -557,12 +649,39 @@ msgstr "" msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" msgstr "" msgid "Branches|Sort by" msgstr "" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -608,30 +727,45 @@ msgstr "" msgid "Browse files" msgstr "" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "" msgid "CI / CD" msgstr "" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" msgstr "" +msgid "CI/CD for external repo" +msgstr "" + msgid "CICD|Jobs" msgstr "" msgid "Cancel" msgstr "" -msgid "Cancel edit" +msgid "Cannot be merged automatically" msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "" @@ -686,6 +820,12 @@ msgstr "" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "" +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "" @@ -788,6 +928,15 @@ msgstr "" msgid "Click to expand text" msgstr "" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "" @@ -887,6 +1036,9 @@ msgstr "" msgid "ClusterIntegration|Helm Tiller" msgstr "" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "" @@ -896,6 +1048,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "" @@ -914,6 +1069,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -947,6 +1105,9 @@ msgstr "" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "" @@ -1007,6 +1168,9 @@ msgstr "" msgid "ClusterIntegration|Save changes" msgstr "" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1034,6 +1198,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1162,6 +1329,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1177,9 +1350,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "" @@ -1225,6 +1434,12 @@ msgstr "" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "" +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "" @@ -1288,7 +1503,7 @@ msgstr "" msgid "Create directory" msgstr "" -msgid "Create empty bare repository" +msgid "Create empty repository" msgstr "" msgid "Create epic" @@ -1297,6 +1512,9 @@ msgstr "" msgid "Create file" msgstr "" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1321,6 +1539,9 @@ msgstr "" msgid "Create new..." msgstr "" +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "" @@ -1354,6 +1575,9 @@ msgstr "" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "" +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "" @@ -1439,9 +1663,15 @@ msgstr "" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "" +msgid "Done" +msgstr "" + msgid "Download" msgstr "" @@ -1469,9 +1699,15 @@ msgstr "" msgid "DownloadSource|Download" msgstr "" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "" @@ -1481,6 +1717,18 @@ msgstr "" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "" @@ -1490,6 +1738,33 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1550,6 +1825,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1625,9 +1903,15 @@ msgstr "" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1637,6 +1921,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1670,6 +1957,9 @@ msgstr "" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "" @@ -1679,12 +1969,21 @@ msgstr "" msgid "Find file" msgstr "" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "" msgid "FirstPushedBy|pushed by" msgstr "" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "" @@ -1698,9 +1997,15 @@ msgstr "" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "" @@ -1719,12 +2024,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "" +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1770,21 +2081,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1797,9 +2135,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1830,6 +2180,9 @@ msgstr "" msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1839,12 +2192,30 @@ msgstr "" msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "" @@ -1911,9 +2282,6 @@ msgstr "" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "" @@ -1944,6 +2312,9 @@ msgstr "" msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "" @@ -1962,6 +2333,15 @@ msgstr "" msgid "HealthCheck|Unhealthy" msgstr "" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1975,12 +2355,39 @@ msgstr "" msgid "Housekeeping successfully started" msgstr "" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "" @@ -2006,6 +2413,9 @@ msgstr[3] "" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2060,6 +2470,9 @@ msgstr "" msgid "June" msgstr "" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2090,12 +2503,30 @@ msgstr "" msgid "LFSStatus|Enabled" msgstr "" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "" @@ -2157,6 +2588,9 @@ msgstr "" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2169,9 +2603,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "" @@ -2187,9 +2618,21 @@ msgstr "" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "" @@ -2211,6 +2654,9 @@ msgstr "" msgid "Members" msgstr "" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "" @@ -2223,15 +2669,87 @@ msgstr "" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2247,6 +2765,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "" @@ -2259,6 +2786,9 @@ msgstr "" msgid "Monitoring" msgstr "" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2335,6 +2865,9 @@ msgstr "" msgid "New tag" msgstr "" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2353,6 +2886,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "" @@ -2368,6 +2904,12 @@ msgstr "" msgid "Not available" msgstr "" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2377,6 +2919,18 @@ msgstr "" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "" @@ -2461,6 +3015,12 @@ msgstr "" msgid "OfSearchInADropdown|Filter" msgstr "" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "" @@ -2482,12 +3042,18 @@ msgstr "" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "" msgid "Owner" msgstr "" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "" @@ -2500,9 +3066,21 @@ msgstr "" msgid "Pagination|« First" msgstr "" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "" @@ -2584,9 +3162,36 @@ msgstr "" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2617,6 +3222,9 @@ msgstr "" msgid "Pipeline|with stages" msgstr "" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2626,6 +3234,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "" @@ -2680,6 +3294,9 @@ msgstr "" msgid "Profiles|your account" msgstr "" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2704,9 +3321,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "" @@ -2803,6 +3417,12 @@ msgstr "" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2815,9 +3435,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "" +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "" +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2830,19 +3462,13 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "" - msgid "PrometheusService|Missing environment variable" msgstr "" -msgid "PrometheusService|Monitored" -msgstr "" - msgid "PrometheusService|More information" msgstr "" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." +msgid "PrometheusService|New metric" msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" @@ -2851,6 +3477,9 @@ msgstr "" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2860,7 +3489,16 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" msgid "Protip:" @@ -2896,6 +3534,9 @@ msgstr "" msgid "Readme" msgstr "" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "" @@ -2929,6 +3570,9 @@ msgstr "" msgid "Related Merged Requests" msgstr "" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "" @@ -2944,12 +3588,24 @@ msgstr "" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "" @@ -2965,6 +3621,9 @@ msgstr "" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2978,9 +3637,36 @@ msgstr "" msgid "Revert this merge request" msgstr "" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "" @@ -2996,6 +3682,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "" @@ -3005,6 +3694,9 @@ msgstr "" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "" @@ -3068,15 +3760,33 @@ msgstr "" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "" +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "" @@ -3086,6 +3796,9 @@ msgstr "" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3123,40 +3836,40 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" -msgid "Snippets" +msgid "Sign-in restrictions" msgstr "" -msgid "Something went wrong on our end" +msgid "Sign-up restrictions" msgstr "" -msgid "Something went wrong on our end." +msgid "Size and domain settings for static websites" msgstr "" -msgid "Something went wrong trying to change the confidentiality of this issue" +msgid "Slack application" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" +msgid "Snippets" msgstr "" -msgid "Something went wrong when toggling the button" +msgid "Something went wrong on our end" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong on our end." msgstr "" -msgid "Something went wrong while fetching SAST." +msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while fetching the projects." +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" -msgid "Something went wrong while fetching the registry list." +msgid "Something went wrong while fetching SAST." msgstr "" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" +msgid "Something went wrong while fetching the projects." msgstr "" -msgid "Something went wrong while resolving this discussion. Please try again." +msgid "Something went wrong while fetching the registry list." msgstr "" msgid "Something went wrong. Please try again." @@ -3276,12 +3989,21 @@ msgstr "" msgid "Spam Logs" msgstr "" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "" msgid "StarProject|Star" msgstr "" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "" @@ -3291,6 +4013,15 @@ msgstr "" msgid "Start the Runner!" msgstr "" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "" @@ -3303,9 +4034,15 @@ msgstr "" msgid "Switch branch/tag" msgstr "" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3388,6 +4125,9 @@ msgstr "" msgid "Target Branch" msgstr "" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "" @@ -3403,15 +4143,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "" msgid "The collection of events added to the data gathered for that stage." msgstr "" +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "" +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "" @@ -3424,12 +4173,18 @@ msgstr "" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "" msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "" +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "" @@ -3445,6 +4200,9 @@ msgstr "" msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "" @@ -3481,6 +4239,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "" +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3553,6 +4314,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3565,6 +4329,12 @@ msgstr "" msgid "Time between merge request creation and merge/close" msgstr "" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3726,6 +4496,36 @@ msgstr "" msgid "Title" msgstr "" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3765,18 +4565,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "" @@ -3816,6 +4610,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3825,24 +4625,51 @@ msgstr "" msgid "Use your global notification setting" msgstr "" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "" +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "" +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "" @@ -3870,12 +4697,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "" @@ -3996,13 +4829,19 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." msgstr "" msgid "You can also create a project from the command line." @@ -4077,9 +4916,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4095,6 +4952,16 @@ msgstr "" msgid "Your projects" msgstr "" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + msgid "assign yourself" msgstr "" @@ -4104,12 +4971,30 @@ msgstr "" msgid "by" msgstr "" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4137,9 +5022,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4152,25 +5034,28 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" @@ -4180,15 +5065,44 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4202,9 +5116,21 @@ msgstr[3] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4217,6 +5143,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4244,18 +5173,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4340,6 +5278,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4380,6 +5321,9 @@ msgstr "" msgid "personal access token" msgstr "" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4389,6 +5333,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "" diff --git a/locale/pt_BR/gitlab.po b/locale/pt_BR/gitlab.po index 277552a8d02..96a59d6d0d3 100644 --- a/locale/pt_BR/gitlab.po +++ b/locale/pt_BR/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:20-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:36-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /master/locale/gitlab.pot\n" msgid " and" -msgstr "" +msgstr " e" msgid "%d commit" msgid_plural "%d commits" @@ -26,13 +26,18 @@ msgstr[1] "%d commits" msgid "%d commit behind" msgid_plural "%d commits behind" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d commit atrás" +msgstr[1] "%d commits atrás" + +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "%d exporter" +msgstr[1] "%d exporters" msgid "%d issue" msgid_plural "%d issues" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d issue" +msgstr[1] "%d issues" msgid "%d layer" msgid_plural "%d layers" @@ -41,8 +46,13 @@ msgstr[1] "%d camadas" msgid "%d merge request" msgid_plural "%d merge requests" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d merge request" +msgstr[1] "%d merge requests" + +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "%d métrica" +msgstr[1] "%d métricas" msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." @@ -50,18 +60,21 @@ msgstr[0] "%s commit adicional foi omitido para prevenir problemas de performanc msgstr[1] "%s commits adicionais foram omitidos para prevenir problemas de performance." msgid "%{actionText} & %{openOrClose} %{noteable}" -msgstr "" +msgstr "%{actionText} & %{openOrClose} %{noteable}" msgid "%{commit_author_link} authored %{commit_timeago}" -msgstr "" +msgstr "%{commit_author_link} fez commit à %{commit_timeago}" msgid "%{count} participant" msgid_plural "%{count} participants" msgstr[0] "%{count} participante" msgstr[1] "%{count} participantes" +msgid "%{loadingIcon} Started" +msgstr "%{loadingIcon} Iniciado" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" -msgstr "" +msgstr "%{lock_path} está bloqueado pelo usuário do GitLab %{lock_user_id}" msgid "%{number_commits_behind} commits behind %{default_branch}, %{number_commits_ahead} commits ahead" msgstr "%{number_commits_behind} commits atrás de %{default_branch}, %{number_commits_ahead} commits à frente" @@ -73,7 +86,7 @@ msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will not re msgstr "%{number_of_failures} de %{maximum_failures} falhas. O GitLab não tentará mais automaticamente. Redefina as informações de storage quando o problema for resolvido." msgid "%{openOrClose} %{noteable}" -msgstr "" +msgstr "%{openOrClose} %{noteable}" msgid "%{storage_name}: failed storage access attempt on host:" msgid_plural "%{storage_name}: %{failed_attempts} failed storage access attempts:" @@ -103,15 +116,30 @@ msgstr "1ª contribuição!" msgid "2FA enabled" msgstr "Autenticação de 2 passos ativada" +msgid "<strong>Removes</strong> source branch" +msgstr "<strong>Remover</strong> branch de origem" + msgid "A collection of graphs regarding Continuous Integration" msgstr "Uma coleção de gráficos sobre Integração ContÃnua" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "Um novo \"branch\" será criado no seu \"fork\" e um novo merge request será iniciado." + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "Um projeto é onde você armazena seus arquivos (repositório), planeja seu trabalho (issues), e publica sua documentação (wiki), %{among_other_things_link}." + +msgid "A user with write access to the source branch selected this option" +msgstr "Um usuário com permissão de escrita no branch de origem selecionou esta opção" + msgid "About auto deploy" msgstr "Sobre o deploy automático" msgid "Abuse Reports" msgstr "Relatórios de abuso" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "Tokens de acesso" @@ -121,6 +149,9 @@ msgstr "Os acessos à storages com defeito foram temporariamente desabilitados p msgid "Account" msgstr "Conta" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "Ativo" @@ -140,73 +171,73 @@ msgid "Add Group Webhooks and GitLab Enterprise Edition." msgstr "Adicione o Webhooks de Grupos e GitLab Enterprise Edition." msgid "Add Kubernetes cluster" -msgstr "" +msgstr "Adicionar cluster Kubernetes" msgid "Add License" msgstr "Adicionar Licença" msgid "Add Readme" -msgstr "" +msgstr "Adicionar leia-me" msgid "Add new directory" msgstr "Adicionar novo diretório" msgid "Add todo" -msgstr "" +msgstr "Adicionar tarefa" msgid "AdminArea|Stop all jobs" -msgstr "" +msgstr "Parar todos os processos" msgid "AdminArea|Stop all jobs?" -msgstr "" +msgstr "Parar todos os processos?" msgid "AdminArea|Stop jobs" -msgstr "" +msgstr "Parar processos" msgid "AdminArea|Stopping jobs failed" -msgstr "" +msgstr "Erro ao parar processos" msgid "AdminArea|You’re about to stop all jobs.This will halt all current jobs that are running." -msgstr "" +msgstr "Você parará todos os processos. Os processos em execução serão abruptamente interrompidos." msgid "AdminHealthPageLink|health page" msgstr "página de saúde" msgid "AdminProjects|Delete" -msgstr "" +msgstr "Excluir" msgid "AdminProjects|Delete Project %{projectName}?" -msgstr "" +msgstr "Excluir o projeto %{projectName}?" msgid "AdminProjects|Delete project" -msgstr "" +msgstr "Excluir projeto" msgid "AdminSettings|Specify a domain to use by default for every project's Auto Review Apps and Auto Deploy stages." -msgstr "" +msgstr "Especifique um domÃnio a ser usado por padrão para os estágios de Auto Review Application e Auto Deploy de cada projeto." msgid "AdminUsers|Block user" -msgstr "" +msgstr "Bloquear usuário" msgid "AdminUsers|Delete User %{username} and contributions?" -msgstr "" +msgstr "Excluir o usuário %{username} e suas contribuições?" msgid "AdminUsers|Delete User %{username}?" -msgstr "" +msgstr "Excluir o usuário %{username}?" msgid "AdminUsers|Delete user" -msgstr "" +msgstr "Apagar usuário" msgid "AdminUsers|Delete user and contributions" -msgstr "" +msgstr "Excluir o usuário e suas contribuições" msgid "AdminUsers|To confirm, type %{projectName}" -msgstr "" +msgstr "Para confirmar, digite %{projectName}" msgid "AdminUsers|To confirm, type %{username}" -msgstr "" +msgstr "Para confirmar, digite %{username}" msgid "Advanced" -msgstr "" +msgstr "Avançado" msgid "Advanced settings" msgstr "Configurações avançadas" @@ -215,14 +246,38 @@ msgid "All" msgstr "Todos" msgid "All changes are committed" +msgstr "Houve commit com todas as mudanças" + +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "Todas as funcionalidades estão habilitadas para projetos em branco, a partir de templates ou ao importar, mas você pode desativá-los posteriormente nas configurações do projeto." + +msgid "Allow edits from maintainers." +msgstr "Permitir as edições dos mantenedores." + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." msgstr "" msgid "Allows you to add and manage Kubernetes clusters." +msgstr "Permite adicionar e gerenciar clusters do Kubernetes." + +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" msgstr "" -msgid "An error occurred previewing the blob" +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" msgstr "" +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "Alternativamente, você pode usar um %{personal_access_token_link}. Quando você cria seu Token de Acesso Pessoal, você precisará selecionar o escopo do <code>repositório</code>, para que possamos exibir uma lista de seus repositórios públicos e privados que estão disponÃveis para se conectar." + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "Alternativamente, você pode usar um %{personal_access_token_link}. Quando você cria seu Token de Acesso Pessoal, você precisará selecionar o escopo do <code>repositório</code>, para que possamos exibir uma lista de seus repositórios públicos e privados que estão disponÃveis para se importar." + +msgid "An error occurred previewing the blob" +msgstr "Erro ao pré-visualizar o blob" + msgid "An error occurred when toggling the notification subscription" msgstr "Erro ao modificar notificação de assinatura" @@ -230,74 +285,77 @@ msgid "An error occurred when updating the issue weight" msgstr "Um erro aconteceu ao atualizar o peso da issue" msgid "An error occurred while adding approver" -msgstr "" +msgstr "Erro ao adicionar o aprovador" msgid "An error occurred while detecting host keys" -msgstr "" +msgstr "Erro ao detectar a chave do host" msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again." -msgstr "" +msgstr "Erro ao remover alerta. Atualize a página e tente novamente." msgid "An error occurred while fetching markdown preview" -msgstr "" +msgstr "Erro ao gerar pré-visualização do markdown" msgid "An error occurred while fetching sidebar data" msgstr "Erro ao recuperar informações da barra lateral" msgid "An error occurred while fetching the pipeline." -msgstr "" +msgstr "Erro ao recuperar informações da pipeline." msgid "An error occurred while getting projects" -msgstr "" +msgstr "Erro ao recuperar projetos" msgid "An error occurred while importing project" -msgstr "" +msgstr "Erro ao importar o projeto" msgid "An error occurred while initializing path locks" -msgstr "" +msgstr "Erro ao iniciar o bloqueio do Path" msgid "An error occurred while loading commits" -msgstr "" +msgstr "Erro ao carregar os Commits" msgid "An error occurred while loading diff" -msgstr "" +msgstr "Erro ao carregar o Diff" msgid "An error occurred while loading filenames" -msgstr "" +msgstr "Erro ao carregar nomes de arquivos" msgid "An error occurred while loading the file" -msgstr "" +msgstr "Erro ao carregar o arquivo" msgid "An error occurred while making the request." -msgstr "" +msgstr "Erro ao fazer a requisição." msgid "An error occurred while removing approver" -msgstr "" +msgstr "Erro ao remover o aprovador" msgid "An error occurred while rendering KaTeX" -msgstr "" +msgstr "Erro ao renderizar o KaTeX" msgid "An error occurred while rendering preview broadcast message" -msgstr "" +msgstr "Erro ao renderizar pré-visualização da mensagem de transmissão" msgid "An error occurred while retrieving calendar activity" -msgstr "" +msgstr "Erro ao recuperar calendário de atividades" msgid "An error occurred while retrieving diff" -msgstr "" +msgstr "Erro ao recuperar o diff" msgid "An error occurred while saving LDAP override status. Please try again." -msgstr "" +msgstr "Um erro ocorreu ao sobrescrever o status LDAP." msgid "An error occurred while saving assignees" -msgstr "" +msgstr "Erro ao salvar assignees" msgid "An error occurred while validating username" -msgstr "" +msgstr "Erro ao validar o nome de usuário" msgid "An error occurred. Please try again." msgstr "Ocorreu um erro. Tente novamente." +msgid "Any Label" +msgstr "Qualquer Label" + msgid "Appearance" msgstr "Aparência" @@ -323,7 +381,7 @@ msgid "Are you sure you want to reset the health check token?" msgstr "Você tem certeza que quer reiniciar o token de status de saúde?" msgid "Are you sure you want to unlock %{path_lock_path}?" -msgstr "" +msgstr "Tem certeza que deseja desbloquear %{path_lock_path}?" msgid "Are you sure?" msgstr "Você tem certeza?" @@ -331,21 +389,33 @@ msgstr "Você tem certeza?" msgid "Artifacts" msgstr "Artefatos" -msgid "Assign custom color like #FF0000" +msgid "Assertion consumer service URL" msgstr "" +msgid "Assign custom color like #FF0000" +msgstr "Coloque uma cor personalizada, como #FF0000" + msgid "Assign labels" -msgstr "" +msgstr "Atribuir labels" msgid "Assign milestone" -msgstr "" +msgstr "Atribuir milestone" msgid "Assign to" +msgstr "Atribuir à " + +msgid "Assigned Issues" msgstr "" -msgid "Assignee" +msgid "Assigned Merge Requests" msgstr "" +msgid "Assigned to :name" +msgstr "" + +msgid "Assignee" +msgstr "Responsável" + msgid "Attach a file by drag & drop or %{upload_link}" msgstr "Para anexar arquivo, arraste e solte ou %{upload_link}" @@ -362,16 +432,19 @@ msgid "Author" msgstr "Autor" msgid "Authors: %{authors}" -msgstr "" +msgstr "Autores: %{authors}" msgid "Auto DevOps enabled" +msgstr "Auto DevOps ativo" + +msgid "Auto DevOps, runners and job artifacts" msgstr "" msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." -msgstr "" +msgstr "Apps de revisão e deploy automáticos precisam de um %{kubernetes} para funcionar corretamente." msgid "Auto Review Apps and Auto Deploy need a domain name and a %{kubernetes} to work correctly." -msgstr "" +msgstr "Apps de revisão e deploy automáticos precisam de um nome de domÃnio e um %{kubernetes} para funcionar corretamente." msgid "Auto Review Apps and Auto Deploy need a domain name to work correctly." msgstr "Apps de revisão automática e Auto Deploy precisam de um nome de domÃnio para que funcione corretamente." @@ -392,26 +465,32 @@ msgid "AutoDevOps|Learn more in the %{link_to_documentation}" msgstr "Saiba mais em %{link_to_documentation}" msgid "AutoDevOps|You can automatically build and test your application if you %{link_to_auto_devops_settings} for this project. You can automatically deploy it as well, if you %{link_to_add_kubernetes_cluster}." -msgstr "" +msgstr "Você pode automaticamente construir e testar sua aplicação, se você %{link_to_auto_devops_settings} para este projeto. Você pode também fazer o deploy automaticamente, se você %{link_to_add_kubernetes_cluster}." msgid "AutoDevOps|add a Kubernetes cluster" -msgstr "" +msgstr "adicionar um cluster Kubernetes" msgid "AutoDevOps|enable Auto DevOps (Beta)" -msgstr "" +msgstr "ativar auto DevOps (Beta)" msgid "Available" msgstr "DisponÃvel" msgid "Avatar will be removed. Are you sure?" -msgstr "" +msgstr "Foto de perfil será removida. Tem certeza?" msgid "Average per day: %{average}" +msgstr "Média diária: %{average}" + +msgid "Background Color" msgstr "" -msgid "Begin with the selected commit" +msgid "Background jobs" msgstr "" +msgid "Begin with the selected commit" +msgstr "Comece com o commit selecionado" + msgid "Billing" msgstr "Cobrança" @@ -468,8 +547,8 @@ msgstr "por usuário" msgid "Branch (%{branch_count})" msgid_plural "Branches (%{branch_count})" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Branch (%{branch_count})" +msgstr[1] "Branches (%{branch_count})" msgid "Branch <strong>%{branch_name}</strong> was created. To set up auto deploy, choose a GitLab CI Yaml template and commit your changes. %{link_to_autodeploy_doc}" msgstr "O branch <strong>%{branch_name}</strong> foi criado. Para configurar o deploy automático, selecione um modelo de Yaml do GitLab CI e commit suas mudanças. %{link_to_autodeploy_doc}" @@ -492,6 +571,15 @@ msgstr "Mudar de branch" msgid "Branches" msgstr "Branches" +msgid "Branches|Active" +msgstr "Ativos" + +msgid "Branches|Active branches" +msgstr "Branches ativos" + +msgid "Branches|All" +msgstr "Todos" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "Não foi possÃvel encontrar o commit HEAD para essa branch" @@ -537,12 +625,39 @@ msgstr "Uma vez que você confirmar e pressionar %{delete_protected_branch}, nã msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "Somente alguém master ou dono do projeto poderá apagar branches protegidas" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" -msgstr "Ramos protegidos podem ser gerenciados em %{project_settings_link}" +msgid "Branches|Overview" +msgstr "Visão Geral" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "Branches protegidas podem ser gerenciadas em %{project_settings_link}." + +msgid "Branches|Show active branches" +msgstr "Mostrar branches ativas" + +msgid "Branches|Show all branches" +msgstr "Mostrar todas as branches" + +msgid "Branches|Show more active branches" +msgstr "Mostrar as branches mais ativas" + +msgid "Branches|Show more stale branches" +msgstr "Mostrar os branches obsoletos" + +msgid "Branches|Show overview of the branches" +msgstr "Mostrar visão geral dos branches" + +msgid "Branches|Show stale branches" +msgstr "Mostrar branches obsoletos" msgid "Branches|Sort by" msgstr "Ordernar por" +msgid "Branches|Stale" +msgstr "Obsoleto" + +msgid "Branches|Stale branches" +msgstr "Branches obsoletos" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "O branch não pode ser atualizado automaticamente porque diverge do seu upstream." @@ -588,14 +703,23 @@ msgstr "Acessar arquivos" msgid "Browse files" msgstr "Navegar pelos arquivos" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "por" msgid "CI / CD" msgstr "CI / CD" +msgid "CI/CD" +msgstr "CI/CD" + msgid "CI/CD configuration" -msgstr "" +msgstr "Configuração de CI/CD" + +msgid "CI/CD for external repo" +msgstr "CI/CD para um repositório externo" msgid "CICD|Jobs" msgstr "Jobs" @@ -603,15 +727,21 @@ msgstr "Jobs" msgid "Cancel" msgstr "Cancelar" -msgid "Cancel edit" -msgstr "Cancelar edição" +msgid "Cannot be merged automatically" +msgstr "" msgid "Cannot modify managed Kubernetes cluster" +msgstr "Não se pode modificar um cluster Kubernetes gerenciado" + +msgid "Certificate fingerprint" msgstr "" msgid "Change Weight" msgstr "Alterar peso" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "Pick para um branch" @@ -625,13 +755,13 @@ msgid "ChangeTypeAction|Revert" msgstr "Reverter" msgid "ChangeTypeAction|This will create a new commit in order to revert the existing changes." -msgstr "" +msgstr "Isso criará um novo commit para reverter as mudanças existentes." msgid "Changelog" msgstr "Registro de mudanças" msgid "Changes are shown as if the <b>source</b> revision was being merged into the <b>target</b> revision." -msgstr "" +msgstr "Mudanças serão mostradas se revisão de <b>origem</b> tiver sofrido merge na revisão <b>alvo</b>." msgid "Charts" msgstr "Gráficos" @@ -640,7 +770,7 @@ msgid "Chat" msgstr "Bate-papo" msgid "Check interval" -msgstr "" +msgstr "Intervalo de verificação" msgid "Checking %{text} availability…" msgstr "Verificando disponibilidade de %{text}…" @@ -655,19 +785,25 @@ msgid "Cherry-pick this merge request" msgstr "Cherry-pick esse merge request" msgid "Choose File ..." -msgstr "" +msgstr "Escolha o arquivo ..." msgid "Choose a branch/tag (e.g. %{master}) or enter a commit (e.g. %{sha}) to see what's changed or to create a merge request." -msgstr "" +msgstr "Escolha a branch/tag (ex: %{master}) ou número do commit (ex: %{sha}) para ver o que mudou ou para criar um merge request." msgid "Choose file..." -msgstr "" +msgstr "Escolha o arquivo..." msgid "Choose which groups you wish to synchronize to this secondary node." -msgstr "" +msgstr "Escolha quais grupos você deseja sincronizar nesse nó secundário." + +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "Escolha quais repositórios você deseja se conectar e executar CI/CD pipeline." + +msgid "Choose which repositories you want to import." +msgstr "Escolha quais repositórios você deseja importar." msgid "Choose which shards you wish to synchronize to this secondary node." -msgstr "" +msgstr "Escolha quais shards você deseja que sincronizem com esse nó secundário." msgid "CiStatusLabel|canceled" msgstr "cancelado" @@ -724,48 +860,57 @@ msgid "CiStatus|running" msgstr "executando" msgid "CiVariables|Input variable key" -msgstr "" +msgstr "Digite o nome da variável" msgid "CiVariables|Input variable value" -msgstr "" +msgstr "Digite o valor da variável" msgid "CiVariables|Remove variable row" -msgstr "" +msgstr "Remover a variável" msgid "CiVariable|* (All environments)" -msgstr "" +msgstr "* (Todos os ambientes)" msgid "CiVariable|All environments" -msgstr "" +msgstr "Todos os ambientes" msgid "CiVariable|Create wildcard" -msgstr "" +msgstr "Criar um curinga" msgid "CiVariable|Error occured while saving variables" -msgstr "" +msgstr "Erro ao salvar variáveis" msgid "CiVariable|New environment" -msgstr "" +msgstr "Novo ambiente" msgid "CiVariable|Protected" -msgstr "" +msgstr "Protegido" msgid "CiVariable|Search environments" -msgstr "" +msgstr "Procurar ambientes" msgid "CiVariable|Toggle protected" -msgstr "" +msgstr "Alternar proteção" msgid "CiVariable|Validation failed" -msgstr "" +msgstr "Falha na validação" msgid "CircuitBreakerApiLink|circuitbreaker api" msgstr "interruptor da api" msgid "Click the button below to begin the install process by navigating to the Kubernetes page" -msgstr "" +msgstr "Clique no botão abaixo para iniciar o processo de instalação navegando para a página do Kubernetes" msgid "Click to expand text" +msgstr "Cliquei pra expandir o texto" + +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" msgstr "" msgid "Clone repository" @@ -775,28 +920,28 @@ msgid "Close" msgstr "Fechar" msgid "Closed" -msgstr "" +msgstr "Fechado" msgid "ClusterIntegration|%{appList} was successfully installed on your Kubernetes cluster" -msgstr "" +msgstr "%{appList} foi instalado com sucesso no seu cluster Kubernetes" msgid "ClusterIntegration|API URL" msgstr "API URL" msgid "ClusterIntegration|Add Kubernetes cluster" -msgstr "" +msgstr "Adicionar cluster Kubernetes" msgid "ClusterIntegration|Add an existing Kubernetes cluster" -msgstr "" +msgstr "Adicionar um cluster Kubernetes existente" msgid "ClusterIntegration|Advanced options on this Kubernetes cluster's integration" -msgstr "" +msgstr "Opções avançadas na integração deste cluster Kubernetes" msgid "ClusterIntegration|Applications" msgstr "Aplicações" msgid "ClusterIntegration|Are you sure you want to remove this Kubernetes cluster's integration? This will not delete your actual Kubernetes cluster." -msgstr "" +msgstr "Tem certeza de que deseja remover a integração deste cluster do Kubernetes? Isso não excluirá o seu cluster atual do Kubernetes." msgid "ClusterIntegration|CA Certificate" msgstr "Certificado CA" @@ -805,10 +950,10 @@ msgid "ClusterIntegration|Certificate Authority bundle (PEM format)" msgstr "Pacote de autoridade certificadora (Formato PEM)" msgid "ClusterIntegration|Choose how to set up Kubernetes cluster integration" -msgstr "" +msgstr "Escolha como configurar a integração do cluster Kubernetes" msgid "ClusterIntegration|Choose which of your project's environments will use this Kubernetes cluster." -msgstr "" +msgstr "Escolha qual dos ambientes do seu projeto usará este cluster Kubernetes." msgid "ClusterIntegration|Control how your Kubernetes cluster integrates with GitLab" msgstr "" @@ -867,6 +1012,9 @@ msgstr "Projeto do Google Kubernetes Engine" msgid "ClusterIntegration|Helm Tiller" msgstr "Helm Tiller" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "Ingressar" @@ -876,6 +1024,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "Instalar" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "Instalado" @@ -894,6 +1045,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -927,6 +1081,9 @@ msgstr "Leia mais sobre %{link_to_documentation}" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "Tipo de máquina" @@ -940,10 +1097,10 @@ msgid "ClusterIntegration|Manage your Kubernetes cluster by visiting %{link_gke} msgstr "" msgid "ClusterIntegration|More information" -msgstr "" +msgstr "Mais informações" msgid "ClusterIntegration|Multiple Kubernetes clusters are available in GitLab Enterprise Edition Premium and Ultimate" -msgstr "" +msgstr "Multiplos clusters Kubernetes estão disponÃveis no GitLab Enterprise Edition Premium e Ultimate" msgid "ClusterIntegration|Note:" msgstr "Nota:" @@ -967,7 +1124,7 @@ msgid "ClusterIntegration|Project namespace (optional, unique)" msgstr "Namespace do projeto (opcional, único)" msgid "ClusterIntegration|Prometheus" -msgstr "" +msgstr "Prometheus" msgid "ClusterIntegration|Read our %{link_to_help_page} on Kubernetes cluster integration." msgstr "" @@ -987,9 +1144,12 @@ msgstr "Solicitação para inÃcio de instalação falhou" msgid "ClusterIntegration|Save changes" msgstr "Salvar alterações" -msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" +msgid "ClusterIntegration|Security" msgstr "" +msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" +msgstr "Veja e edite os detalhes de seus cluster Kubernates" + msgid "ClusterIntegration|See machine types" msgstr "Ver tipos de máquina" @@ -1009,11 +1169,14 @@ msgid "ClusterIntegration|Something went wrong on our end." msgstr "Alguma coisa deu errado do nosso lado." msgid "ClusterIntegration|Something went wrong while creating your Kubernetes cluster on Google Kubernetes Engine" -msgstr "" +msgstr "Erro ao criar cluster Kubernetes no Google Kubernetes Engine" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "Algo deu errado ao instalar %{title}" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1057,13 +1220,13 @@ msgid "ClusterIntegration|properly configured" msgstr "configurado corretamente" msgid "Collapse" -msgstr "" +msgstr "Recolher" msgid "Comment and resolve discussion" msgstr "" msgid "Comment and unresolve discussion" -msgstr "" +msgstr "Comente e marque discussão como não resolvida" msgid "Comments" msgstr "Comentários" @@ -1075,8 +1238,8 @@ msgstr[1] "Commits" msgid "Commit (%{commit_count})" msgid_plural "Commits (%{commit_count})" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Commit (%{commit_count})" +msgstr[1] "Commits (%{commit_count})" msgid "Commit Message" msgstr "Mensagem de Commit" @@ -1088,10 +1251,10 @@ msgid "Commit message" msgstr "Mensagem de commit" msgid "Commit statistics for %{ref} %{start_time} - %{end_time}" -msgstr "" +msgstr "EstatÃsticas de commits para %{ref} %{start_time} - %{end_time}" msgid "Commit to %{branchName} branch" -msgstr "" +msgstr "Commit para a branch %{branchName}" msgid "CommitBoxTitle|Commit" msgstr "Commit" @@ -1106,25 +1269,25 @@ msgid "Commits feed" msgstr "Feed de commits" msgid "Commits per day hour (UTC)" -msgstr "" +msgstr "Commits por hora (UTC)" msgid "Commits per day of month" -msgstr "" +msgstr "Commits por dia do mês" msgid "Commits per weekday" -msgstr "" +msgstr "Commits por dia da semana" msgid "Commits|An error occurred while fetching merge requests data." -msgstr "" +msgstr "Erro ao recuperar dados do merge request." msgid "Commits|Commit: %{commitText}" -msgstr "" +msgstr "Commit: %{commitText}" msgid "Commits|History" msgstr "Histórico" msgid "Commits|No related merge requests found" -msgstr "" +msgstr "Nenhum merge request relacionado foi encontrado" msgid "Committed by" msgstr "Commit feito por" @@ -1133,29 +1296,71 @@ msgid "Compare" msgstr "Comparar" msgid "Compare Git revisions" -msgstr "" +msgstr "Parar versões do Git" msgid "Compare Revisions" +msgstr "Comparar revisões" + +msgid "Compare changes with the last commit" msgstr "" -msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." +msgid "Compare changes with the merge request target branch" msgstr "" +msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." +msgstr "%{source_branch} e %{target_branch} são o mesmo." + msgid "CompareBranches|Compare" -msgstr "" +msgstr "Comparar" msgid "CompareBranches|Source" -msgstr "" +msgstr "Origem" msgid "CompareBranches|Target" -msgstr "" +msgstr "Alvo" msgid "CompareBranches|There isn't anything to compare." +msgstr "Não há nada para comparar." + +msgid "Confidential" msgstr "" msgid "Confidentiality" +msgstr "Confidencialidade" + +msgid "Configure Gitaly timeouts." msgstr "" +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "Conectar" + +msgid "Connect all repositories" +msgstr "Conectar todos repositórios" + +msgid "Connect repositories from GitHub" +msgstr "Conectar repositórios do GitHub" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "Conectando..." + msgid "Container Registry" msgstr "Container Registry" @@ -1201,6 +1406,12 @@ msgstr "Use nomes de imagem diferentes" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "Com o Container Registry do Docker integrado ao Gitlab, todo projeto pode ter seu próprio espaço para guardar suas imagens." +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "Contribuições" + msgid "Contribution guide" msgstr "Guia de contribuição" @@ -1208,7 +1419,7 @@ msgid "Contributors" msgstr "Contribuidores" msgid "ContributorsPage|%{startDate} – %{endDate}" -msgstr "" +msgstr "%{startDate} - %{endDate}" msgid "ContributorsPage|Building repository graph." msgstr "Gerando gráfico do repositório." @@ -1232,40 +1443,40 @@ msgid "Copy URL to clipboard" msgstr "Copiar URL para área de transferência" msgid "Copy branch name to clipboard" -msgstr "" +msgstr "Copiar nome do branch para área de transferência" msgid "Copy command to clipboard" -msgstr "" +msgstr "Copiar o comando para área de transferência" msgid "Copy commit SHA to clipboard" msgstr "Copiar SHA do commit para a área de transferência" msgid "Copy reference to clipboard" -msgstr "" +msgstr "Copiar referência para área de transferência" msgid "Create" -msgstr "" +msgstr "Criar" msgid "Create New Directory" msgstr "Criar Novo Diretório" msgid "Create a new branch" -msgstr "" +msgstr "Criar uma nova branch" msgid "Create a new branch and merge request" -msgstr "" +msgstr "Criar um novo branch e abrir merge request" msgid "Create a personal access token on your account to pull or push via %{protocol}." msgstr "Crie um token de acesso pessoal na sua conta para dar pull ou push via %{protocol}." msgid "Create branch" -msgstr "" +msgstr "Criar a branch" msgid "Create directory" msgstr "Criar diretório" -msgid "Create empty bare repository" -msgstr "Criar repositório bruto vazio" +msgid "Create empty repository" +msgstr "" msgid "Create epic" msgstr "Criar épico" @@ -1273,14 +1484,17 @@ msgstr "Criar épico" msgid "Create file" msgstr "Criar arquivo" -msgid "Create lists from labels. Issues with that label appear in that list." +msgid "Create group label" msgstr "" +msgid "Create lists from labels. Issues with that label appear in that list." +msgstr "Criar lista a partir de labels. Issues com labels aparecem nestas listas." + msgid "Create merge request" msgstr "Criar merge request" msgid "Create merge request and branch" -msgstr "" +msgstr "Abrir merge request e criar branch" msgid "Create new branch" msgstr "Criar novo branch" @@ -1292,11 +1506,14 @@ msgid "Create new file" msgstr "Criar novo arquivo" msgid "Create new label" -msgstr "" +msgstr "Criar nova label" msgid "Create new..." msgstr "Criar novo..." +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "Fork" @@ -1307,7 +1524,7 @@ msgid "CreateTokenToCloneLink|create a personal access token" msgstr "criar um token de acesso pessoal" msgid "Creates a new branch from %{branchName}" -msgstr "" +msgstr "Cria um novo branch de %{branchName}" msgid "Creates a new branch from %{branchName} and re-directs to create a new merge request" msgstr "" @@ -1322,7 +1539,7 @@ msgid "Cron syntax" msgstr "Sintaxe do cron" msgid "Current node" -msgstr "" +msgstr "Nó atual" msgid "Custom notification events" msgstr "Eventos de notificação personalizados" @@ -1330,6 +1547,9 @@ msgstr "Eventos de notificação personalizados" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "NÃveis de notificação personalizados são equivalentes a nÃveis de participação. Com nÃveis de notificação personalizados você também será notificado sobre eventos selecionados. Para mais informações, visite %{notification_link}." +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "Análise de Ciclo" @@ -1367,7 +1587,7 @@ msgid "December" msgstr "Dezembro" msgid "Default classification label" -msgstr "" +msgstr "Label de classificação padrão" msgid "Define a custom pattern with cron syntax" msgstr "Defina um padrão personalizado utilizando a sintaxe do cron" @@ -1393,19 +1613,19 @@ msgid "Details" msgstr "Detalhes" msgid "Diffs|No file name available" -msgstr "" +msgstr "Nenhum nome de arquivo disponÃvel" msgid "Directory name" msgstr "Nome do diretório" msgid "Disable" -msgstr "" +msgstr "Desabilitar" msgid "Discard draft" -msgstr "" +msgstr "Descartar rascunho" msgid "Discover GitLab Geo." -msgstr "" +msgstr "Descubra Gitlab Geo." msgid "Dismiss Cycle Analytics introduction box" msgstr "Ignorar introdução do Cycle Analytics" @@ -1413,9 +1633,15 @@ msgstr "Ignorar introdução do Cycle Analytics" msgid "Dismiss Merge Request promotion" msgstr "Ignorar anúncio do merge request" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "Não exibir novamente" +msgid "Done" +msgstr "Pronto" + msgid "Download" msgstr "Baixar" @@ -1443,7 +1669,13 @@ msgstr "Arquivo de texto com as mudanças" msgid "DownloadSource|Download" msgstr "Baixar" +msgid "Downvotes" +msgstr "" + msgid "Due date" +msgstr "Validade" + +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." msgstr "" msgid "Edit" @@ -1453,15 +1685,54 @@ msgid "Edit Pipeline Schedule %{id}" msgstr "Alterar Agendamento do Pipeline %{id}" msgid "Edit files in the editor and commit changes here" +msgstr "Alterar arquivos no editor e fazer commit das alterações aqui" + +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" msgstr "" msgid "Emails" msgstr "Emails" msgid "Enable" -msgstr "" +msgstr "Ativar" msgid "Enable Auto DevOps" +msgstr "Ativar Auto DevOps" + +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" msgstr "" msgid "Environments|An error occurred while fetching the environments." @@ -1524,41 +1795,44 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "Epics permite que você gerencie seu portfólio de projetos de forma mais eficiente e com menos esforço" -msgid "Error checking branch data. Please try again." +msgid "Error Reporting and Logging" msgstr "" +msgid "Error checking branch data. Please try again." +msgstr "Erro ao verificar dados do branch. Favor tentar novamente." + msgid "Error committing changes. Please try again." -msgstr "" +msgstr "Erro ao realizar o commit das alterações. Favor tentar novamente." msgid "Error creating epic" msgstr "Erro ao criar épico" msgid "Error fetching contributors data." -msgstr "" +msgstr "Erro ao recuperar informações de contribuintes." msgid "Error fetching labels." -msgstr "" +msgstr "Erro ao carregar labels." msgid "Error fetching network graph." -msgstr "" +msgstr "Erro ao recuperar gráfico de rede." msgid "Error fetching refs" -msgstr "" +msgstr "Erro ao recuperar refs" msgid "Error fetching usage ping data." -msgstr "" +msgstr "Erro ao recupera dados de ping." msgid "Error occurred when toggling the notification subscription" msgstr "Erro ao alterar configuração de notificação de assinatura" msgid "Error saving label update." -msgstr "" +msgstr "Erro ao salvar alteração de label." msgid "Error updating status for all todos." -msgstr "" +msgstr "Erro ao atualizar status para todas as tarefas." msgid "Error updating todo status." -msgstr "" +msgstr "Erro ao atualizar status das tarefas." msgid "EventFilterBy|Filter by all" msgstr "EventFilterBy|Filtrar por tudo" @@ -1588,7 +1862,7 @@ msgid "Every week (Sundays at 4:00am)" msgstr "Toda semana (domingos à s 4:00)" msgid "Expand" -msgstr "" +msgstr "Expandir" msgid "Explore projects" msgstr "Explorar projetos" @@ -1599,7 +1873,13 @@ msgstr "Explorar grupos públicos" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" +msgstr "O acesso a este projeto foi negado para autorização externa" + +msgid "External authorization request timeout" msgstr "" msgid "ExternalAuthorizationService|Classification Label" @@ -1611,8 +1891,11 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "Falha" + msgid "Failed Jobs" -msgstr "" +msgstr "Jobs falharam" msgid "Failed to change the owner" msgstr "Erro ao alterar o proprietário" @@ -1633,7 +1916,7 @@ msgid "February" msgstr "Fevereiro" msgid "Fields on this page are now uneditable, you can configure" -msgstr "" +msgstr "Campos nessa página não são mais editáveis, você pode configurar" msgid "File name" msgstr "Nome do arquivo" @@ -1642,6 +1925,9 @@ msgid "Files" msgstr "Arquivos" msgid "Files (%{human_size})" +msgstr "Arquivos (%{human_size})" + +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" msgstr "" msgid "Filter by commit message" @@ -1653,12 +1939,21 @@ msgstr "Localizar por caminho" msgid "Find file" msgstr "Localizar arquivo" +msgid "Finished" +msgstr "Finalizado" + msgid "FirstPushedBy|First" msgstr "Primeiro" msgid "FirstPushedBy|pushed by" msgstr "publicado por" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "Fork" @@ -1670,9 +1965,15 @@ msgstr "Fork criado a partir de" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "Fork a partir de %{project_name} (apagado)" +msgid "Forking in progress" +msgstr "Fork em andamento" + msgid "Format" msgstr "Formato" +msgid "From %{provider_title}" +msgstr "De %{provider_title}" + msgid "From issue creation until deploy to production" msgstr "Da abertura de tarefas até a implantação para a produção" @@ -1686,63 +1987,81 @@ msgid "GPG Keys" msgstr "Chaves GPG" msgid "Generate a default set of labels" -msgstr "" +msgstr "Gerar labels padrão" msgid "Geo Nodes" msgstr "Nós de geo" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "Nó está falhando ou quebrado." msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "Nó está lento, sobrecarregado, ou acabou de recuperar após uma interrupção." -msgid "GeoNodes|Database replication lag:" +msgid "GeoNodes|Checksummed" msgstr "" +msgid "GeoNodes|Database replication lag:" +msgstr "Atraso na replicação do banco de dados:" + msgid "GeoNodes|Disabling a node stops the sync process. Are you sure?" -msgstr "" +msgstr "Desabilitar um nó para o processo de sincronização. Você tem certeza?" msgid "GeoNodes|Does not match the primary storage configuration" -msgstr "" +msgstr "Não corresponde á configuração de armazenamento primário" msgid "GeoNodes|Failed" -msgstr "" +msgstr "Falha" msgid "GeoNodes|Full" -msgstr "" +msgstr "Completo" msgid "GeoNodes|GitLab version does not match the primary node version" -msgstr "" +msgstr "Versão do GitLab não corresponde a versão do nó primário" msgid "GeoNodes|GitLab version:" -msgstr "" +msgstr "Versão do GitLab:" msgid "GeoNodes|Health status:" -msgstr "" +msgstr "Saúde dos serviços:" msgid "GeoNodes|Last event ID processed by cursor:" -msgstr "" +msgstr "Último ID de evento processado pelo cursor:" msgid "GeoNodes|Last event ID seen from primary:" -msgstr "" +msgstr "Último ID de evento visto pelo primário:" msgid "GeoNodes|Loading nodes" -msgstr "" +msgstr "Carregando nós" msgid "GeoNodes|Local Attachments:" -msgstr "" +msgstr "Anexos locais:" msgid "GeoNodes|Local LFS objects:" -msgstr "" +msgstr "Objetos LFS locais:" msgid "GeoNodes|Local job artifacts:" -msgstr "" +msgstr "Artefatos de processos locais:" msgid "GeoNodes|New node" +msgstr "Novo nó" + +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" msgstr "" msgid "GeoNodes|Out of sync" +msgstr "Fora de sincronia" + +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" msgstr "" msgid "GeoNodes|Replication slot WAL:" @@ -1751,12 +2070,27 @@ msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1769,26 +2103,38 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" -msgid "GeoNodes|Wikis:" +msgid "GeoNodes|Verified" msgstr "" -msgid "GeoNodes|You have configured Geo nodes using an insecure HTTP connection. We recommend the use of HTTPS." +msgid "GeoNodes|Wiki checksums verified:" msgstr "" -msgid "Geo|All projects" +msgid "GeoNodes|Wikis checksummed:" msgstr "" +msgid "GeoNodes|Wikis:" +msgstr "Wikis:" + +msgid "GeoNodes|You have configured Geo nodes using an insecure HTTP connection. We recommend the use of HTTPS." +msgstr "Você configurou Geo nodes usando uma conexão HTTP insegura. Recomendamos o uso de HTTPS." + +msgid "Geo|All projects" +msgstr "Todos os projetos" + msgid "Geo|File sync capacity" msgstr "Capacidade de sincronização de arquivos" msgid "Geo|Groups to synchronize" -msgstr "" +msgstr "Grupos para sincronizar" msgid "Geo|Projects in certain groups" -msgstr "" +msgstr "Projetos em certos grupos" msgid "Geo|Projects in certain storage shards" msgstr "" @@ -1802,21 +2148,42 @@ msgstr "Selecione grupos para replicar." msgid "Geo|Shards to synchronize" msgstr "" -msgid "Git revision" +msgid "Git repository URL" msgstr "" +msgid "Git revision" +msgstr "Revisão do Git" + msgid "Git storage health information has been reset" msgstr "Informações sobre o status de saúde do storage Git foram reiniciadas" msgid "Git version" +msgstr "Versão do Git" + +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" msgstr "" msgid "GitLab Runner section" msgstr "Seção GitLab Runner" -msgid "Gitaly Servers" +msgid "GitLab single sign on URL" msgstr "" +msgid "Gitaly" +msgstr "" + +msgid "Gitaly Servers" +msgstr "Servidores Gitaly" + +msgid "Go back" +msgstr "Voltar" + msgid "Go to your fork" msgstr "Ir para seu fork" @@ -1827,7 +2194,7 @@ msgid "Google authentication is not %{link_to_documentation}. Ask your GitLab ad msgstr "Autenticação do Google não está %{link_to_documentation}. Peça ao administrador do Gitlab se você deseja usar esse serviço." msgid "Got it!" -msgstr "" +msgstr "Entendi!" msgid "GroupRoadmap|Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" @@ -1883,9 +2250,6 @@ msgstr "Nenhum grupo encontrado" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "Você pode gerenciar permissões de membros e acesso do seu grupo para cada projeto no grupo." -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "Criar um projeto nesse grupo." @@ -1916,6 +2280,9 @@ msgstr "Desculpe, nenhum grupo ou projeto correspondem à sua pesquisa" msgid "Have your users email" msgstr "E-mail para abertura de issues" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "Status de Saúde" @@ -1934,10 +2301,19 @@ msgstr "Nenhum problema de saúde detectado" msgid "HealthCheck|Unhealthy" msgstr "Não saudável" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ocultar valor" +msgstr[1] "Ocultar valores" msgid "History" msgstr "Histórico" @@ -1945,12 +2321,39 @@ msgstr "Histórico" msgid "Housekeeping successfully started" msgstr "Manutenção iniciada com sucesso" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "Importar" + +msgid "Import all repositories" +msgstr "Importar todos repositórios" + +msgid "Import in progress" +msgstr "Importação em andamento" + +msgid "Import repositories from GitHub" +msgstr "Importar repositórios do GitHub" + msgid "Import repository" msgstr "Importar repositório" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "Melhorar issue boards com o GitLab Enterprise Edition." @@ -1961,7 +2364,7 @@ msgid "Improve search with Advanced Global Search and GitLab Enterprise Edition. msgstr "Encontre o que precisa mais facilmente com a pesquisa global avançada com GitLab Enterprise Edition." msgid "Install Runner on Kubernetes" -msgstr "" +msgstr "Instalar Runner no Kubernates" msgid "Install a Runner compatible with GitLab CI" msgstr "Instalar um Runner compatÃvel com o GitLab CI" @@ -1972,6 +2375,9 @@ msgstr[0] "Instância" msgstr[1] "Instâncias" msgid "Instance does not support multiple Kubernetes clusters" +msgstr "A instância não suporta múltiplos clusters Kubernetes" + +msgid "Integrations" msgstr "" msgid "Interested parties can even contribute by pushing commits if they want to." @@ -2014,7 +2420,7 @@ msgid "January" msgstr "Janeiro" msgid "Jobs" -msgstr "" +msgstr "Jobs" msgid "Jul" msgstr "Jul" @@ -2028,11 +2434,14 @@ msgstr "Jun" msgid "June" msgstr "Junho" -msgid "Kubernetes" +msgid "Koding" msgstr "" +msgid "Kubernetes" +msgstr "Kubernetes" + msgid "Kubernetes Cluster" -msgstr "" +msgstr "Cluster Kubernetes" msgid "Kubernetes cluster creation time exceeds timeout; %{timeout}" msgstr "" @@ -2058,12 +2467,30 @@ msgstr "Desabilitado" msgid "LFSStatus|Enabled" msgstr "Habilitado" +msgid "Label" +msgstr "Label" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "Etiquetas" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "Último %d dia" @@ -2094,7 +2521,7 @@ msgid "LastPushEvent|at" msgstr "em" msgid "Learn more" -msgstr "" +msgstr "Saiba mais" msgid "Learn more about Kubernetes" msgstr "" @@ -2121,22 +2548,22 @@ msgid "License" msgstr "Licença" msgid "List" +msgstr "Lista" + +msgid "List your GitHub repositories" msgstr "" msgid "Loading the GitLab IDE..." -msgstr "" +msgstr "Carregando IDE do GitLab..." msgid "Lock" msgstr "Bloquear" msgid "Lock %{issuableDisplayName}" -msgstr "" +msgstr "Bloquear %{issuableDisplayName}" msgid "Lock not found" -msgstr "" - -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" +msgstr "Bloqueio não encontrado" msgid "Locked" msgstr "Bloqueado" @@ -2153,7 +2580,19 @@ msgstr "Entrar" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" +msgstr "Gerenciar etiquetas" + +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." msgstr "" msgid "Mar" @@ -2163,7 +2602,7 @@ msgid "March" msgstr "Março" msgid "Mark done" -msgstr "" +msgstr "Marcar como feito" msgid "Maximum git storage failures" msgstr "Máximo de falhas do git storage" @@ -2177,6 +2616,9 @@ msgstr "Mediana" msgid "Members" msgstr "Membros" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "Merge Requests" @@ -2187,20 +2629,92 @@ msgid "Merge request" msgstr "Merge requests" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" +msgstr "A tela de Merge request é um lugar para propor mudanças em um projeto e discutir essas mudanças com outros" + +msgid "Merged" +msgstr "Merge realizado" + +msgid "Messages" +msgstr "Mensagens" + +msgid "Metrics - Influx" msgstr "" -msgid "MergeRequest|Approved" +msgid "Metrics - Prometheus" msgstr "" -msgid "Merged" +msgid "Metrics|Business" msgstr "" -msgid "Messages" -msgstr "Mensagens" +msgid "Metrics|Create metric" +msgstr "" -msgid "Milestone" +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." msgstr "" +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + +msgid "Milestone" +msgstr "Milestone" + msgid "Milestones|Delete milestone" msgstr "" @@ -2213,6 +2727,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "adicione uma chave SSH" @@ -2225,6 +2748,9 @@ msgstr "" msgid "Monitoring" msgstr "Monitoramento" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2232,16 +2758,16 @@ msgid "More information is available|here" msgstr "Mais informações estão disponÃveis|aqui" msgid "Move" -msgstr "" +msgstr "Mover" msgid "Move issue" -msgstr "" +msgstr "Mover issue" msgid "Multiple issue boards" msgstr "Múltiplos issue boards" msgid "Name new label" -msgstr "" +msgstr "Nome da nova label" msgid "New Issue" msgid_plural "New Issues" @@ -2249,10 +2775,10 @@ msgstr[0] "Nova Issue" msgstr[1] "Novas Issues" msgid "New Kubernetes Cluster" -msgstr "" +msgstr "Novo cluster Kubernetes" msgid "New Kubernetes cluster" -msgstr "" +msgstr "Novo cluster Kubernetes" msgid "New Pipeline Schedule" msgstr "Novo Agendamento de Pipeline" @@ -2279,7 +2805,7 @@ msgid "New issue" msgstr "Nova issue" msgid "New label" -msgstr "" +msgstr "Nova label" msgid "New merge request" msgstr "Novo merge request" @@ -2299,22 +2825,28 @@ msgstr "Novo subgrupo" msgid "New tag" msgstr "Nova tag" -msgid "No assignee" +msgid "No Label" msgstr "" +msgid "No assignee" +msgstr "Sem responsável" + msgid "No changes" -msgstr "" +msgstr "Sem alterarções" msgid "No connection could be made to a Gitaly Server, please check your logs!" -msgstr "" +msgstr "Nenhuma conexão pode ser feita para um servidor Gitaly, por favor check os logs!" msgid "No due date" -msgstr "" +msgstr "Sem validade" msgid "No estimate or time spent" -msgstr "" +msgstr "Sem estimativa de tempo gasto" msgid "No file chosen" +msgstr "Nenhum arquivo escolhido" + +msgid "No labels created yet." msgstr "" msgid "No repository" @@ -2327,20 +2859,38 @@ msgid "None" msgstr "Nenhum" msgid "Not allowed to merge" -msgstr "" +msgstr "Merge não permitido" msgid "Not available" msgstr "Não disponÃvel" -msgid "Not confidential" +msgid "Not available for private projects" msgstr "" +msgid "Not available for protected branches" +msgstr "" + +msgid "Not confidential" +msgstr "Não confidencial" + msgid "Not enough data" msgstr "Dados insuficientes" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "Eventos de notificação" @@ -2399,10 +2949,10 @@ msgid "Notifications" msgstr "Notificações" msgid "Notifications off" -msgstr "" +msgstr "Notificações deligadas" msgid "Notifications on" -msgstr "" +msgstr "Notificações ligadas" msgid "Nov" msgstr "Nov" @@ -2414,7 +2964,7 @@ msgid "Number of access attempts" msgstr "Número de tentativas de acesso" msgid "OK" -msgstr "" +msgstr "OK" msgid "Oct" msgstr "Out" @@ -2425,11 +2975,17 @@ msgstr "Outubro" msgid "OfSearchInADropdown|Filter" msgstr "Filtrar" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "Somente membros do projeto podem comentar." msgid "Open" -msgstr "" +msgstr "Abrir" msgid "Opened" msgstr "Aberto" @@ -2446,12 +3002,18 @@ msgstr "Opções" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "Visão geral" msgid "Owner" msgstr "Proprietário" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "Último >>" @@ -2464,9 +3026,21 @@ msgstr "Anterior" msgid "Pagination|« First" msgstr "<< Primeiro" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "Senha" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "Pipeline" @@ -2546,9 +3120,36 @@ msgid "Pipelines for last year" msgstr "Pipelines para o último ano" msgid "Pipelines|Build with confidence" +msgstr "Construa com confiança" + +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" msgstr "" msgid "Pipelines|Get started with Pipelines" +msgstr "Saiba como funcionam as pipelines" + +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." msgstr "" msgid "Pipeline|Retry pipeline" @@ -2581,20 +3182,29 @@ msgstr "com etapa" msgid "Pipeline|with stages" msgstr "com etapas" -msgid "Play" +msgid "PlantUML" msgstr "" +msgid "Play" +msgstr "Iniciar" + msgid "Please <a href=%{link_to_billing} target=\"_blank\" rel=\"noopener noreferrer\">enable billing for one of your projects to be able to create a Kubernetes cluster</a>, then try again." -msgstr "" +msgstr "Por favor, <a href=%{link_to_billing} target=\"_blank\" rel=\"noopener no referrer\">ative a cobrança para um de seus projetos para ser possÃvel criar um cluster Kubernetes</a>, depois tente novamente." msgid "Please solve the reCAPTCHA" msgstr "Por favor, resolva o reCAPTCHA" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "Preferências" msgid "Primary" -msgstr "" +msgstr "Primário" msgid "Private - Project access must be granted explicitly to each user." msgstr "Privado - O acesso ao projeto deve ser concedido explicitamente para cada usuário." @@ -2644,9 +3254,12 @@ msgstr "Sua conta é atualmente proprietária dos seguintes grupos:" msgid "Profiles|your account" msgstr "sua conta" -msgid "Programming languages used in this repository" +msgid "Profiling - Performance bar" msgstr "" +msgid "Programming languages used in this repository" +msgstr "Linguagens de programação usadas nesse repositório" + msgid "Project '%{project_name}' is in the process of being deleted." msgstr "O projeto '%{project_name}' está sendo excluÃdo." @@ -2663,13 +3276,10 @@ msgid "Project access must be granted explicitly to each user." msgstr "Acesso ao projeto deve ser concedido explicitamente para cada usuário." msgid "Project avatar" -msgstr "" +msgstr "Imagem do projeto" msgid "Project avatar in repository: %{link}" -msgstr "" - -msgid "Project cache successfully reset." -msgstr "" +msgstr "Imagem do projeto no repositório: %{link}" msgid "Project details" msgstr "Detalhes do projeto" @@ -2690,19 +3300,19 @@ msgid "ProjectActivityRSS|Subscribe" msgstr "Inscreva-se" msgid "ProjectCreationLevel|Allowed to create projects" -msgstr "" +msgstr "Permitido a criação de projetos" msgid "ProjectCreationLevel|Default project creation protection" -msgstr "" +msgstr "Proteção de criação de projeto padrão" msgid "ProjectCreationLevel|Developers + Masters" -msgstr "" +msgstr "Desenvolvedores + Masters" msgid "ProjectCreationLevel|Masters" -msgstr "" +msgstr "Masters" msgid "ProjectCreationLevel|No one" -msgstr "" +msgstr "Ninguém" msgid "ProjectFeature|Disabled" msgstr "Desabilitado" @@ -2767,6 +3377,12 @@ msgstr "Desculpe, nenhum projeto corresponde a sua pesquisa" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "Esta funcionalidade necessita de suporte à localStorage do navegador" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2779,9 +3395,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "Por padrão, Prometheus escuta em 'http://localhost:9090'. Não é recomendado mudar o endereço padrão e sua porta, porque pode conflitar com outros serviços que estão executando no sevidor do Gitlab." +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "Encontrando e configurando métricas..." +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2794,20 +3422,14 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "Métricas" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "Métricas são automaticamente configuradas e monitoradas baseadas na biblioteca de métricas de exportadores populares." - msgid "PrometheusService|Missing environment variable" msgstr "Variável de ambiente ausente" -msgid "PrometheusService|Monitored" -msgstr "Monitorado" - msgid "PrometheusService|More information" msgstr "Mais informações" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." -msgstr "Nenhuma métrica está sendo monitorada. Para inicar o monitoramento, faça deploy em um ambiente." +msgid "PrometheusService|New metric" +msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" msgstr "URL da API base do Prometheus. como http://prometheus.example.com/" @@ -2815,21 +3437,33 @@ msgstr "URL da API base do Prometheus. como http://prometheus.example.com/" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" -msgid "PrometheusService|Time-series monitoring service" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" msgstr "" +msgid "PrometheusService|Time-series monitoring service" +msgstr "Serviço de monitoramento de tempo-de-série" + msgid "PrometheusService|To enable manual configuration, uninstall Prometheus from your clusters" msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" -msgstr "Ver ambientes" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" -msgid "Protip:" +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" +msgid "Protip:" +msgstr "Dicas:" + msgid "Public - The group and any public projects can be viewed without any authentication." msgstr "Público - O grupo e seus projetos podem ser visualizados por todos sem autenticação." @@ -2852,7 +3486,7 @@ msgid "PushRule|Committer restriction" msgstr "Restrição de commit" msgid "Quick actions can be used in the issues description and comment boxes." -msgstr "" +msgstr "Ações rápidas podem ser usadas nas descrições das issues e nas caixas de comentário." msgid "Read more" msgstr "Leia mais" @@ -2860,6 +3494,9 @@ msgstr "Leia mais" msgid "Readme" msgstr "Leia-me" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "Branches" @@ -2867,10 +3504,10 @@ msgid "RefSwitcher|Tags" msgstr "Tags" msgid "Reference:" -msgstr "" +msgstr "Referência:" msgid "Register / Sign In" -msgstr "" +msgstr "Registrar/Login" msgid "Registry" msgstr "Registro" @@ -2893,19 +3530,25 @@ msgstr "Merge Requests Relacionados" msgid "Related Merged Requests" msgstr "Merge Requests Relacionados" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "Lembrar mais tarde" msgid "Remove" -msgstr "" +msgstr "Remover" msgid "Remove avatar" -msgstr "" +msgstr "Remover imagem" msgid "Remove project" msgstr "Remover projeto" msgid "Repair authentication" +msgstr "Reparar autenticação" + +msgid "Repo by URL" msgstr "" msgid "Repository" @@ -2914,6 +3557,15 @@ msgstr "Repositório" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "Solicitar acesso" @@ -2929,10 +3581,13 @@ msgstr "Recriar o token de registro de runners" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mostrar valor" +msgstr[1] "Mostrar valores" msgid "Revert this commit" msgstr "Reverter este commit" @@ -2940,9 +3595,36 @@ msgstr "Reverter este commit" msgid "Revert this merge request" msgstr "Reverter esse merge request" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "Executando" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "Chaves SSH" @@ -2953,11 +3635,14 @@ msgid "Save pipeline schedule" msgstr "Salvar agendamento da pipeline" msgid "Save variables" -msgstr "" +msgstr "Salvar variáveis" msgid "Schedule a new pipeline" msgstr "Agendar nova pipeline" +msgid "Scheduled" +msgstr "Agendado" + msgid "Schedules" msgstr "Agendamentos" @@ -2967,17 +3652,20 @@ msgstr "Agendando pipelines" msgid "Scoped issue boards" msgstr "Issue board de escopo" +msgid "Search" +msgstr "Pesquisar" + msgid "Search branches and tags" msgstr "Procurar branch e tags" msgid "Search milestones" -msgstr "" +msgstr "Pesquisar milestones" msgid "Search project" -msgstr "" +msgstr "Procurar projeto" msgid "Search users" -msgstr "" +msgstr "Procurar usuários" msgid "Seconds before reseting failure information" msgstr "Segundos antes de redefinir as informações de falha" @@ -2986,10 +3674,10 @@ msgid "Seconds to wait for a storage access attempt" msgstr "Segundo de espera para tentativa de acesso ao storage" msgid "Secret variables" -msgstr "" +msgstr "Variáveis secretas" msgid "Security report" -msgstr "" +msgstr "Relatório de segurança" msgid "Select Archive Format" msgstr "Selecionar Formato do Arquivo" @@ -3001,19 +3689,19 @@ msgid "Select an existing Kubernetes cluster or create a new one" msgstr "" msgid "Select assignee" -msgstr "" +msgstr "Selecione o responsável" msgid "Select branch/tag" -msgstr "" +msgstr "Selecionar o branch/tag" msgid "Select target branch" msgstr "Selecionar branch de destino" msgid "Selective synchronization" -msgstr "" +msgstr "Sincronização seletiva" msgid "Send email" -msgstr "" +msgstr "Enviar e-mail" msgid "Sep" msgstr "Set" @@ -3022,7 +3710,7 @@ msgid "September" msgstr "Setembro" msgid "Server version" -msgstr "" +msgstr "Versão do servidor" msgid "Service Templates" msgstr "Modelos de serviço" @@ -3030,15 +3718,33 @@ msgstr "Modelos de serviço" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "Defina uma senha para sua conta para aceitar ou entregar código via %{protocol}." -msgid "Set up CI/CD" +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." msgstr "" +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + +msgid "Set up CI/CD" +msgstr "Configurar CI/CD" + msgid "Set up Koding" msgstr "Configurar Koding" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "defina uma senha" @@ -3048,6 +3754,9 @@ msgstr "Configurações" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3083,6 +3792,18 @@ msgstr "Nenhum" msgid "Sidebar|Weight" msgstr "Peso" +msgid "Sign-in restrictions" +msgstr "" + +msgid "Sign-up restrictions" +msgstr "" + +msgid "Size and domain settings for static websites" +msgstr "" + +msgid "Slack application" +msgstr "" + msgid "Snippets" msgstr "Snippets" @@ -3090,18 +3811,12 @@ msgid "Something went wrong on our end" msgstr "" msgid "Something went wrong on our end." -msgstr "Algo deu errado do nosso lado." - -msgid "Something went wrong trying to change the confidentiality of this issue" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" -msgstr "Algo deu errado ao tentar mudar o estado de ${this.issuableDisplayName}" - msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" msgid "Something went wrong while fetching SAST." @@ -3113,14 +3828,8 @@ msgstr "Algo deu errado ao recuperar os projetos." msgid "Something went wrong while fetching the registry list." msgstr "Algo deu errado ao recuperar a lista de registro." -msgid "Something went wrong while reopening the %{issuable}. Please try again later" -msgstr "" - -msgid "Something went wrong while resolving this discussion. Please try again." -msgstr "" - msgid "Something went wrong. Please try again." -msgstr "" +msgstr "Algo deu errado. Por favor, tente novamente." msgid "Sort by" msgstr "Ordenar por" @@ -3225,7 +3934,7 @@ msgid "Source" msgstr "Origem" msgid "Source (branch or tag)" -msgstr "" +msgstr "Fonte (branch or tag)" msgid "Source code" msgstr "Código-fonte" @@ -3236,12 +3945,21 @@ msgstr "Origem não está disponÃvel" msgid "Spam Logs" msgstr "Logs de spam" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "Especifique a seguinte URL durante a configuração do Runner:" msgid "StarProject|Star" msgstr "Marcar" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "Projetos favoritos" @@ -3251,11 +3969,20 @@ msgstr "Iniciar um %{new_merge_request} a partir dessas alterações" msgid "Start the Runner!" msgstr "Inicie o Runner!" +msgid "Started" +msgstr "Iniciado" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "Status" + msgid "Stopped" msgstr "Parado" msgid "Storage" -msgstr "" +msgstr "Armazenamento" msgid "Subgroups" msgstr "Subgrupos" @@ -3263,13 +3990,19 @@ msgstr "Subgrupos" msgid "Switch branch/tag" msgstr "Trocar branch/tag" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "Hooks do sistema" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Tag (%{tag_count})" +msgstr[1] "Tags (%{tag_count})" msgid "Tags" msgstr "Tags" @@ -3346,6 +4079,9 @@ msgstr "protegido" msgid "Target Branch" msgstr "Branch de destino" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "Equipe" @@ -3356,9 +4092,12 @@ msgid "The Advanced Global Search in GitLab is a powerful search service that sa msgstr "A pesquisa global avançada no GitLab é um serviço de pesquisa poderoso que economiza seu tempo. Ao invés de criar códigos duplicados e perder seu tempo, você pode agora pesquisar códigos de outros times que podem ajudar em seu projeto." msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project" -msgstr "" +msgstr "Issue Tracker é o lugar para adicionar coisas que precisam ser melhoradas ou resolvidas em um projeto" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." +msgstr "Issue Tracker é o lugar para adicionar coisas que precisam ser melhoradas ou resolvidas em um projeto. Você precisa se registrar ou fazer login para criar alguma Issue para este projeto." + +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." msgstr "" msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." @@ -3367,9 +4106,15 @@ msgstr "A etapa de codificação mostra o tempo desde a entrega do primeiro comm msgid "The collection of events added to the data gathered for that stage." msgstr "A coleção de eventos adicionados aos dados coletados para essa etapa." +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "O relacionamento como fork foi removido." +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "A etapa de planejamento mostra o tempo que se leva desde a criação de uma issue até sua atribuição à um milestone, ou sua adição a uma lista no seu Issue Board. Comece a criar issues para ver dados para esta etapa." @@ -3382,12 +4127,18 @@ msgstr "O número de tentativas que gitlab fará para acessar um storage." msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "O número de falhas para que o GitLab desabilite o acesso ao storage. O número de falhas pode ser redefinido na interface do administrador: %{link_to_health_page} ou %{api_documentation_link}." +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "A fase do ciclo de vida do desenvolvimento." msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "A etapa de planejamento mostra o tempo do passo anterior até a publicação de seu primeiro conjunto de mudanças. Este tempo será adicionado automaticamente assim que você enviar seu primeiro conjunto de mudanças." +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "A etapa de produção mostra o tempo total que leva entre criar uma issue e implantar o código em produção. Os dados serão adicionados automaticamente assim que você completar todo o ciclo de produção." @@ -3403,6 +4154,9 @@ msgstr "Não existe repositório para este projeto." msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "A etapa de revisão mostra o tempo de criação de uma solicitação de incorporação até sua aceitação. Os dados serão automaticamente adicionados depois que sua primeira solicitação de incorporação for aceita." @@ -3431,37 +4185,40 @@ msgid "The value lying at the midpoint of a series of observed values. E.g., bet msgstr "O valor situado no ponto médio de uma série de valores observados. Ex., entre 3, 5, 9, a mediana é 5. Entre 3, 5, 7, 8, a mediana é (5+7)/2 = 6." msgid "There are no issues to show" -msgstr "" +msgstr "Não há issues para mostrar" msgid "There are no merge requests to show" -msgstr "" +msgstr "Não há merge requests pra mostrar" msgid "There are problems accessing Git storage: " msgstr "Há problemas para acessar o storage Git: " -msgid "There was an error loading users activity calendar." +msgid "There was an error loading results" msgstr "" +msgid "There was an error loading users activity calendar." +msgstr "Erro ao carregar calendário de atividades." + msgid "There was an error saving your notification settings." -msgstr "" +msgstr "Erro ao salvar suas configurações de notificação." msgid "There was an error subscribing to this label." -msgstr "" +msgstr "Erro ao se inscrever nessa label." msgid "There was an error when reseting email token." -msgstr "" +msgstr "Erro ao redefinir token do email." msgid "There was an error when subscribing to this label." -msgstr "" +msgstr "Erro ao se inscrever nessa label." msgid "There was an error when unsubscribing from this label." -msgstr "" +msgstr "Erro ao se anular a inscrição dessa label." msgid "This board\\'s scope is reduced" msgstr "O escopo desse board está reduzido" msgid "This directory" -msgstr "" +msgstr "Esse diretório" msgid "This is a confidential issue." msgstr "Essa issue é confidencial." @@ -3470,7 +4227,7 @@ msgid "This is the author's first Merge Request to this project." msgstr "Esse é o autor do primeiro merge request desse projeto." msgid "This issue is confidential" -msgstr "" +msgstr "Essa issue é confidencial" msgid "This issue is confidential and locked." msgstr "Essa issue é confidencial e está bloqueada." @@ -3488,13 +4245,13 @@ msgid "This job has not been triggered yet" msgstr "" msgid "This job has not started yet" -msgstr "" +msgstr "Esse processo ainda não começou" msgid "This job is in pending state and is waiting to be picked by a runner" msgstr "" msgid "This job requires a manual action" -msgstr "" +msgstr "Este Job exige uma ação manual" msgid "This means you can not push code until you create an empty repository or import existing one." msgstr "Isto significa que você não pode entregar código até que crie um repositório vazio ou importe um existente." @@ -3503,13 +4260,16 @@ msgid "This merge request is locked." msgstr "Esse merge request está bloqueado." msgid "This page is unavailable because you are not allowed to read information across multiple projects." -msgstr "" +msgstr "Esta página não está disponÃvel porque você não tem permissão para ler informações de vários projetos." msgid "This project" -msgstr "" +msgstr "Esse projeto" msgid "This repository" -msgstr "" +msgstr "Esse repositório" + +msgid "This will delete the custom metric, Are you sure?" +msgstr "Esta ação excluirá uma métrica personalizada, você tem certeza?" msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "Esses e-mails se tornarão issues automaticamente (com os comentários se tornando uma conversa de e-mail) listadas aqui." @@ -3523,6 +4283,12 @@ msgstr "Tempo até que uma issue comece a ser implementado" msgid "Time between merge request creation and merge/close" msgstr "Tempo entre a criação da solicitação de incorporação e a aceitação/fechamento" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3680,20 +4446,50 @@ msgstr "" msgid "Title" msgstr "TÃtulo" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" msgid "Todo" -msgstr "" +msgstr "Pendente" msgid "Toggle sidebar" -msgstr "" +msgstr "Ativar/Desativar barra lateral" msgid "ToggleButton|Toggle Status: OFF" -msgstr "" +msgstr "Mudar Status: Desligado" msgid "ToggleButton|Toggle Status: ON" -msgstr "" +msgstr "Mudar Status: Ligado" msgid "Total Time" msgstr "Tempo Total" @@ -3702,7 +4498,7 @@ msgid "Total test time for all commits/merges" msgstr "Tempo de teste total para todos os commits/merges" msgid "Total: %{total}" -msgstr "" +msgstr "Total: %{total}" msgid "Track activity with Contribution Analytics." msgstr "Acompanhe a atividade com o Contribution Analytics." @@ -3719,18 +4515,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "Ativar Service Desk" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" -msgstr "" +msgstr "Desconhecido" msgid "Unlock" msgstr "Desbloquear" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "Desbloqueado" @@ -3741,7 +4531,7 @@ msgid "Unstar" msgstr "Desmarcar" msgid "Up to date" -msgstr "" +msgstr "Atualizado" msgid "Upgrade your plan to activate Advanced Global Search." msgstr "Atualize seu plano para ativar a Pesquisa Global Avançada." @@ -3765,11 +4555,17 @@ msgid "Upload file" msgstr "Enviar arquivo" msgid "Upload new avatar" -msgstr "" +msgstr "Fazer upload de nova imagem" msgid "UploadLink|click to upload" msgstr "clique para fazer upload" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "Use o Service Desk para se conectar com seus usuários (por exemplo, para oferecer suporte ao cliente) por email dentro do GitLab" @@ -3779,24 +4575,51 @@ msgstr "Use o seguinte token de registro durante a configuração:" msgid "Use your global notification setting" msgstr "Utilizar configuração de notificação global" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "Ver arquivo @ " -msgid "View labels" +msgid "View group labels" msgstr "" +msgid "View labels" +msgstr "Visualizar etiquetas" + msgid "View open merge request" msgstr "Ver merge request aberto" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "Ver arquivo substituÃdo @ " +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "Interno" @@ -3813,7 +4636,7 @@ msgid "Want to see the data? Please ask an administrator for access." msgstr "Precisa visualizar os dados? Solicite acesso ao administrador." msgid "We could not verify that one of your projects on GCP has billing enabled. Please try again." -msgstr "" +msgstr "Não foi possÃvel verificar se um dos seus projetos no GCP possui o faturamento ativado. Por favor, tente novamente." msgid "We don't have enough data to show this stage." msgstr "Esta etapa não possui dados suficientes para exibição." @@ -3824,12 +4647,18 @@ msgstr "Queremos ter certeza de que é você, confirme que você não é um robà msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "Webhooks permitem que você acione uma URL se, por exemplo, quando um novo código for feito push ou uma nova issue criada. Você pode configurar os webhooks para escutar eventos especÃficos como push, issue ou merge request. Webhooks de grupo aplicarão para todos os projetos no grupo, permitindo você padronizar o funcionamento em todo o grupo." msgid "Weight" msgstr "Peso" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "Wiki" @@ -3945,37 +4774,43 @@ msgid "Withdraw Access Request" msgstr "Remover Requisição de Acesso" msgid "Write a commit message..." -msgstr "" +msgstr "Escrever uma mensagem de commit..." msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "Você vai remover %{group_name}. Grupos removidos NÃO PODEM ser restaurados! Você está ABSOLUTAMENTE certo?" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "Você irá remover %{project_name_with_namespace}. O projeto removido NÃO PODE ser restaurado! Tem certeza ABSOLUTA?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "Você irá remover %{project_full_name}. O projeto removido NÃO PODE ser restaurado! Tem certeza ABSOLUTA?" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "Você está prestes a remover a relação de fork do projeto original %{forked_from_project}. Você tem CERTEZA disso?" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "Você irá transferir %{project_name_with_namespace} para outro proprietário. Tem certeza ABSOLUTA?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "Você irá transferir %{project_full_name} para outro proprietário. Tem certeza ABSOLUTA?" -msgid "You can also create a project from the command line." +msgid "You are on a read-only GitLab instance." msgstr "" -msgid "You can also star a label to make it a priority label." +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." msgstr "" +msgid "You can also create a project from the command line." +msgstr "Você também pode criar um projeto a partir da linha de comando." + +msgid "You can also star a label to make it a priority label." +msgstr "Você também pode marcar uma label para torná-la uma label de prioridade." + msgid "You can easily install a Runner on a Kubernetes cluster. %{link_to_help_page}" -msgstr "" +msgstr "Você pode instalar facilmente um Runner em um cluster Kubernetes. %{link_to_help_page}" msgid "You can move around the graph by using the arrow keys." -msgstr "" +msgstr "Você pode mover o gráfico usando as setas do teclado." msgid "You can only add files when you are on a branch" msgstr "Você somente pode adicionar arquivos quando estiver em um branch" msgid "You can only edit files when you are on a branch" -msgstr "" +msgstr "Você só pode editar arquivos quando estiver em um branch" msgid "You cannot write to a read-only secondary GitLab Geo instance. Please use %{link_to_primary_node} instead." msgstr "Você não pode escrever numa instância secundária de somente leitura do GitLab Geo. Por favor use %{link_to_primary_node}." @@ -3987,13 +4822,13 @@ msgid "You do not have the correct permissions to override the settings from the msgstr "" msgid "You have no permissions" -msgstr "" +msgstr "Você não tem permissão" msgid "You have reached your project limit" msgstr "Você atingiu o limite de seu projeto" msgid "You must have master access to force delete a lock" -msgstr "" +msgstr "Você deve ter o acesso master para apagar um bloqueio" msgid "You must sign in to star a project" msgstr "Você deve estar autenticado para marcar um projeto" @@ -4029,14 +4864,32 @@ msgid "You won't be able to pull or push project code via SSH until you add an S msgstr "Você não poderá fazer push ou pull do código via SSH enquanto não adicionar sua chave SSH no seu perfil" msgid "You'll need to use different branch names to get a valid comparison." +msgstr "Você precisará usar nomes de branch diferentes para obter uma comparação válida." + +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" msgstr "" msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" -msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" msgstr "" +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + +msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" +msgstr "Commit com suas alterações realizado. Commit %{commitId} %{commitStats}" + msgid "Your comment will not be visible to the public." msgstr "Seu comentário não estará visÃvel ao público." @@ -4049,21 +4902,47 @@ msgstr "Seu nome" msgid "Your projects" msgstr "Seus projetos" -msgid "assign yourself" +msgid "among other things" msgstr "" +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "assign yourself" +msgstr "atribuir a si mesmo" + msgid "branch name" msgstr "nome da branch" msgid "by" msgstr "por" -msgid "ciReport|Code quality" +msgid "ciReport|%{type} detected no new security vulnerabilities" msgstr "" +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + +msgid "ciReport|Code quality" +msgstr "Qualidade de código" + msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4091,9 +4970,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4106,25 +4982,28 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "commit" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" @@ -4132,15 +5011,40 @@ msgid_plural "days" msgstr[0] "dia" msgstr[1] "dias" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4152,9 +5056,21 @@ msgstr[1] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4167,6 +5083,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4194,18 +5113,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4290,6 +5218,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4315,7 +5246,7 @@ msgid "notification emails" msgstr "emails de notificação" msgid "or" -msgstr "" +msgstr "ou" msgid "parent" msgid_plural "parents" @@ -4328,13 +5259,19 @@ msgstr "senha" msgid "personal access token" msgstr "token de acesso pessoal" -msgid "remove due date" +msgid "private key does not match certificate." msgstr "" +msgid "remove due date" +msgstr "remover a data de vencimento" + msgid "source" msgstr "origem" msgid "spendCommand|%{slash_command} will update the sum of the time spent." +msgstr "%{slash_command} irá atualizar a soma do tempo gasto." + +msgid "this document" msgstr "" msgid "to help your contributors communicate effectively!" diff --git a/locale/ru/gitlab.po b/locale/ru/gitlab.po index 6214460fc21..a5e145a06ed 100644 --- a/locale/ru/gitlab.po +++ b/locale/ru/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:53-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:35-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /master/locale/gitlab.pot\n" msgid " and" -msgstr "" +msgstr " и" msgid "%d commit" msgid_plural "%d commits" @@ -33,6 +33,13 @@ msgstr[1] "на %d коммита позади" msgstr[2] "на %d коммитов позади" msgstr[3] "на %d коммитов позади" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "%d обÑуждение" @@ -54,6 +61,13 @@ msgstr[1] "%d запроÑа на ÑлиÑние" msgstr[2] "%d запроÑов на ÑлиÑние" msgstr[3] "%d запроÑов на ÑлиÑние" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "%s дополнительный коммит был пропущен Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ñтью." @@ -74,9 +88,12 @@ msgstr[1] "%{count} учаÑтника" msgstr[2] "%{count} учаÑтников" msgstr[3] "%{count} учаÑтников" -msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" +msgid "%{loadingIcon} Started" msgstr "" +msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" +msgstr "%{lock_path} заблокирован пользователем GitLab %{lock_user_id}" + msgid "%{number_commits_behind} commits behind %{default_branch}, %{number_commits_ahead} commits ahead" msgstr "на %{number_commits_behind} коммитов позади %{default_branch}, на %{number_commits_ahead} коммитов впереди" @@ -121,15 +138,30 @@ msgstr "Первый вклад!" msgid "2FA enabled" msgstr "Ð”Ð²ÑƒÑ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "Графики непрерывной интеграции (CI)" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "Об автоматичеÑком развёртывании" msgid "Abuse Reports" msgstr "Отчёты о Жалобах" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "Токены ДоÑтупа" @@ -139,6 +171,9 @@ msgstr "ДоÑтуп к вышедшим из ÑÑ‚Ñ€Ð¾Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°Ð¼ в msgid "Account" msgstr "Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "Ðктивный" @@ -158,19 +193,19 @@ msgid "Add Group Webhooks and GitLab Enterprise Edition." msgstr "Добавить групповые веб-обработчики и GitLab Enterprise Edition." msgid "Add Kubernetes cluster" -msgstr "" +msgstr "Добавить Kubernetes клаÑтер" msgid "Add License" msgstr "Добавить Лицензию" msgid "Add Readme" -msgstr "" +msgstr "Добавить Информацию" msgid "Add new directory" msgstr "Добавить новый каталог" msgid "Add todo" -msgstr "" +msgstr "Добавить todo" msgid "AdminArea|Stop all jobs" msgstr "ОÑтановить вÑе заданиÑ" @@ -200,7 +235,7 @@ msgid "AdminProjects|Delete project" msgstr "Удалить проект" msgid "AdminSettings|Specify a domain to use by default for every project's Auto Review Apps and Auto Deploy stages." -msgstr "" +msgstr "Укажите домен, который будет иÑпользоватьÑÑ Ð¿Ð¾ умолчанию Ð´Ð»Ñ Ð²Ñех проектов в Auto Review приложениÑÑ… и ÑтадиÑÑ… Auto Deploy." msgid "AdminUsers|Block user" msgstr "Заблокировать пользователÑ" @@ -224,7 +259,7 @@ msgid "AdminUsers|To confirm, type %{username}" msgstr "Ð”Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ, введите %{username}" msgid "Advanced" -msgstr "" +msgstr "Дополнительно" msgid "Advanced settings" msgstr "РаÑширенные наÑтройки" @@ -233,9 +268,33 @@ msgid "All" msgstr "Ð’Ñе" msgid "All changes are committed" +msgstr "Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð°Ñ„Ð¸ÐºÑированы" + +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." msgstr "" msgid "Allows you to add and manage Kubernetes clusters." +msgstr "ПозволÑет добавлÑÑ‚ÑŒ и управлÑÑ‚ÑŒ клаÑтерами Kubernetes." + +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." msgstr "" msgid "An error occurred previewing the blob" @@ -316,6 +375,9 @@ msgstr "Произошла ошибка при проверке имени поРmsgid "An error occurred. Please try again." msgstr "Произошла ошибка. ПожалуйÑта, попробуйте Ñнова." +msgid "Any Label" +msgstr "Ð›ÑŽÐ±Ð°Ñ ÐœÐµÑ‚ÐºÐ°" + msgid "Appearance" msgstr "Оформление" @@ -341,7 +403,7 @@ msgid "Are you sure you want to reset the health check token?" msgstr "Ð’Ñ‹ уверены, что хотите ÑброÑить Ñтот токен проверки работоÑпоÑобноÑти?" msgid "Are you sure you want to unlock %{path_lock_path}?" -msgstr "" +msgstr "Ð’Ñ‹ дейÑтвительно хотите разблокировать %{path_lock_path}?" msgid "Are you sure?" msgstr "Ð’Ñ‹ уверены?" @@ -349,16 +411,28 @@ msgstr "Ð’Ñ‹ уверены?" msgid "Artifacts" msgstr "Ðртефакты" -msgid "Assign custom color like #FF0000" +msgid "Assertion consumer service URL" msgstr "" +msgid "Assign custom color like #FF0000" +msgstr "Ðазначьте пользовательÑкий цвет, например #FF0000" + msgid "Assign labels" -msgstr "" +msgstr "Ðазначить метки" msgid "Assign milestone" -msgstr "" +msgstr "Ðазначить Ñтап" msgid "Assign to" +msgstr "Ðазначить" + +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" msgstr "" msgid "Assignee" @@ -380,16 +454,19 @@ msgid "Author" msgstr "Ðвтор" msgid "Authors: %{authors}" -msgstr "" +msgstr "Ðвторы: %{authors}" msgid "Auto DevOps enabled" +msgstr "Auto DevOps включен" + +msgid "Auto DevOps, runners and job artifacts" msgstr "" msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." -msgstr "" +msgstr "ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого ревью и автоматичеÑкого Ñ€Ð°Ð·Ð²Ñ‘Ñ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÑŽÑ‚ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ %{kubernetes} Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð¹ работы." msgid "Auto Review Apps and Auto Deploy need a domain name and a %{kubernetes} to work correctly." -msgstr "" +msgstr "ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого ревью и автоматичеÑкого Ñ€Ð°Ð·Ð²Ñ‘Ñ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÑŽÑ‚ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ домена и %{kubernetes} Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð¹ работы." msgid "Auto Review Apps and Auto Deploy need a domain name to work correctly." msgstr "ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого ревью и автоматичеÑкого Ñ€Ð°Ð·Ð²Ñ‘Ñ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÑŽÑ‚ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ домена Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð¹ работы." @@ -410,26 +487,32 @@ msgid "AutoDevOps|Learn more in the %{link_to_documentation}" msgstr "Подробнее по ÑÑылке %{link_to_documentation}" msgid "AutoDevOps|You can automatically build and test your application if you %{link_to_auto_devops_settings} for this project. You can automatically deploy it as well, if you %{link_to_add_kubernetes_cluster}." -msgstr "" +msgstr "Ð’Ñ‹ можете автоматичеÑки Ñобирать и теÑтировать Ñвое приложение, еÑли Ð´Ð»Ñ Ñтого проекта %{link_to_auto_devops_settings}. Ð’Ñ‹ также можете автоматичеÑки развернуть Ñвое приложение, еÑли вы %{link_to_add_kubernetes_cluster}." msgid "AutoDevOps|add a Kubernetes cluster" -msgstr "" +msgstr "добавите клаÑтер Kubernetes" msgid "AutoDevOps|enable Auto DevOps (Beta)" -msgstr "" +msgstr "включен Auto DevOps (Beta)" msgid "Available" msgstr "ДоÑтупен" msgid "Avatar will be removed. Are you sure?" -msgstr "" +msgstr "Ðватар будет удален. Ð’Ñ‹ уверены?" msgid "Average per day: %{average}" +msgstr "Ð’ Ñреднем за день: %{average}" + +msgid "Background Color" msgstr "" -msgid "Begin with the selected commit" +msgid "Background jobs" msgstr "" +msgid "Begin with the selected commit" +msgstr "Ðачать Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ коммита" + msgid "Billing" msgstr "Тариф" @@ -512,6 +595,15 @@ msgstr "Переключить ветку" msgid "Branches" msgstr "Ветки" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "Ðевозможно найти HEAD-коммит Ñтой ветки" @@ -534,7 +626,7 @@ msgid "Branches|Delete protected branch '%{branch_name}'?" msgstr "Удалить защищённую ветку '%{branch_name}'?" msgid "Branches|Deleting the '%{branch_name}' branch cannot be undone. Are you sure?" -msgstr "Уделение ветки '%{branch_name}' невозможно отменить. Ð’Ñ‹ уверены?" +msgstr "Удаление ветки '%{branch_name}' невозможно отменить. Ð’Ñ‹ уверены?" msgid "Branches|Deleting the merged branches cannot be undone. Are you sure?" msgstr "Удаление влитых веток невозможно отменить. Ð’Ñ‹ уверены?" @@ -557,12 +649,39 @@ msgstr "Как только вы подтвердите и нажмёте %{dele msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "Только маÑтер или владелец проекта может удалить защищённую ветку" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" -msgstr "Управление защищёнными ветками возможно в %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" +msgstr "" msgid "Branches|Sort by" msgstr "Сортировать по" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "Ветвь не может быть обновлена автоматичеÑки, потому что она имеет раÑÑ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑким репозиторием." @@ -608,14 +727,23 @@ msgstr "ПроÑмотр файлов" msgid "Browse files" msgstr "ПроÑмотр файлов" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "по автору" msgid "CI / CD" msgstr "CI / CD" +msgid "CI/CD" +msgstr "CI/CD" + msgid "CI/CD configuration" -msgstr "" +msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ CI/CD" + +msgid "CI/CD for external repo" +msgstr "CI/CD Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ репозиториÑ" msgid "CICD|Jobs" msgstr "ЗаданиÑ" @@ -623,15 +751,21 @@ msgstr "ЗаданиÑ" msgid "Cancel" msgstr "Отмена" -msgid "Cancel edit" -msgstr "Отменить редактирование" +msgid "Cannot be merged automatically" +msgstr "" msgid "Cannot modify managed Kubernetes cluster" +msgstr "Ðевозможно изменить управлÑемый клаÑтер Kubernetes" + +msgid "Certificate fingerprint" msgstr "" msgid "Change Weight" msgstr "Изменить ВеÑ" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "Выбрать в ветке" @@ -645,7 +779,7 @@ msgid "ChangeTypeAction|Revert" msgstr "Отменить" msgid "ChangeTypeAction|This will create a new commit in order to revert the existing changes." -msgstr "" +msgstr "Ðто ÑоздаÑÑ‚ новый коммит Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы откатить ÑущеÑтвующие изменениÑ." msgid "Changelog" msgstr "Журнал изменений" @@ -660,7 +794,7 @@ msgid "Chat" msgstr "Чат" msgid "Check interval" -msgstr "" +msgstr "Интервал проверки" msgid "Checking %{text} availability…" msgstr "Проверка доÑтупноÑти %{text} ..." @@ -675,15 +809,21 @@ msgid "Cherry-pick this merge request" msgstr "Подобрать Ñтот Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние" msgid "Choose File ..." -msgstr "" +msgstr "Выберите Файл..." msgid "Choose a branch/tag (e.g. %{master}) or enter a commit (e.g. %{sha}) to see what's changed or to create a merge request." -msgstr "" +msgstr "Выберите ветку/тег (например, %{master}) или введите коммит(например, %{sha}), чтобы увидеть, что изменилоÑÑŒ или Ñоздать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние." msgid "Choose file..." -msgstr "" +msgstr "Выберите файл..." msgid "Choose which groups you wish to synchronize to this secondary node." +msgstr "Выберите группы, которые вы хотите Ñинхронизировать Ñ Ñтим вторичным узлом." + +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." msgstr "" msgid "Choose which shards you wish to synchronize to this secondary node." @@ -744,48 +884,57 @@ msgid "CiStatus|running" msgstr "выполнÑетÑÑ" msgid "CiVariables|Input variable key" -msgstr "" +msgstr "Ключ входной переменной" msgid "CiVariables|Input variable value" -msgstr "" +msgstr "Значение входной переменной" msgid "CiVariables|Remove variable row" -msgstr "" +msgstr "Удалить Ñтроку переменных" msgid "CiVariable|* (All environments)" -msgstr "" +msgstr " * (Ð’Ñе Ñреды)" msgid "CiVariable|All environments" -msgstr "" +msgstr "Ð’Ñе Ñреды" msgid "CiVariable|Create wildcard" -msgstr "" +msgstr "Создать шаблон" msgid "CiVariable|Error occured while saving variables" -msgstr "" +msgstr "Произошла ошибка при Ñохранении переменных" msgid "CiVariable|New environment" -msgstr "" +msgstr "ÐÐ¾Ð²Ð°Ñ Ñреда" msgid "CiVariable|Protected" -msgstr "" +msgstr "Защищено" msgid "CiVariable|Search environments" -msgstr "" +msgstr "ПоиÑк Ñред" msgid "CiVariable|Toggle protected" -msgstr "" +msgstr "Включить защиту" msgid "CiVariable|Validation failed" -msgstr "" +msgstr "Проверка не удалаÑÑŒ" msgid "CircuitBreakerApiLink|circuitbreaker api" msgstr "CircuitBreaker API" msgid "Click the button below to begin the install process by navigating to the Kubernetes page" -msgstr "" +msgstr "Ðажмите кнопку ниже, чтобы начать процеÑÑ ÑƒÑтановки, Ð¿ÐµÑ€ÐµÐ¹Ð´Ñ Ð½Ð° Ñтраницу Kubernetes" msgid "Click to expand text" +msgstr "Ðажмите, чтобы раÑкрыть текÑÑ‚" + +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" msgstr "" msgid "Clone repository" @@ -795,28 +944,28 @@ msgid "Close" msgstr "Закрыть" msgid "Closed" -msgstr "" +msgstr "Закрыто" msgid "ClusterIntegration|%{appList} was successfully installed on your Kubernetes cluster" -msgstr "" +msgstr "%{appList} уÑпешно уÑтановлены на вашем клаÑтере Kubernetes" msgid "ClusterIntegration|API URL" msgstr "ÐÐ´Ñ€ÐµÑ API" msgid "ClusterIntegration|Add Kubernetes cluster" -msgstr "" +msgstr "Добавить клаÑтер Kubernetes" msgid "ClusterIntegration|Add an existing Kubernetes cluster" -msgstr "" +msgstr "Добавить ÑущеÑтвующий клаÑтер Kubernetes" msgid "ClusterIntegration|Advanced options on this Kubernetes cluster's integration" -msgstr "" +msgstr "Дополнительные опции Ð´Ð»Ñ Ñтой интеграции Ñ ÐºÐ»Ð°Ñтером Kubernetes" msgid "ClusterIntegration|Applications" msgstr "ПриложениÑ" msgid "ClusterIntegration|Are you sure you want to remove this Kubernetes cluster's integration? This will not delete your actual Kubernetes cluster." -msgstr "" +msgstr "Ð’Ñ‹ уверены, что хотите удалить интеграцию Ñ Ñтим клаÑтером Kubernetes? Ðто не приведет к удалению вашего клаÑтера Kubernetes." msgid "ClusterIntegration|CA Certificate" msgstr "Сертификат удоÑтоверÑющего центра" @@ -825,13 +974,13 @@ msgid "ClusterIntegration|Certificate Authority bundle (PEM format)" msgstr "Комплект Ñертификатов удоÑтоверÑющего центра (формат PEM)" msgid "ClusterIntegration|Choose how to set up Kubernetes cluster integration" -msgstr "" +msgstr "Выберите ÑпоÑоб наÑтройки интеграции Ñ ÐºÐ»Ð°Ñтером Kubernetes" msgid "ClusterIntegration|Choose which of your project's environments will use this Kubernetes cluster." -msgstr "" +msgstr "Выберите, какие Ñреды вашего проекта будут иÑпользовать Ñтот клаÑтер Kubernetes." msgid "ClusterIntegration|Control how your Kubernetes cluster integrates with GitLab" -msgstr "" +msgstr "УправлÑйте тем, как ваш клаÑтер Kubernetes интегрируетÑÑ Ñ GitLab" msgid "ClusterIntegration|Copy API URL" msgstr "Скопировать Ð°Ð´Ñ€ÐµÑ API" @@ -840,22 +989,22 @@ msgid "ClusterIntegration|Copy CA Certificate" msgstr "Копировать Сертификат УдоÑтоверÑющего Центра" msgid "ClusterIntegration|Copy Ingress IP Address to clipboard" -msgstr "" +msgstr "Скопировать IP-Ð°Ð´Ñ€ÐµÑ Ingress в буфер обмена" msgid "ClusterIntegration|Copy Kubernetes cluster name" -msgstr "" +msgstr "Скопировать Ð¸Ð¼Ñ ÐºÐ»Ð°Ñтера Kubernetes" msgid "ClusterIntegration|Copy Token" msgstr "Скопировать Токен" msgid "ClusterIntegration|Create Kubernetes cluster" -msgstr "" +msgstr "Создать клаÑтер Kubernetes" msgid "ClusterIntegration|Create Kubernetes cluster on Google Kubernetes Engine" -msgstr "" +msgstr "Создать клаÑтер при помощи Google Kubernetes Engine" msgid "ClusterIntegration|Create a new Kubernetes cluster on Google Kubernetes Engine right from GitLab" -msgstr "" +msgstr "Создайте новый клаÑтер Kubernetes в Google Kubernetes Engine прÑмо из GitLab" msgid "ClusterIntegration|Create on GKE" msgstr "Создать в GKE" @@ -864,13 +1013,13 @@ msgid "ClusterIntegration|Enter the details for an existing Kubernetes cluster" msgstr "Укажите параметры ÑущеÑтвующего клаÑтера Kubernetes" msgid "ClusterIntegration|Enter the details for your Kubernetes cluster" -msgstr "" +msgstr "Введите ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ вашем клаÑтере Kubernetes" msgid "ClusterIntegration|Environment scope" msgstr "" msgid "ClusterIntegration|GitLab Integration" -msgstr "" +msgstr "Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ñ GitLab" msgid "ClusterIntegration|GitLab Runner" msgstr "GitLab Runner" @@ -887,15 +1036,21 @@ msgstr "Проект Google Kubernetes Engine" msgid "ClusterIntegration|Helm Tiller" msgstr "Helm Tiller" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "Ingress" msgid "ClusterIntegration|Ingress IP Address" -msgstr "" +msgstr "IP-Ð°Ð´Ñ€ÐµÑ Ingress" msgid "ClusterIntegration|Install" msgstr "УÑтановить" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "УÑтановлен" @@ -903,48 +1058,54 @@ msgid "ClusterIntegration|Installing" msgstr "УÑтановка" msgid "ClusterIntegration|Integrate Kubernetes cluster automation" -msgstr "" +msgstr "Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ð·Ð°Ñ†Ð¸Ð¸ клаÑтеров Kubernetes" msgid "ClusterIntegration|Integration status" -msgstr "" +msgstr " Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ð¸" msgid "ClusterIntegration|Kubernetes cluster" -msgstr "" +msgstr "КлаÑтер Kubernetes" msgid "ClusterIntegration|Kubernetes cluster details" +msgstr "Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ клаÑтере Kubernetes" + +msgid "ClusterIntegration|Kubernetes cluster health" msgstr "" msgid "ClusterIntegration|Kubernetes cluster integration" -msgstr "" +msgstr "Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ ÐºÐ»Ð°Ñтера Kubernetes" msgid "ClusterIntegration|Kubernetes cluster integration is disabled for this project." -msgstr "" +msgstr "Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ ÐºÐ»Ð°Ñтера Kubernetes Ð´Ð»Ñ Ñтого проекта отключена." msgid "ClusterIntegration|Kubernetes cluster integration is enabled for this project." -msgstr "" +msgstr "Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ ÐºÐ»Ð°Ñтера Kubernetes Ð´Ð»Ñ Ñтого проекта включена." msgid "ClusterIntegration|Kubernetes cluster integration is enabled for this project. Disabling this integration will not affect your Kubernetes cluster, it will only temporarily turn off GitLab's connection to it." -msgstr "" +msgstr "Ð”Ð»Ñ Ñтого проекта включена Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ ÐºÐ»Ð°Ñтера Kubernetes. Отключение интеграции не повлиÑет на клаÑтер Kubernetes, но Ñоединение Ñ GitLab будет временно отключено." msgid "ClusterIntegration|Kubernetes cluster is being created on Google Kubernetes Engine..." -msgstr "" +msgstr "КлаÑтер Kubernetes ÑоздаётÑÑ Ð² Google Kubernetes Engine..." msgid "ClusterIntegration|Kubernetes cluster name" -msgstr "" +msgstr "Ð˜Ð¼Ñ ÐºÐ»Ð°Ñтера Kubernetes" msgid "ClusterIntegration|Kubernetes cluster was successfully created on Google Kubernetes Engine. Refresh the page to see Kubernetes cluster's details" -msgstr "" +msgstr "КлаÑтер Kubernetes был уÑпешно Ñоздан в Google Kubernetes Engine. Обновите Ñтраницу, чтобы увидеть ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ клаÑтере Kubernetes" msgid "ClusterIntegration|Kubernetes clusters allow you to use review apps, deploy your applications, run your pipelines, and much more in an easy way. %{link_to_help_page}" -msgstr "" +msgstr "КлаÑтер Kubernetes позволÑет вам иÑпользовать Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€ÐµÐ²ÑŒÑŽ, развёртывать ваши приложениÑ, запуÑкать ваши Ñборочные линии и многое другое более проÑтым ÑпоÑобом. %{link_to_help_page}" msgid "ClusterIntegration|Kubernetes clusters can be used to deploy applications and to provide Review Apps for this project" -msgstr "" +msgstr "КлаÑтеры Kubernetes могут иÑпользоватьÑÑ Ð´Ð»Ñ Ñ€Ð°Ð·Ð²ÐµÑ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹ и предоÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹ Review Ð´Ð»Ñ Ñтого проекта" msgid "ClusterIntegration|Learn more about %{link_to_documentation}" msgstr "Узнайте больше на %{link_to_documentation}" msgid "ClusterIntegration|Learn more about environments" +msgstr "Узнайте больше о Ñредах" + +msgid "ClusterIntegration|Learn more about security configuration" msgstr "" msgid "ClusterIntegration|Machine type" @@ -954,16 +1115,16 @@ msgid "ClusterIntegration|Make sure your account %{link_to_requirements} to crea msgstr "" msgid "ClusterIntegration|Manage" -msgstr "" +msgstr "Управление" msgid "ClusterIntegration|Manage your Kubernetes cluster by visiting %{link_gke}" -msgstr "" +msgstr "УправлÑйте вашему клаÑтером Kubernetes, Ð¿ÐµÑ€ÐµÐ¹Ð´Ñ Ð¿Ð¾ ÑÑылке %{link_gke}" msgid "ClusterIntegration|More information" -msgstr "" +msgstr "Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" msgid "ClusterIntegration|Multiple Kubernetes clusters are available in GitLab Enterprise Edition Premium and Ultimate" -msgstr "" +msgstr "ÐеÑколько клаÑтеров Kubernetes доÑтупно в GitLab Entreprise Edition Premium и Ultimate" msgid "ClusterIntegration|Note:" msgstr "Примечание:" @@ -972,7 +1133,7 @@ msgid "ClusterIntegration|Number of nodes" msgstr "КоличеÑтво узлов" msgid "ClusterIntegration|Please enter access information for your Kubernetes cluster. If you need help, you can read our %{link_to_help_page} on Kubernetes" -msgstr "" +msgstr "ПожалуйÑта, укажите параметры доÑтупа к вашему клаÑтеру Kubernetes. ЕÑли вам необходима помощь, вы можете ознакомитьÑÑ Ñ Ð½Ð°ÑˆÐµÐ¹ Ñтраницей %{link_to_help_page} по Kubernetes" msgid "ClusterIntegration|Please make sure that your Google account meets the following requirements:" msgstr "ПожалуйÑта, убедитеÑÑŒ, что ваш аккаунт Google отвечает Ñледующим требованиÑм:" @@ -993,13 +1154,13 @@ msgid "ClusterIntegration|Read our %{link_to_help_page} on Kubernetes cluster in msgstr "" msgid "ClusterIntegration|Remove Kubernetes cluster integration" -msgstr "" +msgstr "Удалить интеграцию клаÑтера Kubernetes" msgid "ClusterIntegration|Remove integration" msgstr "Удалить интеграцию" msgid "ClusterIntegration|Remove this Kubernetes cluster's configuration from this project. This will not delete your actual Kubernetes cluster." -msgstr "" +msgstr "Удалить Ñту конфигурацию клаÑтера Kubernetes из Ñтого проекта. Ðто не приведет к удалению вашего фактичеÑкого клаÑтера Kubernetes." msgid "ClusterIntegration|Request to begin installing failed" msgstr "Ðе удалоÑÑŒ выполнить Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° запуÑк процеÑÑа уÑтановки" @@ -1007,9 +1168,12 @@ msgstr "Ðе удалоÑÑŒ выполнить Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° запуÑк п msgid "ClusterIntegration|Save changes" msgstr "Сохранить изменениÑ" -msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" +msgid "ClusterIntegration|Security" msgstr "" +msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" +msgstr "ПроÑмотр и редактирование информации о вашем клаÑтере Kubernetes" + msgid "ClusterIntegration|See machine types" msgstr "См. типы машин" @@ -1029,25 +1193,28 @@ msgid "ClusterIntegration|Something went wrong on our end." msgstr " У Ð½Ð°Ñ Ñ‡Ñ‚Ð¾-то пошло не так." msgid "ClusterIntegration|Something went wrong while creating your Kubernetes cluster on Google Kubernetes Engine" -msgstr "" +msgstr "Что-то пошло не так при Ñоздании клаÑтера Kubernetes в Google Kubernetes Engine" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "Произошли ошибки во Ð²Ñ€ÐµÐ¼Ñ ÑƒÑтановки %{title}" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" msgid "ClusterIntegration|Toggle Kubernetes Cluster" -msgstr "" +msgstr "Переключить КлаÑтер Kubernetes" msgid "ClusterIntegration|Toggle Kubernetes cluster" -msgstr "" +msgstr "Переключить клаÑтер Kubernetes" msgid "ClusterIntegration|Token" msgstr "Токен" msgid "ClusterIntegration|With a Kubernetes cluster associated to this project, you can use review apps, deploy your applications, run your pipelines, and much more in an easy way." -msgstr "" +msgstr "ЕÑли привÑзать клаÑтер Kubernetes к Ñтому проекту, вы Ñ Ð»Ñ‘Ð³ÐºÐ¾Ñтью Ñможете иÑпользовать Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€ÐµÐ²ÑŒÑŽ, развертывать ваши приложениÑ, запуÑкать Ñборочные линии и многое другое." msgid "ClusterIntegration|Your account must have %{link_to_kubernetes_engine}" msgstr "Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ должна иметь %{link_to_kubernetes_engine}" @@ -1077,13 +1244,13 @@ msgid "ClusterIntegration|properly configured" msgstr "правильно наÑтроен" msgid "Collapse" -msgstr "" +msgstr "Свернуть" msgid "Comment and resolve discussion" -msgstr "" +msgstr "Прокомментировать и закрыть диÑкуÑÑию" msgid "Comment and unresolve discussion" -msgstr "" +msgstr "Прокомментировать и переоткрыть диÑкуÑÑию" msgid "Comments" msgstr "Комментарии" @@ -1162,24 +1329,66 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" msgid "CompareBranches|Compare" -msgstr "" +msgstr "Сравнить" msgid "CompareBranches|Source" -msgstr "" +msgstr "ИÑточник" msgid "CompareBranches|Target" -msgstr "" +msgstr "Цель" msgid "CompareBranches|There isn't anything to compare." +msgstr "Ðечего Ñравнивать." + +msgid "Confidential" msgstr "" msgid "Confidentiality" +msgstr "КонфиденциальноÑÑ‚ÑŒ" + +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." msgstr "" +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "Подключение..." + msgid "Container Registry" msgstr "РееÑÑ‚Ñ€ Контейнеров" @@ -1225,6 +1434,12 @@ msgstr "ИÑпользовать различные имена образов" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "Когда рееÑÑ‚Ñ€ контейнеров Docker интегрирован Ñ GitLab, каждый проект может иметь Ñвое ÑобÑтвенное проÑтранÑтво Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÐµÐ³Ð¾ Docker образов." +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "РуководÑтво учаÑтника" @@ -1232,7 +1447,7 @@ msgid "Contributors" msgstr "УчаÑтники" msgid "ContributorsPage|%{startDate} – %{endDate}" -msgstr "" +msgstr "%{startDate} - %{endDate}" msgid "ContributorsPage|Building repository graph." msgstr "ПоÑтроение графа репозиториÑ." @@ -1256,40 +1471,40 @@ msgid "Copy URL to clipboard" msgstr "Копировать URL в буфер обмена" msgid "Copy branch name to clipboard" -msgstr "" +msgstr "Скопировать Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸ в буфер обмена" msgid "Copy command to clipboard" -msgstr "" +msgstr "Копировать команду в буфер обмена" msgid "Copy commit SHA to clipboard" msgstr "Копировать SHA коммита в буфер обмена" msgid "Copy reference to clipboard" -msgstr "" +msgstr "Скопировать ÑÑылку в буфер обмена" msgid "Create" -msgstr "" +msgstr "Создать" msgid "Create New Directory" msgstr "Создать Ðовый каталог" msgid "Create a new branch" -msgstr "" +msgstr "Создать новую ветку" msgid "Create a new branch and merge request" -msgstr "" +msgstr "Создать новую ветку и Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние" msgid "Create a personal access token on your account to pull or push via %{protocol}." msgstr "Создать личный токен на аккаунте Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ отправки через %{protocol}." msgid "Create branch" -msgstr "" +msgstr "Создать ветку" msgid "Create directory" msgstr "Создать каталог" -msgid "Create empty bare repository" -msgstr "Создать пуÑтой репозиторий" +msgid "Create empty repository" +msgstr "" msgid "Create epic" msgstr "Создать Ñпик" @@ -1297,14 +1512,17 @@ msgstr "Создать Ñпик" msgid "Create file" msgstr "Создать файл" -msgid "Create lists from labels. Issues with that label appear in that list." +msgid "Create group label" msgstr "" +msgid "Create lists from labels. Issues with that label appear in that list." +msgstr "Создать ÑпиÑок из меток. ОбÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ñ Ñтой меткой поÑвлÑÑŽÑ‚ÑÑ Ð² Ñтом ÑпиÑке." + msgid "Create merge request" msgstr "Создать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние" msgid "Create merge request and branch" -msgstr "" +msgstr "Создать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние и ветку" msgid "Create new branch" msgstr "Создать новую ветку" @@ -1316,11 +1534,14 @@ msgid "Create new file" msgstr "Создать новый файл" msgid "Create new label" -msgstr "" +msgstr "Создать новую метку" msgid "Create new..." msgstr "Ðовый" +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "Ответвить" @@ -1331,10 +1552,10 @@ msgid "CreateTokenToCloneLink|create a personal access token" msgstr "Ñоздать перÑональный токен доÑтупа" msgid "Creates a new branch from %{branchName}" -msgstr "" +msgstr "Создает новую ветку из %{branchName}" msgid "Creates a new branch from %{branchName} and re-directs to create a new merge request" -msgstr "" +msgstr "Создает новую ветку из %{branchName} и перенаправлÑет на Ñоздание нового запроÑа на ÑлиÑние" msgid "Creating epic" msgstr "Создание Ñпика" @@ -1346,7 +1567,7 @@ msgid "Cron syntax" msgstr "СинтакÑÐ¸Ñ Cron" msgid "Current node" -msgstr "" +msgstr "Текущий узел" msgid "Custom notification events" msgstr "Ð¡Ð¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð½Ð°Ñтраиваемых уведомлений" @@ -1354,6 +1575,9 @@ msgstr "Ð¡Ð¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð½Ð°Ñтраиваемых уведомлений" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "ÐаÑтраиваемые уровни уведомлений аналогичны уровню уведомлений в ÑоответÑтвии Ñ ÑƒÑ‡Ð°Ñтием. С наÑтраиваемыми уровнÑми уведомлений вы также будете получать ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾ выбранных ÑобытиÑÑ…. Чтобы узнать больше, поÑмотрите %{notification_link}." +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "Ðналитика Цикла" @@ -1391,7 +1615,7 @@ msgid "December" msgstr "Декабрь" msgid "Default classification label" -msgstr "" +msgstr "Метка клаÑÑификации по умолчанию" msgid "Define a custom pattern with cron syntax" msgstr "Определить наÑтраиваемый шаблон Ñ ÑинтакÑиÑом cron" @@ -1419,19 +1643,19 @@ msgid "Details" msgstr "ÐŸÐ¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" msgid "Diffs|No file name available" -msgstr "" +msgstr "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° недоÑтупно" msgid "Directory name" msgstr "Ð˜Ð¼Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð°" msgid "Disable" -msgstr "" +msgstr "Отключить" msgid "Discard draft" -msgstr "" +msgstr "Удалить черновик" msgid "Discover GitLab Geo." -msgstr "" +msgstr "Откройте Ð´Ð»Ñ ÑÐµÐ±Ñ GitLab Geo." msgid "Dismiss Cycle Analytics introduction box" msgstr "Отключить блок Ð²Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð² Ðналитику Цикла" @@ -1439,9 +1663,15 @@ msgstr "Отключить блок Ð²Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð² Ðналитику ЦиРmsgid "Dismiss Merge Request promotion" msgstr "Отключить анонÑÑ‹ Ð´Ð»Ñ Ð—Ð°Ð¿Ñ€Ð¾Ñов на ÑлиÑние" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "Ðе показывать Ñнова" +msgid "Done" +msgstr "" + msgid "Download" msgstr "Скачать" @@ -1469,7 +1699,13 @@ msgstr "ПроÑтой Diff" msgid "DownloadSource|Download" msgstr "Скачать" +msgid "Downvotes" +msgstr "" + msgid "Due date" +msgstr "Срок" + +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." msgstr "" msgid "Edit" @@ -1479,15 +1715,54 @@ msgid "Edit Pipeline Schedule %{id}" msgstr "Изменить раÑпиÑание Ñборочной линии %{id}" msgid "Edit files in the editor and commit changes here" +msgstr "Редактируйте файлы в редакторе и зафикÑируйте Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð´ÐµÑÑŒ" + +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" msgstr "" msgid "Emails" msgstr "Email-адреÑа" msgid "Enable" -msgstr "" +msgstr "Включить" msgid "Enable Auto DevOps" +msgstr "Включить Auto DevOps" + +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" msgstr "" msgid "Environments|An error occurred while fetching the environments." @@ -1550,41 +1825,44 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "Ðпики позволÑÑ‚ вам управлÑÑ‚ÑŒ портфелем проектов более Ñффективно и Ñ Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼Ð¸ уÑилиÑми" -msgid "Error checking branch data. Please try again." +msgid "Error Reporting and Logging" msgstr "" +msgid "Error checking branch data. Please try again." +msgstr "Ошибка проверки данных ветки. ПожалуйÑта, попробуйте еще раз." + msgid "Error committing changes. Please try again." -msgstr "" +msgstr "Ошибка при Ñохранении изменений. ПожалуйÑта, попробуйте еще раз." msgid "Error creating epic" msgstr "Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñпика" msgid "Error fetching contributors data." -msgstr "" +msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… учаÑтников." msgid "Error fetching labels." -msgstr "" +msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¼ÐµÑ‚Ð¾Ðº." msgid "Error fetching network graph." -msgstr "" +msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñетевого графа." msgid "Error fetching refs" -msgstr "" +msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑÑылок" msgid "Error fetching usage ping data." -msgstr "" +msgstr "Ошибка при получении данных об иÑпользовании ping." msgid "Error occurred when toggling the notification subscription" msgstr "Произошла ошибка при переключении подпиÑки на оповещение" msgid "Error saving label update." -msgstr "" +msgstr "Ошибка при обновлении метки." msgid "Error updating status for all todos." -msgstr "" +msgstr "Ошибка при обновлении ÑтатуÑа Ð´Ð»Ñ Ð²Ñех todo." msgid "Error updating todo status." -msgstr "" +msgstr "Ошибка при обновлении ÑтатуÑа todo." msgid "EventFilterBy|Filter by all" msgstr "Фильтр по вÑему" @@ -1614,7 +1892,7 @@ msgid "Every week (Sundays at 4:00am)" msgstr "Еженедельно (по воÑкреÑениÑм в 4:00)" msgid "Expand" -msgstr "" +msgstr "Развернуть" msgid "Explore projects" msgstr "Обзор проектов" @@ -1625,9 +1903,15 @@ msgstr "ИÑÑледовать публичные группы" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1637,6 +1921,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "Ðевыполненные ЗаданиÑ" @@ -1644,13 +1931,13 @@ msgid "Failed to change the owner" msgstr "Ðе удалоÑÑŒ изменить владельца" msgid "Failed to remove issue from board, please try again." -msgstr "" +msgstr "Ошибка при удалении обÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ñ Ð´Ð¾Ñки, повторите попытку." msgid "Failed to remove the pipeline schedule" msgstr "Ðе удалоÑÑŒ удалить раÑпиÑание Ñборочной линии" msgid "Failed to update issues, please try again." -msgstr "" +msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ñуждений, пожалуйÑта, попробуйте Ñнова." msgid "Feb" msgstr "Фев." @@ -1659,7 +1946,7 @@ msgid "February" msgstr "Февраль" msgid "Fields on this page are now uneditable, you can configure" -msgstr "" +msgstr "ÐŸÐ¾Ð»Ñ Ð½Ð° Ñтой Ñтранице ÑÐµÐ¹Ñ‡Ð°Ñ Ð½ÐµÐ´Ð¾Ñтупны Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ, вы можете наÑтроить" msgid "File name" msgstr "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" @@ -1668,6 +1955,9 @@ msgid "Files" msgstr "Файлы" msgid "Files (%{human_size})" +msgstr "Файлов (%{human_size})" + +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" msgstr "" msgid "Filter by commit message" @@ -1679,18 +1969,27 @@ msgstr "ПоиÑк по пути" msgid "Find file" msgstr "Ðайти файл" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "Первый" msgid "FirstPushedBy|pushed by" msgstr "отправлено автором" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Ответвление" +msgstr[1] "ОтветвлениÑ" +msgstr[2] "Ответвлений" +msgstr[3] "ОтветвлениÑ" msgid "ForkedFromProjectPath|Forked from" msgstr "Ответвлено от" @@ -1698,9 +1997,15 @@ msgstr "Ответвлено от" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "Ответвление от %{project_name} (удалено)" +msgid "Forking in progress" +msgstr "ВыполнÑетÑÑ Ð¾Ñ‚Ð²ÐµÑ‚Ð²Ð»ÐµÐ½Ð¸Ðµ" + msgid "Format" msgstr "Формат" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "От ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð±ÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð¾ Ñ€Ð°Ð·Ð²ÐµÑ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ в рабочей Ñреде" @@ -1714,17 +2019,23 @@ msgid "GPG Keys" msgstr "GPG Ключи" msgid "Generate a default set of labels" -msgstr "" +msgstr "Создать Ñтандартный набор меток" msgid "Geo Nodes" msgstr "ГеографичеÑкие Узлы" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "Ðа узле Ñбой или он не работает." msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "Узел функционирует медленно, перегужен или только что воÑÑтановлен поÑле ÑбоÑ." +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1770,21 +2081,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1797,9 +2135,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1830,21 +2180,42 @@ msgstr "Выберите группы Ð´Ð»Ñ Ñ€ÐµÐ¿Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸." msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "URL-Ð°Ð´Ñ€ÐµÑ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Git" + msgid "Git revision" -msgstr "" +msgstr "Ð ÐµÐ²Ð¸Ð·Ð¸Ñ git" msgid "Git storage health information has been reset" msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ ÑтабильноÑти Git хранилища была Ñброшена" msgid "Git version" +msgstr "ВерÑÐ¸Ñ Git" + +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" msgstr "" msgid "GitLab Runner section" msgstr "Ð¡ÐµÐºÑ†Ð¸Ñ Gitlab Runner" -msgid "Gitaly Servers" +msgid "GitLab single sign on URL" msgstr "" +msgid "Gitaly" +msgstr "" + +msgid "Gitaly Servers" +msgstr "Серверы Gitaly" + +msgid "Go back" +msgstr "ВернутьÑÑ" + msgid "Go to your fork" msgstr "Перейти к вашему ответвлению" @@ -1855,7 +2226,7 @@ msgid "Google authentication is not %{link_to_documentation}. Ask your GitLab ad msgstr "ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Google не %{link_to_documentation}. ПопроÑите Ñвоего админиÑтратора GitLab, еÑли вы хотите воÑпользоватьÑÑ Ñтим ÑервиÑом." msgid "Got it!" -msgstr "" +msgstr "ПонÑтно!" msgid "GroupRoadmap|Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" @@ -1911,9 +2282,6 @@ msgstr "Группы не найдены" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "Ð’Ñ‹ можете управлÑÑ‚ÑŒ правами и доÑтупом учаÑтников вашей группы к каждому проекту в группе." -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "Создать проект в Ñтой группе." @@ -1944,6 +2312,9 @@ msgstr "К Ñожалению, по вашему запроÑу групп илРmsgid "Have your users email" msgstr "ÐÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð°Ñ Ð¿Ð¾Ñ‡Ñ‚Ð° Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ð¹ пользователей" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "Проверка работоÑпоÑобноÑти" @@ -1962,6 +2333,15 @@ msgstr "Проблем работоÑпоÑобноÑти не обнаружеРmsgid "HealthCheck|Unhealthy" msgstr "ÐеÑтабильный" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1975,12 +2355,39 @@ msgstr "ИÑториÑ" msgid "Housekeeping successfully started" msgstr "ОчиÑтка уÑпешно запущена" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "ВыполнÑетÑÑ Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "Импорт репозиториÑ" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "Улучшить доÑки обÑуждений Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ GitLab Enterprise Edition." @@ -1991,19 +2398,22 @@ msgid "Improve search with Advanced Global Search and GitLab Enterprise Edition. msgstr "Улучшить поиÑк при помощи РаÑширенного Глобального ПоиÑка и GitLab Enterprise Edition." msgid "Install Runner on Kubernetes" -msgstr "" +msgstr "УÑтановить Runner на Kubernetes" msgid "Install a Runner compatible with GitLab CI" msgstr "УÑтановите Gitlab Runner ÑовмеÑтимый Ñ Gitlab CI" msgid "Instance" msgid_plural "Instances" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "ÐкземплÑÑ€" +msgstr[1] "ÐкземплÑра" +msgstr[2] "ÐкземплÑров" +msgstr[3] "ÐкземплÑры" msgid "Instance does not support multiple Kubernetes clusters" +msgstr "ÐкземплÑÑ€ не поддерживает неÑколько клаÑтеров Kubernetes" + +msgid "Integrations" msgstr "" msgid "Interested parties can even contribute by pushing commits if they want to." @@ -2060,26 +2470,29 @@ msgstr "Июн." msgid "June" msgstr "Июнь" -msgid "Kubernetes" +msgid "Koding" msgstr "" +msgid "Kubernetes" +msgstr "Kubernetes" + msgid "Kubernetes Cluster" -msgstr "" +msgstr "КлаÑтер Kubernetes" msgid "Kubernetes cluster creation time exceeds timeout; %{timeout}" -msgstr "" +msgstr "Ð’Ñ€ÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ»Ð°Ñтера Kubernetes превышает Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ; %{timeout}" msgid "Kubernetes cluster integration was not removed." -msgstr "" +msgstr "Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ ÐºÐ»Ð°Ñтера Кубернете не была удалена." msgid "Kubernetes cluster integration was successfully removed." -msgstr "" +msgstr "Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ ÐºÐ»Ð°Ñтера Kubernetes была уÑпешно удалена." msgid "Kubernetes cluster was successfully updated." -msgstr "" +msgstr "КлаÑтер Kubernetes был уÑпешно обновлён." msgid "Kubernetes configured" -msgstr "" +msgstr "Kubernetes наÑтроен" msgid "Kubernetes service integration has been deprecated. %{deprecated_message_content} your Kubernetes clusters using the new <a href=\"%{url}\"/>Kubernetes Clusters</a> page" msgstr "" @@ -2090,12 +2503,30 @@ msgstr "Отключено" msgid "LFSStatus|Enabled" msgstr "Включено" +msgid "Label" +msgstr "Метка" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "Метки" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "ПоÑледний %d день" @@ -2155,10 +2586,13 @@ msgid "License" msgstr "ЛицензиÑ" msgid "List" +msgstr "СпиÑок" + +msgid "List your GitHub repositories" msgstr "" msgid "Loading the GitLab IDE..." -msgstr "" +msgstr "Загрузка GitLab IDE..." msgid "Lock" msgstr "Блокировка" @@ -2169,9 +2603,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "Заблокировано" @@ -2187,9 +2618,21 @@ msgstr "Войти" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "Мар." @@ -2211,6 +2654,9 @@ msgstr "Среднее" msgid "Members" msgstr "УчаÑтники" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "ЗапроÑÑ‹ на СлиÑние" @@ -2223,15 +2669,87 @@ msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "СообщениÑ" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2247,6 +2765,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "добавить ключ SSH" @@ -2259,6 +2786,9 @@ msgstr "" msgid "Monitoring" msgstr "Мониторинг" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2335,6 +2865,9 @@ msgstr "ÐÐ¾Ð²Ð°Ñ Ð¿Ð¾Ð´Ð³Ñ€ÑƒÐ¿Ð¿Ð°" msgid "New tag" msgstr "Ðовый тег" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2353,6 +2886,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "Ðет репозиториÑ" @@ -2368,6 +2904,12 @@ msgstr "" msgid "Not available" msgstr "ÐедоÑтупно" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2377,6 +2919,18 @@ msgstr "ÐедоÑтаточно данных" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾ ÑобытиÑÑ…" @@ -2461,6 +3015,12 @@ msgstr "ОктÑбрь" msgid "OfSearchInADropdown|Filter" msgstr "Фильтр" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "Только учаÑтники проекта могут оÑтавлÑÑ‚ÑŒ комментарии." @@ -2482,12 +3042,18 @@ msgstr "ÐаÑтройки" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "Обзор" msgid "Owner" msgstr "Владелец" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "ПоÑледнÑÑ Â»" @@ -2500,9 +3066,21 @@ msgstr "ПредыдущаÑ" msgid "Pagination|« First" msgstr "« ПерваÑ" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "Пароль" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "Ð¡Ð±Ð¾Ñ€Ð¾Ñ‡Ð½Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ" @@ -2584,9 +3162,36 @@ msgstr "Сборочные линии за поÑледний год" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2617,6 +3222,9 @@ msgstr "Ñо Ñтадией" msgid "Pipeline|with stages" msgstr "Ñо ÑтадиÑми" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2626,6 +3234,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "ПожалуйÑта, решите reCAPTCHA" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "ПредпочтениÑ" @@ -2680,6 +3294,9 @@ msgstr "Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ñ msgid "Profiles|your account" msgstr "ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2704,9 +3321,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "Детали проекта" @@ -2803,6 +3417,12 @@ msgstr "К Ñожалению, по вашему запроÑу проекты Ð msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "Ðта функциональноÑÑ‚ÑŒ требует поддержки localStorage в вашем браузере" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2815,9 +3435,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "По умолчанию, Prometheus запуÑкаетÑÑ Ð¿Ð¾ адреÑу ‘http://localhost:9090’. Ðе рекомендуетÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑ‚ÑŒ Ð°Ð´Ñ€ÐµÑ Ð¸ порт по умолчанию, так как Ñто может привеÑти к конфликту Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ ÑервиÑами запущенными на GitLab Ñервере." +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "Определение и наÑтройка метрик..." +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2830,20 +3462,14 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "Метрики" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "Метрики автоматичеÑки наÑтраиваютÑÑ Ð¸ отÑлеживаютÑÑ Ð½Ð° оÑнове популÑрных библиотек метрик." - msgid "PrometheusService|Missing environment variable" msgstr "Пропущена Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ" -msgid "PrometheusService|Monitored" -msgstr "Мониторинг подключен" - msgid "PrometheusService|More information" msgstr "Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." -msgstr "Ðи одной метрики не отÑлеживаетÑÑ. Ð”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° мониторинга разверните окружение." +msgid "PrometheusService|New metric" +msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" msgstr "Базовый Ð°Ð´Ñ€ÐµÑ Prometheus API, например http://prometheus.example.com/" @@ -2851,6 +3477,9 @@ msgstr "Базовый Ð°Ð´Ñ€ÐµÑ Prometheus API, например http://promet msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2860,8 +3489,17 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" -msgstr "ПроÑмотр окружений" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" +msgstr "" msgid "Protip:" msgstr "" @@ -2896,6 +3534,9 @@ msgstr "Подробнее" msgid "Readme" msgstr "ИнÑтрукциÑ" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "Ветки" @@ -2929,6 +3570,9 @@ msgstr "СвÑзанные ЗапроÑÑ‹ на СлиÑние" msgid "Related Merged Requests" msgstr "СвÑзанные Влитые ЗапроÑÑ‹" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "Ðапомнить позже" @@ -2944,12 +3588,24 @@ msgstr "Удалить проект" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "Репозиторий" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð´Ð¾Ñтупа" @@ -2963,6 +3619,9 @@ msgid "Reset runners registration token" msgstr "СброÑить ключ региÑтрации Gitlab Runners" msgid "Resolve discussion" +msgstr "Закрыть диÑкуÑÑию" + +msgid "Response" msgstr "" msgid "Reveal value" @@ -2978,9 +3637,36 @@ msgstr "Отменить Ñто коммит" msgid "Revert this merge request" msgstr "Отменить Ñтот Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "SSH Ключи" @@ -2996,6 +3682,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "РаÑпиÑание новой Ñборочной линии" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "РаÑпиÑаниÑ" @@ -3005,6 +3694,9 @@ msgstr "Планирование Сборочных Линий" msgid "Scoped issue boards" msgstr "ТематичеÑкие доÑки обÑуждений" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "Ðайти ветки и теги" @@ -3068,15 +3760,33 @@ msgstr "Шаблоны Служб" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "УÑтановите пароль в Ñвоем аккаунте, чтобы отправлÑÑ‚ÑŒ или получать код через %{protocol}." +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "ÐаÑтройка Koding" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "уÑтановите пароль" @@ -3086,6 +3796,9 @@ msgstr "ÐаÑтройки" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3123,6 +3836,18 @@ msgstr "ОтÑутÑтвует" msgid "Sidebar|Weight" msgstr "ВеÑ" +msgid "Sign-in restrictions" +msgstr "" + +msgid "Sign-up restrictions" +msgstr "" + +msgid "Size and domain settings for static websites" +msgstr "" + +msgid "Slack application" +msgstr "" + msgid "Snippets" msgstr "Сниппеты" @@ -3130,18 +3855,12 @@ msgid "Something went wrong on our end" msgstr "" msgid "Something went wrong on our end." -msgstr "У Ð½Ð°Ñ Ñ‡Ñ‚Ð¾-то пошло не так." - -msgid "Something went wrong trying to change the confidentiality of this issue" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" -msgstr "Что-то пошло не так при попытке Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑоÑтоÑÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ ${this.issuableDisplayName}" - msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" msgid "Something went wrong while fetching SAST." @@ -3153,12 +3872,6 @@ msgstr "Что-то пошло не так при получении Ð¿Ñ€Ð¾ÐµÐºÑ msgid "Something went wrong while fetching the registry list." msgstr "Что-то пошло не так при получении ÑпиÑка рееÑтров." -msgid "Something went wrong while reopening the %{issuable}. Please try again later" -msgstr "" - -msgid "Something went wrong while resolving this discussion. Please try again." -msgstr "" - msgid "Something went wrong. Please try again." msgstr "" @@ -3276,12 +3989,21 @@ msgstr "ИÑходный текÑÑ‚ недоÑтупен" msgid "Spam Logs" msgstr "Спам Логи" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "Укажите Ñледующий URL во Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ñтройки Gitlab Runner:" msgid "StarProject|Star" msgstr "Отметить" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "Отмеченные проекты" @@ -3291,6 +4013,15 @@ msgstr "Ðачать %{new_merge_request} Ñ Ñтих изменений" msgid "Start the Runner!" msgstr "ЗапуÑтить GitLab Runner!" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "ОÑтановлен" @@ -3303,9 +4034,15 @@ msgstr "Подгруппы" msgid "Switch branch/tag" msgstr "Переключить ветка/тег" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "СиÑтемные Обработчики" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3388,6 +4125,9 @@ msgstr "защищенный" msgid "Target Branch" msgstr "Ветка" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "Команда" @@ -3403,15 +4143,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "Ðтап напиÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð´Ð° показывает Ð²Ñ€ÐµÐ¼Ñ Ñ Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ коммита до ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа на ÑлиÑние. Данные автоматичеÑки добавÑÑ‚ÑÑ Ñюда поÑле того, как вы Ñоздать Ñвой первый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние." msgid "The collection of events added to the data gathered for that stage." msgstr "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ñобытий добавленных в данные Ñобранные Ð´Ð»Ñ Ñтого Ñтапа." +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "СвÑзь Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ удалена." +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "Ð¡Ñ‚Ð°Ð´Ð¸Ñ Ð¾Ð±ÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÑ‚ времÑ, которое потребуетÑÑ Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ‚Ð° ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð±ÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð¾ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ð±Ñуждению вехи, или Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±ÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ð½Ð° вашу доÑку задач. Ðачните Ñоздавать обÑуждениÑ, чтобы увидеть ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñтой Ñтадии." @@ -3424,12 +4173,18 @@ msgstr "КоличеÑтво попыток, которые GitLab будет п msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "КоличеÑтво Ñбоев, поÑле которого Gitlab полноÑтью прекратит доÑтуп к хранилищу. Изменение Ñчётчика \"количеÑтво Ñбоев\" может быть произведено через админиÑтративный интерфейÑ: %{link_to_health_page} или при помощи API %{api_documentation_link}." +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "Фаза жизненного цикла разработки." msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "Ðтап Ð¿Ð»Ð°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÑ‚ Ð²Ñ€ÐµÐ¼Ñ Ð¾Ñ‚ предыдущего шага до отправки первого коммита. ДобавлÑетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки, как только отправите Ñвой первый коммит." +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "ПроизводÑтвенный Ñтап показывает общее Ð²Ñ€ÐµÐ¼Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ñозданием обÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¸ развертыванием кода в продуктивной Ñреде. Данные будут автоматичеÑки добавлены поÑле полного Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¸Ð´ÐµÐ¸." @@ -3445,6 +4200,9 @@ msgstr "Репозиторий Ð´Ð»Ñ Ñтого проекта не ÑущеÑÑ msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "Ðтап обзора показывает Ð²Ñ€ÐµÐ¼Ñ Ð¾Ñ‚ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа ÑлиÑÐ½Ð¸Ñ Ð´Ð¾ его выполнениÑ. Данные будут автоматичеÑки добавлены поÑле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ запроÑа на ÑлиÑние." @@ -3481,6 +4239,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "Проблемы Ñ Ð´Ð¾Ñтупом к Git хранилищу: " +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3512,7 +4273,7 @@ msgid "This is the author's first Merge Request to this project." msgstr "Ðто первый Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние от автора в Ñтот проект." msgid "This issue is confidential" -msgstr "" +msgstr "Ðто обÑуждение ÑвлÑетÑÑ ÐºÐ¾Ð½Ñ„Ð¸Ð´ÐµÐ½Ñ†Ð¸Ð°Ð»ÑŒÐ½Ñ‹Ð¼" msgid "This issue is confidential and locked." msgstr "Ðто обÑуждение конфиденциально и заблокировано." @@ -3553,6 +4314,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "Ðти Ñлектронные пиÑьма автоматичеÑки преобразуютÑÑ Ð² обÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ (комментарии раÑÑылаютÑÑ ÐºÐ°Ðº ветвь обÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ð² почте), перечиÑленные здеÑÑŒ." @@ -3565,6 +4329,12 @@ msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð´Ð¾ начала работы над обÑуждением" msgid "Time between merge request creation and merge/close" msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ñозданием запроÑа ÑлиÑÐ½Ð¸Ñ Ð¸ ÑлиÑнием / закрытием" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3726,6 +4496,36 @@ msgstr "" msgid "Title" msgstr "Заголовок" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3765,23 +4565,17 @@ msgstr "" msgid "Turn on Service Desk" msgstr "Включить Службу Поддержки" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "Разблокировать" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "Разблокировано" msgid "Unresolve discussion" -msgstr "" +msgstr "Переоткрыть диÑкуÑÑию" msgid "Unstar" msgstr "СнÑÑ‚ÑŒ отметку" @@ -3816,6 +4610,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "кликните Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "ИÑпользуйте Службу поддержки Ð´Ð»Ñ ÑвÑзи Ñ Ð²Ð°ÑˆÐ¸Ð¼Ð¸ пользователÑми (например, Ð´Ð»Ñ Ð¾ÑущеÑÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸ клиентов) через Ñлектронную почту непоÑредÑтвенно в GitLab" @@ -3825,24 +4625,51 @@ msgstr "ИÑпользуйте Ñледующий токен региÑтрацРmsgid "Use your global notification setting" msgstr "ИÑпользуютÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ñ‹Ð¹ наÑтройки уведомлений" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "ПроÑмотр файла @ " +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "ПроÑмотреть открытый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑлиÑние" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "ПроÑмотр заменённого файла @ " +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "Ограниченный" @@ -3870,12 +4697,18 @@ msgstr "Мы хотим быть уверены, что Ñто вы, Ð¿Ð¾Ð¶Ð°Ð»Ñ msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "Веб-обработчики позволÑÑŽÑ‚ вам вызывать Ð°Ð´Ñ€ÐµÑ URL еÑли, например, отправлен новый код или Ñоздано новое обÑуждение. Ð’Ñ‹ можете наÑтроить веб-обработчики так, чтобы они реагировали на определённые ÑобытиÑ, такие как отправки кода, обÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ запроÑÑ‹ на ÑлиÑние. Групповые веб-обработчики применÑÑŽÑ‚ÑÑ ÐºÐ¾ вÑем проектам в группе и позволÑÑŽÑ‚ вам Ñтандартизовать функциональноÑÑ‚ÑŒ веб-обработчиков Ð´Ð»Ñ Ð²Ñей вашей группы." msgid "Weight" msgstr "ВеÑ" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "Wiki" @@ -3907,13 +4740,13 @@ msgid "WikiHistoricalPage|This is an old version of this page." msgstr "Ðто уÑÑ‚Ð°Ñ€ÐµÐ²ÑˆÐ°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтой Ñтраницы." msgid "WikiHistoricalPage|You can view the %{most_recent_link} or browse the %{history_link}." -msgstr "Ð’Ñ‹ можете увидеть %{most_recent_link} либо проÑмотреть %{history_link}." +msgstr "Ð’Ñ‹ можете увидеть %{most_recent_link}, либо проÑмотреть %{history_link}." msgid "WikiHistoricalPage|history" -msgstr "иÑториÑ" +msgstr "иÑторию изменений" msgid "WikiHistoricalPage|most recent version" -msgstr "поÑледнÑÑ Ð²ÐµÑ€ÑиÑ" +msgstr "поÑледнюю верÑию" msgid "WikiMarkdownDocs|More examples are in the %{docs_link}" msgstr "Дополнительные примеры находÑÑ‚ÑÑ Ð² %{docs_link}" @@ -3996,14 +4829,20 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "Ð’Ñ‹ ÑобираетеÑÑŒ удалить %{group_name}. Удаленные группы ÐЕ МОГУТ быть воÑÑтановлены! Ð’Ñ‹ ÐБСОЛЮТÐО уверены?" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "Ð’Ñ‹ хотите удалить %{project_name_with_namespace}. Удаленный проект ÐЕ МОЖЕТ быть воÑÑтановлен! Ð’Ñ‹ ÐБСОЛЮТÐО уверены?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "Ð’Ñ‹ ÑобираетеÑÑŒ удалить ÑвÑзь Ð¾Ñ‚Ð²ÐµÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¸Ñходным проектом %{forked_from_project}. Ð’Ñ‹ ÐБСОЛЮТÐО уверены?" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "Ð’Ñ‹ ÑобираетеÑÑŒ передать проект %{project_name_with_namespace} другому владельцу. Ð’Ñ‹ ÐБСОЛЮТÐО уверены?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." +msgstr "" msgid "You can also create a project from the command line." msgstr "" @@ -4077,9 +4916,27 @@ msgstr "Ð’Ñ‹ не Ñможете работать Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð¾Ð¼ через msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4095,6 +4952,16 @@ msgstr "Ваше имÑ" msgid "Your projects" msgstr "Ваши проекты" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + msgid "assign yourself" msgstr "" @@ -4104,12 +4971,30 @@ msgstr "Ð¸Ð¼Ñ Ð²ÐµÑ‚Ð²Ð¸" msgid "by" msgstr "по" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4137,9 +5022,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4152,25 +5034,28 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "коммит" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" @@ -4180,15 +5065,44 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4202,9 +5116,21 @@ msgstr[3] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4217,11 +5143,14 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" msgid "mrWidget|Cancel automatic merge" -msgstr "" +msgstr "Отменить автоматичеÑкое ÑлиÑние" msgid "mrWidget|Check out branch" msgstr "" @@ -4244,18 +5173,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4296,7 +5234,7 @@ msgid "mrWidget|Request to merge" msgstr "" msgid "mrWidget|Resolve conflicts" -msgstr "" +msgstr "Разрешить конфликты" msgid "mrWidget|Revert" msgstr "" @@ -4340,6 +5278,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4380,6 +5321,9 @@ msgstr "пароль" msgid "personal access token" msgstr "токен Ð´Ð»Ñ Ð¿ÐµÑ€Ñонального доÑтупа" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4389,6 +5333,9 @@ msgstr "иÑходный текÑÑ‚" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "чтобы помочь учаÑтникам взаимодейÑтвовать Ñффективнее!" diff --git a/locale/tr_TR/gitlab.po b/locale/tr_TR/gitlab.po index b4df4c4b1af..6a025dfbae5 100644 --- a/locale/tr_TR/gitlab.po +++ b/locale/tr_TR/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:20-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:35-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -29,6 +29,11 @@ msgid_plural "%d commits behind" msgstr[0] "" msgstr[1] "" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" +msgstr[1] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" @@ -44,6 +49,11 @@ msgid_plural "%d merge requests" msgstr[0] "" msgstr[1] "" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" +msgstr[1] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "" @@ -60,6 +70,9 @@ msgid_plural "%{count} participants" msgstr[0] "%{count} katılımcı" msgstr[1] "%{count} katılımcı" +msgid "%{loadingIcon} Started" +msgstr "" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "" @@ -103,15 +116,30 @@ msgstr "Ä°lk katkı!" msgid "2FA enabled" msgstr "" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "" msgid "Abuse Reports" msgstr "Kötüye Kullanım Raporları" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "EriÅŸim anahtarları" @@ -121,6 +149,9 @@ msgstr "" msgid "Account" msgstr "Hesap" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "Etkin" @@ -217,9 +248,33 @@ msgstr "Tümü" msgid "All changes are committed" msgstr "" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "Kubernetes kümelerini eklemeye ve yönetmenize olanak tanır." +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + msgid "An error occurred previewing the blob" msgstr "" @@ -298,6 +353,9 @@ msgstr "Kullanıcı adı doÄŸrulanırken bir hata oluÅŸtu" msgid "An error occurred. Please try again." msgstr "Bir hata oluÅŸtu. Lütfen tekrar deneyin." +msgid "Any Label" +msgstr "" + msgid "Appearance" msgstr "Görünüm" @@ -331,6 +389,9 @@ msgstr "Emin misiniz?" msgid "Artifacts" msgstr "" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "#FF0000 gibi özel renk ata" @@ -343,6 +404,15 @@ msgstr "" msgid "Assign to" msgstr "Ata" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "" @@ -367,6 +437,9 @@ msgstr "Yazarlar: %{authors}" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -409,6 +482,12 @@ msgstr "Avatar kaldırılacak. Emin misiniz?" msgid "Average per day: %{average}" msgstr "" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "" @@ -492,6 +571,15 @@ msgstr "" msgid "Branches" msgstr "" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "" @@ -537,12 +625,39 @@ msgstr "" msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" msgstr "" msgid "Branches|Sort by" msgstr "" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -588,30 +703,45 @@ msgstr "" msgid "Browse files" msgstr "" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "" msgid "CI / CD" msgstr "" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" msgstr "" +msgid "CI/CD for external repo" +msgstr "" + msgid "CICD|Jobs" msgstr "" msgid "Cancel" msgstr "" -msgid "Cancel edit" +msgid "Cannot be merged automatically" msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "" @@ -666,6 +796,12 @@ msgstr "" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "" +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "" @@ -768,6 +904,15 @@ msgstr "" msgid "Click to expand text" msgstr "" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "" @@ -867,6 +1012,9 @@ msgstr "" msgid "ClusterIntegration|Helm Tiller" msgstr "" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "" @@ -876,6 +1024,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "" @@ -894,6 +1045,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -927,6 +1081,9 @@ msgstr "" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "" @@ -987,6 +1144,9 @@ msgstr "" msgid "ClusterIntegration|Save changes" msgstr "" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1014,6 +1174,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1138,6 +1301,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1153,9 +1322,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "" @@ -1201,6 +1406,12 @@ msgstr "" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "" +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "" @@ -1264,7 +1475,7 @@ msgstr "" msgid "Create directory" msgstr "" -msgid "Create empty bare repository" +msgid "Create empty repository" msgstr "" msgid "Create epic" @@ -1273,6 +1484,9 @@ msgstr "" msgid "Create file" msgstr "" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1297,6 +1511,9 @@ msgstr "" msgid "Create new..." msgstr "" +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "" @@ -1330,6 +1547,9 @@ msgstr "" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "" +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "" @@ -1413,9 +1633,15 @@ msgstr "" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "" +msgid "Done" +msgstr "" + msgid "Download" msgstr "" @@ -1443,9 +1669,15 @@ msgstr "" msgid "DownloadSource|Download" msgstr "" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "" @@ -1455,6 +1687,18 @@ msgstr "" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "" @@ -1464,6 +1708,33 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1524,6 +1795,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1599,9 +1873,15 @@ msgstr "" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1611,6 +1891,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1644,6 +1927,9 @@ msgstr "" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "" @@ -1653,12 +1939,21 @@ msgstr "" msgid "Find file" msgstr "" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "" msgid "FirstPushedBy|pushed by" msgstr "" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "" @@ -1670,9 +1965,15 @@ msgstr "" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "" @@ -1691,12 +1992,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "" +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1742,21 +2049,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1769,9 +2103,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1802,6 +2148,9 @@ msgstr "" msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1811,12 +2160,30 @@ msgstr "" msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "" @@ -1883,9 +2250,6 @@ msgstr "" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "" @@ -1916,6 +2280,9 @@ msgstr "" msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "" @@ -1934,6 +2301,15 @@ msgstr "" msgid "HealthCheck|Unhealthy" msgstr "" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1945,12 +2321,39 @@ msgstr "" msgid "Housekeeping successfully started" msgstr "" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "" @@ -1974,6 +2377,9 @@ msgstr[1] "" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2028,6 +2434,9 @@ msgstr "" msgid "June" msgstr "" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2058,12 +2467,30 @@ msgstr "" msgid "LFSStatus|Enabled" msgstr "" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "" @@ -2123,6 +2550,9 @@ msgstr "" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2135,9 +2565,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "" @@ -2153,9 +2580,21 @@ msgstr "" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "" @@ -2177,6 +2616,9 @@ msgstr "" msgid "Members" msgstr "" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "" @@ -2189,15 +2631,87 @@ msgstr "" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2213,6 +2727,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "" @@ -2225,6 +2748,9 @@ msgstr "" msgid "Monitoring" msgstr "" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2299,6 +2825,9 @@ msgstr "" msgid "New tag" msgstr "" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2317,6 +2846,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "" @@ -2332,6 +2864,12 @@ msgstr "" msgid "Not available" msgstr "" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2341,6 +2879,18 @@ msgstr "" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "" @@ -2425,6 +2975,12 @@ msgstr "" msgid "OfSearchInADropdown|Filter" msgstr "" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "" @@ -2446,12 +3002,18 @@ msgstr "" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "" msgid "Owner" msgstr "" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "" @@ -2464,9 +3026,21 @@ msgstr "" msgid "Pagination|« First" msgstr "" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "" @@ -2548,9 +3122,36 @@ msgstr "" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2581,6 +3182,9 @@ msgstr "" msgid "Pipeline|with stages" msgstr "" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2590,6 +3194,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "" @@ -2644,6 +3254,9 @@ msgstr "" msgid "Profiles|your account" msgstr "" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2668,9 +3281,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "" @@ -2767,6 +3377,12 @@ msgstr "" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2779,9 +3395,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "" +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "" +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2794,19 +3422,13 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "" - msgid "PrometheusService|Missing environment variable" msgstr "" -msgid "PrometheusService|Monitored" -msgstr "" - msgid "PrometheusService|More information" msgstr "" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." +msgid "PrometheusService|New metric" msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" @@ -2815,6 +3437,9 @@ msgstr "" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2824,7 +3449,16 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" msgid "Protip:" @@ -2860,6 +3494,9 @@ msgstr "" msgid "Readme" msgstr "" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "" @@ -2893,6 +3530,9 @@ msgstr "" msgid "Related Merged Requests" msgstr "" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "" @@ -2908,12 +3548,24 @@ msgstr "" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "" @@ -2929,6 +3581,9 @@ msgstr "" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2940,9 +3595,36 @@ msgstr "" msgid "Revert this merge request" msgstr "" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "" @@ -2958,6 +3640,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "" @@ -2967,6 +3652,9 @@ msgstr "" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "" @@ -3030,15 +3718,33 @@ msgstr "" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "" +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "" @@ -3048,6 +3754,9 @@ msgstr "" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3083,40 +3792,40 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" -msgid "Snippets" +msgid "Sign-in restrictions" msgstr "" -msgid "Something went wrong on our end" +msgid "Sign-up restrictions" msgstr "" -msgid "Something went wrong on our end." +msgid "Size and domain settings for static websites" msgstr "" -msgid "Something went wrong trying to change the confidentiality of this issue" +msgid "Slack application" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" +msgid "Snippets" msgstr "" -msgid "Something went wrong when toggling the button" +msgid "Something went wrong on our end" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong on our end." msgstr "" -msgid "Something went wrong while fetching SAST." +msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while fetching the projects." +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" -msgid "Something went wrong while fetching the registry list." +msgid "Something went wrong while fetching SAST." msgstr "" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" +msgid "Something went wrong while fetching the projects." msgstr "" -msgid "Something went wrong while resolving this discussion. Please try again." +msgid "Something went wrong while fetching the registry list." msgstr "" msgid "Something went wrong. Please try again." @@ -3236,12 +3945,21 @@ msgstr "" msgid "Spam Logs" msgstr "" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "" msgid "StarProject|Star" msgstr "" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "" @@ -3251,6 +3969,15 @@ msgstr "" msgid "Start the Runner!" msgstr "" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "" @@ -3263,9 +3990,15 @@ msgstr "" msgid "Switch branch/tag" msgstr "" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3346,6 +4079,9 @@ msgstr "" msgid "Target Branch" msgstr "" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "" @@ -3361,15 +4097,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "" msgid "The collection of events added to the data gathered for that stage." msgstr "" +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "" +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "" @@ -3382,12 +4127,18 @@ msgstr "" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "" msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "" +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "" @@ -3403,6 +4154,9 @@ msgstr "" msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "" @@ -3439,6 +4193,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "" +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3511,6 +4268,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3523,6 +4283,12 @@ msgstr "" msgid "Time between merge request creation and merge/close" msgstr "" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3680,6 +4446,36 @@ msgstr "" msgid "Title" msgstr "" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3719,18 +4515,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "" @@ -3770,6 +4560,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3779,24 +4575,51 @@ msgstr "" msgid "Use your global notification setting" msgstr "" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "" +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "" +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "" @@ -3824,12 +4647,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "" @@ -3950,13 +4779,19 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." msgstr "" msgid "You can also create a project from the command line." @@ -4031,9 +4866,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4049,6 +4902,14 @@ msgstr "" msgid "Your projects" msgstr "" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + msgid "assign yourself" msgstr "" @@ -4058,12 +4919,30 @@ msgstr "" msgid "by" msgstr "" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4091,9 +4970,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4106,25 +4982,28 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" @@ -4132,15 +5011,40 @@ msgid_plural "days" msgstr[0] "" msgstr[1] "" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" +msgstr[1] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4152,9 +5056,21 @@ msgstr[1] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4167,6 +5083,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4194,18 +5113,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4290,6 +5218,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4328,6 +5259,9 @@ msgstr "" msgid "personal access token" msgstr "" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4337,6 +5271,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "" diff --git a/locale/uk/gitlab.po b/locale/uk/gitlab.po index 44dbbe8141b..2c7d3751531 100644 --- a/locale/uk/gitlab.po +++ b/locale/uk/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:20-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:35-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -33,6 +33,13 @@ msgstr[1] "%d коміта позаду" msgstr[2] "%d комітів позаду" msgstr[3] "%d комітів позаду" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "%d екÑпортер" +msgstr[1] "%d екÑпортера" +msgstr[2] "%d екÑпортерів" +msgstr[3] "%d екÑпортерів" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "%d проблема" @@ -54,12 +61,19 @@ msgstr[1] "%d запита на злиттÑ" msgstr[2] "%d запитів на злиттÑ" msgstr[3] "%d запитів на злиттÑ" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "%d метрика" +msgstr[1] "%d метрики" +msgstr[2] "%d метрик" +msgstr[3] "%d метрик" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." -msgstr[0] "%s доданий коміт був виключений Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð±Ñ–Ð³Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ із швидкодією." -msgstr[1] "%s доданих коміта були виключені Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð±Ñ–Ð³Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ із швидкодією." -msgstr[2] "%s доданих комітів були виключені Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð±Ñ–Ð³Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ із швидкодією." -msgstr[3] "%s доданих комітів були виключені Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð±Ñ–Ð³Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ із швидкодією." +msgstr[0] "%s доданий коміт був виключений Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð±Ñ–Ð³Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ із продуктивніÑÑ‚ÑŽ." +msgstr[1] "%s доданих коміта були виключені Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð±Ñ–Ð³Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ із продуктивніÑÑ‚ÑŽ." +msgstr[2] "%s доданих комітів були виключені Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð±Ñ–Ð³Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ із продуктивніÑÑ‚ÑŽ." +msgstr[3] "%s доданих комітів були виключені Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð±Ñ–Ð³Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ із продуктивніÑÑ‚ÑŽ." msgid "%{actionText} & %{openOrClose} %{noteable}" msgstr "%{actionText} Ñ– %{openOrClose} %{noteable}" @@ -74,6 +88,9 @@ msgstr[1] "%{count} учаÑтника" msgstr[2] "%{count} учаÑтників" msgstr[3] "%{count} учаÑтників" +msgid "%{loadingIcon} Started" +msgstr "%{loadingIcon} Початок" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "%{lock_path} заблоковано кориÑтувачем GitLab %{lock_user_id}" @@ -121,15 +138,30 @@ msgstr "Перший внеÑок!" msgid "2FA enabled" msgstr "Двоетапна Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð°" +msgid "<strong>Removes</strong> source branch" +msgstr "<strong>ВидалÑÑ”</strong> гілку-джерело" + msgid "A collection of graphs regarding Continuous Integration" msgstr "Ðабір графіків відноÑно безперервної інтеграції" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "У вашому форку буде Ñтворено нову гілку, а також буде ініційований новий запит на злиттÑ." + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "Проект — це міÑце де ви можете розміщувати Ñвої файли (репозиторій), планувати роботу (проблеми) Ñ– публікувати документацію (wiki), %{among_other_things_link}." + +msgid "A user with write access to the source branch selected this option" +msgstr "КориÑтувач із правом запиÑу в гілку-джерело вибрав цей варіант" + msgid "About auto deploy" msgstr "Про авто розгортаннÑ" msgid "Abuse Reports" msgstr "Звіти про зловживаннÑ" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "Токени доÑтупу" @@ -139,6 +171,9 @@ msgstr "ДоÑтуп до Ñховищ, що вийшли з ладу, тимчРmsgid "Account" msgstr "Обліковий запиÑ" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "Ðктивний" @@ -235,9 +270,33 @@ msgstr "Ð’ÑÑ–" msgid "All changes are committed" msgstr "Ð’ÑÑ– зміни закомічені" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "Ð’ÑÑ– функції Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… проектів берутьÑÑ Ñ–Ð· шаблонів або під Ñ‡Ð°Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ, але ви можете вимикати Ñ—Ñ… пізніше в налаштуваннÑÑ… проекту." + +msgid "Allow edits from maintainers." +msgstr "Дозволити Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ проекту." + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "ДозволÑÑ” додавати та керувати клаÑтерами Kubernetes." +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "Крім того, ви можете викориÑтовувати %{personal_access_token_link}. Коли ви Ñтворюватимете Ñвій перÑональний токен доÑтупу, вам потрібно буде вибрати облаÑÑ‚ÑŒ <code>репозиторіÑ</code>, щоб ми могли відобразити ÑпиÑок ваших публічних та приватних репозиторіїв, доÑтупних Ð´Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ñƒ." + msgid "An error occurred previewing the blob" msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ переглÑду об'єкта" @@ -251,10 +310,10 @@ msgid "An error occurred while adding approver" msgstr "Помилка при додаванні учаÑника Ð´Ð»Ñ Ð·Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ" msgid "An error occurred while detecting host keys" -msgstr "" +msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при виÑвленні ключів хоÑта" msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again." -msgstr "" +msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при вимкненні Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ функцію. Оновіть Ñторінку Ñ– Ñпробуйте знову." msgid "An error occurred while fetching markdown preview" msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при попередньому переглÑді markdown" @@ -296,7 +355,7 @@ msgid "An error occurred while rendering KaTeX" msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при рендерингу KaTeX" msgid "An error occurred while rendering preview broadcast message" -msgstr "" +msgstr "Помилка при попередньому переглÑді Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів" msgid "An error occurred while retrieving calendar activity" msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при отриманні ÐºÐ°Ð»ÐµÐ½Ð´Ð°Ñ€Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑÑ‚Ñ–" @@ -305,10 +364,10 @@ msgid "An error occurred while retrieving diff" msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при отриманні різниці" msgid "An error occurred while saving LDAP override status. Please try again." -msgstr "" +msgstr "Помилка при збереженні ÑтатуÑу Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ LDAP. Будь лаÑка, Ñпробуйте ще раз." msgid "An error occurred while saving assignees" -msgstr "" +msgstr "Помилка при збереженні виконавців" msgid "An error occurred while validating username" msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ імені кориÑтувача" @@ -316,6 +375,9 @@ msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ Ñ–Ð¼ÐµÐ½Ñ msgid "An error occurred. Please try again." msgstr "СталаÑÑŒ помилка. Спробуйте ще раз." +msgid "Any Label" +msgstr "Будь-Ñка мітка" + msgid "Appearance" msgstr "Зовнішній виглÑд" @@ -335,10 +397,10 @@ msgid "Are you sure you want to delete this pipeline schedule?" msgstr "Ви впевнені, що хочете видалити цей розклад Ð´Ð»Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ð°?" msgid "Are you sure you want to reset registration token?" -msgstr "Ви впевнені, що бажаєте Ñкинути реєÑтраційний токен?" +msgstr "Ви впевнені, що бажаєте перегенерувати реєÑтраційний токен?" msgid "Are you sure you want to reset the health check token?" -msgstr "Ви впевнені, що хочете Ñкинути цей ключ перевірки працездатноÑÑ‚Ñ–?" +msgstr "Ви впевнені, що Ви хочете перегенерувати цей ключ перевірки працездатноÑÑ‚Ñ–?" msgid "Are you sure you want to unlock %{path_lock_path}?" msgstr "Ви впевнені, що хочете розблокувати %{path_lock_path}?" @@ -349,6 +411,9 @@ msgstr "Ви впевнені?" msgid "Artifacts" msgstr "Ðртефакти" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "Призначити влаÑний колір типу #FF0000" @@ -361,6 +426,15 @@ msgstr "Призначити етап" msgid "Assign to" msgstr "Призначити" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "Виконавець" @@ -385,6 +459,9 @@ msgstr "Ðвтори: %{authors}" msgid "Auto DevOps enabled" msgstr "Auto DevOps увімкнено" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "Ð”Ð»Ñ ÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¾Ñ— роботи Auto Review Apps та Auto Deploy необхіден %{kubernetes}." @@ -398,7 +475,7 @@ msgid "AutoDevOps|Auto DevOps (Beta)" msgstr "Auto DevOps (бета)" msgid "AutoDevOps|Auto DevOps documentation" -msgstr "Auto DevOps документаціÑ" +msgstr "Auto DevOps документації" msgid "AutoDevOps|Enable in settings" msgstr "Включити в налаштуваннÑÑ…" @@ -419,7 +496,7 @@ msgid "AutoDevOps|enable Auto DevOps (Beta)" msgstr "Увімкнути Auto DevOps (Beta)" msgid "Available" -msgstr "ДоÑтупний" +msgstr "ДоÑтупно" msgid "Avatar will be removed. Are you sure?" msgstr "Ðватар буде видалено. Ви впевнені?" @@ -427,6 +504,12 @@ msgstr "Ðватар буде видалено. Ви впевнені?" msgid "Average per day: %{average}" msgstr "Ð’ Ñередньому за день: %{average}" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "Почати із виділеного коміту" @@ -512,6 +595,15 @@ msgstr "Перейти в гілку" msgid "Branches" msgstr "Гілки" +msgid "Branches|Active" +msgstr "Ðктивні" + +msgid "Branches|Active branches" +msgstr "Ðктивні гілки" + +msgid "Branches|All" +msgstr "Ð’ÑÑ–" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "Ðе можу знайти HEAD-коміт Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— гілки" @@ -557,12 +649,39 @@ msgstr "Як тільки ви підтвердите Ñ– натиÑнете %{de msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "Тільки керівник або влаÑник проекту може видалити захищену гілку" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" -msgstr "Керувати захищеними гілками можливо в %{project_settings_link}" +msgid "Branches|Overview" +msgstr "ОглÑд" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "Керувати захищеними гілками можливо в %{project_settings_link}." + +msgid "Branches|Show active branches" +msgstr "Показувати активні гілки" + +msgid "Branches|Show all branches" +msgstr "Показувати вÑÑ– гілки" + +msgid "Branches|Show more active branches" +msgstr "Показати більше активних гілок" + +msgid "Branches|Show more stale branches" +msgstr "Показати більше заÑтарілих гілок" + +msgid "Branches|Show overview of the branches" +msgstr "Показати Ð¾Ð¿Ð¸Ñ Ð³Ñ–Ð»Ð¾Ðº" + +msgid "Branches|Show stale branches" +msgstr "Показати заÑтарілі гілки" msgid "Branches|Sort by" msgstr "Сортувати за" +msgid "Branches|Stale" +msgstr "ЗаÑтарілі" + +msgid "Branches|Stale branches" +msgstr "ЗаÑтарілі гілки" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "Гілка не може бути оновлена автоматично, тому що вона має розбіжноÑÑ‚Ñ– із upstream." @@ -608,30 +727,45 @@ msgstr "ПереглÑд файлів" msgid "Browse files" msgstr "ПереглÑд файлів" +msgid "Business" +msgstr "БізнеÑ" + msgid "ByAuthor|by" msgstr "від" msgid "CI / CD" msgstr "CI / CD" +msgid "CI/CD" +msgstr "CI/CD" + msgid "CI/CD configuration" msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ CI/CD" +msgid "CI/CD for external repo" +msgstr "CI/CD Ð´Ð»Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ репозиторіÑ" + msgid "CICD|Jobs" msgstr "ЗавданнÑ" msgid "Cancel" msgstr "СкаÑувати" -msgid "Cancel edit" -msgstr "Відмінити правку" +msgid "Cannot be merged automatically" +msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "Ðеможливо змінити керований клаÑтер Kubernetes" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "Вага зміни" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "Вибрати в гілці" @@ -651,7 +785,7 @@ msgid "Changelog" msgstr "СпиÑок змін" msgid "Changes are shown as if the <b>source</b> revision was being merged into the <b>target</b> revision." -msgstr "" +msgstr "Зміни відображаютьÑÑ Ñ‚Ð°Ðº, ніби <b>редакціÑ-джерело</b> була злита в <b>цільову редакцію</b>." msgid "Charts" msgstr "Графіки" @@ -686,6 +820,12 @@ msgstr "Виберіть файл..." msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "Виберіть групи Ð´Ð»Ñ Ñинхронізації на цей вторинний вузол." +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "Виберіть, Ñкі репозиторії ви хочете підключити Ñ– запуÑтити конвеєри CI/CD." + +msgid "Choose which repositories you want to import." +msgstr "Виберіть, Ñкі репозиторії ви хочете імпортувати." + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "Виберіть Ñегменти Ð´Ð»Ñ Ñинхронізації на цей вторинний вузол." @@ -788,6 +928,15 @@ msgstr "ÐатиÑніть кнопку нижче, щоб розпочати п msgid "Click to expand text" msgstr "ÐатиÑніть, щоб розгорнути текÑÑ‚" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "Клонувати репозиторій" @@ -834,7 +983,7 @@ msgid "ClusterIntegration|Control how your Kubernetes cluster integrates with Gi msgstr "Керуйте ÑпоÑобом інтеграції вашого Kubernetes-клаÑтера з GitLab" msgid "ClusterIntegration|Copy API URL" -msgstr "Скопіювати URL API" +msgstr "Скопіювати API URL" msgid "ClusterIntegration|Copy CA Certificate" msgstr "Скопіювати Ñертифікат центру Ñертифікації" @@ -887,6 +1036,9 @@ msgstr "Проект Google Kubernetes Engine" msgid "ClusterIntegration|Helm Tiller" msgstr "Helm Tiller" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб показувати Ñтан клаÑтера, нам потрібно буде вÑтановити Prometheus на ваш клаÑтер Ð´Ð»Ñ Ð·Ð±Ð¾Ñ€Ñƒ необхідних даних." + msgid "ClusterIntegration|Ingress" msgstr "Ingress" @@ -896,6 +1048,9 @@ msgstr "Ingress IP-адреÑа" msgid "ClusterIntegration|Install" msgstr "Ð’Ñтановити" +msgid "ClusterIntegration|Install Prometheus" +msgstr "Ð’Ñтановити Prometheus" + msgid "ClusterIntegration|Installed" msgstr "Ð’Ñтановлений" @@ -914,6 +1069,9 @@ msgstr "Kubernetes-клаÑтер" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "Параметри Kubernetes-клаÑтера" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "Стан Kubernetes-клаÑтера" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "Ð†Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ Ñ–Ð· Kubernetes-клаÑтером" @@ -947,6 +1105,9 @@ msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про %{link_to_documentation}" msgid "ClusterIntegration|Learn more about environments" msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про Ñередовища" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про конфігурацію безпеки" + msgid "ClusterIntegration|Machine type" msgstr "Тип машини" @@ -1007,6 +1168,9 @@ msgstr "Запит про початок вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ðµ викоРmsgid "ClusterIntegration|Save changes" msgstr "Зберегти зміни" +msgid "ClusterIntegration|Security" +msgstr "Безпека" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "ПереглÑнути та редагувати параметри вашого Kubernetes-клаÑтера" @@ -1034,6 +1198,9 @@ msgstr "Помилка при Ñтворенні вашого Kubernetes-ÐºÐ»Ð°Ñ msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "Під Ñ‡Ð°Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ %{title} ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "Стандартна ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ ÐºÐ»Ð°Ñтера надає доÑтуп до широкого набору функцій, необхідних Ð´Ð»Ñ ÑƒÑпішного ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð° Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð·Ð°ÑтоÑунків-контейнерів." + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "Цей обліковий Ð·Ð°Ð¿Ð¸Ñ Ð¿Ð¾Ð²Ð¸Ð½ÐµÐ½ мати наÑтупні права Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Kubernetes-клаÑтера в %{link_to_container_project}" @@ -1080,10 +1247,10 @@ msgid "Collapse" msgstr "Згорнути" msgid "Comment and resolve discussion" -msgstr "" +msgstr "Залишити коментар Ñ– завершити обговореннÑ" msgid "Comment and unresolve discussion" -msgstr "" +msgstr "Залишити коментар Ñ– повторно відкрити обговореннÑ" msgid "Comments" msgstr "Коментарі" @@ -1162,6 +1329,12 @@ msgstr "ПорівнÑти Git-редакції" msgid "Compare Revisions" msgstr "ПорівнÑÐ½Ð½Ñ Ñ€ÐµÐ´Ð°ÐºÑ†Ñ–Ð¹" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "%{source_branch} Ñ– %{target_branch} однакові." @@ -1177,9 +1350,45 @@ msgstr "Ціль" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "КонфіденційніÑÑ‚ÑŒ" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "Підключити" + +msgid "Connect all repositories" +msgstr "Підключити вÑÑ– репозиторії" + +msgid "Connect repositories from GitHub" +msgstr "Підключити репозиторії з GitHub" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "Підключіть ваші зовнішні репозиторії, Ñ– CI/CD конвеєри будуть запуÑкатиÑÑ Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… комітів. Створений GitLab-проект буде мати лише CI/CD фунції." + +msgid "Connecting..." +msgstr "З'єднаннÑ..." + msgid "Container Registry" msgstr "РеєÑÑ‚Ñ€ Контейнерів" @@ -1225,6 +1434,12 @@ msgstr "ВикориÑтовуйте різні імена образів" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "За допомогою вбудованого в GitLab реєÑтру Docker контейнерів кожен проект може мати влаÑне міÑце Ð´Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Docker образів." +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "ВнеÑок" + msgid "Contribution guide" msgstr "ІнÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ Ð´Ð»Ñ ÑƒÑ‡Ð°Ñників" @@ -1288,8 +1503,8 @@ msgstr "Створити гілку" msgid "Create directory" msgstr "Створити каталог" -msgid "Create empty bare repository" -msgstr "Створити порожній репозиторій" +msgid "Create empty repository" +msgstr "" msgid "Create epic" msgstr "Створити епік" @@ -1297,6 +1512,9 @@ msgstr "Створити епік" msgid "Create file" msgstr "Створити файл" +msgid "Create group label" +msgstr "Створити мітку групи" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "Створити ÑпиÑок на оÑтнові міток. Ð’ ньому будуть проблеми з такими мітками." @@ -1321,6 +1539,9 @@ msgstr "Створити нову мітку" msgid "Create new..." msgstr "Створити..." +msgid "Create project label" +msgstr "Створити мітку проекту" + msgid "CreateNewFork|Fork" msgstr "Форк" @@ -1354,6 +1575,9 @@ msgstr "КориÑтувацькі Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "Спеціальні рівні Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñпівпадають з рівнем учаÑÑ‚Ñ–. За допомогою Ñпеціальних рівнів Ñповіщень ви також отримуватимете ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ вибрані події. Щоб дізнатиÑÑŒ більше, переглÑньте %{notification_link}." +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "Ðналіз циклу" @@ -1391,7 +1615,7 @@ msgid "December" msgstr "грудень" msgid "Default classification label" -msgstr "" +msgstr "Мітка клаÑифікації за замовчуваннÑм" msgid "Define a custom pattern with cron syntax" msgstr "Визначте влаÑний шаблон за допомогою ÑинтакÑиÑу cron" @@ -1437,11 +1661,17 @@ msgid "Dismiss Cycle Analytics introduction box" msgstr "Відмінити блок вÑтупу до Ðналитики Циклу" msgid "Dismiss Merge Request promotion" -msgstr "Відхилити рекламу Ð´Ð»Ñ Ð—Ð°Ð¿Ð¸Ñ‚Ñ–Ð² на злиттÑ" +msgstr "Вимкнути рекламу Ð´Ð»Ñ Ð—Ð°Ð¿Ð¸Ñ‚Ñ–Ð² на злиттÑ" + +msgid "Documentation for popular identity providers" +msgstr "" msgid "Don't show again" msgstr "Ðе показувати знову" +msgid "Done" +msgstr "Готово" + msgid "Download" msgstr "Завантажити" @@ -1469,9 +1699,15 @@ msgstr "ПроÑте порівнÑÐ½Ð½Ñ (diff)" msgid "DownloadSource|Download" msgstr "Завантажити" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "Запланована дата завершеннÑ" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "Редагувати" @@ -1479,6 +1715,18 @@ msgid "Edit Pipeline Schedule %{id}" msgstr "Редагувати Розклад Конвеєра %{id}" msgid "Edit files in the editor and commit changes here" +msgstr "Редагуйте файли в редакторі Ñ– закомітьте зміни тут" + +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" msgstr "" msgid "Emails" @@ -1490,6 +1738,33 @@ msgstr "Увімкнути" msgid "Enable Auto DevOps" msgstr "Увімкнути Auto DevOps" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "Виникла помилка при завантаженні Ñередовищ." @@ -1550,11 +1825,14 @@ msgstr "План-графік епіків" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "Епіки дозволÑÑŽÑ‚ÑŒ керувати вашим портфелем проектів ефективніше та з меншими зуÑиллÑми" -msgid "Error checking branch data. Please try again." +msgid "Error Reporting and Logging" msgstr "" +msgid "Error checking branch data. Please try again." +msgstr "Помилка при отриманні даних гілки. Будь лаÑка, Ñпробуйте пізніше." + msgid "Error committing changes. Please try again." -msgstr "" +msgstr "Помилка при коміті змін. Будь лаÑка, Ñпробуйте пізніше." msgid "Error creating epic" msgstr "Помилка при Ñтворенні епіку" @@ -1566,13 +1844,13 @@ msgid "Error fetching labels." msgstr "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¼Ñ–Ñ‚Ð¾Ðº." msgid "Error fetching network graph." -msgstr "" +msgstr "Помилка при отриманні графа мережі." msgid "Error fetching refs" -msgstr "" +msgstr "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ refs" msgid "Error fetching usage ping data." -msgstr "" +msgstr "Помилка при отриманні данних по перевірці з’єднаннÑ." msgid "Error occurred when toggling the notification subscription" msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñки на ÑповіщеннÑ" @@ -1623,22 +1901,31 @@ msgid "Explore public groups" msgstr "ПереглÑнути публічні групи" msgid "External Classification Policy Authorization" +msgstr "ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ñ–Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾ до зовнішньої політики" + +msgid "External authentication" msgstr "" msgid "External authorization denied access to this project" +msgstr "Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ñ–Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½Ð¸Ð»Ð° доÑтуп до цього проекту" + +msgid "External authorization request timeout" msgstr "" msgid "ExternalAuthorizationService|Classification Label" -msgstr "" +msgstr "Мітка клаÑифікації" msgid "ExternalAuthorizationService|Classification label" -msgstr "" +msgstr "Мітка клаÑифікації" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." -msgstr "" +msgstr "Якщо клаÑифікаційну мітку не вÑтановлено, викориÑтовуватиметьÑÑ Ñтандартна мітка `%{default_label}`." + +msgid "Failed" +msgstr "Ðевдало" msgid "Failed Jobs" -msgstr "Ðевдалі ЗавданнÑ" +msgstr "" msgid "Failed to change the owner" msgstr "Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ влаÑника" @@ -1670,6 +1957,9 @@ msgstr "Файли" msgid "Files (%{human_size})" msgstr "Файли (%{human_size})" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "Фільтрувати за коміт-повідомленнÑм" @@ -1679,12 +1969,21 @@ msgstr "Пошук по шлÑху" msgid "Find file" msgstr "Знайти файл" +msgid "Finished" +msgstr "Завершено" + msgid "FirstPushedBy|First" msgstr "Перший" msgid "FirstPushedBy|pushed by" msgstr "відправлено" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "Форк" @@ -1698,9 +1997,15 @@ msgstr "Форк від" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "Форк із %{project_name} (видалено)" +msgid "Forking in progress" +msgstr "ВідбуваєтьÑÑ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð¾Ñ€ÐºÑƒ" + msgid "Format" msgstr "Формат" +msgid "From %{provider_title}" +msgstr "З %{provider_title}" + msgid "From issue creation until deploy to production" msgstr "З моменту ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð¸ до Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° production" @@ -1708,7 +2013,7 @@ msgid "From merge request merge until deploy to production" msgstr "Від Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð´Ð¾ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° production" msgid "From the Kubernetes cluster details view, install Runner from the applications list" -msgstr "" +msgstr "Із Ñторінки деталей Kubernetes-клаÑтера, вÑтановіть runner зі ÑпиÑку заÑтоÑунків" msgid "GPG Keys" msgstr "GPG ключі" @@ -1719,12 +2024,18 @@ msgstr "Створити Ñтандартний набір міткок" msgid "Geo Nodes" msgstr "Гео-Вузли" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "Вузол не працює або зламаний." msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "Вузол працює повільно, перевантажений або тільки що відновивÑÑ Ð¿Ñ–ÑÐ»Ñ Ð·Ð±Ð¾ÑŽ." +msgid "GeoNodes|Checksummed" +msgstr "Із контрольною Ñумою" + msgid "GeoNodes|Database replication lag:" msgstr "Затримка реплікації бази даних:" @@ -1770,21 +2081,48 @@ msgstr "Ðртефакти локальних завдань:" msgid "GeoNodes|New node" msgstr "Ðовий вузол" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "Ðутентифікацію вузла уÑпішно полагоджено." + +msgid "GeoNodes|Node was successfully removed." +msgstr "Вузол уÑпішно видалено." + +msgid "GeoNodes|Not checksummed" +msgstr "Без контрольної Ñуми" + msgid "GeoNodes|Out of sync" msgstr "РозÑинхронізовані" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð²ÑƒÐ·Ð»Ð° зупинÑÑ” Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñинхронізації. Ви впевнені?" + msgid "GeoNodes|Replication slot WAL:" msgstr "Слот реплікації WAL:" msgid "GeoNodes|Replication slots:" msgstr "Слоти реплікації:" +msgid "GeoNodes|Repositories checksummed:" +msgstr "Репозиторії із контрольними Ñумами:" + msgid "GeoNodes|Repositories:" msgstr "Репозиторії:" +msgid "GeoNodes|Repository checksums verified:" +msgstr "Репозиторії із підтвердженою контрольною Ñумою:" + msgid "GeoNodes|Selective" msgstr "Вибіркові" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "Проблема при зміні ÑтатуÑа вузла" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "Проблема при видаленні вузла" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "Проблема при полагодженні вузла" + msgid "GeoNodes|Storage config:" msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ñховища:" @@ -1797,9 +2135,21 @@ msgstr "Синхронізовано" msgid "GeoNodes|Unused slots" msgstr "ÐевикориÑтані Ñлоти" +msgid "GeoNodes|Unverified" +msgstr "Ðепідтверджені" + msgid "GeoNodes|Used slots" msgstr "ВикориÑтані Ñлоти" +msgid "GeoNodes|Verified" +msgstr "Підтверджені" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "Wiki репозиторії із підтвердженою контрольною Ñумою:" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "Wiki із контрольною Ñумою:" + msgid "GeoNodes|Wikis:" msgstr "Wiki:" @@ -1830,6 +2180,9 @@ msgstr "Виберіть групи Ð´Ð»Ñ Ñ€ÐµÐ¿Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ—." msgid "Geo|Shards to synchronize" msgstr "Сегменти Ð´Ð»Ñ Ñинхронізації" +msgid "Git repository URL" +msgstr "URL Git-репозиторіÑ" + msgid "Git revision" msgstr "Git-редакціÑ" @@ -1839,12 +2192,30 @@ msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ ÑÑ‚Ð°Ñ‚ÑƒÑ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Git бул msgid "Git version" msgstr "Git-верÑÑ–Ñ" +msgid "GitHub import" +msgstr "GitHub-імпорт" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "Розділ GitLab Runner" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "Сервери Gitaly" +msgid "Go back" +msgstr "ПовернутиÑÑ" + msgid "Go to your fork" msgstr "Перейти до вашого форку" @@ -1911,9 +2282,6 @@ msgstr "Групи не знайдені" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "Ви можете керувати правами доÑтупу членів групи мати доÑтуп до кожного проекту в ній." -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "Ви впевнені, що хочете залишити групу \"${group.fullName}\"?" - msgid "GroupsTree|Create a project in this group." msgstr "Створити проект у групі." @@ -1944,6 +2312,9 @@ msgstr "Ðа жаль жодна группа чи проект не задовРmsgid "Have your users email" msgstr "Електронна пошта Ð´Ð»Ñ Ð·Ð²ÐµÑ€Ñ‚Ð°Ð½ÑŒ кориÑтувачів" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "Перевірка ПрацездатноÑÑ‚Ñ–" @@ -1962,6 +2333,15 @@ msgstr "Проблем із здоров'Ñм не виÑвлено" msgid "HealthCheck|Unhealthy" msgstr "Ðездоровий" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "Сховати значеннÑ" @@ -1975,12 +2355,39 @@ msgstr "ІÑторіÑ" msgid "Housekeeping successfully started" msgstr "ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ ÑƒÑпішно розпочато" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "При викориÑтанні GitHub, ви побачите ÑтатуÑи конвеєрів Ð´Ð»Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñ–Ð² Ñ– запитів на злиттÑ. %{more_info_link}" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "Якщо у Ð²Ð°Ñ ÑƒÐ¶Ðµ Ñ” файли, ви можете відправити Ñ—Ñ… за допомогою %{link_to_cli} нижче." +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "Якщо ваш HTTP-репозиторій не Ñ” публічним, додайте дані Ð´Ð»Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ— до URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." + +msgid "Import" +msgstr "Імпорт" + +msgid "Import all repositories" +msgstr "Імпорт вÑÑ–Ñ… репозиторіїв" + +msgid "Import in progress" +msgstr "Імпорт триває" + +msgid "Import repositories from GitHub" +msgstr "Імпорт репозиторіїв з GitHub" + msgid "Import repository" msgstr "Імпорт репозиторію" +msgid "ImportButtons|Connect repositories from" +msgstr "Підключити репозиторії із" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "Покращити дошки обговорень проблем за допомогою верÑÑ–Ñ— GitLab Enterprise Edition." @@ -2006,6 +2413,9 @@ msgstr[3] "ІнÑтанÑів" msgid "Instance does not support multiple Kubernetes clusters" msgstr "Цей інÑÑ‚Ð°Ð½Ñ Ð½Ðµ підтримує декілька Kubernetes-клаÑтерів" +msgid "Integrations" +msgstr "Інтеграції" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "Зацікавлені Ñторони за бажаннÑм можуть навіть робити внеÑки шлÑхом Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñ–Ð²." @@ -2060,6 +2470,9 @@ msgstr "чер." msgid "June" msgstr "червень" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "Kubernetes" @@ -2082,7 +2495,7 @@ msgid "Kubernetes configured" msgstr "Kubernetes налаштовано" msgid "Kubernetes service integration has been deprecated. %{deprecated_message_content} your Kubernetes clusters using the new <a href=\"%{url}\"/>Kubernetes Clusters</a> page" -msgstr "" +msgstr "СпоÑіб Інтеграції Kubernetes Ñк ÑервіÑа заÑтарів. %{deprecated_message_content} ваші Kubernetes-клаÑтери за допомогою нової Ñторінки <a href=\"%{url}\"/>КлаÑтери Kubernetes</a>" msgid "LFSStatus|Disabled" msgstr "Вимкнено" @@ -2090,12 +2503,30 @@ msgstr "Вимкнено" msgid "LFSStatus|Enabled" msgstr "Увімкнено" +msgid "Label" +msgstr "Мітка" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "%{firstLabelName} + %{remainingLabelCount} ще" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "%{labelsString} Ñ– %{remainingLabelCount} ще" + msgid "Labels" msgstr "Мітки" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "Мітки можуть бути заÑтоÑовані до %{features}. Групові мітки доÑтупні Ð´Ð»Ñ Ð±ÑƒÐ´ÑŒ-Ñкого проекту в межах групи." + msgid "Labels can be applied to issues and merge requests to categorize them." +msgstr "Мітки можуть бути заÑтоÑовані до проблем та запитів на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð´Ð»Ñ Ñ—Ñ… категоризації." + +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" msgstr "" +msgid "Labels|Promote Label" +msgstr "Підвищити мітку" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "ОÑтанній %d день" @@ -2157,6 +2588,9 @@ msgstr "ЛіцензіÑ" msgid "List" msgstr "СпиÑок" +msgid "List your GitHub repositories" +msgstr "СпиÑок ваших репозиторіїв GitHub" + msgid "Loading the GitLab IDE..." msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ IDE GitLab..." @@ -2169,9 +2603,6 @@ msgstr "Заблокувати %{issuableDisplayName}" msgid "Lock not found" msgstr "Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ знайдено" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "Заблокувати цю %{issuableDisplayName}? Лише <strong>члени проекту</strong> зможуть коментувати." - msgid "Locked" msgstr "Заблоковано" @@ -2187,9 +2618,21 @@ msgstr "Вхід" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "Зробіть кожного учаÑника команди більш продуктивним незалежно від його міÑцезнаходженнÑ. GitLab Geo Ñтворює копії \"тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ\" вашого GitLab Ñервера, щоб Ñкоротити Ñ‡Ð°Ñ Ð´Ð»Ñ ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ з великих репозиторіїв." +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ñ‚ÐºÐ°Ð¼Ð¸ групи" + msgid "Manage labels" msgstr "Керувати мітками" +msgid "Manage project labels" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ñ‚ÐºÐ°Ð¼Ð¸ проекту" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "бер." @@ -2211,6 +2654,9 @@ msgstr "Медіана" msgid "Members" msgstr "КориÑтувачі" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "Запити на злиттÑ" @@ -2221,17 +2667,89 @@ msgid "Merge request" msgstr "Запит на злиттÑ" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" -msgstr "" - -msgid "MergeRequest|Approved" -msgstr "Затверджено" +msgstr "Запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ â€” це ÑпоÑіб запропонувати Ñвої зміни до проекту Ñ– обговорити Ñ—Ñ… із іншими" msgid "Merged" -msgstr "Злиті" +msgstr "Злито" msgid "Messages" msgstr "ПовідомленнÑ" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "БізнеÑ" + +msgid "Metrics|Create metric" +msgstr "Створити метрику" + +msgid "Metrics|Edit metric" +msgstr "Редагувати метрику" + +msgid "Metrics|For grouping similar metrics" +msgstr "Ð”Ð»Ñ Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð´Ñ–Ð±Ð½Ð¸Ñ… метрик" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "Ðазва вертикальної оÑÑ– графіка. Зазвичай це — одиниці вимірюваннÑ. Горизонтальна віÑÑŒ (віÑÑŒ X) завжди відображає чаÑ." + +msgid "Metrics|Legend label (optional)" +msgstr "Заголовок легенди (необов’Ñзковий)" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "Має бути коректним запитом PromQL." + +msgid "Metrics|Name" +msgstr "Ім'Ñ" + +msgid "Metrics|New metric" +msgstr "Ðова метрика" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "Ð”Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ Ð¿Ð¾ запитам Prometheus" + +msgid "Metrics|Query" +msgstr "Запит" + +msgid "Metrics|Response" +msgstr "Відповідь" + +msgid "Metrics|System" +msgstr "СиÑтема" + +msgid "Metrics|Type" +msgstr "Тип" + +msgid "Metrics|Unit label" +msgstr "Одиниці вимірюваннÑ" + +msgid "Metrics|Used as a title for the chart" +msgstr "ВикориÑтовуєтьÑÑ Ñк заголовок графіка" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "ВикориÑтовуєтьÑÑ, Ñкщо запит повертає єдину поÑлідовніÑÑ‚ÑŒ. Якщо ж він повертає декілька, Ñ—Ñ… назви берутьÑÑ Ñ–Ð· відповіді." + +msgid "Metrics|Y-axis label" +msgstr "Ðазва оÑÑ– Y" + +msgid "Metrics|e.g. HTTP requests" +msgstr "напр. HTTP-запити" + +msgid "Metrics|e.g. Requests/second" +msgstr "напр. запитів/Ñек" + +msgid "Metrics|e.g. Throughput" +msgstr "напр. пропуÑкна здатніÑÑ‚ÑŒ" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "напр. rate(http_requests_total[5m])" + +msgid "Metrics|e.g. req/sec" +msgstr "напр. зап/Ñек" + msgid "Milestone" msgstr "Етап" @@ -2247,6 +2765,15 @@ msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ етап %{milestoneTitle}" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "Етап %{milestoneTitle} не знайдено" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "Підвищити %{milestoneTitle} до групового етапу?" + +msgid "Milestones|Promote Milestone" +msgstr "Підвищити Етап" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "не додаÑте SSH ключ" @@ -2259,6 +2786,9 @@ msgstr "Закрити" msgid "Monitoring" msgstr "Моніторинг" +msgid "More info" +msgstr "Детальніше" + msgid "More information" msgstr "Детальніше" @@ -2335,6 +2865,9 @@ msgstr "Ðова підгрупа" msgid "New tag" msgstr "Ðовий тег" +msgid "No Label" +msgstr "Без Мітки" + msgid "No assignee" msgstr "Ðемає виконавцÑ" @@ -2342,7 +2875,7 @@ msgid "No changes" msgstr "Ðемає змін" msgid "No connection could be made to a Gitaly Server, please check your logs!" -msgstr "" +msgstr "Ðеможливо з'єднатиÑÑŒ із Ñервером Gitaly, будь лаÑка, перевірте логи!" msgid "No due date" msgstr "Ðемає" @@ -2353,6 +2886,9 @@ msgstr "Ðемає запланованого або витраченого ча msgid "No file chosen" msgstr "Файл не вибрано" +msgid "No labels created yet." +msgstr "Мітки ще не Ñтворені." + msgid "No repository" msgstr "Ðемає репозиторію" @@ -2368,6 +2904,12 @@ msgstr "Ð—Ð»Ð¸Ñ‚Ñ‚Ñ Ð½Ðµ допуÑкаєтьÑÑ" msgid "Not available" msgstr "ÐедоÑтупний" +msgid "Not available for private projects" +msgstr "ÐедоÑтупно Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²Ð°Ñ‚Ð½Ð¸Ñ… проектів" + +msgid "Not available for protected branches" +msgstr "ÐедоÑтупно Ð´Ð»Ñ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¸Ñ… гілок" + msgid "Not confidential" msgstr "Ðе конфіденційно" @@ -2377,6 +2919,18 @@ msgstr "ÐедоÑтатньо даних" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "Майте на увазі, що гілка master захищена автоматично. %{link_to_protected_branches}" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "Примітка: Ñк адмініÑтратор ви можете налаштувати %{github_integration_link}, що дозволить входити через GitHub Ñ– підключати репозиторії без ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾ÑобиÑтого токену доÑтупу." + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "Примітка: Ñк адмініÑтратор ви можете налаштувати %{github_integration_link}, що дозволить входити через GitHub Ñ– імпортувати репозиторії без ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾ÑобиÑтого токену доÑтупу." + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "Примітка: звернітьÑÑ Ð´Ð¾ вашого адмініÑтратора GitLab, щоб налаштувати %{github_integration_link}, Ñкий дозволить входити за допомогою GitHub Ñ– приєднувати репозиторії без генерації перÑонального токена доÑтупу." + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "Примітка: звернітьÑÑ Ð´Ð¾ вашого адмініÑтратора GitLab, щоб налаштувати %{github_integration_link}, Ñкий дозволить входити за допомогою GitHub та імпортувати репозиторії без генерації перÑонального токена доÑтупу." + msgid "Notification events" msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ події" @@ -2461,6 +3015,12 @@ msgstr "жовтень" msgid "OfSearchInADropdown|Filter" msgstr "Фільтр" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "ПіÑÐ»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ñƒ репозиторії можуть бути віддзеркалені через SSH. ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ %{ssh_link}" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "Тільки учаÑники проекту можуть залишати коментарі." @@ -2482,12 +3042,18 @@ msgstr "Параметри" msgid "Otherwise it is recommended you start with one of the options below." msgstr "Ð’ іншому разі рекомендуєтьÑÑ Ð¿Ð¾Ñ‡Ð°Ñ‚Ð¸ з одного з наведених нижче варіантів." +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "ОглÑд" msgid "Owner" msgstr "ВлаÑник" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "ОÑÑ‚Ð°Ð½Ð½Ñ Â»" @@ -2500,9 +3066,21 @@ msgstr "ПопереднÑ" msgid "Pagination|« First" msgstr "« Перша" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "Пароль" +msgid "Pending" +msgstr "Ð’ очікуванні" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "Токену перÑонального доÑтупу" + msgid "Pipeline" msgstr "Конвеєр" @@ -2582,10 +3160,37 @@ msgid "Pipelines for last year" msgstr "Конвеєри за оÑтанній рік" msgid "Pipelines|Build with confidence" -msgstr "" +msgstr "Виконуйте збірки із впевненіÑÑ‚ÑŽ" + +msgid "Pipelines|CI Lint" +msgstr "Перевірка конфігурації (CI Lint)" + +msgid "Pipelines|Clear Runner Caches" +msgstr "ОчиÑтити кеш Runner'ів" msgid "Pipelines|Get started with Pipelines" -msgstr "Початок роботи з Конвеєрами" +msgstr "Розпочати роботу з Конвеєрами" + +msgid "Pipelines|Loading Pipelines" +msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ñ–Ð²" + +msgid "Pipelines|Project cache successfully reset." +msgstr "Кеш проекту уÑпішно очищено." + +msgid "Pipelines|Run Pipeline" +msgstr "ЗапуÑтити Конвеєр" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "Помилка при очищенні кеша runner'ів." + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "Ð’ даний Ñ‡Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” %{scope} конвеєрів." + +msgid "Pipelines|There are currently no pipelines." +msgstr "Ð’ даний Ñ‡Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” конвеєрів." + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "Цей проект в даний Ñ‡Ð°Ñ Ð½Ðµ налаштований Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку конвеєрів." msgid "Pipeline|Retry pipeline" msgstr "ПерезапуÑтити конвеєр" @@ -2617,15 +3222,24 @@ msgstr "зі Ñтадією" msgid "Pipeline|with stages" msgstr "зі ÑтадіÑми" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "Відтворити" msgid "Please <a href=%{link_to_billing} target=\"_blank\" rel=\"noopener noreferrer\">enable billing for one of your projects to be able to create a Kubernetes cluster</a>, then try again." -msgstr "" +msgstr "Будь лаÑка, <a href=%{link_to_billing} target=\"_blank\" rel=\"noopener noreferrer\">увімкніть білінга Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ з ваших проектів, щоб мати можливіÑÑ‚ÑŒ Ñтворити Kubernetes-клаÑтер</a>, Ñ– повторіть Ñпробу." msgid "Please solve the reCAPTCHA" msgstr "Будь лаÑка, пройдіть reCAPTCHA" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "Будь лаÑка, почекайте поки ми з’єднуємоÑÑ Ñ–Ð· вашим репозиторієм. Оновлюйте Ñторінку за бажаннÑм." + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "Будь лаÑка, почекайте поки ми імпортуємо ваш репозиторій. Оновлюйте Ñторінку за бажаннÑм." + msgid "Preferences" msgstr "ÐалаштуваннÑ" @@ -2639,7 +3253,7 @@ msgid "Private - The group and its projects can only be viewed by members." msgstr "Приватна — цю групу та Ñ—Ñ— проекти можуть бачити тільки Ñ—Ñ— кориÑтувачі." msgid "Private projects can be created in your personal namespace with:" -msgstr "" +msgstr "Приватні проекти можуть бути Ñтворені у вашому перÑональному проÑторі імен з:" msgid "Profile" msgstr "Профіль" @@ -2680,6 +3294,9 @@ msgstr "Ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ” влаÑником в цих Ð³Ñ msgid "Profiles|your account" msgstr "ваш обліковий запиÑ" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "Мови програмуваннÑ, що викориÑтовуєтьÑÑ Ð² цьому репозиторії" @@ -2704,9 +3321,6 @@ msgstr "Ðватар проекту" msgid "Project avatar in repository: %{link}" msgstr "Ðватар проекту в репозиторії: %{link}" -msgid "Project cache successfully reset." -msgstr "Кеш проекту уÑпішно Ñкинуто." - msgid "Project details" msgstr "Деталі проекту" @@ -2803,6 +3417,12 @@ msgstr "Ðа жаль, по вашоу запиту проектів не зна msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "Ð¦Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” підтримки localStorage вашим браузером" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "було знайдено %{exporters} з %{metrics}" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "<p class=\"text-tertiary\">ÐÑ–Ñких <a href=\"%{docsUrl}\">загальних метрик</a> не знайдено</p>" + msgid "PrometheusService|Active" msgstr "Ðктивний" @@ -2815,9 +3435,21 @@ msgstr "Ðвтоматично розгортайте та Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ¹Ñ msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "За замовчуваннÑм, Prometheus запуÑкаєтьÑÑ Ð·Ð° адреÑою ‘http://localhost:9090’. Ðе рекомендуєтьÑÑ Ð·Ð¼Ñ–Ð½ÑŽÐ²Ð°Ñ‚Ð¸ цю адреÑу Ñ– порт, бо це може призвеÑти до конфлікту з іншими ÑервіÑами запущеними на GitLab Ñервері." +msgid "PrometheusService|Common metrics" +msgstr "Загальні метрики" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "Загальні метрики автоматично збираютьÑÑ Ð½Ð° оÑнові набору метрик від популÑрних екÑпортерів." + +msgid "PrometheusService|Custom metrics" +msgstr "ВлаÑні метрики" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "Пошук та Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ‚Ñ€Ð¸Ðº..." +msgid "PrometheusService|Finding custom metrics..." +msgstr "Пошук влаÑних метрик..." + msgid "PrometheusService|Install Prometheus on clusters" msgstr "Ð’Ñтановити Prometheus на клаÑтери" @@ -2830,20 +3462,14 @@ msgstr "Ручні налаштуваннÑ" msgid "PrometheusService|Metrics" msgstr "Метрики" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "Метрики автоматично налаштовуютьÑÑ Ñ‚Ð° контролюютьÑÑ Ð½Ð° оÑнові набору метрик від популÑрних екÑпортерів." - msgid "PrometheusService|Missing environment variable" msgstr "Пропущена змінна Ñередовища" -msgid "PrometheusService|Monitored" -msgstr "Моніторинг підключено" - msgid "PrometheusService|More information" msgstr "Додаткова інформаціÑ" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." -msgstr "Жодні метрики не відÑлідковуютьÑÑ. Ð”Ð»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ моніторингу, розгорніть Ñередовище." +msgid "PrometheusService|New metric" +msgstr "Ðова метрика" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" msgstr "Базова адреÑа Prometheus API, наприклад http://prometheus.example.com/" @@ -2851,6 +3477,9 @@ msgstr "Базова адреÑа Prometheus API, наприклад http://prom msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "Prometheus автоматично налаштований на ваших клаÑтерах" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "Ці метрики будуть збиратиÑÑ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ піÑÐ»Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð² ÑкомуÑÑŒ Ñеридовищі" + msgid "PrometheusService|Time-series monitoring service" msgstr "Ð¡ÐµÑ€Ð²Ñ–Ñ Ð¼Ð¾Ð½Ñ–Ñ‚Ð¾Ñ€Ð¸Ð½Ð³Ñƒ чаÑових Ñ€Ñдів" @@ -2860,8 +3489,17 @@ msgstr "Ð”Ð»Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑ‚Ñ– ручного налаштуваннÑ, вРmsgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "Ð”Ð»Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑ‚Ñ– вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Prometheus на ваші клаÑтери, деактивуйте ручні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð¸Ð¶Ñ‡Ðµ" -msgid "PrometheusService|View environments" -msgstr "ПереглÑд Ñередовищ" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñƒ Ñеридовищі Ð´Ð»Ñ Ð·Ð±Ð¾Ñ€Ñƒ загальних метрик" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "ПеренеÑти мітку на рівень групи" + +msgid "Promote to Group Milestone" +msgstr "" msgid "Protip:" msgstr "Підказка:" @@ -2896,6 +3534,9 @@ msgstr "Докладніше" msgid "Readme" msgstr "ІнÑтрукціÑ" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "Гілки" @@ -2929,6 +3570,9 @@ msgstr "Пов'Ñзані запити на злиттÑ" msgid "Related Merged Requests" msgstr "Пов'Ñзані виконані запити" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "Ðагадати пізніше" @@ -2944,12 +3588,24 @@ msgstr "Видалити проект" msgid "Repair authentication" msgstr "Відновити аутентифікацію" +msgid "Repo by URL" +msgstr "Репозиторії по URL" + msgid "Repository" msgstr "Репозиторій" msgid "Repository has no locks." msgstr "Репозиторій не має блокувань." +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "Запит доÑтупу" @@ -2960,10 +3616,13 @@ msgid "Reset health check access token" msgstr "Оновити токен доÑтупу Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ працездатноÑÑ‚Ñ–" msgid "Reset runners registration token" -msgstr "Скинути реєÑтраційний токен runner-ів" +msgstr "Перегенерувати реєÑтраційний токен runner-ів" msgid "Resolve discussion" -msgstr "" +msgstr "Завершити обговореннÑ" + +msgid "Response" +msgstr "Відповідь" msgid "Reveal value" msgid_plural "Reveal values" @@ -2978,9 +3637,36 @@ msgstr "Ðнулювати цей коміт" msgid "Revert this merge request" msgstr "Ðнулювати цей запит на злиттÑ" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "План-графік" +msgid "Run CI/CD pipelines for external repositories" +msgstr "ЗапуÑтити CI/CD конвеєри Ð´Ð»Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ñ… репозиторіїв" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "ВиконуєтьÑÑ" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "Ключі SSH" @@ -2996,6 +3682,9 @@ msgstr "Зберегти змінні" msgid "Schedule a new pipeline" msgstr "Розклад нового конвеєра" +msgid "Scheduled" +msgstr "Заплановано" + msgid "Schedules" msgstr "Розклади" @@ -3005,6 +3694,9 @@ msgstr "ÐŸÐ»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ñ–Ð²" msgid "Scoped issue boards" msgstr "Тематичні дошки проблем" +msgid "Search" +msgstr "Пошук" + msgid "Search branches and tags" msgstr "Пошук гілок та тегів" @@ -3068,15 +3760,33 @@ msgstr "Шаблони ÑервіÑів" msgid "Service URL" msgstr "Ð¡ÐµÑ€Ð²Ñ–Ñ URL" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "Ð’Ñтановіть пароль Ð´Ð»Ñ Ñвого облікового запиÑу, щоб мати можливіÑÑ‚ÑŒ відправлÑти та отримувати через %{protocol}." +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ CI/CD" msgid "Set up Koding" msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Koding" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "вÑтановити пароль" @@ -3086,14 +3796,17 @@ msgstr "ÐалаштуваннÑ" msgid "Setup a specific Runner automatically" msgstr "" -msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" msgstr "" +msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." +msgstr "При обнуленні хвилин конвеєрів Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ проÑтору імен, кількіÑÑ‚ÑŒ вже викориÑтаних хвилин буде дорівнювати 0." + msgid "SharedRunnersMinutesSettings|Reset pipeline minutes" -msgstr "Скинути хвилини в конвеєрі" +msgstr "Обнулити хвилини в конвеєрі" msgid "SharedRunnersMinutesSettings|Reset used pipeline minutes" -msgstr "" +msgstr "Обнулити викориÑтані хвилини в конвеєрі" msgid "Show command" msgstr "Показати команду" @@ -3123,6 +3836,18 @@ msgstr "Ðемає" msgid "Sidebar|Weight" msgstr "Вага" +msgid "Sign-in restrictions" +msgstr "" + +msgid "Sign-up restrictions" +msgstr "" + +msgid "Size and domain settings for static websites" +msgstr "" + +msgid "Slack application" +msgstr "" + msgid "Snippets" msgstr "Сніпети" @@ -3130,18 +3855,12 @@ msgid "Something went wrong on our end" msgstr "ЩоÑÑŒ пішло не так з нашого боку" msgid "Something went wrong on our end." -msgstr "ЩоÑÑŒ пішло не так з нашого боку" - -msgid "Something went wrong trying to change the confidentiality of this issue" -msgstr "Помилка при зміні конфіденційноÑÑ‚Ñ– цієї проблеми" - -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" -msgstr "ЩоÑÑŒ пішло не так, при Ñпробі зміни Ñтану Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ ${this.issuableDisplayName}" +msgstr "" msgid "Something went wrong when toggling the button" msgstr "Помилка при перемиканні кнопки" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" msgid "Something went wrong while fetching SAST." @@ -3153,12 +3872,6 @@ msgstr "ЩоÑÑŒ пішло не так під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð msgid "Something went wrong while fetching the registry list." msgstr "ЩоÑÑŒ пішло не так при отриманні ÑпиÑку із реєÑтру." -msgid "Something went wrong while reopening the %{issuable}. Please try again later" -msgstr "" - -msgid "Something went wrong while resolving this discussion. Please try again." -msgstr "" - msgid "Something went wrong. Please try again." msgstr "ЩоÑÑŒ пішло не так. Будь лаÑка Ñпробуйте ще раз." @@ -3276,12 +3989,21 @@ msgstr "Джерело недоÑтупне" msgid "Spam Logs" msgstr "Спам-журнал" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "Зазначте наÑтупний URL під Ñ‡Ð°Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Runner-а:" msgid "StarProject|Star" msgstr "Ð’ обрані" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "Обрані проекти" @@ -3291,6 +4013,15 @@ msgstr "Почати %{new_merge_request} з цими змінами" msgid "Start the Runner!" msgstr "ЗапуÑÑ‚Ñ–Ñ‚ÑŒ Runner!" +msgid "Started" +msgstr "Запущений" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "СтатуÑ" + msgid "Stopped" msgstr "Зупинено" @@ -3303,9 +4034,15 @@ msgstr "Підгрупи" msgid "Switch branch/tag" msgstr "Перейти в гілку/тег" +msgid "System" +msgstr "СиÑтема" + msgid "System Hooks" msgstr "СиÑтемні гуки" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "Тег (%{tag_count})" @@ -3388,6 +4125,9 @@ msgstr "захищений" msgid "Target Branch" msgstr "Цільова гілка" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "Команда" @@ -3403,17 +4143,26 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." -msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ \"ÐапиÑÐ°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ\" показує Ñ‡Ð°Ñ Ð²Ñ–Ð´ першого коміту до ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на злиттÑ. Дані будуть автоматично додані піÑÐ»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ першого запиту на злиттÑ." +msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ ÐапиÑÐ°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ показує Ñ‡Ð°Ñ Ð²Ñ–Ð´ першого коміту до ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на злиттÑ. Дані будуть автоматично додані піÑÐ»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ першого запиту на злиттÑ." msgid "The collection of events added to the data gathered for that stage." msgstr "ÐšÐ¾Ð»ÐµÐºÑ†Ñ–Ñ Ð¿Ð¾Ð´Ñ–Ð¹ додана до даних, зібраних Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— Ñтадії." +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ припинено піÑÐ»Ñ %{timeout}. Ð”Ð»Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–Ñ—Ð², Ñким потрібно більше чаÑу, викориÑтовуйте комбінацію clone/push." + msgid "The fork relationship has been removed." msgstr "Зв'Ñзок форку видалено." +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "Імпорт буде припинено піÑÐ»Ñ %{timeout}. Ð”Ð»Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–Ñ—Ð², Ñким потрібно більше чаÑу, викориÑтовуйте комбінацію clone/push." + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." -msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ \"Проблема\" показує, Ñкільки чаÑу потрібно від ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð¸ до Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ—Ñ— до ÑкогоÑÑŒ етапу, або Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð¸ на дошку. Почніть Ñтворювати проблеми, щоб переглÑдати дані Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— Ñтадії." +msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ ÐŸÑ€Ð¾Ð±Ð»ÐµÐ¼Ð° показує, Ñкільки чаÑу потрібно від ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð¸ до Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ—Ñ— до ÑкогоÑÑŒ етапу, або Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð¸ на дошку. Почніть Ñтворювати проблеми, щоб переглÑдати дані Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— Ñтадії." msgid "The maximum file size allowed is 200KB." msgstr "МакÑимальний розмір файлу — 200 Кб." @@ -3422,16 +4171,22 @@ msgid "The number of attempts GitLab will make to access a storage." msgstr "КількіÑÑ‚ÑŒ Ñпроб, Ñкі зробить GitLab Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупу до Ñховища даних." msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." -msgstr "КількіÑÑ‚ÑŒ збоїв піÑÐ»Ñ Ñкої Gitlab повніÑÑ‚ÑŽ заблокує доÑтуп до Ñховища данних. Лічильник кількоÑÑ‚Ñ– збоїв може бути Ñкинутий в інтерфейÑÑ– адмініÑтратора (%{link_to_health_page}), або через %{api_documentation_link}." +msgstr "КількіÑÑ‚ÑŒ збоїв піÑÐ»Ñ Ñкої Gitlab повніÑÑ‚ÑŽ заблокує доÑтуп до Ñховища данних. Лічильник кількоÑÑ‚Ñ– збоїв можна буде обнулити в інтерфейÑÑ– адмініÑтратора (%{link_to_health_page}), або через %{api_documentation_link}." + +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" msgid "The phase of the development lifecycle." msgstr "Фаза життєвого циклу розробки." msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." -msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ \"ПлануваннÑ\" відображаєтьÑÑ Ñ‡Ð°Ñ Ð²Ñ–Ð´ попереднього кроку до першого коміту. ДодаєтьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾, Ñк тільки відправитьÑÑ Ð¿ÐµÑ€ÑˆÐ¸Ð¹ коміт." +msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ ÐŸÐ»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶Ð°Ñ” Ñ‡Ð°Ñ Ð²Ñ–Ð´ попереднього кроку до першого коміту. ДодаєтьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾, Ñк тільки відправитьÑÑ Ð¿ÐµÑ€ÑˆÐ¸Ð¹ коміт." + +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." -msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ \"Production\" показує загальний Ñ‡Ð°Ñ Ð¼Ñ–Ð¶ ÑтвореннÑм проблеми та розгортаннÑм коду у production. Дані будуть автоматично додані піÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ð½Ð¾Ñ— ідеї до production циклу." +msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ Production показує загальний Ñ‡Ð°Ñ Ð¼Ñ–Ð¶ ÑтвореннÑм проблеми та розгортаннÑм коду у production. Дані будуть автоматично додані піÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ð½Ð¾Ñ— ідеї до production циклу." msgid "The project can be accessed by any logged in user." msgstr "ДоÑтуп до проекту можливий будь-Ñким зареєÑтрованим кориÑтувачем." @@ -3445,17 +4200,20 @@ msgstr "Репозиторій Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ проекту не Ñ–Ñнує. msgid "The repository for this project is empty" msgstr "Репозиторій цього проекту порожній" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "Репозиторій має бути доÑтупним через <code>http://</code>, <code>https://</code> або <code>git://</code>." + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." -msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ \"ЗатвердженнÑ\" показує Ñ‡Ð°Ñ Ð²Ñ–Ð´ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ про об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð´Ð¾ його виконаннÑ. Дані будуть автоматично додані піÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ запиту на злиттÑ." +msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð·ÑƒÑ” Ñ‡Ð°Ñ Ð²Ñ–Ð´ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ про об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð´Ð¾ його виконаннÑ. Дані будуть автоматично додані піÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ запиту на злиттÑ." msgid "The roadmap shows the progress of your epics along a timeline" msgstr "План-графік показує Ñтан ваших епіків у чаÑÑ–" msgid "The staging stage shows the time between merging the MR and deploying code to the production environment. The data will be automatically added once you deploy to production for the first time." -msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ \"Staging\" показує Ñ‡Ð°Ñ Ð¼Ñ–Ð¶ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ñ‚Ð° розгортаннÑм коду у production. Дані автоматично додаютьÑÑ Ð¿Ñ–ÑÐ»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñƒ production вперше." +msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ Staging показує Ñ‡Ð°Ñ Ð¼Ñ–Ð¶ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ñ‚Ð° розгортаннÑм коду у production. Дані автоматично додаютьÑÑ Ð¿Ñ–ÑÐ»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñƒ production вперше." msgid "The testing stage shows the time GitLab CI takes to run every pipeline for the related merge request. The data will automatically be added after your first pipeline finishes running." -msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ \"ТеÑтуваннÑ\" показує чаÑ, Ñкий GitLab CI витрачає Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ конвеєра Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ð³Ð¾ запиту злиттÑ. Дані будуть автоматично додані піÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ конвеєра." +msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ Ð¢ÐµÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð·ÑƒÑ” чаÑ, Ñкий GitLab CI витрачає Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ конвеєра Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ð³Ð¾ запиту злиттÑ. Дані будуть автоматично додані піÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ конвеєра." msgid "The time in seconds GitLab will keep failure information. When no failures occur during this time, information about the mount is reset." msgstr "КількіÑÑ‚ÑŒ Ñекунд, протÑгом Ñкої GitLab зберігає інформацію про збої. Якщо протÑгом цього періоду жодних збоїв не відбуваєтьÑÑ, Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ точку Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑкидаєтьÑÑ." @@ -3464,7 +4222,7 @@ msgid "The time in seconds GitLab will try to access storage. After this time a msgstr "КількіÑÑ‚ÑŒ Ñекунд, протÑгом Ñкої GitLab намагатиметьÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ доÑтуп до Ñховища даних. По завершенню цього періоду буде згенерована помилка про Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð»Ñ–Ð¼Ñ–Ñ‚Ñƒ чаÑу." msgid "The time in seconds between storage checks. When a previous check did complete yet, GitLab will skip a check." -msgstr "" +msgstr "Ð§Ð°Ñ Ñƒ Ñекундах між перевірками Ñховища. Якщо Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ° іще на завершена, GitLab пропуÑтить наÑтупну." msgid "The time taken by each data entry gathered by that stage." msgstr "ЧаÑ, витрачений на кожен елемент, зібраний на цій Ñтадії." @@ -3481,6 +4239,9 @@ msgstr "Ðемає запитів на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð msgid "There are problems accessing Git storage: " msgstr "Є проблеми з доÑтупом до Ñховища git: " +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "Помилка при завантаженні ÐºÐ°Ð»ÐµÐ½Ð´Ð°Ñ€Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑÑ‚Ñ– кориÑтувачів." @@ -3521,7 +4282,7 @@ msgid "This issue is locked." msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð° заблокована." msgid "This job depends on a user to trigger its process. Often they are used to deploy code to production environments" -msgstr "" +msgstr "Це Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°Ð¿ÑƒÑкаєтьÑÑ ÐºÐ¾Ñ€Ð¸Ñтувачем. ЧаÑто вони викориÑтовуютьÑÑ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ на production" msgid "This job depends on upstream jobs that need to succeed in order for this job to be triggered" msgstr "Це Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ від попередніх, Ñкі повинні завершитиÑÑ ÑƒÑпішно Ð´Ð»Ñ Ð¹Ð¾Ð³Ð¾ запуÑку" @@ -3530,7 +4291,7 @@ msgid "This job has not been triggered yet" msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñ‰Ðµ не було запущене" msgid "This job has not started yet" -msgstr "Ð¦Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñ‰Ðµ не розпочалаÑÑ" +msgstr "Це Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñ‰Ðµ не запуÑтилоÑÑ" msgid "This job is in pending state and is waiting to be picked by a runner" msgstr "" @@ -3553,6 +4314,9 @@ msgstr "Цей проект" msgid "This repository" msgstr "Цей репозиторій" +msgid "This will delete the custom metric, Are you sure?" +msgstr "Це призведе до Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð²Ð»Ð°Ñної метрики, ви впевнені?" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "Ці Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð¾Ñ— пошти автоматично Ñтануть обговореннÑми проблем, Ñкі відображатимутьÑÑ Ñ‚ÑƒÑ‚ (причому коментарі Ñтануть чаÑтиною перепиÑки)." @@ -3565,6 +4329,12 @@ msgstr "Ð§Ð°Ñ Ð´Ð¾ початку роботи над проблемою" msgid "Time between merge request creation and merge/close" msgstr "Ð§Ð°Ñ Ð¼Ñ–Ð¶ ÑтвореннÑм запиту Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ñ– його виконаннÑм або закриттÑм" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "ВідÑÑ‚ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу" @@ -3726,6 +4496,36 @@ msgstr "Порада:" msgid "Title" msgstr "Ðазва" +msgid "To GitLab" +msgstr "Ð’ GitLab" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "Ð”Ð»Ñ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–Ñ—Ð² з GitHub, ви Ñпочатку повинні дозволити Gitlab доÑтуп до ÑпиÑку ваших репозиторіїв на GitHub:" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "Ð”Ð»Ñ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ð½Ð½Ñ SVN-репозиторію, переглÑньте %{svn_link}." + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "Ð”Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ñƒ репозиторіїв з GitHub, ви Ñпочатку повинні дозволити Gitlab доÑтуп до ÑпиÑку ваших репозиторіїв на GitHub:" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "Ð”Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ SVN-репозиторію, переглÑньте %{svn_link}." + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "Щоб викориÑтовувати лише функції CI/CD Ð´Ð»Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ репозиторію, виберіть <strong>CI/CD Ð´Ð»Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ репозиторію</strong>." + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду плану-графіку додайте заплановані дати початку та Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð´Ð¾ одного з ваших епіків у цій групі або Ñ—Ñ— підгрупах. ВідображаютьÑÑ Ð»Ð¸ÑˆÐµ епіки за попередні та наÑтупні 3 міÑÑці." @@ -3757,7 +4557,7 @@ msgid "Track groups of issues that share a theme, across projects and milestones msgstr "ВідÑтежуйте групи проблем зі Ñпільною темою з різних проектів та етапів" msgid "Track time with quick actions" -msgstr "" +msgstr "ВідÑтежуйте Ñ‡Ð°Ñ Ð·Ð° допомогою швидких дій" msgid "Trigger this manual action" msgstr "ЗапуÑтити цю ручну дію" @@ -3765,23 +4565,17 @@ msgstr "ЗапуÑтити цю ручну дію" msgid "Turn on Service Desk" msgstr "Ввімкнути Service Desk" -msgid "Unable to reset project cache." -msgstr "Ðеможливо Ñкинуте кеш проекту." - msgid "Unknown" msgstr "Ðевідомо" msgid "Unlock" msgstr "Розблокувати" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "Розблокувати %{issuableDisplayName}? <strong>Будь-хто</strong> зможе залишати коментарі." - msgid "Unlocked" msgstr "Розблоковано" msgid "Unresolve discussion" -msgstr "" +msgstr "Повторно відкрити обговореннÑ" msgid "Unstar" msgstr "Видалити із обраних" @@ -3816,6 +4610,12 @@ msgstr "Завантажити новий аватар" msgid "UploadLink|click to upload" msgstr "ÐатиÑніть, щоб завантажити" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "ВикориÑтовуйте Service Desk Ð´Ð»Ñ Ð·Ð²â€™Ñзку з вашими кориÑтувачами (наприклад, щоб запропонувати клієнтÑьку підтримку) через електронну пошту безпоÑередньо із GitLab" @@ -3825,24 +4625,51 @@ msgstr "ВикориÑтовувати токен під Ñ‡Ð°Ñ ÑƒÑтановк msgid "Use your global notification setting" msgstr "ВикориÑтовуютьÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ñ– Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "Змінні заÑтоÑовуютьÑÑ Ð´Ð¾ Ñередовищ через runner. Вони можуть бути захищені, в такому випадку вони доÑтупні тільки Ð´Ð»Ñ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¸Ñ… гілок та тегів. Ви можете викориÑтовувати змінні Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð², Ñекретний ключів тощо." +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "ПереглÑнути та відредагувати Ñ€Ñдки" + msgid "View epics list" msgstr "ПереглÑнути ÑпиÑок епіків" msgid "View file @ " msgstr "ПереглÑд файла @ " +msgid "View group labels" +msgstr "ПереглÑнути мітки групи" + msgid "View labels" msgstr "ПереглÑнути мітки" msgid "View open merge request" -msgstr "ПереглÑд відкритих запитів на злиттÑ" +msgstr "ПереглÑнути відкритий запит на злиттÑ" + +msgid "View project labels" +msgstr "ПереглÑнути мітки проекту" msgid "View replaced file @ " msgstr "ПереглÑд заміненого файлу @ " +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "Внутрішній" @@ -3859,7 +4686,7 @@ msgid "Want to see the data? Please ask an administrator for access." msgstr "Хочете побачити дані? Будь лаÑка, попроÑить у адмініÑтратора доÑтуп." msgid "We could not verify that one of your projects on GCP has billing enabled. Please try again." -msgstr "" +msgstr "Ми не змогли перевірити, що один із ваших проектів в GCP має ввімкнений білінг. Будь лаÑка, Ñпробуйте ще раз." msgid "We don't have enough data to show this stage." msgstr "Ми не маємо доÑтатньо даних Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— Ñтадії." @@ -3870,12 +4697,18 @@ msgstr "Ми хочемо бути впевнені, що це ви, будь л msgid "Web IDE" msgstr "Веб-IDE" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "Веб-гук дозволÑÑ” вам викликати URL Ñкщо, наприклад, був відправлений новий код або Ñтворено нову проблему. Ви можете налаштувати його так, щоб він реагував на певні події (відправки коду, проблеми або запити на злиттÑ). Групові веб-гуки заÑтоÑовуютьÑÑ Ð´Ð¾ вÑÑ–Ñ… проектів в групі Ñ– дозволÑÑŽÑ‚ÑŒ вам Ñтандартизувати Ñ—Ñ… Ð´Ð»Ñ Ð²Ñієї вашої групи." msgid "Weight" msgstr "Вага" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "Wiki" @@ -3898,7 +4731,7 @@ msgid "WikiEditPageTip|Tip: You can move this page by adding the path to the beg msgstr "Порада: Ви можете переміÑтити цю Ñторінку, додавши шлÑÑ… до початку заголовка." msgid "WikiEdit|There is already a page with the same title in that path." -msgstr "" +msgstr "Вже Ñ–Ñнує Ñторінка з таким шлÑхом Ñ– заголовком." msgid "WikiEmptyPageError|You are not allowed to create wiki pages" msgstr "Ви не можете Ñтворювати wiki-Ñторінки" @@ -3996,20 +4829,26 @@ msgstr "Ðапишіть коміт-повідомленнÑ..." msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "Ви хочете видалити %{group_name}. Видалені групи ÐЕ МОЖÐРбуду відновити! Ви ÐБСОЛЮТÐО впевнені?" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "Ви хочете видалити %{project_name_with_namespace}. Видалений проект ÐЕ МОЖЕ бути відновлений! Ви ÐБСОЛЮТÐО впевнені?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "Ви хочете видалити %{project_full_name}. Видалений проект ÐЕ МОЖЕ бути відновлений! Ви ÐБСОЛЮТÐО впевнені?" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "Ви збираєтеÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ зв'Ñзок з форка з вихідним проектом %{forked_from_project}. Ви ÐБСОЛЮТÐО впевнені?" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "Ви збираєтеÑÑ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‚Ð¸ проект %{project_name_with_namespace} іншому влаÑнику. Ви ÐБСОЛЮТÐО впевнені?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "Ви збираєтеÑÑ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‚Ð¸ проект %{project_full_name} іншому влаÑнику. Ви ÐБСОЛЮТÐО впевнені?" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." +msgstr "" msgid "You can also create a project from the command line." msgstr "Ви також можете Ñтворити проект із командного Ñ€Ñдка." msgid "You can also star a label to make it a priority label." -msgstr "" +msgstr "Ви можете додати мітку в обрані, щоб зробити Ñ—Ñ— пріоритетною." msgid "You can easily install a Runner on a Kubernetes cluster. %{link_to_help_page}" msgstr "Ви можете легко вÑтановити Runner на клаÑтері Kubernetes. %{link_to_help_page}" @@ -4077,12 +4916,30 @@ msgstr "Ви не зможете відправлÑти та отримуватРmsgid "You'll need to use different branch names to get a valid comparison." msgstr "Вам необхідно викориÑтовувати різні імена гілок Ð´Ð»Ñ ÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ порівнÑннÑ." +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ ваш Kubernetes-клаÑтер вÑе ще доÑтупна Ð´Ð»Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° цій Ñторінці, але ми радимо вимкнути Ñ– повторно налаштувати" -msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" msgstr "" +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "Ваші зміни можуть бути закомічені до %{branch_name}, оÑкільки запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸Ð¹." + +msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" +msgstr "Ваші зміни закомічено. Коміт %{commitId} %{commitStats}" + msgid "Your comment will not be visible to the public." msgstr "Ваш коментар не буде видимим Ð´Ð»Ñ Ð²ÑÑ–Ñ…." @@ -4095,6 +4952,16 @@ msgstr "Ваше ім'Ñ" msgid "Your projects" msgstr "Ваші проекти" +msgid "among other things" +msgstr "між іншим" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + msgid "assign yourself" msgstr "призначити Ñебе" @@ -4104,12 +4971,30 @@ msgstr "ім'Ñ Ð³Ñ–Ð»ÐºÐ¸" msgid "by" msgstr "від" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "ЯкіÑÑ‚ÑŒ коду" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "DAST не виÑвив попереджень при аналізі цього review app" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "Помилка при завантаженні звіту %{reportName}" @@ -4129,17 +5014,14 @@ msgid "ciReport|No changes to code quality" msgstr "Ðемає змін у ÑкоÑÑ‚Ñ– коду" msgid "ciReport|No changes to performance metrics" -msgstr "" +msgstr "Ðемає змін у показниках продуктивноÑÑ‚Ñ–" msgid "ciReport|Performance metrics" -msgstr "" +msgstr "Показники продуктивноÑÑ‚Ñ–" msgid "ciReport|SAST" msgstr "SAST" -msgid "ciReport|SAST degraded on" -msgstr "SAST погіршивÑÑ Ð½Ð°" - msgid "ciReport|SAST detected" msgstr "SAST виÑвив" @@ -4152,26 +5034,29 @@ msgstr "SAST не виÑвив жодних вразливоÑтей" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "Показати повний звіт про вразливоÑÑ‚Ñ– в коді" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "Ðезатверджені вразливоÑÑ‚Ñ– (червоні) можуть бути відмічені Ñк затверджені. %{helpLink}" -msgid "ciReport|no security vulnerabilities" -msgstr "вразливоÑтей немає" +msgid "ciReport|no vulnerabilities" +msgstr "" msgid "command line instructions" msgstr "інÑтрукції Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³Ð¾ Ñ€Ñдка" -msgid "commit" -msgstr "коміт" +msgid "connecting" +msgstr "з'єднаннÑ" -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." -msgstr "ви вимикаєте конфіденційніÑÑ‚ÑŒ. Це означає, що <strong>будь-хто</strong> зможе бачити Ñ– залишати коментарі Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— проблеми." - -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." -msgstr "Ви вмикаєте конфіденційніÑÑ‚ÑŒ. Це означає що лише члени команди <strong>Ñ€Ñ–Ð²Ð½Ñ Ñ€ÐµÐ¿Ð¾Ñ€Ñ‚ÐµÑ€ або вище</strong> матимуть змогу бачити та залишати коментарі Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— проблеми." +msgid "could not read private key, is the passphrase correct?" +msgstr "" msgid "day" msgid_plural "days" @@ -4180,7 +5065,33 @@ msgstr[1] "дні" msgstr[2] "днів" msgstr[3] "днів" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." +msgstr "%{slash_command} перезезапиÑує запланований Ñ‡Ð°Ñ Ð¾Ñтаннім значеннÑм." + +msgid "here" +msgstr "тут" + +msgid "importing" +msgstr "імпорт" + +msgid "in progress" msgstr "" msgid "is invalid because there is downstream lock" @@ -4189,6 +5100,9 @@ msgstr "неправильний через наÑвніÑÑ‚ÑŒ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ñ msgid "is invalid because there is upstream lock" msgstr "неправильний через наÑвніÑÑ‚ÑŒ блокувань на вищих рівнÑÑ…" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "заблоковано %{path_lock_user_name} %{created_at}" @@ -4202,21 +5116,36 @@ msgstr[3] "запитів на злиттÑ" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "Будь лаÑка відновіть Ñ—Ñ— або викориÑтовуйте іншу %{missingBranchName} гілку" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "Додати затвердженнÑ" +msgid "mrWidget|Allows edits from maintainers" +msgstr "Дозволити Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ проекту" + msgid "mrWidget|An error occured while removing your approval." msgstr "Під Ñ‡Ð°Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ Ð·Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°." msgid "mrWidget|An error occured while retrieving approval data for this merge request." -msgstr "" +msgstr "Помилка при отриманні даних про Ð·Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ запиту на злиттÑ." msgid "mrWidget|An error occured while submitting your approval." -msgstr "" +msgstr "Помилка при обробці вашого затвердженнÑ." msgid "mrWidget|Approve" msgstr "Затвердити" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4224,7 +5153,7 @@ msgid "mrWidget|Cancel automatic merge" msgstr "СкаÑувати автоматичне злиттÑ" msgid "mrWidget|Check out branch" -msgstr "" +msgstr "Перейти в гілку" msgid "mrWidget|Checking ability to merge automatically" msgstr "перевірка можливоÑÑ‚Ñ– автоматичного злиттÑ" @@ -4233,7 +5162,7 @@ msgid "mrWidget|Cherry-pick" msgstr "вибір (коміта)" msgid "mrWidget|Cherry-pick this merge request in a new merge request" -msgstr "" +msgstr "Вибрати (cherry-pick) цей запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð² новий запит на злиттÑ" msgid "mrWidget|Closed" msgstr "Закриті" @@ -4242,6 +5171,9 @@ msgid "mrWidget|Closed by" msgstr "Закритий" msgid "mrWidget|Closes" +msgstr "Закриває" + +msgid "mrWidget|Deployment statistics are not available currently" msgstr "" msgid "mrWidget|Did not close" @@ -4250,12 +5182,18 @@ msgstr "Ðе закрив" msgid "mrWidget|Email patches" msgstr "Email-патчі" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "Якщо гілка %{branch} Ñ–Ñнує у вашому локальному репозиторії, то ви можете заÑтоÑувати цей запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð²Ñ€ÑƒÑ‡Ð½Ñƒ за допомогою" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "Якщо гілка %{missingBranchName} Ñ–Ñнує у вашому локальному репозиторії, то ви можете заÑтоÑувати цей запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð²Ñ€ÑƒÑ‡Ð½Ñƒ за допомогою командного Ñ€Ñдка" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "Згадки" @@ -4340,6 +5278,9 @@ msgstr "Запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð² процеÑÑ– виконаннÑ" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "Цей проект заархівований, доÑтуп до запиÑу було відключено" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "Ви можете прийнÑти цей запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð²Ñ€ÑƒÑ‡Ð½Ñƒ за допомогою" @@ -4350,7 +5291,7 @@ msgid "mrWidget|branch does not exist." msgstr "гілка не Ñ–Ñнує." msgid "mrWidget|command line" -msgstr "командний Ñ€Ñдок" +msgstr "командного Ñ€Ñдка" msgid "mrWidget|into" msgstr "в" @@ -4380,6 +5321,9 @@ msgstr "пароль" msgid "personal access token" msgstr "оÑобиÑтий токен доÑтупу" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "видалити заплановану дату завершеннÑ" @@ -4387,7 +5331,10 @@ msgid "source" msgstr "джерело" msgid "spendCommand|%{slash_command} will update the sum of the time spent." -msgstr "" +msgstr "%{slash_command} оновлює Ñуму витраченого чаÑу." + +msgid "this document" +msgstr "цей документ" msgid "to help your contributors communicate effectively!" msgstr "щоб допомогти учаÑникам ефективно ÑпілкуватиÑÑ!" @@ -4399,5 +5346,5 @@ msgid "uses Kubernetes clusters to deploy your code!" msgstr "викориÑтовує клаÑтери Kubernetes Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ!" msgid "with %{additions} additions, %{deletions} deletions." -msgstr "" +msgstr "з %{additions} додаваннÑми Ñ– %{deletions} видаленнÑми." diff --git a/locale/zh_CN/gitlab.po b/locale/zh_CN/gitlab.po index 6a43a434cb8..c25e892e568 100644 --- a/locale/zh_CN/gitlab.po +++ b/locale/zh_CN/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:21-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:36-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /master/locale/gitlab.pot\n" msgid " and" -msgstr "" +msgstr " å’Œ" msgid "%d commit" msgid_plural "%d commits" @@ -25,11 +25,15 @@ msgstr[0] "%d 次æ交" msgid "%d commit behind" msgid_plural "%d commits behind" -msgstr[0] "" +msgstr[0] "è½åŽ %d 个æ交" + +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "%d 导出器" msgid "%d issue" msgid_plural "%d issues" -msgstr[0] "" +msgstr[0] "%d 个议题" msgid "%d layer" msgid_plural "%d layers" @@ -37,24 +41,31 @@ msgstr[0] "%d 层" msgid "%d merge request" msgid_plural "%d merge requests" -msgstr[0] "" +msgstr[0] "%d 个åˆå¹¶è¯·æ±‚" + +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "%d æŒ‡æ ‡" msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "为æ高页é¢åŠ 载速度åŠæ€§èƒ½ï¼Œå·²çœç•¥äº† %s 次æ交。" msgid "%{actionText} & %{openOrClose} %{noteable}" -msgstr "" +msgstr "%{actionText} & %{openOrClose} %{noteable}" msgid "%{commit_author_link} authored %{commit_timeago}" -msgstr "" +msgstr "ç”± %{commit_author_link} æ交于 %{commit_timeago}" msgid "%{count} participant" msgid_plural "%{count} participants" msgstr[0] "%{count} ä½å‚与者" +msgid "%{loadingIcon} Started" +msgstr "%{loadingIcon} 已开始" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" -msgstr "" +msgstr "%{lock_path} 被GitLab用户 %{lock_user_id} é”定" msgid "%{number_commits_behind} commits behind %{default_branch}, %{number_commits_ahead} commits ahead" msgstr "%{number_commits_behind} 个è½åŽ %{default_branch} 分支的æ交, %{number_commits_ahead} 早超å‰çš„æ交" @@ -66,7 +77,7 @@ msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will not re msgstr "已失败 %{number_of_failures} 次/最多å…许失败 %{maximum_failures} 次,GitLab ä¸ä¼šç»§ç»è‡ªåŠ¨é‡è¯•ã€‚请在问题解决åŽé‡ç½®å˜å‚¨å¥åº·ä¿¡æ¯ã€‚" msgid "%{openOrClose} %{noteable}" -msgstr "" +msgstr "%{openOrClose} %{noteable}" msgid "%{storage_name}: failed storage access attempt on host:" msgid_plural "%{storage_name}: %{failed_attempts} failed storage access attempts:" @@ -94,15 +105,30 @@ msgstr "最高贡献" msgid "2FA enabled" msgstr "å¯ç”¨ä¸¤æ¥éªŒè¯" +msgid "<strong>Removes</strong> source branch" +msgstr "<strong>åˆ é™¤</strong>æºåˆ†æ”¯" + msgid "A collection of graphs regarding Continuous Integration" msgstr "æŒç»é›†æˆæ•°æ®å›¾" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "将在派生(fork)项目ä¸ä¸åˆ›å»ºä¸€ä¸ªæ–°çš„分支, 并开å¯ä¸€ä¸ªæ–°çš„åˆå¹¶è¯·æ±‚。" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "项目å¯ä»¥ç”¨äºŽå˜æ”¾æ–‡ä»¶(仓库),安排计划(议题),并å‘布文档(wiki), %{among_other_things_link}。" + +msgid "A user with write access to the source branch selected this option" +msgstr "具有对æºåˆ†æ”¯çš„写入æƒé™çš„用户选择了æ¤é€‰é¡¹" + msgid "About auto deploy" msgstr "关于自动部署" msgid "Abuse Reports" msgstr "滥用报告" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "访问令牌" @@ -112,6 +138,9 @@ msgstr "为方便修å¤æŒ‚载问题,访问故障å˜å‚¨å·²è¢«æš‚æ—¶ç¦ç”¨ã€‚在 msgid "Account" msgstr "å¸å·" +msgid "Account and limit settings" +msgstr "å¸æˆ·å’Œé™åˆ¶è®¾ç½®" + msgid "Active" msgstr "å¯ç”¨" @@ -131,73 +160,73 @@ msgid "Add Group Webhooks and GitLab Enterprise Edition." msgstr "æ·»åŠ ç»„Webhookså’ŒGitLabä¼ä¸šç‰ˆã€‚" msgid "Add Kubernetes cluster" -msgstr "" +msgstr "æ·»åŠ Kubernetes 集群" msgid "Add License" msgstr "æ·»åŠ è®¸å¯è¯" msgid "Add Readme" -msgstr "" +msgstr "æ·»åŠ è‡ªè¿°æ–‡ä»¶" msgid "Add new directory" msgstr "æ·»åŠ ç›®å½•" msgid "Add todo" -msgstr "" +msgstr "æ·»åŠ å¾…åŠžäº‹é¡¹" msgid "AdminArea|Stop all jobs" -msgstr "" +msgstr "åœæ¢æ‰€æœ‰ä½œä¸š" msgid "AdminArea|Stop all jobs?" -msgstr "" +msgstr "åœæ¢æ‰€æœ‰ä½œä¸šå—?" msgid "AdminArea|Stop jobs" -msgstr "" +msgstr "åœæ¢ä½œä¸š" msgid "AdminArea|Stopping jobs failed" -msgstr "" +msgstr "åœæ¢ä½œä¸šå¤±è´¥" msgid "AdminArea|You’re about to stop all jobs.This will halt all current jobs that are running." -msgstr "" +msgstr "您å³å°†åœæ¢æ‰€æœ‰ä½œä¸šã€‚所有æ£åœ¨è¿è¡Œçš„都会被åœæ¢ã€‚" msgid "AdminHealthPageLink|health page" msgstr "å¥åº·é¡µé¢" msgid "AdminProjects|Delete" -msgstr "" +msgstr "åˆ é™¤" msgid "AdminProjects|Delete Project %{projectName}?" -msgstr "" +msgstr "åˆ é™¤é¡¹ç›® %{projectName}?" msgid "AdminProjects|Delete project" -msgstr "" +msgstr "åˆ é™¤é¡¹ç›®" msgid "AdminSettings|Specify a domain to use by default for every project's Auto Review Apps and Auto Deploy stages." -msgstr "" +msgstr "为æ¯ä¸ªé¡¹ç›®çš„自动审阅应用 (Auto Review Apps) 和自动部署 (Auto Deploy) 阶段指定一个默认使用的域。" msgid "AdminUsers|Block user" -msgstr "" +msgstr "ç¦ç”¨ç”¨æˆ·" msgid "AdminUsers|Delete User %{username} and contributions?" -msgstr "" +msgstr "åˆ é™¤ç”¨æˆ· %{username} 以åŠç›¸å…³è´¡çŒ®å—?" msgid "AdminUsers|Delete User %{username}?" -msgstr "" +msgstr "åˆ é™¤ç”¨æˆ· %{username}?" msgid "AdminUsers|Delete user" -msgstr "" +msgstr "åˆ é™¤ç”¨æˆ·" msgid "AdminUsers|Delete user and contributions" -msgstr "" +msgstr "åˆ é™¤ç”¨æˆ·åŠç›¸å…³è´¡çŒ®" msgid "AdminUsers|To confirm, type %{projectName}" -msgstr "" +msgstr "请输入 %{projectName} æ¥ç¡®è®¤" msgid "AdminUsers|To confirm, type %{username}" -msgstr "" +msgstr "请输入 %{username} æ¥ç¡®è®¤" msgid "Advanced" -msgstr "" +msgstr "高级" msgid "Advanced settings" msgstr "高级设置" @@ -206,14 +235,38 @@ msgid "All" msgstr "全部" msgid "All changes are committed" +msgstr "所有更改å‡å·²æ交" + +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "从模æ¿æˆ–导入时为空白项目将å¯ç”¨æ‰€æœ‰åŠŸèƒ½ï¼Œä½†å¯ä»¥åœ¨é¡¹ç›®è®¾ç½®ä¸å°†å…¶ç¦ç”¨ã€‚" + +msgid "Allow edits from maintainers." +msgstr "å…许上游项目维护人员进行编辑。" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." msgstr "" msgid "Allows you to add and manage Kubernetes clusters." +msgstr "这里å¯ä»¥æ·»åŠ å’Œç®¡ç† Kubernetes 集群。" + +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" msgstr "" -msgid "An error occurred previewing the blob" +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" msgstr "" +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "æ¤å¤–,也å¯ä»¥ä½¿ç”¨ %{personal_access_token_link}。创建Personal Access Token时,在范围ä¸éœ€é€‰æ‹© <code>repo</code> ,以便显示å¯ä¾›è¿žæŽ¥çš„公开和ç§æœ‰çš„仓库列表。" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "æ¤å¤–,也å¯ä»¥ä½¿ç”¨ %{personal_access_token_link}。创建Personal Access Token时,在范围ä¸éœ€é€‰æ‹© <code>repo</code> ,以便显示å¯ä¾›å¯¼å…¥å…¬å¼€å’Œç§æœ‰çš„仓库列表" + +msgid "An error occurred previewing the blob" +msgstr "预览 blob 时出错" + msgid "An error occurred when toggling the notification subscription" msgstr "切æ¢é€šçŸ¥è®¢é˜…æ—¶å‘生错误" @@ -221,74 +274,77 @@ msgid "An error occurred when updating the issue weight" msgstr "更新议题æƒé‡æ—¶å‘生错误" msgid "An error occurred while adding approver" -msgstr "" +msgstr "æ·»åŠ æ‰¹å‡†äººæ—¶å‘生错误" msgid "An error occurred while detecting host keys" -msgstr "" +msgstr "检测主机密钥时å‘生错误" msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again." -msgstr "" +msgstr "å…³é—功能çªå‡ºæ˜¾ç¤ºæ—¶å‘生错误。请刷新页é¢å¹¶å†æ¬¡å°è¯•ã€‚" msgid "An error occurred while fetching markdown preview" -msgstr "" +msgstr "èŽ·å– markdown 预览时出错" msgid "An error occurred while fetching sidebar data" msgstr "获å–侧边æ æ•°æ®æ—¶å‘生错误" msgid "An error occurred while fetching the pipeline." -msgstr "" +msgstr "获å–æµæ°´çº¿æ—¶å‡ºé”™" msgid "An error occurred while getting projects" -msgstr "" +msgstr "获å–项目时å‘生错误" msgid "An error occurred while importing project" -msgstr "" +msgstr "在导入项目时å‘生错误。" msgid "An error occurred while initializing path locks" -msgstr "" +msgstr "åˆå§‹åŒ–路径é”æ—¶å‘生错误" msgid "An error occurred while loading commits" -msgstr "" +msgstr "åŠ è½½æ交时å‘生错误" msgid "An error occurred while loading diff" -msgstr "" +msgstr "åŠ è½½å·®å¼‚æ—¶å‘生错误" msgid "An error occurred while loading filenames" -msgstr "" +msgstr "åŠ è½½æ–‡ä»¶åæ—¶å‘生错误" msgid "An error occurred while loading the file" -msgstr "" +msgstr "åŠ è½½æ–‡ä»¶æ—¶å‘生错误" msgid "An error occurred while making the request." -msgstr "" +msgstr "å‘é€è¯·æ±‚æ—¶å‘生错误。" msgid "An error occurred while removing approver" -msgstr "" +msgstr "åˆ é™¤æ‰¹å‡†è€…æ—¶å‘生错误" msgid "An error occurred while rendering KaTeX" -msgstr "" +msgstr "渲染KaTeXæ—¶å‘生错误" msgid "An error occurred while rendering preview broadcast message" -msgstr "" +msgstr "渲染广æ’消æ¯æ—¶å‘生错误" msgid "An error occurred while retrieving calendar activity" -msgstr "" +msgstr "获å–日历活动时å‘生错误" msgid "An error occurred while retrieving diff" -msgstr "" +msgstr "获å–差异时å‘生错误" msgid "An error occurred while saving LDAP override status. Please try again." -msgstr "" +msgstr "ä¿å˜LDAP覆盖状æ€æ—¶å‘生错误。请å†è¯•ä¸€æ¬¡ã€‚" msgid "An error occurred while saving assignees" -msgstr "" +msgstr "ä¿å˜è¢«æŒ‡æ´¾äººæ—¶å‡ºçŽ°é”™è¯¯ã€‚" msgid "An error occurred while validating username" -msgstr "" +msgstr "验è¯ç”¨æˆ·åæ—¶å‘生错误" msgid "An error occurred. Please try again." msgstr "å‘生了错误,请å†è¯•ä¸€æ¬¡ã€‚" +msgid "Any Label" +msgstr "ä»»ä½•æ ‡è®°" + msgid "Appearance" msgstr "外观" @@ -302,7 +358,7 @@ msgid "April" msgstr "四月" msgid "Archived project! Repository is read-only" -msgstr "项目已归档ï¼å˜å‚¨åº“为åªè¯»çŠ¶æ€" +msgstr "项目已归档ï¼ä»“库为åªè¯»çŠ¶æ€" msgid "Are you sure you want to delete this pipeline schedule?" msgstr "确定è¦åˆ 除æ¤æµæ°´çº¿è®¡åˆ’å—?" @@ -314,7 +370,7 @@ msgid "Are you sure you want to reset the health check token?" msgstr "确定è¦é‡ç½®å¥åº·æ£€æŸ¥ä»¤ç‰Œå—?" msgid "Are you sure you want to unlock %{path_lock_path}?" -msgstr "" +msgstr "确定è¦è§£é” %{path_lock_path} å—?" msgid "Are you sure?" msgstr "确定å—?" @@ -322,20 +378,32 @@ msgstr "确定å—?" msgid "Artifacts" msgstr "产物" -msgid "Assign custom color like #FF0000" +msgid "Assertion consumer service URL" msgstr "" +msgid "Assign custom color like #FF0000" +msgstr "分é…自定义颜色,如FF0000" + msgid "Assign labels" -msgstr "" +msgstr "æŒ‡æ´¾æ ‡è®°" msgid "Assign milestone" -msgstr "" +msgstr "分é…里程碑" msgid "Assign to" -msgstr "" +msgstr "分é…到" + +msgid "Assigned Issues" +msgstr "已分é…议题" + +msgid "Assigned Merge Requests" +msgstr "已分é…åˆå¹¶è¯·æ±‚" + +msgid "Assigned to :name" +msgstr "已分é…至 :name" msgid "Assignee" -msgstr "" +msgstr "指派人" msgid "Attach a file by drag & drop or %{upload_link}" msgstr "拖放文件到æ¤å¤„或者 %{upload_link}" @@ -353,19 +421,22 @@ msgid "Author" msgstr "作者" msgid "Authors: %{authors}" -msgstr "" +msgstr "作者:%{authors}" msgid "Auto DevOps enabled" +msgstr "å¯ç”¨Auto DevOps" + +msgid "Auto DevOps, runners and job artifacts" msgstr "" msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." -msgstr "" +msgstr "自动审阅程åºå’Œè‡ªåŠ¨éƒ¨ç½²ç¨‹åºéœ€è¦ %{kubernetes} æ‰èƒ½æ£å¸¸å·¥ä½œã€‚" msgid "Auto Review Apps and Auto Deploy need a domain name and a %{kubernetes} to work correctly." -msgstr "" +msgstr "自动审阅程åºå’Œè‡ªåŠ¨éƒ¨ç½²ç¨‹åºéœ€è¦ä¸€ä¸ªåŸŸåå’Œ %{kubernetes} æ‰èƒ½æ£å¸¸å·¥ä½œã€‚" msgid "Auto Review Apps and Auto Deploy need a domain name to work correctly." -msgstr "自动审查程åºå’Œè‡ªåŠ¨éƒ¨ç½²ç¨‹åºéœ€è¦ä¸€ä¸ªåŸŸåæ‰èƒ½æ£å¸¸å·¥ä½œã€‚" +msgstr "自动审阅程åºå’Œè‡ªåŠ¨éƒ¨ç½²ç¨‹åºéœ€è¦ä¸€ä¸ªåŸŸåæ‰èƒ½æ£å¸¸å·¥ä½œã€‚" msgid "AutoDevOps|Auto DevOps (Beta)" msgstr "DevOps 自动化(测试版)" @@ -383,26 +454,32 @@ msgid "AutoDevOps|Learn more in the %{link_to_documentation}" msgstr "想了解更多请访问 %{link_to_documentation}" msgid "AutoDevOps|You can automatically build and test your application if you %{link_to_auto_devops_settings} for this project. You can automatically deploy it as well, if you %{link_to_add_kubernetes_cluster}." -msgstr "" +msgstr "如果当å‰é¡¹ç›®%{link_to_auto_devops_settings}, å¯ä»¥è‡ªåŠ¨çš„构建和测试应用。如果已%{link_to_add_kubernetes_cluster},则也å¯ä»¥å®žçŽ°è‡ªåŠ¨éƒ¨ç½²ã€‚" msgid "AutoDevOps|add a Kubernetes cluster" -msgstr "" +msgstr "æ·»åŠ Kubernetes群集" msgid "AutoDevOps|enable Auto DevOps (Beta)" -msgstr "" +msgstr "å¯ç”¨Auto DevOps (Beta)" msgid "Available" msgstr "å¯ç”¨çš„" msgid "Avatar will be removed. Are you sure?" -msgstr "" +msgstr "å³å°†åˆ 除头åƒã€‚确定继ç»å—?" msgid "Average per day: %{average}" +msgstr "å¹³å‡æ¯å¤©: %{average}" + +msgid "Background Color" msgstr "" -msgid "Begin with the selected commit" +msgid "Background jobs" msgstr "" +msgid "Begin with the selected commit" +msgstr "从选定的æ交开始" + msgid "Billing" msgstr "è´¦å•" @@ -422,7 +499,7 @@ msgid "BillingPlans|Downgrade" msgstr "é™çº§" msgid "BillingPlans|Learn more about each plan by reading our %{faq_link}." -msgstr "通过阅读我们的%{faq_link}了解有关æ¯ä¸ªè®¡åˆ’的更多信æ¯ã€‚" +msgstr "请查阅%{faq_link} 进一æ¥äº†è§£æ¯ä¸ªè®¡åˆ’的相关信æ¯ã€‚" msgid "BillingPlans|Manage plan" msgstr "管ç†è®¡åˆ’" @@ -459,7 +536,7 @@ msgstr "æ¯ç”¨æˆ·" msgid "Branch (%{branch_count})" msgid_plural "Branches (%{branch_count})" -msgstr[0] "" +msgstr[0] "分支(%{branch_count})" msgid "Branch <strong>%{branch_name}</strong> was created. To set up auto deploy, choose a GitLab CI Yaml template and commit your changes. %{link_to_autodeploy_doc}" msgstr "已创建分支 <strong>%{branch_name}</strong> 。如需设置自动部署, 请选择åˆé€‚çš„ GitLab CI Yaml 模æ¿å¹¶æ交更改。%{link_to_autodeploy_doc}" @@ -482,6 +559,15 @@ msgstr "切æ¢åˆ†æ”¯" msgid "Branches" msgstr "分支" +msgid "Branches|Active" +msgstr "活跃" + +msgid "Branches|Active branches" +msgstr "活跃分支" + +msgid "Branches|All" +msgstr "全部" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "ä¸èƒ½æ‰¾åˆ°è¿™ä¸ªåˆ†æ”¯çš„ HEAD æ交" @@ -507,7 +593,7 @@ msgid "Branches|Deleting the '%{branch_name}' branch cannot be undone. Are you s msgstr "åˆ é™¤ â€%{branch_name}†åŽå°†æ— 法æ¢å¤ï¼Œæ‚¨ç¡®å®šï¼Ÿ" msgid "Branches|Deleting the merged branches cannot be undone. Are you sure?" -msgstr "åˆ é™¤å·²åˆå¹¶çš„分支åŽå°†æ— 法æ¢å¤ï¼Œæ‚¨ç¡®å®šï¼Ÿ" +msgstr "åˆ é™¤å·²åˆå¹¶çš„分支åŽå°†æ— 法æ¢å¤ï¼Œç¡®å®šç»§ç»å—?" msgid "Branches|Filter by branch name" msgstr "按分支å称ç›é€‰" @@ -527,12 +613,39 @@ msgstr "确认执行 %{delete_protected_branch} åŽå°†æ— 法撤销或æ¢å¤ã€‚" msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "åªæœ‰é¡¹ç›®ç®¡ç†è€…或所有者æ‰èƒ½åˆ 除å—ä¿æŠ¤çš„分支ï¼" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" -msgstr "在 %{project_settings_link} 管ç†å—ä¿æŠ¤çš„分支" +msgid "Branches|Overview" +msgstr "概览" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "在 %{project_settings_link} ä¸ç®¡ç†å—ä¿æŠ¤çš„分支。" + +msgid "Branches|Show active branches" +msgstr "查看活跃分支" + +msgid "Branches|Show all branches" +msgstr "查看所有分支" + +msgid "Branches|Show more active branches" +msgstr "查看更多活跃分支" + +msgid "Branches|Show more stale branches" +msgstr "查看更多éžæ´»è·ƒåˆ†æ”¯" + +msgid "Branches|Show overview of the branches" +msgstr "查看分支概览" + +msgid "Branches|Show stale branches" +msgstr "查看éžæ´»è·ƒåˆ†æ”¯" msgid "Branches|Sort by" msgstr "排åº" +msgid "Branches|Stale" +msgstr "éžæ´»è·ƒ" + +msgid "Branches|Stale branches" +msgstr "éžæ´»è·ƒåˆ†æ”¯" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "分支ä¸èƒ½è‡ªåŠ¨æ›´æ–°ï¼Œå› 为它与上游分支ä¸ä¸€è‡´ã€‚" @@ -546,25 +659,25 @@ msgid "Branches|To avoid data loss, consider merging this branch before deleting msgstr "为é¿å…æ•°æ®ä¸¢å¤±ï¼Œè¯·åœ¨åˆ 除之å‰åˆå¹¶æ¤åˆ†æ”¯ã€‚" msgid "Branches|To confirm, type %{branch_name_confirmation}:" -msgstr "è¦ç¡®è®¤ï¼Ÿè¯·è¾“å…¥ %{branch_name_confirmation} :" +msgstr "请输入 %{branch_name_confirmation} æ¥ç¡®è®¤ï¼š" msgid "Branches|To discard the local changes and overwrite the branch with the upstream version, delete it here and choose 'Update Now' above." msgstr "è¦æ”¾å¼ƒæœ¬åœ°æ›´æ”¹å¹¶è¦†ç›–上游版本的分支,请在æ¤å¤„å°†å…¶åˆ é™¤ï¼Œç„¶åŽé€‰æ‹©ä¸Šé¢çš„“立å³æ›´æ–°â€ã€‚" msgid "Branches|You’re about to permanently delete the protected branch %{branch_name}." -msgstr "å°†è¦æ°¸ä¹…åˆ é™¤å—ä¿æŠ¤ %{branch_name} 分支。" +msgstr "å°†è¦æ°¸ä¹…åˆ é™¤å—ä¿æŠ¤çš„ %{branch_name} 分支。" msgid "Branches|diverged from upstream" msgstr "上游分支" msgid "Branches|merged" -msgstr "å·²åˆå¹¶çš„" +msgstr "å·²åˆå¹¶" msgid "Branches|project settings" msgstr "项目设置" msgid "Branches|protected" -msgstr "å—ä¿æŠ¤çš„" +msgstr "å—ä¿æŠ¤" msgid "Browse Directory" msgstr "æµè§ˆç›®å½•" @@ -578,14 +691,23 @@ msgstr "æµè§ˆæ–‡ä»¶" msgid "Browse files" msgstr "æµè§ˆæ–‡ä»¶" +msgid "Business" +msgstr "业务" + msgid "ByAuthor|by" msgstr "作者:" msgid "CI / CD" msgstr "CI / CD" +msgid "CI/CD" +msgstr "CI/CD" + msgid "CI/CD configuration" -msgstr "" +msgstr "CI/CD é…ç½®" + +msgid "CI/CD for external repo" +msgstr "外部仓库的 CI/CD" msgid "CICD|Jobs" msgstr "作业" @@ -593,15 +715,21 @@ msgstr "作业" msgid "Cancel" msgstr "å–消" -msgid "Cancel edit" -msgstr "å–消编辑" +msgid "Cannot be merged automatically" +msgstr "æ— æ³•è‡ªåŠ¨åˆå¹¶" msgid "Cannot modify managed Kubernetes cluster" +msgstr "æ— æ³•ä¿®æ”¹æ‰˜ç®¡çš„ Kubernetes 群集" + +msgid "Certificate fingerprint" msgstr "" msgid "Change Weight" msgstr "改å˜æƒé‡" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "选择分支" @@ -615,13 +743,13 @@ msgid "ChangeTypeAction|Revert" msgstr "还原" msgid "ChangeTypeAction|This will create a new commit in order to revert the existing changes." -msgstr "" +msgstr "这将创建一个新的æ交, æ¥è¿˜åŽŸçŽ°æœ‰çš„更改。" msgid "Changelog" msgstr "更新日志" msgid "Changes are shown as if the <b>source</b> revision was being merged into the <b>target</b> revision." -msgstr "" +msgstr "差异显示方å¼ä¾<b>æº</b>版本åˆå¹¶åˆ°<b>ç›®æ ‡</b>版本的形å¼ã€‚" msgid "Charts" msgstr "统计图" @@ -630,7 +758,7 @@ msgid "Chat" msgstr "å³æ—¶é€šè®¯" msgid "Check interval" -msgstr "" +msgstr "检查间隔" msgid "Checking %{text} availability…" msgstr "æ£åœ¨æ£€æŸ¥%{text}çš„å¯ç”¨æ€§..." @@ -645,19 +773,25 @@ msgid "Cherry-pick this merge request" msgstr "优选æ¤åˆå¹¶è¯·æ±‚" msgid "Choose File ..." -msgstr "" +msgstr "选择文件 ……" msgid "Choose a branch/tag (e.g. %{master}) or enter a commit (e.g. %{sha}) to see what's changed or to create a merge request." -msgstr "" +msgstr "选择分支/æ ‡ç¾(例如%{master})或输入æ交(例如%{sha})以查看更改内容或创建åˆå¹¶è¯·æ±‚。" msgid "Choose file..." -msgstr "" +msgstr "选择文件..." msgid "Choose which groups you wish to synchronize to this secondary node." -msgstr "" +msgstr "选择è¦åŒæ¥åˆ°æ¤æ¬¡èŠ‚点的群组。" + +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "清选择è¦è¿žæŽ¥å¹¶è¿è¡Œ CI/CD æµæ°´çº¿çš„代ç 仓库。" + +msgid "Choose which repositories you want to import." +msgstr "选择è¦å¯¼å…¥çš„仓库" msgid "Choose which shards you wish to synchronize to this secondary node." -msgstr "" +msgstr "选择è¦åŒæ¥åˆ°æ¤æ¬¡èŠ‚点的切片。" msgid "CiStatusLabel|canceled" msgstr "å·²å–消" @@ -714,79 +848,88 @@ msgid "CiStatus|running" msgstr "è¿è¡Œä¸" msgid "CiVariables|Input variable key" -msgstr "" +msgstr "输入å˜é‡çš„å称" msgid "CiVariables|Input variable value" -msgstr "" +msgstr "输入å˜é‡çš„值" msgid "CiVariables|Remove variable row" -msgstr "" +msgstr "åˆ é™¤å˜é‡è¡Œ" msgid "CiVariable|* (All environments)" -msgstr "" +msgstr "* (所有环境)" msgid "CiVariable|All environments" -msgstr "" +msgstr "所有环境" msgid "CiVariable|Create wildcard" -msgstr "" +msgstr "创建通é…符" msgid "CiVariable|Error occured while saving variables" -msgstr "" +msgstr "ä¿å˜å˜é‡æ—¶å‘生错误" msgid "CiVariable|New environment" -msgstr "" +msgstr "新建环境" msgid "CiVariable|Protected" -msgstr "" +msgstr "å—ä¿æŠ¤" msgid "CiVariable|Search environments" -msgstr "" +msgstr "æœç´¢çŽ¯å¢ƒ" msgid "CiVariable|Toggle protected" -msgstr "" +msgstr "开关ä¿æŠ¤çŠ¶æ€" msgid "CiVariable|Validation failed" -msgstr "" +msgstr "验è¯å¤±è´¥" msgid "CircuitBreakerApiLink|circuitbreaker api" msgstr "æ–路器 API" msgid "Click the button below to begin the install process by navigating to the Kubernetes page" -msgstr "" +msgstr "点击下é¢çš„按钮转到Kubernetes页é¢å¼€å§‹å®‰è£…过程" msgid "Click to expand text" -msgstr "" +msgstr "点击展开文本" + +msgid "Client authentication certificate" +msgstr "客户端认è¯è¯ä¹¦" + +msgid "Client authentication key" +msgstr "客户端认è¯å¯†é’¥" + +msgid "Client authentication key password" +msgstr "客户端认è¯å¯†é’¥å¯†ç " msgid "Clone repository" -msgstr "克隆å˜å‚¨åº“" +msgstr "克隆仓库" msgid "Close" msgstr "å…³é—" msgid "Closed" -msgstr "" +msgstr "已关é—" msgid "ClusterIntegration|%{appList} was successfully installed on your Kubernetes cluster" -msgstr "" +msgstr "%{appList} å·²æˆåŠŸå®‰è£…到Kubernetes群集上" msgid "ClusterIntegration|API URL" msgstr "API地å€" msgid "ClusterIntegration|Add Kubernetes cluster" -msgstr "" +msgstr "æ·»åŠ Kubernetes 群集" msgid "ClusterIntegration|Add an existing Kubernetes cluster" -msgstr "" +msgstr "æ·»åŠ çŽ°æœ‰çš„Kubernetes群集" msgid "ClusterIntegration|Advanced options on this Kubernetes cluster's integration" -msgstr "" +msgstr "Kubernetes集群集æˆçš„高级选项" msgid "ClusterIntegration|Applications" msgstr "应用程åº" msgid "ClusterIntegration|Are you sure you want to remove this Kubernetes cluster's integration? This will not delete your actual Kubernetes cluster." -msgstr "" +msgstr "确定è¦åˆ 除æ¤Kubernetes集群的集æˆå—?注æ„这并ä¸ä¼šåˆ 除实际的Kubernetes群集本身。" msgid "ClusterIntegration|CA Certificate" msgstr "CAè¯ä¹¦" @@ -795,13 +938,13 @@ msgid "ClusterIntegration|Certificate Authority bundle (PEM format)" msgstr "è¯ä¹¦æŽˆæƒåŒ…(PEMæ ¼å¼)" msgid "ClusterIntegration|Choose how to set up Kubernetes cluster integration" -msgstr "" +msgstr "选择如何设置Kubernetes集群集æˆ" msgid "ClusterIntegration|Choose which of your project's environments will use this Kubernetes cluster." -msgstr "" +msgstr "请选择使用æ¤Kubernetes群集的环境。" msgid "ClusterIntegration|Control how your Kubernetes cluster integrates with GitLab" -msgstr "" +msgstr "控制Kubernetes集群与GitLab集æˆæ–¹å¼" msgid "ClusterIntegration|Copy API URL" msgstr "å¤åˆ¶API地å€" @@ -810,22 +953,22 @@ msgid "ClusterIntegration|Copy CA Certificate" msgstr "å¤åˆ¶CAè¯ä¹¦" msgid "ClusterIntegration|Copy Ingress IP Address to clipboard" -msgstr "" +msgstr "å¤åˆ¶Ingress IP地å€åˆ°å‰ªè´´æ¿" msgid "ClusterIntegration|Copy Kubernetes cluster name" -msgstr "" +msgstr "å¤åˆ¶Kubernetes集群å称" msgid "ClusterIntegration|Copy Token" msgstr "å¤åˆ¶ä»¤ç‰Œ" msgid "ClusterIntegration|Create Kubernetes cluster" -msgstr "" +msgstr "创建Kubernetes群集" msgid "ClusterIntegration|Create Kubernetes cluster on Google Kubernetes Engine" -msgstr "" +msgstr "在Google Kubernetes引擎上创建Kubernetes集群" msgid "ClusterIntegration|Create a new Kubernetes cluster on Google Kubernetes Engine right from GitLab" -msgstr "" +msgstr "通过GitLab在Google Kubernetes引擎上创建Kubernetes集群" msgid "ClusterIntegration|Create on GKE" msgstr "在GKEä¸åˆ›å»º" @@ -834,13 +977,13 @@ msgid "ClusterIntegration|Enter the details for an existing Kubernetes cluster" msgstr "输入现有的 Kubernetes 集群详细信æ¯" msgid "ClusterIntegration|Enter the details for your Kubernetes cluster" -msgstr "" +msgstr "输入Kubernetes群集的详细信æ¯" msgid "ClusterIntegration|Environment scope" -msgstr "" +msgstr "环境范围" msgid "ClusterIntegration|GitLab Integration" -msgstr "" +msgstr "GitLab集æˆ" msgid "ClusterIntegration|GitLab Runner" msgstr "GitLab Runner" @@ -857,15 +1000,21 @@ msgstr "Google Kubernetes Engine 项目" msgid "ClusterIntegration|Helm Tiller" msgstr "Helm Tiller" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "为了显示集群的å¥åº·çŠ¶å†µï¼Œæ‚¨çš„集群需è¦é…ç½®Prometheus以收集所需的数æ®ã€‚" + msgid "ClusterIntegration|Ingress" msgstr "å…¥å£" msgid "ClusterIntegration|Ingress IP Address" -msgstr "" +msgstr "Ingress IP地å€" msgid "ClusterIntegration|Install" msgstr "安装" +msgid "ClusterIntegration|Install Prometheus" +msgstr "安装Prometheus" + msgid "ClusterIntegration|Installed" msgstr "已安装" @@ -873,67 +1022,73 @@ msgid "ClusterIntegration|Installing" msgstr "安装ä¸" msgid "ClusterIntegration|Integrate Kubernetes cluster automation" -msgstr "" +msgstr "集æˆKubernetes集群自动化" msgid "ClusterIntegration|Integration status" -msgstr "" +msgstr "集æˆçŠ¶æ€" msgid "ClusterIntegration|Kubernetes cluster" -msgstr "" +msgstr "Kubernetes 群集" msgid "ClusterIntegration|Kubernetes cluster details" -msgstr "" +msgstr "Kubernetes群集详细信æ¯" + +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "Kubernetes集群å¥åº·åº¦" msgid "ClusterIntegration|Kubernetes cluster integration" -msgstr "" +msgstr "Kubernetes集群集æˆ" msgid "ClusterIntegration|Kubernetes cluster integration is disabled for this project." -msgstr "" +msgstr "æ¤é¡¹ç›®å·²ç¦ç”¨ Kubernetes 群集集æˆã€‚" msgid "ClusterIntegration|Kubernetes cluster integration is enabled for this project." -msgstr "" +msgstr "æ¤é¡¹ç›®å·²å¯ç”¨ Kubernetes 群集集æˆã€‚" msgid "ClusterIntegration|Kubernetes cluster integration is enabled for this project. Disabling this integration will not affect your Kubernetes cluster, it will only temporarily turn off GitLab's connection to it." -msgstr "" +msgstr "æ¤é¡¹ç›®å·²å¯ç”¨ Kubernetes 群集集æˆã€‚ç¦ç”¨æ¤é›†æˆä¸ä¼šå½±å“ Kubernetes 群集本身, åªä¼šæš‚æ—¶å…³é— GitLab 与其连接。" msgid "ClusterIntegration|Kubernetes cluster is being created on Google Kubernetes Engine..." -msgstr "" +msgstr "æ£åœ¨Google Kubernetes Engine上创建Kubernetes群集..." msgid "ClusterIntegration|Kubernetes cluster name" -msgstr "" +msgstr "Kubernetes 群集å称" msgid "ClusterIntegration|Kubernetes cluster was successfully created on Google Kubernetes Engine. Refresh the page to see Kubernetes cluster's details" -msgstr "" +msgstr "Kubernetes集群已在Google Kubernetes Engine上æˆåŠŸåˆ›å»ºã€‚刷新页é¢ä»¥æŸ¥çœ‹Kubernetes群集的详细信æ¯" msgid "ClusterIntegration|Kubernetes clusters allow you to use review apps, deploy your applications, run your pipelines, and much more in an easy way. %{link_to_help_page}" -msgstr "" +msgstr "通过Kubernetes 群集集æˆï¼Œå¯ä»¥æ–¹ä¾¿åœ°ä½¿ç”¨å®¡é˜…应用ã€éƒ¨ç½²åº”用程åºã€è¿è¡Œæµæ°´çº¿ç‰ç‰ã€‚%{link_to_help_page}" msgid "ClusterIntegration|Kubernetes clusters can be used to deploy applications and to provide Review Apps for this project" -msgstr "" +msgstr "Kubernetes 群集å¯ç”¨äºŽéƒ¨ç½²åº”用程åºå’Œæä¾›æ¤é¡¹ç›®çš„审阅应用" msgid "ClusterIntegration|Learn more about %{link_to_documentation}" -msgstr "了解详细%{link_to_documentation}" +msgstr "进一æ¥äº†è§£%{link_to_documentation}" msgid "ClusterIntegration|Learn more about environments" -msgstr "" +msgstr "进一æ¥äº†è§£æœ‰å…³çŽ¯å¢ƒçš„ä¿¡æ¯" + +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "进一æ¥äº†è§£å®‰å…¨ç›¸å…³é…ç½®" msgid "ClusterIntegration|Machine type" msgstr "机器类型" msgid "ClusterIntegration|Make sure your account %{link_to_requirements} to create Kubernetes clusters" -msgstr "" +msgstr "请确ä¿æ‚¨çš„å¸æˆ· %{link_to_requirements} å¯ä»¥åˆ›å»º Kubernetes 群集" msgid "ClusterIntegration|Manage" -msgstr "" +msgstr "管ç†" msgid "ClusterIntegration|Manage your Kubernetes cluster by visiting %{link_gke}" -msgstr "" +msgstr "通过访问 %{link_gke} ç®¡ç† Kubernetes 群集" msgid "ClusterIntegration|More information" -msgstr "" +msgstr "更多信æ¯" msgid "ClusterIntegration|Multiple Kubernetes clusters are available in GitLab Enterprise Edition Premium and Ultimate" -msgstr "" +msgstr "在GitLabä¼ä¸šé«˜çº§å’Œæ——舰版ä¸å¯ä»¥ä½¿ç”¨å¤šä¸ªKubernetes集群" msgid "ClusterIntegration|Note:" msgstr "注æ„:" @@ -942,7 +1097,7 @@ msgid "ClusterIntegration|Number of nodes" msgstr "节点数é‡" msgid "ClusterIntegration|Please enter access information for your Kubernetes cluster. If you need help, you can read our %{link_to_help_page} on Kubernetes" -msgstr "" +msgstr "请输入Kubernetes集群的访问信æ¯ã€‚如需帮助,å¯ä»¥é˜…读Kubernetes集群的 %{link_to_help_page}" msgid "ClusterIntegration|Please make sure that your Google account meets the following requirements:" msgstr "请确ä¿æ‚¨çš„ Google å¸æˆ·ç¬¦åˆä»¥ä¸‹è¦æ±‚:" @@ -957,19 +1112,19 @@ msgid "ClusterIntegration|Project namespace (optional, unique)" msgstr "项目命å空间(å¯é€‰ï¼Œå”¯ä¸€)" msgid "ClusterIntegration|Prometheus" -msgstr "" +msgstr "Prometheus" msgid "ClusterIntegration|Read our %{link_to_help_page} on Kubernetes cluster integration." -msgstr "" +msgstr "请阅读关于Kubernetes集群集æˆçš„%{link_to_help_page}。" msgid "ClusterIntegration|Remove Kubernetes cluster integration" -msgstr "" +msgstr "åˆ é™¤Kubernetes集群集æˆ" msgid "ClusterIntegration|Remove integration" msgstr "åˆ é™¤é›†æˆ" msgid "ClusterIntegration|Remove this Kubernetes cluster's configuration from this project. This will not delete your actual Kubernetes cluster." -msgstr "" +msgstr "从当å‰é¡¹ç›®ä¸åˆ 除æ¤Kubernetes集群的é…置。该æ“作并ä¸ä¼šåˆ 除实际Kubernetes群集。" msgid "ClusterIntegration|Request to begin installing failed" msgstr "请求安装失败" @@ -977,8 +1132,11 @@ msgstr "请求安装失败" msgid "ClusterIntegration|Save changes" msgstr "ä¿å˜æ›´æ”¹" +msgid "ClusterIntegration|Security" +msgstr "安全" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" -msgstr "" +msgstr "查看并编辑Kubernetes集群的详细信æ¯" msgid "ClusterIntegration|See machine types" msgstr "å‚è§æœºå™¨ç±»åž‹" @@ -999,25 +1157,28 @@ msgid "ClusterIntegration|Something went wrong on our end." msgstr "å‘生了内部错误" msgid "ClusterIntegration|Something went wrong while creating your Kubernetes cluster on Google Kubernetes Engine" -msgstr "" +msgstr "在 Google Kubernetes Engine 上创建Kubernetes集群时å‘生错误" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "安装 %{title} æ—¶å‘生故障" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "默认集群é…ç½®æ供了æˆåŠŸæž„建和部署容器化应用所需的大é‡ç›¸å…³åŠŸèƒ½ã€‚" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" -msgstr "" +msgstr "该å¸æˆ·éœ€å…·å¤‡åœ¨ä¸‹é¢æŒ‡å®šçš„%{link_to_container_project}ä¸åˆ›å»º Kubernetes集群的æƒé™" msgid "ClusterIntegration|Toggle Kubernetes Cluster" -msgstr "" +msgstr "开关Kubernetes 群集" msgid "ClusterIntegration|Toggle Kubernetes cluster" -msgstr "" +msgstr "开关Kubernetes 群集" msgid "ClusterIntegration|Token" msgstr "令牌" msgid "ClusterIntegration|With a Kubernetes cluster associated to this project, you can use review apps, deploy your applications, run your pipelines, and much more in an easy way." -msgstr "" +msgstr "使用与æ¤é¡¹ç›®å…³è”çš„Kubernetes集群,å¯ä»¥æ–¹ä¾¿åœ°ä½¿ç”¨å®¡é˜…应用,部署应用程åºï¼Œè¿è¡Œæµæ°´çº¿ç‰ç‰ã€‚" msgid "ClusterIntegration|Your account must have %{link_to_kubernetes_engine}" msgstr "您的å¸æˆ·å¿…须拥有%{link_to_kubernetes_engine}" @@ -1029,7 +1190,7 @@ msgid "ClusterIntegration|access to Google Kubernetes Engine" msgstr "访问 Google Kubernetes Engine" msgid "ClusterIntegration|check the pricing here" -msgstr "" +msgstr "查看定价" msgid "ClusterIntegration|documentation" msgstr "文档" @@ -1047,13 +1208,13 @@ msgid "ClusterIntegration|properly configured" msgstr "æ£ç¡®é…ç½®" msgid "Collapse" -msgstr "" +msgstr "收起" msgid "Comment and resolve discussion" -msgstr "" +msgstr "评论并解决讨论" msgid "Comment and unresolve discussion" -msgstr "" +msgstr "评论并将讨论å˜ä¸ºæœªå†³" msgid "Comments" msgstr "评论" @@ -1064,7 +1225,7 @@ msgstr[0] "æ交" msgid "Commit (%{commit_count})" msgid_plural "Commits (%{commit_count})" -msgstr[0] "" +msgstr[0] "æ交(%{commit_count})" msgid "Commit Message" msgstr "æ交消æ¯" @@ -1076,10 +1237,10 @@ msgid "Commit message" msgstr "æ交信æ¯" msgid "Commit statistics for %{ref} %{start_time} - %{end_time}" -msgstr "" +msgstr "æ交统计 %{ref} %{start_time} - %{end_time}" msgid "Commit to %{branchName} branch" -msgstr "" +msgstr "æ交到 %{branchName} 分支" msgid "CommitBoxTitle|Commit" msgstr "æ交" @@ -1094,25 +1255,25 @@ msgid "Commits feed" msgstr "æ交动æ€" msgid "Commits per day hour (UTC)" -msgstr "" +msgstr "一天ä¸æ¯å°æ—¶(UTC)æ交数" msgid "Commits per day of month" -msgstr "" +msgstr "一个月ä¸æ¯å¤©çš„æ交数" msgid "Commits per weekday" -msgstr "" +msgstr "一周ä¸æ¯æ—¥æ交数" msgid "Commits|An error occurred while fetching merge requests data." -msgstr "" +msgstr "获å–åˆå¹¶è¯·æ±‚æ•°æ®æ—¶å‡ºé”™" msgid "Commits|Commit: %{commitText}" -msgstr "" +msgstr "æ交内容:%{commitText}" msgid "Commits|History" msgstr "历å²" msgid "Commits|No related merge requests found" -msgstr "" +msgstr "æ— ç›¸å…³åˆå¹¶è¯·æ±‚" msgid "Committed by" msgstr "æ交者:" @@ -1121,29 +1282,71 @@ msgid "Compare" msgstr "比较" msgid "Compare Git revisions" -msgstr "" +msgstr "比较Gitæ交版本" msgid "Compare Revisions" +msgstr "比较版本" + +msgid "Compare changes with the last commit" +msgstr "与上个æ交比较å˜æ›´å†…容" + +msgid "Compare changes with the merge request target branch" msgstr "" msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." -msgstr "" +msgstr "%{source_branch} å’Œ %{target_branch} 是相åŒçš„" msgid "CompareBranches|Compare" -msgstr "" +msgstr "比较" msgid "CompareBranches|Source" -msgstr "" +msgstr "æºåˆ†æ”¯" msgid "CompareBranches|Target" -msgstr "" +msgstr "ç›®æ ‡åˆ†æ”¯" msgid "CompareBranches|There isn't anything to compare." -msgstr "" +msgstr "æ— éœ€æ¯”è¾ƒã€‚" + +msgid "Confidential" +msgstr "机密" msgid "Confidentiality" +msgstr "ç§å¯†æ€§" + +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." msgstr "" +msgid "Configure the way a user creates a new account." +msgstr "é…置用户创建新å¸æˆ·çš„æ–¹å¼ã€‚" + +msgid "Connect" +msgstr "连接" + +msgid "Connect all repositories" +msgstr "连接所有仓库" + +msgid "Connect repositories from GitHub" +msgstr "从 Github ä¸å¯¼å…¥ä»£ç 仓库" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "连接外部仓库åŽï¼Œæ–°æ交将会å¯åŠ¨CI/CDæµæ°´çº¿ã€‚ä»…å¯ç”¨CI/CD功能的Gitlab项目将会被创建。" + +msgid "Connecting..." +msgstr "æ£åœ¨è¿žæŽ¥..." + msgid "Container Registry" msgstr "容器注册" @@ -1160,7 +1363,7 @@ msgid "ContainerRegistry|How to use the Container Registry" msgstr "如何使用容器注册表" msgid "ContainerRegistry|Learn more about" -msgstr "关于更多" +msgstr "进一æ¥äº†è§£" msgid "ContainerRegistry|No tags in Container Registry for this container image." msgstr "容器注册表ä¸æ²¡æœ‰æ¤å®¹å™¨é•œåƒçš„æ ‡ç¾ã€‚" @@ -1169,7 +1372,7 @@ msgid "ContainerRegistry|Once you log in, you’re free to create and upload msgstr "登录åŽæ‚¨å¯ä»¥ä½¿ç”¨é€šç”¨çš„%{build}å’Œ%{push}å‘½ä»¤åˆ›å»ºå’Œä¸Šä¼ å®¹å™¨é•œåƒ" msgid "ContainerRegistry|Remove repository" -msgstr "åˆ é™¤å˜å‚¨åº“" +msgstr "åˆ é™¤ä»“åº“" msgid "ContainerRegistry|Remove tag" msgstr "åˆ é™¤æ ‡ç¾" @@ -1189,6 +1392,12 @@ msgstr "使用ä¸åŒçš„é•œåƒå称" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "å°† Docker 容器注册表集æˆåˆ° GitLab ä¸ï¼Œæ¯ä¸ªé¡¹ç›®éƒ½å¯ä»¥æœ‰å„自的空间æ¥å˜å‚¨ Docker çš„é•œåƒã€‚" +msgid "Continuous Integration and Deployment" +msgstr "æŒç»é›†æˆå’Œéƒ¨ç½²" + +msgid "Contribution" +msgstr "贡献" + msgid "Contribution guide" msgstr "贡献指å—" @@ -1196,22 +1405,22 @@ msgid "Contributors" msgstr "贡献者" msgid "ContributorsPage|%{startDate} – %{endDate}" -msgstr "" +msgstr "%{startDate} – %{endDate}" msgid "ContributorsPage|Building repository graph." -msgstr "构建å˜å‚¨åº“å›¾æ ‡ã€‚" +msgstr "构建图表ä¸ã€‚" msgid "ContributorsPage|Commits to %{branch_name}, excluding merge commits. Limited to 6,000 commits." -msgstr "æ交到%{branch_name},排除åˆå¹¶æ交。é™äºŽ6000次æ交。" +msgstr "%{branch_name} 分支上的æ交,ä¸å«åˆå¹¶æ交。é™6000次。" msgid "ContributorsPage|Please wait a moment, this page will automatically refresh when ready." -msgstr "请ç¨ç‰ç‰‡åˆ»ï¼Œè¿™ä¸ªé¡µé¢ä¼šåœ¨å‡†å¤‡å¥½æ—¶è‡ªåŠ¨åˆ·æ–°ã€‚" +msgstr "请ç¨å€™ï¼Œå›¾è¡¨æž„建完æˆåŽé¡µé¢ä¼šè‡ªåŠ¨åˆ·æ–°ã€‚" msgid "Control the maximum concurrency of LFS/attachment backfill for this secondary node" msgstr "控制æ¤æ¬¡è¦èŠ‚点的 LFS/attachment 的最大并å‘" msgid "Control the maximum concurrency of repository backfill for this secondary node" -msgstr "控制æ¤æ¬¡è¦èŠ‚点的å˜å‚¨åº“最大并å‘" +msgstr "控制æ¤æ¬¡è¦èŠ‚点的仓库最大并å‘" msgid "Copy SSH public key to clipboard" msgstr "å¤åˆ¶ SSH 公钥到剪贴æ¿" @@ -1220,55 +1429,58 @@ msgid "Copy URL to clipboard" msgstr "å¤åˆ¶ URL 到剪贴æ¿" msgid "Copy branch name to clipboard" -msgstr "" +msgstr "将分支å称å¤åˆ¶åˆ°å‰ªè´´æ¿" msgid "Copy command to clipboard" -msgstr "" +msgstr "将命令å¤åˆ¶åˆ°å‰ªè´´æ¿" msgid "Copy commit SHA to clipboard" msgstr "å¤åˆ¶æ交 SHA 的值到剪贴æ¿" msgid "Copy reference to clipboard" -msgstr "" +msgstr "将索引å¤åˆ¶åˆ°å‰ªè´´æ¿" msgid "Create" -msgstr "" +msgstr "创建" msgid "Create New Directory" msgstr "创建新目录" msgid "Create a new branch" -msgstr "" +msgstr "创建一个新分支" msgid "Create a new branch and merge request" -msgstr "" +msgstr "创建一个新的分支åŠåˆå¹¶è¯·æ±‚" msgid "Create a personal access token on your account to pull or push via %{protocol}." msgstr "在å¸æˆ·ä¸Šåˆ›å»ºä¸ªäººè®¿é—®ä»¤ç‰Œï¼Œä»¥é€šè¿‡ %{protocol} æ¥æ‹‰å–或推é€ã€‚" msgid "Create branch" -msgstr "" +msgstr "创建分支" msgid "Create directory" msgstr "创建目录" -msgid "Create empty bare repository" -msgstr "创建空的å˜å‚¨åº“" +msgid "Create empty repository" +msgstr "创建空的仓库" msgid "Create epic" -msgstr "创建EPIC" +msgstr "创建å²è¯—故事" msgid "Create file" msgstr "创建文件" +msgid "Create group label" +msgstr "åˆ›å»ºç¾¤ç»„æ ‡è®°" + msgid "Create lists from labels. Issues with that label appear in that list." -msgstr "" +msgstr "ä»Žæ ‡è®°åˆ›å»ºåˆ—è¡¨ï¼Œå«æœ‰è¯¥æ ‡è®°çš„议题将出现在相应的列ä¸ã€‚" msgid "Create merge request" msgstr "创建åˆå¹¶è¯·æ±‚" msgid "Create merge request and branch" -msgstr "" +msgstr "创建åˆå¹¶è¯·æ±‚åŠåˆ†æ”¯" msgid "Create new branch" msgstr "创建新分支" @@ -1280,11 +1492,14 @@ msgid "Create new file" msgstr "创建新文件" msgid "Create new label" -msgstr "" +msgstr "åˆ›å»ºæ–°æ ‡è®°" msgid "Create new..." msgstr "创建..." +msgid "Create project label" +msgstr "åˆ›å»ºé¡¹ç›®æ ‡è®°" + msgid "CreateNewFork|Fork" msgstr "派生" @@ -1295,13 +1510,13 @@ msgid "CreateTokenToCloneLink|create a personal access token" msgstr "创建个人访问令牌" msgid "Creates a new branch from %{branchName}" -msgstr "" +msgstr "自%{branchName} 创建一个新分支" msgid "Creates a new branch from %{branchName} and re-directs to create a new merge request" -msgstr "" +msgstr "自%{branchName} 创建一个新分支,并转到创建一个新的åˆå¹¶è¯·æ±‚" msgid "Creating epic" -msgstr "创建EPICä¸" +msgstr "创建å²è¯—故事ä¸" msgid "Cron Timezone" msgstr "Cron 时区" @@ -1310,7 +1525,7 @@ msgid "Cron syntax" msgstr "Cron è¯æ³•" msgid "Current node" -msgstr "" +msgstr "当å‰èŠ‚点" msgid "Custom notification events" msgstr "自定义通知事件" @@ -1318,6 +1533,9 @@ msgstr "自定义通知事件" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "自定义通知级别继承自å‚与级别。使用自定义通知级别,您会收到å‚与级别åŠé€‰å®šäº‹ä»¶çš„通知。想了解更多信æ¯ï¼Œè¯·æŸ¥çœ‹ %{notification_link}." +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "周期分æž" @@ -1355,7 +1573,7 @@ msgid "December" msgstr "å二月" msgid "Default classification label" -msgstr "" +msgstr "é»˜è®¤åˆ†ç±»æ ‡ç¾" msgid "Define a custom pattern with cron syntax" msgstr "使用 Cron è¯æ³•å®šä¹‰è‡ªå®šä¹‰æ¨¡å¼" @@ -1380,19 +1598,19 @@ msgid "Details" msgstr "详情" msgid "Diffs|No file name available" -msgstr "" +msgstr "没有å¯ç”¨çš„文件å" msgid "Directory name" msgstr "目录å称" msgid "Disable" -msgstr "" +msgstr "ç¦ç”¨" msgid "Discard draft" -msgstr "" +msgstr "èˆå¼ƒè‰ç¨¿" msgid "Discover GitLab Geo." -msgstr "" +msgstr "å‘现GitLab Geo。" msgid "Dismiss Cycle Analytics introduction box" msgstr "å…³é—循环分æžä»‹ç»æ¡†" @@ -1400,9 +1618,15 @@ msgstr "å…³é—循环分æžä»‹ç»æ¡†" msgid "Dismiss Merge Request promotion" msgstr "å…³é—åˆå¹¶è¯·æ±‚ä¸çš„促销广告" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "ä¸å†æ˜¾ç¤º" +msgid "Done" +msgstr "完æˆ" + msgid "Download" msgstr "下载" @@ -1430,7 +1654,13 @@ msgstr "差异文件" msgid "DownloadSource|Download" msgstr "下载" +msgid "Downvotes" +msgstr "踩" + msgid "Due date" +msgstr "截æ¢æ—¥æœŸ" + +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." msgstr "" msgid "Edit" @@ -1440,15 +1670,54 @@ msgid "Edit Pipeline Schedule %{id}" msgstr "编辑 %{id} æµæ°´çº¿è®¡åˆ’" msgid "Edit files in the editor and commit changes here" +msgstr "在编辑器ä¸ç¼–辑文件并在这里​​æ交å˜æ›´å†…容" + +msgid "Editing" +msgstr "编辑" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" msgstr "" msgid "Emails" msgstr "电å邮件" msgid "Enable" -msgstr "" +msgstr "å¯ç”¨" msgid "Enable Auto DevOps" +msgstr "å¯ç”¨Auto DevOps" + +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "å¯ç”¨å¹¶é…ç½®InfluxDBæŒ‡æ ‡ã€‚" + +msgid "Enable and configure Prometheus metrics." +msgstr "å¯ç”¨å¹¶é…ç½®PrometheusæŒ‡æ ‡ã€‚" + +msgid "Enable classification control using an external service" +msgstr "使用外部æœåŠ¡å¯ç”¨åˆ†ç±»æŽ§åˆ¶" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" msgstr "" msgid "Environments|An error occurred while fetching the environments." @@ -1497,7 +1766,7 @@ msgid "Environments|Updated" msgstr "已更新" msgid "Environments|You don't have any environments right now." -msgstr "ä½ è¿˜æ²¡æœ‰è®¾ç½®çŽ¯å¢ƒ" +msgstr "当å‰æœªè®¾ç½®çŽ¯å¢ƒ" msgid "Epic will be removed! Are you sure?" msgstr "EPICå°†è¢«åˆ é™¤!是å¦ç¡®å®šï¼Ÿ" @@ -1506,46 +1775,49 @@ msgid "Epics" msgstr "EPIC" msgid "Epics Roadmap" -msgstr "" +msgstr "å²è¯—故事路线图" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" -msgstr "EPICè®©ä½ æ›´æœ‰æ•ˆçŽ‡åœ°ç®¡ç†ä½ 的项目组åˆï¼Œè€Œä¸”ä¸è´¹å¹ç°ä¹‹åŠ›" +msgstr "利用å²è¯—故事(Epics),产å“线管ç†ä¼šå˜å¾—æ›´è½»æ¾ä¸”更高效" -msgid "Error checking branch data. Please try again." +msgid "Error Reporting and Logging" msgstr "" +msgid "Error checking branch data. Please try again." +msgstr "检查分支数æ®æ—¶å‡ºé”™ã€‚请å†è¯•ä¸€æ¬¡ã€‚" + msgid "Error committing changes. Please try again." -msgstr "" +msgstr "æ交更改时出错。请å†è¯•ä¸€æ¬¡ã€‚" msgid "Error creating epic" -msgstr "创建EPIC时出错" +msgstr "创建å²è¯—故事时出错" msgid "Error fetching contributors data." -msgstr "" +msgstr "获å–贡献者数æ®æ—¶å‡ºé”™ã€‚" msgid "Error fetching labels." -msgstr "" +msgstr "获å–æ ‡è®°æ—¶å‡ºé”™ã€‚" msgid "Error fetching network graph." -msgstr "" +msgstr "获å–网络图时出错。" msgid "Error fetching refs" -msgstr "" +msgstr "获å–refs时出错。" msgid "Error fetching usage ping data." -msgstr "" +msgstr "获å–使用情况(usage ping) æ•°æ®æ—¶å‡ºé”™ã€‚" msgid "Error occurred when toggling the notification subscription" msgstr "切æ¢é€šçŸ¥è®¢é˜…æ—¶å‘生错误" msgid "Error saving label update." -msgstr "" +msgstr "ä¿å˜æ ‡è®°æ›´æ–°æ—¶å‡ºé”™ã€‚" msgid "Error updating status for all todos." -msgstr "" +msgstr "更新所有待办事项的状æ€æ—¶å‡ºé”™ã€‚" msgid "Error updating todo status." -msgstr "" +msgstr "更新待办事项状æ€æ—¶å‡ºé”™ã€‚" msgid "EventFilterBy|Filter by all" msgstr "全部" @@ -1575,7 +1847,7 @@ msgid "Every week (Sundays at 4:00am)" msgstr "æ¯å‘¨æ‰§è¡Œï¼ˆå‘¨æ—¥å‡Œæ™¨ 4 点)" msgid "Expand" -msgstr "" +msgstr "展开" msgid "Explore projects" msgstr "查看项目" @@ -1584,34 +1856,43 @@ msgid "Explore public groups" msgstr "æœç´¢å…¬å…±ç¾¤ç»„" msgid "External Classification Policy Authorization" +msgstr "外部分类政ç–授æƒ" + +msgid "External authentication" msgstr "" msgid "External authorization denied access to this project" -msgstr "" +msgstr "外部授æƒæ‹’ç»è®¿é—®æ¤é¡¹ç›®" + +msgid "External authorization request timeout" +msgstr "外部授æƒè¯·æ±‚超时" msgid "ExternalAuthorizationService|Classification Label" -msgstr "" +msgstr "åˆ†ç±»æ ‡ç¾" msgid "ExternalAuthorizationService|Classification label" -msgstr "" +msgstr "åˆ†ç±»æ ‡ç¾" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." -msgstr "" +msgstr "æœªè®¾ç½®åˆ†ç±»æ ‡ç¾æ—¶ï¼Œå°†ä½¿ç”¨é»˜è®¤çš„åˆ†ç±»æ ‡ç¾`%{default_label}`。" + +msgid "Failed" +msgstr "已失败" msgid "Failed Jobs" -msgstr "" +msgstr "失败的作业" msgid "Failed to change the owner" msgstr "æ— æ³•å˜æ›´æ‰€æœ‰è€…" msgid "Failed to remove issue from board, please try again." -msgstr "" +msgstr "æ— æ³•ä»Žçœ‹æ¿ç§»é™¤é—®é¢˜ï¼Œè¯·é‡è¯•ã€‚" msgid "Failed to remove the pipeline schedule" msgstr "æ— æ³•åˆ é™¤æµæ°´çº¿è®¡åˆ’" msgid "Failed to update issues, please try again." -msgstr "" +msgstr "更新议题失败, 请é‡è¯•" msgid "Feb" msgstr "二" @@ -1620,7 +1901,7 @@ msgid "February" msgstr "二月" msgid "Fields on this page are now uneditable, you can configure" -msgstr "" +msgstr "当å‰é¡µé¢ä¸Šçš„å—段ä¸å¯ç¼–辑,å¯ä»¥é…ç½®" msgid "File name" msgstr "文件å" @@ -1629,6 +1910,9 @@ msgid "Files" msgstr "文件" msgid "Files (%{human_size})" +msgstr "文件(%{human_size})" + +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" msgstr "" msgid "Filter by commit message" @@ -1640,12 +1924,21 @@ msgstr "按路径查找" msgid "Find file" msgstr "查找文件" +msgid "Finished" +msgstr "已完æˆ" + msgid "FirstPushedBy|First" msgstr "首次推é€" msgid "FirstPushedBy|pushed by" msgstr "推é€è€…:" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "派生" @@ -1656,9 +1949,15 @@ msgstr "派生自" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "派生自 %{project_name} (åˆ é™¤)" +msgid "Forking in progress" +msgstr "派生(Fork)ä¸" + msgid "Format" msgstr "æ ¼å¼" +msgid "From %{provider_title}" +msgstr "æ¥è‡ª %{provider_title}" + msgid "From issue creation until deploy to production" msgstr "从创建议题到部署至生产环境" @@ -1666,143 +1965,209 @@ msgid "From merge request merge until deploy to production" msgstr "从åˆå¹¶è¯·æ±‚被åˆå¹¶åŽåˆ°éƒ¨ç½²è‡³ç”Ÿäº§çŽ¯å¢ƒ" msgid "From the Kubernetes cluster details view, install Runner from the applications list" -msgstr "" +msgstr "在Kubernetes群集详细信æ¯è§†å›¾ä¸ï¼Œä»Žåº”用程åºåˆ—表ä¸å®‰è£…Runner" msgid "GPG Keys" msgstr "GPG 密钥" msgid "Generate a default set of labels" -msgstr "" +msgstr "生æˆä¸€ç»„é»˜è®¤çš„æ ‡è®°" msgid "Geo Nodes" msgstr "Geo 节点" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "节点出现故障或æŸå。" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "节点è¿è¡Œç¼“æ…¢ã€è¶…è½½, 或者在åœæœºåŽåˆšåˆšæ¢å¤ã€‚" +msgid "GeoNodes|Checksummed" +msgstr "å·²æ ¡éªŒ" + msgid "GeoNodes|Database replication lag:" -msgstr "" +msgstr "æ•°æ®åº“åŒæ¥æ»žåŽ" msgid "GeoNodes|Disabling a node stops the sync process. Are you sure?" -msgstr "" +msgstr "ç¦ç”¨èŠ‚点会ä¸æ¢åŒæ¥è¿‡ç¨‹ã€‚确定继ç»å—?" msgid "GeoNodes|Does not match the primary storage configuration" -msgstr "" +msgstr "与主å˜å‚¨é…ç½®ä¸ä¸€è‡´" msgid "GeoNodes|Failed" -msgstr "" +msgstr "失败" msgid "GeoNodes|Full" -msgstr "" +msgstr "全部" msgid "GeoNodes|GitLab version does not match the primary node version" -msgstr "" +msgstr "GitLab版本与主节点版本ä¸ä¸€è‡´" msgid "GeoNodes|GitLab version:" -msgstr "" +msgstr "GitLab版本:" msgid "GeoNodes|Health status:" -msgstr "" +msgstr "å¥åº·çŠ¶å†µï¼š" msgid "GeoNodes|Last event ID processed by cursor:" -msgstr "" +msgstr "æ¸¸æ ‡å¤„ç†çš„最åŽäº‹ä»¶ID:" msgid "GeoNodes|Last event ID seen from primary:" -msgstr "" +msgstr "主节点ä¸æœ€åŽäº‹ä»¶ID:" msgid "GeoNodes|Loading nodes" -msgstr "" +msgstr "载入节点" msgid "GeoNodes|Local Attachments:" -msgstr "" +msgstr "本地附件:" msgid "GeoNodes|Local LFS objects:" -msgstr "" +msgstr "本地LFS对象:" msgid "GeoNodes|Local job artifacts:" -msgstr "" +msgstr "本地作业生æˆç‰©:" msgid "GeoNodes|New node" -msgstr "" +msgstr "新建节点" + +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "节点认è¯å·²æˆåŠŸä¿®å¤ã€‚" + +msgid "GeoNodes|Node was successfully removed." +msgstr "节点已æˆåŠŸåˆ 除。" + +msgid "GeoNodes|Not checksummed" +msgstr "æœªæ ¡éªŒ" msgid "GeoNodes|Out of sync" -msgstr "" +msgstr "ä¸åŒæ¥" + +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "åˆ é™¤èŠ‚ç‚¹ä¼šåœæ¢åŒæ¥ã€‚确定继ç»ï¼Ÿ" msgid "GeoNodes|Replication slot WAL:" -msgstr "" +msgstr "å¤åˆ¶æ§½WAL:" msgid "GeoNodes|Replication slots:" -msgstr "" +msgstr "å¤åˆ¶æ§½ï¼š" + +msgid "GeoNodes|Repositories checksummed:" +msgstr "å·²æ ¡éªŒä»“åº“:" msgid "GeoNodes|Repositories:" -msgstr "" +msgstr "仓库:" + +msgid "GeoNodes|Repository checksums verified:" +msgstr "ä»“åº“æ ¡éªŒå’Œå·²éªŒè¯ï¼š" msgid "GeoNodes|Selective" -msgstr "" +msgstr "选择性" + +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "更改节点状æ€æ—¶å‘生错误" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "åˆ é™¤èŠ‚ç‚¹æ—¶å‘生错误" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "ä¿®å¤èŠ‚点时å‘生错误" msgid "GeoNodes|Storage config:" -msgstr "" +msgstr "å˜å‚¨è®¾ç½®:" msgid "GeoNodes|Sync settings:" -msgstr "" +msgstr "åŒæ¥è®¾ç½®:" msgid "GeoNodes|Synced" -msgstr "" +msgstr "å·²åŒæ¥" msgid "GeoNodes|Unused slots" -msgstr "" +msgstr "未使用的槽" + +msgid "GeoNodes|Unverified" +msgstr "未验è¯" msgid "GeoNodes|Used slots" -msgstr "" +msgstr "已使用的槽" + +msgid "GeoNodes|Verified" +msgstr "已验è¯" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr " Wikiæ ¡éªŒå·²éªŒè¯ï¼š" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "wikiå·²æ ¡éªŒ" msgid "GeoNodes|Wikis:" -msgstr "" +msgstr "Wiki:" msgid "GeoNodes|You have configured Geo nodes using an insecure HTTP connection. We recommend the use of HTTPS." -msgstr "" +msgstr "当å‰Geo节点é…置使用éžåŠ 密的HTTP连接, 建议使用HTTPS。" msgid "Geo|All projects" -msgstr "" +msgstr "所有项目" msgid "Geo|File sync capacity" msgstr "文件åŒæ¥é‡" msgid "Geo|Groups to synchronize" -msgstr "" +msgstr "需åŒæ¥çš„群组" msgid "Geo|Projects in certain groups" -msgstr "" +msgstr "特定群组ä¸çš„项目" msgid "Geo|Projects in certain storage shards" -msgstr "" +msgstr "特定å˜å‚¨ç‰‡ä¸çš„项目" msgid "Geo|Repository sync capacity" -msgstr "å˜å‚¨åº“åŒæ¥é‡" +msgstr "仓库åŒæ¥é‡" msgid "Geo|Select groups to replicate." msgstr "选择è¦å¤åˆ¶çš„群组。" msgid "Geo|Shards to synchronize" -msgstr "" +msgstr "需åŒæ¥çš„å˜å‚¨ç‰‡" + +msgid "Git repository URL" +msgstr "Git仓库URL" msgid "Git revision" -msgstr "" +msgstr "Gitæ交版本" msgid "Git storage health information has been reset" msgstr "Git å˜å‚¨å¥åº·ä¿¡æ¯å·²é‡ç½®" msgid "Git version" +msgstr "Git 版本" + +msgid "GitHub import" +msgstr "GitHub导入" + +msgid "GitLab CI Linter has been moved" +msgstr "GitLab CI Linter已被转移" + +msgid "GitLab Geo" msgstr "" msgid "GitLab Runner section" msgstr "GitLab Runner" -msgid "Gitaly Servers" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" msgstr "" +msgid "Gitaly Servers" +msgstr "GitalyæœåŠ¡å™¨" + +msgid "Go back" +msgstr "返回" + msgid "Go to your fork" msgstr "跳转到派生项目" @@ -1813,25 +2178,25 @@ msgid "Google authentication is not %{link_to_documentation}. Ask your GitLab ad msgstr "Google 身份验è¯ä¸æ˜¯%{link_to_documentation}。如果您想使用æ¤æœåŠ¡ï¼Œè¯·å’¨è¯¢æ‚¨çš„ GitLab 管ç†å‘˜ã€‚" msgid "Got it!" -msgstr "" +msgstr "了解ï¼" msgid "GroupRoadmap|Epics let you manage your portfolio of projects more efficiently and with less effort" -msgstr "" +msgstr "利用å²è¯—故事(Epics),产å“线管ç†ä¼šå˜å¾—æ›´è½»æ¾ä¸”更高效" msgid "GroupRoadmap|From %{dateWord}" -msgstr "" +msgstr "从 %{dateWord}" msgid "GroupRoadmap|Loading roadmap" -msgstr "" +msgstr "载入路线图" msgid "GroupRoadmap|Something went wrong while fetching epics" -msgstr "" +msgstr "读å–å²è¯—故事时出错" msgid "GroupRoadmap|To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown – from %{startDate} to %{endDate}." -msgstr "" +msgstr "如需查看路线图,请将计划的开始或结æŸæ—¥æœŸæ·»åŠ 到当å‰ç¾¤ç»„或其å组ä¸çš„æŸä¸ªå²è¯—故事。åªæ˜¾ç¤ºè¿‡åŽ»3个月和接下æ¥3个月的å²è¯—故事– 从 %{startDate} 至 %{endDate}." msgid "GroupRoadmap|Until %{dateWord}" -msgstr "" +msgstr "直到 %{dateWord}" msgid "GroupSettings|Prevent sharing a project within %{group} with other groups" msgstr "ç¦æ¢ä¸Žå…¶ä»–群组共享 %{group} ä¸çš„项目" @@ -1849,7 +2214,7 @@ msgid "GroupSettings|This setting is applied on %{ancestor_group}. You can overr msgstr "æ¤è®¾ç½®å·²åº”用于 %{ancestor_group}。 您å¯ä»¥è¦†ç›–æ¤è®¾ç½®æˆ– %{remove_ancestor_share_with_group_lock}。" msgid "GroupSettings|This setting will be applied to all subgroups unless overridden by a group owner. Groups that already have access to the project will continue to have access unless removed manually." -msgstr "æ¤è®¾ç½®å°†åº”用于所有å组,除éžç”±ç»„所有者覆盖。已ç»æœ‰æƒè®¿é—®è¯¥é¡¹ç›®çš„群组将继ç»è®¿é—®ï¼Œé™¤éžæ‰‹åŠ¨ç§»é™¤ã€‚" +msgstr "æ¤è®¾ç½®å°†åº”用于所有å组,除éžç”±ç»„所有者覆盖。已ç»æœ‰æƒè®¿é—®è¯¥é¡¹ç›®çš„群组将ä»ç„¶å…·æœ‰è®¿é—®æƒé™ï¼Œé™¤éžè®¿é—®æƒé™è¢«æ‰‹åŠ¨ç§»é™¤ã€‚" msgid "GroupSettings|cannot be disabled when the parent group \"Share with group lock\" is enabled, except by the owner of the parent group" msgstr "æ— æ³•ç¦ç”¨çˆ¶ç»„的“共享群组é”â€ï¼Œåªæœ‰çˆ¶ç¾¤ç»„的所有者æ‰å¯ä»¥æ“作ï¼" @@ -1869,9 +2234,6 @@ msgstr "找ä¸åˆ°ç¾¤ç»„" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "您å¯ä»¥ç®¡ç†ç¾¤ç»„æˆå‘˜çš„æƒé™å¹¶è®¿é—®ç¾¤ç»„ä¸çš„æ¯ä¸ªé¡¹ç›®ã€‚" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "在æ¤ç¾¤ç»„ä¸åˆ›å»ºä¸€ä¸ªé¡¹ç›®ã€‚" @@ -1902,6 +2264,9 @@ msgstr "对ä¸èµ·ï¼Œæ²¡æœ‰ä»»ä½•ç¾¤ç»„或项目符åˆæ‚¨çš„æœç´¢" msgid "Have your users email" msgstr "æœ‰ä½ çš„ç”¨æˆ·é‚®ä»¶" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "å¥åº·æ£€æŸ¥" @@ -1909,7 +2274,7 @@ msgid "Health information can be retrieved from the following endpoints. More in msgstr "å¥åº·ä¿¡æ¯å¯ä»¥ä»Žä»¥ä¸‹API路径获å–。如需了解更多信æ¯ï¼Œè¯·æŸ¥çœ‹" msgid "HealthCheck|Access token is" -msgstr "访问令牌是" +msgstr "访问令牌为" msgid "HealthCheck|Healthy" msgstr "å¥åº·" @@ -1920,9 +2285,18 @@ msgstr "没有检测到å¥åº·é—®é¢˜" msgid "HealthCheck|Unhealthy" msgstr "éžå¥åº·" +msgid "Help" +msgstr "帮助" + +msgid "Help page" +msgstr "帮助页é¢" + +msgid "Help page text and support page url." +msgstr "帮助页é¢æ–‡æœ¬å’Œæ”¯æŒé¡µé¢ç½‘å€ã€‚" + msgid "Hide value" msgid_plural "Hide values" -msgstr[0] "" +msgstr[0] "éšè—值" msgid "History" msgstr "历å²" @@ -1930,11 +2304,38 @@ msgstr "历å²" msgid "Housekeeping successfully started" msgstr "已开始维护" -msgid "If you already have files you can push them using the %{link_to_cli} below." +msgid "Identity provider single sign on URL" msgstr "" +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "如果å¯ç”¨ï¼Œåˆ™ä½¿ç”¨å¤–部æœåŠ¡ä¸Šçš„åˆ†ç±»æ ‡ç¾æ¥éªŒè¯å¯¹é¡¹ç›®çš„访问æƒé™ã€‚" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "如使用GitHub,GitHub上的æ交和拉å–请求(pull request)将会显示æµæ°´çº¿çŠ¶æ€ã€‚ %{more_info_link}" + +msgid "If you already have files you can push them using the %{link_to_cli} below." +msgstr "如果文件已å˜åœ¨ï¼Œå¯ä»¥ä½¿ç”¨ä¸‹é¢çš„ %{link_to_cli} 推é€å®ƒä»¬ã€‚" + +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "如果HTTP仓库ä¸å¯å…¬å¼€è®¿é—®ï¼Œè¯·å°†èº«ä»½éªŒè¯ä¿¡æ¯æ·»åŠ 到URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." + +msgid "Import" +msgstr "导入" + +msgid "Import all repositories" +msgstr "导入所有仓库" + +msgid "Import in progress" +msgstr "æ£åœ¨å¯¼å…¥" + +msgid "Import repositories from GitHub" +msgstr "从 GitHub 导入仓库" + msgid "Import repository" -msgstr "导入å˜å‚¨åº“" +msgstr "导入仓库" + +msgid "ImportButtons|Connect repositories from" +msgstr "用以下方å¼è¿žæŽ¥ä»“库" msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "å助改进 GitLab ä¼ä¸šç‰ˆçš„议题看æ¿ã€‚" @@ -1946,7 +2347,7 @@ msgid "Improve search with Advanced Global Search and GitLab Enterprise Edition. msgstr "å助改进GitLab ä¼ä¸šç‰ˆçš„æœç´¢å’Œé«˜çº§å…¨å±€æœç´¢ 。" msgid "Install Runner on Kubernetes" -msgstr "" +msgstr "在Kubernetes上安装Runner" msgid "Install a Runner compatible with GitLab CI" msgstr "安装一个与 GitLab CI 兼容的 Runner" @@ -1956,10 +2357,13 @@ msgid_plural "Instances" msgstr[0] "实例" msgid "Instance does not support multiple Kubernetes clusters" -msgstr "" +msgstr "实例ä¸æ”¯æŒå¤šä¸ªKubernetes群集" + +msgid "Integrations" +msgstr "导入所有仓库" msgid "Interested parties can even contribute by pushing commits if they want to." -msgstr "" +msgstr "相关人员甚至å¯ä»¥é€šè¿‡æŽ¨é€æ交æ¥ä¸ºé¡¹ç›®ä½œå‡ºè´¡çŒ®ã€‚" msgid "Internal - The group and any internal projects can be viewed by any logged in user." msgstr "内部 - 任何登录的用户都å¯ä»¥æŸ¥çœ‹è¯¥ç¾¤ç»„和任何内部项目。" @@ -1989,7 +2393,7 @@ msgid "Issues" msgstr "议题" msgid "Issues can be bugs, tasks or ideas to be discussed. Also, issues are searchable and filterable." -msgstr "" +msgstr "议题å¯ä»¥æ˜¯ç¼ºé™·ï¼Œä»»åŠ¡æˆ–è¦è®¨è®ºçš„想法。æ¤å¤–,å¯ä»¥é€šè¿‡æœç´¢å’Œè¿‡æ»¤æ¥æŸ¥æ‰¾è®®é¢˜ã€‚" msgid "Jan" msgstr "一" @@ -1998,7 +2402,7 @@ msgid "January" msgstr "一月" msgid "Jobs" -msgstr "" +msgstr "作业" msgid "Jul" msgstr "七" @@ -2012,29 +2416,32 @@ msgstr "å…" msgid "June" msgstr "å…月" -msgid "Kubernetes" +msgid "Koding" msgstr "" +msgid "Kubernetes" +msgstr "Kubernetes" + msgid "Kubernetes Cluster" -msgstr "" +msgstr "Kubernetes集群" msgid "Kubernetes cluster creation time exceeds timeout; %{timeout}" -msgstr "" +msgstr "Kubernetes集群创建时间超过超时; %{timeout}" msgid "Kubernetes cluster integration was not removed." -msgstr "" +msgstr "Kubernetes集群集æˆæœªè¢«åˆ 除。" msgid "Kubernetes cluster integration was successfully removed." -msgstr "" +msgstr "Kubernetes集群集æˆå·²æˆåŠŸåˆ 除。" msgid "Kubernetes cluster was successfully updated." -msgstr "" +msgstr "Kubernetes群集已æˆåŠŸæ›´æ–°ã€‚" msgid "Kubernetes configured" -msgstr "" +msgstr "Kuberneteså·²é…ç½®" msgid "Kubernetes service integration has been deprecated. %{deprecated_message_content} your Kubernetes clusters using the new <a href=\"%{url}\"/>Kubernetes Clusters</a> page" -msgstr "" +msgstr "KubernetesæœåŠ¡é›†æˆå³å°†è¢«åœç”¨ã€‚ 请使用新的 <a href=\"%{url}\"/>Kubernetes群集</a> 页é¢%{deprecated_message_content} Kubernetes集群" msgid "LFSStatus|Disabled" msgstr "åœç”¨" @@ -2042,11 +2449,29 @@ msgstr "åœç”¨" msgid "LFSStatus|Enabled" msgstr "å¯ç”¨" +msgid "Label" +msgstr "æ ‡è®°" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "%{firstLabelName} +%{remainingLabelCount} 更多" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "%{labelsString}å’Œ %{remainingLabelCount} 更多" + msgid "Labels" -msgstr "æ ‡ç¾" +msgstr "æ ‡è®°" + +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "æ ‡è®°å¯ä»¥åº”用于 %{features}ã€‚ç¾¤ç»„æ ‡è®°å¯ç”¨äºŽç¾¤ç»„ä¸çš„所有项目。" msgid "Labels can be applied to issues and merge requests to categorize them." -msgstr "" +msgstr "æ ‡è®°å¯ç”¨äºŽå¯¹è®®é¢˜å’Œåˆå¹¶è¯·æ±‚进行分类。" + +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "<span>å°†æ ‡è®°</span> %{labelTitle} <span>å‡çº§ä¸ºç¾¤ç»„æ ‡è®°ï¼Ÿ</span>" + +msgid "Labels|Promote Label" +msgstr "å‡çº§æ ‡è®°" msgid "Last %d day" msgid_plural "Last %d days" @@ -2077,13 +2502,13 @@ msgid "LastPushEvent|at" msgstr "于" msgid "Learn more" -msgstr "" +msgstr "进一æ¥äº†è§£" msgid "Learn more about Kubernetes" -msgstr "" +msgstr "进一æ¥äº†è§£å…³äºŽKubernetesçš„ä¿¡æ¯" msgid "Learn more about protected branches" -msgstr "" +msgstr "进一æ¥äº†è§£ä¿æŠ¤åˆ†æ”¯" msgid "Learn more in the" msgstr "了解更多" @@ -2104,22 +2529,22 @@ msgid "License" msgstr "许å¯åè®®" msgid "List" -msgstr "" +msgstr "列表" + +msgid "List your GitHub repositories" +msgstr "列出GitHub仓库" msgid "Loading the GitLab IDE..." -msgstr "" +msgstr "åŠ è½½GitLab IDE..." msgid "Lock" msgstr "é”定" msgid "Lock %{issuableDisplayName}" -msgstr "" +msgstr "é”定 %{issuableDisplayName}" msgid "Lock not found" -msgstr "" - -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" +msgstr "未找到é”" msgid "Locked" msgstr "å·²é”定" @@ -2128,15 +2553,27 @@ msgid "Locked Files" msgstr "å·²é”定文件" msgid "Locks give the ability to lock specific file or folder." -msgstr "" +msgstr "åŠ é”å¯ä»¥é”定特定的文件或文件夹。" msgid "Login" msgstr "登录" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." -msgstr "" +msgstr "GitLab Geo å¯ä»¥åˆ›å»º GitLab 实例的åªè¯»é•œåƒ, 使得从远端克隆和拉å–大型代ç 仓库的时间大大缩çŸï¼Œæ高团队æˆå‘˜çš„工作效率。" + +msgid "Manage all notifications" +msgstr "管ç†å…¨éƒ¨é€šçŸ¥" + +msgid "Manage group labels" +msgstr "管ç†ç¾¤ç»„æ ‡è®°" msgid "Manage labels" +msgstr "管ç†æ ‡è®°" + +msgid "Manage project labels" +msgstr "管ç†é¡¹ç›®æ ‡è®°" + +msgid "Manage your group’s membership while adding another level of security with SAML." msgstr "" msgid "Mar" @@ -2146,7 +2583,7 @@ msgid "March" msgstr "三月" msgid "Mark done" -msgstr "" +msgstr "æ ‡è®°ä¸ºå·²å®Œæˆ" msgid "Maximum git storage failures" msgstr "最大 git å˜å‚¨å¤±è´¥" @@ -2160,6 +2597,9 @@ msgstr "ä¸ä½æ•°" msgid "Members" msgstr "æˆå‘˜" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "åˆå¹¶è¯·æ±‚" @@ -2170,71 +2610,155 @@ msgid "Merge request" msgstr "åˆå¹¶è¯·æ±‚" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" -msgstr "" - -msgid "MergeRequest|Approved" -msgstr "" +msgstr "åˆå¹¶è¯·æ±‚用于æ出对项目的更改与他人讨论" msgid "Merged" -msgstr "" +msgstr "å·²åˆå¹¶" msgid "Messages" msgstr "消æ¯" +msgid "Metrics - Influx" +msgstr "æŒ‡æ ‡ - Influx" + +msgid "Metrics - Prometheus" +msgstr "æŒ‡æ ‡ - Prometheus" + +msgid "Metrics|Business" +msgstr "业务" + +msgid "Metrics|Create metric" +msgstr "åˆ›å»ºæŒ‡æ ‡" + +msgid "Metrics|Edit metric" +msgstr "ç¼–è¾‘æŒ‡æ ‡" + +msgid "Metrics|For grouping similar metrics" +msgstr "ç”¨äºŽåˆ†ç»„ç±»ä¼¼æŒ‡æ ‡" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "å›¾è¡¨çºµè½´çš„æ ‡ç¾ã€‚通常表示绘制å•ä½ã€‚水平轴(X轴)一般表示时间。" + +msgid "Metrics|Legend label (optional)" +msgstr "å›¾ä¾‹æ ‡ç¾ï¼ˆå¯é€‰ï¼‰" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "必须是有效的 PromQL 查询。" + +msgid "Metrics|Name" +msgstr "å称" + +msgid "Metrics|New metric" +msgstr "åˆ›å»ºæŒ‡æ ‡" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "Prometheus查询文档" + +msgid "Metrics|Query" +msgstr "查询" + +msgid "Metrics|Response" +msgstr "å“应" + +msgid "Metrics|System" +msgstr "系统" + +msgid "Metrics|Type" +msgstr "类型" + +msgid "Metrics|Unit label" +msgstr "å•ä½æ ‡ç¾" + +msgid "Metrics|Used as a title for the chart" +msgstr "ç”¨ä½œå›¾è¡¨çš„æ ‡é¢˜" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "用于查询返回å•ä¸ªç³»åˆ—æ—¶ã€‚å¦‚æžœè¿”å›žå¤šä¸ªç³»åˆ—ï¼Œç›¸åº”çš„å›¾ä¾‹æ ‡ç¾å°†ä»Žè¿”回数æ®ä¸é€‰å–。" + +msgid "Metrics|Y-axis label" +msgstr "Yè½´æ ‡ç¾" + +msgid "Metrics|e.g. HTTP requests" +msgstr "例如HTTP请求" + +msgid "Metrics|e.g. Requests/second" +msgstr "例如æ¯ç§’请求数" + +msgid "Metrics|e.g. Throughput" +msgstr "例如åžåé‡" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "速率(5分钟内所有http请求)" + +msgid "Metrics|e.g. req/sec" +msgstr "例如æ¯ç§’请求数" + msgid "Milestone" -msgstr "" +msgstr "里程碑" msgid "Milestones|Delete milestone" -msgstr "" +msgstr "åˆ é™¤é‡Œç¨‹ç¢‘" msgid "Milestones|Delete milestone %{milestoneTitle}?" -msgstr "" +msgstr "åˆ é™¤é‡Œç¨‹ç¢‘ %{milestoneTitle}?" msgid "Milestones|Failed to delete milestone %{milestoneTitle}" -msgstr "" +msgstr "åˆ é™¤é‡Œç¨‹ç¢‘ %{milestoneTitle}失败" msgid "Milestones|Milestone %{milestoneTitle} was not found" -msgstr "" +msgstr "未找到里程碑 %{milestoneTitle}" + +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "å°† %{milestoneTitle} å‡çº§ä¸ºç¾¤ç»„里程碑?" + +msgid "Milestones|Promote Milestone" +msgstr "å‡çº§é‡Œç¨‹ç¢‘" + +msgid "Milestones|This action cannot be reversed." +msgstr "该æ“ä½œæ— æ³•æ’¤é”€ã€‚" msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "新建 SSH 公钥" msgid "Modal|Cancel" -msgstr "" +msgstr "å–消" msgid "Modal|Close" -msgstr "" +msgstr "å…³é—" msgid "Monitoring" msgstr "监控" +msgid "More info" +msgstr "更多信æ¯" + msgid "More information" -msgstr "" +msgstr "更多信æ¯" msgid "More information is available|here" msgstr "帮助文档" msgid "Move" -msgstr "" +msgstr "移动" msgid "Move issue" -msgstr "" +msgstr "移动议题" msgid "Multiple issue boards" msgstr "多个议题看æ¿" msgid "Name new label" -msgstr "" +msgstr "命åæ–°æ ‡è®°" msgid "New Issue" msgid_plural "New Issues" msgstr[0] "新建议题" msgid "New Kubernetes Cluster" -msgstr "" +msgstr "新建Kubernetes集群" msgid "New Kubernetes cluster" -msgstr "" +msgstr "新建Kubernetes集群" msgid "New Pipeline Schedule" msgstr "创建æµæ°´çº¿è®¡åˆ’" @@ -2249,7 +2773,7 @@ msgid "New directory" msgstr "新建目录" msgid "New epic" -msgstr "æ–°EPIC" +msgstr "新建å²è¯—故事" msgid "New file" msgstr "新建文件" @@ -2261,13 +2785,13 @@ msgid "New issue" msgstr "新建议题" msgid "New label" -msgstr "" +msgstr "æ–°å»ºæ ‡è®°" msgid "New merge request" msgstr "新建åˆå¹¶è¯·æ±‚" msgid "New project" -msgstr "新项目" +msgstr "新建项目" msgid "New schedule" msgstr "新建计划" @@ -2276,31 +2800,37 @@ msgid "New snippet" msgstr "新建代ç 片段" msgid "New subgroup" -msgstr "æ–°å群组" +msgstr "新建å群组" msgid "New tag" msgstr "æ–°å»ºæ ‡ç¾" +msgid "No Label" +msgstr "æ— æ ‡è®°" + msgid "No assignee" -msgstr "" +msgstr "未指派" msgid "No changes" -msgstr "" +msgstr "æ— å˜æ›´å†…容" msgid "No connection could be made to a Gitaly Server, please check your logs!" -msgstr "" +msgstr "æ— æ³•è¿žæŽ¥åˆ°GitalyæœåŠ¡å™¨ï¼Œè¯·æ£€æŸ¥ç›¸å…³æ—¥å¿—ï¼" msgid "No due date" -msgstr "" +msgstr "æ— æˆªæ¢æ—¥æœŸ" msgid "No estimate or time spent" -msgstr "" +msgstr "æ— ä¼°ç®—æˆ–æ¶ˆè€—çš„æ—¶é—´" msgid "No file chosen" -msgstr "" +msgstr "未选定任何文件" + +msgid "No labels created yet." +msgstr "å°šæœªåˆ›å»ºæ ‡è®°" msgid "No repository" -msgstr "没有å˜å‚¨åº“" +msgstr "没有仓库" msgid "No schedules" msgstr "没有计划" @@ -2309,19 +2839,37 @@ msgid "None" msgstr "æ— " msgid "Not allowed to merge" -msgstr "" +msgstr "ä¸å…许åˆå¹¶" msgid "Not available" msgstr "æ•°æ®ä¸è¶³" +msgid "Not available for private projects" +msgstr "对ç§æœ‰é¡¹ç›®ä¸å¯ç”¨" + +msgid "Not available for protected branches" +msgstr "对å—ä¿æŠ¤çš„分支ä¸å¯ç”¨" + msgid "Not confidential" -msgstr "" +msgstr "éžæœºå¯†" msgid "Not enough data" msgstr "æ•°æ®ä¸è¶³" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" -msgstr "" +msgstr "请注æ„,master分支自动å—ä¿æŠ¤ã€‚%{link_to_protected_branches}" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "æ示:作为GitLab管ç†å‘˜ï¼Œå¯ä»¥é…ç½® %{github_integration_link},这将å…许通过GitHub登录并å…许连接Github代ç 仓库而ä¸éœ€è¦ä¸ªäººè®¿é—®ä»¤ç‰Œã€‚" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "æ示:作为GitLab管ç†å‘˜ï¼Œå¯ä»¥é…ç½® %{github_integration_link},这将å…许通过GitHub登录并å…许导入Github代ç 仓库而ä¸éœ€è¦ä¸ªäººè®¿é—®ä»¤ç‰Œã€‚" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "æ示:如GitLab管ç†å‘˜é…ç½® %{github_integration_link},将å…许通过GitHub登录并å…许连接Github代ç 仓库而ä¸éœ€è¦ä¸ªäººè®¿é—®ä»¤ç‰Œã€‚" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "æ示:如GitLab管ç†å‘˜é…ç½® %{github_integration_link},将å…许通过GitHub登录并å…许导入Github代ç 仓库而ä¸éœ€è¦ä¸ªäººè®¿é—®ä»¤ç‰Œã€‚" msgid "Notification events" msgstr "通知事件" @@ -2381,10 +2929,10 @@ msgid "Notifications" msgstr "通知" msgid "Notifications off" -msgstr "" +msgstr "ç¦ç”¨é€šçŸ¥" msgid "Notifications on" -msgstr "" +msgstr "å¯ç”¨é€šçŸ¥" msgid "Nov" msgstr "å一" @@ -2396,7 +2944,7 @@ msgid "Number of access attempts" msgstr "å°è¯•è®¿é—®æ¬¡æ•°" msgid "OK" -msgstr "" +msgstr "确定" msgid "Oct" msgstr "å" @@ -2407,11 +2955,17 @@ msgstr "å月" msgid "OfSearchInADropdown|Filter" msgstr "ç›é€‰" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "仓库导入åŽï¼Œå¯ä»¥é€šè¿‡ SSH 拉å–é•œåƒã€‚了解更多 %{ssh_link}" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "åªæœ‰é¡¹ç›®æˆå‘˜å¯ä»¥å‘表评论。" msgid "Open" -msgstr "" +msgstr "打开" msgid "Opened" msgstr "已打开" @@ -2426,6 +2980,9 @@ msgid "Options" msgstr "æ“作" msgid "Otherwise it is recommended you start with one of the options below." +msgstr "å¦åˆ™ï¼Œå»ºè®®æ‚¨ä»Žä¸‹é¢çš„一个选项开始。" + +msgid "Outbound requests" msgstr "" msgid "Overview" @@ -2434,6 +2991,9 @@ msgstr "概览" msgid "Owner" msgstr "所有者" +msgid "Pages" +msgstr "Pages" + msgid "Pagination|Last »" msgstr "尾页 »" @@ -2446,9 +3006,21 @@ msgstr "上一页" msgid "Pagination|« First" msgstr "« 首页" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "密ç " +msgid "Pending" +msgstr "ç‰å¾…处ç†" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "个人访问å‡è¯" + msgid "Pipeline" msgstr "æµæ°´çº¿" @@ -2528,28 +3100,55 @@ msgid "Pipelines for last year" msgstr "去年的æµæ°´çº¿" msgid "Pipelines|Build with confidence" -msgstr "" +msgstr "自信地构建" + +msgid "Pipelines|CI Lint" +msgstr "CI é…置检查(CI Lint)" + +msgid "Pipelines|Clear Runner Caches" +msgstr "清除Runner缓å˜" msgid "Pipelines|Get started with Pipelines" -msgstr "" +msgstr "æµæ°´çº¿å…¥é—¨" + +msgid "Pipelines|Loading Pipelines" +msgstr "载入æµæ°´çº¿" + +msgid "Pipelines|Project cache successfully reset." +msgstr "项目缓å˜é‡ç½®æˆåŠŸã€‚" + +msgid "Pipelines|Run Pipeline" +msgstr "è¿è¡Œæµæ°´çº¿" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "清ç†runner缓å˜æ—¶å‘生错误。" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "当å‰æ²¡æœ‰ %{scope}çš„æµæ°´çº¿ã€‚" + +msgid "Pipelines|There are currently no pipelines." +msgstr "当å‰æ²¡æœ‰æµæ°´çº¿ã€‚" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "æ¤é¡¹ç›®å½“å‰æœªé…ç½®è¿è¡Œæµæ°´çº¿ã€‚" msgid "Pipeline|Retry pipeline" -msgstr "" +msgstr "é‡è¯•æµæ°´çº¿" msgid "Pipeline|Retry pipeline #%{pipelineId}?" -msgstr "" +msgstr "é‡è¯•æµæ°´çº¿ï¼ƒ%{pipelineId}å—?" msgid "Pipeline|Stop pipeline" -msgstr "" +msgstr "åœæ¢æµæ°´çº¿" msgid "Pipeline|Stop pipeline #%{pipelineId}?" -msgstr "" +msgstr "åœæ¢æµæ°´çº¿ï¼ƒ%{pipelineId}å—?" msgid "Pipeline|You’re about to retry pipeline %{pipelineId}." -msgstr "" +msgstr "å³å°†é‡è¯•æµæ°´çº¿ %{pipelineId}。" msgid "Pipeline|You’re about to stop pipeline %{pipelineId}." -msgstr "" +msgstr "å³å°†åœæ¢æµæ°´çº¿ %{pipelineId}。" msgid "Pipeline|all" msgstr "所有" @@ -2563,20 +3162,29 @@ msgstr "于阶段" msgid "Pipeline|with stages" msgstr "于阶段" -msgid "Play" +msgid "PlantUML" msgstr "" +msgid "Play" +msgstr "è¿è¡Œ" + msgid "Please <a href=%{link_to_billing} target=\"_blank\" rel=\"noopener noreferrer\">enable billing for one of your projects to be able to create a Kubernetes cluster</a>, then try again." -msgstr "" +msgstr "请 <a href=%{link_to_billing} target=\"_blank\" rel=\"noopener noreferrer\">为æŸä¸ªé¡¹ç›®å¯ç”¨è®¡è´¹åŠŸèƒ½ï¼Œä»¥ä¾¿èƒ½å¤Ÿåˆ›å»ºKubernetes群集</a>,然åŽé‡è¯•ã€‚" msgid "Please solve the reCAPTCHA" msgstr "请填写验è¯ç 。" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "连接代ç 仓库ä¸ï¼Œè¯·ç¨å€™ã€‚å¯åœ¨ä»»æ„时刻刷新以获å–当å‰çŠ¶æ€ã€‚" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "导入代ç 仓库ä¸ï¼Œè¯·ç¨å€™ã€‚å¯åœ¨ä»»æ„时刻刷新以获å–当å‰çŠ¶æ€ã€‚" + msgid "Preferences" msgstr "å好设置" msgid "Primary" -msgstr "" +msgstr "主è¦" msgid "Private - Project access must be granted explicitly to each user." msgstr "ç§äºº - å¿…é¡»å‘æ¯ä¸ªç”¨æˆ·æ˜Žç¡®æŽˆäºˆé¡¹ç›®è®¿é—®æƒé™ã€‚" @@ -2585,7 +3193,7 @@ msgid "Private - The group and its projects can only be viewed by members." msgstr "ç§äºº - 群组åŠå…¶é¡¹ç›®åªèƒ½ç”±æˆå‘˜æŸ¥çœ‹ã€‚" msgid "Private projects can be created in your personal namespace with:" -msgstr "" +msgstr "ç§æœ‰é¡¹ç›®å¯ä»¥åœ¨ä¸ªäººå称空间ä¸åˆ›å»ºï¼š" msgid "Profile" msgstr "用户信æ¯" @@ -2626,9 +3234,12 @@ msgstr "您的å¸æˆ·ç›®å‰æ˜¯è¿™äº›ç¾¤ç»„的所有者:" msgid "Profiles|your account" msgstr "您的å¸æˆ·" -msgid "Programming languages used in this repository" +msgid "Profiling - Performance bar" msgstr "" +msgid "Programming languages used in this repository" +msgstr "当å‰ä»£ç 仓库ä¸ä½¿ç”¨çš„编程è¯è¨€" + msgid "Project '%{project_name}' is in the process of being deleted." msgstr "项目 “%{project_name}†æ£åœ¨è¢«åˆ 除。" @@ -2645,13 +3256,10 @@ msgid "Project access must be granted explicitly to each user." msgstr "项目访问æƒé™å¿…须明确授æƒç»™æ¯ä¸ªç”¨æˆ·ã€‚" msgid "Project avatar" -msgstr "" +msgstr "项目头åƒ" msgid "Project avatar in repository: %{link}" -msgstr "" - -msgid "Project cache successfully reset." -msgstr "" +msgstr "项目头åƒåœ¨ä»“库ä¸ï¼š%{link}" msgid "Project details" msgstr "项目详情" @@ -2672,19 +3280,19 @@ msgid "ProjectActivityRSS|Subscribe" msgstr "订阅" msgid "ProjectCreationLevel|Allowed to create projects" -msgstr "" +msgstr "å…许创建项目" msgid "ProjectCreationLevel|Default project creation protection" -msgstr "" +msgstr "默认项目创建ä¿æŠ¤" msgid "ProjectCreationLevel|Developers + Masters" -msgstr "" +msgstr "Developers + Masters" msgid "ProjectCreationLevel|Masters" -msgstr "" +msgstr "Masters" msgid "ProjectCreationLevel|No one" -msgstr "" +msgstr "ç¦æ¢" msgid "ProjectFeature|Disabled" msgstr "åœç”¨" @@ -2711,7 +3319,7 @@ msgid "ProjectSettings|Contact an admin to change this setting." msgstr "è”系管ç†å‘˜æ›´æ”¹æ¤è®¾ç½®ã€‚" msgid "ProjectSettings|Only signed commits can be pushed to this repository." -msgstr "åªæœ‰å·²ç¾ç½²æ交æ‰å¯ä»¥æŽ¨é€åˆ°æ¤å˜å‚¨åº“。" +msgstr "åªæœ‰å·²ç¾ç½²æ交æ‰å¯ä»¥æŽ¨é€åˆ°æ¤ä»“库。" msgid "ProjectSettings|This setting is applied on the server level and can be overridden by an admin." msgstr "æ¤è®¾ç½®å·²åº”用于æœåŠ¡å™¨çº§åˆ«ï¼Œå¯ç”±ç®¡ç†å‘˜è¦†ç›–。" @@ -2723,7 +3331,7 @@ msgid "ProjectSettings|This setting will be applied to all projects unless overr msgstr "æ¤è®¾ç½®å°†åº”用于所有项目,除éžè¢«ç®¡ç†å‘˜è¦†ç›–。" msgid "ProjectSettings|Users can only push commits to this repository that were committed with one of their own verified emails." -msgstr "用户åªèƒ½é€šè¿‡è‡ªå·±å·²éªŒè¯çš„电å邮件地å€å°†æ交到æ¤å˜å‚¨åº“ä¸ã€‚" +msgstr "用户åªèƒ½é€šè¿‡è‡ªå·±å·²éªŒè¯çš„电å邮件地å€å°†æ交到æ¤ä»“库ä¸ã€‚" msgid "Projects" msgstr "项目" @@ -2749,68 +3357,92 @@ msgstr "对ä¸èµ·ï¼Œæ²¡æœ‰æœç´¢åˆ°ç¬¦åˆæ¡ä»¶çš„项目" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "æ¤åŠŸèƒ½éœ€è¦æµè§ˆå™¨æ”¯æŒ localStorage" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "找到%{exporters} åŠ %{metrics}" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "<p class=\"text-tertiary\">æ— <a href=\"%{docsUrl}\">å¸¸ç”¨æŒ‡æ ‡</a> </p>" + msgid "PrometheusService|Active" -msgstr "" +msgstr "å¯ç”¨" msgid "PrometheusService|Auto configuration" -msgstr "" +msgstr "自动é…ç½®" msgid "PrometheusService|Automatically deploy and configure Prometheus on your clusters to monitor your project’s environments" -msgstr "" +msgstr "自动部署和é…ç½®Prometheus到集群æ¥ç›‘测项目的环境" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "默认情况下,Prometheus ä¾¦å¬ â€˜http://localhost:9090’。ä¸å»ºè®®æ›´æ”¹é»˜è®¤åœ°å€å’Œç«¯å£ï¼Œå› 为这å¯èƒ½ä¼šå½±å“或冲çªåœ¨ GitLab æœåŠ¡å™¨ä¸Šè¿è¡Œçš„其他æœåŠ¡ã€‚" +msgid "PrometheusService|Common metrics" +msgstr "å¸¸ç”¨æŒ‡æ ‡" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "å¸¸ç”¨æŒ‡æ ‡ä¼šæ ¹æ®åº”ç”¨å¹¿æ³›çš„å¯¼å‡ºå™¨æŒ‡æ ‡åº“è‡ªåŠ¨ç›‘æŽ§ã€‚" + +msgid "PrometheusService|Custom metrics" +msgstr "è‡ªå®šä¹‰æŒ‡æ ‡" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "查找和é…ç½®æŒ‡æ ‡..." +msgid "PrometheusService|Finding custom metrics..." +msgstr "æŸ¥æ‰¾è‡ªå®šä¹‰æŒ‡æ ‡..." + msgid "PrometheusService|Install Prometheus on clusters" -msgstr "" +msgstr "在群集上安装Prometheus" msgid "PrometheusService|Manage clusters" -msgstr "" +msgstr "管ç†é›†ç¾¤" msgid "PrometheusService|Manual configuration" -msgstr "" +msgstr "手动é…ç½®" msgid "PrometheusService|Metrics" msgstr "æŒ‡æ ‡" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "æŒ‡æ ‡ä¼šæ ¹æ®æŒ‡å®šçš„æŒ‡æ ‡åº“è‡ªåŠ¨é…置和监控。" - msgid "PrometheusService|Missing environment variable" msgstr "没有环境å˜é‡" -msgid "PrometheusService|Monitored" -msgstr "监测" - msgid "PrometheusService|More information" msgstr "更多的信æ¯" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." -msgstr "æ²¡æœ‰ç›‘æµ‹æŒ‡æ ‡ã€‚è¦å¼€å§‹ç›‘测,请部署到环境ä¸ã€‚" +msgid "PrometheusService|New metric" +msgstr "æ–°å»ºæŒ‡æ ‡" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" msgstr "Prometheus API 地å€ï¼Œä¾‹å¦‚ http://prometheus.example.com/" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" -msgstr "" +msgstr "Prometheusæ£åœ¨è¢«ç¾¤é›†è‡ªåŠ¨ç®¡ç†" + +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "在首次部署到æŸçŽ¯å¢ƒä¹‹åŽ, è¿™äº›æŒ‡æ ‡æ‰ä¼šè¢«ç›‘控" msgid "PrometheusService|Time-series monitoring service" -msgstr "" +msgstr "时间åºåˆ—监控æœåŠ¡" msgid "PrometheusService|To enable manual configuration, uninstall Prometheus from your clusters" -msgstr "" +msgstr "如需å¯ç”¨æ‰‹åŠ¨é…置,请从群集ä¸å¸è½½Prometheus" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" -msgstr "" +msgstr "如需在群集上å¯ç”¨Prometheus的安装,请å–消以下的手动é…ç½®" + +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "ç‰å¾…é¦–æ¬¡éƒ¨ç½²åˆ°çŽ¯å¢ƒä»¥æŸ¥æ‰¾å¸¸ç”¨æŒ‡æ ‡" -msgid "PrometheusService|View environments" -msgstr "查看环境" +msgid "Promote" +msgstr "å‡çº§" + +msgid "Promote to Group Label" +msgstr "å‡çº§åˆ°ç¾¤ç»„æ ‡è®°" + +msgid "Promote to Group Milestone" +msgstr "å‡çº§åˆ°ç¾¤ç»„里程碑" msgid "Protip:" -msgstr "" +msgstr "专家æ示:" msgid "Public - The group and any public projects can be viewed without any authentication." msgstr "公开 - 群组和任何公共项目å¯ä»¥åœ¨æ²¡æœ‰ä»»ä½•èº«ä»½éªŒè¯çš„情况下查看。" @@ -2825,23 +3457,26 @@ msgid "Push events" msgstr "推é€äº‹ä»¶" msgid "Push project from command line" -msgstr "" +msgstr "从命令行推é€é¡¹ç›®" msgid "Push to create a project" -msgstr "" +msgstr "通过推é€åˆ›å»ºé¡¹ç›®" msgid "PushRule|Committer restriction" msgstr "æ交é™åˆ¶" msgid "Quick actions can be used in the issues description and comment boxes." -msgstr "" +msgstr "快速æ“作å¯ç”¨äºŽè®®é¢˜æ述和评论框。" msgid "Read more" -msgstr "了解更多" +msgstr "进一æ¥äº†è§£" msgid "Readme" msgstr "自述文件" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "分支" @@ -2849,10 +3484,10 @@ msgid "RefSwitcher|Tags" msgstr "æ ‡ç¾" msgid "Reference:" -msgstr "" +msgstr "引用:" msgid "Register / Sign In" -msgstr "" +msgstr "注册/登录" msgid "Registry" msgstr "注册表" @@ -2875,25 +3510,40 @@ msgstr "相关的åˆå¹¶è¯·æ±‚" msgid "Related Merged Requests" msgstr "相关已åˆå¹¶çš„åˆå¹¶è¯·æ±‚" +msgid "Related merge requests" +msgstr "相关åˆå¹¶è¯·æ±‚" + msgid "Remind later" msgstr "ç¨åŽæ醒" msgid "Remove" -msgstr "" +msgstr "åˆ é™¤" msgid "Remove avatar" -msgstr "" +msgstr "åˆ é™¤å¤´åƒ" msgid "Remove project" msgstr "åˆ é™¤é¡¹ç›®" msgid "Repair authentication" -msgstr "" +msgstr "ä¿®å¤è®¤è¯" + +msgid "Repo by URL" +msgstr "从URL导入仓库" msgid "Repository" -msgstr "å˜å‚¨åº“" +msgstr "仓库" msgid "Repository has no locks." +msgstr "当å‰ä»“åº“æ— åŠ é”文件。" + +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" msgstr "" msgid "Request Access" @@ -2909,11 +3559,14 @@ msgid "Reset runners registration token" msgstr "é‡ç½® Runner 注册令牌" msgid "Resolve discussion" -msgstr "" +msgstr "解决讨论" + +msgid "Response" +msgstr "å“应" msgid "Reveal value" msgid_plural "Reveal values" -msgstr[0] "" +msgstr[0] "显示值" msgid "Revert this commit" msgstr "还原æ¤æ交" @@ -2921,7 +3574,34 @@ msgstr "还原æ¤æ交" msgid "Revert this merge request" msgstr "还原æ¤åˆå¹¶è¯·æ±‚" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "检查" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" +msgstr "路线图" + +msgid "Run CI/CD pipelines for external repositories" +msgstr "使用外部仓库的CI/CDæµæ°´çº¿" + +msgid "Runners" +msgstr "Runner" + +msgid "Running" +msgstr "è¿è¡Œä¸" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." msgstr "" msgid "SSH Keys" @@ -2934,11 +3614,14 @@ msgid "Save pipeline schedule" msgstr "ä¿å˜æµæ°´çº¿è®¡åˆ’" msgid "Save variables" -msgstr "" +msgstr "ä¿å˜å˜é‡" msgid "Schedule a new pipeline" msgstr "新建æµæ°´çº¿è®¡åˆ’" +msgid "Scheduled" +msgstr "å·²åŠ å…¥æ—¥ç¨‹" + msgid "Schedules" msgstr "日程" @@ -2948,17 +3631,20 @@ msgstr "æµæ°´çº¿è®¡åˆ’" msgid "Scoped issue boards" msgstr "议题看æ¿èŒƒå›´" +msgid "Search" +msgstr "æœç´¢" + msgid "Search branches and tags" msgstr "æœç´¢åˆ†æ”¯å’Œæ ‡ç¾" msgid "Search milestones" -msgstr "" +msgstr "æœç´¢é‡Œç¨‹ç¢‘" msgid "Search project" -msgstr "" +msgstr "æœç´¢é¡¹ç›®" msgid "Search users" -msgstr "" +msgstr "æœç´¢ç”¨æˆ·" msgid "Seconds before reseting failure information" msgstr "é‡ç½®å¤±è´¥ä¿¡æ¯ç‰å¾…时间(秒)" @@ -2967,10 +3653,10 @@ msgid "Seconds to wait for a storage access attempt" msgstr "ç‰å¾…å˜å‚¨è®¿é—®å°è¯•æ—¶é—´(秒)" msgid "Secret variables" -msgstr "" +msgstr "åŠ å¯†å˜é‡" msgid "Security report" -msgstr "" +msgstr "安全报告" msgid "Select Archive Format" msgstr "é€‰æ‹©ä¸‹è½½æ ¼å¼" @@ -2979,22 +3665,22 @@ msgid "Select a timezone" msgstr "选择时区" msgid "Select an existing Kubernetes cluster or create a new one" -msgstr "" +msgstr "选择一个既有的Kubernetes集群或者创建一个新的" msgid "Select assignee" -msgstr "" +msgstr "选择指派人" msgid "Select branch/tag" -msgstr "" +msgstr "选择分支/æ ‡ç¾" msgid "Select target branch" msgstr "é€‰æ‹©ç›®æ ‡åˆ†æ”¯" msgid "Selective synchronization" -msgstr "" +msgstr "选择性åŒæ¥" msgid "Send email" -msgstr "" +msgstr "å‘é€ç”µå邮件" msgid "Sep" msgstr "ä¹" @@ -3003,23 +3689,41 @@ msgid "September" msgstr "ä¹æœˆ" msgid "Server version" -msgstr "" +msgstr "æœåŠ¡å™¨ç‰ˆæœ¬" msgid "Service Templates" msgstr "æœåŠ¡æ¨¡æ¿" msgid "Service URL" -msgstr "" +msgstr "æœåŠ¡URL" + +msgid "Session expiration, projects limit and attachment size." +msgstr "会è¯æœ‰æ•ˆæœŸï¼Œé¡¹ç›®é™åˆ¶åŠé™„件大å°ã€‚" msgid "Set a password on your account to pull or push via %{protocol}." msgstr "为账å·åˆ›å»ºä¸€ä¸ªç”¨äºŽæŽ¨é€æˆ–拉å–çš„ %{protocol} 密ç 。" -msgid "Set up CI/CD" +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "设定缺çœåŠå—é™å¯è§æ€§çº§åˆ«ã€‚é…置导入æ¥æºåŠgit访问å议。" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." msgstr "" +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "设定用户登录的æ¡ä»¶ã€‚å¯ç”¨å¼ºåˆ¶åŒé‡è®¤è¯ã€‚" + +msgid "Set up CI/CD" +msgstr "é…ç½® CI/CD" + msgid "Set up Koding" msgstr "设置 Koding" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "设置密ç " @@ -3027,19 +3731,22 @@ msgid "Settings" msgstr "设置" msgid "Setup a specific Runner automatically" +msgstr "自动创建独享Runner" + +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" msgstr "" msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." -msgstr "" +msgstr "通过é‡ç½®æ¤å‘½å空间的æµæ°´çº¿åˆ†é’Ÿæ•°ï¼Œå½“å‰ä½¿ç”¨çš„分钟数将被归零。" msgid "SharedRunnersMinutesSettings|Reset pipeline minutes" -msgstr "" +msgstr "é‡ç½®æµæ°´çº¿åˆ†é’Ÿæ•°" msgid "SharedRunnersMinutesSettings|Reset used pipeline minutes" -msgstr "" +msgstr "é‡ç½®å·²ç”¨æµæ°´çº¿åˆ†é’Ÿæ•°" msgid "Show command" -msgstr "" +msgstr "显示命令" msgid "Show parent pages" msgstr "查看上级页é¢" @@ -3063,29 +3770,35 @@ msgstr "æ— " msgid "Sidebar|Weight" msgstr "æƒé‡" +msgid "Sign-in restrictions" +msgstr "登录é™åˆ¶" + +msgid "Sign-up restrictions" +msgstr "注册é™åˆ¶" + +msgid "Size and domain settings for static websites" +msgstr "é™æ€ç½‘站的大å°å’ŒåŸŸè®¾ç½®" + +msgid "Slack application" +msgstr "" + msgid "Snippets" msgstr "代ç 片段" msgid "Something went wrong on our end" -msgstr "" +msgstr "出错了,抱æ‰ã€‚" msgid "Something went wrong on our end." -msgstr "å‘生了错误。" - -msgid "Something went wrong trying to change the confidentiality of this issue" -msgstr "" - -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" -msgstr "è¯•å›¾æ”¹å˜ ${this.issuableDisplayName} çš„é”定状æ€æ—¶å‡ºé”™äº†" +msgstr "出错了,抱æ‰ã€‚" msgid "Something went wrong when toggling the button" -msgstr "" +msgstr "点击按钮时出错" -msgid "Something went wrong while closing the %{issuable}. Please try again later" -msgstr "" +msgid "Something went wrong while fetching Dependency Scanning." +msgstr "读å–ä¾èµ–扫æ结果时å‘生错误。" msgid "Something went wrong while fetching SAST." -msgstr "" +msgstr "读å–SAST 时出错。" msgid "Something went wrong while fetching the projects." msgstr "拉å–项目时å‘生错误。" @@ -3093,14 +3806,8 @@ msgstr "拉å–项目时å‘生错误。" msgid "Something went wrong while fetching the registry list." msgstr "拉å–注册表列表时å‘生错误。" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" -msgstr "" - -msgid "Something went wrong while resolving this discussion. Please try again." -msgstr "" - msgid "Something went wrong. Please try again." -msgstr "" +msgstr "出现错误。请é‡è¯•ã€‚" msgid "Sort by" msgstr "排åº" @@ -3124,13 +3831,13 @@ msgid "SortOptions|Due soon" msgstr "å³å°†æˆªæ¢" msgid "SortOptions|Label priority" -msgstr "æ ‡ç¾ä¼˜å…ˆ" +msgstr "æ ‡è®°ä¼˜å…ˆ" msgid "SortOptions|Largest group" msgstr "最大群组" msgid "SortOptions|Largest repository" -msgstr "最大å˜å‚¨åº“" +msgstr "最大仓库" msgid "SortOptions|Last created" msgstr "最近创建" @@ -3205,7 +3912,7 @@ msgid "Source" msgstr "æº" msgid "Source (branch or tag)" -msgstr "" +msgstr "æº(åˆ†æ”¯æˆ–æ ‡ç¾)" msgid "Source code" msgstr "æºä»£ç " @@ -3216,12 +3923,21 @@ msgstr "æºä¸å¯ç”¨" msgid "Spam Logs" msgstr "垃圾信æ¯æ—¥å¿—" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "在 Runner 设置时指定以下 URL:" msgid "StarProject|Star" msgstr "æ˜Ÿæ ‡" +msgid "Starred Projects" +msgstr "å·²æ˜Ÿæ ‡é¡¹ç›®" + +msgid "Starred Projects' Activity" +msgstr "å·²æ˜Ÿæ ‡é¡¹ç›®çš„æ´»åŠ¨" + msgid "Starred projects" msgstr "å·²æ˜Ÿæ ‡é¡¹ç›®" @@ -3231,11 +3947,20 @@ msgstr "ç”±æ¤æ›´æ”¹ %{new_merge_request}" msgid "Start the Runner!" msgstr "å¯åŠ¨ Runner!" +msgid "Started" +msgstr "å·²å¯åŠ¨" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "状æ€" + msgid "Stopped" msgstr "å·²åœæ¢" msgid "Storage" -msgstr "" +msgstr "å˜å‚¨" msgid "Subgroups" msgstr "å群组" @@ -3243,12 +3968,18 @@ msgstr "å群组" msgid "Switch branch/tag" msgstr "切æ¢åˆ†æ”¯/æ ‡ç¾" +msgid "System" +msgstr "系统" + msgid "System Hooks" msgstr "系统钩å" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" -msgstr[0] "" +msgstr[0] "æ ‡ç¾(%{tag_count})" msgid "Tags" msgstr "æ ‡ç¾" @@ -3284,10 +4015,10 @@ msgid "TagsPage|Filter by tag name" msgstr "æ ¹æ®æ ‡ç¾å称过滤" msgid "TagsPage|New Tag" -msgstr "æ–°æ ‡ç¾" +msgstr "æ–°å»ºæ ‡ç¾" msgid "TagsPage|New tag" -msgstr "æ–°æ ‡ç¾" +msgstr "æ–°å»ºæ ‡ç¾" msgid "TagsPage|Optionally, add a message to the tag." msgstr "(å¯é€‰)æ·»åŠ ä¸€æ¡æ¶ˆæ¯åˆ°æ ‡ç¾ã€‚" @@ -3308,7 +4039,7 @@ msgid "TagsPage|Tags" msgstr "æ ‡ç¾" msgid "TagsPage|Tags give the ability to mark specific points in history as being important" -msgstr "æ ‡ç¾å…·æœ‰åœ¨æ交历å²ä¸Šæ ‡è®°ç‰¹å®šæ交的能力" +msgstr "ä½¿ç”¨æ ‡ç¾ï¼Œå¯ä»¥æ ‡è®°æ交历å²ä¸Šçš„特定点为é‡è¦æ交" msgid "TagsPage|This tag has no release notes." msgstr "æ¤æ ‡ç¾æ²¡æœ‰å‘行说明。" @@ -3325,6 +4056,9 @@ msgstr "å·²ä¿æŠ¤" msgid "Target Branch" msgstr "ç›®æ ‡åˆ†æ”¯" +msgid "Target branch" +msgstr "ç›®æ ‡åˆ†æ”¯" + msgid "Team" msgstr "团队" @@ -3332,13 +4066,16 @@ msgid "Thanks! Don't show me this again" msgstr "谢谢 ! 请ä¸è¦å†æ˜¾ç¤º" msgid "The Advanced Global Search in GitLab is a powerful search service that saves you time. Instead of creating duplicate code and wasting time, you can now search for code within other teams that can help your own project." -msgstr "GitLab ä¸çš„高级全局æœç´¢åŠŸèƒ½æ˜¯éžå¸¸å¼ºå¤§çš„æœç´¢æœåŠ¡ã€‚您å¯ä»¥æœç´¢å…¶ä»–团队的代ç 以帮助您完善自己项目ä¸çš„代ç 。从而é¿å…创建é‡å¤çš„代ç 和浪费时间。" +msgstr "GitLab ä¸çš„高级全局æœç´¢æ˜¯ä¸€é¡¹åŠŸèƒ½å¼ºå¤§çš„æœç´¢æœåŠ¡ï¼Œæœ‰åŠ©äºŽèŠ‚约项目开å‘时间。您å¯ä»¥æœç´¢å…¶ä»–团队的代ç ä¸å¯¹è‡ªå·±é¡¹ç›®æœ‰å¸®åŠ©çš„éƒ¨åˆ†åŠ ä»¥åˆ©ç”¨ï¼Œä»Žè€Œé¿å…创建é‡å¤ä»£ç 和浪费时间。" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project" -msgstr "" +msgstr "议题跟踪用于管ç†éœ€è¦æ”¹è¿›æˆ–者解决的问题" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." -msgstr "" +msgstr "议题跟踪用于管ç†éœ€è¦æ”¹è¿›æˆ–者解决的问题。请注册或登录åŽä¸ºå½“å‰é¡¹ç›®åˆ›å»ºè®®é¢˜ã€‚" + +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "在需è¦ç›¸äº’ TLS 与外部授æƒæœåŠ¡é€šä¿¡æ—¶ä½¿ç”¨çš„ X509 è¯ä¹¦ã€‚如果ä¿ç•™ä¸ºç©º, 则在访问 HTTPS æ—¶ä»ç„¶éªŒè¯æœåŠ¡å™¨è¯ä¹¦ã€‚" msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "ç¼–ç 阶段概述了从第一次æ交到创建åˆå¹¶è¯·æ±‚的时间。创建第一个åˆå¹¶è¯·æ±‚åŽï¼Œæ•°æ®å°†è‡ªåŠ¨æ·»åŠ 到æ¤å¤„。" @@ -3346,14 +4083,20 @@ msgstr "ç¼–ç 阶段概述了从第一次æ交到创建åˆå¹¶è¯·æ±‚的时间。 msgid "The collection of events added to the data gathered for that stage." msgstr "与该阶段相关的事件集åˆã€‚" +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "该连接将在 %{timeout}åŽè¶…时。对于需è¦é•¿äºŽè¯¥æ—¶é—´æ‰èƒ½å¯¼å…¥çš„仓库,请使用克隆/推é€ç»„åˆã€‚" + msgid "The fork relationship has been removed." msgstr "æ´¾ç”Ÿå…³ç³»å·²è¢«åˆ é™¤ã€‚" +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "该导入过程将在 %{timeout}åŽè¶…时。对于需è¦é•¿äºŽè¯¥æ—¶é—´æ‰èƒ½å¯¼å…¥çš„仓库,请使用克隆/推é€ç»„åˆã€‚" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "è®®é¢˜é˜¶æ®µæ¦‚è¿°äº†ä»Žåˆ›å»ºè®®é¢˜åˆ°å°†è®®é¢˜æ·»åŠ åˆ°é‡Œç¨‹ç¢‘æˆ–è®®é¢˜çœ‹æ¿æ‰€èŠ±è´¹çš„时间。创建第一个议题åŽï¼Œæ•°æ®å°†è‡ªåŠ¨æ·»åŠ 到æ¤å¤„.。" msgid "The maximum file size allowed is 200KB." -msgstr "" +msgstr "文件大å°é™åˆ¶ä¸º 200KB。" msgid "The number of attempts GitLab will make to access a storage." msgstr "GitLab 访问å˜å‚¨çš„次数。" @@ -3361,12 +4104,18 @@ msgstr "GitLab 访问å˜å‚¨çš„次数。" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "GitLab 将完全阻æ¢è®¿é—®å˜å‚¨çš„故障次数。å¯ä»¥åœ¨ç®¡ç†ç•Œé¢%{link_to_health_page}或使用%{api_documentation_link}é‡ç½®æ•…障次数。" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "解密ç§é’¥æ‰€éœ€çš„密ç çŸè¯ã€‚该项为å¯é€‰é¡¹, å¹¶ä¸”å†…å®¹è¢«åŠ å¯†å˜å‚¨ã€‚" + msgid "The phase of the development lifecycle." msgstr "项目生命周期ä¸çš„å„个阶段。" msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "è®¡åˆ’é˜¶æ®µæ¦‚è¿°äº†ä»Žè®®é¢˜æ·»åŠ åˆ°æ—¥ç¨‹åˆ°æŽ¨é€é¦–次æ交的时间。当首次推é€æ交åŽï¼Œæ•°æ®å°†è‡ªåŠ¨æ·»åŠ 到æ¤å¤„。" +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "æ供客户端è¯ä¹¦æ—¶ä½¿ç”¨çš„ç§é’¥ã€‚è¯¥å€¼è¢«åŠ å¯†å˜å‚¨ã€‚" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "生产阶段概述了从创建一个议题到将代ç 部署到生产环境的总时间。当完æˆæƒ³æ³•åˆ°éƒ¨ç½²ç”Ÿäº§çš„循环,数æ®å°†è‡ªåŠ¨æ·»åŠ 到æ¤å¤„。" @@ -3377,16 +4126,19 @@ msgid "The project can be accessed without any authentication." msgstr "该项目å…许任何人访问。" msgid "The repository for this project does not exist." -msgstr "æ¤é¡¹ç›®çš„å˜å‚¨åº“ä¸å˜åœ¨ã€‚" +msgstr "æ¤é¡¹ç›®çš„仓库ä¸å˜åœ¨ã€‚" msgid "The repository for this project is empty" -msgstr "" +msgstr "该项目的仓库是空的" + +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "该仓库必须å¯é€šè¿‡<code>http://</code>, <code>https://</code> 或 <code>git://</code>进行访问。" msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "评审阶段概述了从创建åˆå¹¶è¯·æ±‚到被åˆå¹¶çš„时间。当创建第一个åˆå¹¶è¯·æ±‚åŽï¼Œæ•°æ®å°†è‡ªåŠ¨æ·»åŠ 到æ¤å¤„。" msgid "The roadmap shows the progress of your epics along a timeline" -msgstr "" +msgstr "路线图显示了å²è¯—故事沿ç€æ—¶é—´çº¿çš„进展情况" msgid "The staging stage shows the time between merging the MR and deploying code to the production environment. The data will be automatically added once you deploy to production for the first time." msgstr "预å‘布阶段概述了从åˆå¹¶è¯·æ±‚被åˆå¹¶åˆ°éƒ¨ç½²è‡³ç”Ÿäº§çŽ¯å¢ƒçš„总时间。首次部署到生产环境åŽï¼Œæ•°æ®å°†è‡ªåŠ¨æ·»åŠ 到æ¤å¤„。" @@ -3401,7 +4153,7 @@ msgid "The time in seconds GitLab will try to access storage. After this time a msgstr "GitLab å°†å°è¯•è®¿é—®å˜å‚¨çš„时间(秒)。在æ¤æ—¶é—´ä¹‹åŽå°†å¼•å‘超时错误。" msgid "The time in seconds between storage checks. When a previous check did complete yet, GitLab will skip a check." -msgstr "" +msgstr "å˜å‚¨æ£€æŸ¥ä¹‹é—´çš„时间间隔(秒)。如上次检查尚未完æˆï¼ŒGitLab将跳过当å‰æ£€æŸ¥ã€‚" msgid "The time taken by each data entry gathered by that stage." msgstr "该阶段æ¯æ¡æ•°æ®æ‰€èŠ±çš„时间" @@ -3410,46 +4162,49 @@ msgid "The value lying at the midpoint of a series of observed values. E.g., bet msgstr "ä¸ä½æ•°æ˜¯ä¸€ä¸ªæ•°åˆ—ä¸æœ€ä¸é—´çš„值。例如在 3ã€5ã€9 之间,ä¸ä½æ•°æ˜¯ 5。在 3ã€5ã€7ã€8 之间,ä¸ä½æ•°æ˜¯ (5 + 7)/ 2 = 6。" msgid "There are no issues to show" -msgstr "" +msgstr "当å‰æ— 议题" msgid "There are no merge requests to show" -msgstr "" +msgstr "当å‰æ— åˆå¹¶è¯·æ±‚" msgid "There are problems accessing Git storage: " msgstr "访问 Git å˜å‚¨æ—¶å‡ºçŽ°é—®é¢˜ï¼š" +msgid "There was an error loading results" +msgstr "åŠ è½½ç»“æžœæ—¶å‡ºé”™" + msgid "There was an error loading users activity calendar." -msgstr "" +msgstr "åŠ è½½ç”¨æˆ·æ´»åŠ¨æ—¥åŽ†æ—¶å‡ºé”™ã€‚" msgid "There was an error saving your notification settings." -msgstr "" +msgstr "ä¿å˜é€šçŸ¥è®¾ç½®æ—¶å‘生错误。" msgid "There was an error subscribing to this label." -msgstr "" +msgstr "订阅æ¤æ ‡è®°æ—¶å‡ºé”™ã€‚" msgid "There was an error when reseting email token." -msgstr "" +msgstr "é‡ç½®ç”µå邮件令牌时出错。" msgid "There was an error when subscribing to this label." -msgstr "" +msgstr "订阅æ¤æ ‡è®°æ—¶å‡ºé”™ã€‚" msgid "There was an error when unsubscribing from this label." -msgstr "" +msgstr "å–消订阅æ¤æ ‡è®°æ—¶å‡ºé”™ã€‚" msgid "This board\\'s scope is reduced" msgstr "这个看æ¿çš„范围缩å°äº†" msgid "This directory" -msgstr "" +msgstr "当å‰ç›®å½•" msgid "This is a confidential issue." msgstr "这是一个机密议题。" msgid "This is the author's first Merge Request to this project." -msgstr "这是作者为项目贡献的第一个åˆå¹¶è¯·æ±‚。" +msgstr "这是作者为当å‰é¡¹ç›®è´¡çŒ®çš„第一个åˆå¹¶è¯·æ±‚。" msgid "This issue is confidential" -msgstr "" +msgstr "当å‰é—®é¢˜ä¸ºç§å¯†é—®é¢˜" msgid "This issue is confidential and locked." msgstr "这个是机密且已é”定的议题。" @@ -3458,37 +4213,40 @@ msgid "This issue is locked." msgstr "æ¤è®®é¢˜å·²é”定。" msgid "This job depends on a user to trigger its process. Often they are used to deploy code to production environments" -msgstr "" +msgstr "当å‰ä½œä¸šéœ€è¦ç”¨æˆ·è§¦å‘其过程。æ¤ç±»ä½œä¸šé€šå¸¸ç”¨äºŽå°†ä»£ç 部署到生产环境" msgid "This job depends on upstream jobs that need to succeed in order for this job to be triggered" -msgstr "" +msgstr "当å‰ä½œä¸šéœ€åœ¨ä¸Šçº§ä½œä¸šæˆåŠŸåŽæ‰å¯è¢«å¯åŠ¨ã€‚" msgid "This job has not been triggered yet" -msgstr "" +msgstr "作业还未被触å‘" msgid "This job has not started yet" -msgstr "" +msgstr "作业还未开始" msgid "This job is in pending state and is waiting to be picked by a runner" -msgstr "" +msgstr "作业挂起ä¸ï¼Œç‰å¾…进入队列" msgid "This job requires a manual action" -msgstr "" +msgstr "作业需手工æ“作" msgid "This means you can not push code until you create an empty repository or import existing one." -msgstr "在创建一个空的å˜å‚¨åº“或导入现有å˜å‚¨åº“之å‰ï¼Œå°†æ— 法推é€ä»£ç 。" +msgstr "在创建一个空的仓库或导入现有仓库之å‰ï¼Œå°†æ— 法推é€ä»£ç 。" msgid "This merge request is locked." msgstr "æ¤åˆå¹¶è¯·æ±‚å·²é”定。" msgid "This page is unavailable because you are not allowed to read information across multiple projects." -msgstr "" +msgstr "æ¤é¡µé¢ä¸å¯ç”¨ï¼Œæ‚¨æ— æƒè·¨é¡¹ç›®é˜…读相关信æ¯ã€‚" msgid "This project" -msgstr "" +msgstr "当å‰é¡¹ç›®" msgid "This repository" -msgstr "" +msgstr "当å‰ä»“库" + +msgid "This will delete the custom metric, Are you sure?" +msgstr "æ¤æ“ä½œå°†åˆ é™¤è‡ªå®šä¹‰æŒ‡æ ‡ï¼Œç¡®å®šç»§ç»å—?" msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "这些电å邮件自动生æˆä¸ºé—®é¢˜(评论生æˆä¸ºç”µå邮件对è¯)在这里列出。" @@ -3502,20 +4260,26 @@ msgstr "开始进行编ç å‰çš„时间" msgid "Time between merge request creation and merge/close" msgstr "从创建åˆå¹¶è¯·æ±‚到被åˆå¹¶æˆ–å…³é—的时间" -msgid "Time tracking" +msgid "Time between updates and capacity settings." msgstr "" +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "GitLabç‰å¾…外部æœåŠ¡çš„å“应时间(秒)。当æœåŠ¡æ²¡æœ‰åŠæ—¶å“应时,访问将被拒ç»ã€‚" + +msgid "Time tracking" +msgstr "工时统计" + msgid "Time until first merge request" msgstr "创建第一个åˆå¹¶è¯·æ±‚之å‰çš„时间" msgid "TimeTrackingEstimated|Est" -msgstr "" +msgstr "预计" msgid "TimeTracking|Estimated:" -msgstr "" +msgstr "预计:" msgid "TimeTracking|Spent" -msgstr "" +msgstr "已用:" msgid "Timeago|%s days ago" msgstr " %s 天å‰" @@ -3652,25 +4416,55 @@ msgid "Time|s" msgstr "秒" msgid "Tip:" -msgstr "" +msgstr "æ示:" msgid "Title" msgstr "æ ‡é¢˜" -msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." +msgid "To GitLab" +msgstr "到GitLab" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "å¯ä»¥ä½¿ç”¨ %{personal_access_token_link}连接GitHub仓库。当创建个人访问令牌时,需è¦é€‰æ‹© <code>repo</code> 范围,以显示å¯ä¾›è¿žæŽ¥çš„公共和ç§æœ‰çš„仓库列表。" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "è¦è¿žæŽ¥GitHub仓库,首先需è¦æŽˆæƒGitLab访问列表ä¸çš„GitHub仓库:" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "è¦è¿žæŽ¥SVN仓库,请查看 %{svn_link}。" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "å¯ä»¥ä½¿ç”¨ %{personal_access_token_link}导入GitHub仓库。当创建个人访问令牌时,需è¦é€‰æ‹© <code>repo</code> 范围,以显示å¯å¯¼å…¥çš„公共和ç§æœ‰çš„仓库列表。" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "è¦å¯¼å…¥GitHub仓库,首先需è¦æŽˆæƒGitLab访问列表ä¸çš„GitHub仓库:" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "è¦å¯¼å…¥SVN仓库,请查看 %{svn_link}。" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "è¦ä»…为外部仓库使用CI / CD功能时,请选择</strong>使用外部仓库è¿è¡ŒCI/CD<strong>。" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" msgstr "" +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "如需验è¯GitLab CI设置,请访问当å‰é¡¹ç›®çš„'CI/CD → æµæ°´çº¿',然åŽç‚¹å‡»'CI Lint'按钮。" + +msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." +msgstr "如需查看路线图,请将计划的开始或结æŸæ—¥æœŸæ·»åŠ 到当å‰ç¾¤ç»„或其å组ä¸çš„æŸä¸ªå²è¯—故事。åªæ˜¾ç¤ºè¿‡åŽ»3个月和接下æ¥3个月的å²è¯—故事。" + msgid "Todo" -msgstr "" +msgstr "待办事项" msgid "Toggle sidebar" -msgstr "" +msgstr "切æ¢è¾¹æ " msgid "ToggleButton|Toggle Status: OFF" -msgstr "" +msgstr "切æ¢çŠ¶æ€ï¼šå…³é—" msgid "ToggleButton|Toggle Status: ON" -msgstr "" +msgstr "切æ¢çŠ¶æ€ï¼šå¼€å¯" msgid "Total Time" msgstr "总时间" @@ -3679,46 +4473,40 @@ msgid "Total test time for all commits/merges" msgstr "所有æ交和åˆå¹¶çš„总测试时间" msgid "Total: %{total}" -msgstr "" +msgstr "总计:%{total}" msgid "Track activity with Contribution Analytics." msgstr "跟踪活动与贡献的分æžã€‚" msgid "Track groups of issues that share a theme, across projects and milestones" -msgstr "在项目和里程碑之间跟踪共享主题的议题组" +msgstr "在ä¸åŒé¡¹ç›®å’Œé‡Œç¨‹ç¢‘ä¸è·Ÿè¸ªå…·æœ‰åŒä¸€ä¸»é¢˜çš„议题组" msgid "Track time with quick actions" -msgstr "" +msgstr "使用快æ·æ“作æ¥ç»Ÿè®¡å·¥æ—¶" msgid "Trigger this manual action" -msgstr "" +msgstr "触å‘æ¤æ‰‹åŠ¨æ“作" msgid "Turn on Service Desk" msgstr "打开æœåŠ¡å°" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" -msgstr "" +msgstr "未知的" msgid "Unlock" msgstr "解é”" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "已解é”" msgid "Unresolve discussion" -msgstr "" +msgstr "待解决的讨论" msgid "Unstar" msgstr "å–æ¶ˆæ˜Ÿæ ‡" msgid "Up to date" -msgstr "" +msgstr "已是最新" msgid "Upgrade your plan to activate Advanced Global Search." msgstr "å‡çº§æ‚¨çš„方案以å¯ç”¨é«˜çº§å…¨å±€æœç´¢ã€‚" @@ -3742,11 +4530,17 @@ msgid "Upload file" msgstr "ä¸Šä¼ æ–‡ä»¶" msgid "Upload new avatar" -msgstr "" +msgstr "ä¸Šä¼ æ–°å¤´åƒ" msgid "UploadLink|click to upload" msgstr "ç‚¹å‡»ä¸Šä¼ " +msgid "Upvotes" +msgstr "顶" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "使用æœåŠ¡å°åœ¨GitLab内部通过电å邮件与用户è”系(例如æ供客户支æŒï¼‰" @@ -3756,24 +4550,51 @@ msgstr "在安装过程ä¸ä½¿ç”¨ä»¥ä¸‹æ³¨å†Œä»¤ç‰Œï¼š" msgid "Use your global notification setting" msgstr "使用全局通知设置" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." +msgstr "å˜é‡é€šè¿‡runner作用于环境ä¸ã€‚å¯å°†å˜é‡é™åˆ¶ä¸ºä»…å—ä¿æŠ¤çš„åˆ†æ”¯æˆ–æ ‡ç¾å¯ä»¥è®¿é—®ã€‚å¯ä»¥ä½¿ç”¨å˜é‡æ¥ä¿å˜å¯†ç ã€å¯†é’¥æˆ–任何其他内容。" + +msgid "Various container registry settings." msgstr "" -msgid "View epics list" +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." msgstr "" +msgid "View and edit lines" +msgstr "查看和编辑行" + +msgid "View epics list" +msgstr "查看å²è¯—故事列表" + msgid "View file @ " msgstr "æµè§ˆæ–‡ä»¶ @ " +msgid "View group labels" +msgstr "æŸ¥çœ‹ç¾¤ç»„æ ‡è®°" + msgid "View labels" -msgstr "" +msgstr "æŸ¥çœ‹æ ‡è®°" msgid "View open merge request" msgstr "查看待处ç†çš„åˆå¹¶è¯·æ±‚" +msgid "View project labels" +msgstr "æŸ¥çœ‹é¡¹ç›®æ ‡è®°" + msgid "View replaced file @ " msgstr "查看替æ¢æ–‡ä»¶ @ " +msgid "Visibility and access controls" +msgstr "å¯è§æ€§ä¸Žè®¿é—®æŽ§åˆ¶" + msgid "VisibilityLevel|Internal" msgstr "内部" @@ -3790,7 +4611,7 @@ msgid "Want to see the data? Please ask an administrator for access." msgstr "æƒé™ä¸è¶³ã€‚如需查看相关数æ®ï¼Œè¯·å‘管ç†å‘˜ç”³è¯·æƒé™ã€‚" msgid "We could not verify that one of your projects on GCP has billing enabled. Please try again." -msgstr "" +msgstr "æ— æ³•éªŒè¯æ‚¨åœ¨ GCP 上的æŸä¸ªé¡¹ç›®æ˜¯å¦å¯ç”¨äº†è®¡è´¹ã€‚请é‡è¯•ã€‚" msgid "We don't have enough data to show this stage." msgstr "该阶段的数æ®ä¸è¶³ï¼Œæ— 法显示。" @@ -3799,6 +4620,9 @@ msgid "We want to be sure it is you, please confirm you are not a robot." msgstr "我们è¦ç¡®å®šä½ 是ä¸æ˜¯æœºå™¨äººã€‚" msgid "Web IDE" +msgstr "Web IDE" + +msgid "Web terminal" msgstr "" msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." @@ -3807,6 +4631,9 @@ msgstr "如果有新的推é€æˆ–新的议题,Webhook将自动触å‘您设置UR msgid "Weight" msgstr "æƒé‡" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "å°†URLä¿ç•™ä¸ºç©ºç™½æ—¶ï¼Œä»å¯æŒ‡å®šåˆ†ç±»æ ‡ç¾ï¼Œè€Œæ— 需ç¦ç”¨è·¨é¡¹ç›®åŠŸèƒ½æˆ–执行外部授æƒæ£€æŸ¥ã€‚" + msgid "Wiki" msgstr "Wiki" @@ -3826,10 +4653,10 @@ msgid "WikiClone|Start Gollum and edit locally" msgstr "å¯åŠ¨ Gollum 并在本地编辑" msgid "WikiEditPageTip|Tip: You can move this page by adding the path to the beginning of the title." -msgstr "" +msgstr "æ示:å¯ä»¥é€šè¿‡å°†è·¯å¾„æ·»åŠ åˆ°æ ‡é¢˜å¼€å¤´æ¥ç§»åŠ¨æ¤é¡µé¢ã€‚" msgid "WikiEdit|There is already a page with the same title in that path." -msgstr "" +msgstr "在该路径ä¸å·²ç»æœ‰ä¸€ä¸ªå…·æœ‰ç›¸åŒæ ‡é¢˜çš„页é¢ã€‚" msgid "WikiEmptyPageError|You are not allowed to create wiki pages" msgstr "您ä¸èƒ½åˆ›å»º wiki 页é¢" @@ -3922,37 +4749,43 @@ msgid "Withdraw Access Request" msgstr "å–消æƒé™ç”³è¯·" msgid "Write a commit message..." -msgstr "" +msgstr "填写æ交信æ¯..." msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "å³å°†åˆ 除 %{group_name}ã€‚å·²åˆ é™¤çš„ç¾¤ç»„æ— æ³•æ¢å¤ï¼ç¡®å®šç»§ç»å—?" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "å³å°†è¦åˆ 除 %{project_name_with_namespace}ã€‚å·²åˆ é™¤çš„é¡¹ç›®æ— æ³•æ¢å¤ï¼ç¡®å®šç»§ç»å—?" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "å°†è¦åˆ 除 %{project_full_name}ã€‚åˆ é™¤åŽå°†æ— 法æ¢å¤ï¼ç¡®å®šæ‰§è¡Œæ¤æ“作?" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "å³å°†åˆ 除与æºé¡¹ç›® %{forked_from_project} 的派生关系。确定继ç»å—?" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "å³å°† %{project_name_with_namespace} 转移给å¦ä¸€ä¸ªæ‰€æœ‰è€…。确定继ç»å—?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "å°†è¦æŠŠ %{project_full_name} 转移给å¦ä¸€ä¸ªæ‰€æœ‰è€…。确定执行æ¤æ“作?" + +msgid "You are on a read-only GitLab instance." +msgstr "当å‰æ£åœ¨è®¿é—®åªè¯» GitLab 实例。" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." +msgstr "当å‰æ£åœ¨è®¿é—®Geo次(åªè¯»)节点。如需进行任何写入æ“作,必须访问%{primary_node}。" msgid "You can also create a project from the command line." -msgstr "" +msgstr "å¯ä»¥ä½¿ç”¨å‘½ä»¤è¡Œæ¥åˆ›å»ºé¡¹ç›®ã€‚" msgid "You can also star a label to make it a priority label." -msgstr "" +msgstr "å¯ä»¥é€šè¿‡ä¸ºæ ‡è®°è®¾ç½®æ˜Ÿæ ‡æ¥æ高其优先级。" msgid "You can easily install a Runner on a Kubernetes cluster. %{link_to_help_page}" -msgstr "" +msgstr "å¯ä»¥è½»æ¾åœ°åœ¨Kubernetes群集上安装Runner。 %{link_to_help_page}" msgid "You can move around the graph by using the arrow keys." -msgstr "" +msgstr "å¯ä»¥ä½¿ç”¨æ–¹å‘键移动图形。" msgid "You can only add files when you are on a branch" msgstr "åªèƒ½åœ¨åˆ†æ”¯ä¸Šæ·»åŠ 文件" msgid "You can only edit files when you are on a branch" -msgstr "" +msgstr "åªèƒ½åœ¨åˆ†æ”¯ä¸Šç¼–辑文件" msgid "You cannot write to a read-only secondary GitLab Geo instance. Please use %{link_to_primary_node} instead." msgstr "您ä¸èƒ½å†™å…¥åªè¯»çš„辅助 GitLab Geo 实例。请改用%{link_to_primary_node}。" @@ -3961,22 +4794,22 @@ msgid "You cannot write to this read-only GitLab instance." msgstr "您ä¸èƒ½å†™å…¥è¿™ä¸ªåªè¯»çš„ GitLab 实例。" msgid "You do not have the correct permissions to override the settings from the LDAP group sync." -msgstr "" +msgstr "没有足够æƒé™æ¥ä¿®æ”¹LDAP组åŒæ¥ä¸çš„设置。" msgid "You have no permissions" -msgstr "" +msgstr "没有æƒé™" msgid "You have reached your project limit" msgstr "您已达到项目数é‡é™åˆ¶" msgid "You must have master access to force delete a lock" -msgstr "" +msgstr "必须拥有 master æƒé™æ‰èƒ½å¼ºåˆ¶è§£é™¤é”定" msgid "You must sign in to star a project" msgstr "必须登录æ‰èƒ½å¯¹é¡¹ç›®åŠ æ˜Ÿæ ‡" msgid "You need a different license to enable FileLocks feature" -msgstr "" +msgstr "需è¦ä½¿ç”¨ä¸Žå½“å‰ä¸åŒçš„许å¯(license)æ‰èƒ½å¯ç”¨FileLocks功能" msgid "You need permission." msgstr "需è¦ç›¸å…³çš„æƒé™ã€‚" @@ -4006,13 +4839,31 @@ msgid "You won't be able to pull or push project code via SSH until you add an S msgstr "在您的个人资料ä¸æ·»åŠ SSH密钥之å‰ï¼Œæ‚¨ä¸èƒ½é€šè¿‡SSHæ¥æ‹‰å–或推é€é¡¹ç›®ä»£ç 。" msgid "You'll need to use different branch names to get a valid comparison." -msgstr "" +msgstr "需è¦ä½¿ç”¨ä¸åŒçš„分支æ‰èƒ½è¿›è¡Œæœ‰æ•ˆçš„比较。" + +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "您收到这å°ç”µåé‚®ä»¶æ˜¯å› ä¸ºä½ åœ¨ %{host} 拥有å¸æˆ·ã€‚ %{manage_notifications_link} · %{help_link}" + +msgid "Your Groups" +msgstr "您的群组" msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" -msgstr "" +msgstr "在æ¤é¡µé¢ä¸Šçš„Kubernetes群集信æ¯ä»å¯ç¼–辑,但建议您ç¦ç”¨å¹¶é‡æ–°é…ç½®" + +msgid "Your Projects (default)" +msgstr "您的项目 (默认值)" + +msgid "Your Projects' Activity" +msgstr "您的项目活动" + +msgid "Your Todos" +msgstr "您的待办事项" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "åˆå¹¶è¯·æ±‚已开å¯ï¼Œå¯ä»¥æ交å˜æ›´åˆ°%{branch_name}。" msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" -msgstr "" +msgstr "更改已æ交。æ交 %{commitId} %{commitStats}" msgid "Your comment will not be visible to the public." msgstr "您的评论将ä¸ä¼šå…¬å¼€æ˜¾ç¤ºã€‚" @@ -4026,8 +4877,15 @@ msgstr "您的åå—" msgid "Your projects" msgstr "您的项目" +msgid "among other things" +msgstr "除其他事项外" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "åŠ%d个修å¤çš„æ¼æ´ž" + msgid "assign yourself" -msgstr "" +msgstr "分é…给自己" msgid "branch name" msgstr "分支å称" @@ -4035,253 +4893,321 @@ msgstr "分支å称" msgid "by" msgstr "æ¥è‡ª" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "%{type} 未å‘现新的安全æ¼æ´ž" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "%{type} 未å‘现安全æ¼æ´ž" + msgid "ciReport|Code quality" -msgstr "" +msgstr "代ç è´¨é‡" msgid "ciReport|DAST detected no alerts by analyzing the review app" -msgstr "" +msgstr "DAST在审阅应用ä¸æœªæ£€æµ‹åˆ°å‘Šè¦" + +msgid "ciReport|Dependency scanning" +msgstr "ä¾èµ–关系扫æ" + +msgid "ciReport|Dependency scanning detected" +msgstr "ä¾èµ–关系扫æ检测到" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "ä¾èµ–关系扫æ未检测到新的安全æ¼æ´ž" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "ä¾èµ–关系扫æ未检测到安全æ¼æ´ž" msgid "ciReport|Failed to load %{reportName} report" -msgstr "" +msgstr "æ— æ³•åŠ è½½ %{reportName} 报告" msgid "ciReport|Fixed:" -msgstr "" +msgstr "失败:" msgid "ciReport|Instances" -msgstr "" +msgstr "实例" msgid "ciReport|Learn more about whitelisting" -msgstr "" +msgstr "进一æ¥äº†è§£å…³äºŽç™½åå•çš„ä¿¡æ¯" msgid "ciReport|Loading %{reportName} report" -msgstr "" +msgstr "载入%{reportName} 报告" msgid "ciReport|No changes to code quality" -msgstr "" +msgstr "代ç è´¨é‡æ— å˜åŒ–" msgid "ciReport|No changes to performance metrics" -msgstr "" +msgstr "æ€§èƒ½æŒ‡æ ‡æ— å˜åŒ–" msgid "ciReport|Performance metrics" -msgstr "" +msgstr "æ€§èƒ½æŒ‡æ ‡" msgid "ciReport|SAST" -msgstr "" - -msgid "ciReport|SAST degraded on" -msgstr "" +msgstr "SAST" msgid "ciReport|SAST detected" -msgstr "" +msgstr "SAST检测到" msgid "ciReport|SAST detected no new security vulnerabilities" -msgstr "" +msgstr "SAST未å‘现新的安全æ¼æ´ž" msgid "ciReport|SAST detected no security vulnerabilities" -msgstr "" +msgstr "SAST未å‘现安全æ¼æ´ž" msgid "ciReport|SAST:container no vulnerabilities were found" -msgstr "" +msgstr "SAST:container未å‘现æ¼æ´ž" + +msgid "ciReport|Security scanning" +msgstr "安全扫æ" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "安全扫ææ— æ³•åŠ è½½ä»»ä½•ç»“æžœ" msgid "ciReport|Show complete code vulnerabilities report" -msgstr "" +msgstr "显示完整的代ç æ¼æ´žæŠ¥å‘Š" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" -msgstr "" +msgstr "未批准的æ¼æ´ž (红色) å¯ä»¥æ ‡è®°ä¸ºå·²æ‰¹å‡†ã€‚ %{helpLink}" -msgid "ciReport|no security vulnerabilities" -msgstr "" +msgid "ciReport|no vulnerabilities" +msgstr "未检测到安全æ¼æ´ž" msgid "command line instructions" -msgstr "" - -msgid "commit" -msgstr "æ交" +msgstr "命令行指å—" -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." -msgstr "" +msgid "connecting" +msgstr "连接ä¸" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." -msgstr "" +msgid "could not read private key, is the passphrase correct?" +msgstr "æ— æ³•è¯»å–ç§é’¥ï¼Œå¯†ç çŸè¯æ˜¯å¦æ£ç¡®ï¼Ÿ" msgid "day" msgid_plural "days" msgstr[0] "天" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "检测到%d个安全æ¼æ´žå·²ä¿®å¤" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "检测到%d个新的安全æ¼æ´ž" + +msgid "detected no vulnerabilities" +msgstr "未检测到安全æ¼æ´ž" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." -msgstr "" +msgstr "最åŽä¸€æ¬¡%{slash_command} 命令将更新预计时间。" + +msgid "here" +msgstr "æ¤å¤„" + +msgid "importing" +msgstr "导入ä¸" + +msgid "in progress" +msgstr "进行ä¸" msgid "is invalid because there is downstream lock" -msgstr "" +msgstr "å› ä¸‹æ¸¸é”å®šè€Œæ— æ•ˆ" msgid "is invalid because there is upstream lock" -msgstr "" +msgstr "å› ä¸Šæ¸¸é”å®šè€Œæ— æ•ˆ" + +msgid "is not a valid X509 certificate." +msgstr "ä¸æ˜¯æœ‰æ•ˆçš„X509è¯ä¹¦ã€‚" msgid "locked by %{path_lock_user_name} %{created_at}" -msgstr "" +msgstr "被 %{path_lock_user_name} 于 %{created_at} é”定" msgid "merge request" msgid_plural "merge requests" -msgstr[0] "" +msgstr[0] "åˆå¹¶è¯·æ±‚" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" -msgstr "" +msgstr "请æ¢å¤æ¤åˆ†æ”¯æˆ–使用其他的 %{missingBranchName} 分支" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "%{metricsLinkStart} å†…å˜ %{metricsLinkEnd} å 用 %{emphasisStart} ä¸‹é™ %{emphasisEnd},从 %{memoryFrom}MB 到 %{memoryTo}MB" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "%{metricsLinkStart} å†…å˜ %{metricsLinkEnd} å 用 %{emphasisStart} ä¸Šå‡ %{emphasisEnd},从 %{memoryFrom}MB 到 %{memoryTo}MB" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "%{metricsLinkStart} å†…å˜ %{metricsLinkEnd} å 用 %{emphasisStart} æ— å˜åŒ– %{emphasisEnd}, ä¿æŒåœ¨ %{memoryFrom}MB" msgid "mrWidget|Add approval" -msgstr "" +msgstr "å¢žåŠ æ‰¹å‡†" + +msgid "mrWidget|Allows edits from maintainers" +msgstr "å…许上游项目维护人员进行编辑。" msgid "mrWidget|An error occured while removing your approval." -msgstr "" +msgstr "åˆ é™¤æ‰¹å‡†æ—¶å‘生错误。" msgid "mrWidget|An error occured while retrieving approval data for this merge request." -msgstr "" +msgstr "读å–æ¤åˆå¹¶è¯·æ±‚的批准数æ®æ—¶å‘生错误。" msgid "mrWidget|An error occured while submitting your approval." -msgstr "" +msgstr "æ交批准时å‘生错误。" msgid "mrWidget|Approve" +msgstr "批准" + +msgid "mrWidget|Approved" msgstr "" msgid "mrWidget|Approved by" -msgstr "" +msgstr "批准人:" msgid "mrWidget|Cancel automatic merge" -msgstr "" +msgstr "å–消自动åˆå¹¶" msgid "mrWidget|Check out branch" -msgstr "" +msgstr "检出分支" msgid "mrWidget|Checking ability to merge automatically" -msgstr "" +msgstr "检查是å¦å¯ä»¥è‡ªåŠ¨åˆå¹¶" msgid "mrWidget|Cherry-pick" -msgstr "" +msgstr "优选" msgid "mrWidget|Cherry-pick this merge request in a new merge request" -msgstr "" +msgstr "通过新的åˆå¹¶è¯·æ±‚ä¸ä¼˜é€‰æ¤åˆå¹¶è¯·æ±‚" msgid "mrWidget|Closed" -msgstr "" +msgstr "已关é—" msgid "mrWidget|Closed by" -msgstr "" +msgstr "å…³é—:" msgid "mrWidget|Closes" -msgstr "" +msgstr "å…³é—" + +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "部署统计信æ¯å½“å‰ä¸å¯ç”¨" msgid "mrWidget|Did not close" -msgstr "" +msgstr "没有关é—" msgid "mrWidget|Email patches" -msgstr "" +msgstr "通过电å邮件å‘出补ä¸" + +msgid "mrWidget|Failed to load deployment statistics" +msgstr "æ— æ³•åŠ è½½éƒ¨ç½²ç»Ÿè®¡ä¿¡æ¯" msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" -msgstr "" +msgstr "如果 %{branch} 分支å˜åœ¨äºŽæœ¬åœ°ä»“库ä¸ï¼Œåˆ™å¯ä»¥æ‰‹åŠ¨åˆå¹¶è¯¥åˆå¹¶è¯·æ±‚。需使用" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" -msgstr "" +msgstr "如果 %{missingBranchName} 分支å˜åœ¨äºŽæœ¬åœ°ä»“库ä¸ï¼Œåˆ™å¯ä»¥é€šè¿‡ä»¥ä¸‹å‘½ä»¤è¡Œæ‰‹åŠ¨åˆå¹¶è¯¥åˆå¹¶è¯·æ±‚。" + +msgid "mrWidget|Loading deployment statistics" +msgstr "åŠ è½½éƒ¨ç½²ç»Ÿè®¡ä¿¡æ¯ä¸" msgid "mrWidget|Mentions" -msgstr "" +msgstr "æåŠ" msgid "mrWidget|Merge" -msgstr "" +msgstr "åˆå¹¶" msgid "mrWidget|Merge failed." -msgstr "" +msgstr "åˆå¹¶å¤±è´¥ã€‚" msgid "mrWidget|Merge locally" -msgstr "" +msgstr "本地åˆå¹¶" msgid "mrWidget|Merged by" -msgstr "" +msgstr "åˆå¹¶:" msgid "mrWidget|Plain diff" -msgstr "" +msgstr "文本差异" msgid "mrWidget|Refresh" -msgstr "" +msgstr "刷新" msgid "mrWidget|Refresh now" -msgstr "" +msgstr "ç«‹å³åˆ·æ–°" msgid "mrWidget|Refreshing now" -msgstr "" +msgstr "ç«‹å³åˆ·æ–°" msgid "mrWidget|Remove Source Branch" -msgstr "" +msgstr "åˆ é™¤æºåˆ†æ”¯" msgid "mrWidget|Remove source branch" -msgstr "" +msgstr "åˆ é™¤æºåˆ†æ”¯" msgid "mrWidget|Remove your approval" -msgstr "" +msgstr "åˆ é™¤æ‚¨çš„æ‰¹å‡†" msgid "mrWidget|Request to merge" -msgstr "" +msgstr "请求åˆå¹¶" msgid "mrWidget|Resolve conflicts" -msgstr "" +msgstr "解决冲çª" msgid "mrWidget|Revert" -msgstr "" +msgstr "还原" msgid "mrWidget|Revert this merge request in a new merge request" -msgstr "" +msgstr "通过新的åˆå¹¶è¯·æ±‚ä¸è¿˜åŽŸæ¤åˆå¹¶è¯·æ±‚" msgid "mrWidget|Set by" -msgstr "" +msgstr "设置:" msgid "mrWidget|The changes were merged into" -msgstr "" +msgstr "更改已åˆå¹¶åˆ°" msgid "mrWidget|The changes were not merged into" -msgstr "" +msgstr "更改未åˆå¹¶åˆ°" msgid "mrWidget|The changes will be merged into" -msgstr "" +msgstr "更改将被åˆå¹¶åˆ°" msgid "mrWidget|The source branch has been removed" -msgstr "" +msgstr "æºåˆ†æ”¯å·²è¢«åˆ 除" msgid "mrWidget|The source branch is being removed" -msgstr "" +msgstr "æºåˆ†æ”¯æ£åœ¨è¢«åˆ 除" msgid "mrWidget|The source branch will be removed" -msgstr "" +msgstr "æºåˆ†æ”¯å°†è¢«åˆ 除" msgid "mrWidget|The source branch will not be removed" -msgstr "" +msgstr "æºåˆ†æ”¯ä¸ä¼šè¢«åˆ 除" msgid "mrWidget|There are merge conflicts" -msgstr "" +msgstr "å˜åœ¨åˆå¹¶å†²çª" msgid "mrWidget|This merge request failed to be merged automatically" -msgstr "" +msgstr "该åˆå¹¶è¯·æ±‚未能自动åˆå¹¶" msgid "mrWidget|This merge request is in the process of being merged" -msgstr "" +msgstr "该åˆå¹¶è¯·æ±‚æ£åœ¨è¢«åˆå¹¶" msgid "mrWidget|This project is archived, write access has been disabled" +msgstr "该项目已å˜æ¡£ï¼Œç¦æ¢å†™å…¥" + +msgid "mrWidget|Web IDE" msgstr "" msgid "mrWidget|You can merge this merge request manually using the" -msgstr "" +msgstr "å¯ä»¥æ‰‹åŠ¨åˆå¹¶æ¤åˆå¹¶è¯·æ±‚,使用以下" msgid "mrWidget|You can remove source branch now" -msgstr "" +msgstr "当å‰å·²å¯ä»¥åˆ 除æºåˆ†æ”¯" msgid "mrWidget|branch does not exist." -msgstr "" +msgstr "分支ä¸å˜åœ¨" msgid "mrWidget|command line" -msgstr "" +msgstr "命令行" msgid "mrWidget|into" -msgstr "" +msgstr "å…¥" msgid "mrWidget|to be merged automatically when the pipeline succeeds" -msgstr "" +msgstr "æµæ°´çº¿æˆåŠŸæ—¶è‡ªåŠ¨åˆå¹¶" msgid "new merge request" msgstr "新建åˆå¹¶è¯·æ±‚" @@ -4290,7 +5216,7 @@ msgid "notification emails" msgstr "通知邮件" msgid "or" -msgstr "" +msgstr "或" msgid "parent" msgid_plural "parents" @@ -4302,14 +5228,20 @@ msgstr "密ç " msgid "personal access token" msgstr "个人访问令牌" +msgid "private key does not match certificate." +msgstr "ç§é’¥ä¸Žè¯ä¹¦ä¸åŒ¹é…。" + msgid "remove due date" -msgstr "" +msgstr "åˆ é™¤æˆªæ¢æ—¥æœŸ" msgid "source" msgstr "æº" msgid "spendCommand|%{slash_command} will update the sum of the time spent." -msgstr "" +msgstr "%{slash_command} 将会更新消耗的总时长。" + +msgid "this document" +msgstr "æ¤æ–‡æ¡£" msgid "to help your contributors communicate effectively!" msgstr "帮助您的贡献者进行有效沟通ï¼" @@ -4318,8 +5250,8 @@ msgid "username" msgstr "用户å" msgid "uses Kubernetes clusters to deploy your code!" -msgstr "" +msgstr "使用 Kubernetes 集群æ¥éƒ¨ç½²ä»£ç ï¼" msgid "with %{additions} additions, %{deletions} deletions." -msgstr "" +msgstr "å…± %{additions} æ¡æ–°å¢ž, %{deletions} æ¡åˆ 除." diff --git a/locale/zh_HK/gitlab.po b/locale/zh_HK/gitlab.po index 0174e945bab..6bfcae6aa91 100644 --- a/locale/zh_HK/gitlab.po +++ b/locale/zh_HK/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:22-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:39-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Chinese Traditional, Hong Kong\n" "Language: zh_HK\n" @@ -27,6 +27,10 @@ msgid "%d commit behind" msgid_plural "%d commits behind" msgstr[0] "" +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "" + msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" @@ -39,6 +43,10 @@ msgid "%d merge request" msgid_plural "%d merge requests" msgstr[0] "" +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "" + msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." msgstr[0] "為æ高é é¢åŠ 載速度åŠæ€§èƒ½ï¼Œå·²çœç•¥äº† %s 次æ交。" @@ -53,6 +61,9 @@ msgid "%{count} participant" msgid_plural "%{count} participants" msgstr[0] "" +msgid "%{loadingIcon} Started" +msgstr "" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" msgstr "" @@ -94,15 +105,30 @@ msgstr "" msgid "2FA enabled" msgstr "" +msgid "<strong>Removes</strong> source branch" +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "相關æŒçºŒé›†æˆçš„圖åƒé›†åˆ" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "" + +msgid "A user with write access to the source branch selected this option" +msgstr "" + msgid "About auto deploy" msgstr "關於自動部署" msgid "Abuse Reports" msgstr "" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "" @@ -112,6 +138,9 @@ msgstr "å› æ¢å¾©å®‰è£ï¼Œè¨ªå•æ•…éšœå˜å„²å·²è¢«æš«æ™‚ç¦ç”¨ã€‚在å•é¡Œè§£æ±º msgid "Account" msgstr "" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "啟用" @@ -208,9 +237,33 @@ msgstr "全部" msgid "All changes are committed" msgstr "" +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "" + +msgid "Allow edits from maintainers." +msgstr "" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." +msgstr "" + msgid "Allows you to add and manage Kubernetes clusters." msgstr "" +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" +msgstr "" + +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + msgid "An error occurred previewing the blob" msgstr "" @@ -289,6 +342,9 @@ msgstr "" msgid "An error occurred. Please try again." msgstr "" +msgid "Any Label" +msgstr "" + msgid "Appearance" msgstr "" @@ -322,6 +378,9 @@ msgstr "確定嗎?" msgid "Artifacts" msgstr "" +msgid "Assertion consumer service URL" +msgstr "" + msgid "Assign custom color like #FF0000" msgstr "" @@ -334,6 +393,15 @@ msgstr "" msgid "Assign to" msgstr "" +msgid "Assigned Issues" +msgstr "" + +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" +msgstr "" + msgid "Assignee" msgstr "" @@ -358,6 +426,9 @@ msgstr "" msgid "Auto DevOps enabled" msgstr "" +msgid "Auto DevOps, runners and job artifacts" +msgstr "" + msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." msgstr "" @@ -400,6 +471,12 @@ msgstr "" msgid "Average per day: %{average}" msgstr "" +msgid "Background Color" +msgstr "" + +msgid "Background jobs" +msgstr "" + msgid "Begin with the selected commit" msgstr "" @@ -482,6 +559,15 @@ msgstr "切æ›åˆ†æ”¯" msgid "Branches" msgstr "分支" +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "" @@ -527,12 +613,39 @@ msgstr "" msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" msgstr "" msgid "Branches|Sort by" msgstr "" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -578,30 +691,45 @@ msgstr "ç€è¦½æ–‡ä»¶" msgid "Browse files" msgstr "ç€è¦½æ–‡ä»¶" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "作者:" msgid "CI / CD" msgstr "" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" msgstr "" +msgid "CI/CD for external repo" +msgstr "" + msgid "CICD|Jobs" msgstr "" msgid "Cancel" msgstr "å–消" -msgid "Cancel edit" -msgstr "å–消编辑" +msgid "Cannot be merged automatically" +msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "挑é¸åˆ°åˆ†æ”¯" @@ -656,6 +784,12 @@ msgstr "" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "" +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "" @@ -758,6 +892,15 @@ msgstr "" msgid "Click to expand text" msgstr "" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "" @@ -857,6 +1000,9 @@ msgstr "" msgid "ClusterIntegration|Helm Tiller" msgstr "" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "" @@ -866,6 +1012,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "" @@ -884,6 +1033,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -917,6 +1069,9 @@ msgstr "" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "" @@ -977,6 +1132,9 @@ msgstr "" msgid "ClusterIntegration|Save changes" msgstr "" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1004,6 +1162,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1126,6 +1287,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1141,9 +1308,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "" @@ -1189,6 +1392,12 @@ msgstr "" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "" +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "è²¢ç»æŒ‡å—" @@ -1252,8 +1461,8 @@ msgstr "" msgid "Create directory" msgstr "創建目錄" -msgid "Create empty bare repository" -msgstr "創建空的å˜å„²åº«" +msgid "Create empty repository" +msgstr "" msgid "Create epic" msgstr "" @@ -1261,6 +1470,9 @@ msgstr "" msgid "Create file" msgstr "" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1285,6 +1497,9 @@ msgstr "" msgid "Create new..." msgstr "創建..." +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "派生" @@ -1318,6 +1533,9 @@ msgstr "自定義通知事件" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "自定義通知級別繼承自åƒèˆ‡ç´šåˆ¥ã€‚使用自定義通知級別,您會收到åƒèˆ‡ç´šåˆ¥åŠé¸å®šäº‹ä»¶çš„通知。想了解更多信æ¯ï¼Œè«‹æŸ¥çœ‹ %{notification_link}." +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "週期分æž" @@ -1400,9 +1618,15 @@ msgstr "" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "ä¸å†é¡¯ç¤º" +msgid "Done" +msgstr "" + msgid "Download" msgstr "下載" @@ -1430,9 +1654,15 @@ msgstr "差異文件" msgid "DownloadSource|Download" msgstr "下載" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "編輯" @@ -1442,6 +1672,18 @@ msgstr "編輯 %{id} æµæ°´ç·šè¨ˆåŠƒ" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "" @@ -1451,6 +1693,33 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1511,6 +1780,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1586,9 +1858,15 @@ msgstr "" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1598,6 +1876,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1631,6 +1912,9 @@ msgstr "文件" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "按æ交消æ¯éŽæ¿¾" @@ -1640,12 +1924,21 @@ msgstr "按路徑查找" msgid "Find file" msgstr "查找文件" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "首次推é€" msgid "FirstPushedBy|pushed by" msgstr "推é€è€…:" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "派生" @@ -1656,9 +1949,15 @@ msgstr "派生自" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "從創建è°é¡Œåˆ°éƒ¨ç½²åˆ°ç”Ÿç”¢ç’°å¢ƒ" @@ -1677,12 +1976,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "" +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1728,21 +2033,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1755,9 +2087,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1788,6 +2132,9 @@ msgstr "" msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1797,12 +2144,30 @@ msgstr "Git å˜å„²å¥åº·ä¿¡æ¯å·²é‡ç½®" msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "GitLab Runner 介紹" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "è·³è½‰åˆ°æ´¾ç”Ÿé …ç›®" @@ -1869,9 +2234,6 @@ msgstr "" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "" @@ -1902,6 +2264,9 @@ msgstr "" msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "å¥åº·æª¢æŸ¥ (Health Check)" @@ -1920,6 +2285,15 @@ msgstr "沒有檢測到å¥åº·å•é¡Œ" msgid "HealthCheck|Unhealthy" msgstr "ä¸è‰¯" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1930,12 +2304,39 @@ msgstr "" msgid "Housekeeping successfully started" msgstr "已開始ç¶è·" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "å°Žå…¥å˜å„²åº«" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "" @@ -1958,6 +2359,9 @@ msgstr[0] "" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2012,6 +2416,9 @@ msgstr "" msgid "June" msgstr "" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2042,12 +2449,30 @@ msgstr "åœç”¨" msgid "LFSStatus|Enabled" msgstr "啟用" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "最近 %d 天" @@ -2106,6 +2531,9 @@ msgstr "" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2118,9 +2546,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "" @@ -2136,9 +2561,21 @@ msgstr "" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "" @@ -2160,6 +2597,9 @@ msgstr "ä¸ä½æ•¸" msgid "Members" msgstr "" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "" @@ -2172,15 +2612,87 @@ msgstr "" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2196,6 +2708,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "æ·»åŠ å£¹å€‹ SSH 公鑰" @@ -2208,6 +2729,9 @@ msgstr "" msgid "Monitoring" msgstr "" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2281,6 +2805,9 @@ msgstr "" msgid "New tag" msgstr "新增標籤" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2299,6 +2826,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "沒有å˜å„²åº«" @@ -2314,6 +2844,12 @@ msgstr "" msgid "Not available" msgstr "ä¸å¯ç”¨" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2323,6 +2859,18 @@ msgstr "數據ä¸è¶³" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "通知事件" @@ -2407,6 +2955,12 @@ msgstr "" msgid "OfSearchInADropdown|Filter" msgstr "篩é¸" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "" @@ -2428,12 +2982,18 @@ msgstr "æ“作" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "" msgid "Owner" msgstr "所有者" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "" @@ -2446,9 +3006,21 @@ msgstr "" msgid "Pagination|« First" msgstr "" +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "æµæ°´ç·š" @@ -2530,9 +3102,36 @@ msgstr "" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "" + +msgid "Pipelines|Clear Runner Caches" +msgstr "" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2563,6 +3162,9 @@ msgstr "於階段" msgid "Pipeline|with stages" msgstr "於階段" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2572,6 +3174,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "" @@ -2626,6 +3234,9 @@ msgstr "" msgid "Profiles|your account" msgstr "" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2650,9 +3261,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "專案詳情" @@ -2749,6 +3357,12 @@ msgstr "" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2761,9 +3375,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "" +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "" +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2776,19 +3402,13 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "" - msgid "PrometheusService|Missing environment variable" msgstr "" -msgid "PrometheusService|Monitored" -msgstr "" - msgid "PrometheusService|More information" msgstr "" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." +msgid "PrometheusService|New metric" msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" @@ -2797,6 +3417,9 @@ msgstr "" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2806,7 +3429,16 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" msgid "Protip:" @@ -2842,6 +3474,9 @@ msgstr "了解更多" msgid "Readme" msgstr "自述文件" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "分支" @@ -2875,6 +3510,9 @@ msgstr "相關的åˆä½µè«‹æ±‚" msgid "Related Merged Requests" msgstr "相關已åˆä½µçš„åˆä½µè«‹æ±‚" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "ç¨å¾Œæ醒" @@ -2890,12 +3528,24 @@ msgstr "åˆªé™¤é …ç›®" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "å˜å„²åº«" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "申請權é™" @@ -2911,6 +3561,9 @@ msgstr "é‡ç½® Runner 註冊令牌" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2921,9 +3574,36 @@ msgstr "還原æ¤æ交" msgid "Revert this merge request" msgstr "還原æ¤åˆä½µè«‹æ±‚" +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "" @@ -2939,6 +3619,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "新建æµæ°´ç·šè¨ˆåŠƒ" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "" @@ -2948,6 +3631,9 @@ msgstr "æµæ°´ç·šè¨ˆåŠƒ" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "æœç´¢åˆ†æ”¯å’Œæ¨™ç±¤" @@ -3011,15 +3697,33 @@ msgstr "" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "ç‚ºè³¬è™Ÿæ·»åŠ å£¹å€‹ç”¨æ–¼æŽ¨é€æˆ–拉å–çš„ %{protocol} 密碼。" +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "è¨ç½® Koding" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "è¨ç½®å¯†ç¢¼" @@ -3029,6 +3733,9 @@ msgstr "" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3063,40 +3770,40 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" -msgid "Snippets" +msgid "Sign-in restrictions" msgstr "" -msgid "Something went wrong on our end" +msgid "Sign-up restrictions" msgstr "" -msgid "Something went wrong on our end." +msgid "Size and domain settings for static websites" msgstr "" -msgid "Something went wrong trying to change the confidentiality of this issue" +msgid "Slack application" msgstr "" -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" +msgid "Snippets" msgstr "" -msgid "Something went wrong when toggling the button" +msgid "Something went wrong on our end" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong on our end." msgstr "" -msgid "Something went wrong while fetching SAST." +msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while fetching the projects." +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" -msgid "Something went wrong while fetching the registry list." +msgid "Something went wrong while fetching SAST." msgstr "" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" +msgid "Something went wrong while fetching the projects." msgstr "" -msgid "Something went wrong while resolving this discussion. Please try again." +msgid "Something went wrong while fetching the registry list." msgstr "" msgid "Something went wrong. Please try again." @@ -3216,12 +3923,21 @@ msgstr "" msgid "Spam Logs" msgstr "" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "在 Runner è¨ç½®æ™‚指定以下 URL:" msgid "StarProject|Star" msgstr "星標" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "" @@ -3231,6 +3947,15 @@ msgstr "ç”±æ¤æ›´æ”¹ %{new_merge_request}" msgid "Start the Runner!" msgstr "é‹ä½œ Runner!" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "" @@ -3243,9 +3968,15 @@ msgstr "" msgid "Switch branch/tag" msgstr "切æ›åˆ†æ”¯/標籤" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3325,6 +4056,9 @@ msgstr "" msgid "Target Branch" msgstr "目標分支" +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "團隊" @@ -3340,15 +4074,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "編碼階段概述了從第壹次æ交到創建åˆä½µè«‹æ±‚的時間。創建第壹個åˆä½µè«‹æ±‚å¾Œï¼Œæ•¸æ“šå°‡è‡ªå‹•æ·»åŠ åˆ°æ¤è™•ã€‚" msgid "The collection of events added to the data gathered for that stage." msgstr "與該階段相關的事件。" +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "派生關係已被刪除。" +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "è°é¡ŒéšŽæ®µæ¦‚述了從創建è°é¡Œåˆ°å°‡è°é¡Œæ·»åŠ 到è£ç¨‹ç¢‘或è°é¡Œçœ‹æ¿æ‰€èŠ±è²»çš„時間。創建第壹個è°é¡Œå¾Œï¼Œæ•¸æ“šå°‡è‡ªå‹•æ·»åŠ 到æ¤è™•.。" @@ -3361,12 +4104,18 @@ msgstr "" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "é …ç›®ç”Ÿå‘½é€±æœŸä¸çš„å„個階段。" msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "計劃階段概述了從è°é¡Œæ·»åŠ 到日程到推é€é¦–次æ交的時間。當首次推é€æäº¤å¾Œï¼Œæ•¸æ“šå°‡è‡ªå‹•æ·»åŠ åˆ°æ¤è™•ã€‚" +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "生產階段概述了從創建è°é¡Œåˆ°å°‡ä»£ç¢¼éƒ¨ç½²åˆ°ç”Ÿç”¢ç’°å¢ƒçš„時間。當完æˆå®Œæ•´çš„æƒ³æ³•åˆ°éƒ¨ç½²ç”Ÿç”¢ï¼Œæ•¸æ“šå°‡è‡ªå‹•æ·»åŠ åˆ°æ¤è™•ã€‚" @@ -3382,6 +4131,9 @@ msgstr "æ¤é …目的å˜å„²åº«ä¸å˜åœ¨ã€‚" msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "評審階段概述了從創建åˆä½µè«‹æ±‚到åˆä½µçš„時間。當創建第壹個åˆä½µè«‹æ±‚å¾Œï¼Œæ•¸æ“šå°‡è‡ªå‹•æ·»åŠ åˆ°æ¤è™•ã€‚" @@ -3418,6 +4170,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "è¨ªå• Git å˜å„²æ™‚出ç¾å•é¡Œï¼š" +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3490,6 +4245,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3502,6 +4260,12 @@ msgstr "開始進行編碼å‰çš„時間" msgid "Time between merge request creation and merge/close" msgstr "從創建åˆä½µè«‹æ±‚到被åˆä½µæˆ–關閉的時間" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "" + msgid "Time tracking" msgstr "" @@ -3657,6 +4421,36 @@ msgstr "" msgid "Title" msgstr "" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3696,18 +4490,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "" @@ -3747,6 +4535,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "點擊上傳" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3756,24 +4550,51 @@ msgstr "在安è£éŽç¨‹ä¸ä½¿ç”¨ä»¥ä¸‹è¨»å†Šä»¤ç‰Œï¼š" msgid "Use your global notification setting" msgstr "使用全局通知è¨ç½®" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "" +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "查看開啟的åˆä¸¦è«‹æ±‚" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "" +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "內部" @@ -3801,12 +4622,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "" @@ -3927,14 +4754,20 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "å³å°‡åˆªé™¤ %{group_name}。已刪除的群組無法æ¢å¾©ï¼ç¢ºå®šç¹¼çºŒå—Žï¼Ÿ" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "å³å°‡è¦åˆªé™¤ %{project_name_with_namespace}ã€‚å·²åˆªé™¤çš„é …ç›®ç„¡æ³•æ¢è¤‡ï¼ç¢ºå®šç¹¼çºŒå—Žï¼Ÿ" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "å³å°‡åˆªé™¤èˆ‡æºé …ç›® %{forked_from_project} 的派生關系。確定繼續嗎?" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "å³å°‡ %{project_name_with_namespace} 轉義給å¦å£¹å€‹æ‰€æœ‰è€…。確定繼續嗎?" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." +msgstr "" msgid "You can also create a project from the command line." msgstr "" @@ -4008,9 +4841,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4026,6 +4877,13 @@ msgstr "您的åå—" msgid "Your projects" msgstr "" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" + msgid "assign yourself" msgstr "" @@ -4035,12 +4893,30 @@ msgstr "" msgid "by" msgstr "" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4068,9 +4944,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4083,40 +4956,66 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" -msgstr "" - -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" msgid_plural "days" msgstr[0] "天" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4127,9 +5026,21 @@ msgstr[0] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4142,6 +5053,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4169,18 +5083,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4265,6 +5188,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4302,6 +5228,9 @@ msgstr "" msgid "personal access token" msgstr "" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4311,6 +5240,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "" diff --git a/locale/zh_TW/gitlab.po b/locale/zh_TW/gitlab.po index 025af6fa2d9..553050d06a1 100644 --- a/locale/zh_TW/gitlab.po +++ b/locale/zh_TW/gitlab.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: gitlab-ee\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-02 13:39+0100\n" -"PO-Revision-Date: 2018-03-05 03:23-0500\n" +"POT-Creation-Date: 2018-04-04 19:35+0200\n" +"PO-Revision-Date: 2018-04-05 03:39-0400\n" "Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /master/locale/gitlab.pot\n" msgid " and" -msgstr "" +msgstr " å’Œ" msgid "%d commit" msgid_plural "%d commits" @@ -25,11 +25,15 @@ msgstr[0] "%d 個更動 (commit)" msgid "%d commit behind" msgid_plural "%d commits behind" -msgstr[0] "" +msgstr[0] "è½å¾Œ %d 個更動紀錄" + +msgid "%d exporter" +msgid_plural "%d exporters" +msgstr[0] "%d 導出" msgid "%d issue" msgid_plural "%d issues" -msgstr[0] "" +msgstr[0] "%d 個è°é¡Œ" msgid "%d layer" msgid_plural "%d layers" @@ -37,7 +41,11 @@ msgstr[0] "%d 個圖層" msgid "%d merge request" msgid_plural "%d merge requests" -msgstr[0] "" +msgstr[0] "%d 個åˆä½µè«‹æ±‚" + +msgid "%d metric" +msgid_plural "%d metrics" +msgstr[0] "%d 指標" msgid "%s additional commit has been omitted to prevent performance issues." msgid_plural "%s additional commits have been omitted to prevent performance issues." @@ -47,14 +55,17 @@ msgid "%{actionText} & %{openOrClose} %{noteable}" msgstr "" msgid "%{commit_author_link} authored %{commit_timeago}" -msgstr "" +msgstr "ç”± %{commit_author_link} æ交於 %{commit_timeago}" msgid "%{count} participant" msgid_plural "%{count} participants" msgstr[0] "%{count} åƒèˆ‡è€…" +msgid "%{loadingIcon} Started" +msgstr "%{loadingIcon} 開始" + msgid "%{lock_path} is locked by GitLab User %{lock_user_id}" -msgstr "" +msgstr "%{lock_path} 被使用者 %{lock_user_id} 鎖定" msgid "%{number_commits_behind} commits behind %{default_branch}, %{number_commits_ahead} commits ahead" msgstr "" @@ -66,14 +77,14 @@ msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will not re msgstr "已失敗 %{number_of_failures} / %{maximum_failures} 次,GitLab å°‡ä¸å†è‡ªå‹•é‡è©¦ã€‚請在確èªå•é¡Œè§£æ±ºå¾Œæ‰‹å‹•é‡ç½®å„²å˜ç©ºé–“資訊。" msgid "%{openOrClose} %{noteable}" -msgstr "" +msgstr "%{openOrClose} %{noteable}" msgid "%{storage_name}: failed storage access attempt on host:" msgid_plural "%{storage_name}: %{failed_attempts} failed storage access attempts:" msgstr[0] "%{storage_name}:已å˜å–æ¤ä¸»æ©Ÿå¤±æ•— %{failed_attempts} 次" msgid "%{text} is available" -msgstr "" +msgstr "%{text} å¯ç”¨" msgid "(checkout the %{link} for information on how to install it)." msgstr "(如何安è£è«‹åƒé–± %{link})" @@ -94,15 +105,30 @@ msgstr "第一次å”作" msgid "2FA enabled" msgstr "已啟用雙é‡èªè‰" +msgid "<strong>Removes</strong> source branch" +msgstr "<strong>刪除</strong>來æºåˆ†æ”¯" + msgid "A collection of graphs regarding Continuous Integration" msgstr "æŒçºŒæ•´åˆ (CI) 相關的圖表" +msgid "A new branch will be created in your fork and a new merge request will be started." +msgstr "將會å†å‰µå»ºä¸€å€‹æ–°çš„分支,並建立一個新的åˆä½µè«‹æ±‚。" + +msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}." +msgstr "一個專案æ供了以下功能,å˜æ”¾ä½ 的文件(å˜å„²åº«)ï¼Œè¨ˆåŠƒä½ çš„å·¥ä½œ(è°é¡Œ)ï¼Œä¸¦ç™¼å¸ƒä½ çš„æ–‡ä»¶(ç¶åŸº), %{among_other_things_link}。" + +msgid "A user with write access to the source branch selected this option" +msgstr "一個有å˜å–原始分支權é™çš„使用者,é¸æ“‡äº†æ¤é …ç›®" + msgid "About auto deploy" msgstr "關於自動部署" msgid "Abuse Reports" msgstr "æ¿«ç”¨å ±å‘Š" +msgid "Abuse reports" +msgstr "" + msgid "Access Tokens" msgstr "å˜å–æ†‘è‰ (access token)" @@ -112,6 +138,9 @@ msgstr "已暫時åœç”¨å¤±æ•—çš„ Git 儲å˜ç©ºé–“。當儲å˜ç©ºé–“æ¢å¾©æ£å¸¸å msgid "Account" msgstr "帳號" +msgid "Account and limit settings" +msgstr "" + msgid "Active" msgstr "啟用" @@ -119,7 +148,7 @@ msgid "Activity" msgstr "活動" msgid "Add" -msgstr "" +msgstr "å¢žåŠ " msgid "Add Changelog" msgstr "新增更新日誌" @@ -128,76 +157,76 @@ msgid "Add Contribution guide" msgstr "新增å”作指å—" msgid "Add Group Webhooks and GitLab Enterprise Edition." -msgstr "" +msgstr "啟用群組 Webhooks åŠ GitLab ä¼æ¥ç‰ˆã€‚" msgid "Add Kubernetes cluster" -msgstr "" +msgstr "å¢žåŠ Kubernetes å¢é›†" msgid "Add License" msgstr "新增授權æ¢æ¬¾" msgid "Add Readme" -msgstr "" +msgstr "å¢žåŠ èªªæ˜Žæª”æ¡ˆ" msgid "Add new directory" msgstr "新增目錄" msgid "Add todo" -msgstr "" +msgstr "å¢žåŠ å¾…è¾¦äº‹é …" msgid "AdminArea|Stop all jobs" -msgstr "" +msgstr "åœæ¢æ‰€æœ‰ä»»å‹™" msgid "AdminArea|Stop all jobs?" -msgstr "" +msgstr "è¦åœæ¢æ‰€æœ‰ä»»å‹™å—Žï¼Ÿ" msgid "AdminArea|Stop jobs" -msgstr "" +msgstr "åœæ¢ä»»å‹™" msgid "AdminArea|Stopping jobs failed" -msgstr "" +msgstr "åœæ¢ä»»å‹™å¤±æ•—" msgid "AdminArea|You’re about to stop all jobs.This will halt all current jobs that are running." -msgstr "" +msgstr "您將åœæ¢æ‰€æœ‰ä»»å‹™ï¼Œé€™å°‡æœƒæš«åœæ‰€æœ‰æ£åœ¨é‹è¡Œçš„任務。" msgid "AdminHealthPageLink|health page" msgstr "系統狀態" msgid "AdminProjects|Delete" -msgstr "" +msgstr "刪除" msgid "AdminProjects|Delete Project %{projectName}?" -msgstr "" +msgstr "刪除專案 %{projectName} ?" msgid "AdminProjects|Delete project" -msgstr "" +msgstr "刪除專案" msgid "AdminSettings|Specify a domain to use by default for every project's Auto Review Apps and Auto Deploy stages." msgstr "" msgid "AdminUsers|Block user" -msgstr "" +msgstr "å°éŽ–使用者" msgid "AdminUsers|Delete User %{username} and contributions?" -msgstr "" +msgstr "刪除使用者 %{username} åŠå…¶è²¢ç»ï¼Ÿ" msgid "AdminUsers|Delete User %{username}?" -msgstr "" +msgstr "刪除使用者 %{username} ?" msgid "AdminUsers|Delete user" -msgstr "" +msgstr "刪除使用者" msgid "AdminUsers|Delete user and contributions" -msgstr "" +msgstr "刪除使用者åŠå…¶è²¢ç»" msgid "AdminUsers|To confirm, type %{projectName}" -msgstr "" +msgstr "請輸入 %{projectName} 以進行確èª" msgid "AdminUsers|To confirm, type %{username}" -msgstr "" +msgstr "請輸入 %{username} 以進行確èª" msgid "Advanced" -msgstr "" +msgstr "進階è¨ç½®" msgid "Advanced settings" msgstr "進階è¨å®š" @@ -206,17 +235,41 @@ msgid "All" msgstr "全部" msgid "All changes are committed" +msgstr "所有改變都已經æ交" + +msgid "All features are enabled for blank projects, from templates, or when importing, but you can disable them afterward in the project settings." +msgstr "從模æ¿å»ºç«‹æˆ–導入專案時將啟用所有功能,您å¯ä»¥åœ¨å°ˆæ¡ˆè¨ç½®ä¸å°‡å…¶é—œé–‰ã€‚" + +msgid "Allow edits from maintainers." +msgstr "å…許ç¶è·äººå“¡ç·¨è¼¯ã€‚" + +msgid "Allow rendering of PlantUML diagrams in Asciidoc documents." +msgstr "" + +msgid "Allow requests to the local network from hooks and services." msgstr "" msgid "Allows you to add and manage Kubernetes clusters." +msgstr "å…è¨±æ‚¨å¢žåŠ å’Œç®¡ç†Kuberneteså¢é›†ã€‚" + +msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" msgstr "" -msgid "An error occurred previewing the blob" +msgid "Also called \"Relying party service URL\" or \"Reply URL\"" msgstr "" -msgid "An error occurred when toggling the notification subscription" +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "æˆ–è€…ï¼Œä½ å¯ä»¥ä½¿ç”¨ %{personal_access_token_link}ã€‚ç•¶ä½ å»ºç«‹ä½ çš„å€‹äººå˜å–權æ–æ™‚ï¼Œä½ å°‡éœ€è¦é¸æ“‡<code>檔案庫</code>範åœï¼Œæ‰€ä»¥æˆ‘å€‘å°‡æœƒé¡¯ç¤ºä½ å…¬é–‹åŠç§äººçš„檔案庫清單進行連çµã€‚" + +msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." msgstr "" +msgid "An error occurred previewing the blob" +msgstr "é 覽 blob 檔案時發生錯誤" + +msgid "An error occurred when toggling the notification subscription" +msgstr "切æ›è¨‚閱通知時發生錯誤" + msgid "An error occurred when updating the issue weight" msgstr "" @@ -227,7 +280,7 @@ msgid "An error occurred while detecting host keys" msgstr "" msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again." -msgstr "" +msgstr "解除亮高顯示時發生錯誤,請é‡æ–°æ•´ç†é é¢å†æ¬¡å˜—試。" msgid "An error occurred while fetching markdown preview" msgstr "" @@ -281,7 +334,7 @@ msgid "An error occurred while saving LDAP override status. Please try again." msgstr "" msgid "An error occurred while saving assignees" -msgstr "" +msgstr "儲å˜è¢«æŒ‡æ´¾äººæ™‚發生錯誤" msgid "An error occurred while validating username" msgstr "" @@ -289,6 +342,9 @@ msgstr "" msgid "An error occurred. Please try again." msgstr "發生錯誤,請å†è©¦ä¸€æ¬¡ã€‚" +msgid "Any Label" +msgstr "ä»»æ„標籤" + msgid "Appearance" msgstr "外觀" @@ -296,10 +352,10 @@ msgid "Applications" msgstr "應用程å¼" msgid "Apr" -msgstr "" +msgstr "四月" msgid "April" -msgstr "" +msgstr "四月" msgid "Archived project! Repository is read-only" msgstr "æ¤å°ˆæ¡ˆå·²å°å˜ï¼æª”案庫 (repository) 為唯讀狀態" @@ -320,31 +376,43 @@ msgid "Are you sure?" msgstr "確定嗎?" msgid "Artifacts" +msgstr "產物" + +msgid "Assertion consumer service URL" msgstr "" msgid "Assign custom color like #FF0000" -msgstr "" +msgstr "自定義é¡è‰²ï¼Œä¾‹å¦‚ #FF0000" msgid "Assign labels" -msgstr "" +msgstr "指派標籤" msgid "Assign milestone" -msgstr "" +msgstr "指派里程碑" msgid "Assign to" +msgstr "指派給" + +msgid "Assigned Issues" msgstr "" -msgid "Assignee" +msgid "Assigned Merge Requests" +msgstr "" + +msgid "Assigned to :name" msgstr "" +msgid "Assignee" +msgstr "指派人" + msgid "Attach a file by drag & drop or %{upload_link}" msgstr "拖放檔案到æ¤è™•æˆ–者 %{upload_link}" msgid "Aug" -msgstr "" +msgstr "八月" msgid "August" -msgstr "" +msgstr "八月" msgid "Authentication Log" msgstr "登入紀錄" @@ -353,9 +421,12 @@ msgid "Author" msgstr "作者" msgid "Authors: %{authors}" -msgstr "" +msgstr "作者:%{authors}" msgid "Auto DevOps enabled" +msgstr "啟動自動 DevOps" + +msgid "Auto DevOps, runners and job artifacts" msgstr "" msgid "Auto Review Apps and Auto Deploy need a %{kubernetes} to work correctly." @@ -389,22 +460,28 @@ msgid "AutoDevOps|add a Kubernetes cluster" msgstr "" msgid "AutoDevOps|enable Auto DevOps (Beta)" -msgstr "" +msgstr "啟用自動 DevOps (測試版)" msgid "Available" -msgstr "" +msgstr "能é‹åšçš„" msgid "Avatar will be removed. Are you sure?" -msgstr "" +msgstr "大é è²¼å°‡è¢«åˆªé™¤ã€‚ä½ ç¢ºå®šå—Žï¼Ÿ" msgid "Average per day: %{average}" +msgstr "å¹³å‡æ¯å¤©ï¼š%{average}" + +msgid "Background Color" msgstr "" -msgid "Begin with the selected commit" +msgid "Background jobs" msgstr "" +msgid "Begin with the selected commit" +msgstr "從é¸å®šçš„變更紀錄開始" + msgid "Billing" -msgstr "" +msgstr "帳單" msgid "BillingPlans|%{group_name} is currently on the %{plan_link} plan." msgstr "" @@ -482,6 +559,15 @@ msgstr "切æ›åˆ†æ”¯ (branch)" msgid "Branches" msgstr "分支 (branch) " +msgid "Branches|Active" +msgstr "" + +msgid "Branches|Active branches" +msgstr "" + +msgid "Branches|All" +msgstr "全部" + msgid "Branches|Cant find HEAD commit for this branch" msgstr "找ä¸åˆ°æ¤åˆ†æ”¯çš„ HEAD 更動。" @@ -527,12 +613,39 @@ msgstr "ä¸€æ—¦ä½ ç¢ºèªä¸¦æŒ‰ä¸‹ %{delete_protected_branch} 之後,æ¤å‹•ä½œå° msgid "Branches|Only a project master or owner can delete a protected branch" msgstr "åªæœ‰å°ˆæ¡ˆç®¡ç†è€…或æ“有者æ‰èƒ½åˆªé™¤è¢«ä¿è·çš„分支。" -msgid "Branches|Protected branches can be managed in %{project_settings_link}" -msgstr "在 %{project_settings_link} 管ç†å—ä¿è·çš„分支" +msgid "Branches|Overview" +msgstr "" + +msgid "Branches|Protected branches can be managed in %{project_settings_link}." +msgstr "" + +msgid "Branches|Show active branches" +msgstr "" + +msgid "Branches|Show all branches" +msgstr "" + +msgid "Branches|Show more active branches" +msgstr "" + +msgid "Branches|Show more stale branches" +msgstr "" + +msgid "Branches|Show overview of the branches" +msgstr "" + +msgid "Branches|Show stale branches" +msgstr "" msgid "Branches|Sort by" msgstr "排åºè‡ª" +msgid "Branches|Stale" +msgstr "" + +msgid "Branches|Stale branches" +msgstr "" + msgid "Branches|The branch could not be updated automatically because it has diverged from its upstream counterpart." msgstr "" @@ -578,13 +691,22 @@ msgstr "ç€è¦½æª”案" msgid "Browse files" msgstr "ç€è¦½æª”案" +msgid "Business" +msgstr "" + msgid "ByAuthor|by" msgstr "作者:" msgid "CI / CD" msgstr "CI / CD" +msgid "CI/CD" +msgstr "" + msgid "CI/CD configuration" +msgstr "CI/CD è¨å®š" + +msgid "CI/CD for external repo" msgstr "" msgid "CICD|Jobs" @@ -593,15 +715,21 @@ msgstr "作æ¥" msgid "Cancel" msgstr "å–消" -msgid "Cancel edit" -msgstr "å–消編輯" +msgid "Cannot be merged automatically" +msgstr "" msgid "Cannot modify managed Kubernetes cluster" msgstr "" +msgid "Certificate fingerprint" +msgstr "" + msgid "Change Weight" msgstr "" +msgid "Change this value to influence how frequently the GitLab UI polls for updates." +msgstr "" + msgid "ChangeTypeActionLabel|Pick into branch" msgstr "挑é¸åˆ°åˆ†æ”¯ (branch) " @@ -645,17 +773,23 @@ msgid "Cherry-pick this merge request" msgstr "挑é¸æ¤åˆä½µè«‹æ±‚ (merge request) " msgid "Choose File ..." -msgstr "" +msgstr "é¸æ“‡æª”案⋯" msgid "Choose a branch/tag (e.g. %{master}) or enter a commit (e.g. %{sha}) to see what's changed or to create a merge request." msgstr "" msgid "Choose file..." -msgstr "" +msgstr "é¸æ“‡æª”案⋯" msgid "Choose which groups you wish to synchronize to this secondary node." msgstr "" +msgid "Choose which repositories you want to connect and run CI/CD pipelines." +msgstr "" + +msgid "Choose which repositories you want to import." +msgstr "" + msgid "Choose which shards you wish to synchronize to this secondary node." msgstr "" @@ -758,6 +892,15 @@ msgstr "" msgid "Click to expand text" msgstr "" +msgid "Client authentication certificate" +msgstr "" + +msgid "Client authentication key" +msgstr "" + +msgid "Client authentication key password" +msgstr "" + msgid "Clone repository" msgstr "複製(clone)檔案庫(repository)" @@ -857,6 +1000,9 @@ msgstr "" msgid "ClusterIntegration|Helm Tiller" msgstr "" +msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data." +msgstr "" + msgid "ClusterIntegration|Ingress" msgstr "" @@ -866,6 +1012,9 @@ msgstr "" msgid "ClusterIntegration|Install" msgstr "" +msgid "ClusterIntegration|Install Prometheus" +msgstr "" + msgid "ClusterIntegration|Installed" msgstr "" @@ -884,6 +1033,9 @@ msgstr "" msgid "ClusterIntegration|Kubernetes cluster details" msgstr "" +msgid "ClusterIntegration|Kubernetes cluster health" +msgstr "" + msgid "ClusterIntegration|Kubernetes cluster integration" msgstr "" @@ -917,6 +1069,9 @@ msgstr "å¸ç¿’更多有關於%{link_to_documentation}" msgid "ClusterIntegration|Learn more about environments" msgstr "" +msgid "ClusterIntegration|Learn more about security configuration" +msgstr "" + msgid "ClusterIntegration|Machine type" msgstr "機器型別" @@ -977,6 +1132,9 @@ msgstr "" msgid "ClusterIntegration|Save changes" msgstr "" +msgid "ClusterIntegration|Security" +msgstr "" + msgid "ClusterIntegration|See and edit the details for your Kubernetes cluster" msgstr "" @@ -1004,6 +1162,9 @@ msgstr "" msgid "ClusterIntegration|Something went wrong while installing %{title}" msgstr "" +msgid "ClusterIntegration|The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerised application." +msgstr "" + msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below" msgstr "" @@ -1126,6 +1287,12 @@ msgstr "" msgid "Compare Revisions" msgstr "" +msgid "Compare changes with the last commit" +msgstr "" + +msgid "Compare changes with the merge request target branch" +msgstr "" + msgid "CompareBranches|%{source_branch} and %{target_branch} are the same." msgstr "" @@ -1141,9 +1308,45 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Confidential" +msgstr "" + msgid "Confidentiality" msgstr "" +msgid "Configure Gitaly timeouts." +msgstr "" + +msgid "Configure Sidekiq job throttling." +msgstr "" + +msgid "Configure automatic git checks and housekeeping on repositories." +msgstr "" + +msgid "Configure limits for web and API requests." +msgstr "" + +msgid "Configure storage path and circuit breaker settings." +msgstr "" + +msgid "Configure the way a user creates a new account." +msgstr "" + +msgid "Connect" +msgstr "" + +msgid "Connect all repositories" +msgstr "" + +msgid "Connect repositories from GitHub" +msgstr "" + +msgid "Connect your external repositories, and CI/CD pipelines will run for new commits. A GitLab project will be created with only CI/CD features enabled." +msgstr "" + +msgid "Connecting..." +msgstr "" + msgid "Container Registry" msgstr "Container Registry" @@ -1189,6 +1392,12 @@ msgstr "使用ä¸åŒçš„æ˜ åƒæª”å稱" msgid "ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images." msgstr "å°‡ Docker Container Registry æ•´åˆåˆ° GitLab ä¸å¾Œï¼Œæ¯å€‹å°ˆæ¡ˆéƒ½å¯ä»¥æœ‰è‡ªå·±çš„ç©ºé–“ä¾†å„²å˜ Docker çš„æ˜ åƒæª”" +msgid "Continuous Integration and Deployment" +msgstr "" + +msgid "Contribution" +msgstr "" + msgid "Contribution guide" msgstr "å”作指å—" @@ -1252,8 +1461,8 @@ msgstr "" msgid "Create directory" msgstr "建立目錄" -msgid "Create empty bare repository" -msgstr "建立一個新的 bare repository" +msgid "Create empty repository" +msgstr "" msgid "Create epic" msgstr "" @@ -1261,6 +1470,9 @@ msgstr "" msgid "Create file" msgstr "新增檔案" +msgid "Create group label" +msgstr "" + msgid "Create lists from labels. Issues with that label appear in that list." msgstr "" @@ -1285,6 +1497,9 @@ msgstr "" msgid "Create new..." msgstr "建立..." +msgid "Create project label" +msgstr "" + msgid "CreateNewFork|Fork" msgstr "分支 (fork) " @@ -1318,6 +1533,9 @@ msgstr "自訂事件通知" msgid "Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}." msgstr "自訂通知的ç‰ç´šèˆ‡åƒèˆ‡åº¦è¨å®šç›¸åŒã€‚ä½¿ç”¨è‡ªè¨‚é€šçŸ¥è®“ä½ åªæ”¶åˆ°ç‰¹å®šçš„事件通知。想了解更多資訊,請查閱 %{notification_link} 。" +msgid "Customize colors" +msgstr "" + msgid "Cycle Analytics" msgstr "週期分æž" @@ -1400,9 +1618,15 @@ msgstr "關閉循環分æžä»‹ç´¹è¦–窗" msgid "Dismiss Merge Request promotion" msgstr "" +msgid "Documentation for popular identity providers" +msgstr "" + msgid "Don't show again" msgstr "ä¸å†é¡¯ç¤º" +msgid "Done" +msgstr "" + msgid "Download" msgstr "下載" @@ -1430,9 +1654,15 @@ msgstr "差異檔 (diff)" msgid "DownloadSource|Download" msgstr "下載原始碼" +msgid "Downvotes" +msgstr "" + msgid "Due date" msgstr "" +msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." +msgstr "" + msgid "Edit" msgstr "編輯" @@ -1442,6 +1672,18 @@ msgstr "編輯 %{id} æµæ°´ç·š (pipeline) 排程" msgid "Edit files in the editor and commit changes here" msgstr "" +msgid "Editing" +msgstr "" + +msgid "Elasticsearch" +msgstr "" + +msgid "Elasticsearch intergration. Elasticsearch AWS IAM." +msgstr "" + +msgid "Email" +msgstr "" + msgid "Emails" msgstr "é›»å郵件" @@ -1451,6 +1693,33 @@ msgstr "" msgid "Enable Auto DevOps" msgstr "" +msgid "Enable SAML authentication for this group" +msgstr "" + +msgid "Enable Sentry for error reporting and logging." +msgstr "" + +msgid "Enable and configure InfluxDB metrics." +msgstr "" + +msgid "Enable and configure Prometheus metrics." +msgstr "" + +msgid "Enable classification control using an external service" +msgstr "" + +msgid "Enable or disable version check and usage ping." +msgstr "" + +msgid "Enable reCAPTCHA or Akismet and set IP limits." +msgstr "" + +msgid "Enable the Performance Bar for a given group." +msgstr "" + +msgid "Enabled" +msgstr "" + msgid "Environments|An error occurred while fetching the environments." msgstr "" @@ -1511,6 +1780,9 @@ msgstr "" msgid "Epics let you manage your portfolio of projects more efficiently and with less effort" msgstr "" +msgid "Error Reporting and Logging" +msgstr "" + msgid "Error checking branch data. Please try again." msgstr "" @@ -1586,9 +1858,15 @@ msgstr "æœå°‹å…¬é–‹çš„群組" msgid "External Classification Policy Authorization" msgstr "" +msgid "External authentication" +msgstr "" + msgid "External authorization denied access to this project" msgstr "" +msgid "External authorization request timeout" +msgstr "" + msgid "ExternalAuthorizationService|Classification Label" msgstr "" @@ -1598,6 +1876,9 @@ msgstr "" msgid "ExternalAuthorizationService|When no classification label is set the default label `%{default_label}` will be used." msgstr "" +msgid "Failed" +msgstr "" + msgid "Failed Jobs" msgstr "" @@ -1631,6 +1912,9 @@ msgstr "檔案" msgid "Files (%{human_size})" msgstr "" +msgid "Fill in the fields below, turn on <strong>%{enable_label}</strong>, and press <strong>%{save_changes}</strong>" +msgstr "" + msgid "Filter by commit message" msgstr "以更動說明篩é¸" @@ -1640,12 +1924,21 @@ msgstr "以路徑æœå°‹" msgid "Find file" msgstr "æœå°‹æª”案" +msgid "Finished" +msgstr "" + msgid "FirstPushedBy|First" msgstr "é¦–æ¬¡æŽ¨é€ (push) " msgid "FirstPushedBy|pushed by" msgstr "推é€è€… (push) :" +msgid "Font Color" +msgstr "" + +msgid "Footer message" +msgstr "" + msgid "Fork" msgid_plural "Forks" msgstr[0] "分支 (fork) " @@ -1656,9 +1949,15 @@ msgstr "分支 (fork) 自" msgid "ForkedFromProjectPath|Forked from %{project_name} (deleted)" msgstr "從 %{project_name} Fork. (deleted)" +msgid "Forking in progress" +msgstr "" + msgid "Format" msgstr "æ ¼å¼" +msgid "From %{provider_title}" +msgstr "" + msgid "From issue creation until deploy to production" msgstr "從è°é¡Œ (issue) 建立直到部署至營é‹ç’°å¢ƒ" @@ -1677,12 +1976,18 @@ msgstr "" msgid "Geo Nodes" msgstr "" +msgid "Geo allows you to replicate your GitLab instance to other geographical locations." +msgstr "" + msgid "GeoNodeSyncStatus|Node is failing or broken." msgstr "" msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage." msgstr "" +msgid "GeoNodes|Checksummed" +msgstr "" + msgid "GeoNodes|Database replication lag:" msgstr "" @@ -1728,21 +2033,48 @@ msgstr "" msgid "GeoNodes|New node" msgstr "" +msgid "GeoNodes|Node Authentication was successfully repaired." +msgstr "" + +msgid "GeoNodes|Node was successfully removed." +msgstr "" + +msgid "GeoNodes|Not checksummed" +msgstr "" + msgid "GeoNodes|Out of sync" msgstr "" +msgid "GeoNodes|Removing a node stops the sync process. Are you sure?" +msgstr "" + msgid "GeoNodes|Replication slot WAL:" msgstr "" msgid "GeoNodes|Replication slots:" msgstr "" +msgid "GeoNodes|Repositories checksummed:" +msgstr "" + msgid "GeoNodes|Repositories:" msgstr "" +msgid "GeoNodes|Repository checksums verified:" +msgstr "" + msgid "GeoNodes|Selective" msgstr "" +msgid "GeoNodes|Something went wrong while changing node status" +msgstr "" + +msgid "GeoNodes|Something went wrong while removing node" +msgstr "" + +msgid "GeoNodes|Something went wrong while repairing node" +msgstr "" + msgid "GeoNodes|Storage config:" msgstr "" @@ -1755,9 +2087,21 @@ msgstr "" msgid "GeoNodes|Unused slots" msgstr "" +msgid "GeoNodes|Unverified" +msgstr "" + msgid "GeoNodes|Used slots" msgstr "" +msgid "GeoNodes|Verified" +msgstr "" + +msgid "GeoNodes|Wiki checksums verified:" +msgstr "" + +msgid "GeoNodes|Wikis checksummed:" +msgstr "" + msgid "GeoNodes|Wikis:" msgstr "" @@ -1788,6 +2132,9 @@ msgstr "" msgid "Geo|Shards to synchronize" msgstr "" +msgid "Git repository URL" +msgstr "" + msgid "Git revision" msgstr "" @@ -1797,12 +2144,30 @@ msgstr "Git 儲å˜ç©ºé–“å¥åº·æŒ‡æ•¸å·²é‡ç½®" msgid "Git version" msgstr "" +msgid "GitHub import" +msgstr "" + +msgid "GitLab CI Linter has been moved" +msgstr "" + +msgid "GitLab Geo" +msgstr "" + msgid "GitLab Runner section" msgstr "GitLab Runner" +msgid "GitLab single sign on URL" +msgstr "" + +msgid "Gitaly" +msgstr "" + msgid "Gitaly Servers" msgstr "" +msgid "Go back" +msgstr "" + msgid "Go to your fork" msgstr "å‰å¾€æ‚¨çš„分支 (fork) " @@ -1869,9 +2234,6 @@ msgstr "找ä¸åˆ°ç¾¤çµ„" msgid "GroupsEmptyState|You can manage your group member’s permissions and access to each project in the group." msgstr "ä½ å¯ä»¥ç®¡ç†ç¾¤çµ„內所有æˆå“¡çš„æ¯å€‹å°ˆæ¡ˆçš„å˜å–權é™" -msgid "GroupsTree|Are you sure you want to leave the \"${group.fullName}\" group?" -msgstr "" - msgid "GroupsTree|Create a project in this group." msgstr "在æ¤ç¾¤çµ„建立新的專案" @@ -1902,6 +2264,9 @@ msgstr "ä¸å¥½æ„æ€ï¼Œæ²’有æœå°‹åˆ°ä»»ä½•ç¬¦åˆæ¢ä»¶çš„群組或專案" msgid "Have your users email" msgstr "" +msgid "Header message" +msgstr "" + msgid "Health Check" msgstr "å¥åº·æª¢æŸ¥" @@ -1920,6 +2285,15 @@ msgstr "沒有檢測到å¥åº·å•é¡Œ" msgid "HealthCheck|Unhealthy" msgstr "ä¸è‰¯" +msgid "Help" +msgstr "" + +msgid "Help page" +msgstr "" + +msgid "Help page text and support page url." +msgstr "" + msgid "Hide value" msgid_plural "Hide values" msgstr[0] "" @@ -1930,12 +2304,39 @@ msgstr "æ·å²" msgid "Housekeeping successfully started" msgstr "已開始ç¶è·" +msgid "Identity provider single sign on URL" +msgstr "" + +msgid "If enabled, access to projects will be validated on an external service using their classification label." +msgstr "" + +msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" +msgstr "" + msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." +msgstr "" + +msgid "Import" +msgstr "" + +msgid "Import all repositories" +msgstr "" + +msgid "Import in progress" +msgstr "" + +msgid "Import repositories from GitHub" +msgstr "" + msgid "Import repository" msgstr "匯入檔案庫 (repository)" +msgid "ImportButtons|Connect repositories from" +msgstr "" + msgid "Improve Issue boards with GitLab Enterprise Edition." msgstr "" @@ -1958,6 +2359,9 @@ msgstr[0] "" msgid "Instance does not support multiple Kubernetes clusters" msgstr "" +msgid "Integrations" +msgstr "" + msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" @@ -2012,6 +2416,9 @@ msgstr "" msgid "June" msgstr "" +msgid "Koding" +msgstr "" + msgid "Kubernetes" msgstr "" @@ -2042,12 +2449,30 @@ msgstr "åœç”¨" msgid "LFSStatus|Enabled" msgstr "啟用" +msgid "Label" +msgstr "" + +msgid "LabelSelect|%{firstLabelName} +%{remainingLabelCount} more" +msgstr "" + +msgid "LabelSelect|%{labelsString}, and %{remainingLabelCount} more" +msgstr "" + msgid "Labels" msgstr "標籤" +msgid "Labels can be applied to %{features}. Group labels are available for any project within the group." +msgstr "" + msgid "Labels can be applied to issues and merge requests to categorize them." msgstr "" +msgid "Labels|<span>Promote label</span> %{labelTitle} <span>to Group Label?</span>" +msgstr "" + +msgid "Labels|Promote Label" +msgstr "" + msgid "Last %d day" msgid_plural "Last %d days" msgstr[0] "最近 %d 天" @@ -2106,6 +2531,9 @@ msgstr "" msgid "List" msgstr "" +msgid "List your GitHub repositories" +msgstr "" + msgid "Loading the GitLab IDE..." msgstr "" @@ -2118,9 +2546,6 @@ msgstr "" msgid "Lock not found" msgstr "" -msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment." -msgstr "" - msgid "Locked" msgstr "鎖定" @@ -2136,9 +2561,21 @@ msgstr "登入" msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos." msgstr "" +msgid "Manage all notifications" +msgstr "" + +msgid "Manage group labels" +msgstr "" + msgid "Manage labels" msgstr "" +msgid "Manage project labels" +msgstr "" + +msgid "Manage your group’s membership while adding another level of security with SAML." +msgstr "" + msgid "Mar" msgstr "" @@ -2160,6 +2597,9 @@ msgstr "ä¸ä½æ•¸" msgid "Members" msgstr "æˆå“¡" +msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." +msgstr "" + msgid "Merge Requests" msgstr "åˆä½µè«‹æ±‚ (merge request)" @@ -2172,15 +2612,87 @@ msgstr "åˆä½µè«‹æ±‚" msgid "Merge requests are a place to propose changes you've made to a project and discuss those changes with others" msgstr "" -msgid "MergeRequest|Approved" -msgstr "" - msgid "Merged" msgstr "" msgid "Messages" msgstr "公告" +msgid "Metrics - Influx" +msgstr "" + +msgid "Metrics - Prometheus" +msgstr "" + +msgid "Metrics|Business" +msgstr "" + +msgid "Metrics|Create metric" +msgstr "" + +msgid "Metrics|Edit metric" +msgstr "" + +msgid "Metrics|For grouping similar metrics" +msgstr "" + +msgid "Metrics|Label of the chart's vertical axis. Usually the type of the unit being charted. The horizontal axis (X-axis) always represents time." +msgstr "" + +msgid "Metrics|Legend label (optional)" +msgstr "" + +msgid "Metrics|Must be a valid PromQL query." +msgstr "" + +msgid "Metrics|Name" +msgstr "" + +msgid "Metrics|New metric" +msgstr "" + +msgid "Metrics|Prometheus Query Documentation" +msgstr "" + +msgid "Metrics|Query" +msgstr "" + +msgid "Metrics|Response" +msgstr "" + +msgid "Metrics|System" +msgstr "" + +msgid "Metrics|Type" +msgstr "" + +msgid "Metrics|Unit label" +msgstr "" + +msgid "Metrics|Used as a title for the chart" +msgstr "" + +msgid "Metrics|Used if the query returns a single series. If it returns multiple series, their legend labels will be picked up from the response." +msgstr "" + +msgid "Metrics|Y-axis label" +msgstr "" + +msgid "Metrics|e.g. HTTP requests" +msgstr "" + +msgid "Metrics|e.g. Requests/second" +msgstr "" + +msgid "Metrics|e.g. Throughput" +msgstr "" + +msgid "Metrics|e.g. rate(http_requests_total[5m])" +msgstr "" + +msgid "Metrics|e.g. req/sec" +msgstr "" + msgid "Milestone" msgstr "" @@ -2196,6 +2708,15 @@ msgstr "" msgid "Milestones|Milestone %{milestoneTitle} was not found" msgstr "" +msgid "Milestones|Promote %{milestoneTitle} to group milestone?" +msgstr "" + +msgid "Milestones|Promote Milestone" +msgstr "" + +msgid "Milestones|This action cannot be reversed." +msgstr "" + msgid "MissingSSHKeyWarningLink|add an SSH key" msgstr "新增 SSH 金鑰" @@ -2208,6 +2729,9 @@ msgstr "" msgid "Monitoring" msgstr "監控" +msgid "More info" +msgstr "" + msgid "More information" msgstr "" @@ -2281,6 +2805,9 @@ msgstr "æ–°å群組" msgid "New tag" msgstr "新增標籤" +msgid "No Label" +msgstr "" + msgid "No assignee" msgstr "" @@ -2299,6 +2826,9 @@ msgstr "" msgid "No file chosen" msgstr "" +msgid "No labels created yet." +msgstr "" + msgid "No repository" msgstr "找ä¸åˆ°æª”案庫 (repository)" @@ -2314,6 +2844,12 @@ msgstr "" msgid "Not available" msgstr "無法使用" +msgid "Not available for private projects" +msgstr "" + +msgid "Not available for protected branches" +msgstr "" + msgid "Not confidential" msgstr "" @@ -2323,6 +2859,18 @@ msgstr "資料ä¸è¶³" msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}" msgstr "" +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token." +msgstr "" + +msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." +msgstr "" + msgid "Notification events" msgstr "事件通知" @@ -2407,6 +2955,12 @@ msgstr "" msgid "OfSearchInADropdown|Filter" msgstr "篩é¸" +msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" +msgstr "" + +msgid "Online IDE integration settings." +msgstr "" + msgid "Only project members can comment." msgstr "åªæœ‰ç¾¤çµ„æˆå“¡æ‰èƒ½ç•™è¨€ã€‚" @@ -2428,12 +2982,18 @@ msgstr "é¸é …" msgid "Otherwise it is recommended you start with one of the options below." msgstr "" +msgid "Outbound requests" +msgstr "" + msgid "Overview" msgstr "總覽" msgid "Owner" msgstr "所有權" +msgid "Pages" +msgstr "" + msgid "Pagination|Last »" msgstr "最末é »" @@ -2446,9 +3006,21 @@ msgstr "上一é " msgid "Pagination|« First" msgstr "« 第一é " +msgid "Part of merge request changes" +msgstr "" + msgid "Password" msgstr "密碼" +msgid "Pending" +msgstr "" + +msgid "Performance optimization" +msgstr "" + +msgid "Personal Access Token" +msgstr "" + msgid "Pipeline" msgstr "æµæ°´ç·š (pipeline) " @@ -2530,9 +3102,36 @@ msgstr "去年的æµæ°´ç·š" msgid "Pipelines|Build with confidence" msgstr "" +msgid "Pipelines|CI Lint" +msgstr "CI Lint" + +msgid "Pipelines|Clear Runner Caches" +msgstr "清除é‹è¡Œå™¨å¿«å–" + msgid "Pipelines|Get started with Pipelines" msgstr "" +msgid "Pipelines|Loading Pipelines" +msgstr "" + +msgid "Pipelines|Project cache successfully reset." +msgstr "" + +msgid "Pipelines|Run Pipeline" +msgstr "" + +msgid "Pipelines|Something went wrong while cleaning runners cache." +msgstr "" + +msgid "Pipelines|There are currently no %{scope} pipelines." +msgstr "" + +msgid "Pipelines|There are currently no pipelines." +msgstr "" + +msgid "Pipelines|This project is not currently set up to run pipelines." +msgstr "" + msgid "Pipeline|Retry pipeline" msgstr "" @@ -2563,6 +3162,9 @@ msgstr "於階段" msgid "Pipeline|with stages" msgstr "於階段" +msgid "PlantUML" +msgstr "" + msgid "Play" msgstr "" @@ -2572,6 +3174,12 @@ msgstr "" msgid "Please solve the reCAPTCHA" msgstr "" +msgid "Please wait while we connect to your repository. Refresh at will." +msgstr "" + +msgid "Please wait while we import the repository for you. Refresh at will." +msgstr "" + msgid "Preferences" msgstr "å好è¨å®š" @@ -2626,6 +3234,9 @@ msgstr "ä½ çš„å¸³è™Ÿç›®å‰æ“有這些群組:" msgid "Profiles|your account" msgstr "ä½ çš„å¸³è™Ÿ" +msgid "Profiling - Performance bar" +msgstr "" + msgid "Programming languages used in this repository" msgstr "" @@ -2650,9 +3261,6 @@ msgstr "" msgid "Project avatar in repository: %{link}" msgstr "" -msgid "Project cache successfully reset." -msgstr "" - msgid "Project details" msgstr "專案細節" @@ -2749,6 +3357,12 @@ msgstr "抱æ‰ï¼Œæ²’有符åˆæœå°‹æ¢ä»¶çš„專案" msgid "ProjectsDropdown|This feature requires browser localStorage support" msgstr "æ¤åŠŸèƒ½éœ€è¦ç€è¦½å™¨æ”¯æ´ localStorage" +msgid "PrometheusService|%{exporters} with %{metrics} were found" +msgstr "" + +msgid "PrometheusService|<p class=\"text-tertiary\">No <a href=\"%{docsUrl}\">common metrics</a> were found</p>" +msgstr "" + msgid "PrometheusService|Active" msgstr "" @@ -2761,9 +3375,21 @@ msgstr "" msgid "PrometheusService|By default, Prometheus listens on ‘http://localhost:9090’. It’s not recommended to change the default address and port as this might affect or conflict with other services running on the GitLab server." msgstr "" +msgid "PrometheusService|Common metrics" +msgstr "" + +msgid "PrometheusService|Common metrics are automatically monitored based on a library of metrics from popular exporters." +msgstr "" + +msgid "PrometheusService|Custom metrics" +msgstr "" + msgid "PrometheusService|Finding and configuring metrics..." msgstr "" +msgid "PrometheusService|Finding custom metrics..." +msgstr "" + msgid "PrometheusService|Install Prometheus on clusters" msgstr "" @@ -2776,19 +3402,13 @@ msgstr "" msgid "PrometheusService|Metrics" msgstr "" -msgid "PrometheusService|Metrics are automatically configured and monitored based on a library of metrics from popular exporters." -msgstr "" - msgid "PrometheusService|Missing environment variable" msgstr "" -msgid "PrometheusService|Monitored" -msgstr "" - msgid "PrometheusService|More information" msgstr "" -msgid "PrometheusService|No metrics are being monitored. To start monitoring, deploy to an environment." +msgid "PrometheusService|New metric" msgstr "" msgid "PrometheusService|Prometheus API Base URL, like http://prometheus.example.com/" @@ -2797,6 +3417,9 @@ msgstr "" msgid "PrometheusService|Prometheus is being automatically managed on your clusters" msgstr "" +msgid "PrometheusService|These metrics will only be monitored after your first deployment to an environment" +msgstr "" + msgid "PrometheusService|Time-series monitoring service" msgstr "" @@ -2806,7 +3429,16 @@ msgstr "" msgid "PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below" msgstr "" -msgid "PrometheusService|View environments" +msgid "PrometheusService|Waiting for your first deployment to an environment to find common metrics" +msgstr "" + +msgid "Promote" +msgstr "" + +msgid "Promote to Group Label" +msgstr "" + +msgid "Promote to Group Milestone" msgstr "" msgid "Protip:" @@ -2842,6 +3474,9 @@ msgstr "çžè§£æ›´å¤š" msgid "Readme" msgstr "說明檔" +msgid "Real-time features" +msgstr "" + msgid "RefSwitcher|Branches" msgstr "分支 (branch) " @@ -2875,6 +3510,9 @@ msgstr "相關的åˆä½µè«‹æ±‚ (merge request) " msgid "Related Merged Requests" msgstr "相關已åˆä½µçš„請求" +msgid "Related merge requests" +msgstr "" + msgid "Remind later" msgstr "ç¨å¾Œæ醒" @@ -2890,12 +3528,24 @@ msgstr "刪除專案" msgid "Repair authentication" msgstr "" +msgid "Repo by URL" +msgstr "" + msgid "Repository" msgstr "檔案庫 (repository)" msgid "Repository has no locks." msgstr "" +msgid "Repository maintenance" +msgstr "" + +msgid "Repository mirror settings" +msgstr "" + +msgid "Repository storage" +msgstr "" + msgid "Request Access" msgstr "申請權é™" @@ -2911,6 +3561,9 @@ msgstr "é‡ç½® Runner è¨»å†Šæ†‘è‰ (registration token)" msgid "Resolve discussion" msgstr "" +msgid "Response" +msgstr "" + msgid "Reveal value" msgid_plural "Reveal values" msgstr[0] "" @@ -2921,9 +3574,36 @@ msgstr "還原æ¤æ›´å‹•è¨˜éŒ„ (commit)" msgid "Revert this merge request" msgstr "還原æ¤åˆä½µè«‹æ±‚ (merge request) " +msgid "Review the process for configuring service providers in your identity provider — in this case, GitLab is the \"service provider\" or \"relying party\"." +msgstr "" + +msgid "Reviewing" +msgstr "" + +msgid "Reviewing (merge request !%{mergeRequestId})" +msgstr "" + msgid "Roadmap" msgstr "" +msgid "Run CI/CD pipelines for external repositories" +msgstr "" + +msgid "Runners" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "SAML Single Sign On" +msgstr "" + +msgid "SAML Single Sign On Settings" +msgstr "" + +msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"." +msgstr "" + msgid "SSH Keys" msgstr "SSH 金鑰" @@ -2939,6 +3619,9 @@ msgstr "" msgid "Schedule a new pipeline" msgstr "建立æµæ°´ç·š (pipeline) 排程" +msgid "Scheduled" +msgstr "" + msgid "Schedules" msgstr "排程" @@ -2948,6 +3631,9 @@ msgstr "æµæ°´ç·š (pipeline) 排程" msgid "Scoped issue boards" msgstr "" +msgid "Search" +msgstr "" + msgid "Search branches and tags" msgstr "æœå°‹åˆ†æ”¯ (branch) 和標籤" @@ -3011,15 +3697,33 @@ msgstr "æœå‹™ç¯„本" msgid "Service URL" msgstr "" +msgid "Session expiration, projects limit and attachment size." +msgstr "" + msgid "Set a password on your account to pull or push via %{protocol}." msgstr "è«‹å…ˆè¨å®šå¯†ç¢¼ï¼Œæ‰èƒ½ä½¿ç”¨ %{protocol} 來上傳 (push) 或下載 (pull) 。" +msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." +msgstr "" + +msgid "Set max session time for web terminal." +msgstr "" + +msgid "Set notification email for abuse reports." +msgstr "" + +msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication." +msgstr "" + msgid "Set up CI/CD" msgstr "" msgid "Set up Koding" msgstr "è¨å®š Koding" +msgid "Set up assertions/attributes/claims (email, first_name, last_name) and NameID according to %{docsLinkStart}the documentation %{icon}%{docsLinkEnd}" +msgstr "" + msgid "SetPasswordToCloneLink|set a password" msgstr "è¨å®šå¯†ç¢¼" @@ -3029,6 +3733,9 @@ msgstr "è¨å®š" msgid "Setup a specific Runner automatically" msgstr "" +msgid "Share the <strong>%{sso_label}</strong> with members so they can sign in to your group through your identity provider" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -3063,6 +3770,18 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" +msgid "Sign-in restrictions" +msgstr "" + +msgid "Sign-up restrictions" +msgstr "" + +msgid "Size and domain settings for static websites" +msgstr "" + +msgid "Slack application" +msgstr "" + msgid "Snippets" msgstr "æ–‡å—片段" @@ -3070,18 +3789,12 @@ msgid "Something went wrong on our end" msgstr "" msgid "Something went wrong on our end." -msgstr "發生了錯誤。" - -msgid "Something went wrong trying to change the confidentiality of this issue" -msgstr "" - -msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}" msgstr "" msgid "Something went wrong when toggling the button" msgstr "" -msgid "Something went wrong while closing the %{issuable}. Please try again later" +msgid "Something went wrong while fetching Dependency Scanning." msgstr "" msgid "Something went wrong while fetching SAST." @@ -3093,12 +3806,6 @@ msgstr "讀å–專案時發生錯誤。" msgid "Something went wrong while fetching the registry list." msgstr "讀å–註冊列表時發生錯誤。" -msgid "Something went wrong while reopening the %{issuable}. Please try again later" -msgstr "" - -msgid "Something went wrong while resolving this discussion. Please try again." -msgstr "" - msgid "Something went wrong. Please try again." msgstr "" @@ -3216,12 +3923,21 @@ msgstr "" msgid "Spam Logs" msgstr "垃圾訊æ¯è¨˜éŒ„" +msgid "Spam and Anti-bot Protection" +msgstr "" + msgid "Specify the following URL during the Runner setup:" msgstr "åœ¨å®‰è£ Runner 時指定以下 URL:" msgid "StarProject|Star" msgstr "收è—" +msgid "Starred Projects" +msgstr "" + +msgid "Starred Projects' Activity" +msgstr "" + msgid "Starred projects" msgstr "æ˜Ÿæ¨™é …ç›®" @@ -3231,6 +3947,15 @@ msgstr "以這些改動建立一個新的 %{new_merge_request} " msgid "Start the Runner!" msgstr "å•Ÿå‹• Runner!" +msgid "Started" +msgstr "" + +msgid "State your message to activate" +msgstr "" + +msgid "Status" +msgstr "" + msgid "Stopped" msgstr "" @@ -3243,9 +3968,15 @@ msgstr "å群組" msgid "Switch branch/tag" msgstr "切æ›åˆ†æ”¯ (branch) 或標籤" +msgid "System" +msgstr "" + msgid "System Hooks" msgstr "系統鉤å" +msgid "System header and footer:" +msgstr "" + msgid "Tag (%{tag_count})" msgid_plural "Tags (%{tag_count})" msgstr[0] "" @@ -3325,6 +4056,9 @@ msgstr "" msgid "Target Branch" msgstr "目標分支 (branch) " +msgid "Target branch" +msgstr "" + msgid "Team" msgstr "團隊" @@ -3340,15 +4074,24 @@ msgstr "" msgid "The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project." msgstr "" +msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS." +msgstr "" + msgid "The coding stage shows the time from the first commit to creating the merge request. The data will automatically be added here once you create your first merge request." msgstr "程å¼é–‹ç™¼éšŽæ®µé¡¯ç¤ºå¾žç¬¬ä¸€æ¬¡æ›´å‹•è¨˜éŒ„ (commit) 到建立åˆä½µè«‹æ±‚ (merge request) 的時間。建立第一個åˆä½µè«‹æ±‚後,資料將自動填入。" msgid "The collection of events added to the data gathered for that stage." msgstr "該階段ä¸çš„相關事件集åˆã€‚" +msgid "The connection will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The fork relationship has been removed." msgstr "åˆ†æ”¯èˆ‡ä¸»å¹¹é–“çš„é—œè¯ (fork relationship) 已被刪除。" +msgid "The import will time out after %{timeout}. For repositories that take longer, use a clone/push combination." +msgstr "" + msgid "The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage." msgstr "è°é¡Œ (issue) 階段顯示從è°é¡Œå»ºç«‹åˆ°è¨å®šé‡Œç¨‹ç¢‘所花的時間,或是è°é¡Œè¢«åˆ†é¡žåˆ°è°é¡Œçœ‹æ¿ (issue board) ä¸æ‰€èŠ±çš„時間。建立第一個è°é¡Œå¾Œï¼Œè³‡æ–™å°‡è‡ªå‹•å¡«å…¥ã€‚" @@ -3361,12 +4104,18 @@ msgstr "GitLab å˜å–儲å˜ç©ºé–“的嘗試次數。" msgid "The number of failures of after which GitLab will completely prevent access to the storage. The number of failures can be reset in the admin interface: %{link_to_health_page} or using the %{api_documentation_link}." msgstr "GitLab 將阻擋å˜å–失敗的次數。在管ç†è€…介é¢ä¸å¯ä»¥é‡ç½®å¤±æ•—次數: %{link_to_health_page} 或使用 %{api_documentation_link}。" +msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest." +msgstr "" + msgid "The phase of the development lifecycle." msgstr "專案開發週期的å„個階段。" msgid "The planning stage shows the time from the previous step to pushing your first commit. This time will be added automatically once you push your first commit." msgstr "計劃階段顯示從更動記錄 (commit) 被排程至第一個推é€çš„時間。第一次推é€ä¹‹å¾Œï¼Œè³‡æ–™å°‡è‡ªå‹•å¡«å…¥ã€‚" +msgid "The private key to use when a client certificate is provided. This value is encrypted at rest." +msgstr "" + msgid "The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle." msgstr "營é‹éšŽæ®µé¡¯ç¤ºå¾žå»ºç«‹è°é¡Œ (issue) 到部署程å¼ä¸Šç·šæ‰€èŠ±çš„時間。完æˆå¾žç™¼æƒ³åˆ°ä¸Šç·šçš„完整開發週期後,資料將自動填入。" @@ -3382,6 +4131,9 @@ msgstr "本專案沒有檔案庫 (repository) " msgid "The repository for this project is empty" msgstr "" +msgid "The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>." +msgstr "" + msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request." msgstr "複閱階段顯示從åˆä½µè«‹æ±‚ (merge request) 建立後至被åˆä½µçš„時間。當建立第一個åˆä½µè«‹æ±‚ (merge request) 後,資料將自動填入。" @@ -3418,6 +4170,9 @@ msgstr "" msgid "There are problems accessing Git storage: " msgstr "å˜å– Git 儲å˜ç©ºé–“時出ç¾å•é¡Œï¼š" +msgid "There was an error loading results" +msgstr "" + msgid "There was an error loading users activity calendar." msgstr "" @@ -3490,6 +4245,9 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This will delete the custom metric, Are you sure?" +msgstr "" + msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here." msgstr "" @@ -3502,6 +4260,12 @@ msgstr "è°é¡Œ (issue) ç‰å¾…開始實作的時間" msgid "Time between merge request creation and merge/close" msgstr "åˆä½µè«‹æ±‚ (merge request) 從建立到被åˆä½µæˆ–是關閉的時間" +msgid "Time between updates and capacity settings." +msgstr "" + +msgid "Time in seconds GitLab will wait for a response from the external service. When the service does not respond in time, access will be denied." +msgstr "GitLab ç‰å¾…外部æœå‹™çš„回應時間(秒)。當æœå‹™æ²’有在時間內回應時,å˜å–將被拒絕。" + msgid "Time tracking" msgstr "" @@ -3657,6 +4421,36 @@ msgstr "" msgid "Title" msgstr "" +msgid "To GitLab" +msgstr "" + +msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to connect." +msgstr "" + +msgid "To connect GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To connect an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To import GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the <code>repo</code> scope, so we can display a list of your public and private repositories which are available to import." +msgstr "" + +msgid "To import GitHub repositories, you first need to authorize GitLab to access the list of your GitHub repositories:" +msgstr "" + +msgid "To import an SVN repository, check out %{svn_link}." +msgstr "" + +msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." +msgstr "" + +msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" +msgstr "" + +msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." +msgstr "" + msgid "To view the roadmap, add a planned start or finish date to one of your epics in this group or its subgroups. Only epics in the past 3 months and the next 3 months are shown." msgstr "" @@ -3696,18 +4490,12 @@ msgstr "" msgid "Turn on Service Desk" msgstr "" -msgid "Unable to reset project cache." -msgstr "" - msgid "Unknown" msgstr "" msgid "Unlock" msgstr "解鎖" -msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment." -msgstr "" - msgid "Unlocked" msgstr "已解鎖" @@ -3747,6 +4535,12 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "點擊上傳" +msgid "Upvotes" +msgstr "" + +msgid "Usage statistics" +msgstr "" + msgid "Use Service Desk to connect with your users (e.g. to offer customer support) through email right inside GitLab" msgstr "" @@ -3756,24 +4550,51 @@ msgstr "在安è£éŽç¨‹ä¸ä½¿ç”¨æ¤è¨»å†Šæ†‘è‰ (registration token):" msgid "Use your global notification setting" msgstr "使用全域通知è¨å®š" +msgid "Used by members to sign in to your group in GitLab" +msgstr "" + +msgid "User and IP Rate Limits" +msgstr "" + msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want." msgstr "" +msgid "Various container registry settings." +msgstr "" + +msgid "Various email settings." +msgstr "" + +msgid "Various settings that affect GitLab performance." +msgstr "" + +msgid "View and edit lines" +msgstr "" + msgid "View epics list" msgstr "" msgid "View file @ " msgstr "ç€è¦½æª”案 @ " +msgid "View group labels" +msgstr "" + msgid "View labels" msgstr "" msgid "View open merge request" msgstr "查看æ¤åˆ†æ”¯çš„åˆä½µè«‹æ±‚ (merge request)" +msgid "View project labels" +msgstr "" + msgid "View replaced file @ " msgstr "ç€è¦½å·²æ›¿æ›æª”案 @ " +msgid "Visibility and access controls" +msgstr "" + msgid "VisibilityLevel|Internal" msgstr "內部" @@ -3801,12 +4622,18 @@ msgstr "" msgid "Web IDE" msgstr "" +msgid "Web terminal" +msgstr "" + msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgstr "" msgid "Weight" msgstr "" +msgid "When leaving the URL blank, classification labels can still be specified whitout disabling cross project features or performing external authorization checks." +msgstr "" + msgid "Wiki" msgstr "Wiki" @@ -3927,14 +4754,20 @@ msgstr "" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgstr "å°‡è¦åˆªé™¤ %{group_name}。被刪除的群組無法復原ï¼çœŸçš„「確定ã€è¦é€™éº¼åšå—Žï¼Ÿ" -msgid "You are going to remove %{project_name_with_namespace}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" -msgstr "å°‡è¦åˆªé™¤ %{project_name_with_namespace}。被刪除的專案無法復原ï¼çœŸçš„「確定ã€è¦é€™éº¼åšå—Žï¼Ÿ" +msgid "You are going to remove %{project_full_name}. Removed project CANNOT be restored! Are you ABSOLUTELY sure?" +msgstr "" msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?" msgstr "å°‡è¦åˆªé™¤æœ¬åˆ†æ”¯å°ˆæ¡ˆèˆ‡ä¸»å¹¹ %{forked_from_project} 的所有關è¯ã€‚ 真的「確定ã€è¦é€™éº¼åšå—Žï¼Ÿ" -msgid "You are going to transfer %{project_name_with_namespace} to another owner. Are you ABSOLUTELY sure?" -msgstr "å°‡è¦æŠŠ %{project_name_with_namespace} 的所有權轉移給å¦ä¸€å€‹äººã€‚真的「確定ã€è¦é€™éº¼åšå—Žï¼Ÿ" +msgid "You are going to transfer %{project_full_name} to another owner. Are you ABSOLUTELY sure?" +msgstr "" + +msgid "You are on a read-only GitLab instance." +msgstr "" + +msgid "You are on a secondary (read-only) Geo node. If you want to make any changes, you must visit the %{primary_node}." +msgstr "" msgid "You can also create a project from the command line." msgstr "" @@ -4008,9 +4841,27 @@ msgstr "" msgid "You'll need to use different branch names to get a valid comparison." msgstr "" +msgid "You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}" +msgstr "" + +msgid "Your Groups" +msgstr "" + msgid "Your Kubernetes cluster information on this page is still editable, but you are advised to disable and reconfigure" msgstr "" +msgid "Your Projects (default)" +msgstr "" + +msgid "Your Projects' Activity" +msgstr "" + +msgid "Your Todos" +msgstr "" + +msgid "Your changes can be committed to %{branch_name} because a merge request is open." +msgstr "" + msgid "Your changes have been committed. Commit %{commitId} %{commitStats}" msgstr "" @@ -4026,6 +4877,13 @@ msgstr "您的åå—" msgid "Your projects" msgstr "ä½ çš„è¨ˆåŠƒ" +msgid "among other things" +msgstr "" + +msgid "and %d fixed vulnerability" +msgid_plural "and %d fixed vulnerabilities" +msgstr[0] "" + msgid "assign yourself" msgstr "" @@ -4035,12 +4893,30 @@ msgstr "" msgid "by" msgstr "" +msgid "ciReport|%{type} detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|%{type} detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Code quality" msgstr "" msgid "ciReport|DAST detected no alerts by analyzing the review app" msgstr "" +msgid "ciReport|Dependency scanning" +msgstr "" + +msgid "ciReport|Dependency scanning detected" +msgstr "" + +msgid "ciReport|Dependency scanning detected no new security vulnerabilities" +msgstr "" + +msgid "ciReport|Dependency scanning detected no security vulnerabilities" +msgstr "" + msgid "ciReport|Failed to load %{reportName} report" msgstr "" @@ -4068,9 +4944,6 @@ msgstr "" msgid "ciReport|SAST" msgstr "" -msgid "ciReport|SAST degraded on" -msgstr "" - msgid "ciReport|SAST detected" msgstr "" @@ -4083,40 +4956,66 @@ msgstr "" msgid "ciReport|SAST:container no vulnerabilities were found" msgstr "" +msgid "ciReport|Security scanning" +msgstr "" + +msgid "ciReport|Security scanning failed loading any results" +msgstr "" + msgid "ciReport|Show complete code vulnerabilities report" msgstr "" msgid "ciReport|Unapproved vulnerabilities (red) can be marked as approved. %{helpLink}" msgstr "" -msgid "ciReport|no security vulnerabilities" +msgid "ciReport|no vulnerabilities" msgstr "" msgid "command line instructions" msgstr "" -msgid "commit" +msgid "connecting" msgstr "" -msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue." -msgstr "" - -msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue." +msgid "could not read private key, is the passphrase correct?" msgstr "" msgid "day" msgid_plural "days" msgstr[0] "天" +msgid "detected %d fixed vulnerability" +msgid_plural "detected %d fixed vulnerabilities" +msgstr[0] "" + +msgid "detected %d new vulnerability" +msgid_plural "detected %d new vulnerabilities" +msgstr[0] "" + +msgid "detected no vulnerabilities" +msgstr "" + msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgstr "" +msgid "here" +msgstr "" + +msgid "importing" +msgstr "" + +msgid "in progress" +msgstr "" + msgid "is invalid because there is downstream lock" msgstr "" msgid "is invalid because there is upstream lock" msgstr "" +msgid "is not a valid X509 certificate." +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -4127,9 +5026,21 @@ msgstr[0] "" msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch" msgstr "" +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} increased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB" +msgstr "" + +msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB" +msgstr "" + msgid "mrWidget|Add approval" msgstr "" +msgid "mrWidget|Allows edits from maintainers" +msgstr "" + msgid "mrWidget|An error occured while removing your approval." msgstr "" @@ -4142,6 +5053,9 @@ msgstr "" msgid "mrWidget|Approve" msgstr "" +msgid "mrWidget|Approved" +msgstr "" + msgid "mrWidget|Approved by" msgstr "" @@ -4169,18 +5083,27 @@ msgstr "" msgid "mrWidget|Closes" msgstr "" +msgid "mrWidget|Deployment statistics are not available currently" +msgstr "" + msgid "mrWidget|Did not close" msgstr "" msgid "mrWidget|Email patches" msgstr "" +msgid "mrWidget|Failed to load deployment statistics" +msgstr "" + msgid "mrWidget|If the %{branch} branch exists in your local repository, you can merge this merge request manually using the" msgstr "" msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line" msgstr "" +msgid "mrWidget|Loading deployment statistics" +msgstr "" + msgid "mrWidget|Mentions" msgstr "" @@ -4265,6 +5188,9 @@ msgstr "" msgid "mrWidget|This project is archived, write access has been disabled" msgstr "" +msgid "mrWidget|Web IDE" +msgstr "" + msgid "mrWidget|You can merge this merge request manually using the" msgstr "" @@ -4302,6 +5228,9 @@ msgstr "密碼" msgid "personal access token" msgstr "ç§äººå˜å–æ†‘è‰ (access token)" +msgid "private key does not match certificate." +msgstr "" + msgid "remove due date" msgstr "" @@ -4311,6 +5240,9 @@ msgstr "" msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" +msgid "this document" +msgstr "" + msgid "to help your contributors communicate effectively!" msgstr "" diff --git a/spec/controllers/profiles_controller_spec.rb b/spec/controllers/profiles_controller_spec.rb index 891485406c6..de6ef919221 100644 --- a/spec/controllers/profiles_controller_spec.rb +++ b/spec/controllers/profiles_controller_spec.rb @@ -84,6 +84,28 @@ describe ProfilesController, :request_store do expect(user.username).to eq(new_username) end + it 'updates a username using JSON request' do + sign_in(user) + + put :update_username, + user: { username: new_username }, + format: :json + + expect(response.status).to eq(200) + expect(json_response['message']).to eq('Username successfully changed') + end + + it 'renders an error message when the username was not updated' do + sign_in(user) + + put :update_username, + user: { username: 'invalid username.git' }, + format: :json + + expect(response.status).to eq(422) + expect(json_response['message']).to match(/Username change failed/) + end + it 'raises a correct error when the username is missing' do sign_in(user) diff --git a/spec/controllers/projects/discussions_controller_spec.rb b/spec/controllers/projects/discussions_controller_spec.rb index fcb0c2f28c8..53647749a60 100644 --- a/spec/controllers/projects/discussions_controller_spec.rb +++ b/spec/controllers/projects/discussions_controller_spec.rb @@ -16,6 +16,53 @@ describe Projects::DiscussionsController do } end + describe 'GET show' do + before do + sign_in user + end + + context 'when user is not authorized to read the MR' do + it 'returns 404' do + get :show, request_params, format: :json + + expect(response).to have_gitlab_http_status(404) + end + end + + context 'when user is authorized to read the MR' do + before do + project.add_reporter(user) + end + + it 'returns status 200' do + get :show, request_params, format: :json + + expect(response).to have_gitlab_http_status(200) + end + + it 'returns status 404 if MR does not exists' do + merge_request.destroy! + + get :show, request_params, format: :json + + expect(response).to have_gitlab_http_status(404) + end + end + + context 'when user is authorized but note is LegacyDiffNote' do + before do + project.add_developer(user) + note.update!(type: 'LegacyDiffNote') + end + + it 'returns status 200' do + get :show, request_params, format: :json + + expect(response).to have_gitlab_http_status(200) + end + end + end + describe 'POST resolve' do before do sign_in user diff --git a/spec/controllers/projects/jobs_controller_spec.rb b/spec/controllers/projects/jobs_controller_spec.rb index 31046c202e6..b9a979044fe 100644 --- a/spec/controllers/projects/jobs_controller_spec.rb +++ b/spec/controllers/projects/jobs_controller_spec.rb @@ -513,13 +513,30 @@ describe Projects::JobsController do end end + context 'when job has a trace in database' do + let(:job) { create(:ci_build, pipeline: pipeline) } + + before do + job.update_column(:trace, 'Sample trace') + end + + it 'send a trace file' do + response = subject + + expect(response).to have_gitlab_http_status(:ok) + expect(response.content_type).to eq 'text/plain; charset=utf-8' + expect(response.body).to eq 'Sample trace' + end + end + context 'when job does not have a trace file' do let(:job) { create(:ci_build, pipeline: pipeline) } it 'returns not_found' do response = subject - expect(response).to have_gitlab_http_status(:not_found) + expect(response).to have_gitlab_http_status(:ok) + expect(response.body).to eq '' end end diff --git a/spec/controllers/projects/pipelines_settings_controller_spec.rb b/spec/controllers/projects/pipelines_settings_controller_spec.rb index 913b9bd804a..694896b6bcf 100644 --- a/spec/controllers/projects/pipelines_settings_controller_spec.rb +++ b/spec/controllers/projects/pipelines_settings_controller_spec.rb @@ -11,82 +11,11 @@ describe Projects::PipelinesSettingsController do sign_in(user) end - describe 'PATCH update' do - subject do - patch :update, - namespace_id: project.namespace.to_param, - project_id: project, - project: { - auto_devops_attributes: params - } - end - - context 'when updating the auto_devops settings' do - let(:params) { { enabled: '', domain: 'mepmep.md' } } - - it 'redirects to the settings page' do - subject - - expect(response).to have_gitlab_http_status(302) - expect(flash[:notice]).to eq("Pipelines settings for '#{project.name}' were successfully updated.") - end - - context 'following the instance default' do - let(:params) { { enabled: '' } } - - it 'allows enabled to be set to nil' do - subject - project_auto_devops.reload - - expect(project_auto_devops.enabled).to be_nil - end - end - - context 'when run_auto_devops_pipeline is true' do - before do - expect_any_instance_of(Projects::UpdateService).to receive(:run_auto_devops_pipeline?).and_return(true) - end - - context 'when the project repository is empty' do - it 'sets a warning flash' do - expect(subject).to set_flash[:warning] - end - - it 'does not queue a CreatePipelineWorker' do - expect(CreatePipelineWorker).not_to receive(:perform_async).with(project.id, user.id, project.default_branch, :web, any_args) - - subject - end - end - - context 'when the project repository is not empty' do - let(:project) { create(:project, :repository) } - - it 'sets a success flash' do - allow(CreatePipelineWorker).to receive(:perform_async).with(project.id, user.id, project.default_branch, :web, any_args) - - expect(subject).to set_flash[:success] - end - - it 'queues a CreatePipelineWorker' do - expect(CreatePipelineWorker).to receive(:perform_async).with(project.id, user.id, project.default_branch, :web, any_args) - - subject - end - end - end - - context 'when run_auto_devops_pipeline is not true' do - before do - expect_any_instance_of(Projects::UpdateService).to receive(:run_auto_devops_pipeline?).and_return(false) - end - - it 'does not queue a CreatePipelineWorker' do - expect(CreatePipelineWorker).not_to receive(:perform_async).with(project.id, user.id, :web, any_args) + describe 'GET show' do + it 'redirects with 302 status code' do + get :show, namespace_id: project.namespace, project_id: project - subject - end - end + expect(response).to have_gitlab_http_status(302) end end end diff --git a/spec/controllers/projects/settings/ci_cd_controller_spec.rb b/spec/controllers/projects/settings/ci_cd_controller_spec.rb index 293e76798ae..7dae9b85d78 100644 --- a/spec/controllers/projects/settings/ci_cd_controller_spec.rb +++ b/spec/controllers/projects/settings/ci_cd_controller_spec.rb @@ -1,8 +1,9 @@ require('spec_helper') describe Projects::Settings::CiCdController do - let(:project) { create(:project, :public, :access_requestable) } - let(:user) { create(:user) } + set(:user) { create(:user) } + set(:project_auto_devops) { create(:project_auto_devops) } + let(:project) { project_auto_devops.project } before do project.add_master(user) @@ -55,4 +56,107 @@ describe Projects::Settings::CiCdController do end end end + + describe 'PATCH update' do + let(:params) { { ci_config_path: '' } } + + subject do + patch :update, + namespace_id: project.namespace.to_param, + project_id: project, + project: params + end + + it 'redirects to the settings page' do + subject + + expect(response).to have_gitlab_http_status(302) + expect(flash[:notice]).to eq("Pipelines settings for '#{project.name}' were successfully updated.") + end + + context 'when updating the auto_devops settings' do + let(:params) { { auto_devops_attributes: { enabled: '', domain: 'mepmep.md' } } } + + context 'following the instance default' do + let(:params) { { auto_devops_attributes: { enabled: '' } } } + + it 'allows enabled to be set to nil' do + subject + project_auto_devops.reload + + expect(project_auto_devops.enabled).to be_nil + end + end + + context 'when run_auto_devops_pipeline is true' do + before do + expect_any_instance_of(Projects::UpdateService).to receive(:run_auto_devops_pipeline?).and_return(true) + end + + context 'when the project repository is empty' do + it 'sets a warning flash' do + expect(subject).to set_flash[:warning] + end + + it 'does not queue a CreatePipelineWorker' do + expect(CreatePipelineWorker).not_to receive(:perform_async).with(project.id, user.id, project.default_branch, :web, any_args) + + subject + end + end + + context 'when the project repository is not empty' do + let(:project) { create(:project, :repository) } + + it 'sets a success flash' do + allow(CreatePipelineWorker).to receive(:perform_async).with(project.id, user.id, project.default_branch, :web, any_args) + + expect(subject).to set_flash[:success] + end + + it 'queues a CreatePipelineWorker' do + expect(CreatePipelineWorker).to receive(:perform_async).with(project.id, user.id, project.default_branch, :web, any_args) + + subject + end + end + end + + context 'when run_auto_devops_pipeline is not true' do + before do + expect_any_instance_of(Projects::UpdateService).to receive(:run_auto_devops_pipeline?).and_return(false) + end + + it 'does not queue a CreatePipelineWorker' do + expect(CreatePipelineWorker).not_to receive(:perform_async).with(project.id, user.id, :web, any_args) + + subject + end + end + end + + context 'when updating general settings' do + context 'when build_timeout_human_readable is not specified' do + let(:params) { { build_timeout_human_readable: '' } } + + it 'set default timeout' do + subject + + project.reload + expect(project.build_timeout).to eq(3600) + end + end + + context 'when build_timeout_human_readable is specified' do + let(:params) { { build_timeout_human_readable: '1h 30m' } } + + it 'set specified timeout' do + subject + + project.reload + expect(project.build_timeout).to eq(5400) + end + end + end + end end diff --git a/spec/factories/ci/build_metadata.rb b/spec/factories/ci/build_metadata.rb deleted file mode 100644 index 66bbd977b88..00000000000 --- a/spec/factories/ci/build_metadata.rb +++ /dev/null @@ -1,9 +0,0 @@ -FactoryBot.define do - factory :ci_build_metadata, class: Ci::BuildMetadata do - build factory: :ci_build - - after(:build) do |build_metadata, _| - build_metadata.project ||= build_metadata.build.project - end - end -end diff --git a/spec/factories/ci/builds.rb b/spec/factories/ci/builds.rb index f6ba3a581ca..fdacbe6c3f1 100644 --- a/spec/factories/ci/builds.rb +++ b/spec/factories/ci/builds.rb @@ -62,6 +62,7 @@ FactoryBot.define do end trait :pending do + queued_at 'Di 29. Okt 09:50:59 CET 2013' status 'pending' end @@ -237,5 +238,10 @@ FactoryBot.define do trait :protected do protected true end + + trait :script_failure do + failed + failure_reason 1 + end end end diff --git a/spec/factories/project_hooks.rb b/spec/factories/project_hooks.rb index 493b7bc021c..a448d565e4b 100644 --- a/spec/factories/project_hooks.rb +++ b/spec/factories/project_hooks.rb @@ -15,6 +15,7 @@ FactoryBot.define do issues_events true confidential_issues_events true note_events true + confidential_note_events true job_events true pipeline_events true wiki_page_events true diff --git a/spec/features/issues/form_spec.rb b/spec/features/issues/form_spec.rb index 38c618d300e..4625a50b8d9 100644 --- a/spec/features/issues/form_spec.rb +++ b/spec/features/issues/form_spec.rb @@ -226,6 +226,23 @@ describe 'New/edit issue', :js do expect(page).to have_selector('.atwho-view') end + + describe 'milestone' do + let!(:milestone) { create(:milestone, title: '"><img src=x onerror=alert(document.domain)>', project: project) } + + it 'escapes milestone' do + click_button 'Milestone' + + page.within '.issue-milestone' do + click_link milestone.title + end + + page.within '.js-milestone-select' do + expect(page).to have_content milestone.title + expect(page).not_to have_selector 'img' + end + end + end end context 'edit issue' do diff --git a/spec/features/labels_hierarchy_spec.rb b/spec/features/labels_hierarchy_spec.rb index 99e1fb30d5b..3e05e7b7f38 100644 --- a/spec/features/labels_hierarchy_spec.rb +++ b/spec/features/labels_hierarchy_spec.rb @@ -115,17 +115,17 @@ feature 'Labels Hierarchy', :js, :nested_groups do it 'filters by descendant group labels' do wait_for_requests - if board - pending("Waiting for https://gitlab.com/gitlab-org/gitlab-ce/issues/44270") + select_label_on_dropdown(group_label_3.title) - select_label_on_dropdown(group_label_3.title) + if board + expect(page).to have_selector('.card-title') do |card| + expect(card).not_to have_selector('a', text: labeled_issue_2.title) + end expect(page).to have_selector('.card-title') do |card| expect(card).to have_selector('a', text: labeled_issue_3.title) end else - select_label_on_dropdown(group_label_3.title) - expect_issues_list_count(1) expect(page).to have_selector('span.issue-title-text', text: labeled_issue_3.title) end diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb index 0848857ed1e..15dcb30cbdd 100644 --- a/spec/features/profile_spec.rb +++ b/spec/features/profile_spec.rb @@ -97,9 +97,13 @@ describe 'Profile account page', :js do end it 'changes my username' do - fill_in 'user_username', with: 'new-username' + fill_in 'username-change-input', with: 'new-username' - click_button('Update username') + page.find('[data-target="#username-change-confirmation-modal"]').click + + page.within('.modal') do + find('.js-modal-primary-action').click + end expect(page).to have_content('new-username') end diff --git a/spec/features/profiles/account_spec.rb b/spec/features/profiles/account_spec.rb index e8eb0d17ca4..215b658eb7b 100644 --- a/spec/features/profiles/account_spec.rb +++ b/spec/features/profiles/account_spec.rb @@ -1,6 +1,6 @@ require 'rails_helper' -feature 'Profile > Account' do +feature 'Profile > Account', :js do given(:user) { create(:user, username: 'foo') } before do @@ -59,6 +59,12 @@ end def update_username(new_username) allow(user.namespace).to receive(:move_dir) visit profile_account_path - fill_in 'user_username', with: new_username - click_button 'Update username' + + fill_in 'username-change-input', with: new_username + + page.find('[data-target="#username-change-confirmation-modal"]').click + + page.within('.modal') do + find('.js-modal-primary-action').click + end end diff --git a/spec/features/projects/badges/list_spec.rb b/spec/features/projects/badges/list_spec.rb index c705e479690..0abef4bc447 100644 --- a/spec/features/projects/badges/list_spec.rb +++ b/spec/features/projects/badges/list_spec.rb @@ -6,7 +6,7 @@ feature 'list of badges' do project = create(:project, :repository) project.add_master(user) sign_in(user) - visit project_pipelines_settings_path(project) + visit project_settings_ci_cd_path(project) end scenario 'user wants to see build status badge' do diff --git a/spec/features/projects/jobs/user_browses_job_spec.rb b/spec/features/projects/jobs/user_browses_job_spec.rb index 4c49cff30d4..b7eee39052a 100644 --- a/spec/features/projects/jobs/user_browses_job_spec.rb +++ b/spec/features/projects/jobs/user_browses_job_spec.rb @@ -34,4 +34,26 @@ describe 'User browses a job', :js do expect(build.project.running_or_pending_build_count).to eq(build.project.builds.running_or_pending.count(:all)) end + + context 'with a failed job' do + let!(:build) { create(:ci_build, :failed, pipeline: pipeline) } + + it 'displays the failure reason' do + within('.builds-container') do + build_link = first('.build-job > a') + expect(build_link['data-title']).to eq('test - failed <br> (unknown failure)') + end + end + end + + context 'when a failed job has been retried' do + let!(:build) { create(:ci_build, :failed, :retried, pipeline: pipeline) } + + it 'displays the failure reason and retried label' do + within('.builds-container') do + build_link = first('.build-job > a') + expect(build_link['data-title']).to eq('test - failed <br> (unknown failure) (retried)') + end + end + end end diff --git a/spec/features/projects/jobs/user_browses_jobs_spec.rb b/spec/features/projects/jobs/user_browses_jobs_spec.rb index 767777f3bf9..36ebbeadd4a 100644 --- a/spec/features/projects/jobs/user_browses_jobs_spec.rb +++ b/spec/features/projects/jobs/user_browses_jobs_spec.rb @@ -29,4 +29,15 @@ describe 'User browses jobs' do expect(ci_lint_tool_link[:href]).to end_with(ci_lint_path) end end + + context 'with a failed job' do + let!(:build) { create(:ci_build, :coverage, :failed, pipeline: pipeline) } + + it 'displays a tooltip with the failure reason' do + page.within('.ci-table') do + failed_job_link = page.find('.ci-failed') + expect(failed_job_link[:title]).to eq('Failed <br> (unknown failure)') + end + end + end end diff --git a/spec/features/projects/pipelines/pipeline_spec.rb b/spec/features/projects/pipelines/pipeline_spec.rb index 266ef693d0b..990e5c4d9df 100644 --- a/spec/features/projects/pipelines/pipeline_spec.rb +++ b/spec/features/projects/pipelines/pipeline_spec.rb @@ -115,6 +115,13 @@ describe 'Pipeline', :js do expect(page).not_to have_content('Retry job') end + + it 'should include the failure reason' do + page.within('#ci-badge-test') do + build_link = page.find('.js-pipeline-graph-job-link') + expect(build_link['data-original-title']).to eq('test - failed <br> (unknown failure)') + end + end end context 'when pipeline has manual jobs' do @@ -289,6 +296,15 @@ describe 'Pipeline', :js do it { expect(build_manual.reload).to be_pending } end + + context 'failed jobs' do + it 'displays a tooltip with the failure reason' do + page.within('.ci-table') do + failed_job_link = page.find('.ci-failed') + expect(failed_job_link[:title]).to eq('Failed <br> (unknown failure)') + end + end + end end describe 'GET /:project/pipelines/:id/failures' do diff --git a/spec/features/projects/pipelines/pipelines_spec.rb b/spec/features/projects/pipelines/pipelines_spec.rb index 0e81c6c629a..6e63e0f0b49 100644 --- a/spec/features/projects/pipelines/pipelines_spec.rb +++ b/spec/features/projects/pipelines/pipelines_spec.rb @@ -394,6 +394,23 @@ describe 'Pipelines', :js do expect(build.reload).to be_canceled end end + + context 'for a failed pipeline' do + let!(:build) do + create(:ci_build, :failed, pipeline: pipeline, + stage: 'build', + name: 'build') + end + + it 'should display the failure reason' do + find('.js-builds-dropdown-button').click + + within('.js-builds-dropdown-list') do + build_element = page.find('.mini-pipeline-graph-dropdown-item') + expect(build_element['data-title']).to eq('build - failed <br> (unknown failure)') + end + end + end end context 'with pagination' do diff --git a/spec/fixtures/api/schemas/issue.json b/spec/fixtures/api/schemas/issue.json index b579e32c9aa..8833825e3fb 100644 --- a/spec/fixtures/api/schemas/issue.json +++ b/spec/fixtures/api/schemas/issue.json @@ -15,6 +15,8 @@ "relative_position": { "type": "integer" }, "issue_sidebar_endpoint": { "type": "string" }, "toggle_subscription_endpoint": { "type": "string" }, + "reference_path": { "type": "string" }, + "real_path": { "type": "string" }, "project": { "id": { "type": "integer" }, "path": { "type": "string" } diff --git a/spec/fixtures/exported-project.gz b/spec/fixtures/exported-project.gz Binary files differnew file mode 100644 index 00000000000..352384f16c8 --- /dev/null +++ b/spec/fixtures/exported-project.gz diff --git a/spec/helpers/diff_helper_spec.rb b/spec/helpers/diff_helper_spec.rb index 15cbe36ae76..53c010fa0db 100644 --- a/spec/helpers/diff_helper_spec.rb +++ b/spec/helpers/diff_helper_spec.rb @@ -135,11 +135,37 @@ describe DiffHelper do it "returns strings with marked inline diffs" do marked_old_line, marked_new_line = mark_inline_diffs(old_line, new_line) - expect(marked_old_line).to eq(%q{abc <span class="idiff left right deletion">'def'</span>}) + expect(marked_old_line).to eq(%q{abc <span class="idiff left right deletion">'def'</span>}) expect(marked_old_line).to be_html_safe - expect(marked_new_line).to eq(%q{abc <span class="idiff left right addition">"def"</span>}) + expect(marked_new_line).to eq(%q{abc <span class="idiff left right addition">"def"</span>}) expect(marked_new_line).to be_html_safe end + + context 'when given HTML' do + it 'sanitizes it' do + old_line = %{test.txt} + new_line = %{<img src=x onerror=alert(document.domain)>} + + marked_old_line, marked_new_line = mark_inline_diffs(old_line, new_line) + + expect(marked_old_line).to eq(%q{<span class="idiff left right deletion">test.txt</span>}) + expect(marked_old_line).to be_html_safe + expect(marked_new_line).to eq(%q{<span class="idiff left right addition"><img src=x onerror=alert(document.domain)></span>}) + expect(marked_new_line).to be_html_safe + end + + it 'sanitizes the entire line, not just the changes' do + old_line = %{<img src=x onerror=alert(document.domain)>} + new_line = %{<img src=y onerror=alert(document.domain)>} + + marked_old_line, marked_new_line = mark_inline_diffs(old_line, new_line) + + expect(marked_old_line).to eq(%q{<img src=<span class="idiff left right deletion">x</span> onerror=alert(document.domain)>}) + expect(marked_old_line).to be_html_safe + expect(marked_new_line).to eq(%q{<img src=<span class="idiff left right addition">y</span> onerror=alert(document.domain)>}) + expect(marked_new_line).to be_html_safe + end + end end describe '#parallel_diff_discussions' do diff --git a/spec/initializers/artifacts_direct_upload_support_spec.rb b/spec/initializers/artifacts_direct_upload_support_spec.rb new file mode 100644 index 00000000000..bfb71da3388 --- /dev/null +++ b/spec/initializers/artifacts_direct_upload_support_spec.rb @@ -0,0 +1,71 @@ +require 'spec_helper' + +describe 'Artifacts direct upload support' do + subject do + load Rails.root.join('config/initializers/artifacts_direct_upload_support.rb') + end + + let(:connection) do + { provider: provider } + end + + before do + stub_artifacts_setting( + object_store: { + enabled: enabled, + direct_upload: direct_upload, + connection: connection + }) + end + + context 'when object storage is enabled' do + let(:enabled) { true } + + context 'when direct upload is enabled' do + let(:direct_upload) { true } + + context 'when provider is Google' do + let(:provider) { 'Google' } + + it 'succeeds' do + expect { subject }.not_to raise_error + end + end + + context 'when connection is empty' do + let(:connection) { nil } + + it 'raises an error' do + expect { subject }.to raise_error /object storage provider when 'direct_upload' of artifacts is used/ + end + end + + context 'when other provider is used' do + let(:provider) { 'AWS' } + + it 'raises an error' do + expect { subject }.to raise_error /object storage provider when 'direct_upload' of artifacts is used/ + end + end + end + + context 'when direct upload is disabled' do + let(:direct_upload) { false } + let(:provider) { 'AWS' } + + it 'succeeds' do + expect { subject }.not_to raise_error + end + end + end + + context 'when object storage is disabled' do + let(:enabled) { false } + let(:direct_upload) { false } + let(:provider) { 'AWS' } + + it 'succeeds' do + expect { subject }.not_to raise_error + end + end +end diff --git a/spec/javascripts/boards/issue_card_spec.js b/spec/javascripts/boards/issue_card_spec.js index 37088a6421c..be1ea0b57b4 100644 --- a/spec/javascripts/boards/issue_card_spec.js +++ b/spec/javascripts/boards/issue_card_spec.js @@ -41,6 +41,8 @@ describe('Issue card component', () => { confidential: false, labels: [list.label], assignees: [], + reference_path: '#1', + real_path: '/test/1', }); component = new Vue({ diff --git a/spec/javascripts/ide/components/repo_file_buttons_spec.js b/spec/javascripts/ide/components/ide_file_buttons_spec.js index c86bdb132b4..8ac8d1b2acf 100644 --- a/spec/javascripts/ide/components/repo_file_buttons_spec.js +++ b/spec/javascripts/ide/components/ide_file_buttons_spec.js @@ -1,5 +1,5 @@ import Vue from 'vue'; -import repoFileButtons from '~/ide/components/repo_file_buttons.vue'; +import repoFileButtons from '~/ide/components/ide_file_buttons.vue'; import createVueComponent from '../../helpers/vue_mount_component_helper'; import { file } from '../helpers'; @@ -23,7 +23,7 @@ describe('RepoFileButtons', () => { vm.$destroy(); }); - it('renders Raw, Blame, History, Permalink and Preview toggle', done => { + it('renders Raw, Blame, History and Permalink', done => { vm = createComponent(); vm.$nextTick(() => { @@ -32,16 +32,30 @@ describe('RepoFileButtons', () => { const history = vm.$el.querySelector('.history'); expect(raw.href).toMatch(`/${activeFile.rawPath}`); - expect(raw.textContent.trim()).toEqual('Raw'); + expect(raw.getAttribute('data-original-title')).toEqual('Raw'); expect(blame.href).toMatch(`/${activeFile.blamePath}`); - expect(blame.textContent.trim()).toEqual('Blame'); + expect(blame.getAttribute('data-original-title')).toEqual('Blame'); expect(history.href).toMatch(`/${activeFile.commitsPath}`); - expect(history.textContent.trim()).toEqual('History'); - expect(vm.$el.querySelector('.permalink').textContent.trim()).toEqual( + expect(history.getAttribute('data-original-title')).toEqual('History'); + expect(vm.$el.querySelector('.permalink').getAttribute('data-original-title')).toEqual( 'Permalink', ); done(); }); }); + + it('renders Download', done => { + activeFile.binary = true; + vm = createComponent(); + + vm.$nextTick(() => { + const raw = vm.$el.querySelector('.raw'); + + expect(raw.href).toMatch(`/${activeFile.rawPath}`); + expect(raw.getAttribute('data-original-title')).toEqual('Download'); + + done(); + }); + }); }); diff --git a/spec/javascripts/ide/components/repo_editor_spec.js b/spec/javascripts/ide/components/repo_editor_spec.js index 9d3fa1280f4..63a3d2c6cd5 100644 --- a/spec/javascripts/ide/components/repo_editor_spec.js +++ b/spec/javascripts/ide/components/repo_editor_spec.js @@ -19,7 +19,6 @@ describe('RepoEditor', () => { f.active = true; f.tempFile = true; - f.html = 'testing'; vm.$store.state.openFiles.push(f); vm.$store.state.entries[f.path] = f; vm.monaco = true; @@ -47,6 +46,61 @@ describe('RepoEditor', () => { }); }); + it('renders only an edit tab', done => { + Vue.nextTick(() => { + const tabs = vm.$el.querySelectorAll('.ide-mode-tabs .nav-links li'); + expect(tabs.length).toBe(1); + expect(tabs[0].textContent.trim()).toBe('Edit'); + + done(); + }); + }); + + describe('when file is markdown', () => { + beforeEach(done => { + vm.file.previewMode = { + id: 'markdown', + previewTitle: 'Preview Markdown', + }; + + vm.$nextTick(done); + }); + + it('renders an Edit and a Preview Tab', done => { + Vue.nextTick(() => { + const tabs = vm.$el.querySelectorAll('.ide-mode-tabs .nav-links li'); + expect(tabs.length).toBe(2); + expect(tabs[0].textContent.trim()).toBe('Edit'); + expect(tabs[1].textContent.trim()).toBe('Preview Markdown'); + + done(); + }); + }); + }); + + describe('when file is markdown and viewer mode is review', () => { + beforeEach(done => { + vm.file.previewMode = { + id: 'markdown', + previewTitle: 'Preview Markdown', + }; + vm.$store.state.viewer = 'diff'; + + vm.$nextTick(done); + }); + + it('renders an Edit and a Preview Tab', done => { + Vue.nextTick(() => { + const tabs = vm.$el.querySelectorAll('.ide-mode-tabs .nav-links li'); + expect(tabs.length).toBe(2); + expect(tabs[0].textContent.trim()).toBe('Review'); + expect(tabs[1].textContent.trim()).toBe('Preview Markdown'); + + done(); + }); + }); + }); + describe('when open file is binary and not raw', () => { beforeEach(done => { vm.file.binary = true; @@ -57,10 +111,6 @@ describe('RepoEditor', () => { it('does not render the IDE', () => { expect(vm.shouldHideEditor).toBeTruthy(); }); - - it('shows activeFile html', () => { - expect(vm.$el.textContent).toContain('testing'); - }); }); describe('createEditorInstance', () => { @@ -149,47 +199,49 @@ describe('RepoEditor', () => { }); }); - describe('setup editor for merge request viewing', () => { - beforeEach(done => { - // Resetting as the main test setup has already done it - vm.$destroy(); - resetStore(vm.$store); - Editor.editorInstance.modelManager.dispose(); - - const f = { - ...file(), - active: true, - tempFile: true, - html: 'testing', - mrChange: { diff: 'ABC' }, - baseRaw: 'testing', - content: 'test', - }; - const RepoEditor = Vue.extend(repoEditor); - vm = createComponentWithStore(RepoEditor, store, { - file: f, - }); - - vm.$store.state.openFiles.push(f); - vm.$store.state.entries[f.path] = f; - - vm.$store.state.viewer = 'mrdiff'; + describe('editor updateDimensions', () => { + beforeEach(() => { + spyOn(vm.editor, 'updateDimensions').and.callThrough(); + spyOn(vm.editor, 'updateDiffView'); + }); - vm.monaco = true; + it('calls updateDimensions when rightPanelCollapsed is changed', done => { + vm.$store.state.rightPanelCollapsed = true; - vm.$mount(); + vm.$nextTick(() => { + expect(vm.editor.updateDimensions).toHaveBeenCalled(); + expect(vm.editor.updateDiffView).toHaveBeenCalled(); - monacoLoader(['vs/editor/editor.main'], () => { - setTimeout(done, 0); + done(); }); }); - it('attaches merge request model to editor when merge request diff', () => { - spyOn(vm.editor, 'attachMergeRequestModel').and.callThrough(); + it('calls updateDimensions when panelResizing is false', done => { + vm.$store.state.panelResizing = true; + + vm + .$nextTick() + .then(() => { + vm.$store.state.panelResizing = false; + }) + .then(vm.$nextTick) + .then(() => { + expect(vm.editor.updateDimensions).toHaveBeenCalled(); + expect(vm.editor.updateDiffView).toHaveBeenCalled(); + }) + .then(done) + .catch(done.fail); + }); - vm.setupEditor(); + it('does not call updateDimensions when panelResizing is true', done => { + vm.$store.state.panelResizing = true; + + vm.$nextTick(() => { + expect(vm.editor.updateDimensions).not.toHaveBeenCalled(); + expect(vm.editor.updateDiffView).not.toHaveBeenCalled(); - expect(vm.editor.attachMergeRequestModel).toHaveBeenCalledWith(vm.model); + done(); + }); }); }); }); diff --git a/spec/javascripts/ide/lib/editor_spec.js b/spec/javascripts/ide/lib/editor_spec.js index ec56ebc0341..75e6f0f54ec 100644 --- a/spec/javascripts/ide/lib/editor_spec.js +++ b/spec/javascripts/ide/lib/editor_spec.js @@ -76,7 +76,8 @@ describe('Multi-file editor library', () => { occurrencesHighlight: false, renderLineHighlight: 'none', hideCursorInOverviewRuler: true, - wordWrap: 'bounded', + wordWrap: 'on', + renderSideBySide: true, }); }); }); @@ -215,4 +216,56 @@ describe('Multi-file editor library', () => { expect(instance.decorationsController.dispose).not.toHaveBeenCalled(); }); }); + + describe('updateDiffView', () => { + describe('edit mode', () => { + it('does not update options', () => { + instance.createInstance(holder); + + spyOn(instance.instance, 'updateOptions'); + + instance.updateDiffView(); + + expect(instance.instance.updateOptions).not.toHaveBeenCalled(); + }); + }); + + describe('diff mode', () => { + beforeEach(() => { + instance.createDiffInstance(holder); + + spyOn(instance.instance, 'updateOptions').and.callThrough(); + }); + + it('sets renderSideBySide to false if el is less than 700 pixels', () => { + spyOnProperty(instance.instance.getDomNode(), 'offsetWidth').and.returnValue(600); + + expect(instance.instance.updateOptions).not.toHaveBeenCalledWith({ + renderSideBySide: false, + }); + }); + + it('sets renderSideBySide to false if el is more than 700 pixels', () => { + spyOnProperty(instance.instance.getDomNode(), 'offsetWidth').and.returnValue(800); + + expect(instance.instance.updateOptions).not.toHaveBeenCalledWith({ + renderSideBySide: true, + }); + }); + }); + }); + + describe('isDiffEditorType', () => { + it('returns true when diff editor', () => { + instance.createDiffInstance(holder); + + expect(instance.isDiffEditorType).toBe(true); + }); + + it('returns false when not diff editor', () => { + instance.createInstance(holder); + + expect(instance.isDiffEditorType).toBe(false); + }); + }); }); diff --git a/spec/javascripts/ide/stores/mutations/file_spec.js b/spec/javascripts/ide/stores/mutations/file_spec.js index 88285ee409f..bf9d5166d0a 100644 --- a/spec/javascripts/ide/stores/mutations/file_spec.js +++ b/spec/javascripts/ide/stores/mutations/file_spec.js @@ -194,6 +194,17 @@ describe('IDE store file mutations', () => { }); }); + describe('SET_FILE_VIEWMODE', () => { + it('updates file view mode', () => { + mutations.SET_FILE_VIEWMODE(localState, { + file: localFile, + viewMode: 'preview', + }); + + expect(localFile.viewMode).toBe('preview'); + }); + }); + describe('ADD_PENDING_TAB', () => { beforeEach(() => { const f = { diff --git a/spec/javascripts/notes/mock_data.js b/spec/javascripts/notes/mock_data.js index 2d88cee61f1..24388fba219 100644 --- a/spec/javascripts/notes/mock_data.js +++ b/spec/javascripts/notes/mock_data.js @@ -52,6 +52,7 @@ export const noteableDataMock = { updated_at: '2017-08-04T09:53:01.226Z', updated_by_id: 1, web_url: '/gitlab-org/gitlab-ce/issues/26', + noteableType: 'issue', }; export const lastFetchedAt = '1501862675'; diff --git a/spec/javascripts/pipelines/graph/job_component_spec.js b/spec/javascripts/pipelines/graph/job_component_spec.js index ce181a1e515..c9677ae209a 100644 --- a/spec/javascripts/pipelines/graph/job_component_spec.js +++ b/spec/javascripts/pipelines/graph/job_component_spec.js @@ -13,6 +13,7 @@ describe('pipeline graph job component', () => { icon: 'icon_status_success', text: 'passed', label: 'passed', + tooltip: 'passed', group: 'success', details_path: '/root/ci-mock/builds/4256', has_details: true, @@ -137,6 +138,7 @@ describe('pipeline graph job component', () => { status: { icon: 'icon_status_success', label: 'success', + tooltip: 'success', }, }, }); diff --git a/spec/javascripts/profile/account/components/update_username_spec.js b/spec/javascripts/profile/account/components/update_username_spec.js new file mode 100644 index 00000000000..bac306edf5a --- /dev/null +++ b/spec/javascripts/profile/account/components/update_username_spec.js @@ -0,0 +1,172 @@ +import Vue from 'vue'; +import axios from '~/lib/utils/axios_utils'; +import MockAdapter from 'axios-mock-adapter'; + +import updateUsername from '~/profile/account/components/update_username.vue'; +import mountComponent from 'spec/helpers/vue_mount_component_helper'; + +describe('UpdateUsername component', () => { + const rootUrl = gl.TEST_HOST; + const actionUrl = `${gl.TEST_HOST}/update/username`; + const username = 'hasnoname'; + const newUsername = 'new_username'; + let Component; + let vm; + let axiosMock; + + beforeEach(() => { + axiosMock = new MockAdapter(axios); + Component = Vue.extend(updateUsername); + vm = mountComponent(Component, { + actionUrl, + rootUrl, + initialUsername: username, + }); + }); + + afterEach(() => { + vm.$destroy(); + axiosMock.restore(); + }); + + const findElements = () => { + const modalSelector = `#${vm.$options.modalId}`; + + return { + input: vm.$el.querySelector(`#${vm.$options.inputId}`), + openModalBtn: vm.$el.querySelector(`[data-target="${modalSelector}"]`), + modal: vm.$el.querySelector(modalSelector), + modalBody: vm.$el.querySelector(`${modalSelector} .modal-body`), + modalHeader: vm.$el.querySelector(`${modalSelector} .modal-title`), + confirmModalBtn: vm.$el.querySelector(`${modalSelector} .btn-warning`), + }; + }; + + it('has a disabled button if the username was not changed', done => { + const { input, openModalBtn } = findElements(); + input.dispatchEvent(new Event('input')); + + Vue.nextTick() + .then(() => { + expect(vm.username).toBe(username); + expect(vm.newUsername).toBe(username); + expect(openModalBtn).toBeDisabled(); + }) + .then(done) + .catch(done.fail); + }); + + it('has an enabled button which if the username was changed', done => { + const { input, openModalBtn } = findElements(); + input.value = newUsername; + input.dispatchEvent(new Event('input')); + + Vue.nextTick() + .then(() => { + expect(vm.username).toBe(username); + expect(vm.newUsername).toBe(newUsername); + expect(openModalBtn).not.toBeDisabled(); + }) + .then(done) + .catch(done.fail); + }); + + it('confirmation modal contains proper header and body', done => { + const { modalBody, modalHeader } = findElements(); + + vm.newUsername = newUsername; + + Vue.nextTick() + .then(() => { + expect(modalHeader.textContent).toContain('Change username?'); + expect(modalBody.textContent).toContain( + `You are going to change the username ${username} to ${newUsername}`, + ); + }) + .then(done) + .catch(done.fail); + }); + + it('confirmation modal should escape usernames properly', done => { + const { modalBody } = findElements(); + + vm.username = vm.newUsername = '<i>Italic</i>'; + + Vue.nextTick() + .then(() => { + expect(modalBody.innerHTML).toContain('<i>Italic</i>'); + expect(modalBody.innerHTML).not.toContain(vm.username); + }) + .then(done) + .catch(done.fail); + }); + + it('executes API call on confirmation button click', done => { + const { confirmModalBtn } = findElements(); + + axiosMock.onPut(actionUrl).replyOnce(() => [200, { message: 'Username changed' }]); + spyOn(axios, 'put').and.callThrough(); + + vm.newUsername = newUsername; + + Vue.nextTick() + .then(() => { + confirmModalBtn.click(); + expect(axios.put).toHaveBeenCalledWith(actionUrl, { user: { username: newUsername } }); + }) + .then(done) + .catch(done.fail); + }); + + it('sets the username after a successful update', done => { + const { input, openModalBtn } = findElements(); + + axiosMock.onPut(actionUrl).replyOnce(() => { + expect(input).toBeDisabled(); + expect(openModalBtn).toBeDisabled(); + + return [200, { message: 'Username changed' }]; + }); + + vm.newUsername = newUsername; + + vm + .onConfirm() + .then(() => { + expect(vm.username).toBe(newUsername); + expect(vm.newUsername).toBe(newUsername); + expect(input).not.toBeDisabled(); + expect(input.value).toBe(newUsername); + expect(openModalBtn).toBeDisabled(); + }) + .then(done) + .catch(done.fail); + }); + + it('does not set the username after a erroneous update', done => { + const { input, openModalBtn } = findElements(); + + axiosMock.onPut(actionUrl).replyOnce(() => { + expect(input).toBeDisabled(); + expect(openModalBtn).toBeDisabled(); + + return [400, { message: 'Invalid username' }]; + }); + + const invalidUsername = 'anything.git'; + vm.newUsername = invalidUsername; + + vm + .onConfirm() + .then(() => done.fail('Expected onConfirm to throw!')) + .catch(() => { + expect(vm.username).toBe(username); + expect(vm.newUsername).toBe(invalidUsername); + expect(input).not.toBeDisabled(); + expect(input.value).toBe(invalidUsername); + expect(openModalBtn).not.toBeDisabled(); + }) + .then(done) + .catch(done.fail); + }); +}); diff --git a/spec/javascripts/vue_shared/components/content_viewer/content_viewer_spec.js b/spec/javascripts/vue_shared/components/content_viewer/content_viewer_spec.js new file mode 100644 index 00000000000..c7c454a0b45 --- /dev/null +++ b/spec/javascripts/vue_shared/components/content_viewer/content_viewer_spec.js @@ -0,0 +1,41 @@ +import Vue from 'vue'; +import MockAdapter from 'axios-mock-adapter'; +import axios from '~/lib/utils/axios_utils'; +import contentViewer from '~/vue_shared/components/content_viewer/content_viewer.vue'; +import mountComponent from 'spec/helpers/vue_mount_component_helper'; + +describe('ContentViewer', () => { + let vm; + let mock; + + function createComponent(props) { + const ContentViewer = Vue.extend(contentViewer); + vm = mountComponent(ContentViewer, props); + } + + afterEach(() => { + vm.$destroy(); + if (mock) mock.restore(); + }); + + it('markdown preview renders + loads rendered markdown from server', done => { + mock = new MockAdapter(axios); + mock.onPost(`${gon.relative_url_root}/testproject/preview_markdown`).reply(200, { + body: '<b>testing</b>', + }); + + createComponent({ + path: 'test.md', + content: '* Test', + projectPath: 'testproject', + }); + + const previewContainer = vm.$el.querySelector('.md-previewer'); + + setTimeout(() => { + expect(previewContainer.textContent).toContain('testing'); + + done(); + }); + }); +}); diff --git a/spec/lib/banzai/cross_project_reference_spec.rb b/spec/lib/banzai/cross_project_reference_spec.rb index 68ca960caab..aadfe7637dd 100644 --- a/spec/lib/banzai/cross_project_reference_spec.rb +++ b/spec/lib/banzai/cross_project_reference_spec.rb @@ -14,6 +14,16 @@ describe Banzai::CrossProjectReference do end end + context 'when no project was referenced in group context' do + it 'returns the group from context' do + group = double + + allow(self).to receive(:context).and_return({ group: group }) + + expect(parent_from_ref(nil)).to eq group + end + end + context 'when referenced project does not exist' do it 'returns nil' do expect(parent_from_ref('invalid/reference')).to be_nil diff --git a/spec/lib/banzai/filter/label_reference_filter_spec.rb b/spec/lib/banzai/filter/label_reference_filter_spec.rb index 0c524a1551f..392905076dc 100644 --- a/spec/lib/banzai/filter/label_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/label_reference_filter_spec.rb @@ -596,6 +596,27 @@ describe Banzai::Filter::LabelReferenceFilter do end describe 'group context' do + it 'points to the page defined in label_url_method' do + group = create(:group) + label = create(:group_label, group: group) + reference = "~#{label.name}" + + result = reference_filter("See #{reference}", { project: nil, group: group, label_url_method: :group_url } ) + + expect(result.css('a').first.attr('href')).to eq(urls.group_url(group, label_name: label.name)) + end + + it 'finds labels also in ancestor groups' do + group = create(:group) + label = create(:group_label, group: group) + subgroup = create(:group, parent: group) + reference = "~#{label.name}" + + result = reference_filter("See #{reference}", { project: nil, group: subgroup, label_url_method: :group_url } ) + + expect(result.css('a').first.attr('href')).to eq(urls.group_url(subgroup, label_name: label.name)) + end + it 'points to referenced project issues page' do project = create(:project) label = create(:label, project: project) @@ -604,6 +625,7 @@ describe Banzai::Filter::LabelReferenceFilter do result = reference_filter("See #{reference}", { project: nil, group: create(:group) } ) expect(result.css('a').first.attr('href')).to eq(urls.project_issues_url(project, label_name: label.name)) + expect(result.css('a').first.text).to eq "#{label.name} in #{project.full_name}" end end end diff --git a/spec/lib/banzai/reference_parser/issue_parser_spec.rb b/spec/lib/banzai/reference_parser/issue_parser_spec.rb index 0a63567ee40..cb7f8b20dda 100644 --- a/spec/lib/banzai/reference_parser/issue_parser_spec.rb +++ b/spec/lib/banzai/reference_parser/issue_parser_spec.rb @@ -117,4 +117,27 @@ describe Banzai::ReferenceParser::IssueParser do expect(subject.records_for_nodes(nodes)).to eq({ link => issue }) end end + + context 'when checking multiple merge requests on another project' do + let(:other_project) { create(:project, :public) } + let(:other_issue) { create(:issue, project: other_project) } + + let(:control_links) do + [issue_link(other_issue)] + end + + let(:actual_links) do + control_links + [issue_link(create(:issue, project: other_project))] + end + + def issue_link(issue) + Nokogiri::HTML.fragment(%Q{<a data-issue="#{issue.id}"></a>}).children[0] + end + + before do + project.add_developer(user) + end + + it_behaves_like 'no N+1 queries' + end end diff --git a/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb b/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb index 775749ae3a7..14542342cf6 100644 --- a/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb +++ b/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb @@ -4,14 +4,13 @@ describe Banzai::ReferenceParser::MergeRequestParser do include ReferenceParserHelpers let(:user) { create(:user) } - let(:merge_request) { create(:merge_request) } - subject { described_class.new(merge_request.target_project, user) } + let(:project) { create(:project, :public) } + let(:merge_request) { create(:merge_request, source_project: project) } + subject { described_class.new(project, user) } let(:link) { empty_html_link } describe '#nodes_visible_to_user' do context 'when the link has a data-issue attribute' do - let(:project) { merge_request.target_project } - before do project.update_attribute(:visibility_level, Gitlab::VisibilityLevel::PUBLIC) link['data-merge-request'] = merge_request.id.to_s @@ -40,4 +39,27 @@ describe Banzai::ReferenceParser::MergeRequestParser do end end end + + context 'when checking multiple merge requests on another project' do + let(:other_project) { create(:project, :public) } + let(:other_merge_request) { create(:merge_request, source_project: other_project) } + + let(:control_links) do + [merge_request_link(other_merge_request)] + end + + let(:actual_links) do + control_links + [merge_request_link(create(:merge_request, :conflict, source_project: other_project))] + end + + def merge_request_link(merge_request) + Nokogiri::HTML.fragment(%Q{<a data-merge-request="#{merge_request.id}"></a>}).children[0] + end + + before do + project.add_developer(user) + end + + it_behaves_like 'no N+1 queries' + end end diff --git a/spec/lib/gitlab/background_migration/set_confidential_note_events_on_services_spec.rb b/spec/lib/gitlab/background_migration/set_confidential_note_events_on_services_spec.rb new file mode 100644 index 00000000000..6f3fb994f17 --- /dev/null +++ b/spec/lib/gitlab/background_migration/set_confidential_note_events_on_services_spec.rb @@ -0,0 +1,31 @@ +require 'spec_helper' + +describe Gitlab::BackgroundMigration::SetConfidentialNoteEventsOnServices, :migration, schema: 20180122154930 do + let(:services) { table(:services) } + + describe '#perform' do + it 'migrates services where note_events is true' do + service = services.create(confidential_note_events: nil, note_events: true) + + subject.perform(service.id, service.id) + + expect(service.reload.confidential_note_events).to eq(true) + end + + it 'ignores services where note_events is false' do + service = services.create(confidential_note_events: nil, note_events: false) + + subject.perform(service.id, service.id) + + expect(service.reload.confidential_note_events).to eq(nil) + end + + it 'ignores services where confidential_note_events has already been set' do + service = services.create(confidential_note_events: false, note_events: true) + + subject.perform(service.id, service.id) + + expect(service.reload.confidential_note_events).to eq(false) + end + end +end diff --git a/spec/lib/gitlab/background_migration/set_confidential_note_events_on_webhooks_spec.rb b/spec/lib/gitlab/background_migration/set_confidential_note_events_on_webhooks_spec.rb new file mode 100644 index 00000000000..82b484b7d5b --- /dev/null +++ b/spec/lib/gitlab/background_migration/set_confidential_note_events_on_webhooks_spec.rb @@ -0,0 +1,31 @@ +require 'spec_helper' + +describe Gitlab::BackgroundMigration::SetConfidentialNoteEventsOnWebhooks, :migration, schema: 20180104131052 do + let(:web_hooks) { table(:web_hooks) } + + describe '#perform' do + it 'migrates hooks where note_events is true' do + hook = web_hooks.create(confidential_note_events: nil, note_events: true) + + subject.perform(hook.id, hook.id) + + expect(hook.reload.confidential_note_events).to eq(true) + end + + it 'ignores hooks where note_events is false' do + hook = web_hooks.create(confidential_note_events: nil, note_events: false) + + subject.perform(hook.id, hook.id) + + expect(hook.reload.confidential_note_events).to eq(nil) + end + + it 'ignores hooks where confidential_note_events has already been set' do + hook = web_hooks.create(confidential_note_events: false, note_events: true) + + subject.perform(hook.id, hook.id) + + expect(hook.reload.confidential_note_events).to eq(false) + end + end +end diff --git a/spec/lib/gitlab/ci/status/build/action_spec.rb b/spec/lib/gitlab/ci/status/build/action_spec.rb index d612d29e3e0..bdec582b57b 100644 --- a/spec/lib/gitlab/ci/status/build/action_spec.rb +++ b/spec/lib/gitlab/ci/status/build/action_spec.rb @@ -53,4 +53,14 @@ describe Gitlab::Ci::Status::Build::Action do end end end + + describe '#badge_tooltip' do + let(:user) { create(:user) } + let(:build) { create(:ci_build, :non_playable) } + let(:status) { Gitlab::Ci::Status::Core.new(build, user) } + + it 'returns the status' do + expect(subject.badge_tooltip).to eq('created') + end + end end diff --git a/spec/lib/gitlab/ci/status/build/cancelable_spec.rb b/spec/lib/gitlab/ci/status/build/cancelable_spec.rb index 9cdebaa5cf2..3ef0b6817e9 100644 --- a/spec/lib/gitlab/ci/status/build/cancelable_spec.rb +++ b/spec/lib/gitlab/ci/status/build/cancelable_spec.rb @@ -40,6 +40,24 @@ describe Gitlab::Ci::Status::Build::Cancelable do end end + describe '#status_tooltip' do + it 'does not override status status_tooltip' do + expect(status).to receive(:status_tooltip) + + subject.status_tooltip + end + end + + describe '#badge_tooltip' do + let(:user) { create(:user) } + let(:build) { create(:ci_build) } + let(:status) { Gitlab::Ci::Status::Core.new(build, user) } + + it 'returns the status' do + expect(subject.badge_tooltip).to eq('pending') + end + end + describe 'action details' do let(:user) { create(:user) } let(:build) { create(:ci_build) } diff --git a/spec/lib/gitlab/ci/status/build/factory_spec.rb b/spec/lib/gitlab/ci/status/build/factory_spec.rb index d196bc6a4c2..bbfa60169a1 100644 --- a/spec/lib/gitlab/ci/status/build/factory_spec.rb +++ b/spec/lib/gitlab/ci/status/build/factory_spec.rb @@ -48,11 +48,11 @@ describe Gitlab::Ci::Status::Build::Factory do it 'matches correct extended statuses' do expect(factory.extended_statuses) - .to eq [Gitlab::Ci::Status::Build::Retryable] + .to eq [Gitlab::Ci::Status::Build::Retryable, Gitlab::Ci::Status::Build::Failed] end - it 'fabricates a retryable build status' do - expect(status).to be_a Gitlab::Ci::Status::Build::Retryable + it 'fabricates a failed build status' do + expect(status).to be_a Gitlab::Ci::Status::Build::Failed end it 'fabricates status with correct details' do @@ -60,6 +60,7 @@ describe Gitlab::Ci::Status::Build::Factory do expect(status.icon).to eq 'status_failed' expect(status.favicon).to eq 'favicon_status_failed' expect(status.label).to eq 'failed' + expect(status.status_tooltip).to eq 'failed <br> (unknown failure)' expect(status).to have_details expect(status).to have_action end @@ -75,6 +76,7 @@ describe Gitlab::Ci::Status::Build::Factory do it 'matches correct extended statuses' do expect(factory.extended_statuses) .to eq [Gitlab::Ci::Status::Build::Retryable, + Gitlab::Ci::Status::Build::Failed, Gitlab::Ci::Status::Build::FailedAllowed] end diff --git a/spec/lib/gitlab/ci/status/build/failed_allowed_spec.rb b/spec/lib/gitlab/ci/status/build/failed_allowed_spec.rb index 99a5a7e4aca..bfaa508785e 100644 --- a/spec/lib/gitlab/ci/status/build/failed_allowed_spec.rb +++ b/spec/lib/gitlab/ci/status/build/failed_allowed_spec.rb @@ -3,6 +3,7 @@ require 'spec_helper' describe Gitlab::Ci::Status::Build::FailedAllowed do let(:status) { double('core status') } let(:user) { double('user') } + let(:build) { create(:ci_build, :failed, :allowed_to_fail) } subject do described_class.new(status) @@ -68,6 +69,28 @@ describe Gitlab::Ci::Status::Build::FailedAllowed do end end + describe '#badge_tooltip' do + let(:user) { create(:user) } + let(:failed_status) { Gitlab::Ci::Status::Failed.new(build, user) } + let(:build_status) { Gitlab::Ci::Status::Build::Failed.new(failed_status) } + let(:status) { described_class.new(build_status) } + + it 'does override badge_tooltip' do + expect(status.badge_tooltip).to eq('failed <br> (unknown failure)') + end + end + + describe '#status_tooltip' do + let(:user) { create(:user) } + let(:failed_status) { Gitlab::Ci::Status::Failed.new(build, user) } + let(:build_status) { Gitlab::Ci::Status::Build::Failed.new(failed_status) } + let(:status) { described_class.new(build_status) } + + it 'does override status_tooltip' do + expect(status.status_tooltip).to eq 'failed <br> (unknown failure) (allowed to fail)' + end + end + describe '.matches?' do subject { described_class.matches?(build, user) } diff --git a/spec/lib/gitlab/ci/status/build/failed_spec.rb b/spec/lib/gitlab/ci/status/build/failed_spec.rb new file mode 100644 index 00000000000..cadb424ea2c --- /dev/null +++ b/spec/lib/gitlab/ci/status/build/failed_spec.rb @@ -0,0 +1,83 @@ +require 'spec_helper' + +describe Gitlab::Ci::Status::Build::Failed do + let(:build) { create(:ci_build, :script_failure) } + let(:status) { double('core status') } + let(:user) { double('user') } + + subject { described_class.new(status) } + + describe '#text' do + it 'does not override status text' do + expect(status).to receive(:text) + + subject.text + end + end + + describe '#icon' do + it 'does not override status icon' do + expect(status).to receive(:icon) + + subject.icon + end + end + + describe '#group' do + it 'does not override status group' do + expect(status).to receive(:group) + + subject.group + end + end + + describe '#favicon' do + it 'does not override status label' do + expect(status).to receive(:favicon) + + subject.favicon + end + end + + describe '#label' do + it 'does not override label' do + expect(status).to receive(:label) + + subject.label + end + end + + describe '#badge_tooltip' do + let(:user) { create(:user) } + let(:status) { Gitlab::Ci::Status::Failed.new(build, user) } + + it 'does override badge_tooltip' do + expect(subject.badge_tooltip).to eq 'failed <br> (script failure)' + end + end + + describe '#status_tooltip' do + let(:user) { create(:user) } + let(:status) { Gitlab::Ci::Status::Failed.new(build, user) } + + it 'does override status_tooltip' do + expect(subject.status_tooltip).to eq 'failed <br> (script failure)' + end + end + + describe '.matches?' do + context 'with a failed build' do + it 'returns true' do + expect(described_class.matches?(build, user)).to be_truthy + end + end + + context 'with any other type of build' do + let(:build) { create(:ci_build, :success) } + + it 'returns false' do + expect(described_class.matches?(build, user)).to be_falsy + end + end + end +end diff --git a/spec/lib/gitlab/ci/status/build/play_spec.rb b/spec/lib/gitlab/ci/status/build/play_spec.rb index 81d5f553fd1..35e47cd2526 100644 --- a/spec/lib/gitlab/ci/status/build/play_spec.rb +++ b/spec/lib/gitlab/ci/status/build/play_spec.rb @@ -14,6 +14,22 @@ describe Gitlab::Ci::Status::Build::Play do end end + describe '#status_tooltip' do + it 'does not override status status_tooltip' do + expect(status).to receive(:status_tooltip) + + subject.status_tooltip + end + end + + describe '#badge_tooltip' do + it 'does not override status badge_tooltip' do + expect(status).to receive(:badge_tooltip) + + subject.badge_tooltip + end + end + describe '#has_action?' do context 'when user is allowed to update build' do context 'when user is allowed to trigger protected action' do diff --git a/spec/lib/gitlab/ci/status/build/retried_spec.rb b/spec/lib/gitlab/ci/status/build/retried_spec.rb new file mode 100644 index 00000000000..ee9acaf1c21 --- /dev/null +++ b/spec/lib/gitlab/ci/status/build/retried_spec.rb @@ -0,0 +1,96 @@ +require 'spec_helper' + +describe Gitlab::Ci::Status::Build::Retried do + let(:build) { create(:ci_build, :retried) } + let(:status) { double('core status') } + let(:user) { double('user') } + + subject { described_class.new(status) } + + describe '#text' do + it 'does not override status text' do + expect(status).to receive(:text) + + subject.text + end + end + + describe '#icon' do + it 'does not override status icon' do + expect(status).to receive(:icon) + + subject.icon + end + end + + describe '#group' do + it 'does not override status group' do + expect(status).to receive(:group) + + subject.group + end + end + + describe '#favicon' do + it 'does not override status label' do + expect(status).to receive(:favicon) + + subject.favicon + end + end + + describe '#label' do + it 'does not override status label' do + expect(status).to receive(:label) + + subject.label + end + end + + describe '#badge_tooltip' do + let(:user) { create(:user) } + let(:build) { create(:ci_build, :retried) } + let(:status) { Gitlab::Ci::Status::Success.new(build, user) } + + it 'returns status' do + expect(status.badge_tooltip).to eq('pending') + end + end + + describe '#status_tooltip' do + let(:user) { create(:user) } + + context 'with a failed build' do + let(:build) { create(:ci_build, :failed, :retried) } + let(:failed_status) { Gitlab::Ci::Status::Failed.new(build, user) } + let(:status) { Gitlab::Ci::Status::Build::Failed.new(failed_status) } + + it 'does override status_tooltip' do + expect(subject.status_tooltip).to eq 'failed <br> (unknown failure) (retried)' + end + end + + context 'with another build' do + let(:build) { create(:ci_build, :retried) } + let(:status) { Gitlab::Ci::Status::Success.new(build, user) } + + it 'does override status_tooltip' do + expect(subject.status_tooltip).to eq 'passed (retried)' + end + end + end + + describe '.matches?' do + subject { described_class.matches?(build, user) } + + context 'with a retried build' do + it { is_expected.to be_truthy } + end + + context 'with a build that has not been retried' do + let(:build) { create(:ci_build, :success) } + + it { is_expected.to be_falsy } + end + end +end diff --git a/spec/lib/gitlab/ci/status/build/retryable_spec.rb b/spec/lib/gitlab/ci/status/build/retryable_spec.rb index 14d42e0d70f..0c5099b7da5 100644 --- a/spec/lib/gitlab/ci/status/build/retryable_spec.rb +++ b/spec/lib/gitlab/ci/status/build/retryable_spec.rb @@ -40,6 +40,24 @@ describe Gitlab::Ci::Status::Build::Retryable do end end + describe '#status_tooltip' do + it 'does not override status status_tooltip' do + expect(status).to receive(:status_tooltip) + + subject.status_tooltip + end + end + + describe '#badge_tooltip' do + let(:user) { create(:user) } + let(:build) { create(:ci_build) } + let(:status) { Gitlab::Ci::Status::Core.new(build, user) } + + it 'does return status' do + expect(status.badge_tooltip).to eq('pending') + end + end + describe 'action details' do let(:user) { create(:user) } let(:build) { create(:ci_build) } diff --git a/spec/lib/gitlab/ci/status/build/stop_spec.rb b/spec/lib/gitlab/ci/status/build/stop_spec.rb index 18e250772f0..f16fc5c9205 100644 --- a/spec/lib/gitlab/ci/status/build/stop_spec.rb +++ b/spec/lib/gitlab/ci/status/build/stop_spec.rb @@ -77,4 +77,24 @@ describe Gitlab::Ci::Status::Build::Stop do end end end + + describe '#status_tooltip' do + it 'does not override status status_tooltip' do + expect(status).to receive(:status_tooltip) + + subject.status_tooltip + end + end + + describe '#badge_tooltip' do + let(:user) { create(:user) } + let(:build) { create(:ci_build, :playable) } + let(:status) { Gitlab::Ci::Status::Core.new(build, user) } + + it 'does not override status badge_tooltip' do + expect(status).to receive(:badge_tooltip) + + subject.badge_tooltip + end + end end diff --git a/spec/lib/gitlab/ci/status/success_warning_spec.rb b/spec/lib/gitlab/ci/status/success_warning_spec.rb index 4582354e739..6d05545d1d8 100644 --- a/spec/lib/gitlab/ci/status/success_warning_spec.rb +++ b/spec/lib/gitlab/ci/status/success_warning_spec.rb @@ -1,8 +1,10 @@ require 'spec_helper' describe Gitlab::Ci::Status::SuccessWarning do + let(:status) { double('status') } + subject do - described_class.new(double('status')) + described_class.new(status) end describe '#test' do diff --git a/spec/lib/gitlab/data_builder/note_spec.rb b/spec/lib/gitlab/data_builder/note_spec.rb index aaa42566a4d..4f8412108ba 100644 --- a/spec/lib/gitlab/data_builder/note_spec.rb +++ b/spec/lib/gitlab/data_builder/note_spec.rb @@ -55,6 +55,14 @@ describe Gitlab::DataBuilder::Note do .to be > issue.hook_attrs['updated_at'] end + context 'with confidential issue' do + let(:issue) { create(:issue, project: project, confidential: true) } + + it 'sets event_type to confidential_note' do + expect(data[:event_type]).to eq('confidential_note') + end + end + include_examples 'project hook data' include_examples 'deprecated repository hook data' end diff --git a/spec/lib/gitlab/database/sha_attribute_spec.rb b/spec/lib/gitlab/database/sha_attribute_spec.rb index 62c1d37ea1c..778bfa2cc47 100644 --- a/spec/lib/gitlab/database/sha_attribute_spec.rb +++ b/spec/lib/gitlab/database/sha_attribute_spec.rb @@ -19,15 +19,15 @@ describe Gitlab::Database::ShaAttribute do let(:attribute) { described_class.new } - describe '#type_cast_from_database' do + describe '#deserialize' do it 'converts the binary SHA to a String' do - expect(attribute.type_cast_from_database(binary_from_db)).to eq(sha) + expect(attribute.deserialize(binary_from_db)).to eq(sha) end end - describe '#type_cast_for_database' do + describe '#serialize' do it 'converts a SHA String to binary data' do - expect(attribute.type_cast_for_database(sha).to_s).to eq(binary_sha) + expect(attribute.serialize(sha).to_s).to eq(binary_sha) end end end diff --git a/spec/lib/gitlab/git_access_spec.rb b/spec/lib/gitlab/git_access_spec.rb index f8f09d29c73..b845abab5ef 100644 --- a/spec/lib/gitlab/git_access_spec.rb +++ b/spec/lib/gitlab/git_access_spec.rb @@ -10,12 +10,13 @@ describe Gitlab::GitAccess do let(:protocol) { 'ssh' } let(:authentication_abilities) { %i[read_project download_code push_code] } let(:redirected_path) { nil } + let(:auth_result_type) { nil } let(:access) do described_class.new(actor, project, protocol, authentication_abilities: authentication_abilities, namespace_path: namespace_path, project_path: project_path, - redirected_path: redirected_path) + redirected_path: redirected_path, auth_result_type: auth_result_type) end let(:changes) { '_any' } @@ -45,6 +46,7 @@ describe Gitlab::GitAccess do before do disable_protocol('http') + project.add_master(user) end it 'blocks http push and pull' do @@ -53,6 +55,26 @@ describe Gitlab::GitAccess do expect { pull_access_check }.to raise_unauthorized('Git access over HTTP is not allowed') end end + + context 'when request is made from CI' do + let(:auth_result_type) { :build } + + it "doesn't block http pull" do + aggregate_failures do + expect { pull_access_check }.not_to raise_unauthorized('Git access over HTTP is not allowed') + end + end + + context 'when legacy CI credentials are used' do + let(:auth_result_type) { :ci } + + it "doesn't block http pull" do + aggregate_failures do + expect { pull_access_check }.not_to raise_unauthorized('Git access over HTTP is not allowed') + end + end + end + end end end diff --git a/spec/lib/gitlab/import_export/importer_spec.rb b/spec/lib/gitlab/import_export/importer_spec.rb new file mode 100644 index 00000000000..d75416f2a62 --- /dev/null +++ b/spec/lib/gitlab/import_export/importer_spec.rb @@ -0,0 +1,64 @@ +require 'spec_helper' + +describe Gitlab::ImportExport::Importer do + let(:test_path) { "#{Dir.tmpdir}/importer_spec" } + let(:shared) { project.import_export_shared } + let(:project) { create(:project, import_source: File.join(test_path, 'exported-project.gz')) } + + subject(:importer) { described_class.new(project) } + + before do + allow_any_instance_of(Gitlab::ImportExport).to receive(:storage_path).and_return(test_path) + FileUtils.mkdir_p(shared.export_path) + FileUtils.cp(Rails.root.join('spec', 'fixtures', 'exported-project.gz'), test_path) + end + + after do + FileUtils.rm_rf(test_path) + end + + describe '#execute' do + it 'succeeds' do + importer.execute + + expect(shared.errors).to be_empty + end + + it 'extracts the archive' do + expect(Gitlab::ImportExport::FileImporter).to receive(:import).and_call_original + + importer.execute + end + + it 'checks the version' do + expect(Gitlab::ImportExport::VersionChecker).to receive(:check!).and_call_original + + importer.execute + end + + context 'all restores are executed' do + [ + Gitlab::ImportExport::AvatarRestorer, + Gitlab::ImportExport::RepoRestorer, + Gitlab::ImportExport::WikiRestorer, + Gitlab::ImportExport::UploadsRestorer, + Gitlab::ImportExport::LfsRestorer + ].each do |restorer| + it "calls the #{restorer}" do + fake_restorer = double(restorer.to_s) + + expect(fake_restorer).to receive(:restore).and_return(true).at_least(1) + expect(restorer).to receive(:new).and_return(fake_restorer).at_least(1) + + importer.execute + end + end + + it 'restores the ProjectTree' do + expect(Gitlab::ImportExport::ProjectTreeRestorer).to receive(:new).and_call_original + + importer.execute + end + end + end +end diff --git a/spec/lib/gitlab/import_export/lfs_restorer_spec.rb b/spec/lib/gitlab/import_export/lfs_restorer_spec.rb new file mode 100644 index 00000000000..70eeb9ee66b --- /dev/null +++ b/spec/lib/gitlab/import_export/lfs_restorer_spec.rb @@ -0,0 +1,75 @@ +require 'spec_helper' + +describe Gitlab::ImportExport::LfsRestorer do + include UploadHelpers + + let(:export_path) { "#{Dir.tmpdir}/lfs_object_restorer_spec" } + let(:project) { create(:project) } + let(:shared) { project.import_export_shared } + subject(:restorer) { described_class.new(project: project, shared: shared) } + + before do + allow_any_instance_of(Gitlab::ImportExport).to receive(:storage_path).and_return(export_path) + FileUtils.mkdir_p(shared.export_path) + end + + after do + FileUtils.rm_rf(shared.export_path) + end + + describe '#restore' do + context 'when the archive contains lfs files' do + let(:dummy_lfs_file_path) { File.join(shared.export_path, 'lfs-objects', 'dummy') } + + def create_lfs_object_with_content(content) + dummy_lfs_file = Tempfile.new('existing') + File.write(dummy_lfs_file.path, content) + size = dummy_lfs_file.size + oid = LfsObject.calculate_oid(dummy_lfs_file.path) + LfsObject.create!(oid: oid, size: size, file: dummy_lfs_file) + end + + before do + FileUtils.mkdir_p(File.dirname(dummy_lfs_file_path)) + File.write(dummy_lfs_file_path, 'not very large') + allow(restorer).to receive(:lfs_file_paths).and_return([dummy_lfs_file_path]) + end + + it 'creates an lfs object for the project' do + expect { restorer.restore }.to change { project.reload.lfs_objects.size }.by(1) + end + + it 'assigns the file correctly' do + restorer.restore + + expect(project.lfs_objects.first.file.read).to eq('not very large') + end + + it 'links an existing LFS object if it existed' do + lfs_object = create_lfs_object_with_content('not very large') + + restorer.restore + + expect(project.lfs_objects).to include(lfs_object) + end + + it 'succeeds' do + expect(restorer.restore).to be_truthy + expect(shared.errors).to be_empty + end + + it 'stores the upload' do + expect_any_instance_of(LfsObjectUploader).to receive(:store!) + + restorer.restore + end + end + + context 'without any LFS-objects' do + it 'succeeds' do + expect(restorer.restore).to be_truthy + expect(shared.errors).to be_empty + end + end + end +end diff --git a/spec/lib/gitlab/import_export/lfs_saver_spec.rb b/spec/lib/gitlab/import_export/lfs_saver_spec.rb new file mode 100644 index 00000000000..9b0e21deb2e --- /dev/null +++ b/spec/lib/gitlab/import_export/lfs_saver_spec.rb @@ -0,0 +1,62 @@ +require 'spec_helper' + +describe Gitlab::ImportExport::LfsSaver do + let(:shared) { project.import_export_shared } + let(:export_path) { "#{Dir.tmpdir}/project_tree_saver_spec" } + let(:project) { create(:project) } + + subject(:saver) { described_class.new(project: project, shared: shared) } + + before do + allow_any_instance_of(Gitlab::ImportExport).to receive(:storage_path).and_return(export_path) + FileUtils.mkdir_p(shared.export_path) + end + + after do + FileUtils.rm_rf(shared.export_path) + end + + describe '#save' do + context 'when the project has LFS objects locally stored' do + let(:lfs_object) { create(:lfs_object, :with_file) } + + before do + project.lfs_objects << lfs_object + end + + it 'does not cause errors' do + saver.save + + expect(shared.errors).to be_empty + end + + it 'copies the file in the correct location when there is an lfs object' do + saver.save + + expect(File).to exist("#{shared.export_path}/lfs-objects/#{lfs_object.oid}") + end + end + + context 'when the LFS objects are stored in object storage' do + let(:lfs_object) { create(:lfs_object, :object_storage) } + + before do + allow(LfsObjectUploader).to receive(:object_store_enabled?).and_return(true) + allow(lfs_object.file).to receive(:url).and_return('http://my-object-storage.local') + project.lfs_objects << lfs_object + end + + it 'downloads the file to include in an archive' do + fake_uri = double + exported_file_path = "#{shared.export_path}/lfs-objects/#{lfs_object.oid}" + + expect(fake_uri).to receive(:open).and_return(StringIO.new('LFS file content')) + expect(URI).to receive(:parse).with('http://my-object-storage.local').and_return(fake_uri) + + saver.save + + expect(File.read(exported_file_path)).to eq('LFS file content') + end + end + end +end diff --git a/spec/lib/gitlab/import_export/project.json b/spec/lib/gitlab/import_export/project.json index 4a51777ba9b..6d63749296e 100644 --- a/spec/lib/gitlab/import_export/project.json +++ b/spec/lib/gitlab/import_export/project.json @@ -2,7 +2,6 @@ "description": "Nisi et repellendus ut enim quo accusamus vel magnam.", "visibility_level": 10, "archived": false, - "description_html": "description", "labels": [ { "id": 2, @@ -6181,12 +6180,6 @@ "user_id": null, "target_url": null, "description": null, - "artifacts_file": { - "url": null - }, - "artifacts_metadata": { - "url": null - }, "erased_by_id": null, "erased_at": null, "type": "Ci::Build", @@ -6219,12 +6212,6 @@ "user_id": null, "target_url": null, "description": null, - "artifacts_file": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/72/p5_build_artifacts.zip" - }, - "artifacts_metadata": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/72/p5_build_artifacts_metadata.gz" - }, "erased_by_id": null, "erased_at": null } @@ -6293,12 +6280,6 @@ "user_id": null, "target_url": null, "description": null, - "artifacts_file": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/74/p5_build_artifacts.zip" - }, - "artifacts_metadata": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/74/p5_build_artifacts_metadata.gz" - }, "erased_by_id": null, "erased_at": null }, @@ -6328,12 +6309,6 @@ "user_id": null, "target_url": null, "description": null, - "artifacts_file": { - "url": null - }, - "artifacts_metadata": { - "url": null - }, "erased_by_id": null, "erased_at": null } @@ -6393,12 +6368,6 @@ "user_id": null, "target_url": null, "description": null, - "artifacts_file": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/76/p5_build_artifacts.zip" - }, - "artifacts_metadata": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/76/p5_build_artifacts_metadata.gz" - }, "erased_by_id": null, "erased_at": null }, @@ -6428,12 +6397,6 @@ "user_id": null, "target_url": null, "description": null, - "artifacts_file": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/75/p5_build_artifacts.zip" - }, - "artifacts_metadata": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/75/p5_build_artifacts_metadata.gz" - }, "erased_by_id": null, "erased_at": null } @@ -6493,12 +6456,6 @@ "user_id": null, "target_url": null, "description": null, - "artifacts_file": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/78/p5_build_artifacts.zip" - }, - "artifacts_metadata": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/78/p5_build_artifacts_metadata.gz" - }, "erased_by_id": null, "erased_at": null }, @@ -6528,12 +6485,6 @@ "user_id": null, "target_url": null, "description": null, - "artifacts_file": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/77/p5_build_artifacts.zip" - }, - "artifacts_metadata": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/77/p5_build_artifacts_metadata.gz" - }, "erased_by_id": null, "erased_at": null } @@ -6593,12 +6544,6 @@ "user_id": null, "target_url": null, "description": null, - "artifacts_file": { - "url": null - }, - "artifacts_metadata": { - "url": null - }, "erased_by_id": null, "erased_at": null }, @@ -6628,12 +6573,6 @@ "user_id": null, "target_url": null, "description": null, - "artifacts_file": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/80/p5_build_artifacts.zip" - }, - "artifacts_metadata": { - "url": "/Users/Test/Test/gitlab-development-kit/gitlab/shared/artifacts/2016_03/5/80/p5_build_artifacts_metadata.gz" - }, "erased_by_id": null, "erased_at": null } diff --git a/spec/lib/gitlab/import_export/project_tree_restorer_spec.rb b/spec/lib/gitlab/import_export/project_tree_restorer_spec.rb index 8e25cd26c2f..13a8c9adcee 100644 --- a/spec/lib/gitlab/import_export/project_tree_restorer_spec.rb +++ b/spec/lib/gitlab/import_export/project_tree_restorer_spec.rb @@ -46,10 +46,6 @@ describe Gitlab::ImportExport::ProjectTreeRestorer do expect(Project.find_by_path('project').description).to eq('Nisi et repellendus ut enim quo accusamus vel magnam.') end - it 'has the project html description' do - expect(Project.find_by_path('project').description_html).to eq('description') - end - it 'has the same label associated to two issues' do expect(ProjectLabel.find_by_title('test2').issues.count).to eq(2) end @@ -317,6 +313,24 @@ describe Gitlab::ImportExport::ProjectTreeRestorer do end end + context 'when the project has overriden params in import data' do + it 'overwrites the params stored in the JSON' do + project.create_import_data(data: { override_params: { description: "Overridden" } }) + + restored_project_json + + expect(project.description).to eq("Overridden") + end + + it 'does not allow setting params that are excluded from import_export settings' do + project.create_import_data(data: { override_params: { lfs_enabled: true } }) + + restored_project_json + + expect(project.lfs_enabled).to be_nil + end + end + context 'with a project that has a group' do let!(:project) do create(:project, diff --git a/spec/lib/gitlab/import_export/project_tree_saver_spec.rb b/spec/lib/gitlab/import_export/project_tree_saver_spec.rb index 0d20a551e2a..2b8a11ce8f9 100644 --- a/spec/lib/gitlab/import_export/project_tree_saver_spec.rb +++ b/spec/lib/gitlab/import_export/project_tree_saver_spec.rb @@ -245,10 +245,6 @@ describe Gitlab::ImportExport::ProjectTreeSaver do end context 'project attributes' do - it 'contains the html description' do - expect(saved_project_json).to include("description_html" => 'description') - end - it 'does not contain the runners token' do expect(saved_project_json).not_to include("runners_token" => 'token') end @@ -274,7 +270,6 @@ describe Gitlab::ImportExport::ProjectTreeSaver do releases: [release], group: group ) - project.update_column(:description_html, 'description') project_label = create(:label, project: project) group_label = create(:group_label, group: group) create(:label_link, label: project_label, target: issue) diff --git a/spec/lib/gitlab/import_export/safe_model_attributes.yml b/spec/lib/gitlab/import_export/safe_model_attributes.yml index f949a23ffbb..f84a777a27f 100644 --- a/spec/lib/gitlab/import_export/safe_model_attributes.yml +++ b/spec/lib/gitlab/import_export/safe_model_attributes.yml @@ -390,6 +390,7 @@ Service: - default - wiki_page_events - confidential_issues_events +- confidential_note_events ProjectHook: - id - url @@ -410,6 +411,7 @@ ProjectHook: - token - group_id - confidential_issues_events +- confidential_note_events - repository_update_events ProtectedBranch: - id diff --git a/spec/lib/uploaded_file_spec.rb b/spec/lib/uploaded_file_spec.rb new file mode 100644 index 00000000000..cc99e7e8911 --- /dev/null +++ b/spec/lib/uploaded_file_spec.rb @@ -0,0 +1,116 @@ +require 'spec_helper' + +describe UploadedFile do + describe ".from_params" do + let(:temp_dir) { Dir.tmpdir } + let(:temp_file) { Tempfile.new("test", temp_dir) } + let(:upload_path) { nil } + + subject do + described_class.from_params(params, :file, upload_path) + end + + before do + FileUtils.touch(temp_file) + end + + after do + FileUtils.rm_f(temp_file) + FileUtils.rm_r(upload_path) if upload_path + end + + context 'when valid file is specified' do + context 'only local path is specified' do + let(:params) do + { 'file.path' => temp_file.path } + end + + it "succeeds" do + is_expected.not_to be_nil + end + + it "generates filename from path" do + expect(subject.original_filename).to eq(::File.basename(temp_file.path)) + end + end + + context 'all parameters are specified' do + let(:params) do + { 'file.path' => temp_file.path, + 'file.name' => 'my_file.txt', + 'file.type' => 'my/type', + 'file.sha256' => 'sha256', + 'file.remote_id' => 'remote_id' } + end + + it "succeeds" do + is_expected.not_to be_nil + end + + it "generates filename from path" do + expect(subject.original_filename).to eq('my_file.txt') + expect(subject.content_type).to eq('my/type') + expect(subject.sha256).to eq('sha256') + expect(subject.remote_id).to eq('remote_id') + end + end + end + + context 'when no params are specified' do + let(:params) do + {} + end + + it "does not return an object" do + is_expected.to be_nil + end + end + + context 'when only remote id is specified' do + let(:params) do + { 'file.remote_id' => 'remote_id' } + end + + it "raises an error" do + expect { subject }.to raise_error(UploadedFile::InvalidPathError, /file is invalid/) + end + end + + context 'when verifying allowed paths' do + let(:params) do + { 'file.path' => temp_file.path } + end + + context 'when file is stored in system temporary folder' do + let(:temp_dir) { Dir.tmpdir } + + it "succeeds" do + is_expected.not_to be_nil + end + end + + context 'when file is stored in user provided upload path' do + let(:upload_path) { Dir.mktmpdir } + let(:temp_dir) { upload_path } + + it "succeeds" do + is_expected.not_to be_nil + end + end + + context 'when file is stored outside of user provided upload path' do + let!(:generated_dir) { Dir.mktmpdir } + let!(:temp_dir) { Dir.mktmpdir } + + before do + # We overwrite default temporary path + allow(Dir).to receive(:tmpdir).and_return(generated_dir) + end + + it "raises an error" do + expect { subject }.to raise_error(UploadedFile::InvalidPathError, /insecure path used/) + end + end + end + end +end diff --git a/spec/mailers/previews/email_rejection_mailer_preview.rb b/spec/mailers/previews/email_rejection_mailer_preview.rb new file mode 100644 index 00000000000..639e8471232 --- /dev/null +++ b/spec/mailers/previews/email_rejection_mailer_preview.rb @@ -0,0 +1,5 @@ +class EmailRejectionMailerPreview < ActionMailer::Preview + def rejection + EmailRejectionMailer.rejection("some rejection reason", "From: someone@example.com\nraw email here").message + end +end diff --git a/spec/mailers/previews/notify_preview.rb b/spec/mailers/previews/notify_preview.rb index 43c3c89f140..e32fd0bd120 100644 --- a/spec/mailers/previews/notify_preview.rb +++ b/spec/mailers/previews/notify_preview.rb @@ -58,16 +58,89 @@ class NotifyPreview < ActionMailer::Preview end end + def closed_issue_email + Notify.closed_issue_email(user.id, issue.id, user.id).message + end + + def issue_status_changed_email + Notify.issue_status_changed_email(user.id, issue.id, 'closed', user.id).message + end + + def closed_merge_request_email + Notify.closed_merge_request_email(user.id, issue.id, user.id).message + end + + def merge_request_status_email + Notify.merge_request_status_email(user.id, merge_request.id, 'closed', user.id).message + end + + def merged_merge_request_email + Notify.merged_merge_request_email(user.id, merge_request.id, user.id).message + end + + def member_access_denied_email + Notify.member_access_denied_email('project', project.id, user.id).message + end + + def member_access_granted_email + Notify.member_access_granted_email('project', user.id).message + end + + def member_access_requested_email + Notify.member_access_requested_email('group', user.id, 'some@example.com').message + end + + def member_invite_accepted_email + Notify.member_invite_accepted_email('project', user.id).message + end + + def member_invite_declined_email + Notify.member_invite_declined_email( + 'project', + project.id, + 'invite@example.com', + user.id + ).message + end + + def member_invited_email + Notify.member_invited_email('project', user.id, '1234').message + end + + def pages_domain_enabled_email + cleanup do + pages_domain = PagesDomain.new(domain: 'my.example.com', project: project, verified_at: Time.now, enabled_until: 1.week.from_now) + + Notify.pages_domain_enabled_email(pages_domain, user).message + end + end + + def pipeline_success_email + Notify.pipeline_success_email(pipeline, pipeline.user.try(:email)) + end + + def pipeline_failed_email + Notify.pipeline_failed_email(pipeline, pipeline.user.try(:email)) + end + private def project @project ||= Project.find_by_full_path('gitlab-org/gitlab-test') end + def issue + @merge_request ||= project.issues.first + end + def merge_request @merge_request ||= project.merge_requests.first end + def pipeline + @pipeline = Ci::Pipeline.last + end + def user @user ||= User.last end @@ -94,14 +167,4 @@ class NotifyPreview < ActionMailer::Preview email end - - def pipeline_success_email - pipeline = Ci::Pipeline.last - Notify.pipeline_success_email(pipeline, pipeline.user.try(:email)) - end - - def pipeline_failed_email - pipeline = Ci::Pipeline.last - Notify.pipeline_failed_email(pipeline, pipeline.user.try(:email)) - end end diff --git a/spec/mailers/previews/repository_check_mailer_preview.rb b/spec/mailers/previews/repository_check_mailer_preview.rb new file mode 100644 index 00000000000..19d4eab1805 --- /dev/null +++ b/spec/mailers/previews/repository_check_mailer_preview.rb @@ -0,0 +1,5 @@ +class RepositoryCheckMailerPreview < ActionMailer::Preview + def notify + RepositoryCheckMailer.notify(3).message + end +end diff --git a/spec/migrations/active_record/schedule_set_confidential_note_events_on_services_spec.rb b/spec/migrations/active_record/schedule_set_confidential_note_events_on_services_spec.rb new file mode 100644 index 00000000000..4395e2f8264 --- /dev/null +++ b/spec/migrations/active_record/schedule_set_confidential_note_events_on_services_spec.rb @@ -0,0 +1,44 @@ +require 'spec_helper' +require Rails.root.join('db', 'post_migrate', '20180122154930_schedule_set_confidential_note_events_on_services.rb') + +describe ScheduleSetConfidentialNoteEventsOnServices, :migration, :sidekiq do + let(:services_table) { table(:services) } + let(:migration_class) { Gitlab::BackgroundMigration::SetConfidentialNoteEventsOnServices } + let(:migration_name) { migration_class.to_s.demodulize } + + let!(:service_1) { services_table.create!(confidential_note_events: nil, note_events: true) } + let!(:service_2) { services_table.create!(confidential_note_events: nil, note_events: true) } + let!(:service_migrated) { services_table.create!(confidential_note_events: true, note_events: true) } + let!(:service_skip) { services_table.create!(confidential_note_events: nil, note_events: false) } + let!(:service_new) { services_table.create!(confidential_note_events: false, note_events: true) } + let!(:service_4) { services_table.create!(confidential_note_events: nil, note_events: true) } + + before do + stub_const("#{described_class}::BATCH_SIZE", 1) + end + + it 'schedules background migrations at correct time' do + Sidekiq::Testing.fake! do + Timecop.freeze do + migrate! + + expect(migration_name).to be_scheduled_delayed_migration(20.minutes, service_1.id, service_1.id) + expect(migration_name).to be_scheduled_delayed_migration(40.minutes, service_2.id, service_2.id) + expect(migration_name).to be_scheduled_delayed_migration(60.minutes, service_4.id, service_4.id) + expect(BackgroundMigrationWorker.jobs.size).to eq 3 + end + end + end + + it 'correctly processes services' do + Sidekiq::Testing.inline! do + expect(services_table.where(confidential_note_events: nil).count).to eq 4 + expect(services_table.where(confidential_note_events: true).count).to eq 1 + + migrate! + + expect(services_table.where(confidential_note_events: nil).count).to eq 1 + expect(services_table.where(confidential_note_events: true).count).to eq 4 + end + end +end diff --git a/spec/migrations/migrate_gcp_clusters_to_new_clusters_architectures_spec.rb b/spec/migrations/migrate_gcp_clusters_to_new_clusters_architectures_spec.rb index c81ec887ded..df009cec25c 100644 --- a/spec/migrations/migrate_gcp_clusters_to_new_clusters_architectures_spec.rb +++ b/spec/migrations/migrate_gcp_clusters_to_new_clusters_architectures_spec.rb @@ -4,8 +4,24 @@ require Rails.root.join('db', 'post_migrate', '20171013104327_migrate_gcp_cluste describe MigrateGcpClustersToNewClustersArchitectures, :migration do let(:projects) { table(:projects) } let(:project) { projects.create } - let(:user) { create(:user) } - let(:service) { create(:kubernetes_service, project_id: project.id) } + let(:users) { table(:users) } + let(:user) { users.create! } + let(:service) { GcpMigrationSpec::KubernetesService.create!(project_id: project.id) } + + module GcpMigrationSpec + class KubernetesService < ActiveRecord::Base + self.table_name = 'services' + + serialize :properties, JSON # rubocop:disable Cop/ActiveRecordSerialize + + default_value_for :active, true + default_value_for :type, 'KubernetesService' + default_value_for :properties, { + api_url: 'https://kubernetes.example.com', + token: 'a' * 40 + } + end + end context 'when cluster is being created' do let(:project_id) { project.id } diff --git a/spec/migrations/rename_users_with_renamed_namespace_spec.rb b/spec/migrations/rename_users_with_renamed_namespace_spec.rb index cbc0ebeb44d..e2994103ed7 100644 --- a/spec/migrations/rename_users_with_renamed_namespace_spec.rb +++ b/spec/migrations/rename_users_with_renamed_namespace_spec.rb @@ -7,9 +7,9 @@ describe RenameUsersWithRenamedNamespace, :delete do other_user1 = create(:user, username: 'api0') user = create(:user, username: "Users0") - user.update_attribute(:username, 'Users') + user.update_column(:username, 'Users') user1 = create(:user, username: "import0") - user1.update_attribute(:username, 'import') + user1.update_column(:username, 'import') described_class.new.up diff --git a/spec/migrations/schedule_build_stage_migration_spec.rb b/spec/migrations/reschedule_builds_stages_migration_spec.rb index e2ca35447fb..3bfd9dd9f6b 100644 --- a/spec/migrations/schedule_build_stage_migration_spec.rb +++ b/spec/migrations/reschedule_builds_stages_migration_spec.rb @@ -1,7 +1,8 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20180212101928_schedule_build_stage_migration') +require Rails.root.join('db', 'post_migrate', '20180405101928_reschedule_builds_stages_migration') -describe ScheduleBuildStageMigration, :sidekiq, :migration do +describe RescheduleBuildsStagesMigration, :sidekiq, :migration do + let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:pipelines) { table(:ci_pipelines) } let(:stages) { table(:ci_stages) } @@ -10,7 +11,8 @@ describe ScheduleBuildStageMigration, :sidekiq, :migration do before do stub_const("#{described_class}::BATCH_SIZE", 1) - projects.create!(id: 123, name: 'gitlab', path: 'gitlab-ce') + namespaces.create(id: 12, name: 'gitlab-org', path: 'gitlab-org') + projects.create!(id: 123, namespace_id: 12, name: 'gitlab', path: 'gitlab') pipelines.create!(id: 1, project_id: 123, ref: 'master', sha: 'adf43c3a') stages.create!(id: 1, project_id: 123, pipeline_id: 1, name: 'test') diff --git a/spec/migrations/schedule_set_confidential_note_events_on_webhooks_spec.rb b/spec/migrations/schedule_set_confidential_note_events_on_webhooks_spec.rb new file mode 100644 index 00000000000..027f4a91c90 --- /dev/null +++ b/spec/migrations/schedule_set_confidential_note_events_on_webhooks_spec.rb @@ -0,0 +1,44 @@ +require 'spec_helper' +require Rails.root.join('db', 'post_migrate', '20180104131052_schedule_set_confidential_note_events_on_webhooks.rb') + +describe ScheduleSetConfidentialNoteEventsOnWebhooks, :migration, :sidekiq do + let(:web_hooks_table) { table(:web_hooks) } + let(:migration_class) { Gitlab::BackgroundMigration::SetConfidentialNoteEventsOnWebhooks } + let(:migration_name) { migration_class.to_s.demodulize } + + let!(:web_hook_1) { web_hooks_table.create!(confidential_note_events: nil, note_events: true) } + let!(:web_hook_2) { web_hooks_table.create!(confidential_note_events: nil, note_events: true) } + let!(:web_hook_migrated) { web_hooks_table.create!(confidential_note_events: true, note_events: true) } + let!(:web_hook_skip) { web_hooks_table.create!(confidential_note_events: nil, note_events: false) } + let!(:web_hook_new) { web_hooks_table.create!(confidential_note_events: false, note_events: true) } + let!(:web_hook_4) { web_hooks_table.create!(confidential_note_events: nil, note_events: true) } + + before do + stub_const("#{described_class}::BATCH_SIZE", 1) + end + + it 'schedules background migrations at correct time' do + Sidekiq::Testing.fake! do + Timecop.freeze do + migrate! + + expect(migration_name).to be_scheduled_delayed_migration(5.minutes, web_hook_1.id, web_hook_1.id) + expect(migration_name).to be_scheduled_delayed_migration(10.minutes, web_hook_2.id, web_hook_2.id) + expect(migration_name).to be_scheduled_delayed_migration(15.minutes, web_hook_4.id, web_hook_4.id) + expect(BackgroundMigrationWorker.jobs.size).to eq 3 + end + end + end + + it 'correctly processes web hooks' do + Sidekiq::Testing.inline! do + expect(web_hooks_table.where(confidential_note_events: nil).count).to eq 4 + expect(web_hooks_table.where(confidential_note_events: true).count).to eq 1 + + migrate! + + expect(web_hooks_table.where(confidential_note_events: nil).count).to eq 1 + expect(web_hooks_table.where(confidential_note_events: true).count).to eq 4 + end + end +end diff --git a/spec/models/ci/build_metadata_spec.rb b/spec/models/ci/build_metadata_spec.rb index 268561ee941..7e75d5a5411 100644 --- a/spec/models/ci/build_metadata_spec.rb +++ b/spec/models/ci/build_metadata_spec.rb @@ -13,7 +13,7 @@ describe Ci::BuildMetadata do end let(:build) { create(:ci_build, pipeline: pipeline) } - let(:build_metadata) { create(:ci_build_metadata, build: build) } + let(:build_metadata) { build.metadata } describe '#update_timeout_state' do subject { build_metadata } diff --git a/spec/models/concerns/chronic_duration_attribute_spec.rb b/spec/models/concerns/chronic_duration_attribute_spec.rb index 27c86e60e60..8847623f705 100644 --- a/spec/models/concerns/chronic_duration_attribute_spec.rb +++ b/spec/models/concerns/chronic_duration_attribute_spec.rb @@ -63,8 +63,8 @@ shared_examples 'ChronicDurationAttribute writer' do subject.send("#{virtual_field}=", '') end - it 'writes nil' do - expect(subject.send(source_field)).to be_nil + it 'writes default value' do + expect(subject.send(source_field)).to eq(default_value) end it 'passes validation' do @@ -77,8 +77,8 @@ shared_examples 'ChronicDurationAttribute writer' do subject.send("#{virtual_field}=", nil) end - it 'writes nil' do - expect(subject.send(source_field)).to be_nil + it 'writes default value' do + expect(subject.send(source_field)).to eq(default_value) end it 'passes validation' do @@ -92,20 +92,34 @@ shared_examples 'ChronicDurationAttribute writer' do end describe 'ChronicDurationAttribute' do - let(:source_field) {:maximum_timeout} - let(:virtual_field) {:maximum_timeout_human_readable} + context 'when default value is not set' do + let(:source_field) {:maximum_timeout} + let(:virtual_field) {:maximum_timeout_human_readable} + let(:default_value) { nil } - subject { Ci::Runner.new } + subject { create(:ci_runner) } - it_behaves_like 'ChronicDurationAttribute reader' - it_behaves_like 'ChronicDurationAttribute writer' + it_behaves_like 'ChronicDurationAttribute reader' + it_behaves_like 'ChronicDurationAttribute writer' + end + + context 'when default value is set' do + let(:source_field) {:build_timeout} + let(:virtual_field) {:build_timeout_human_readable} + let(:default_value) { 3600 } + + subject { create(:project) } + + it_behaves_like 'ChronicDurationAttribute reader' + it_behaves_like 'ChronicDurationAttribute writer' + end end describe 'ChronicDurationAttribute - reader' do let(:source_field) {:timeout} let(:virtual_field) {:timeout_human_readable} - subject {Ci::BuildMetadata.new} + subject { create(:ci_build).ensure_metadata } it "doesn't contain dynamically created writer method" do expect(subject.class).not_to be_public_method_defined("#{virtual_field}=") diff --git a/spec/models/merge_request_diff_commit_spec.rb b/spec/models/merge_request_diff_commit_spec.rb index 7709cf43200..8c01a7ac18f 100644 --- a/spec/models/merge_request_diff_commit_spec.rb +++ b/spec/models/merge_request_diff_commit_spec.rb @@ -36,7 +36,7 @@ describe MergeRequestDiffCommit do "committer_email": "dmitriy.zaporozhets@gmail.com", "merge_request_diff_id": merge_request_diff_id, "relative_order": 0, - "sha": sha_attribute.type_cast_for_database('5937ac0a7beb003549fc5fd26fc247adbce4a52e') + "sha": sha_attribute.serialize("5937ac0a7beb003549fc5fd26fc247adbce4a52e") }, { "message": "Change some files\n\nSigned-off-by: Dmitriy Zaporozhets \u003cdmitriy.zaporozhets@gmail.com\u003e\n", @@ -48,7 +48,7 @@ describe MergeRequestDiffCommit do "committer_email": "dmitriy.zaporozhets@gmail.com", "merge_request_diff_id": merge_request_diff_id, "relative_order": 1, - "sha": sha_attribute.type_cast_for_database('570e7b2abdd848b95f2f578043fc23bd6f6fd24d') + "sha": sha_attribute.serialize("570e7b2abdd848b95f2f578043fc23bd6f6fd24d") } ] end @@ -79,7 +79,7 @@ describe MergeRequestDiffCommit do "committer_email": "alejorro70@gmail.com", "merge_request_diff_id": merge_request_diff_id, "relative_order": 0, - "sha": sha_attribute.type_cast_for_database('ba3343bc4fa403a8dfbfcab7fc1a8c29ee34bd69') + "sha": sha_attribute.serialize("ba3343bc4fa403a8dfbfcab7fc1a8c29ee34bd69") }] end diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb index c853f707e6d..86962cd8d61 100644 --- a/spec/models/note_spec.rb +++ b/spec/models/note_spec.rb @@ -191,6 +191,21 @@ describe Note do end end + describe "confidential?" do + it "delegates to noteable" do + issue_note = build(:note, :on_issue) + confidential_note = build(:note, noteable: create(:issue, confidential: true)) + + expect(issue_note.confidential?).to be_falsy + expect(confidential_note.confidential?).to be_truthy + end + + it "is falsey when noteable can't be confidential" do + commit_note = build(:note_on_commit) + expect(commit_note.confidential?).to be_falsy + end + end + describe "cross_reference_not_visible_for?" do let(:private_user) { create(:user) } let(:private_project) { create(:project, namespace: private_user.namespace) { |p| p.add_master(private_user) } } diff --git a/spec/models/project_services/hipchat_service_spec.rb b/spec/models/project_services/hipchat_service_spec.rb index 3e2a166cdd6..0cd712e2f40 100644 --- a/spec/models/project_services/hipchat_service_spec.rb +++ b/spec/models/project_services/hipchat_service_spec.rb @@ -253,6 +253,21 @@ describe HipchatService do "<b>#{title}</b>" \ "<pre>issue <strong>note</strong></pre>") end + + context 'with confidential issue' do + before do + issue.update!(confidential: true) + end + + it 'calls Hipchat API with issue comment' do + data = Gitlab::DataBuilder::Note.build(issue_note, user) + hipchat.execute(data) + + message = hipchat.send(:create_message, data) + + expect(message).to include("<pre>issue <strong>note</strong></pre>") + end + end end context 'when snippet comment event triggered' do diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 0e560be9eaa..7007f78e702 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -2022,6 +2022,22 @@ describe Project do expect(forked_project.lfs_storage_project).to eq forked_project end end + + describe '#all_lfs_objects' do + let(:lfs_object) { create(:lfs_object) } + + before do + project.lfs_objects << lfs_object + end + + it 'returns the lfs object for a project' do + expect(project.all_lfs_objects).to contain_exactly(lfs_object) + end + + it 'returns the lfs object for a fork' do + expect(forked_project.all_lfs_objects).to contain_exactly(lfs_object) + end + end end describe '#pushes_since_gc' do @@ -3227,6 +3243,7 @@ describe Project do expect(project).to receive(:update_project_counter_caches) expect(project).to receive(:remove_import_jid) expect(project).to receive(:after_create_default_branch) + expect(project).to receive(:refresh_markdown_cache!) project.after_import end diff --git a/spec/models/service_spec.rb b/spec/models/service_spec.rb index 83ed3b203e6..28c908ea425 100644 --- a/spec/models/service_spec.rb +++ b/spec/models/service_spec.rb @@ -10,6 +10,22 @@ describe Service do it { is_expected.to validate_presence_of(:type) } end + describe 'Scopes' do + describe '.confidential_note_hooks' do + it 'includes services where confidential_note_events is true' do + create(:service, active: true, confidential_note_events: true) + + expect(described_class.confidential_note_hooks.count).to eq 1 + end + + it 'excludes services where confidential_note_events is false' do + create(:service, active: true, confidential_note_events: false) + + expect(described_class.confidential_note_hooks.count).to eq 0 + end + end + end + describe "Test Button" do describe '#can_test?' do let(:service) { create(:service, project: project) } diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 4027c420e47..a600987d0bf 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -2071,6 +2071,8 @@ describe User do expect(ghost).to be_ghost expect(ghost).to be_persisted + expect(ghost.namespace).not_to be_nil + expect(ghost.namespace).to be_persisted end it "does not create a second ghost user if one is already present" do diff --git a/spec/policies/project_policy_spec.rb b/spec/policies/project_policy_spec.rb index ea76e604153..905d82b3bb1 100644 --- a/spec/policies/project_policy_spec.rb +++ b/spec/policies/project_policy_spec.rb @@ -11,10 +11,10 @@ describe ProjectPolicy do let(:base_guest_permissions) do %i[ - read_project read_board read_list read_wiki read_issue read_label - read_milestone read_project_snippet read_project_member - read_note create_project create_issue create_note - upload_file + read_project read_board read_list read_wiki read_issue + read_project_for_iids read_issue_iid read_merge_request_iid read_label + read_milestone read_project_snippet read_project_member read_note + create_project create_issue create_note upload_file ] end @@ -120,7 +120,7 @@ describe ProjectPolicy do project.issues_enabled = false project.save! - expect_disallowed :read_issue, :create_issue, :update_issue, :admin_issue + expect_disallowed :read_issue, :read_issue_iid, :create_issue, :update_issue, :admin_issue end end @@ -131,7 +131,7 @@ describe ProjectPolicy do project.issues_enabled = false project.save! - expect_disallowed :read_issue, :create_issue, :update_issue, :admin_issue + expect_disallowed :read_issue, :read_issue_iid, :create_issue, :update_issue, :admin_issue end end end diff --git a/spec/presenters/ci/build_presenter_spec.rb b/spec/presenters/ci/build_presenter_spec.rb index 1a8001be6ab..cc16d0f156b 100644 --- a/spec/presenters/ci/build_presenter_spec.rb +++ b/spec/presenters/ci/build_presenter_spec.rb @@ -72,13 +72,44 @@ describe Ci::BuildPresenter do end end - context 'when build is not auto-canceled' do - before do - expect(build).to receive(:auto_canceled?).and_return(false) + context 'when build failed' do + let(:build) { create(:ci_build, :failed, pipeline: pipeline) } + + it 'returns the reason of failure' do + status_title = presenter.status_title + + expect(status_title).to eq('Failed <br> (unknown failure)') end + end + + context 'when build has failed && retried' do + let(:build) { create(:ci_build, :failed, :retried, pipeline: pipeline) } - it 'does not have a status title' do - expect(presenter.status_title).to be_nil + it 'does not include retried title' do + status_title = presenter.status_title + + expect(status_title).not_to include('(retried)') + expect(status_title).to eq('Failed <br> (unknown failure)') + end + end + + context 'when build has failed and is allowed to' do + let(:build) { create(:ci_build, :failed, :allowed_to_fail, pipeline: pipeline) } + + it 'returns the reason of failure' do + status_title = presenter.status_title + + expect(status_title).to eq('Failed <br> (unknown failure)') + end + end + + context 'For any other build' do + let(:build) { create(:ci_build, :success, pipeline: pipeline) } + + it 'returns the status' do + tooltip_description = presenter.status_title + + expect(tooltip_description).to eq('Success') end end end @@ -134,4 +165,56 @@ describe Ci::BuildPresenter do end end end + + describe '#tooltip_message' do + context 'When build has failed' do + let(:build) { create(:ci_build, :script_failure, pipeline: pipeline) } + + it 'returns the reason of failure' do + tooltip = subject.tooltip_message + + expect(tooltip).to eq("#{build.name} - failed <br> (script failure)") + end + end + + context 'When build has failed and retried' do + let(:build) { create(:ci_build, :script_failure, :retried, pipeline: pipeline) } + + it 'should include the reason of failure and the retried title' do + tooltip = subject.tooltip_message + + expect(tooltip).to eq("#{build.name} - failed <br> (script failure) (retried)") + end + end + + context 'When build has failed and is allowed to' do + let(:build) { create(:ci_build, :script_failure, :allowed_to_fail, pipeline: pipeline) } + + it 'should include the reason of failure' do + tooltip = subject.tooltip_message + + expect(tooltip).to eq("#{build.name} - failed <br> (script failure) (allowed to fail)") + end + end + + context 'For any other build (no retried)' do + let(:build) { create(:ci_build, :success, pipeline: pipeline) } + + it 'should include build name and status' do + tooltip = subject.tooltip_message + + expect(tooltip).to eq("#{build.name} - passed") + end + end + + context 'For any other build (retried)' do + let(:build) { create(:ci_build, :success, :retried, pipeline: pipeline) } + + it 'should include build name and status' do + tooltip = subject.tooltip_message + + expect(tooltip).to eq("#{build.name} - passed (retried)") + end + end + end end diff --git a/spec/requests/api/issues_spec.rb b/spec/requests/api/issues_spec.rb index 6614e8cea43..90f9c4ad214 100644 --- a/spec/requests/api/issues_spec.rb +++ b/spec/requests/api/issues_spec.rb @@ -384,6 +384,30 @@ describe API::Issues do end let(:base_url) { "/groups/#{group.id}/issues" } + context 'when group has subgroups', :nested_groups do + let(:subgroup_1) { create(:group, parent: group) } + let(:subgroup_2) { create(:group, parent: subgroup_1) } + + let(:subgroup_1_project) { create(:project, namespace: subgroup_1) } + let(:subgroup_2_project) { create(:project, namespace: subgroup_2) } + + let!(:issue_1) { create(:issue, project: subgroup_1_project) } + let!(:issue_2) { create(:issue, project: subgroup_2_project) } + + before do + group.add_developer(user) + end + + it 'also returns subgroups projects issues' do + get api(base_url, user) + + issue_ids = json_response.map { |issue| issue['id'] } + + expect_paginated_array_response(size: 5) + expect(issue_ids).to include(issue_1.id, issue_2.id) + end + end + it 'returns all group issues (including opened and closed)' do get api(base_url, admin) diff --git a/spec/requests/api/project_hooks_spec.rb b/spec/requests/api/project_hooks_spec.rb index 392cad667be..12a183fed1e 100644 --- a/spec/requests/api/project_hooks_spec.rb +++ b/spec/requests/api/project_hooks_spec.rb @@ -33,6 +33,7 @@ describe API::ProjectHooks, 'ProjectHooks' do expect(json_response.first['merge_requests_events']).to eq(true) expect(json_response.first['tag_push_events']).to eq(true) expect(json_response.first['note_events']).to eq(true) + expect(json_response.first['confidential_note_events']).to eq(true) expect(json_response.first['job_events']).to eq(true) expect(json_response.first['pipeline_events']).to eq(true) expect(json_response.first['wiki_page_events']).to eq(true) @@ -62,6 +63,7 @@ describe API::ProjectHooks, 'ProjectHooks' do expect(json_response['merge_requests_events']).to eq(hook.merge_requests_events) expect(json_response['tag_push_events']).to eq(hook.tag_push_events) expect(json_response['note_events']).to eq(hook.note_events) + expect(json_response['confidential_note_events']).to eq(hook.confidential_note_events) expect(json_response['job_events']).to eq(hook.job_events) expect(json_response['pipeline_events']).to eq(hook.pipeline_events) expect(json_response['wiki_page_events']).to eq(hook.wiki_page_events) @@ -104,6 +106,7 @@ describe API::ProjectHooks, 'ProjectHooks' do expect(json_response['merge_requests_events']).to eq(false) expect(json_response['tag_push_events']).to eq(false) expect(json_response['note_events']).to eq(false) + expect(json_response['confidential_note_events']).to eq(nil) expect(json_response['job_events']).to eq(true) expect(json_response['pipeline_events']).to eq(false) expect(json_response['wiki_page_events']).to eq(true) @@ -152,6 +155,7 @@ describe API::ProjectHooks, 'ProjectHooks' do expect(json_response['merge_requests_events']).to eq(hook.merge_requests_events) expect(json_response['tag_push_events']).to eq(hook.tag_push_events) expect(json_response['note_events']).to eq(hook.note_events) + expect(json_response['confidential_note_events']).to eq(hook.confidential_note_events) expect(json_response['job_events']).to eq(hook.job_events) expect(json_response['pipeline_events']).to eq(hook.pipeline_events) expect(json_response['wiki_page_events']).to eq(hook.wiki_page_events) diff --git a/spec/requests/api/project_import_spec.rb b/spec/requests/api/project_import_spec.rb index 987f6e26971..5d13e6de741 100644 --- a/spec/requests/api/project_import_spec.rb +++ b/spec/requests/api/project_import_spec.rb @@ -40,7 +40,7 @@ describe API::ProjectImport do expect(response).to have_gitlab_http_status(201) end - it 'schedules an import at the user namespace level' do + it 'does not shedule an import for a nampespace that does not exist' do expect_any_instance_of(Project).not_to receive(:import_schedule) expect(::Projects::CreateService).not_to receive(:new) @@ -71,6 +71,49 @@ describe API::ProjectImport do expect(json_response['error']).to eq('file is invalid') end + it 'stores params that can be overridden' do + stub_import(namespace) + override_params = { 'description' => 'Hello world' } + + post api('/projects/import', user), + path: 'test-import', + file: fixture_file_upload(file), + namespace: namespace.id, + override_params: override_params + import_project = Project.find(json_response['id']) + + expect(import_project.import_data.data['override_params']).to eq(override_params) + end + + it 'does not store params that are not allowed' do + stub_import(namespace) + override_params = { 'not_allowed' => 'Hello world' } + + post api('/projects/import', user), + path: 'test-import', + file: fixture_file_upload(file), + namespace: namespace.id, + override_params: override_params + import_project = Project.find(json_response['id']) + + expect(import_project.import_data.data['override_params']).to be_empty + end + + it 'correctly overrides params during the import' do + override_params = { 'description' => 'Hello world' } + + Sidekiq::Testing.inline! do + post api('/projects/import', user), + path: 'test-import', + file: fixture_file_upload(file), + namespace: namespace.id, + override_params: override_params + end + import_project = Project.find(json_response['id']) + + expect(import_project.description).to eq('Hello world') + end + def stub_import(namespace) expect_any_instance_of(Project).to receive(:import_schedule) expect(::Projects::CreateService).to receive(:new).with(user, hash_including(namespace_id: namespace.id)).and_call_original diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb index 4f3420cc0ad..28d51ac86c6 100644 --- a/spec/requests/api/runner_spec.rb +++ b/spec/requests/api/runner_spec.rb @@ -950,12 +950,53 @@ describe API::Runner do describe 'POST /api/v4/jobs/:id/artifacts/authorize' do context 'when using token as parameter' do - it 'authorizes posting artifacts to running job' do - authorize_artifacts_with_token_in_params + context 'posting artifacts to running job' do + subject do + authorize_artifacts_with_token_in_params + end - expect(response).to have_gitlab_http_status(200) - expect(response.content_type.to_s).to eq(Gitlab::Workhorse::INTERNAL_API_CONTENT_TYPE) - expect(json_response['TempPath']).not_to be_nil + shared_examples 'authorizes local file' do + it 'succeeds' do + subject + + expect(response).to have_gitlab_http_status(200) + expect(response.content_type.to_s).to eq(Gitlab::Workhorse::INTERNAL_API_CONTENT_TYPE) + expect(json_response['TempPath']).to eq(JobArtifactUploader.workhorse_local_upload_path) + expect(json_response['RemoteObject']).to be_nil + end + end + + context 'when using local storage' do + it_behaves_like 'authorizes local file' + end + + context 'when using remote storage' do + context 'when direct upload is enabled' do + before do + stub_artifacts_object_storage(enabled: true, direct_upload: true) + end + + it 'succeeds' do + subject + + expect(response).to have_gitlab_http_status(200) + expect(response.content_type.to_s).to eq(Gitlab::Workhorse::INTERNAL_API_CONTENT_TYPE) + expect(json_response['TempPath']).to eq(JobArtifactUploader.workhorse_local_upload_path) + expect(json_response['RemoteObject']).to have_key('ID') + expect(json_response['RemoteObject']).to have_key('GetURL') + expect(json_response['RemoteObject']).to have_key('StoreURL') + expect(json_response['RemoteObject']).to have_key('DeleteURL') + end + end + + context 'when direct upload is disabled' do + before do + stub_artifacts_object_storage(enabled: true, direct_upload: false) + end + + it_behaves_like 'authorizes local file' + end + end end it 'fails to post too large artifact' do @@ -1051,20 +1092,45 @@ describe API::Runner do end end - context 'when uses regular file post' do - before do - upload_artifacts(file_upload, headers_with_token, false) + context 'when uses accelerated file post' do + context 'for file stored locally' do + before do + upload_artifacts(file_upload, headers_with_token) + end + + it_behaves_like 'successful artifacts upload' end - it_behaves_like 'successful artifacts upload' - end + context 'for file stored remotelly' do + let!(:fog_connection) do + stub_artifacts_object_storage(direct_upload: true) + end - context 'when uses accelerated file post' do - before do - upload_artifacts(file_upload, headers_with_token, true) - end + before do + fog_connection.directories.get('artifacts').files.create( + key: 'tmp/upload/12312300', + body: 'content' + ) - it_behaves_like 'successful artifacts upload' + upload_artifacts(file_upload, headers_with_token, + { 'file.remote_id' => remote_id }) + end + + context 'when valid remote_id is used' do + let(:remote_id) { '12312300' } + + it_behaves_like 'successful artifacts upload' + end + + context 'when invalid remote_id is used' do + let(:remote_id) { 'invalid id' } + + it 'responds with bad request' do + expect(response).to have_gitlab_http_status(500) + expect(json_response['message']).to eq("Missing file") + end + end + end end context 'when using runners token' do @@ -1208,15 +1274,19 @@ describe API::Runner do end context 'when artifacts are being stored outside of tmp path' do + let(:new_tmpdir) { Dir.mktmpdir } + before do + # init before overwriting tmp dir + file_upload + # by configuring this path we allow to pass file from @tmpdir only # but all temporary files are stored in system tmp directory - @tmpdir = Dir.mktmpdir - allow(JobArtifactUploader).to receive(:workhorse_upload_path).and_return(@tmpdir) + allow(Dir).to receive(:tmpdir).and_return(new_tmpdir) end after do - FileUtils.remove_entry @tmpdir + FileUtils.remove_entry(new_tmpdir) end it' "fails to post artifacts for outside of tmp path"' do @@ -1226,12 +1296,11 @@ describe API::Runner do end end - def upload_artifacts(file, headers = {}, accelerated = true) - params = if accelerated - { 'file.path' => file.path, 'file.name' => file.original_filename } - else - { 'file' => file } - end + def upload_artifacts(file, headers = {}, params = {}) + params = params.merge({ + 'file.path' => file.path, + 'file.name' => file.original_filename + }) post api("/jobs/#{job.id}/artifacts"), params, headers end diff --git a/spec/requests/lfs_http_spec.rb b/spec/requests/lfs_http_spec.rb index 1e6bd993c08..f80abb06fca 100644 --- a/spec/requests/lfs_http_spec.rb +++ b/spec/requests/lfs_http_spec.rb @@ -1016,7 +1016,7 @@ describe 'Git LFS API and storage' do it_behaves_like 'a valid response' do it 'responds with status 200, location of lfs remote store and object details' do - expect(json_response['TempPath']).to be_nil + expect(json_response['TempPath']).to eq(LfsObjectUploader.workhorse_local_upload_path) expect(json_response['RemoteObject']).to have_key('ID') expect(json_response['RemoteObject']).to have_key('GetURL') expect(json_response['RemoteObject']).to have_key('StoreURL') @@ -1073,7 +1073,9 @@ describe 'Git LFS API and storage' do ['123123', '../../123123'].each do |remote_id| context "with invalid remote_id: #{remote_id}" do subject do - put_finalize_with_args('file.remote_id' => remote_id) + put_finalize(with_tempfile: true, args: { + 'file.remote_id' => remote_id + }) end it 'responds with status 403' do @@ -1093,9 +1095,10 @@ describe 'Git LFS API and storage' do end subject do - put_finalize_with_args( + put_finalize(with_tempfile: true, args: { 'file.remote_id' => '12312300', - 'file.name' => 'name') + 'file.name' => 'name' + }) end it 'responds with status 200' do @@ -1331,7 +1334,7 @@ describe 'Git LFS API and storage' do put "#{project.http_url_to_repo}/gitlab-lfs/objects/#{sample_oid}/#{sample_size}/authorize", nil, authorize_headers end - def put_finalize(lfs_tmp = lfs_tmp_file, with_tempfile: false) + def put_finalize(lfs_tmp = lfs_tmp_file, with_tempfile: false, args: {}) upload_path = LfsObjectUploader.workhorse_local_upload_path file_path = upload_path + '/' + lfs_tmp if lfs_tmp @@ -1340,12 +1343,12 @@ describe 'Git LFS API and storage' do FileUtils.touch(file_path) end - args = { + extra_args = { 'file.path' => file_path, 'file.name' => File.basename(file_path) - }.compact + } - put_finalize_with_args(args) + put_finalize_with_args(args.merge(extra_args).compact) end def put_finalize_with_args(args) diff --git a/spec/serializers/build_serializer_spec.rb b/spec/serializers/build_serializer_spec.rb index 9673b11c2a2..98cd15e248b 100644 --- a/spec/serializers/build_serializer_spec.rb +++ b/spec/serializers/build_serializer_spec.rb @@ -28,15 +28,31 @@ describe BuildSerializer do end describe '#represent_status' do - context 'when represents only status' do - let(:resource) { create(:ci_build) } + context 'for a failed build' do + let(:resource) { create(:ci_build, :failed) } + let(:status) { resource.detailed_status(double('user')) } + + subject { serializer.represent_status(resource) } + + it 'serializes only status' do + expect(subject[:text]).to eq(status.text) + expect(subject[:label]).to eq('failed') + expect(subject[:tooltip]).to eq('failed <br> (unknown failure)') + expect(subject[:icon]).to eq(status.icon) + expect(subject[:favicon]).to match_asset_path("/assets/ci_favicons/#{status.favicon}.ico") + end + end + + context 'for any other type of build' do + let(:resource) { create(:ci_build, :success) } let(:status) { resource.detailed_status(double('user')) } subject { serializer.represent_status(resource) } it 'serializes only status' do expect(subject[:text]).to eq(status.text) - expect(subject[:label]).to eq(status.label) + expect(subject[:label]).to eq('passed') + expect(subject[:tooltip]).to eq('passed') expect(subject[:icon]).to eq(status.icon) expect(subject[:favicon]).to match_asset_path("/assets/ci_favicons/#{status.favicon}.ico") end diff --git a/spec/serializers/job_entity_spec.rb b/spec/serializers/job_entity_spec.rb index 026360e91a3..24a6f1a2a8a 100644 --- a/spec/serializers/job_entity_spec.rb +++ b/spec/serializers/job_entity_spec.rb @@ -38,7 +38,7 @@ describe JobEntity do it 'contains details' do expect(subject).to include :status - expect(subject[:status]).to include :icon, :favicon, :text, :label + expect(subject[:status]).to include :icon, :favicon, :text, :label, :tooltip end context 'when job is retryable' do @@ -126,7 +126,29 @@ describe JobEntity do it 'contains details' do expect(subject).to include :status - expect(subject[:status]).to include :icon, :favicon, :text, :label + expect(subject[:status]).to include :icon, :favicon, :text, :label, :tooltip + end + end + + context 'when job failed' do + let(:job) { create(:ci_build, :script_failure) } + + describe 'status' do + it 'should contain the failure reason inside label' do + expect(subject[:status]).to include :icon, :favicon, :text, :label, :tooltip + expect(subject[:status][:label]).to eq('failed') + expect(subject[:status][:tooltip]).to eq('failed <br> (script failure)') + end + end + end + + context 'when job passed' do + let(:job) { create(:ci_build, :success) } + + describe 'status' do + it 'should not contain the failure reason inside label' do + expect(subject[:status][:label]).to eq('passed') + end end end end diff --git a/spec/serializers/pipeline_entity_spec.rb b/spec/serializers/pipeline_entity_spec.rb index 248552d1858..2473c561f4b 100644 --- a/spec/serializers/pipeline_entity_spec.rb +++ b/spec/serializers/pipeline_entity_spec.rb @@ -30,7 +30,7 @@ describe PipelineEntity do expect(subject).to include :details expect(subject[:details]) .to include :duration, :finished_at - expect(subject[:details][:status]).to include :icon, :favicon, :text, :label + expect(subject[:details][:status]).to include :icon, :favicon, :text, :label, :tooltip end it 'contains flags' do diff --git a/spec/serializers/stage_entity_spec.rb b/spec/serializers/stage_entity_spec.rb index 40e303f7b89..2034c7891ef 100644 --- a/spec/serializers/stage_entity_spec.rb +++ b/spec/serializers/stage_entity_spec.rb @@ -26,7 +26,7 @@ describe StageEntity do end it 'contains detailed status' do - expect(subject[:status]).to include :text, :label, :group, :icon + expect(subject[:status]).to include :text, :label, :group, :icon, :tooltip expect(subject[:status][:label]).to eq 'passed' end diff --git a/spec/serializers/status_entity_spec.rb b/spec/serializers/status_entity_spec.rb index 70402bac2e2..559475e571c 100644 --- a/spec/serializers/status_entity_spec.rb +++ b/spec/serializers/status_entity_spec.rb @@ -16,7 +16,7 @@ describe StatusEntity do subject { entity.as_json } it 'contains status details' do - expect(subject).to include :text, :icon, :favicon, :label, :group + expect(subject).to include :text, :icon, :favicon, :label, :group, :tooltip expect(subject).to include :has_details, :details_path expect(subject[:favicon]).to match_asset_path('/assets/ci_favicons/favicon_status_success.ico') end diff --git a/spec/services/boards/issues/list_service_spec.rb b/spec/services/boards/issues/list_service_spec.rb index b4efa3e44b6..27a7bf0e605 100644 --- a/spec/services/boards/issues/list_service_spec.rb +++ b/spec/services/boards/issues/list_service_spec.rb @@ -48,10 +48,8 @@ describe Boards::Issues::ListService do context 'when parent is a group' do let(:user) { create(:user) } - let(:group) { create(:group) } let(:project) { create(:project, :empty_repo, namespace: group) } let(:project1) { create(:project, :empty_repo, namespace: group) } - let(:board) { create(:board, group: group) } let(:m1) { create(:milestone, group: group) } let(:m2) { create(:milestone, group: group) } @@ -92,13 +90,30 @@ describe Boards::Issues::ListService do let!(:closed_issue4) { create(:labeled_issue, :closed, project: project1, labels: [p1, p1_project1]) } let!(:closed_issue5) { create(:labeled_issue, :closed, project: project1, labels: [development]) } - let(:parent) { group } - before do group.add_developer(user) end - it_behaves_like 'issues list service' + context 'and group has no parent' do + let(:parent) { group } + let(:group) { create(:group) } + let(:board) { create(:board, group: group) } + + it_behaves_like 'issues list service' + end + + context 'and group is an ancestor', :nested_groups do + let(:parent) { create(:group) } + let(:group) { create(:group, parent: parent) } + let!(:backlog) { create(:backlog_list, board: board) } + let(:board) { create(:board, group: parent) } + + before do + parent.add_developer(user) + end + + it_behaves_like 'issues list service' + end end end end diff --git a/spec/services/boards/issues/move_service_spec.rb b/spec/services/boards/issues/move_service_spec.rb index 0a6b6d880d3..dd0ad5f11bd 100644 --- a/spec/services/boards/issues/move_service_spec.rb +++ b/spec/services/boards/issues/move_service_spec.rb @@ -48,7 +48,7 @@ describe Boards::Issues::MoveService do parent.add_developer(user) end - it_behaves_like 'issues move service' + it_behaves_like 'issues move service', true end end end diff --git a/spec/services/ci/register_job_service_spec.rb b/spec/services/ci/register_job_service_spec.rb index 97a563c1ce1..aa7cc268dd7 100644 --- a/spec/services/ci/register_job_service_spec.rb +++ b/spec/services/ci/register_job_service_spec.rb @@ -370,10 +370,89 @@ module Ci it_behaves_like 'validation is not active' end end + end - def execute(runner) - described_class.new(runner).execute.build + describe '#register_success' do + let!(:current_time) { Time.new(2018, 4, 5, 14, 0, 0) } + let!(:attempt_counter) { double('Gitlab::Metrics::NullMetric') } + let!(:job_queue_duration_seconds) { double('Gitlab::Metrics::NullMetric') } + + before do + allow(Time).to receive(:now).and_return(current_time) + + # Stub defaults for any metrics other than the ones we're testing + allow(Gitlab::Metrics).to receive(:counter) + .with(any_args) + .and_return(Gitlab::Metrics::NullMetric.instance) + allow(Gitlab::Metrics).to receive(:histogram) + .with(any_args) + .and_return(Gitlab::Metrics::NullMetric.instance) + + # Stub tested metrics + allow(Gitlab::Metrics).to receive(:counter) + .with(:job_register_attempts_total, anything) + .and_return(attempt_counter) + allow(Gitlab::Metrics).to receive(:histogram) + .with(:job_queue_duration_seconds, anything, anything, anything) + .and_return(job_queue_duration_seconds) + + project.update(shared_runners_enabled: true) + pending_job.update(created_at: current_time - 3600, queued_at: current_time - 1800) end + + shared_examples 'metrics collector' do + it 'increments attempt counter' do + allow(job_queue_duration_seconds).to receive(:observe) + expect(attempt_counter).to receive(:increment) + + execute(runner) + end + + it 'counts job queuing time histogram with expected labels' do + allow(attempt_counter).to receive(:increment) + expect(job_queue_duration_seconds).to receive(:observe) + .with({ shared_runner: expected_shared_runner, + jobs_running_for_project: expected_jobs_running_for_project_first_job }, 1800) + + execute(runner) + end + + context 'when project already has running jobs' do + let!(:build2) { create( :ci_build, :running, pipeline: pipeline, runner: shared_runner) } + let!(:build3) { create( :ci_build, :running, pipeline: pipeline, runner: shared_runner) } + + it 'counts job queuing time histogram with expected labels' do + allow(attempt_counter).to receive(:increment) + expect(job_queue_duration_seconds).to receive(:observe) + .with({ shared_runner: expected_shared_runner, + jobs_running_for_project: expected_jobs_running_for_project_third_job }, 1800) + + execute(runner) + end + end + end + + context 'when shared runner is used' do + let(:runner) { shared_runner } + let(:expected_shared_runner) { true } + let(:expected_jobs_running_for_project_first_job) { 0 } + let(:expected_jobs_running_for_project_third_job) { 2 } + + it_behaves_like 'metrics collector' + end + + context 'when specific runner is used' do + let(:runner) { specific_runner } + let(:expected_shared_runner) { false } + let(:expected_jobs_running_for_project_first_job) { '+Inf' } + let(:expected_jobs_running_for_project_third_job) { '+Inf' } + + it_behaves_like 'metrics collector' + end + end + + def execute(runner) + described_class.new(runner).execute.build end end end diff --git a/spec/services/issuable/destroy_service_spec.rb b/spec/services/issuable/destroy_service_spec.rb index 0a3647a814f..8ccbba7fa58 100644 --- a/spec/services/issuable/destroy_service_spec.rb +++ b/spec/services/issuable/destroy_service_spec.rb @@ -8,7 +8,7 @@ describe Issuable::DestroyService do describe '#execute' do context 'when issuable is an issue' do - let!(:issue) { create(:issue, project: project, author: user) } + let!(:issue) { create(:issue, project: project, author: user, assignees: [user]) } it 'destroys the issue' do expect { service.execute(issue) }.to change { project.issues.count }.by(-1) @@ -26,10 +26,15 @@ describe Issuable::DestroyService do expect { service.execute(issue) } .to change { user.todos_pending_count }.from(1).to(0) end + + it 'invalidates the issues count cache for the assignees' do + expect_any_instance_of(User).to receive(:invalidate_cache_counts).once + service.execute(issue) + end end context 'when issuable is a merge request' do - let!(:merge_request) { create(:merge_request, target_project: project, source_project: project, author: user) } + let!(:merge_request) { create(:merge_request, target_project: project, source_project: project, author: user, assignee: user) } it 'destroys the merge request' do expect { service.execute(merge_request) }.to change { project.merge_requests.count }.by(-1) @@ -41,6 +46,11 @@ describe Issuable::DestroyService do service.execute(merge_request) end + it 'invalidates the merge request caches for the MR assignee' do + expect_any_instance_of(User).to receive(:invalidate_cache_counts).once + service.execute(merge_request) + end + it 'updates the todo caches for users with todos on the merge request' do create(:todo, target: merge_request, user: user, author: user, project: project) diff --git a/spec/services/issues/update_service_spec.rb b/spec/services/issues/update_service_spec.rb index 41237dd7160..23b1134b5a3 100644 --- a/spec/services/issues/update_service_spec.rb +++ b/spec/services/issues/update_service_spec.rb @@ -97,6 +97,39 @@ describe Issues::UpdateService, :mailer do expect(issue.relative_position).to be_between(issue1.relative_position, issue2.relative_position) end + context 'when moving issue between issues from different projects', :nested_groups do + let(:group) { create(:group) } + let(:subgroup) { create(:group, parent: group) } + + let(:project_1) { create(:project, namespace: group) } + let(:project_2) { create(:project, namespace: group) } + let(:project_3) { create(:project, namespace: subgroup) } + + let(:issue_1) { create(:issue, project: project_1) } + let(:issue_2) { create(:issue, project: project_2) } + let(:issue_3) { create(:issue, project: project_3) } + + before do + group.add_developer(user) + end + + it 'sorts issues as specified by parameters' do + # Moving all issues to end here like the last example won't work since + # all projects only have the same issue count + # so their relative_position will be the same. + issue_1.move_to_end + issue_2.move_after(issue_1) + issue_3.move_after(issue_2) + [issue_1, issue_2, issue_3].map(&:save) + + opts[:move_between_ids] = [issue_1.id, issue_2.id] + opts[:board_group_id] = group.id + + described_class.new(issue_3.project, user, opts).execute(issue_3) + expect(issue_2.relative_position).to be_between(issue_1.relative_position, issue_2.relative_position) + end + end + context 'when current user cannot admin issues in the project' do let(:guest) { create(:user) } before do diff --git a/spec/services/notes/post_process_service_spec.rb b/spec/services/notes/post_process_service_spec.rb index 6ef5e93cb20..4e2ab919f0f 100644 --- a/spec/services/notes/post_process_service_spec.rb +++ b/spec/services/notes/post_process_service_spec.rb @@ -23,5 +23,23 @@ describe Notes::PostProcessService do described_class.new(@note).execute end + + context 'with a confidential issue' do + let(:issue) { create(:issue, :confidential, project: project) } + + it "doesn't call note hooks/services" do + expect(project).not_to receive(:execute_hooks).with(anything, :note_hooks) + expect(project).not_to receive(:execute_services).with(anything, :note_hooks) + + described_class.new(@note).execute + end + + it "calls confidential-note hooks/services" do + expect(project).to receive(:execute_hooks).with(anything, :confidential_note_hooks) + expect(project).to receive(:execute_services).with(anything, :confidential_note_hooks) + + described_class.new(@note).execute + end + end end end diff --git a/spec/services/projects/gitlab_projects_import_service_spec.rb b/spec/services/projects/gitlab_projects_import_service_spec.rb index 6b8f9619bc4..880b2aae66a 100644 --- a/spec/services/projects/gitlab_projects_import_service_spec.rb +++ b/spec/services/projects/gitlab_projects_import_service_spec.rb @@ -2,8 +2,10 @@ require 'spec_helper' describe Projects::GitlabProjectsImportService do set(:namespace) { create(:namespace) } + let(:path) { 'test-path' } let(:file) { fixture_file_upload(Rails.root + 'spec/fixtures/doc_sample.txt', 'text/plain') } - subject { described_class.new(namespace.owner, { namespace_id: namespace.id, path: path, file: file }) } + let(:import_params) { { namespace_id: namespace.id, path: path, file: file } } + subject { described_class.new(namespace.owner, import_params) } describe '#execute' do context 'with an invalid path' do @@ -18,8 +20,6 @@ describe Projects::GitlabProjectsImportService do end context 'with a valid path' do - let(:path) { 'test-path' } - it 'creates a project' do project = subject.execute @@ -27,5 +27,15 @@ describe Projects::GitlabProjectsImportService do expect(project).to be_valid end end + + context 'override params' do + it 'stores them as import data when passed' do + project = described_class + .new(namespace.owner, import_params, description: 'Hello') + .execute + + expect(project.import_data.data['override_params']['description']).to eq('Hello') + end + end end end diff --git a/spec/services/projects/import_export/export_service_spec.rb b/spec/services/projects/import_export/export_service_spec.rb index 51491c7d529..f9e5530bc9d 100644 --- a/spec/services/projects/import_export/export_service_spec.rb +++ b/spec/services/projects/import_export/export_service_spec.rb @@ -8,6 +8,49 @@ describe Projects::ImportExport::ExportService do let(:service) { described_class.new(project, user) } let!(:after_export_strategy) { Gitlab::ImportExport::AfterExportStrategies::DownloadNotificationStrategy.new } + it 'saves the version' do + expect(Gitlab::ImportExport::VersionSaver).to receive(:new).and_call_original + + service.execute + end + + it 'saves the avatar' do + expect(Gitlab::ImportExport::AvatarSaver).to receive(:new).and_call_original + + service.execute + end + + it 'saves the models' do + expect(Gitlab::ImportExport::ProjectTreeSaver).to receive(:new).and_call_original + + service.execute + end + + it 'saves the uploads' do + expect(Gitlab::ImportExport::UploadsSaver).to receive(:new).and_call_original + + service.execute + end + + it 'saves the repo' do + # once for the normal repo, once for the wiki + expect(Gitlab::ImportExport::RepoSaver).to receive(:new).twice.and_call_original + + service.execute + end + + it 'saves the lfs objects' do + expect(Gitlab::ImportExport::LfsSaver).to receive(:new).and_call_original + + service.execute + end + + it 'saves the wiki repo' do + expect(Gitlab::ImportExport::WikiRepoSaver).to receive(:new).and_call_original + + service.execute + end + context 'when all saver services succeed' do before do allow(service).to receive(:save_services).and_return(true) diff --git a/spec/support/reference_parser_helpers.rb b/spec/support/reference_parser_helpers.rb index 01689194eac..5d5e80851e6 100644 --- a/spec/support/reference_parser_helpers.rb +++ b/spec/support/reference_parser_helpers.rb @@ -2,4 +2,34 @@ module ReferenceParserHelpers def empty_html_link Nokogiri::HTML.fragment('<a></a>').children[0] end + + shared_examples 'no N+1 queries' do + it 'avoids N+1 queries in #nodes_visible_to_user', :request_store do + record_queries = lambda do |links| + ActiveRecord::QueryRecorder.new do + described_class.new(project, user).nodes_visible_to_user(user, links) + end + end + + control = record_queries.call(control_links) + actual = record_queries.call(actual_links) + + expect(actual.count).to be <= control.count + expect(actual.cached_count).to be <= control.cached_count + end + + it 'avoids N+1 queries in #records_for_nodes', :request_store do + record_queries = lambda do |links| + ActiveRecord::QueryRecorder.new do + described_class.new(project, user).records_for_nodes(links) + end + end + + control = record_queries.call(control_links) + actual = record_queries.call(actual_links) + + expect(actual.count).to be <= control.count + expect(actual.cached_count).to be <= control.cached_count + end + end end diff --git a/spec/support/shared_examples/services/boards/issues_move_service.rb b/spec/support/shared_examples/services/boards/issues_move_service.rb index 4a4fbaa3a0e..737863ea411 100644 --- a/spec/support/shared_examples/services/boards/issues_move_service.rb +++ b/spec/support/shared_examples/services/boards/issues_move_service.rb @@ -1,4 +1,4 @@ -shared_examples 'issues move service' do +shared_examples 'issues move service' do |group| context 'when moving an issue between lists' do let(:issue) { create(:labeled_issue, project: project, labels: [bug, development]) } let(:params) { { board_id: board1.id, from_list_id: list1.id, to_list_id: list2.id } } @@ -83,5 +83,18 @@ shared_examples 'issues move service' do expect(issue.relative_position).to be_between(issue1.relative_position, issue2.relative_position) end + + if group + context 'when on a group board' do + it 'sends the board_group_id parameter' do + params.merge!(move_after_id: issue1.id, move_before_id: issue2.id) + + match_params = { move_between_ids: [issue1.id, issue2.id], board_group_id: parent.id } + expect(Issues::UpdateService).to receive(:new).with(issue.project, user, match_params).and_return(double(execute: build(:issue))) + + described_class.new(parent, user, params).execute(issue) + end + end + end end end diff --git a/spec/support/slack_mattermost_notifications_shared_examples.rb b/spec/support/slack_mattermost_notifications_shared_examples.rb index 5e1ce19eafb..07bc3a51fd8 100644 --- a/spec/support/slack_mattermost_notifications_shared_examples.rb +++ b/spec/support/slack_mattermost_notifications_shared_examples.rb @@ -4,6 +4,11 @@ RSpec.shared_examples 'slack or mattermost notifications' do let(:chat_service) { described_class.new } let(:webhook_url) { 'https://example.gitlab.com/' } + def execute_with_options(options) + receive(:new).with(webhook_url, options) + .and_return(double(:slack_service).as_null_object) + end + describe "Associations" do it { is_expected.to belong_to :project } it { is_expected.to have_one :service_hook } @@ -33,6 +38,7 @@ RSpec.shared_examples 'slack or mattermost notifications' do let(:project) { create(:project, :repository) } let(:username) { 'slack_username' } let(:channel) { 'slack_channel' } + let(:issue_service_options) { { title: 'Awesome issue', description: 'please fix' } } let(:push_sample_data) do Gitlab::DataBuilder::Push.build_sample(project, user) @@ -48,12 +54,7 @@ RSpec.shared_examples 'slack or mattermost notifications' do WebMock.stub_request(:post, webhook_url) - opts = { - title: 'Awesome issue', - description: 'please fix' - } - - issue_service = Issues::CreateService.new(project, user, opts) + issue_service = Issues::CreateService.new(project, user, issue_service_options) @issue = issue_service.execute @issues_sample_data = issue_service.hook_data(@issue, 'open') @@ -164,6 +165,26 @@ RSpec.shared_examples 'slack or mattermost notifications' do chat_service.execute(@issues_sample_data) end + context 'for confidential issues' do + let(:issue_service_options) { { title: 'Secret', confidential: true } } + + it "uses confidential issue channel" do + chat_service.update_attributes(confidential_issue_channel: 'confidential') + + expect(Slack::Notifier).to execute_with_options(channel: 'confidential') + + chat_service.execute(@issues_sample_data) + end + + it 'falls back to issue channel' do + chat_service.update_attributes(issue_channel: 'fallback_channel') + + expect(Slack::Notifier).to execute_with_options(channel: 'fallback_channel') + + chat_service.execute(@issues_sample_data) + end + end + it "uses the right channel for wiki event" do chat_service.update_attributes(wiki_page_channel: "random") @@ -194,6 +215,32 @@ RSpec.shared_examples 'slack or mattermost notifications' do chat_service.execute(note_data) end + + context 'for confidential notes' do + before do + issue_note.noteable.update!(confidential: true) + end + + it "uses confidential channel" do + chat_service.update_attributes(confidential_note_channel: "confidential") + + note_data = Gitlab::DataBuilder::Note.build(issue_note, user) + + expect(Slack::Notifier).to execute_with_options(channel: 'confidential') + + chat_service.execute(note_data) + end + + it 'falls back to note channel' do + chat_service.update_attributes(note_channel: "fallback_channel") + + note_data = Gitlab::DataBuilder::Note.build(issue_note, user) + + expect(Slack::Notifier).to execute_with_options(channel: 'fallback_channel') + + chat_service.execute(note_data) + end + end end end end @@ -248,8 +295,9 @@ RSpec.shared_examples 'slack or mattermost notifications' do create(:note_on_issue, project: project, note: "issue note") end + let(:data) { Gitlab::DataBuilder::Note.build(issue_note, user) } + it "calls Slack API for issue comment events" do - data = Gitlab::DataBuilder::Note.build(issue_note, user) chat_service.execute(data) expect(WebMock).to have_requested(:post, webhook_url).once diff --git a/spec/support/stub_configuration.rb b/spec/support/stub_configuration.rb index bad1d34df3a..a75a3eaefcb 100644 --- a/spec/support/stub_configuration.rb +++ b/spec/support/stub_configuration.rb @@ -45,6 +45,10 @@ module StubConfiguration allow(Gitlab.config.lfs).to receive_messages(to_settings(messages)) end + def stub_artifacts_setting(messages) + allow(Gitlab.config.artifacts).to receive_messages(to_settings(messages)) + end + def stub_storage_settings(messages) messages.deep_stringify_keys! diff --git a/spec/uploaders/object_storage_spec.rb b/spec/uploaders/object_storage_spec.rb index 59e02fecbce..16455e2517b 100644 --- a/spec/uploaders/object_storage_spec.rb +++ b/spec/uploaders/object_storage_spec.rb @@ -62,10 +62,12 @@ describe ObjectStorage do end describe '#object_store' do + subject { uploader.object_store } + it "delegates to <mount>_store on model" do expect(object).to receive(:file_store) - uploader.object_store + subject end context 'when store is null' do @@ -73,8 +75,36 @@ describe ObjectStorage do expect(object).to receive(:file_store).and_return(nil) end - it "returns Store::LOCAL" do - expect(uploader.object_store).to eq(described_class::Store::LOCAL) + context 'when object storage is enabled' do + context 'when direct uploads are enabled' do + before do + stub_uploads_object_storage(uploader_class, enabled: true, direct_upload: true) + end + + it "uses Store::REMOTE" do + is_expected.to eq(described_class::Store::REMOTE) + end + end + + context 'when direct uploads are disabled' do + before do + stub_uploads_object_storage(uploader_class, enabled: true, direct_upload: false) + end + + it "uses Store::LOCAL" do + is_expected.to eq(described_class::Store::LOCAL) + end + end + end + + context 'when object storage is disabled' do + before do + stub_uploads_object_storage(uploader_class, enabled: false) + end + + it "uses Store::LOCAL" do + is_expected.to eq(described_class::Store::LOCAL) + end end end @@ -84,7 +114,7 @@ describe ObjectStorage do end it "returns the given value" do - expect(uploader.object_store).to eq(described_class::Store::REMOTE) + is_expected.to eq(described_class::Store::REMOTE) end end end @@ -486,108 +516,46 @@ describe ObjectStorage do end end - describe '#store_workhorse_file!' do + describe '#cache!' do subject do - uploader.store_workhorse_file!(params, :file) + uploader.cache!(uploaded_file) end context 'when local file is used' do context 'when valid file is used' do - let(:target_path) do - File.join(uploader_class.root, uploader_class::TMP_UPLOAD_PATH) - end - - before do - FileUtils.mkdir_p(target_path) + let(:uploaded_file) do + fixture_file_upload(Rails.root + 'spec/fixtures/rails_sample.jpg', 'image/jpg') end - context 'when no filename is specified' do - let(:params) do - { "file.path" => "test/file" } - end - - it 'raises an error' do - expect { subject }.to raise_error(uploader_class::RemoteStoreError, /Missing filename/) - end - end - - context 'when invalid file is specified' do - let(:file_path) do - File.join(target_path, "..", "test.file") - end - - before do - FileUtils.touch(file_path) - end - - let(:params) do - { "file.path" => file_path, - "file.name" => "my_file.txt" } - end - - it 'raises an error' do - expect { subject }.to raise_error(uploader_class::RemoteStoreError, /Bad file path/) - end - end - - context 'when filename is specified' do - let(:params) do - { "file.path" => tmp_file, - "file.name" => "my_file.txt" } - end - - let(:tmp_file) { Tempfile.new('filename', target_path) } + it "properly caches the file" do + subject - before do - FileUtils.touch(tmp_file) - end - - after do - FileUtils.rm_f(tmp_file) - end - - it 'succeeds' do - expect { subject }.not_to raise_error - - expect(uploader).to be_exists - end - - it 'proper path is being used' do - subject - - expect(uploader.path).to start_with(uploader_class.root) - expect(uploader.path).to end_with("my_file.txt") - end - - it 'source file to not exist' do - subject - - expect(File.exist?(tmp_file.path)).to be_falsey - end + expect(uploader).to be_exists + expect(uploader.path).to start_with(uploader_class.root) + expect(uploader.filename).to eq('rails_sample.jpg') end end end context 'when remote file is used' do + let(:temp_file) { Tempfile.new("test") } + let!(:fog_connection) do stub_uploads_object_storage(uploader_class) end - context 'when valid file is used' do - context 'when no filename is specified' do - let(:params) do - { "file.remote_id" => "test/123123" } - end + before do + FileUtils.touch(temp_file) + end - it 'raises an error' do - expect { subject }.to raise_error(uploader_class::RemoteStoreError, /Missing filename/) - end - end + after do + FileUtils.rm_f(temp_file) + end + context 'when valid file is used' do context 'when invalid file is specified' do - let(:params) do - { "file.remote_id" => "../test/123123", - "file.name" => "my_file.txt" } + let(:uploaded_file) do + UploadedFile.new(temp_file.path, remote_id: "../test/123123") end it 'raises an error' do @@ -596,9 +564,8 @@ describe ObjectStorage do end context 'when non existing file is specified' do - let(:params) do - { "file.remote_id" => "test/12312300", - "file.name" => "my_file.txt" } + let(:uploaded_file) do + UploadedFile.new(temp_file.path, remote_id: "test/123123") end it 'raises an error' do @@ -606,10 +573,9 @@ describe ObjectStorage do end end - context 'when filename is specified' do - let(:params) do - { "file.remote_id" => "test/123123", - "file.name" => "my_file.txt" } + context 'when valid file is specified' do + let(:uploaded_file) do + UploadedFile.new(temp_file.path, filename: "my_file.txt", remote_id: "test/123123") end let!(:fog_file) do @@ -619,36 +585,37 @@ describe ObjectStorage do ) end - it 'succeeds' do + it 'file to be cached and remote stored' do expect { subject }.not_to raise_error expect(uploader).to be_exists - end - - it 'path to not be temporary' do - subject - + expect(uploader).to be_cached expect(uploader.path).not_to be_nil - expect(uploader.path).not_to include('tmp/upload') - expect(uploader.url).to include('/my_file.txt') + expect(uploader.path).not_to include('tmp/cache') + expect(uploader.url).not_to be_nil + expect(uploader.path).not_to include('tmp/cache') + expect(uploader.object_store).to eq(described_class::Store::REMOTE) end - it 'url is used' do - subject + context 'when file is stored' do + subject do + uploader.store!(uploaded_file) + end - expect(uploader.url).not_to be_nil - expect(uploader.url).to include('/my_file.txt') + it 'file to be remotely stored in permament location' do + subject + + expect(uploader).to be_exists + expect(uploader).not_to be_cached + expect(uploader.path).not_to be_nil + expect(uploader.path).not_to include('tmp/upload') + expect(uploader.path).not_to include('tmp/cache') + expect(uploader.url).to include('/my_file.txt') + expect(uploader.object_store).to eq(described_class::Store::REMOTE) + end end end end end - - context 'when no file is used' do - let(:params) { {} } - - it 'raises an error' do - expect { subject }.to raise_error(uploader_class::RemoteStoreError, /Bad file/) - end - end end end diff --git a/spec/views/projects/jobs/show.html.haml_spec.rb b/spec/views/projects/jobs/show.html.haml_spec.rb index 6a67da79ec5..9e692159bd0 100644 --- a/spec/views/projects/jobs/show.html.haml_spec.rb +++ b/spec/views/projects/jobs/show.html.haml_spec.rb @@ -1,8 +1,10 @@ require 'spec_helper' describe 'projects/jobs/show' do + let(:user) { create(:user) } let(:project) { create(:project, :repository) } let(:build) { create(:ci_build, pipeline: pipeline) } + let(:builds) { project.builds.present(current_user: user) } let(:pipeline) do create(:ci_pipeline, project: project, sha: project.commit.id) @@ -11,6 +13,7 @@ describe 'projects/jobs/show' do before do assign(:build, build.present) assign(:project, project) + assign(:builds, builds) allow(view).to receive(:can?).and_return(true) end diff --git a/spec/views/projects/pipelines_settings/_show.html.haml_spec.rb b/spec/views/projects/settings/ci_cd/_form.html.haml_spec.rb index 7b300150874..be9a4d9c57c 100644 --- a/spec/views/projects/pipelines_settings/_show.html.haml_spec.rb +++ b/spec/views/projects/settings/ci_cd/_form.html.haml_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe 'projects/pipelines_settings/_show' do +describe 'projects/settings/ci_cd/_form' do let(:project) { create(:project, :repository) } before do diff --git a/vendor/prometheus/values.yaml b/vendor/prometheus/values.yaml index 859f2ad82a4..c432be72163 100644 --- a/vendor/prometheus/values.yaml +++ b/vendor/prometheus/values.yaml @@ -14,6 +14,7 @@ rbac: create: false server: + fullnameOverride: "prometheus-prometheus-server" image: tag: v2.1.0 |