Commit 98de0935 authored by Nick Thomas's avatar Nick Thomas

Merge branch 'master' into 'missing-indexes-to-geo-event-log'

# Conflicts:
#   db/schema.rb
parents 74afe7ef 76d1b79b
......@@ -654,9 +654,14 @@ GitLabDropdown = (function() {
if (!selected) {
fieldName = this.options.fieldName;
field = this.dropdown.parent().find("input[name='" + fieldName + "'][value='" + value + "']");
if (field.length) {
selected = true;
if (value) {
field = this.dropdown.parent().find(`input[name='${fieldName}'][value='${value}']`);
if (field.length) {
selected = true;
}
} else {
field = this.dropdown.parent().find(`input[name='${fieldName}']`);
selected = !field.length;
}
}
// Set URL
......
......@@ -757,6 +757,7 @@
button {
border-radius: 0;
padding: 8px 16px;
white-space: normal;
// make sure the text color is not overriden
&.text-danger {
......
......@@ -9,16 +9,18 @@
margin-bottom: 20px;
}
.user-callout-copy {
max-width: 700px;
margin-left: auto;
margin-right: auto;
}
.bordered-box {
padding: 20px;
border-color: $border-color;
background-color: $white-light;
align-items: flex-start;
.user-callout-copy {
max-width: 700px;
}
.close {
.dismiss-icon {
......@@ -40,6 +42,10 @@
}
}
.user-callout.promotion-callout.promotion-empty-page {
margin-top: 56px;
}
.promotion-modal {
.modal-dialog {
......
......@@ -190,6 +190,8 @@ input[type="checkbox"]:hover {
}
.search-holder {
@include new-style-dropdown;
@media (min-width: $screen-sm-min) {
display: -webkit-flex;
display: flex;
......
......@@ -69,4 +69,8 @@ class Groups::HooksController < Groups::ApplicationController
:wiki_page_events
)
end
def check_group_webhooks_available!
render_404 unless @group.feature_available?(:group_webhooks) || LicenseHelper.show_promotions?(current_user)
end
end
......@@ -35,6 +35,8 @@ module Geo
Array([message, details].compact.join("\n"))
end
rescue OpenSSL::Cipher::CipherError
['Error decrypting the Geo secret from the database. Check that the primary uses the correct db_key_base.']
rescue HTTParty::Error, Timeout::Error, SocketError, Errno::ECONNRESET, Errno::ECONNREFUSED => e
[e.message]
end
......
......@@ -28,9 +28,6 @@ module Projects
return @project
end
# EE-only: Repository size limit comes as MB from the view
set_repository_size_limit_as_bytes
set_project_name_from_path
# get namespace id
......@@ -107,11 +104,6 @@ module Projects
system_hook_service.execute_hooks_for(@project, :create)
setup_authorizations
# EE-only
create_predefined_push_rule
@project.group&.refresh_members_authorized_projects
end
# Refresh the current user's authorizations inline (so they can access the
......@@ -161,11 +153,6 @@ module Projects
end
end
def set_repository_size_limit_as_bytes
limit = params.delete(:repository_size_limit)
@project.repository_size_limit = Gitlab::Utils.try_megabytes_to_bytes(limit) if limit
end
def set_project_name_from_path
# Set project name from path
if @project.name.present? && @project.path.present?
......@@ -179,16 +166,5 @@ module Projects
@project.path = @project.name.dup.parameterize
end
end
def create_predefined_push_rule
return unless project.feature_available?(:push_rules)
predefined_push_rule = PushRule.find_by(is_sample: true)
if predefined_push_rule
push_rule = predefined_push_rule.dup.tap { |gh| gh.is_sample = false }
project.push_rule = push_rule
end
end
end
end
= render "groups/settings_head"
.row.prepend-top-default
.col-lg-3
%h4.prepend-top-0
= page_title
%p
#{link_to 'Webhooks', help_page_path('user/project/integrations/webhooks')} can be
used for binding events when something is happening within the project.
- if @group.feature_available?(:group_webhooks)
.row.prepend-top-default
.col-lg-3
%h4.prepend-top-0
= page_title
%p
#{link_to 'Webhooks', help_page_path('user/project/integrations/webhooks')} can be
used for binding events when something is happening within the project.
.col-lg-9.append-bottom-default
= form_for @hook, as: :hook, url: polymorphic_path([@group, :hooks]) do |f|
= render partial: 'shared/web_hooks/form', locals: { form: f, hook: @hook }
= f.submit 'Add webhook', class: 'btn btn-create'
.col-lg-9.append-bottom-default
= form_for @hook, as: :hook, url: polymorphic_path([@group, :hooks]) do |f|
= render partial: 'shared/web_hooks/form', locals: { form: f, hook: @hook }
= f.submit 'Add webhook', class: 'btn btn-create'
%hr
%h5.prepend-top-default
Webhooks (#{@hooks.count})
- if @hooks.any?
%ul.well-list
- @hooks.each do |hook|
= render 'project_hook', hook: hook
- else
%p.settings-message.text-center.append-bottom-0
No webhooks found, add one in the form above.
%hr
%h5.prepend-top-default
Webhooks (#{@hooks.count})
- if @hooks.any?
%ul.well-list
- @hooks.each do |hook|
= render 'project_hook', hook: hook
- else
%p.settings-message.text-center.append-bottom-0
No webhooks found, add one in the form above.
- elsif show_promotions?
= render 'shared/promotions/promote_group_webhooks'
......@@ -35,8 +35,7 @@
%ul
- if can_update_issue
%li= link_to 'Edit', edit_project_issue_path(@project, @issue)
/ TODO: simplify condition back #36860
- if @issue.author && current_user != @issue.author
- unless current_user == @issue.author
%li= link_to 'Report abuse', new_abuse_report_path(user_id: @issue.author.id, ref_url: issue_url(@issue))
- if can_update_issue
%li= link_to 'Close issue', issue_path(@issue, issue: { state_event: :close }, format: 'json'), class: "btn-close #{issue_button_visibility(@issue, true)}", title: 'Close issue'
......
<svg xmlns="http://www.w3.org/2000/svg" width="78" height="82" viewBox="0 0 78 82"><g fill="none" fill-rule="evenodd"><path fill="#F9F9F9" d="M2.12 42c-.08.99-.12 1.99-.12 3 0 20.435 16.565 37 37 37s37-16.565 37-37c0-1.01-.04-2.01-.12-3C74.353 61.032 58.425 76 39 76 19.575 76 3.647 61.032 2.12 42z"/><path fill="#EEE" fill-rule="nonzero" d="M39 78C17.46 78 0 60.54 0 39S17.46 0 39 0s39 17.46 39 39-17.46 39-39 39zm0-4c19.33 0 35-15.67 35-35S58.33 4 39 4 4 19.67 4 39s15.67 35 35 35z"/><path fill="#E1DBF2" d="M25 50a6 6 0 1 0 12 0V38h4v12a6 6 0 1 0 12 0h-2a1 1 0 0 1-.8-1.6l4-5.333a1 1 0 0 1 1.6 0l4 5.333A1 1 0 0 1 59 50h-2c0 5.523-4.477 10-10 10a9.985 9.985 0 0 1-8-3.999A9.985 9.985 0 0 1 31 60c-5.523 0-10-4.477-10-10h-2a1 1 0 0 1-.8-1.6l4-5.333a1 1 0 0 1 1.6 0l4 5.333A1 1 0 0 1 27 50h-2z"/><path fill="#6B4FBB" d="M42 19h1a6 6 0 0 1 6 6v9a6 6 0 0 1-6 6h-8a6 6 0 0 1-6-6v-9a6 6 0 0 1 6-6h1v-1a3 3 0 0 1 6 0v1zm-7 4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-8z"/></g></svg>
\ No newline at end of file
......@@ -9,7 +9,6 @@
class: "hidden-xs hidden-sm btn btn-grouped btn-reopen #{issuable_button_visibility(issuable, false)}", title: "Reopen #{display_issuable_type}"
- elsif can_update && !is_current_user
= render 'shared/issuable/close_reopen_report_toggle', issuable: issuable
- elsif issuable.author
/ TODO: change back to else #36860
- else
= link_to 'Report abuse', new_abuse_report_path(user_id: issuable.author.id, ref_url: issuable_url(issuable)),
class: 'hidden-xs hidden-sm btn btn-grouped btn-close-color', title: 'Report abuse'
......@@ -37,15 +37,13 @@
%li.divider.droplab-item-ignore
/ TODO: remove condition #36860
- if issuable.author
%li.report-item{ data: { text: 'Report abuse', url: new_abuse_report_path(user_id: issuable.author.id, ref_url: issuable_url(issuable)),
button_class: "#{button_class} btn-close-color", toggle_class: "#{toggle_class} btn-close-color", method: '' } }
%button.btn.btn-transparent
= icon('check', class: 'icon')
.description
%strong.title Report abuse
%p.text
Report
= display_issuable_type.pluralize
that are abusive, inappropriate or spam.
%li.report-item{ data: { text: 'Report abuse', url: new_abuse_report_path(user_id: issuable.author.id, ref_url: issuable_url(issuable)),
button_class: "#{button_class} btn-close-color", toggle_class: "#{toggle_class} btn-close-color", method: '' } }
%button.btn.btn-transparent
= icon('check', class: 'icon')
.description
%strong.title Report abuse
%p.text
Report
= display_issuable_type.pluralize
that are abusive, inappropriate or spam.
---
title: 'Geo: Gracefully catch incorrect db key on primary'
merge_request: 2819
author:
type: fixed
---
title: Migrate issues authored by deleted user to the Ghost user
merge_request:
author:
type: fixed
class MigrateIssuesToGhostUser < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers
DOWNTIME = false
disable_ddl_transaction!
class User < ActiveRecord::Base
self.table_name = 'users'
end
class Issue < ActiveRecord::Base
self.table_name = 'issues'
include ::EachBatch
end
def reset_column_in_migration_models
ActiveRecord::Base.clear_cache!
::User.reset_column_information
end
def up
reset_column_in_migration_models
# we use the model method because rewriting it is too complicated and would require copying multiple methods
ghost_id = ::User.ghost.id
Issue.where('NOT EXISTS (?)', User.unscoped.select(1).where('issues.author_id = users.id')).each_batch do |relation|
relation.update_all(author_id: ghost_id)
end
end
def down
end
end
class AddForeignKeyToIssueAuthor < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers
DOWNTIME = false
disable_ddl_transaction!
def up
add_concurrent_foreign_key(:issues, :users, column: :author_id, on_delete: :nullify)
end
def down
remove_foreign_key(:issues, column: :author_id)
end
end
......@@ -2075,6 +2075,7 @@ ActiveRecord::Schema.define(version: 20170905202320) do
add_foreign_key "issue_links", "issues", column: "target_id", name: "fk_e71bb44f1f", on_delete: :cascade
add_foreign_key "issue_metrics", "issues", on_delete: :cascade
add_foreign_key "issues", "projects", name: "fk_899c8f3231", on_delete: :cascade
add_foreign_key "issues", "users", column: "author_id", name: "fk_05f1e72feb", on_delete: :cascade
add_foreign_key "label_priorities", "labels", on_delete: :cascade
add_foreign_key "label_priorities", "projects", on_delete: :cascade
add_foreign_key "labels", "namespaces", column: "group_id", on_delete: :cascade
......
......@@ -4,11 +4,15 @@ module EE
def execute
raise NotImplementedError unless defined?(super)
limit = params.delete(:repository_size_limit)
mirror = params.delete(:mirror)
mirror_user_id = params.delete(:mirror_user_id)
mirror_trigger_builds = params.delete(:mirror_trigger_builds)
super do |project|
# Repository size limit comes as MB from the view
project.repository_size_limit = ::Gitlab::Utils.try_megabytes_to_bytes(limit) if limit
if mirror && project.feature_available?(:repository_mirrors)
project.mirror = mirror unless mirror.nil?
project.mirror_trigger_builds = mirror_trigger_builds unless mirror_trigger_builds.nil?
......@@ -16,6 +20,29 @@ module EE
end
end
end
private
def after_create_actions
raise NotImplementedError unless defined?(super)
super
create_predefined_push_rule
@project.group&.refresh_members_authorized_projects
end
def create_predefined_push_rule
return unless project.feature_available?(:push_rules)
predefined_push_rule = PushRule.find_by(is_sample: true)
if predefined_push_rule
push_rule = predefined_push_rule.dup.tap { |gh| gh.is_sample = false }
project.push_rule = push_rule
end
end
end
end
end
......@@ -4,7 +4,7 @@
%span
LDAP Group
- if @group.feature_available?(:group_webhooks)
- if @group.feature_available?(:group_webhooks) || show_promotions?
= nav_link(path: 'hooks#index') do
= link_to group_hooks_path(@group), title: 'Webhooks' do
%span
......
.center.promotion-backdrop
.center.user-callout.promotion-callout
.svg-container
= custom_icon('icon_contribution_analytics')
.user-callout-copy
%h4
- if current_application_settings.should_check_namespace_plan?
Upgrade your plan to activate Contribution Analytics.
= _('Upgrade your plan to activate Contribution Analytics.')
- else
Track activity with Contribution Analytics.
= _('Track activity with Contribution Analytics.')
%p
With contribution analytics you can have an overview for the activity of issues, merge requests and push events of your organization and its members.
= link_to 'Read more', help_page_path('user/analytics/contribution_analytics.html'), target: '_blank'
= _('With contribution analytics you can have an overview for the activity of issues, merge requests and push events of your organization and its members.')
= link_to _('Read more'), help_page_path('user/analytics/contribution_analytics.md'), target: '_blank'
= render 'shared/promotions/promotion_link_project'
.center.user-callout.promotion-callout.promotion-empty-page
.svg-container
= custom_icon('icon_group_webhook')
.user-callout-copy
%h4
- if current_application_settings.should_check_namespace_plan?
= _('Upgrade your plan to activate Group Webhooks.')
- else
= _('Add Group Webhooks and GitLab Enterprise Edition.')
%p
= _('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.')
= link_to _('Read more'), help_page_path('user/project/integrations/webhooks.html'), target: '_blank'
.prepend-top-15
= render 'shared/promotions/promotion_link_project'
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 10:02-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: Bulgarian\n"
"Language: bg_BG\n"
......@@ -515,15 +515,6 @@ msgstr "Представяме Ви анализа на циклите"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr "Задачи за последния месец"
msgid "Jobs for last week"
msgstr "Задачи за последната седмица"
msgid "Jobs for last year"
msgstr "Задачи за последната година"
msgid "LFSStatus|Disabled"
msgstr "Изключено"
......@@ -764,6 +755,15 @@ msgstr "Схеми"
msgid "Pipelines charts"
msgstr "Графики за схемите"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipelines for last week"
msgstr ""
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "всички"
......@@ -1284,4 +1284,5 @@ msgstr "известия по е-поща"
msgid "parent"
msgid_plural "parents"
msgstr[0] "родител"
msgstr[1] "родители"
\ No newline at end of file
msgstr[1] "родители"
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 09:29-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: German\n"
"Language: de_DE\n"
......@@ -23,28 +23,28 @@ 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] ""
msgstr[1] ""
msgstr[0] "%s zusätzlicher Commit wurde ausgelassen um Leistungsprobleme zu verhindern."
msgstr[1] "%s zusätzliche Commits wurden ausgelassen um Leistungsprobleme zu verhindern."
msgid "%{commit_author_link} committed %{commit_timeago}"
msgstr ""
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will allow access on the next attempt."
msgstr ""
msgstr "%{number_of_failures} von %{maximum_failures} Fehlschlägen. GitLab wird den Zugriff beim nächsten Versuch zulassen."
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will block access for %{number_of_seconds} seconds."
msgstr ""
msgstr "%{number_of_failures} von %{maximum_failures} Fehlschlägen. GitLab wird den Zugriff für %{number_of_seconds} Sekunden blockieren."
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will not retry automatically. Reset storage information when the problem is resolved."
msgstr ""
msgstr "%{number_of_failures} von %{maximum_failures} Fehlschlägen. GitLab wird es nicht weiter versuchen. Setze die Speicherinformation nach Behebung des Problems zurück."
msgid "%{storage_name}: failed storage access attempt on host:"
msgid_plural "%{storage_name}: %{failed_attempts} failed storage access attempts:"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "%{storage_name}: fehlgeschlagener Speicherzugriff auf Host:"
msgstr[1] "%{storage_name}: fehlgeschlagene Speicherzugriffe auf Host:"
msgid "(checkout the %{link} for information on how to install it)."
msgstr ""
msgstr "(beachte die Informationen zur Installation auf %{link})."
msgid "1 pipeline"
msgid_plural "%d pipelines"
......@@ -52,13 +52,13 @@ msgstr[0] ""
msgstr[1] ""
msgid "A collection of graphs regarding Continuous Integration"
msgstr ""
msgstr "Eine Sammlung von Graphen bezüglich kontinuierlicher Integration"
msgid "About auto deploy"
msgstr ""
msgstr "Über automatische Bereitstellung "
msgid "Access to failing storages has been temporarily disabled to allow the mount to recover. Reset storage information after the issue has been resolved to allow access again."
msgstr ""
msgstr "Zugriff auf fehlerhafte Speicher wurde vorübergehend deaktiviert, um die Wiederherstellung zu ermöglichen. Für den zukünftigen Zugriff, behebe bitte das Problem und setze danach die Speicherinformationen zurück."
msgid "Active"
msgstr ""
......@@ -67,43 +67,43 @@ msgid "Activity"
msgstr ""
msgid "Add Changelog"
msgstr ""
msgstr "Änderungsliste hinzufügen "
msgid "Add Contribution guide"
msgstr ""
msgstr "Mitarbeitsanleitung hinzufügen"
msgid "Add License"
msgstr ""
msgid "Add an SSH key to your profile to pull or push via SSH."
msgstr ""
msgstr "Füge einen SSH Schlüssel zu deinem Profil hinzu, um mittels SSH zu übertragen (push) oder abzurufen (pull)."
msgid "Add new directory"
msgstr ""
msgstr "Erstelle eine neues Verzeichnis"
msgid "All"
msgstr ""
msgstr "Alle"
msgid "Archived project! Repository is read-only"
msgstr ""
msgstr "Archiviertes Projekt! Repository ist nicht änderbar."
msgid "Are you sure you want to delete this pipeline schedule?"
msgstr ""
msgstr "Bist Du sicher, dass Du diesen Pipeline-Zeitplan löschen möchtest?"
msgid "Are you sure you want to discard your changes?"
msgstr ""
msgstr "Bist Du sicher, dass Du alle Änderungen zurücksetzen willst?"
msgid "Are you sure you want to reset registration token?"
msgstr ""
msgstr "Bist Du sicher, dass Du den Registrierungstoken zurücksetzen willst?"
msgid "Are you sure you want to reset the health check token?"
msgstr ""
msgstr "Bist Du sicher, dass Du den Systemüberwachungstoken zurücksetzen willst?"
msgid "Are you sure?"
msgstr ""
msgstr "Bist Du sicher?"
msgid "Attach a file by drag &amp; drop or %{upload_link}"
msgstr ""
msgstr "Datei mittels Drag &amp; Drop oder %{upload_link} hinzufügen"
msgid "Branch"
msgid_plural "Branches"
......@@ -111,31 +111,31 @@ msgstr[0] ""
msgstr[1] ""
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 ""
msgstr "Branch <strong>%{branch_name}</strong> wurde erstellt. Um die automatische Bereitstellung einzurichten, wähle eine GitLab CI Yaml Vorlage und committe Deine Änderungen. %{link_to_autodeploy_doc}"
msgid "BranchSwitcherPlaceholder|Search branches"
msgstr ""
msgstr "Branches durchsuchen"
msgid "BranchSwitcherTitle|Switch branch"
msgstr ""
msgstr "Branch wechseln"
msgid "Branches"
msgstr ""
msgid "Browse Directory"
msgstr ""
msgstr "Verzeichnisse durchsuchen"
msgid "Browse File"
msgstr ""
msgstr "Datei durchsuchen"
msgid "Browse Files"
msgstr ""
msgstr "Dateien durchsuchen"
msgid "Browse files"
msgstr ""
msgstr "Dateien durchsuchen"
msgid "ByAuthor|by"
msgstr "Von"
msgstr "von"
msgid "CI configuration"
msgstr ""
......@@ -144,88 +144,88 @@ msgid "Cancel"
msgstr ""
msgid "Cancel edit"
msgstr ""
msgstr "Bearbeitung abbrechen"
msgid "ChangeTypeActionLabel|Pick into branch"
msgstr ""
msgstr "In dem Branch wählen"
msgid "ChangeTypeActionLabel|Revert in branch"
msgstr ""
msgstr "Im Branch wiederherstellen"
msgid "ChangeTypeAction|Cherry-pick"
msgstr ""
msgstr "Herauspicken"
msgid "ChangeTypeAction|Revert"
msgstr ""
msgstr "Wiederherstellen "
msgid "Changelog"
msgstr ""
msgstr "Änderungsliste "
msgid "Charts"
msgstr ""
msgstr "Diagramme"
msgid "Cherry-pick this commit"
msgstr ""
msgstr "Diesen Commit herauspicken "
msgid "Cherry-pick this merge request"
msgstr ""
msgstr "Diesen Merge Request herauspicken"
msgid "CiStatusLabel|canceled"
msgstr ""
msgstr "abgebrochen"
msgid "CiStatusLabel|created"
msgstr ""
msgstr "erstellt"
msgid "CiStatusLabel|failed"
msgstr ""
msgstr "fehlgeschlagen"
msgid "CiStatusLabel|manual action"
msgstr ""
msgstr "manuelles Eingreifen"
msgid "CiStatusLabel|passed"
msgstr ""
msgstr "absolviert"
msgid "CiStatusLabel|passed with warnings"
msgstr ""
msgstr "mit Warnungen absolviert"
msgid "CiStatusLabel|pending"
msgstr ""
msgstr "ausstehend"
msgid "CiStatusLabel|skipped"
msgstr ""
msgstr "übersprungen"
msgid "CiStatusLabel|waiting for manual action"
msgstr ""
msgstr "wartet auf manuelles Eingreifen"
msgid "CiStatusText|blocked"
msgstr ""
msgstr "blockiert"
msgid "CiStatusText|canceled"
msgstr ""
msgstr "abgebrochen"
msgid "CiStatusText|created"
msgstr ""
msgstr "erstellt"
msgid "CiStatusText|failed"
msgstr ""
msgstr "fehlgeschlagen"
msgid "CiStatusText|manual"
msgstr ""
msgstr "manuell"
msgid "CiStatusText|passed"
msgstr ""
msgstr "absolviert"
msgid "CiStatusText|pending"
msgstr ""
msgstr "ausstehend"
msgid "CiStatusText|skipped"
msgstr ""
msgstr "übersprungen"
msgid "CiStatus|running"
msgstr ""
msgstr "laufend"
msgid "Comments"
msgstr ""
msgstr "Kommentare"
msgid "Commit"
msgid_plural "Commits"
......@@ -233,106 +233,106 @@ msgstr[0] ""
msgstr[1] ""
msgid "Commit duration in minutes for last 30 commits"
msgstr ""
msgstr "Dauer der Commits in Minuten für die letzten 30 Commits"
msgid "Commit message"
msgstr ""
msgstr "Commit Nachricht"
msgid "CommitBoxTitle|Commit"
msgstr ""
msgstr "Commit"
msgid "CommitMessage|Add %{file_name}"
msgstr ""
msgstr "%{file_name} hinzufügen"
msgid "Commits"
msgstr ""
msgid "Commits feed"
msgstr ""
msgstr "Liste der Commits"
msgid "Commits|History"
msgstr ""
msgstr "Verlauf"
msgid "Committed by"
msgstr ""
msgstr "Committed von"
msgid "Compare"
msgstr ""
msgstr "Vergleichen"
msgid "Contribution guide"
msgstr ""
msgstr "Mitarbeitsanleitung"
msgid "Contributors"
msgstr ""
msgstr "Mitarbeiter"
msgid "Copy URL to clipboard"
msgstr ""
msgstr "Kopiere URL in die Zwischenablage"
msgid "Copy commit SHA to clipboard"
msgstr ""
msgstr "Kopiere Commit SHA in die Zwischenablage"
msgid "Create New Directory"
msgstr ""
msgstr "Erstelle neues Verzeichnis"
msgid "Create a new branch"
msgstr ""
msgstr "Erstelle einen neuen Branch"
msgid "Create a personal access token on your account to pull or push via %{protocol}."
msgstr ""
msgstr "Erstelle einen persönlichen Zugriffstoken in Deinem Konto um mittels %{protocol} zu übertragen (push) oder abzurufen (pull)."
msgid "Create directory"
msgstr ""
msgstr "Erstelle Verzeichnis"
msgid "Create empty bare repository"
msgstr ""
msgstr "Erstelle leeres Repository"
msgid "Create merge request"
msgstr ""
msgstr "Erstelle Merge Request"
msgid "Create new..."
msgstr ""
msgstr "Erstelle neues..."
msgid "CreateNewFork|Fork"
msgstr ""
msgstr "Ableger"
msgid "CreateTag|Tag"
msgstr ""
msgstr "Tag "
msgid "CreateTokenToCloneLink|create a personal access token"
msgstr ""
msgstr "Erstelle einen persönlichen Zugriffstoken"
msgid "Cron Timezone"
msgstr ""
msgstr "Cron Zeitzone"
msgid "Cron syntax"
msgstr ""
msgstr "Cron Syntax"
msgid "Custom notification events"
msgstr ""
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 ""
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 "Cycle Analytics"
msgstr ""
msgstr "Arbeitsablaufsanalysen"
msgid "Cycle Analytics gives an overview of how much time it takes to go from idea to production in your project."
msgstr "Cycle Analytics liefern einen Überblick darüber, wie viel Zeit in Ihrem Projekt von einer Idee bis zum Produktivdeployment vergeht."
msgstr "Arbeitsablaufsanalysen verschaffen einen Überblick, welche Zeit Dein Projekt von der Idee zur Realisierung benötigt."
msgid "CycleAnalyticsStage|Code"
msgstr "Code"
msgstr "Entwicklung"
msgid "CycleAnalyticsStage|Issue"
msgstr "Issue"
msgstr "Ticket"
msgid "CycleAnalyticsStage|Plan"
msgstr "Planung"
msgid "CycleAnalyticsStage|Production"
msgstr "Produktiv"
msgstr "Produktion"
msgid "CycleAnalyticsStage|Review"
msgstr "Review"
msgstr "Überprüfung"
msgid "CycleAnalyticsStage|Staging"
msgstr "Staging"
......@@ -341,281 +341,272 @@ msgid "CycleAnalyticsStage|Test"
msgstr "Test"
msgid "Define a custom pattern with cron syntax"
msgstr ""
msgstr "Erstelle ein individuelles Muster mittels Cron Syntax"
msgid "Delete"
msgstr ""
msgstr "Löschen"
msgid "Deploy"
msgid_plural "Deploys"
msgstr[0] "Deployment"
msgstr[1] "Deployments"
msgstr[0] "Bereitstellung"
msgstr[1] "Bereitstellungen"
msgid "Description"
msgstr ""
msgstr "Beschreibung"
msgid "Details"
msgstr ""
msgid "Directory name"
msgstr ""
msgstr "Verzeichnisname"
msgid "Discard changes"
msgstr ""
msgstr "Änderungen verwerfen"
msgid "Don't show again"
msgstr ""
msgstr "Nicht erneut anzeigen"
msgid "Download"
msgstr ""
msgstr "Herunterladen"
msgid "Download tar"
msgstr ""
msgstr "TAR-Datei herunterladen"
msgid "Download tar.bz2"
msgstr ""
msgstr "TAR.BZ2-Datei herunterladen"
msgid "Download tar.gz"
msgstr ""
msgstr "TAR.GZ-Datei herunterladen"
msgid "Download zip"
msgstr ""
msgstr "ZIP-Datei herunterladen"
msgid "DownloadArtifacts|Download"
msgstr ""
msgstr "Herunterladen"
msgid "DownloadCommit|Email Patches"
msgstr ""
msgstr "E-Mail Patch"
msgid "DownloadCommit|Plain Diff"
msgstr ""
msgstr "Unterschiede"
msgid "DownloadSource|Download"
msgstr ""
msgstr "Herunterladen"
msgid "Edit"
msgstr ""
msgstr "Bearbeiten"
msgid "Edit Pipeline Schedule %{id}"
msgstr ""
msgstr "Pipeline Zeitplan bearbeiten %{id}"
msgid "EventFilterBy|Filter by all"
msgstr ""
msgstr "Filtere alle"
msgid "EventFilterBy|Filter by comments"
msgstr ""
msgstr "Filtere nach Kommentaren"
msgid "EventFilterBy|Filter by issue events"
msgstr ""
msgstr "Filtere nach Tickets"
msgid "EventFilterBy|Filter by merge events"
msgstr ""
msgstr "Filtere nach Merge Requests"
msgid "EventFilterBy|Filter by push events"
msgstr ""
msgstr "Filtere nach Übertragungen"
msgid "EventFilterBy|Filter by team"
msgstr ""
msgstr "Filtere nach Teams"
msgid "Every day (at 4:00am)"
msgstr ""
msgstr "Täglich (um 4:00 Uhr)"
msgid "Every month (on the 1st at 4:00am)"
msgstr ""
msgstr "Monatlich (am Ersten um 4:00 Uhr)"
msgid "Every week (Sundays at 4:00am)"
msgstr ""
msgstr "Wöchentlich (Sonntags um 4:00 Uhr)"
msgid "Failed to change the owner"
msgstr ""
msgstr "Wechsel des Besitzers fehlgeschlagen"
msgid "Failed to remove the pipeline schedule"
msgstr ""
msgstr "Entfernung der Pipelineplanung fehlgeschlagen"
msgid "Files"
msgstr ""
msgstr "Dateien"
msgid "Filter by commit message"
msgstr ""
msgstr "Filter nach Commit Nachricht"
msgid "Find by path"
msgstr ""
msgstr "Finde über den Pfad"
msgid "Find file"
msgstr ""
msgstr "Finde Datei"
msgid "FirstPushedBy|First"
msgstr "Erster"
msgid "FirstPushedBy|pushed by"
msgstr "gepusht von"
msgstr "übertragen von"
msgid "Fork"
msgid_plural "Forks"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "Ableger"
msgstr[1] "Ableger"
msgid "ForkedFromProjectPath|Forked from"
msgstr ""
msgstr "Ableger von"
msgid "From issue creation until deploy to production"
msgstr "Vom Anlegen des Issues bis zum Produktivdeployment"
msgstr "Von der Ticketbeschreibung bis zur Bereitstellung"
msgid "From merge request merge until deploy to production"
msgstr "Vom Merge Request bis zum Produktivdeployment"
msgstr "Vom Umsetzen des Merge Request bis zur Bereitstellung auf dem Produktivsystem"
msgid "Git storage health information has been reset"
msgstr ""
msgstr "Informationen über den Speicherzustand von Gitlab wurden zurückgesetzt."
msgid "GitLab Runner section"
msgstr ""
msgstr "GitLab Runner Bereich"
msgid "Go to your fork"
msgstr ""
msgstr "Gehe zu Deinem Ableger"
msgid "GoToYourFork|Fork"
msgstr ""
msgstr "Ableger"
msgid "Health Check"
msgstr ""
msgstr "Systemzustand"
msgid "Health information can be retrieved from the following endpoints. More information is available"
msgstr ""
msgstr "Informationen über den Systemzustand können von folgenden Endpunkten erhalten werden. Mehr Informationen gibt es"
msgid "HealthCheck|Access token is"
msgstr ""
msgstr "Zugriffstoken ist"
msgid "HealthCheck|Healthy"
msgstr ""
msgstr "OK"
msgid "HealthCheck|No Health Problems Detected"
msgstr ""
msgstr "Keine Probleme erkannt"
msgid "HealthCheck|Unhealthy"
msgstr ""
msgstr "Problematisch"
msgid "Home"
msgstr ""
msgstr "Startseite"
msgid "Housekeeping successfully started"
msgstr ""
msgstr "Aufräumen erfolgreich gestartet"
msgid "Import repository"
msgstr ""
msgstr "Repository importieren"
msgid "Install a Runner compatible with GitLab CI"
msgstr ""
msgstr "Installiere einen Runner der mit GitLab CI kompatibel ist"
msgid "Interval Pattern"
msgstr ""
msgstr "Intervallmuster"
msgid "Introducing Cycle Analytics"
msgstr "Was sind Cycle Analytics?"
msgstr "Arbeitsablaufsanalysen vorgestellt"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr ""
msgid "Jobs for last week"
msgstr ""
msgid "Jobs for last year"
msgstr ""
msgstr "Ticketereignisse"
msgid "LFSStatus|Disabled"
msgstr ""
msgstr "Deaktiviert"
msgid "LFSStatus|Enabled"
msgstr ""
msgstr "Aktiviert"
msgid "Last %d day"
msgid_plural "Last %d days"
msgstr[0] "Letzter %d Tag"
msgstr[0] "Letzten %d Tag"
msgstr[1] "Letzten %d Tage"
msgid "Last Pipeline"
msgstr ""
msgstr "Letzte Pipeline"
msgid "Last Update"
msgstr ""
msgstr "Letzte Aktualisierung"
msgid "Last commit"
msgstr ""
msgstr "Letzter Commit"
msgid "LastPushEvent|You pushed to"
msgstr ""
msgstr "Du übertrugst an"
msgid "LastPushEvent|at"
msgstr ""
msgstr "am"
msgid "Learn more in the"
msgstr ""
msgstr "Erfahre mehr in den"
msgid "Learn more in the|pipeline schedules documentation"
msgstr ""
msgstr "Pipelineplanungsdokumentation"
msgid "Leave group"
msgstr ""
msgstr "Verlasse die Gruppe"
msgid "Leave project"
msgstr ""
msgstr "Verlasse das Projekt"
msgid "Limited to showing %d event at most"
msgid_plural "Limited to showing %d events at most"
msgstr[0] "Eingeschränkt auf maximal %d Ereignis"
msgstr[1] "Eingeschränkt auf maximal %d Ereignisse"
msgstr[0] "Limitiere die Anzeige auf höchstens %d Ereignis"
msgstr[1] "Limitiere die Anzeige auf höchstens %d Ereignisse"
msgid "Median"
msgstr ""
msgid "Merge events"
msgstr ""
msgstr "Ereignisse zusammenführen"
msgid "MissingSSHKeyWarningLink|add an SSH key"
msgstr ""
msgstr "einen SSH Schlüssel hinzufügst"
msgid "More information is available|here"
msgstr ""
msgstr "hier"
msgid "New Issue"
msgid_plural "New Issues"
msgstr[0] "Neues Issue"
msgstr[1] "Neue Issues"
msgstr[0] "Neues Ticket"
msgstr[1] "Neue Tickets"
msgid "New Pipeline Schedule"
msgstr ""
msgstr "Neuer Pipeline Zeitplan"
msgid "New branch"
msgstr ""
msgstr "Neuer Branch"
msgid "New directory"
msgstr ""
msgstr "Neues Verzeichnis"
msgid "New file"
msgstr ""
msgstr "Neue Datei"
msgid "New issue"
msgstr ""
msgstr "Neues Ticket"
msgid "New merge request"
msgstr ""
msgstr "Neuer Merge Request"
msgid "New schedule"
msgstr ""
msgstr "Neuer Zeitplan"
msgid "New snippet"
msgstr ""
msgstr "Neuer Schnipsel"
msgid "New tag"
msgstr ""
msgstr "Neuer Tag"
msgid "No repository"
msgstr ""
msgstr "Kein Repository"
msgid "No schedules"
msgstr ""
msgstr "Keine Zeitpläne"
msgid "Not available"
msgstr "Nicht verfügbar"
......@@ -624,241 +615,250 @@ msgid "Not enough data"
msgstr "Nicht genügend Daten"
msgid "Notification events"
msgstr ""
msgstr "Benachrichtigungsereignisse"
msgid "NotificationEvent|Close issue"
msgstr ""
msgstr "Ticket abschließen"
msgid "NotificationEvent|Close merge request"
msgstr ""
msgstr "Merge Request abschließen"
msgid "NotificationEvent|Failed pipeline"
msgstr ""
msgstr "Fehlgeschlagene Pipeline"
msgid "NotificationEvent|Merge merge request"
msgstr ""
msgstr "Merge Request umsetzen"
msgid "NotificationEvent|New issue"
msgstr ""
msgstr "Neues Ticket"
msgid "NotificationEvent|New merge request"
msgstr ""
msgstr "Neuer Merge Request"
msgid "NotificationEvent|New note"
msgstr ""
msgstr "Neue Notiz"
msgid "NotificationEvent|Reassign issue"
msgstr ""
msgstr "Ticket neu zuweisen"
msgid "NotificationEvent|Reassign merge request"
msgstr ""
msgstr "Merge Request neu zuweisen"
msgid "NotificationEvent|Reopen issue"
msgstr ""
msgstr "Ticket wieder öffnen"
msgid "NotificationEvent|Successful pipeline"
msgstr ""
msgstr "Erfolgreiche Pipeline"
msgid "NotificationLevel|Custom"
msgstr ""
msgstr "Individuell"
msgid "NotificationLevel|Disabled"
msgstr ""
msgstr "Deaktiviert"
msgid "NotificationLevel|Global"
msgstr ""
msgstr "Global"
msgid "NotificationLevel|On mention"
msgstr ""
msgstr "Zum Vermerk"
msgid "NotificationLevel|Participate"
msgstr ""
msgstr "Teilnehmen"
msgid "NotificationLevel|Watch"
msgstr ""
msgstr "Beobachten"
msgid "OfSearchInADropdown|Filter"
msgstr ""
msgstr "Filter"
msgid "OpenedNDaysAgo|Opened"
msgstr "Erstellt"
msgstr "Ungelöst"
msgid "Options"
msgstr ""
msgstr "Optionen"
msgid "Owner"
msgstr ""
msgstr "Besitzer"
msgid "Pipeline"
msgstr ""
msgid "Pipeline Health"
msgstr "Pipeline Kennzahlen"
msgstr "Zustand der Pipeline"
msgid "Pipeline Schedule"
msgstr ""
msgstr "Zeitplan der Pipeline"
msgid "Pipeline Schedules"
msgstr ""
msgstr "Zustände der Pipeline"
msgid "PipelineCharts|Failed:"
msgstr ""
msgstr "Fehlgeschlagen:"
msgid "PipelineCharts|Overall statistics"
msgstr ""
msgstr "Gesamte Statisktiken"
msgid "PipelineCharts|Success ratio:"
msgstr ""
msgstr "Erfolgsverhältnis:"
msgid "PipelineCharts|Successful:"
msgstr ""
msgstr "Erfolgreich:"
msgid "PipelineCharts|Total:"
msgstr ""
msgstr "Insgesamt:"
msgid "PipelineSchedules|Activated"
msgstr ""
msgstr "Aktiviert"
msgid "PipelineSchedules|Active"
msgstr ""
msgstr "Aktiv"
msgid "PipelineSchedules|All"
msgstr ""
msgstr "Alle"
msgid "PipelineSchedules|Inactive"
msgstr ""
msgstr "Inaktiv"
msgid "PipelineSchedules|Input variable key"
msgstr ""
msgstr "Schlüssel der Eingangsvariable"
msgid "PipelineSchedules|Input variable value"
msgstr ""
msgstr "Wert der Eingangsvariable"
msgid "PipelineSchedules|Next Run"
msgstr ""
msgstr "Nächste Durchführung"
msgid "PipelineSchedules|None"
msgstr ""
msgstr "Nichts"
msgid "PipelineSchedules|Provide a short description for this pipeline"
msgstr ""
msgstr "Beschreibe diese Pipeline"
msgid "PipelineSchedules|Remove variable row"
msgstr ""
msgstr "Entferne Variablenreihe"
msgid "PipelineSchedules|Take ownership"
msgstr ""
msgstr "Eigentümer werden"
msgid "PipelineSchedules|Target"
msgstr ""
msgstr "Ziel"
msgid "PipelineSchedules|Variables"
msgstr ""
msgstr "Variablen"
msgid "PipelineSheduleIntervalPattern|Custom"
msgstr ""
msgstr "Individuell"
msgid "Pipelines"
msgstr ""
msgid "Pipelines charts"
msgstr "Pipelinediagramme"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipeline|all"
msgid "Pipelines for last week"
msgstr ""
msgid "Pipeline|success"
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "Alle"
msgid "Pipeline|success"
msgstr "Erfolg"
msgid "Pipeline|with stage"
msgstr ""
msgstr "mit Stage"
msgid "Pipeline|with stages"
msgstr ""
msgstr "mit Stages"
msgid "Project"
msgstr ""
msgstr "Projekt"
msgid "Project '%{project_name}' queued for deletion."
msgstr ""
msgstr "Das Projekt '%{project_name}' wurde zur Löschung eingeplant."
msgid "Project '%{project_name}' was successfully created."
msgstr ""
msgstr "Das Projekt '%{project_name}' wurde erfolgreich erstellt."
msgid "Project '%{project_name}' was successfully updated."
msgstr ""
msgstr "Das Projekt '%{project_name}' wurde erfolgreich aktualisiert."
msgid "Project '%{project_name}' will be deleted."
msgstr ""
msgstr "Das Projekt '%{project_name}' wird gelöscht."
msgid "Project access must be granted explicitly to each user."
msgstr ""
msgstr "Jedem Nutzer muss explizit der Zugriff auf das Projekt gewährt werden."
msgid "Project details"
msgstr ""
msgstr "Projektdetails"
msgid "Project export could not be deleted."
msgstr ""
msgstr "Der Export des Projekts konnte nich gelöscht werden."
msgid "Project export has been deleted."
msgstr ""
msgstr "Der Export des Projekts wurde gelöscht."
msgid "Project export link has expired. Please generate a new export from your project settings."
msgstr ""
msgstr "Der Link für den Export des Projektes ist abgelaufen. Bitte generiere einen neuen Export in den Projekteinstellungen."
msgid "Project export started. A download link will be sent by email."
msgstr ""
msgstr "Export des Projektes gestartet. Ein Link zum herunterladen wir Dir per E-Mail zugesandt."
msgid "Project home"
msgstr ""
msgstr "Startseite des Projektes"
msgid "ProjectActivityRSS|Subscribe"
msgstr ""
msgstr "Abonnieren"
msgid "ProjectFeature|Disabled"
msgstr ""
msgstr "Dekativiert"
msgid "ProjectFeature|Everyone with access"
msgstr ""
msgstr "Jeder mit Zugriff"
msgid "ProjectFeature|Only team members"
msgstr ""
msgstr "Nur Teammitglieder"
msgid "ProjectFileTree|Name"
msgstr ""
msgstr "Name"
msgid "ProjectLastActivity|Never"
msgstr ""
msgstr "Niemals"
msgid "ProjectLifecycle|Stage"
msgstr "Phase"
msgstr "Stage"
msgid "ProjectNetworkGraph|Graph"
msgstr ""
msgstr "Diagramm"
msgid "Push events"
msgstr ""
msgstr "Übertragungsereignisse"
msgid "Read more"
msgstr "Mehr"
msgstr "Mehr lesen"
msgid "Readme"
msgstr ""
msgstr "Lies mich"
msgid "RefSwitcher|Branches"
msgstr ""
msgstr "Branches"
msgid "RefSwitcher|Tags"
msgstr ""
msgstr "Tags"
msgid "Related Commits"
msgstr "Zugehörige Commits"
msgid "Related Deployed Jobs"
msgstr "Zugehörige Deploymentjobs"
msgstr "Zugehörige ausgelieferte Jobs"
msgid "Related Issues"
msgstr "Zugehörige Issues"
msgstr "Zugehörige Tickets"
msgid "Related Jobs"
msgstr "Zugehörige Jobs"
......@@ -867,73 +867,73 @@ msgid "Related Merge Requests"
msgstr "Zugehörige Merge Requests"
msgid "Related Merged Requests"
msgstr "Zugehörige abgeschlossene Merge Requests"
msgstr "Zugehörige umgesetzte Merge Requests"
msgid "Remind later"
msgstr ""
msgstr "Später erinnern"
msgid "Remove project"
msgstr ""
msgstr "Projekt entfernen"
msgid "Repository"
msgstr ""
msgid "Request Access"
msgstr ""
msgstr "Anfrage auf Zugriff"
msgid "Reset git storage health information"
msgstr ""
msgstr "Informationen über Speicherzustand zurücksetzen"
msgid "Reset health check access token"
msgstr ""
msgstr "Zugriffstoken für Systemzustand zurücksetzen"
msgid "Reset runners registration token"
msgstr ""
msgstr "Registrierungstoken für Runner zurücksetzen"
msgid "Revert this commit"
msgstr ""
msgstr "Commit zurücksetzen"
msgid "Revert this merge request"
msgstr ""
msgstr "Merge Request zurücksetzen"
msgid "Save pipeline schedule"
msgstr ""
msgstr "Zeitplan der Pipeline speichern"
msgid "Schedule a new pipeline"
msgstr ""
msgstr "Plane eine neue Pipeline"
msgid "Scheduling Pipelines"
msgstr ""
msgstr "Pipelines planen"
msgid "Search branches and tags"
msgstr ""
msgstr "Suche nach Branches und Tags"
msgid "Select Archive Format"
msgstr ""
msgstr "Archivierungsformat auswählen"
msgid "Select a timezone"
msgstr ""
msgstr "Zeitzone auswählen"
msgid "Select existing branch"
msgstr ""
msgstr "Existierenden Branch auswählen"
msgid "Select target branch"
msgstr ""
msgstr "Zielbranch auswählen"
msgid "Set a password on your account to pull or push via %{protocol}."
msgstr ""
msgstr "Lege ein Passwort für dein Konto fest, um mittels %{protocol} zu übertragen (push) oder abzurufen (pull)."
msgid "Set up CI"
msgstr ""
msgstr "CI einrichten"
msgid "Set up Koding"
msgstr ""
msgstr "Koding einrichten"
msgid "Set up auto deploy"
msgstr ""
msgstr "Automatische Bereitstellung einrichten"
msgid "SetPasswordToCloneLink|set a password"
msgstr ""
msgstr "ein Passwort festlegst"
msgid "Showing %d event"
msgid_plural "Showing %d events"
......@@ -941,22 +941,22 @@ msgstr[0] "Zeige %d Ereignis"
msgstr[1] "Zeige %d Ereignisse"
msgid "Source code"
msgstr ""
msgstr "Quellcode"
msgid "Specify the following URL during the Runner setup:"
msgstr ""
msgstr "Lege die folgende URL während des Runner Setups fest:"
msgid "StarProject|Star"
msgstr ""
msgstr "Favorisieren"
msgid "Start a %{new_merge_request} with these changes"
msgstr ""
msgstr "Beginne einen %{new_merge_request} mit diesen Änderungen"
msgid "Start the Runner!"
msgstr ""
msgstr "Starte den Runner!"
msgid "Switch branch/tag"
msgstr ""
msgstr "Zu Branch/Tag wechseln"
msgid "Tag"
msgid_plural "Tags"
......@@ -967,308 +967,308 @@ msgid "Tags"
msgstr ""
msgid "Target Branch"
msgstr ""
msgstr "Zielbranch"
msgid "Team"
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 Code-Phase stellt die Zeit vom ersten Commit bis zum Erstellen eines Merge Requests dar. Sobald Sie Ihren ersten Merge Request anlegen, werden dessen Daten automatisch ergänzt."
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 fork relationship has been removed."
msgstr ""
msgstr "Die Beziehung des Ablegers wurde entfernt."
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 Issue-Phase stellt die Zeit vom Anlegen eines Issues bis zum Zuweisen eines Meilensteins oder Hinzufügen zum Issue Board dar. Erstellen Sie einen Issue, damit dessen Daten hier erscheinen."
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."
msgid "The phase of the development lifecycle."
msgstr "Die Phase im Entwicklungsprozess."
msgstr "Die Phase des Entwicklungslebenszyklus."
msgid "The pipelines schedule runs pipelines in the future, repeatedly, for specific branches or tags. Those scheduled pipelines will inherit limited project access based on their associated user."
msgstr ""
msgstr "Die Pipelinezeitpläne starten Pipelines in der Zukunft, wiederholend, für bestimmte Branches oder Tags. Diese geplanten Pipelines haben denselben begrenzten Zugriff auf das Projekt, wie der zugeordnete Nutzer."
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 Pushen des ersten Commits dar. Sobald Sie den ersten Commit pushen, werden dessen Daten hier erscheinen."
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 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 Produktiv-Phase stellt die Gesamtzeit vom Anlegen eines Issues bis zum Deployment auf dem Produktivsystem dar. Sobald Sie den vollständigen Entwicklungszyklus von einer Idee bis zum Produktivdeployment durchlaufen haben, erscheinen die zugehörigen Daten hier."
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."
msgid "The project can be accessed by any logged in user."
msgstr ""
msgstr "Auf das Projekt kann jeder angemeldete Nutzer zugreifen."
msgid "The project can be accessed without any authentication."
msgstr ""
msgstr "Auf das Projekt kann ohne Authentifizierung zugegriffen werden."
msgid "The repository for this project does not exist."
msgstr ""
msgstr "Das Repository für das Projekt existiert nicht."
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 Review-Phase stellt die Zeit vom Anlegen eines Merge Requests bis zum Mergen dar. Sobald Sie Ihren ersten Merge Request abschließen, werden dessen Daten hier automatisch angezeigt."
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."
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 "Die Staging-Phase stellt die Zeit zwischen Mergen eines Merge Requests und dem Produktivdeployment dar. Sobald Sie das erste Produktivdeployment durchgeführt haben, werden dessen Daten hier automatisch angezeigt."
msgstr "Die Staging-Phase stellt die Zeit zwischen der Umsetzung eines Merge Requests und der Bereitstellung des Codes auf dem Produktivsystem dar. Sobald Du das erste Mal auf das Produktivsystem ausgeliefert hast, werden dessen Daten hier automatisch angezeigt."
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 "Die Test-Phase stellt die Zeit dar, die GitLab CI benötigt um die Pipelines von Merge Requests abzuarbeiten. Sobald die erste Pipeline abgeschlossen ist, werden deren Daten hier automatisch angezeigt."
msgstr "Die Testphase stellt die Zeit dar, die GitLab CI benötigt um die Pipelines von zugehörigen Merge Requests abzuarbeiten. Sobald die erste Pipeline abgeschlossen ist, werden deren Daten hier automatisch angezeigt."
msgid "The time taken by each data entry gathered by that stage."
msgstr "Zeit die für das jeweilige Ereignis in der Phase ermittelt wurde."
msgstr "Zeit, die für das jeweilige Ereignis in der Phase ermittelt wurde."
msgid "The value lying at the midpoint of a series of observed values. E.g., between 3, 5, 9, the median is 5. Between 3, 5, 7, 8, the median is (5+7)/2 = 6."
msgstr "Der mittlere aller erfassten Werte. Zum Beispiel ist für 3, 5, 9 der Median 5. Bei 3, 5, 7, 8 ist der Median (5+7)/2 = 6."
msgid "There are problems accessing Git storage: "
msgstr ""
msgstr "Es gibt ein Problem beim Zugriff auf den Gitspeicher:"
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr ""
msgstr "Dies bedeutet, dass Du keinen Code übertragen kannst, bevor Du kein leeres Repositorium erstellt oder ein Existierendes importiert hast."
msgid "Time before an issue gets scheduled"
msgstr "Zeit bis ein Issue geplant wird"
msgstr "Zeit bis ein Ticket geplant wird"
msgid "Time before an issue starts implementation"
msgstr "Zeit bis die Implementierung für ein Issue beginnt"
msgstr "Zeit bis die Implementierung für ein Ticket beginnt"
msgid "Time between merge request creation and merge/close"
msgstr "Zeit zwischen Anlegen und Mergen/Schließen eines Merge Requests"
msgstr "Zeit zwischen einem Merge Request und dessen Umsetzung / Schließung"
msgid "Time until first merge request"
msgstr "Zeit bis zum ersten Merge Request"
msgid "Timeago|%s days ago"
msgstr ""
msgstr "seit %s Tagen"
msgid "Timeago|%s days remaining"
msgstr ""
msgstr "%s Tage verbleibend"
msgid "Timeago|%s hours remaining"
msgstr ""
msgstr "%s Stunden verbleibend"
msgid "Timeago|%s minutes ago"
msgstr ""
msgstr "seit %s Minuten "
msgid "Timeago|%s minutes remaining"
msgstr ""
msgstr "%s Minuten verbleibend"
msgid "Timeago|%s months ago"
msgstr ""
msgstr "seit %s Monaten"
msgid "Timeago|%s months remaining"
msgstr ""
msgstr "%s Monate verbleibend"
msgid "Timeago|%s seconds remaining"
msgstr ""
msgstr "%s Sekunden verbleibend"
msgid "Timeago|%s weeks ago"
msgstr ""
msgstr "seit %s Wochen"
msgid "Timeago|%s weeks remaining"
msgstr ""
msgstr "%s Wochen verbleibend"
msgid "Timeago|%s years ago"
msgstr ""
msgstr "seit %s Jahren"
msgid "Timeago|%s years remaining"
msgstr ""
msgstr "%s Jahre verbleibend"
msgid "Timeago|1 day remaining"
msgstr ""
msgstr "1 Tag verbleibend"
msgid "Timeago|1 hour remaining"
msgstr ""
msgstr "1 Stunde verbleibend"
msgid "Timeago|1 minute remaining"
msgstr ""
msgstr "1 Minute verbleibend"
msgid "Timeago|1 month remaining"
msgstr ""
msgstr "1 Monat verbleibend"
msgid "Timeago|1 week remaining"
msgstr ""
msgstr "1 Woche verbleibend"
msgid "Timeago|1 year remaining"
msgstr ""
msgstr "1 Jahr verbleibend"
msgid "Timeago|Past due"
msgstr ""
msgstr "Fällig"
msgid "Timeago|a day ago"
msgstr ""
msgstr "vor einem Tag"
msgid "Timeago|a month ago"
msgstr ""
msgstr "vor einem Monat"
msgid "Timeago|a week ago"
msgstr ""
msgstr "vor einer Woche"
msgid "Timeago|a while"
msgstr ""
msgstr "eine Weile"
msgid "Timeago|a year ago"
msgstr ""
msgstr "vor einem Jahr"
msgid "Timeago|about %s hours ago"
msgstr ""
msgstr "vor ungefähr %s Stunden"
msgid "Timeago|about a minute ago"
msgstr ""
msgstr "vor ungefähr einer Minute"
msgid "Timeago|about an hour ago"
msgstr ""
msgstr "vor ungefähr einer Stunde"
msgid "Timeago|in %s days"
msgstr ""
msgstr "in %s Tagen"
msgid "Timeago|in %s hours"
msgstr ""
msgstr "in %s Stunden"
msgid "Timeago|in %s minutes"
msgstr ""
msgstr "in %s Minuten"
msgid "Timeago|in %s months"
msgstr ""
msgstr "in %s Monaten"
msgid "Timeago|in %s seconds"
msgstr ""
msgstr "in %s Sekunden"
msgid "Timeago|in %s weeks"
msgstr ""
msgstr "in %s Wochen"
msgid "Timeago|in %s years"
msgstr ""
msgstr "in %s Jahren"
msgid "Timeago|in 1 day"
msgstr ""
msgstr "in 1 Tag"
msgid "Timeago|in 1 hour"
msgstr ""
msgstr "in 1 Stunde"
msgid "Timeago|in 1 minute"
msgstr ""
msgstr "in 1 Minute"
msgid "Timeago|in 1 month"
msgstr ""
msgstr "in 1 Monat"
msgid "Timeago|in 1 week"
msgstr ""
msgstr "in 1 Woche"
msgid "Timeago|in 1 year"
msgstr ""
msgstr "in 1 Jahr"
msgid "Timeago|less than a minute ago"
msgstr ""
msgstr "vor weniger als einer Minute"
msgid "Time|hr"
msgid_plural "Time|hrs"
msgstr[0] "h"
msgstr[1] "h"
msgstr[0] "Std."
msgstr[1] "Stdn."
msgid "Time|min"
msgid_plural "Time|mins"
msgstr[0] "min"
msgstr[1] "min"
msgstr[0] "Min."
msgstr[1] "Min."
msgid "Time|s"
msgstr "s"
msgstr "Sek."
msgid "Total Time"
msgstr "Gesamtzeit"
msgid "Total test time for all commits/merges"
msgstr "Gesamte Testlaufzeit für alle Commits/Merges"
msgstr "Gesamte Testzeit für alle Commits/Merges"
msgid "Unstar"
msgstr ""
msgstr "Entfavorisieren"
msgid "Upload New File"
msgstr ""
msgstr "Eine Neue Datei hochladen"
msgid "Upload file"
msgstr ""
msgstr "Eine Datei hochladen"
msgid "UploadLink|click to upload"
msgstr ""
msgstr "Zum Upload klicken"
msgid "Use the following registration token during setup:"
msgstr ""
msgstr "Benutze den folgenden Registrierungstoken während des Setups:"
msgid "Use your global notification setting"
msgstr ""
msgstr "Benutze Deine globalen Benachrichtigungseinstellungen"
msgid "View open merge request"
msgstr ""
msgstr "Zeige offene Merge Requests."
msgid "VisibilityLevel|Internal"
msgstr ""
msgstr "Intern"
msgid "VisibilityLevel|Private"
msgstr ""
msgstr "Privat"
msgid "VisibilityLevel|Public"
msgstr ""
msgstr "Öffentlich"
msgid "VisibilityLevel|Unknown"
msgstr ""
msgstr "Unbekannt"
msgid "Want to see the data? Please ask an administrator for access."
msgstr "Um diese Daten einsehen zu können, wenden Sie sich bitte an Ihren Administrator."
msgstr "Du möchtest diese Daten sehen? Bitte frage einen Administrator nach dem Zugang."
msgid "We don't have enough data to show this stage."
msgstr "Es liegen nicht genügend Daten vor, um diese Phase anzuzeigen."
msgid "Withdraw Access Request"
msgstr ""
msgstr "Zugriffsanfrage widerrufen"
msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?"
msgstr ""
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 ""
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 the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?"
msgstr ""
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 ""
msgstr "Du bist dabei %{project_name_with_namespace} einem andere Besitzer zu übergeben. Bist Du dir WIRKLICH sicher?"
msgid "You can only add files when you are on a branch"
msgstr ""
msgstr "Du kannst Dateien nur hinzufügen, wenn Du dich auf einem Branch befindest."
msgid "You have reached your project limit"
msgstr ""
msgstr "Du hast die Projektbegrenzung erreicht."
msgid "You must sign in to star a project"
msgstr ""
msgstr "Du musst angemeldet sein, um ein Projekt zu favorisieren."
msgid "You need permission."
msgstr "Sie benötigen Zugriffsrechte."
msgstr "Du brauchst eine Genehmigung."
msgid "You will not get any notifications via email"
msgstr ""
msgstr "Du wirst keine Benachrichtigungen per E-Mail erhalten."
msgid "You will only receive notifications for the events you choose"
msgstr ""
msgstr "Du wirst nur Benachrichtigungen für, von Dir ausgewählte, Ereignisse erhalten."
msgid "You will only receive notifications for threads you have participated in"
msgstr ""
msgstr "Du wirst nur Benachrichtigungen für Unterhaltungen, an denen Du teilgenommen hast, erhalten."
msgid "You will receive notifications for any activity"
msgstr ""
msgstr "Du wirst bei jeder Aktivität Benachrichtigungen erhalten."
msgid "You will receive notifications only for comments in which you were @mentioned"
msgstr ""
msgstr "Du wirst nur Benachrichtigungen für Kommentare erhalten, in denen du @erwähnt wurdest."
msgid "You won't be able to pull or push project code via %{protocol} until you %{set_password_link} on your account"
msgstr ""
msgstr "Du kannst erst mittels '%{protocol}' übertragen (push) oder abrufen (pull), nachdem Du für dein Konto '%{set_password_link}'."
msgid "You won't be able to pull or push project code via SSH until you %{add_ssh_key_link} to your profile"
msgstr ""
msgstr "Du kannst erst mittels SSH übertragen (push) oder abrufen (pull), nachdem Du Deinem Konto '%{add_ssh_key_link}'."
msgid "Your name"
msgstr ""
msgstr "Dein Name"
msgid "day"
msgid_plural "days"
......@@ -1276,12 +1276,13 @@ msgstr[0] "Tag"
msgstr[1] "Tage"
msgid "new merge request"
msgstr ""
msgstr "Neuer Merge Request"
msgid "notification emails"
msgstr ""
msgstr "Benachrichtungsemail"
msgid "parent"
msgid_plural "parents"
msgstr[0] ""
msgstr[1] ""
\ No newline at end of file
msgstr[0] "Vorgänger"
msgstr[1] "Vorgänger"
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 09:53-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: Esperanto\n"
"Language: eo_UY\n"
......@@ -515,15 +515,6 @@ msgstr "Ni prezentas al vi la ciklan analizon"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr "Taskoj po la lasta monato"
msgid "Jobs for last week"
msgstr "Taskoj po la lasta semajno"
msgid "Jobs for last year"
msgstr "Taskoj po la lasta jaro"
msgid "LFSStatus|Disabled"
msgstr "Malŝaltita"
......@@ -764,6 +755,15 @@ msgstr "Ĉenstabloj"
msgid "Pipelines charts"
msgstr "Ĉenstablaj diagramoj"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipelines for last week"
msgstr ""
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "ĉiuj"
......@@ -1284,4 +1284,5 @@ msgstr "sciigoj per retpoŝto"
msgid "parent"
msgid_plural "parents"
msgstr[0] "patro"
msgstr[1] "patroj"
\ No newline at end of file
msgstr[1] "patroj"
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 09:37-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
......@@ -515,15 +515,6 @@ msgstr "Introducción a Cycle Analytics"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr "Trabajos del mes pasado"
msgid "Jobs for last week"
msgstr "Trabajos de la semana pasada"
msgid "Jobs for last year"
msgstr "Trabajos del año pasado"
msgid "LFSStatus|Disabled"
msgstr "Deshabilitado"
......@@ -764,6 +755,15 @@ msgstr ""
msgid "Pipelines charts"
msgstr "Gráficos de los pipelines"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipelines for last week"
msgstr ""
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "todos"
......@@ -1284,4 +1284,5 @@ msgstr "correos electrónicos de notificación"
msgid "parent"
msgid_plural "parents"
msgstr[0] "padre"
msgstr[1] "padres"
\ No newline at end of file
msgstr[1] "padres"
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 09:53-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: French\n"
"Language: fr_FR\n"
......@@ -515,15 +515,6 @@ msgstr "Introduction à l'analyseur de cycle"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr "Tâches pour le mois dernier"
msgid "Jobs for last week"
msgstr "Tâches pour la semaine dernière"
msgid "Jobs for last year"
msgstr "Tâches pour l'année dernière"
msgid "LFSStatus|Disabled"
msgstr "Désactivé"
......@@ -764,6 +755,15 @@ msgstr ""
msgid "Pipelines charts"
msgstr "Graphique des pipelines"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipelines for last week"
msgstr ""
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "Tous"
......@@ -1284,4 +1284,5 @@ msgstr "courriels de notification"
msgid "parent"
msgid_plural "parents"
msgstr[0] ""
msgstr[1] ""
\ No newline at end of file
msgstr[1] ""
......@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab 1.0.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-08-24 09:29+0200\n"
"POT-Creation-Date: 2017-09-06 08:32+0200\n"
"PO-Revision-Date: 2017-09-06 08:32+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
......@@ -59,9 +59,18 @@ msgstr ""
msgid "About auto deploy"
msgstr ""
msgid "Abuse Reports"
msgstr ""
msgid "Access Tokens"
msgstr ""
msgid "Access to failing storages has been temporarily disabled to allow the mount to recover. Reset storage information after the issue has been resolved to allow access again."
msgstr ""
msgid "Account"
msgstr ""
msgid "Active"
msgstr ""
......@@ -86,6 +95,12 @@ msgstr ""
msgid "All"
msgstr ""
msgid "Appearances"
msgstr ""
msgid "Applications"
msgstr ""
msgid "Archived project! Repository is read-only"
msgstr ""
......@@ -107,6 +122,63 @@ msgstr ""
msgid "Attach a file by drag &amp; drop or %{upload_link}"
msgstr ""
msgid "Authentication log"
msgstr ""
msgid "Billing"
msgstr ""
msgid "BillingPlans|%{group_name} is currently on the %{plan_link} plan."
msgstr ""
msgid "BillingPlans|Automatic downgrade and upgrade to some plans is currently not available."
msgstr ""
msgid "BillingPlans|Current plan"
msgstr ""
msgid "BillingPlans|Customer Support"
msgstr ""
msgid "BillingPlans|Learn more about each plan by reading our %{faq_link}."
msgstr ""
msgid "BillingPlans|Manage plan"
msgstr ""
msgid "BillingPlans|Please contact %{customer_support_link} in that case."
msgstr ""
msgid "BillingPlans|See all %{plan_name} features"
msgstr ""
msgid "BillingPlans|This group uses the plan associated with its parent group."
msgstr ""
msgid "BillingPlans|To manage the plan for this group, visit the billing section of %{parent_billing_page_link}."
msgstr ""
msgid "BillingPlans|Upgrade"
msgstr ""
msgid "BillingPlans|You are currently on the %{plan_link} plan."
msgstr ""
msgid "BillingPlans|frequently asked questions"
msgstr ""
msgid "BillingPlans|monthly"
msgstr ""
msgid "BillingPlans|paid annually at %{price_per_year}"
msgstr ""
msgid "BillingPlans|per user"
msgstr ""
msgid "Billinglans|Downgrade"
msgstr ""
msgid "Branch"
msgid_plural "Branches"
msgstr[0] ""
......@@ -139,6 +211,9 @@ msgstr ""
msgid "ByAuthor|by"
msgstr ""
msgid "CI / CD"
msgstr ""
msgid "CI configuration"
msgstr ""
......@@ -166,6 +241,9 @@ msgstr ""
msgid "Charts"
msgstr ""
msgid "Chat"
msgstr ""
msgid "Cherry-pick this commit"
msgstr ""
......@@ -261,12 +339,18 @@ msgstr ""
msgid "Compare"
msgstr ""
msgid "Container Registry"
msgstr ""
msgid "Contribution guide"
msgstr ""
msgid "Contributors"
msgstr ""
msgid "Copy SSH public key to clipboard"
msgstr ""
msgid "Copy URL to clipboard"
msgstr ""
......@@ -353,6 +437,9 @@ msgid_plural "Deploys"
msgstr[0] ""
msgstr[1] ""
msgid "Deploy Keys"
msgstr ""
msgid "Description"
msgstr ""
......@@ -401,6 +488,9 @@ msgstr ""
msgid "Edit Pipeline Schedule %{id}"
msgstr ""
msgid "Emails"
msgstr ""
msgid "EventFilterBy|Filter by all"
msgstr ""
......@@ -466,6 +556,12 @@ msgstr ""
msgid "From merge request merge until deploy to production"
msgstr ""
msgid "GPG Keys"
msgstr ""
msgid "Geo Nodes"
msgstr ""
msgid "Git storage health information has been reset"
msgstr ""
......@@ -478,6 +574,9 @@ msgstr ""
msgid "GoToYourFork|Fork"
msgstr ""
msgid "Group overview"
msgstr ""
msgid "Health Check"
msgstr ""
......@@ -499,6 +598,9 @@ msgstr ""
msgid "Home"
msgstr ""
msgid "Hooks"
msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
......@@ -517,12 +619,18 @@ msgstr ""
msgid "Issue events"
msgstr ""
msgid "Issues"
msgstr ""
msgid "LFSStatus|Disabled"
msgstr ""
msgid "LFSStatus|Enabled"
msgstr ""
msgid "Labels"
msgstr ""
msgid "Last %d day"
msgid_plural "Last %d days"
msgstr[0] ""
......@@ -555,20 +663,38 @@ msgstr ""
msgid "Leave project"
msgstr ""
msgid "License"
msgstr ""
msgid "Limited to showing %d event at most"
msgid_plural "Limited to showing %d events at most"
msgstr[0] ""
msgstr[1] ""
msgid "Locked Files"
msgstr ""
msgid "Median"
msgstr ""
msgid "Members"
msgstr ""
msgid "Merge Requests"
msgstr ""
msgid "Merge events"
msgstr ""
msgid "Messages"
msgstr ""
msgid "MissingSSHKeyWarningLink|add an SSH key"
msgstr ""
msgid "Monitoring"
msgstr ""
msgid "More information is available|here"
msgstr ""
......@@ -670,6 +796,9 @@ msgstr ""
msgid "NotificationLevel|Watch"
msgstr ""
msgid "Notifications"
msgstr ""
msgid "OfSearchInADropdown|Filter"
msgstr ""
......@@ -679,9 +808,15 @@ msgstr ""
msgid "Options"
msgstr ""
msgid "Overview"
msgstr ""
msgid "Owner"
msgstr ""
msgid "Password"
msgstr ""
msgid "Pipeline"
msgstr ""
......@@ -694,6 +829,9 @@ msgstr ""
msgid "Pipeline Schedules"
msgstr ""
msgid "Pipeline quota"
msgstr ""
msgid "PipelineCharts|Failed:"
msgstr ""
......@@ -778,6 +916,12 @@ msgstr ""
msgid "Pipeline|with stages"
msgstr ""
msgid "Preferences"
msgstr ""
msgid "Profile Settings"
msgstr ""
msgid "Project"
msgstr ""
......@@ -814,6 +958,9 @@ msgstr ""
msgid "Project home"
msgstr ""
msgid "Project overview"
msgstr ""
msgid "ProjectActivityRSS|Subscribe"
msgstr ""
......@@ -838,6 +985,9 @@ msgstr ""
msgid "ProjectNetworkGraph|Graph"
msgstr ""
msgid "Push Rules"
msgstr ""
msgid "Push events"
msgstr ""
......@@ -898,6 +1048,9 @@ msgstr ""
msgid "Revert this merge request"
msgstr ""
msgid "SSH Keys"
msgstr ""
msgid "Save pipeline schedule"
msgstr ""
......@@ -922,6 +1075,9 @@ msgstr ""
msgid "Select target branch"
msgstr ""
msgid "Service Templates"
msgstr ""
msgid "Set a password on your account to pull or push via %{protocol}."
msgstr ""
......@@ -937,14 +1093,23 @@ msgstr ""
msgid "SetPasswordToCloneLink|set a password"
msgstr ""
msgid "Settings"
msgstr ""
msgid "Showing %d event"
msgid_plural "Showing %d events"
msgstr[0] ""
msgstr[1] ""
msgid "Snippets"
msgstr ""
msgid "Source code"
msgstr ""
msgid "Spam Logs"
msgstr ""
msgid "Specify the following URL during the Runner setup:"
msgstr ""
......@@ -1221,6 +1386,9 @@ msgstr ""
msgid "We don't have enough data to show this stage."
msgstr ""
msgid "Wiki"
msgstr ""
msgid "Withdraw Access Request"
msgstr ""
......
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 10:25-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: Italian\n"
"Language: it_IT\n"
......@@ -515,15 +515,6 @@ msgstr "Introduzione delle Analisi Cicliche"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr "Jobs dell'ultimo mese"
msgid "Jobs for last week"
msgstr "Jobs dell'ultima settimana"
msgid "Jobs for last year"
msgstr "Jobs dell'ultimo anno"
msgid "LFSStatus|Disabled"
msgstr "Disabilitato"
......@@ -764,6 +755,15 @@ msgstr "Pipeline"
msgid "Pipelines charts"
msgstr "Grafici pipeline"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipelines for last week"
msgstr ""
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "tutto"
......@@ -1284,4 +1284,5 @@ msgstr "Notifiche via email"
msgid "parent"
msgid_plural "parents"
msgstr[0] ""
msgstr[1] ""
\ No newline at end of file
msgstr[1] ""
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 10:14-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
......@@ -45,7 +45,7 @@ msgstr ""
msgid "1 pipeline"
msgid_plural "%d pipelines"
msgstr[0] "1 個のパイプライン"
msgstr[0] "%d 個のパイプライン"
msgid "A collection of graphs regarding Continuous Integration"
msgstr "CIについてのグラフ"
......@@ -507,15 +507,6 @@ msgstr "サイクル分析のご紹介"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr "先月のジョブ"
msgid "Jobs for last week"
msgstr "先週のジョブ"
msgid "Jobs for last year"
msgstr "昨年のジョブ"
msgid "LFSStatus|Disabled"
msgstr "無効"
......@@ -753,6 +744,15 @@ msgstr "パイプライン"
msgid "Pipelines charts"
msgstr "パイプラインチャート"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipelines for last week"
msgstr ""
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "全件"
......@@ -1267,4 +1267,5 @@ msgstr "メール通知"
msgid "parent"
msgid_plural "parents"
msgstr[0] "親"
\ No newline at end of file
msgstr[0] "親"
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 10:05-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
......@@ -28,24 +28,24 @@ msgid "%{commit_author_link} committed %{commit_timeago}"
msgstr "%{commit_timeago} 에 %{commit_author_link} 님이 커밋하였습니다. "
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will allow access on the next attempt."
msgstr ""
msgstr "%{number_of_failures} / %{maximum_failures} 실패. GitLab 은 다음 시도에서 성공하면 접근을 허용할 것입니다."
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will block access for %{number_of_seconds} seconds."
msgstr ""
msgstr "%{number_of_failures} / %{maximum_failures} 실패. GitLab 은 %{number_of_seconds} 초 간 접근을 제한하겠습니다."
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will not retry automatically. Reset storage information when the problem is resolved."
msgstr ""
msgstr "%{number_of_failures} / %{maximum_failures} 실패. GitLab 은 자동으로 다시 시도하지 않습니다. 문제가 해결되면 저장 공간 정보를 초기화 해주세요. "
msgid "%{storage_name}: failed storage access attempt on host:"
msgid_plural "%{storage_name}: %{failed_attempts} failed storage access attempts:"
msgstr[0] ""
msgstr[0] "%{storage_name}: 다음 호스트의 storage 접근에 실패:"
msgid "(checkout the %{link} for information on how to install it)."
msgstr ""
msgstr "설치 방법에 대한 정보를 얻기 위해 %{link} 를 체크아웃하세요."
msgid "1 pipeline"
msgid_plural "%d pipelines"
msgstr[0] "1 파이프라인"
msgstr[0] "%d 파이프라인"
msgid "A collection of graphs regarding Continuous Integration"
msgstr "지속적인 통합에 관한 그래프 모음"
......@@ -54,7 +54,7 @@ msgid "About auto deploy"
msgstr "자동 배포 정보"
msgid "Access to failing storages has been temporarily disabled to allow the mount to recover. Reset storage information after the issue has been resolved to allow access again."
msgstr ""
msgstr "오동작중인 저장공간에 대한 접근이 복구 작업을 위해 마운트할 수 있도록 임시로 허용되었습니다. 문제가 해결된 후 다시 접근을 허용할 수 있게 저장공간 정보를 리셋 해주세요."
msgid "Active"
msgstr "활성"
......@@ -78,7 +78,7 @@ msgid "Add new directory"
msgstr "새 디렉토리 추가"
msgid "All"
msgstr ""
msgstr "전체"
msgid "Archived project! Repository is read-only"
msgstr "프로젝트가 보관되었습니다! 저장소는 읽기만 가능합니다."
......@@ -87,16 +87,16 @@ msgid "Are you sure you want to delete this pipeline schedule?"
msgstr "이 파이프라인 스케쥴을 삭제 하시겠습니까?"
msgid "Are you sure you want to discard your changes?"
msgstr ""
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?"
msgstr ""
msgstr "확실합니까?"
msgid "Attach a file by drag &amp; drop or %{upload_link}"
msgstr "드래그 &amp; 드롭 또는 %{upload_link}"
......@@ -269,7 +269,7 @@ msgid "Create New Directory"
msgstr "새 디렉토리 만들기"
msgid "Create a new branch"
msgstr ""
msgstr "새 브랜치 생성"
msgid "Create a personal access token on your account to pull or push via %{protocol}."
msgstr "%{protocol}을 (를) 통해 Pull 하거나 Push 할 개인 액세스 토큰을 만드십시오."
......@@ -348,13 +348,13 @@ msgid "Description"
msgstr "설명"
msgid "Details"
msgstr ""
msgstr "상세"
msgid "Directory name"
msgstr "디렉토리 이름"
msgid "Discard changes"
msgstr ""
msgstr "변경 내용 취소"
msgid "Don't show again"
msgstr "다시 표시하지 않음"
......@@ -393,22 +393,22 @@ msgid "Edit Pipeline Schedule %{id}"
msgstr "파이프라인 스케줄 편집 %{id}"
msgid "EventFilterBy|Filter by all"
msgstr ""
msgstr "모든 값을 기준으로 필터"
msgid "EventFilterBy|Filter by comments"
msgstr ""
msgstr "댓글 기준으로 필터"
msgid "EventFilterBy|Filter by issue events"
msgstr ""
msgstr "이슈 이벤트 기준으로 필터"
msgid "EventFilterBy|Filter by merge events"
msgstr ""
msgstr "머지 이벤트 기준으로 필터"
msgid "EventFilterBy|Filter by push events"
msgstr ""
msgstr "푸쉬 이벤트 기준으로 필터"
msgid "EventFilterBy|Filter by team"
msgstr ""
msgstr "팀 기준으로 필터"
msgid "Every day (at 4:00am)"
msgstr "매일 (오전 4시에)"
......@@ -457,10 +457,10 @@ msgid "From merge request merge until deploy to production"
msgstr "머지 리퀘스트 머지에서 프로덕션 환경에 배포까지"
msgid "Git storage health information has been reset"
msgstr ""
msgstr "git storage 상태 정보가 초기화되었습니다."
msgid "GitLab Runner section"
msgstr ""
msgstr "GitLab Runner 섹션"
msgid "Go to your fork"
msgstr "당신의 포크로 이동하세요"
......@@ -469,22 +469,23 @@ msgid "GoToYourFork|Fork"
msgstr "포크"
msgid "Health Check"
msgstr ""
msgstr "헬스 체크"
msgid "Health information can be retrieved from the following endpoints. More information is available"
msgstr ""
msgstr "헬스 정보는 다음의 경로를 통해 조회할 수 있습니다.\n"
"더 많은 정보를 이용할 수 있습니다."
msgid "HealthCheck|Access token is"
msgstr ""
msgstr "엑세스 토큰: "
msgid "HealthCheck|Healthy"
msgstr ""
msgstr "건강도"
msgid "HealthCheck|No Health Problems Detected"
msgstr ""
msgstr " 헬스 문제가 발견되지 않았습니다."
msgid "HealthCheck|Unhealthy"
msgstr ""
msgstr "비정상"
msgid "Home"
msgstr "홈"
......@@ -496,7 +497,7 @@ msgid "Import repository"
msgstr "저장소 가져 오기"
msgid "Install a Runner compatible with GitLab CI"
msgstr ""
msgstr "GitLab CI 와 호환되는 Runner 설치"
msgid "Interval Pattern"
msgstr "주기 패턴"
......@@ -505,16 +506,7 @@ msgid "Introducing Cycle Analytics"
msgstr "Cycle Analytics 소개"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr "지난달 Jobs"
msgid "Jobs for last week"
msgstr "지난주 Jobs"
msgid "Jobs for last year"
msgstr "지난해 Jobs"
msgstr "이슈 이벤트"
msgid "LFSStatus|Disabled"
msgstr "Disabled"
......@@ -530,16 +522,16 @@ msgid "Last Pipeline"
msgstr "최근 파이프라인"
msgid "Last Update"
msgstr "최근 업데이트:"
msgstr "최근 업데이트"
msgid "Last commit"
msgstr "최근 커밋"
msgid "LastPushEvent|You pushed to"
msgstr ""
msgstr "푸쉬: "
msgid "LastPushEvent|at"
msgstr ""
msgstr "at"
msgid "Learn more in the"
msgstr "더 자세히 알아보기"
......@@ -561,13 +553,13 @@ msgid "Median"
msgstr "중앙값"
msgid "Merge events"
msgstr ""
msgstr "머지 이벤트"
msgid "MissingSSHKeyWarningLink|add an SSH key"
msgstr "SSH 키 추가"
msgid "More information is available|here"
msgstr ""
msgstr "여기"
msgid "New Issue"
msgid_plural "New Issues"
......@@ -649,7 +641,7 @@ msgid "NotificationEvent|Successful pipeline"
msgstr "성공적인 파이프라인"
msgid "NotificationLevel|Custom"
msgstr "커스텀"
msgstr "사용자 정의"
msgid "NotificationLevel|Disabled"
msgstr "사용 안 함"
......@@ -753,6 +745,15 @@ msgstr "파이프라인"
msgid "Pipelines charts"
msgstr "파이프라인 차트"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipelines for last week"
msgstr ""
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "모두"
......@@ -784,7 +785,7 @@ msgid "Project access must be granted explicitly to each user."
msgstr "프로젝트 액세스는 각 사용자에게 명시적으로 부여되어야합니다."
msgid "Project details"
msgstr ""
msgstr "프로젝트 상세"
msgid "Project export could not be deleted."
msgstr "프로젝트 내보내기를 삭제할 수 없습니다."
......@@ -802,7 +803,7 @@ msgid "Project home"
msgstr "프로젝트 홈"
msgid "ProjectActivityRSS|Subscribe"
msgstr ""
msgstr "구독"
msgid "ProjectFeature|Disabled"
msgstr "사용 안 함"
......@@ -826,7 +827,7 @@ msgid "ProjectNetworkGraph|Graph"
msgstr "그래프"
msgid "Push events"
msgstr ""
msgstr "푸쉬 이벤트"
msgid "Read more"
msgstr "더 읽기"
......@@ -871,13 +872,13 @@ msgid "Request Access"
msgstr "액세스 요청"
msgid "Reset git storage health information"
msgstr ""
msgstr "git storage 헬스 정보 초기화"
msgid "Reset health check access token"
msgstr ""
msgstr "헬스 체크 접근 토큰 초기화"
msgid "Reset runners registration token"
msgstr ""
msgstr "runner 등록 토큰 초기화"
msgid "Revert this commit"
msgstr "이 커밋 되돌리기"
......@@ -932,7 +933,7 @@ msgid "Source code"
msgstr "소스 코드"
msgid "Specify the following URL during the Runner setup:"
msgstr ""
msgstr "Runner 설정 중 다음 URL을 지정하세요."
msgid "StarProject|Star"
msgstr "별표"
......@@ -941,7 +942,7 @@ msgid "Start a %{new_merge_request} with these changes"
msgstr "이 변경 사항으로 %{new_merge_request} 을 시작하십시오."
msgid "Start the Runner!"
msgstr ""
msgstr "Runner 시작!"
msgid "Switch branch/tag"
msgstr "스위치 브랜치/태그"
......@@ -1008,7 +1009,7 @@ 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 problems accessing Git storage: "
msgstr ""
msgstr "git storage에 접근하는데 문제가 발생했습니다. "
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "즉, 빈 저장소를 만들거나 기존 저장소를 가져올 때까지 코드를 Push 할 수 없습니다."
......@@ -1178,7 +1179,7 @@ msgid "UploadLink|click to upload"
msgstr "업로드하려면 클릭하십시오."
msgid "Use the following registration token during setup:"
msgstr ""
msgstr "설정 중에 다음 등록 토큰 이용 : "
msgid "Use your global notification setting"
msgstr "전체 알림 설정 사용"
......@@ -1208,10 +1209,10 @@ msgid "Withdraw Access Request"
msgstr "액세스 요청 철회"
msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?"
msgstr "%{group_name} 그룹을 제거하려고합니다. \"정말로\" 확실합니까?"
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} 프로젝트를 삭제하려고합니다. 삭제된 프로젝트를 복원 할 수 없습니다! \"정말로\" 확실합니까?"
msgstr "%{project_name_with_namespace} 프로젝트를 삭제하려고합니다. \"삭제된 프로젝트를 복원 할 수 없습니다! \\\"정말로\\\" 확실합니까?"
msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?"
msgstr "포크 관계를 소스 프로젝트 %{forked_from_project}에 대해 제거하려고합니다. \"정말로\" 확실합니까?"
......@@ -1267,4 +1268,5 @@ msgstr "알림 이메일"
msgid "parent"
msgid_plural "parents"
msgstr[0] "부모"
\ No newline at end of file
msgstr[0] "부모"
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 10:14-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
......@@ -515,15 +515,6 @@ msgstr "Apresentando a Análise de Ciclo"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr "Jobs no último mês"
msgid "Jobs for last week"
msgstr "Jobs na última semana"
msgid "Jobs for last year"
msgstr "Jobs no último ano"
msgid "LFSStatus|Disabled"
msgstr "Desabilitado"
......@@ -764,6 +755,15 @@ msgstr ""
msgid "Pipelines charts"
msgstr "Gráficos de pipelines"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipelines for last week"
msgstr ""
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "todos"
......@@ -1284,4 +1284,5 @@ msgstr "emails de notificação"
msgid "parent"
msgid_plural "parents"
msgstr[0] "pai"
msgstr[1] "pais"
\ No newline at end of file
msgstr[1] "pais"
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 09:41-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
......@@ -95,7 +95,7 @@ msgid "Are you sure you want to delete this pipeline schedule?"
msgstr "Вы действительно хотите удалить это расписание конвейера?"
msgid "Are you sure you want to discard your changes?"
msgstr ""
msgstr "Вы уверены, что Вы хотите отменить Ваши изменения?"
msgid "Are you sure you want to reset registration token?"
msgstr ""
......@@ -104,7 +104,7 @@ msgid "Are you sure you want to reset the health check token?"
msgstr ""
msgid "Are you sure?"
msgstr ""
msgstr "Вы уверены?"
msgid "Attach a file by drag &amp; drop or %{upload_link}"
msgstr "Приложить файл через drag &amp; drop или %{upload_link}"
......@@ -149,7 +149,7 @@ msgid "Cancel"
msgstr "Отмена"
msgid "Cancel edit"
msgstr ""
msgstr "Отменить редактирование"
msgid "ChangeTypeActionLabel|Pick into branch"
msgstr "Выбрать в ветке"
......@@ -230,7 +230,7 @@ msgid "CiStatus|running"
msgstr "выполняется"
msgid "Comments"
msgstr ""
msgstr "Комментарии"
msgid "Commit"
msgid_plural "Commits"
......@@ -281,7 +281,7 @@ msgid "Create New Directory"
msgstr "Создать директорию"
msgid "Create a new branch"
msgstr ""
msgstr "Создать новую ветку"
msgid "Create a personal access token on your account to pull or push via %{protocol}."
msgstr "Создать личный токен на аккаунте для получения или отправки через %{protocol}."
......@@ -368,7 +368,7 @@ msgid "Directory name"
msgstr "Каталог"
msgid "Discard changes"
msgstr ""
msgstr "Отменить изменения"
msgid "Don't show again"
msgstr "Не показывать снова"
......@@ -476,7 +476,7 @@ msgid "Git storage health information has been reset"
msgstr ""
msgid "GitLab Runner section"
msgstr ""
msgstr "Секция Gitlab Runner"
msgid "Go to your fork"
msgstr "Перейти к вашему форку"
......@@ -512,7 +512,7 @@ msgid "Import repository"
msgstr "Импорт репозитория"
msgid "Install a Runner compatible with GitLab CI"
msgstr ""
msgstr "Установите Gitlab Runner совместимый с Gitlab CI"
msgid "Interval Pattern"
msgstr "Шаблон интервала"
......@@ -523,15 +523,6 @@ msgstr "Внедрение Цикла Аналитик"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr "Работы за прошлый месяц"
msgid "Jobs for last week"
msgstr "Работы за прошлую неделю"
msgid "Jobs for last year"
msgstr "Работы за прошлый год"
msgid "LFSStatus|Disabled"
msgstr "Отключено"
......@@ -775,6 +766,15 @@ msgstr "Конвейер"
msgid "Pipelines charts"
msgstr "Диаграмма конвейера"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipelines for last week"
msgstr ""
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "все"
......@@ -1301,4 +1301,5 @@ msgid "parent"
msgid_plural "parents"
msgstr[0] "источник"
msgstr[1] "источники"
msgstr[2] "источники"
\ No newline at end of file
msgstr[2] "источники"
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 09:49-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: Ukrainian\n"
"Language: uk_UA\n"
......@@ -523,15 +523,6 @@ msgstr "Представляємо аналітику циклу"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr "Кількість завдань за останній місяць"
msgid "Jobs for last week"
msgstr "Кількість завдань за останній тиждень"
msgid "Jobs for last year"
msgstr "Кількість завдань за останній рік"
msgid "LFSStatus|Disabled"
msgstr "Вимкнено"
......@@ -775,6 +766,15 @@ msgstr "Конвеєри"
msgid "Pipelines charts"
msgstr "Чарти Конвеєрів"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipelines for last week"
msgstr ""
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "всі"
......@@ -1301,4 +1301,5 @@ msgid "parent"
msgid_plural "parents"
msgstr[0] "джерело"
msgstr[1] "джерела"
msgstr[2] "джерел"
\ No newline at end of file
msgstr[2] "джерел"
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 09:59-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
......@@ -28,24 +28,24 @@ msgid "%{commit_author_link} committed %{commit_timeago}"
msgstr "由 %{commit_author_link} 提交于 %{commit_timeago}"
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will allow access on the next attempt."
msgstr ""
msgstr "已失败 %{number_of_failures} 次/最多允许失败失败 %{maximum_failures} 次,GitLab 将继续重试。"
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will block access for %{number_of_seconds} seconds."
msgstr ""
msgstr "已失败 %{number_of_failures} 次/最多允许失败 %{maximum_failures} 次,GitLab 将在 %{number_of_seconds} 秒后重试。"
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will not retry automatically. Reset storage information when the problem is resolved."
msgstr ""
msgstr "已失败 %{number_of_failures} 次/最多允许失败 %{maximum_failures} 次,GitLab 不会继续自动重试。请在问题解决后重置存储健康信息。"
msgid "%{storage_name}: failed storage access attempt on host:"
msgid_plural "%{storage_name}: %{failed_attempts} failed storage access attempts:"
msgstr[0] ""
msgstr[0] "%{storage_name}:已 %{failed_attempts} 次尝试访问存储失败:"
msgid "(checkout the %{link} for information on how to install it)."
msgstr ""
msgstr "(如需了解更多的安装信息,请查看 %{link})"
msgid "1 pipeline"
msgid_plural "%d pipelines"
msgstr[0] "1 条流水线"
msgstr[0] "%d 条流水线"
msgid "A collection of graphs regarding Continuous Integration"
msgstr "持续集成数据图"
......@@ -54,7 +54,7 @@ msgid "About auto deploy"
msgstr "关于自动部署"
msgid "Access to failing storages has been temporarily disabled to allow the mount to recover. Reset storage information after the issue has been resolved to allow access again."
msgstr ""
msgstr "为方便修复挂载问题,访问故障存储已被暂时禁用。在问题解决后请重置存储健康信息,以允许再次访问。"
msgid "Active"
msgstr "启用"
......@@ -78,7 +78,7 @@ msgid "Add new directory"
msgstr "添加目录"
msgid "All"
msgstr ""
msgstr "全部"
msgid "Archived project! Repository is read-only"
msgstr "项目已归档!存储库为只读状态"
......@@ -87,16 +87,16 @@ msgid "Are you sure you want to delete this pipeline schedule?"
msgstr "确定要删除此流水线计划吗?"
msgid "Are you sure you want to discard your changes?"
msgstr ""
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?"
msgstr ""
msgstr "确定吗?"
msgid "Attach a file by drag &amp; drop or %{upload_link}"
msgstr "拖放文件到此处或者 %{upload_link}"
......@@ -139,7 +139,7 @@ msgid "Cancel"
msgstr "取消"
msgid "Cancel edit"
msgstr ""
msgstr "取消编辑"
msgid "ChangeTypeActionLabel|Pick into branch"
msgstr "选择分支"
......@@ -220,7 +220,7 @@ msgid "CiStatus|running"
msgstr "运行中"
msgid "Comments"
msgstr ""
msgstr "评论"
msgid "Commit"
msgid_plural "Commits"
......@@ -269,7 +269,7 @@ msgid "Create New Directory"
msgstr "创建新目录"
msgid "Create a new branch"
msgstr ""
msgstr "创建一个新分支"
msgid "Create a personal access token on your account to pull or push via %{protocol}."
msgstr "在帐户上创建个人访问令牌,以通过 %{protocol} 来拉取或推送。"
......@@ -348,13 +348,13 @@ msgid "Description"
msgstr "描述"
msgid "Details"
msgstr ""
msgstr "详情"
msgid "Directory name"
msgstr "目录名称"
msgid "Discard changes"
msgstr ""
msgstr "放弃更改"
msgid "Don't show again"
msgstr "不再显示"
......@@ -393,22 +393,22 @@ msgid "Edit Pipeline Schedule %{id}"
msgstr "编辑 %{id} 流水线计划"
msgid "EventFilterBy|Filter by all"
msgstr ""
msgstr "全部"
msgid "EventFilterBy|Filter by comments"
msgstr ""
msgstr "只显示评论事件"
msgid "EventFilterBy|Filter by issue events"
msgstr ""
msgstr "只显示议题事件"
msgid "EventFilterBy|Filter by merge events"
msgstr ""
msgstr "只显示合并事件"
msgid "EventFilterBy|Filter by push events"
msgstr ""
msgstr "只显示推送事件"
msgid "EventFilterBy|Filter by team"
msgstr ""
msgstr "只显示团队事件"
msgid "Every day (at 4:00am)"
msgstr "每日执行(凌晨 4 点)"
......@@ -457,10 +457,10 @@ msgid "From merge request merge until deploy to production"
msgstr "从合并请求被合并后到部署至生产环境"
msgid "Git storage health information has been reset"
msgstr ""
msgstr "Git 存储健康信息已重置"
msgid "GitLab Runner section"
msgstr ""
msgstr "GitLab Runner"
msgid "Go to your fork"
msgstr "跳转到派生项目"
......@@ -469,22 +469,22 @@ msgid "GoToYourFork|Fork"
msgstr "跳转到派生项目"
msgid "Health Check"
msgstr ""
msgstr "健康检查"
msgid "Health information can be retrieved from the following endpoints. More information is available"
msgstr ""
msgstr "健康信息可以从以下API路径获取。如需了解更多信息,请查看"
msgid "HealthCheck|Access token is"
msgstr ""
msgstr "访问令牌是"
msgid "HealthCheck|Healthy"
msgstr ""
msgstr "健康"
msgid "HealthCheck|No Health Problems Detected"
msgstr ""
msgstr "没有检测到健康问题"
msgid "HealthCheck|Unhealthy"
msgstr ""
msgstr "非健康"
msgid "Home"
msgstr "首页"
......@@ -496,7 +496,7 @@ msgid "Import repository"
msgstr "导入存储库"
msgid "Install a Runner compatible with GitLab CI"
msgstr ""
msgstr "安装一个与 GitLab CI 兼容的 Runner"
msgid "Interval Pattern"
msgstr "循环周期"
......@@ -505,16 +505,7 @@ msgid "Introducing Cycle Analytics"
msgstr "周期分析简介"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr "上个月的作业"
msgid "Jobs for last week"
msgstr "上个星期的作业"
msgid "Jobs for last year"
msgstr "去年的作业"
msgstr "议题事件"
msgid "LFSStatus|Disabled"
msgstr "停用"
......@@ -536,10 +527,10 @@ msgid "Last commit"
msgstr "最后提交"
msgid "LastPushEvent|You pushed to"
msgstr ""
msgstr "您推送了"
msgid "LastPushEvent|at"
msgstr ""
msgstr ""
msgid "Learn more in the"
msgstr "了解更多"
......@@ -561,13 +552,13 @@ msgid "Median"
msgstr "中位数"
msgid "Merge events"
msgstr ""
msgstr "合并事件"
msgid "MissingSSHKeyWarningLink|add an SSH key"
msgstr "新建 SSH 公钥"
msgid "More information is available|here"
msgstr ""
msgstr "帮助文档"
msgid "New Issue"
msgid_plural "New Issues"
......@@ -753,6 +744,15 @@ msgstr "流水线"
msgid "Pipelines charts"
msgstr "流水线统计图"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipelines for last week"
msgstr ""
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "所有"
......@@ -766,7 +766,7 @@ msgid "Pipeline|with stages"
msgstr "于阶段"
msgid "Project"
msgstr ""
msgstr "项目"
msgid "Project '%{project_name}' queued for deletion."
msgstr "项目 '%{project_name}' 已进入删除队列。"
......@@ -784,7 +784,7 @@ msgid "Project access must be granted explicitly to each user."
msgstr "项目访问权限必须明确授权给每个用户。"
msgid "Project details"
msgstr ""
msgstr "项目详情"
msgid "Project export could not be deleted."
msgstr "无法删除项目导出。"
......@@ -802,7 +802,7 @@ msgid "Project home"
msgstr "项目首页"
msgid "ProjectActivityRSS|Subscribe"
msgstr ""
msgstr "订阅"
msgid "ProjectFeature|Disabled"
msgstr "停用"
......@@ -826,7 +826,7 @@ msgid "ProjectNetworkGraph|Graph"
msgstr "分支图"
msgid "Push events"
msgstr ""
msgstr "推送事件"
msgid "Read more"
msgstr "了解更多"
......@@ -865,19 +865,19 @@ msgid "Remove project"
msgstr "删除项目"
msgid "Repository"
msgstr ""
msgstr "存储库"
msgid "Request Access"
msgstr "申请权限"
msgid "Reset git storage health information"
msgstr ""
msgstr "重置 Git 存储的健康信息"
msgid "Reset health check access token"
msgstr ""
msgstr "重置健康检查访问令牌"
msgid "Reset runners registration token"
msgstr ""
msgstr "重置 Runner 注册令牌"
msgid "Revert this commit"
msgstr "还原此提交"
......@@ -904,7 +904,7 @@ msgid "Select a timezone"
msgstr "选择时区"
msgid "Select existing branch"
msgstr ""
msgstr "选择现有分支"
msgid "Select target branch"
msgstr "选择目标分支"
......@@ -932,7 +932,7 @@ msgid "Source code"
msgstr "源代码"
msgid "Specify the following URL during the Runner setup:"
msgstr ""
msgstr "在 Runner 设置时指定以下 URL:"
msgid "StarProject|Star"
msgstr "星标"
......@@ -941,7 +941,7 @@ msgid "Start a %{new_merge_request} with these changes"
msgstr "由此更改 %{new_merge_request}"
msgid "Start the Runner!"
msgstr ""
msgstr "启动 Runner!"
msgid "Switch branch/tag"
msgstr "切换分支/标签"
......@@ -957,7 +957,7 @@ msgid "Target Branch"
msgstr "目标分支"
msgid "Team"
msgstr ""
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 "编码阶段概述了从第一次提交到创建合并请求的时间。创建第一个合并请求后,数据将自动添加到此处。"
......@@ -1008,7 +1008,7 @@ 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 problems accessing Git storage: "
msgstr ""
msgstr "访问 Git 存储时出现问题:"
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "在创建一个空的存储库或导入现有存储库之前,将无法推送代码。"
......@@ -1178,7 +1178,7 @@ msgid "UploadLink|click to upload"
msgstr "点击上传"
msgid "Use the following registration token during setup:"
msgstr ""
msgstr "在安装过程中使用以下注册令牌:"
msgid "Use your global notification setting"
msgstr "使用全局通知设置"
......@@ -1267,4 +1267,5 @@ msgstr "通知邮件"
msgid "parent"
msgid_plural "parents"
msgstr[0] "父级"
\ No newline at end of file
msgstr[0] "父级"
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 09:59-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: Chinese Traditional, Hong Kong\n"
"Language: zh_HK\n"
......@@ -28,24 +28,24 @@ msgid "%{commit_author_link} committed %{commit_timeago}"
msgstr "由 %{commit_author_link} 提交於 %{commit_timeago}"
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will allow access on the next attempt."
msgstr ""
msgstr "已失敗 %{number_of_failures} 次,最大失敗 %{maximum_failures} 次,GitLab 將重試。"
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will block access for %{number_of_seconds} seconds."
msgstr ""
msgstr "已失敗 %{number_of_failures} 次,最大失敗 %{maximum_failures} 次,GitLab 將在 %{number_of_seconds} 秒後重試。"
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will not retry automatically. Reset storage information when the problem is resolved."
msgstr ""
msgstr "已失敗 %{number_of_failures} 次,最大失敗 %{maximum_failures} 次,GitLab不會重試。當問題解決時重置存儲信息。"
msgid "%{storage_name}: failed storage access attempt on host:"
msgid_plural "%{storage_name}: %{failed_attempts} failed storage access attempts:"
msgstr[0] ""
msgstr[0] "%{storage_name}:已訪問此主機失敗 %{failed_attempts} 次"
msgid "(checkout the %{link} for information on how to install it)."
msgstr ""
msgstr "(想了解更多的安裝訊息請查看 %{link})"
msgid "1 pipeline"
msgid_plural "%d pipelines"
msgstr[0] "1 條流水線"
msgstr[0] "%d 條流水線"
msgid "A collection of graphs regarding Continuous Integration"
msgstr "相關持續集成的圖像集合"
......@@ -54,7 +54,7 @@ msgid "About auto deploy"
msgstr "關於自動部署"
msgid "Access to failing storages has been temporarily disabled to allow the mount to recover. Reset storage information after the issue has been resolved to allow access again."
msgstr ""
msgstr "因恢復安裝,訪問故障存儲已被暫時禁用。在問題解決後將重置存儲信息,以便再次訪問。"
msgid "Active"
msgstr "啟用"
......@@ -78,7 +78,7 @@ msgid "Add new directory"
msgstr "添加新目錄"
msgid "All"
msgstr ""
msgstr "全部"
msgid "Archived project! Repository is read-only"
msgstr "歸檔項目!存儲庫為只讀"
......@@ -87,16 +87,16 @@ msgid "Are you sure you want to delete this pipeline schedule?"
msgstr "確定要刪除此流水線計劃嗎?"
msgid "Are you sure you want to discard your changes?"
msgstr ""
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?"
msgstr ""
msgstr "確定嗎?"
msgid "Attach a file by drag &amp; drop or %{upload_link}"
msgstr "拖放文件到此處或者 %{upload_link}"
......@@ -139,7 +139,7 @@ msgid "Cancel"
msgstr "取消"
msgid "Cancel edit"
msgstr ""
msgstr "取消编辑"
msgid "ChangeTypeActionLabel|Pick into branch"
msgstr "挑選到分支"
......@@ -220,7 +220,7 @@ msgid "CiStatus|running"
msgstr "運行中"
msgid "Comments"
msgstr ""
msgstr "評論 (Comment)"
msgid "Commit"
msgid_plural "Commits"
......@@ -269,7 +269,7 @@ msgid "Create New Directory"
msgstr "創建新目錄"
msgid "Create a new branch"
msgstr ""
msgstr "創建壹個新分支 (branch)"
msgid "Create a personal access token on your account to pull or push via %{protocol}."
msgstr "在帳戶上創建個人訪問令牌,以通過 %{protocol} 來拉取或推送。"
......@@ -348,13 +348,13 @@ msgid "Description"
msgstr "描述"
msgid "Details"
msgstr ""
msgstr "詳情"
msgid "Directory name"
msgstr "目錄名稱"
msgid "Discard changes"
msgstr ""
msgstr "放棄更改"
msgid "Don't show again"
msgstr "不再顯示"
......@@ -393,22 +393,22 @@ msgid "Edit Pipeline Schedule %{id}"
msgstr "編輯 %{id} 流水線計劃"
msgid "EventFilterBy|Filter by all"
msgstr ""
msgstr "全部"
msgid "EventFilterBy|Filter by comments"
msgstr ""
msgstr "按評論 (comment) 過濾"
msgid "EventFilterBy|Filter by issue events"
msgstr ""
msgstr "按議題事件 (issue event) 過濾"
msgid "EventFilterBy|Filter by merge events"
msgstr ""
msgstr "按合併事件 (merge event) 過濾"
msgid "EventFilterBy|Filter by push events"
msgstr ""
msgstr "按推送事件 (push event) 過濾"
msgid "EventFilterBy|Filter by team"
msgstr ""
msgstr "按團隊過濾"
msgid "Every day (at 4:00am)"
msgstr "每日執行(淩晨 4 點)"
......@@ -457,10 +457,10 @@ msgid "From merge request merge until deploy to production"
msgstr "從合併請求的合併到部署至生產環境"
msgid "Git storage health information has been reset"
msgstr ""
msgstr "Git 存儲健康信息已重置"
msgid "GitLab Runner section"
msgstr ""
msgstr "GitLab Runner 介紹"
msgid "Go to your fork"
msgstr "跳轉到派生項目"
......@@ -469,22 +469,22 @@ msgid "GoToYourFork|Fork"
msgstr "跳轉到派生項目"
msgid "Health Check"
msgstr ""
msgstr "健康檢查 (Health Check)"
msgid "Health information can be retrieved from the following endpoints. More information is available"
msgstr ""
msgstr "健康信息可以從以下端點檢索。想了解更多信息請查看"
msgid "HealthCheck|Access token is"
msgstr ""
msgstr "訪問令牌是"
msgid "HealthCheck|Healthy"
msgstr ""
msgstr "健康"
msgid "HealthCheck|No Health Problems Detected"
msgstr ""
msgstr "沒有檢測到健康問題"
msgid "HealthCheck|Unhealthy"
msgstr ""
msgstr "不良"
msgid "Home"
msgstr "首頁"
......@@ -496,7 +496,7 @@ msgid "Import repository"
msgstr "導入存儲庫"
msgid "Install a Runner compatible with GitLab CI"
msgstr ""
msgstr "安裝壹個與 GitLab CI 兼容的 Runner"
msgid "Interval Pattern"
msgstr "循環週期"
......@@ -505,16 +505,7 @@ msgid "Introducing Cycle Analytics"
msgstr "週期分析簡介"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr "上個月的作業"
msgid "Jobs for last week"
msgstr "上個星期的作業"
msgid "Jobs for last year"
msgstr "去年的作業"
msgstr "議題事件 (issue event)"
msgid "LFSStatus|Disabled"
msgstr "停用"
......@@ -536,10 +527,10 @@ msgid "Last commit"
msgstr "最後提交"
msgid "LastPushEvent|You pushed to"
msgstr ""
msgstr "您推送了"
msgid "LastPushEvent|at"
msgstr ""
msgstr ""
msgid "Learn more in the"
msgstr "了解更多"
......@@ -561,13 +552,13 @@ msgid "Median"
msgstr "中位數"
msgid "Merge events"
msgstr ""
msgstr "合併事件 (merge event)"
msgid "MissingSSHKeyWarningLink|add an SSH key"
msgstr "添加壹個 SSH 公鑰"
msgid "More information is available|here"
msgstr ""
msgstr "幫助文檔"
msgid "New Issue"
msgid_plural "New Issues"
......@@ -753,6 +744,15 @@ msgstr "流水線"
msgid "Pipelines charts"
msgstr "流水線圖表"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipelines for last week"
msgstr ""
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "所有"
......@@ -766,7 +766,7 @@ msgid "Pipeline|with stages"
msgstr "於階段"
msgid "Project"
msgstr ""
msgstr "專案"
msgid "Project '%{project_name}' queued for deletion."
msgstr "項目 '%{project_name}' 已進入刪除隊列。"
......@@ -784,7 +784,7 @@ msgid "Project access must be granted explicitly to each user."
msgstr "項目訪問權限必須明確授權給每個用戶。"
msgid "Project details"
msgstr ""
msgstr "專案詳情"
msgid "Project export could not be deleted."
msgstr "無法刪除項目導出。"
......@@ -802,7 +802,7 @@ msgid "Project home"
msgstr "項目首頁"
msgid "ProjectActivityRSS|Subscribe"
msgstr ""
msgstr "訂閱"
msgid "ProjectFeature|Disabled"
msgstr "停用"
......@@ -826,7 +826,7 @@ msgid "ProjectNetworkGraph|Graph"
msgstr "分支圖"
msgid "Push events"
msgstr ""
msgstr "推送事件 (push event) "
msgid "Read more"
msgstr "了解更多"
......@@ -865,19 +865,19 @@ msgid "Remove project"
msgstr "刪除項目"
msgid "Repository"
msgstr ""
msgstr "存儲庫"
msgid "Request Access"
msgstr "申請權限"
msgid "Reset git storage health information"
msgstr ""
msgstr "重置 Git 存儲的健康信息"
msgid "Reset health check access token"
msgstr ""
msgstr "重置健康檢查訪問令牌"
msgid "Reset runners registration token"
msgstr ""
msgstr "重置 Runner 註冊令牌"
msgid "Revert this commit"
msgstr "還原此提交"
......@@ -904,7 +904,7 @@ msgid "Select a timezone"
msgstr "選擇時區"
msgid "Select existing branch"
msgstr ""
msgstr "選擇現有分支 (branch)"
msgid "Select target branch"
msgstr "選擇目標分支"
......@@ -932,7 +932,7 @@ msgid "Source code"
msgstr "源代碼"
msgid "Specify the following URL during the Runner setup:"
msgstr ""
msgstr "在 Runner 設置時指定以下 URL:"
msgid "StarProject|Star"
msgstr "星標"
......@@ -941,7 +941,7 @@ msgid "Start a %{new_merge_request} with these changes"
msgstr "由此更改 %{new_merge_request}"
msgid "Start the Runner!"
msgstr ""
msgstr "運作 Runner!"
msgid "Switch branch/tag"
msgstr "切換分支/標籤"
......@@ -957,7 +957,7 @@ msgid "Target Branch"
msgstr "目標分支"
msgid "Team"
msgstr ""
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 "編碼階段概述了從第壹次提交到創建合併請求的時間。創建第壹個合併請求後,數據將自動添加到此處。"
......@@ -1008,7 +1008,7 @@ 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 problems accessing Git storage: "
msgstr ""
msgstr "訪問 Git 存儲時出現問題:"
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "在創建壹個空的存儲庫或導入現有存儲庫之前,您將無法推送代碼。"
......@@ -1178,7 +1178,7 @@ msgid "UploadLink|click to upload"
msgstr "點擊上傳"
msgid "Use the following registration token during setup:"
msgstr ""
msgstr "在安裝過程中使用以下註冊令牌:"
msgid "Use your global notification setting"
msgstr "使用全局通知設置"
......@@ -1267,4 +1267,5 @@ msgstr "通知郵件"
msgid "parent"
msgid_plural "parents"
msgstr[0] "父級"
\ No newline at end of file
msgstr[0] "父級"
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab-ee\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 14:15+0530\n"
"PO-Revision-Date: 2017-08-23 09:59-0400\n"
"POT-Creation-Date: 2017-08-24 09:29+0200\n"
"PO-Revision-Date: 2017-09-06 02:28-0400\n"
"Last-Translator: gitlab <mbartlett+crowdin@gitlab.com>\n"
"Language-Team: Chinese Traditional\n"
"Language: zh_TW\n"
......@@ -28,24 +28,24 @@ msgid "%{commit_author_link} committed %{commit_timeago}"
msgstr "%{commit_author_link} 在 %{commit_timeago} 送交"
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will allow access on the next attempt."
msgstr ""
msgstr "已失敗 %{number_of_failures} 次,在失敗 %{maximum_failures} 次前 GitLab 會重試。"
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will block access for %{number_of_seconds} seconds."
msgstr ""
msgstr "已失敗 %{number_of_failures} 次,在失敗 %{maximum_failures} 次前 GitLab 會在 %{number_of_seconds} 秒後重試。"
msgid "%{number_of_failures} of %{maximum_failures} failures. GitLab will not retry automatically. Reset storage information when the problem is resolved."
msgstr ""
msgstr "已失敗 %{number_of_failures} 次,GitLab 將不再自動重試。請在確認問題解決後手動重置儲存空間健康指數。"
msgid "%{storage_name}: failed storage access attempt on host:"
msgid_plural "%{storage_name}: %{failed_attempts} failed storage access attempts:"
msgstr[0] ""
msgstr[0] "%{storage_name}:已存取此主機失敗 %{failed_attempts} 次"
msgid "(checkout the %{link} for information on how to install it)."
msgstr ""
msgstr "(如何安裝請參閱 %{link})"
msgid "1 pipeline"
msgid_plural "%d pipelines"
msgstr[0] "1 條流水線"
msgstr[0] "%d 條流水線"
msgid "A collection of graphs regarding Continuous Integration"
msgstr "持續整合 (CI) 相關的圖表"
......@@ -54,7 +54,7 @@ msgid "About auto deploy"
msgstr "關於自動部署"
msgid "Access to failing storages has been temporarily disabled to allow the mount to recover. Reset storage information after the issue has been resolved to allow access again."
msgstr ""
msgstr "已暫時停用失敗的 Git 儲存空間。當儲存空間恢復正常後,請重置儲存空間健康指數。"
msgid "Active"
msgstr "啟用"
......@@ -78,7 +78,7 @@ msgid "Add new directory"
msgstr "新增目錄"
msgid "All"
msgstr ""
msgstr "全部"
msgid "Archived project! Repository is read-only"
msgstr "此專案已封存!檔案庫 (repository) 為唯讀狀態"
......@@ -87,16 +87,16 @@ msgid "Are you sure you want to delete this pipeline schedule?"
msgstr "確定要刪除此流水線 (pipeline) 排程嗎?"
msgid "Are you sure you want to discard your changes?"
msgstr ""
msgstr "確定要放棄修改嗎?"
msgid "Are you sure you want to reset registration token?"
msgstr ""
msgstr "確定要重置註冊憑證 (registration token) 嗎?"
msgid "Are you sure you want to reset the health check token?"
msgstr ""
msgstr "確定要重置健康檢查存取憑證 (access token) 嗎?"
msgid "Are you sure?"
msgstr ""
msgstr "確定嗎?"
msgid "Attach a file by drag &amp; drop or %{upload_link}"
msgstr "拖放檔案到此處或者 %{upload_link}"
......@@ -139,7 +139,7 @@ msgid "Cancel"
msgstr "取消"
msgid "Cancel edit"
msgstr ""
msgstr "取消編輯"
msgid "ChangeTypeActionLabel|Pick into branch"
msgstr "挑選到分支 (branch) "
......@@ -220,7 +220,7 @@ msgid "CiStatus|running"
msgstr "執行中"
msgid "Comments"
msgstr ""
msgstr "留言"
msgid "Commit"
msgid_plural "Commits"
......@@ -269,7 +269,7 @@ msgid "Create New Directory"
msgstr "建立新目錄"
msgid "Create a new branch"
msgstr ""
msgstr "建立新分支 (branch)"
msgid "Create a personal access token on your account to pull or push via %{protocol}."
msgstr "建立個人存取憑證 (access token) 以使用 %{protocol} 來上傳 (push) 或下載 (pull) 。"
......@@ -348,13 +348,13 @@ msgid "Description"
msgstr "描述"
msgid "Details"
msgstr ""
msgstr "細節"
msgid "Directory name"
msgstr "目錄名稱"
msgid "Discard changes"
msgstr ""
msgstr "放棄修改"
msgid "Don't show again"
msgstr "不再顯示"
......@@ -393,22 +393,22 @@ msgid "Edit Pipeline Schedule %{id}"
msgstr "編輯 %{id} 流水線 (pipeline) 排程"
msgid "EventFilterBy|Filter by all"
msgstr ""
msgstr "顯示全部"
msgid "EventFilterBy|Filter by comments"
msgstr ""
msgstr "以留言篩選"
msgid "EventFilterBy|Filter by issue events"
msgstr ""
msgstr "以議題 (issue) 事件篩選"
msgid "EventFilterBy|Filter by merge events"
msgstr ""
msgstr "以合併 (merge) 事件篩選"
msgid "EventFilterBy|Filter by push events"
msgstr ""
msgstr "以推送 (push) 事件篩選"
msgid "EventFilterBy|Filter by team"
msgstr ""
msgstr "以團隊篩選"
msgid "Every day (at 4:00am)"
msgstr "每日執行(淩晨四點)"
......@@ -457,10 +457,10 @@ msgid "From merge request merge until deploy to production"
msgstr "從請求被合併後 (merge request merged) 直到部署至營運環境"
msgid "Git storage health information has been reset"
msgstr ""
msgstr "Git 儲存空間健康指數已重置"
msgid "GitLab Runner section"
msgstr ""
msgstr "GitLab Runner"
msgid "Go to your fork"
msgstr "前往您的分支 (fork) "
......@@ -469,22 +469,22 @@ msgid "GoToYourFork|Fork"
msgstr "前往您的分支 (fork) "
msgid "Health Check"
msgstr ""
msgstr "健康檢查"
msgid "Health information can be retrieved from the following endpoints. More information is available"
msgstr ""
msgstr "健康資訊可從以下連結取得。想了解更多請參閱"
msgid "HealthCheck|Access token is"
msgstr ""
msgstr "存取憑證 (access token) 是"
msgid "HealthCheck|Healthy"
msgstr ""
msgstr "健康"
msgid "HealthCheck|No Health Problems Detected"
msgstr ""
msgstr "沒有檢測到健康問題"
msgid "HealthCheck|Unhealthy"
msgstr ""
msgstr "不良"
msgid "Home"
msgstr "首頁"
......@@ -496,7 +496,7 @@ msgid "Import repository"
msgstr "匯入檔案庫 (repository)"
msgid "Install a Runner compatible with GitLab CI"
msgstr ""
msgstr "安裝與 GitLab CI 相容的 Runner"
msgid "Interval Pattern"
msgstr "循環週期"
......@@ -505,16 +505,7 @@ msgid "Introducing Cycle Analytics"
msgstr "週期分析簡介"
msgid "Issue events"
msgstr ""
msgid "Jobs for last month"
msgstr "上個月的任務 (job) "
msgid "Jobs for last week"
msgstr "上個星期的任務 (job) "
msgid "Jobs for last year"
msgstr "去年的任務 (job) "
msgstr "議題 (issue) 事件"
msgid "LFSStatus|Disabled"
msgstr "停用"
......@@ -536,10 +527,10 @@ msgid "Last commit"
msgstr "最後更動記錄 (commit) "
msgid "LastPushEvent|You pushed to"
msgstr ""
msgstr "您上傳 (push) 了"
msgid "LastPushEvent|at"
msgstr ""
msgstr ""
msgid "Learn more in the"
msgstr "了解更多"
......@@ -561,13 +552,13 @@ msgid "Median"
msgstr "中位數"
msgid "Merge events"
msgstr ""
msgstr "合併 (merge) 事件"
msgid "MissingSSHKeyWarningLink|add an SSH key"
msgstr "新增 SSH 金鑰"
msgid "More information is available|here"
msgstr ""
msgstr "健康檢查"
msgid "New Issue"
msgid_plural "New Issues"
......@@ -753,6 +744,15 @@ msgstr "流水線 (pipeline) "
msgid "Pipelines charts"
msgstr "流水線 (pipeline) 圖表"
msgid "Pipelines for last month"
msgstr ""
msgid "Pipelines for last week"
msgstr ""
msgid "Pipelines for last year"
msgstr ""
msgid "Pipeline|all"
msgstr "所有"
......@@ -766,7 +766,7 @@ msgid "Pipeline|with stages"
msgstr "於階段"
msgid "Project"
msgstr ""
msgstr "專案"
msgid "Project '%{project_name}' queued for deletion."
msgstr "專案 '%{project_name}' 已加入刪除佇列。"
......@@ -784,7 +784,7 @@ msgid "Project access must be granted explicitly to each user."
msgstr "專案權限必須一一指派給每個使用者。"
msgid "Project details"
msgstr ""
msgstr "專案細節"
msgid "Project export could not be deleted."
msgstr "匯出的專案無法被刪除。"
......@@ -802,7 +802,7 @@ msgid "Project home"
msgstr "專案首頁"
msgid "ProjectActivityRSS|Subscribe"
msgstr ""
msgstr "訂閱"
msgid "ProjectFeature|Disabled"
msgstr "停用"
......@@ -826,7 +826,7 @@ msgid "ProjectNetworkGraph|Graph"
msgstr "分支圖"
msgid "Push events"
msgstr ""
msgstr "推送 (push) 事件"
msgid "Read more"
msgstr "瞭解更多"
......@@ -865,19 +865,19 @@ msgid "Remove project"
msgstr "刪除專案"
msgid "Repository"
msgstr ""
msgstr "檔案庫 (repository)"
msgid "Request Access"
msgstr "申請權限"
msgid "Reset git storage health information"
msgstr ""
msgstr "重置 Git 儲存空間健康指數"
msgid "Reset health check access token"
msgstr ""
msgstr "重置健康檢查存取憑證 (access token)"
msgid "Reset runners registration token"
msgstr ""
msgstr "重置 Runner 註冊憑證 (registration token)"
msgid "Revert this commit"
msgstr "還原此更動記錄 (commit)"
......@@ -904,7 +904,7 @@ msgid "Select a timezone"
msgstr "選擇時區"
msgid "Select existing branch"
msgstr ""
msgstr "選擇現有分支 (branch)"
msgid "Select target branch"
msgstr "選擇目標分支 (branch) "
......@@ -932,7 +932,7 @@ msgid "Source code"
msgstr "原始碼"
msgid "Specify the following URL during the Runner setup:"
msgstr ""
msgstr "在安裝 Runner 時指定以下 URL:"
msgid "StarProject|Star"
msgstr "收藏"
......@@ -941,7 +941,7 @@ msgid "Start a %{new_merge_request} with these changes"
msgstr "以這些改動建立一個新的 %{new_merge_request} "
msgid "Start the Runner!"
msgstr ""
msgstr "啟動 Runner!"
msgid "Switch branch/tag"
msgstr "切換分支 (branch) 或標籤"
......@@ -957,7 +957,7 @@ msgid "Target Branch"
msgstr "目標分支 (branch) "
msgid "Team"
msgstr ""
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) 的時間。建立第一個合併請求後,資料將自動填入。"
......@@ -1008,7 +1008,7 @@ 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 problems accessing Git storage: "
msgstr ""
msgstr "存取 Git 儲存空間時出現問題:"
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "這代表在您建立一個空的檔案庫 (repository) 或是匯入一個現存的檔案庫之前,您將無法上傳更新 (push) 。"
......@@ -1178,7 +1178,7 @@ msgid "UploadLink|click to upload"
msgstr "點擊上傳"
msgid "Use the following registration token during setup:"
msgstr ""
msgstr "在安裝過程中使用此註冊憑證 (registration token):"
msgid "Use your global notification setting"
msgstr "使用全域通知設定"
......@@ -1208,16 +1208,16 @@ msgid "Withdraw Access Request"
msgstr "取消權限申請"
msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?"
msgstr "即將要刪除 %{group_name}。被刪除的群組完全無法救回來喔!真的「100%確定」要這麼做嗎?"
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}。被刪除的專案完全無法救回來喔!真的「100%確定」要這麼做嗎?"
msgstr "將要刪除 %{project_name_with_namespace}。被刪除的專案無法復原!真的「確定」要這麼做嗎?"
msgid "You are going to remove the fork relationship to source project %{forked_from_project}. Are you ABSOLUTELY sure?"
msgstr "將要刪除本分支專案與主幹的所有關聯 (fork relationship) 。 %{forked_from_project} 真的「100%確定」要這麼做嗎?"
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} 的所有權轉移給另一個人。真的「100%確定」要這麼做嗎?"
msgstr "將要把 %{project_name_with_namespace} 的所有權轉移給另一個人。真的「確定」要這麼做嗎?"
msgid "You can only add files when you are on a branch"
msgstr "只能在分支 (branch) 上建立檔案"
......@@ -1267,4 +1267,5 @@ msgstr "通知信"
msgid "parent"
msgid_plural "parents"
msgstr[0] "上層"
\ No newline at end of file
msgstr[0] "上層"
......@@ -40,18 +40,4 @@ feature 'Issue Detail', :js do
end
end
end
context 'when authored by a user who is later deleted' do
before do
issue.update_attribute(:author_id, nil)
sign_in(user)
visit project_issue_path(project, issue)
end
it 'shows the issue' do
page.within('.issuable-details') do
expect(find('h2')).to have_content(issue.title)
end
end
end
end
......@@ -249,4 +249,19 @@ describe 'Promotions', js: true do
expect(find('.user-callout-copy')).to have_content 'Track activity with Contribution Analytics.'
end
end
describe 'for group webhooks' do
before do
allow(License).to receive(:current).and_return(nil)
stub_application_setting(check_namespace_plan: false)
group.add_owner(user)
sign_in(user)
end
it 'should appear on the page' do
visit group_hooks_path(group)
expect(find('.user-callout-copy')).to have_content 'Add Group Webhooks'
end
end
end
......@@ -4,7 +4,10 @@ import '~/gl_dropdown';
import '~/lib/utils/common_utils';
import '~/lib/utils/url_utility';
(() => {
describe('glDropdown', function describeDropdown() {
preloadFixtures('static/gl_dropdown.html.raw');
loadJSONFixtures('projects.json');
const NON_SELECTABLE_CLASSES = '.divider, .separator, .dropdown-header, .dropdown-menu-empty-link';
const SEARCH_INPUT_SELECTOR = '.dropdown-input-field';
const ITEM_SELECTOR = `.dropdown-content li:not(${NON_SELECTABLE_CLASSES})`;
......@@ -39,188 +42,217 @@ import '~/lib/utils/url_utility';
remoteCallback = callback.bind({}, data);
};
describe('Dropdown', function describeDropdown() {
preloadFixtures('static/gl_dropdown.html.raw');
loadJSONFixtures('projects.json');
function initDropDown(hasRemote, isFilterable, extraOpts = {}) {
const options = Object.assign({
selectable: true,
filterable: isFilterable,
data: hasRemote ? remoteMock.bind({}, this.projectsData) : this.projectsData,
search: {
fields: ['name']
},
text: project => (project.name_with_namespace || project.name),
id: project => project.id
}, extraOpts);
this.dropdownButtonElement = $('#js-project-dropdown', this.dropdownContainerElement).glDropdown(options);
}
function initDropDown(hasRemote, isFilterable, extraOpts = {}) {
const options = Object.assign({
selectable: true,
filterable: isFilterable,
data: hasRemote ? remoteMock.bind({}, this.projectsData) : this.projectsData,
search: {
fields: ['name']
},
text: project => (project.name_with_namespace || project.name),
id: project => project.id,
}, extraOpts);
this.dropdownButtonElement = $('#js-project-dropdown', this.dropdownContainerElement).glDropdown(options);
}
beforeEach(() => {
loadFixtures('static/gl_dropdown.html.raw');
this.dropdownContainerElement = $('.dropdown.inline');
this.$dropdownMenuElement = $('.dropdown-menu', this.dropdownContainerElement);
this.projectsData = getJSONFixture('projects.json');
});
beforeEach(() => {
loadFixtures('static/gl_dropdown.html.raw');
this.dropdownContainerElement = $('.dropdown.inline');
this.$dropdownMenuElement = $('.dropdown-menu', this.dropdownContainerElement);
this.projectsData = getJSONFixture('projects.json');
});
afterEach(() => {
$('body').unbind('keydown');
this.dropdownContainerElement.unbind('keyup');
});
afterEach(() => {
$('body').unbind('keydown');
this.dropdownContainerElement.unbind('keyup');
});
it('should open on click', () => {
initDropDown.call(this, false);
expect(this.dropdownContainerElement).not.toHaveClass('open');
this.dropdownButtonElement.click();
expect(this.dropdownContainerElement).toHaveClass('open');
});
it('should open on click', () => {
initDropDown.call(this, false);
expect(this.dropdownContainerElement).not.toHaveClass('open');
this.dropdownButtonElement.click();
expect(this.dropdownContainerElement).toHaveClass('open');
});
it('escapes HTML as text', () => {
this.projectsData[0].name_with_namespace = '<script>alert("testing");</script>';
it('escapes HTML as text', () => {
this.projectsData[0].name_with_namespace = '<script>alert("testing");</script>';
initDropDown.call(this, false);
initDropDown.call(this, false);
this.dropdownButtonElement.click();
this.dropdownButtonElement.click();
expect(
$('.dropdown-content li:first-child').text(),
).toBe('<script>alert("testing");</script>');
});
expect(
$('.dropdown-content li:first-child').text(),
).toBe('<script>alert("testing");</script>');
});
it('should output HTML when highlighting', () => {
this.projectsData[0].name_with_namespace = 'testing';
$('.dropdown-input .dropdown-input-field').val('test');
it('should output HTML when highlighting', () => {
this.projectsData[0].name_with_namespace = 'testing';
$('.dropdown-input .dropdown-input-field').val('test');
initDropDown.call(this, false, true, {
highlight: true,
});
initDropDown.call(this, false, true, {
highlight: true,
});
this.dropdownButtonElement.click();
this.dropdownButtonElement.click();
expect(
$('.dropdown-content li:first-child').text(),
).toBe('testing');
expect(
$('.dropdown-content li:first-child').text(),
).toBe('testing');
expect(
$('.dropdown-content li:first-child a').html(),
).toBe('<b>t</b><b>e</b><b>s</b><b>t</b>ing');
});
expect(
$('.dropdown-content li:first-child a').html(),
).toBe('<b>t</b><b>e</b><b>s</b><b>t</b>ing');
describe('that is open', () => {
beforeEach(() => {
initDropDown.call(this, false, false);
this.dropdownButtonElement.click();
});
describe('that is open', () => {
beforeEach(() => {
initDropDown.call(this, false, false);
this.dropdownButtonElement.click();
it('should select a following item on DOWN keypress', () => {
expect($(FOCUSED_ITEM_SELECTOR, this.$dropdownMenuElement).length).toBe(0);
const randomIndex = (Math.floor(Math.random() * (this.projectsData.length - 1)) + 0);
navigateWithKeys('down', randomIndex, () => {
expect($(FOCUSED_ITEM_SELECTOR, this.$dropdownMenuElement).length).toBe(1);
expect($(`${ITEM_SELECTOR}:eq(${randomIndex}) a`, this.$dropdownMenuElement)).toHaveClass('is-focused');
});
});
it('should select a following item on DOWN keypress', () => {
expect($(FOCUSED_ITEM_SELECTOR, this.$dropdownMenuElement).length).toBe(0);
const randomIndex = (Math.floor(Math.random() * (this.projectsData.length - 1)) + 0);
navigateWithKeys('down', randomIndex, () => {
it('should select a previous item on UP keypress', () => {
expect($(FOCUSED_ITEM_SELECTOR, this.$dropdownMenuElement).length).toBe(0);
navigateWithKeys('down', (this.projectsData.length - 1), () => {
expect($(FOCUSED_ITEM_SELECTOR, this.$dropdownMenuElement).length).toBe(1);
const randomIndex = (Math.floor(Math.random() * (this.projectsData.length - 2)) + 0);
navigateWithKeys('up', randomIndex, () => {
expect($(FOCUSED_ITEM_SELECTOR, this.$dropdownMenuElement).length).toBe(1);
expect($(`${ITEM_SELECTOR}:eq(${randomIndex}) a`, this.$dropdownMenuElement)).toHaveClass('is-focused');
expect($(`${ITEM_SELECTOR}:eq(${((this.projectsData.length - 2) - randomIndex)}) a`, this.$dropdownMenuElement)).toHaveClass('is-focused');
});
});
});
it('should select a previous item on UP keypress', () => {
expect($(FOCUSED_ITEM_SELECTOR, this.$dropdownMenuElement).length).toBe(0);
navigateWithKeys('down', (this.projectsData.length - 1), () => {
expect($(FOCUSED_ITEM_SELECTOR, this.$dropdownMenuElement).length).toBe(1);
const randomIndex = (Math.floor(Math.random() * (this.projectsData.length - 2)) + 0);
navigateWithKeys('up', randomIndex, () => {
expect($(FOCUSED_ITEM_SELECTOR, this.$dropdownMenuElement).length).toBe(1);
expect($(`${ITEM_SELECTOR}:eq(${((this.projectsData.length - 2) - randomIndex)}) a`, this.$dropdownMenuElement)).toHaveClass('is-focused');
});
it('should click the selected item on ENTER keypress', () => {
expect(this.dropdownContainerElement).toHaveClass('open');
const randomIndex = Math.floor(Math.random() * (this.projectsData.length - 1)) + 0;
navigateWithKeys('down', randomIndex, () => {
spyOn(gl.utils, 'visitUrl').and.stub();
navigateWithKeys('enter', null, () => {
expect(this.dropdownContainerElement).not.toHaveClass('open');
const link = $(`${ITEM_SELECTOR}:eq(${randomIndex}) a`, this.$dropdownMenuElement);
expect(link).toHaveClass('is-active');
const linkedLocation = link.attr('href');
if (linkedLocation && linkedLocation !== '#') expect(gl.utils.visitUrl).toHaveBeenCalledWith(linkedLocation);
});
});
});
it('should click the selected item on ENTER keypress', () => {
expect(this.dropdownContainerElement).toHaveClass('open');
const randomIndex = Math.floor(Math.random() * (this.projectsData.length - 1)) + 0;
navigateWithKeys('down', randomIndex, () => {
spyOn(gl.utils, 'visitUrl').and.stub();
navigateWithKeys('enter', null, () => {
expect(this.dropdownContainerElement).not.toHaveClass('open');
const link = $(`${ITEM_SELECTOR}:eq(${randomIndex}) a`, this.$dropdownMenuElement);
expect(link).toHaveClass('is-active');
const linkedLocation = link.attr('href');
if (linkedLocation && linkedLocation !== '#') expect(gl.utils.visitUrl).toHaveBeenCalledWith(linkedLocation);
});
});
it('should close on ESC keypress', () => {
expect(this.dropdownContainerElement).toHaveClass('open');
this.dropdownContainerElement.trigger({
type: 'keyup',
which: ARROW_KEYS.ESC,
keyCode: ARROW_KEYS.ESC
});
expect(this.dropdownContainerElement).not.toHaveClass('open');
});
});
it('should close on ESC keypress', () => {
expect(this.dropdownContainerElement).toHaveClass('open');
this.dropdownContainerElement.trigger({
type: 'keyup',
which: ARROW_KEYS.ESC,
keyCode: ARROW_KEYS.ESC
});
expect(this.dropdownContainerElement).not.toHaveClass('open');
describe('opened and waiting for a remote callback', () => {
beforeEach(() => {
initDropDown.call(this, true, true);
this.dropdownButtonElement.click();
});
it('should show loading indicator while search results are being fetched by backend', () => {
const dropdownMenu = document.querySelector('.dropdown-menu');
expect(dropdownMenu.className.indexOf('is-loading') !== -1).toEqual(true);
remoteCallback();
expect(dropdownMenu.className.indexOf('is-loading') !== -1).toEqual(false);
});
it('should not focus search input while remote task is not complete', () => {
expect($(document.activeElement)).not.toEqual($(SEARCH_INPUT_SELECTOR));
remoteCallback();
expect($(document.activeElement)).toEqual($(SEARCH_INPUT_SELECTOR));
});
it('should focus search input after remote task is complete', () => {
remoteCallback();
expect($(document.activeElement)).toEqual($(SEARCH_INPUT_SELECTOR));
});
it('should focus on input when opening for the second time after transition', () => {
remoteCallback();
this.dropdownContainerElement.trigger({
type: 'keyup',
which: ARROW_KEYS.ESC,
keyCode: ARROW_KEYS.ESC
});
this.dropdownButtonElement.click();
this.dropdownContainerElement.trigger('transitionend');
expect($(document.activeElement)).toEqual($(SEARCH_INPUT_SELECTOR));
});
});
describe('input focus with array data', () => {
it('should focus input when passing array data to drop down', () => {
initDropDown.call(this, false, true);
this.dropdownButtonElement.click();
this.dropdownContainerElement.trigger('transitionend');
expect($(document.activeElement)).toEqual($(SEARCH_INPUT_SELECTOR));
});
});
it('should still have input value on close and restore', () => {
const $searchInput = $(SEARCH_INPUT_SELECTOR);
initDropDown.call(this, false, true);
$searchInput
.trigger('focus')
.val('g')
.trigger('input');
expect($searchInput.val()).toEqual('g');
this.dropdownButtonElement.trigger('hidden.bs.dropdown');
$searchInput
.trigger('blur')
.trigger('focus');
expect($searchInput.val()).toEqual('g');
});
describe('renderItem', () => {
describe('without selected value', () => {
let dropdown;
describe('opened and waiting for a remote callback', () => {
beforeEach(() => {
initDropDown.call(this, true, true);
this.dropdownButtonElement.click();
const dropdownOptions = {
};
const $dropdownDiv = $('<div />');
$dropdownDiv.glDropdown(dropdownOptions);
dropdown = $dropdownDiv.data('glDropdown');
});
it('should show loading indicator while search results are being fetched by backend', () => {
const dropdownMenu = document.querySelector('.dropdown-menu');
it('marks items without ID as active', () => {
const dummyData = { };
expect(dropdownMenu.className.indexOf('is-loading') !== -1).toEqual(true);
remoteCallback();
expect(dropdownMenu.className.indexOf('is-loading') !== -1).toEqual(false);
});
const html = dropdown.renderItem(dummyData, null, null);
it('should not focus search input while remote task is not complete', () => {
expect($(document.activeElement)).not.toEqual($(SEARCH_INPUT_SELECTOR));
remoteCallback();
expect($(document.activeElement)).toEqual($(SEARCH_INPUT_SELECTOR));
const link = html.querySelector('a');
expect(link).toHaveClass('is-active');
});
it('should focus search input after remote task is complete', () => {
remoteCallback();
expect($(document.activeElement)).toEqual($(SEARCH_INPUT_SELECTOR));
});
it('does not mark items with ID as active', () => {
const dummyData = {
id: 'ea'
};
it('should focus on input when opening for the second time after transition', () => {
remoteCallback();
this.dropdownContainerElement.trigger({
type: 'keyup',
which: ARROW_KEYS.ESC,
keyCode: ARROW_KEYS.ESC
});
this.dropdownButtonElement.click();
this.dropdownContainerElement.trigger('transitionend');
expect($(document.activeElement)).toEqual($(SEARCH_INPUT_SELECTOR));
});
});
const html = dropdown.renderItem(dummyData, null, null);
describe('input focus with array data', () => {
it('should focus input when passing array data to drop down', () => {
initDropDown.call(this, false, true);
this.dropdownButtonElement.click();
this.dropdownContainerElement.trigger('transitionend');
expect($(document.activeElement)).toEqual($(SEARCH_INPUT_SELECTOR));
const link = html.querySelector('a');
expect(link).not.toHaveClass('is-active');
});
});
it('should still have input value on close and restore', () => {
const $searchInput = $(SEARCH_INPUT_SELECTOR);
initDropDown.call(this, false, true);
$searchInput
.trigger('focus')
.val('g')
.trigger('input');
expect($searchInput.val()).toEqual('g');
this.dropdownButtonElement.trigger('hidden.bs.dropdown');
$searchInput
.trigger('blur')
.trigger('focus');
expect($searchInput.val()).toEqual('g');
});
});
})();
});
require 'spec_helper'
require Rails.root.join('db', 'migrate', '20170825104051_migrate_issues_to_ghost_user.rb')
describe MigrateIssuesToGhostUser, :migration do
describe '#up' do
let(:projects) { table(:projects) }
let(:issues) { table(:issues) }
let(:users) { table(:users) }
before do
projects.create!(name: 'gitlab')
user = users.create(email: 'test@example.com')
issues.create(title: 'Issue 1', author_id: nil, project_id: 1)
issues.create(title: 'Issue 2', author_id: user.id, project_id: 1)
end
context 'when ghost user exists' do
let!(:ghost) { users.create(ghost: true, email: 'ghost@example.com') }
it 'does not create a new user' do
expect { schema_migrate_up! }.not_to change { User.count }
end
it 'migrates issues where author = nil to the ghost user' do
schema_migrate_up!
expect(issues.first.reload.author_id).to eq(ghost.id)
end
it 'does not change issues authored by an existing user' do
expect { schema_migrate_up! }.not_to change { issues.second.reload.author_id}
end
end
context 'when ghost user does not exist' do
it 'creates a new user' do
expect { schema_migrate_up! }.to change { User.count }.by(1)
end
it 'migrates issues where author = nil to the ghost user' do
schema_migrate_up!
expect(issues.first.reload.author_id).to eq(User.ghost.id)
end
it 'does not change issues authored by an existing user' do
expect { schema_migrate_up! }.not_to change { issues.second.reload.author_id}
end
end
end
end
......@@ -52,5 +52,15 @@ describe Geo::NodeStatusService do
expect(status.health).to eq("Could not connect to Geo node - HTTP Status Code: 401 Unauthorized\n")
end
it 'returns meaningful error message when primary uses incorrect db key' do
secondary # create it before mocking GeoNode#secret_access_key
allow_any_instance_of(GeoNode).to receive(:secret_access_key).and_raise(OpenSSL::Cipher::CipherError)
status = subject.call(secondary)
expect(status.health).to eq('Error decrypting the Geo secret from the database. Check that the primary uses the correct db_key_base.')
end
end
end
......@@ -134,12 +134,4 @@ describe Issues::ExportCsvService do
expect(csv[0]['Labels']).to eq nil
end
end
it 'succeeds when author is non-existent' do
issue.author_id = 99999999
issue.save(validate: false)
expect(csv[0]['Author']).to eq nil
expect(csv[0]['Author Username']).to eq nil
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment