Commit a2ed33a2 authored by Jarka Kadlecová's avatar Jarka Kadlecová Committed by Jarka Kadlecová

Translate issuable sidebar

parent e92ad06f
......@@ -2,6 +2,7 @@
import Flash from '../../../flash';
import editForm from './edit_form.vue';
import Icon from '../../../vue_shared/components/icon.vue';
import { __ } from '../../../locale';
export default {
components: {
......@@ -39,7 +40,9 @@
updateConfidentialAttribute(confidential) {
this.service.update('issue', { confidential })
.then(() => location.reload())
.catch(() => new Flash('Something went wrong trying to change the confidentiality of this issue'));
.catch(() => {
Flash(__('Something went wrong trying to change the confidentiality of this issue'));
});
},
},
};
......@@ -55,7 +58,7 @@
/>
</div>
<div class="title hide-collapsed">
Confidentiality
{{ __('Confidentiality') }}
<a
v-if="isEditable"
class="pull-right confidential-edit"
......@@ -81,7 +84,7 @@
aria-hidden="true"
class="sidebar-item-icon inline"
/>
Not confidential
{{ __('Not confidential') }}
</div>
<div
v-else
......@@ -92,7 +95,7 @@
aria-hidden="true"
class="sidebar-item-icon inline is-active"
/>
This issue is confidential
{{ __('This issue is confidential') }}
</div>
</div>
</div>
......
<script>
import editFormButtons from './edit_form_buttons.vue';
import { s__ } from '../../../locale';
export default {
components: {
......@@ -19,6 +20,14 @@
type: Function,
},
},
computed: {
confidentialityOnWarning() {
return s__('confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue.');
},
confidentialityOffWarning() {
return s__('confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue.');
},
},
};
</script>
......@@ -26,15 +35,13 @@
<div class="dropdown open">
<div class="dropdown-menu sidebar-item-warning-message">
<div>
<p v-if="!isConfidential">
You are going to turn on the confidentiality. This means that only team members with
<strong>at least Reporter access</strong>
are able to see and leave comments on the issue.
<p
v-if="!isConfidential"
v-html="confidentialityOnWarning">
</p>
<p v-else>
You are going to turn off the confidentiality. This means
<strong>everyone</strong>
will be able to see and leave a comment on this issue.
<p
v-else
v-html="confidentialityOffWarning">
</p>
<edit-form-buttons
:is-confidential="isConfidential"
......
......@@ -32,7 +32,7 @@ export default {
class="btn btn-default append-right-10"
@click="toggleForm"
>
Cancel
{{ __('Cancel') }}
</button>
<button
type="button"
......
<script>
import editFormButtons from './edit_form_buttons.vue';
import issuableMixin from '../../../vue_shared/mixins/issuable';
import { __, sprintf } from '../../../locale';
export default {
components: {
......@@ -25,6 +26,14 @@
type: Function,
},
},
computed: {
lockWarning() {
return sprintf(__('Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment.'), { issuableDisplayName: this.issuableDisplayName });
},
unlockWarning() {
return sprintf(__('Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment.'), { issuableDisplayName: this.issuableDisplayName });
},
},
};
</script>
......@@ -34,20 +43,13 @@
<p
class="text"
v-if="isLocked"
>
Unlock this {{ issuableDisplayName }}?
<strong>Everyone</strong>
will be able to comment.
v-html="unlockWarning">
</p>
<p
class="text"
v-else
>
Lock this {{ issuableDisplayName }}?
Only
<strong>project members</strong>
will be able to comment.
v-html="lockWarning">
</p>
<edit-form-buttons
......
......@@ -69,7 +69,7 @@
</div>
<div class="title hide-collapsed">
Lock {{ issuableDisplayName }}
{{ sprintf(__('Lock %{issuableDisplayName}'), { issuableDisplayName: issuableDisplayName }) }}
<button
v-if="isEditable"
class="pull-right lock-edit btn btn-blank"
......
......@@ -68,7 +68,7 @@ export default {
<div class="compare-display-container">
<div class="compare-display pull-left">
<span class="compare-label">
Spent
{{ s__('TimeTracking|Spent') }}
</span>
<span class="compare-value spent">
{{ timeSpentHumanReadable }}
......@@ -76,7 +76,7 @@ export default {
</div>
<div class="compare-display estimated pull-right">
<span class="compare-label">
Est
{{ s__('TimeTrackingEstimated|Est') }}
</span>
<span class="compare-value">
{{ timeEstimateHumanReadable }}
......
......@@ -9,7 +9,7 @@ export default {
template: `
<div class="time-tracking-estimate-only-pane">
<span class="bold">
Estimated:
{{ s__('TimeTracking|Estimated:') }}
</span>
{{ timeEstimateHumanReadable }}
</div>
......
import { sprintf, s__ } from '../../../locale';
export default {
name: 'time-tracking-help-state',
props: {
......@@ -10,33 +12,39 @@ export default {
href() {
return `${this.rootPath}help/workflow/time_tracking.md`;
},
estimateText() {
return sprintf(
s__('estimateCommand|%{slash_command} will update the estimated time with the latest command.'), {
slash_command: '<code>/estimate</code>',
}, false,
);
},
spendText() {
return sprintf(
s__('spendCommand|%{slash_command} will update the sum of the time spent.'), {
slash_command: '<code>/spend</code>',
}, false,
);
},
},
template: `
<div class="time-tracking-help-state">
<div class="time-tracking-info">
<h4>
Track time with quick actions
{{ __('Track time with quick actions') }}
</h4>
<p>
Quick actions can be used in the issues description and comment boxes.
{{ __('Quick actions can be used in the issues description and comment boxes.') }}
</p>
<p>
<code>
/estimate
</code>
will update the estimated time with the latest command.
<p v-html="estimateText">
</p>
<p>
<code>
/spend
</code>
will update the sum of the time spent.
<p v-html="spendText">
</p>
<a
class="btn btn-default learn-more-button"
:href="href"
>
Learn more
{{ __('Learn more') }}
</a>
</div>
</div>
......
......@@ -3,7 +3,7 @@ export default {
template: `
<div class="time-tracking-no-tracking-pane">
<span class="no-value">
No estimate or time spent
{{ __('No estimate or time spent') }}
</span>
</div>
`,
......
......@@ -110,7 +110,7 @@ export default {
:time-estimate-human-readable="timeEstimateHumanReadable"
/>
<div class="title hide-collapsed">
Time tracking
{{ __('Time tracking') }}
<div
class="help-button pull-right"
v-if="!showHelpState"
......
......@@ -2,16 +2,16 @@
= dropdown_title("Create new label", options: { back: true })
= dropdown_content do
.dropdown-labels-error.js-label-error
%input#new_label_name.default-dropdown-input{ type: "text", placeholder: "Name new label" }
%input#new_label_name.default-dropdown-input{ type: "text", placeholder: _('Name new label') }
.suggest-colors.suggest-colors-dropdown
- suggested_colors.each do |color|
= link_to '#', style: "background-color: #{color}", data: { color: color } do
&nbsp
.dropdown-label-color-input
.dropdown-label-color-preview.js-dropdown-label-color-preview
%input#new_label_color.default-dropdown-input{ type: "text", placeholder: "Assign custom color like #FF0000" }
%input#new_label_color.default-dropdown-input{ type: "text", placeholder: _('Assign custom color like #FF0000') }
.clearfix
%button.btn.btn-primary.pull-left.js-new-label-btn{ type: "button" }
Create
= _('Create')
%button.btn.btn-default.pull-right.js-cancel-label-btn{ type: "button" }
Cancel
= _('Cancel')
- title = local_assigns.fetch(:title, 'Assign labels')
- title = local_assigns.fetch(:title, _('Assign labels'))
- show_create = local_assigns.fetch(:show_create, true)
- show_footer = local_assigns.fetch(:show_footer, true)
- filter_placeholder = local_assigns.fetch(:filter_placeholder, 'Search')
......@@ -8,7 +8,7 @@
- if show_boards_content
.issue-board-dropdown-content
%p
Create lists from labels. Issues with that label appear in that list.
= _('Create lists from labels. Issues with that label appear in that list.')
= dropdown_filter(filter_placeholder)
= dropdown_content
- if current_board_parent && show_footer
......@@ -17,11 +17,11 @@
- if can?(current_user, :admin_label, current_board_parent)
%li
%a.dropdown-toggle-page{ href: "#" }
Create new label
= _('Create new label')
%li
= link_to labels_path, :"data-is-link" => true do
- if show_create && can?(current_user, :admin_label, current_board_parent)
Manage labels
= _('Manage labels')
- else
View labels
= _('View labels')
= dropdown_loading
......@@ -9,7 +9,7 @@
.block.issuable-sidebar-header
- if current_user
%span.issuable-header-text.hide-collapsed.pull-left
Todo
= _('Todo')
%a.gutter-toggle.pull-right.js-sidebar-toggle{ role: "button", href: "#", "aria-label" => "Toggle sidebar" }
= sidebar_gutter_toggle_icon
- if current_user
......@@ -30,9 +30,9 @@
%span.has-tooltip{ title: "#{issuable.milestone.title}<br>#{milestone_tooltip_title(issuable.milestone)}", data: { container: 'body', html: 1, placement: 'left' } }
= issuable.milestone.title
- else
None
= _('None')
.title.hide-collapsed
Milestone
= _('Milestone')
= icon('spinner spin', class: 'hidden block-loading', 'aria-hidden': 'true')
- if can_edit_issuable
= link_to _('Edit'), '#', class: 'js-sidebar-dropdown-toggle edit-link pull-right'
......@@ -40,16 +40,17 @@
- if issuable.milestone
= link_to issuable.milestone.title, milestone_path(issuable.milestone), class: "bold has-tooltip", title: milestone_tooltip_title(issuable.milestone), data: { container: "body", html: 1 }
- else
%span.no-value None
%span.no-value
= _('None')
.selectbox.hide-collapsed
= f.hidden_field 'milestone_id', value: issuable.milestone_id, id: nil
= dropdown_tag('Milestone', options: { title: 'Assign milestone', toggle_class: 'js-milestone-select js-extra-options', filter: true, dropdown_class: 'dropdown-menu-selectable', placeholder: 'Search milestones', data: { show_no: true, field_name: "#{issuable.to_ability_name}[milestone_id]", project_id: @project.id, issuable_id: issuable.id, milestones: project_milestones_path(@project, :json), ability_name: issuable.to_ability_name, issue_update: issuable_json_path(issuable), use_id: true, default_no: true, selected: (issuable.milestone.name if issuable.milestone), null_default: true }})
= dropdown_tag('Milestone', options: { title: _('Assign milestone'), toggle_class: 'js-milestone-select js-extra-options', filter: true, dropdown_class: 'dropdown-menu-selectable', placeholder: _('Search milestones'), data: { show_no: true, field_name: "#{issuable.to_ability_name}[milestone_id]", project_id: @project.id, issuable_id: issuable.id, milestones: project_milestones_path(@project, :json), ability_name: issuable.to_ability_name, issue_update: issuable_json_path(issuable), use_id: true, default_no: true, selected: (issuable.milestone.name if issuable.milestone), null_default: true }})
- if issuable.has_attribute?(:time_estimate)
#issuable-time-tracker.block
// Fallback while content is loading
.title.hide-collapsed
Time tracking
= _('Time tracking')
= icon('spinner spin', 'aria-hidden': 'true')
- if issuable.has_attribute?(:due_date)
.block.due_date
......@@ -58,7 +59,7 @@
%span.js-due-date-sidebar-value
= issuable.due_date.try(:to_s, :medium) || 'None'
.title.hide-collapsed
Due date
= _('Due date')
= icon('spinner spin', class: 'hidden block-loading', 'aria-hidden': 'true')
- if can?(current_user, :"admin_#{issuable.to_ability_name}", @project)
= link_to _('Edit'), '#', class: 'js-sidebar-dropdown-toggle edit-link pull-right'
......@@ -67,21 +68,23 @@
- if issuable.due_date
%span.bold= issuable.due_date.to_s(:medium)
- else
%span.no-value No due date
%span.no-value
= _('No due date')
- if can?(current_user, :"admin_#{issuable.to_ability_name}", @project)
%span.no-value.js-remove-due-date-holder{ class: ("hidden" if issuable.due_date.nil?) }
\-
%a.js-remove-due-date{ href: "#", role: "button" }
remove due date
= _('remove due date')
- if can?(current_user, :"admin_#{issuable.to_ability_name}", @project)
.selectbox.hide-collapsed
= f.hidden_field :due_date, value: issuable.due_date.try(:strftime, 'yy-mm-dd')
.dropdown
%button.dropdown-menu-toggle.js-due-date-select{ type: 'button', data: { toggle: 'dropdown', field_name: "#{issuable.to_ability_name}[due_date]", ability_name: issuable.to_ability_name, issue_update: issuable_json_path(issuable) } }
%span.dropdown-toggle-text Due date
%span.dropdown-toggle-text
= _('Due date')
= icon('chevron-down', 'aria-hidden': 'true')
.dropdown-menu.dropdown-menu-due-date
= dropdown_title('Due date')
= dropdown_title(_('Due date'))
= dropdown_content do
.js-due-date-calendar
......@@ -93,7 +96,7 @@
%span
= selected_labels.size
.title.hide-collapsed
Labels
= _('Labels')
= icon('spinner spin', class: 'hidden block-loading', 'aria-hidden': 'true')
- if can_edit_issuable
= link_to _('Edit'), '#', class: 'js-sidebar-dropdown-toggle edit-link pull-right'
......@@ -102,7 +105,8 @@
- selected_labels.each do |label|
= link_to_label(label, subject: issuable.project, type: issuable.to_ability_name)
- else
%span.no-value None
%span.no-value
= _('None')
.selectbox.hide-collapsed
- selected_labels.each do |label|
= hidden_field_tag "#{issuable.to_ability_name}[label_names][]", label.id, id: nil
......@@ -137,29 +141,29 @@
- project_ref = cross_project_reference(@project, issuable)
.block.project-reference
.sidebar-collapsed-icon.dont-change-state
= clipboard_button(text: project_ref, title: "Copy reference to clipboard", placement: "left")
= clipboard_button(text: project_ref, title: _('Copy reference to clipboard'), placement: "left")
.cross-project-reference.hide-collapsed
%span
Reference:
= _('Reference:')
%cite{ title: project_ref }
= project_ref
= clipboard_button(text: project_ref, title: "Copy reference to clipboard", placement: "left")
= clipboard_button(text: project_ref, title: _('Copy reference to clipboard'), placement: "left")
- if current_user && issuable.can_move?(current_user)
.block.js-sidebar-move-issue-block
.sidebar-collapsed-icon{ data: { toggle: 'tooltip', placement: 'left', container: 'body' }, title: 'Move issue' }
.sidebar-collapsed-icon{ data: { toggle: 'tooltip', placement: 'left', container: 'body' }, title: _('Move issue') }
= custom_icon('icon_arrow_right')
.dropdown.sidebar-move-issue-dropdown.hide-collapsed
%button.btn.btn-default.btn-block.js-sidebar-dropdown-toggle.js-move-issue{ type: 'button',
data: { toggle: 'dropdown' } }
Move issue
= _('Move issue')
.dropdown-menu.dropdown-menu-selectable
= dropdown_title('Move issue')
= dropdown_filter('Search project', search_id: 'sidebar-move-issue-dropdown-search')
= dropdown_title(_('Move issue'))
= dropdown_filter(_('Search project'), search_id: 'sidebar-move-issue-dropdown-search')
= dropdown_content
= dropdown_loading
= dropdown_footer add_content_class: true do
%button.btn.btn-new.sidebar-move-issue-confirmation-button.js-move-issue-confirmation-button{ disabled: true }
Move
= _('Move')
= icon('spinner spin', class: 'sidebar-move-issue-confirmation-loading-icon')
%script.js-sidebar-options{ type: "application/json" }= issuable_sidebar_options(issuable, can_edit_issuable).to_json.html_safe
- if issuable.is_a?(Issue)
#js-vue-sidebar-assignees{ data: { field: "#{issuable.to_ability_name}[assignee_ids]", signed_in: signed_in } }
.title.hide-collapsed
Assignee
= _('Assignee')
= icon('spinner spin')
- else
.sidebar-collapsed-icon.sidebar-collapsed-user{ data: { toggle: "tooltip", placement: "left", container: "body" }, title: (issuable.assignee.name if issuable.assignee) }
......@@ -10,35 +10,35 @@
- else
= icon('user', 'aria-hidden': 'true')
.title.hide-collapsed
Assignee
= _('Assignee')
= icon('spinner spin', class: 'hidden block-loading', 'aria-hidden': 'true')
- if can_edit_issuable
= link_to _('Edit'), '#', class: 'js-sidebar-dropdown-toggle edit-link pull-right'
- if !signed_in
%a.gutter-toggle.pull-right.js-sidebar-toggle{ role: "button", href: "#", "aria-label" => "Toggle sidebar" }
%a.gutter-toggle.pull-right.js-sidebar-toggle{ role: "button", href: "#", "aria-label" => _('Toggle sidebar') }
= sidebar_gutter_toggle_icon
.value.hide-collapsed
- if issuable.assignee
= link_to_member(@project, issuable.assignee, size: 32, extra_class: 'bold') do
- if !issuable.can_be_merged_by?(issuable.assignee)
%span.pull-right.cannot-be-merged{ data: { toggle: 'tooltip', placement: 'left' }, title: 'Not allowed to merge' }
%span.pull-right.cannot-be-merged{ data: { toggle: 'tooltip', placement: 'left' }, title: _('Not allowed to merge') }
= icon('exclamation-triangle', 'aria-hidden': 'true')
%span.username
= issuable.assignee.to_reference
- else
%span.assign-yourself.no-value
No assignee
= _('No assignee')
- if can_edit_issuable
\-
%a.js-assign-yourself{ href: '#' }
assign yourself
= _('assign yourself')
.selectbox.hide-collapsed
- issuable.assignees.each do |assignee|
= hidden_field_tag "#{issuable.to_ability_name}[assignee_ids][]", assignee.id, id: nil, data: { avatar_url: assignee.avatar_url, name: assignee.name, username: assignee.username }
- options = { toggle_class: 'js-user-search js-author-search', title: 'Assign to', filter: true, dropdown_class: 'dropdown-menu-user dropdown-menu-selectable dropdown-menu-author', placeholder: 'Search users', data: { first_user: current_user&.username, current_user: true, project_id: @project&.id, author_id: issuable.author_id, field_name: "#{issuable.to_ability_name}[assignee_ids][]", issue_update: issuable_json_path(issuable), ability_name: issuable.to_ability_name, null_user: true } }
- title = 'Select assignee'
- options = { toggle_class: 'js-user-search js-author-search', title: _('Assign to'), filter: true, dropdown_class: 'dropdown-menu-user dropdown-menu-selectable dropdown-menu-author', placeholder: _('Search users'), data: { first_user: current_user&.username, current_user: true, project_id: @project&.id, author_id: issuable.author_id, field_name: "#{issuable.to_ability_name}[assignee_ids][]", issue_update: issuable_json_path(issuable), ability_name: issuable.to_ability_name, null_user: true } }
- title = _('Select assignee')
- if issuable.is_a?(Issue)
- unless issuable.assignees.any?
......
- is_collapsed = local_assigns.fetch(:is_collapsed, false)
- mark_content = is_collapsed ? icon('check-square', class: 'todo-undone') : 'Mark done'
- todo_content = is_collapsed ? icon('plus-square') : 'Add todo'
- mark_content = is_collapsed ? icon('check-square', class: 'todo-undone') : _('Mark done')
- todo_content = is_collapsed ? icon('plus-square') : _('Add todo')
%button.issuable-todo-btn.js-issuable-todo{ type: 'button',
class: (is_collapsed ? 'btn-blank sidebar-collapsed-icon dont-change-state has-tooltip' : 'btn btn-default issuable-header-btn pull-right'),
title: (todo.nil? ? 'Add todo' : 'Mark done'),
'aria-label' => (todo.nil? ? 'Add todo' : 'Mark done'),
title: (todo.nil? ? _('Add todo') : _('Mark done')),
'aria-label' => (todo.nil? ? _('Add todo') : _('Mark done')),
data: issuable_todo_button_data(issuable, todo, is_collapsed) }
%span.issuable-todo-inner.js-issuable-todo-inner<
- if todo
......
---
title: Translate issuable sidebar
merge_request:
author:
type: other
......@@ -110,6 +110,8 @@ You can mark that content for translation with:
In JavaScript we added the `__()` (double underscore parenthesis) function
for translations.
In order to test JavaScript translations you have to change the GitLab localization to other language than English and you have to generate JSON files using `bundle exec rake gettext:po_to_json` or `bundle exec rake gettext:compile`.
## Updating the PO files with the new content
Now that the new content is marked for translation, we need to update the PO
......
......@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab 1.0.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-06 10:02+0100\n"
"PO-Revision-Date: 2018-02-06 10:02+0100\n"
"POT-Creation-Date: 2018-02-07 14:09+0100\n"
"PO-Revision-Date: 2018-02-07 14:09+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
......@@ -138,6 +138,9 @@ msgstr ""
msgid "Add new directory"
msgstr ""
msgid "Add todo"
msgstr ""
msgid "AdminArea|Stop all jobs"
msgstr ""
......@@ -246,6 +249,21 @@ msgstr ""
msgid "Artifacts"
msgstr ""
msgid "Assign custom color like #FF0000"
msgstr ""
msgid "Assign labels"
msgstr ""
msgid "Assign milestone"
msgstr ""
msgid "Assign to"
msgstr ""
msgid "Assignee"
msgstr ""
msgid "Attach a file by drag &amp; drop or %{upload_link}"
msgstr ""
......@@ -614,12 +632,18 @@ msgstr ""
msgid "CiVariables|Remove variable row"
msgstr ""
msgid "CiVariable|* (All environments)"
msgstr ""
msgid "CiVariable|All environments"
msgstr ""
msgid "CiVariable|Create wildcard"
msgstr ""
msgid "CiVariable|Error occured while saving variables"
msgstr ""
msgid "CiVariable|New environment"
msgstr ""
......@@ -632,6 +656,9 @@ msgstr ""
msgid "CiVariable|Toggle protected"
msgstr ""
msgid "CiVariable|Validation failed"
msgstr ""
msgid "CircuitBreakerApiLink|circuitbreaker api"
msgstr ""
......@@ -803,6 +830,9 @@ msgstr ""
msgid "ClusterIntegration|Manage your Kubernetes cluster by visiting %{link_gke}"
msgstr ""
msgid "ClusterIntegration|More information"
msgstr ""
msgid "ClusterIntegration|Multiple Kubernetes clusters are available in GitLab Enterprise Edition Premium and Ultimate"
msgstr ""
......@@ -988,6 +1018,9 @@ msgstr ""
msgid "CompareBranches|There isn't anything to compare."
msgstr ""
msgid "Confidentiality"
msgstr ""
msgid "Container Registry"
msgstr ""
......@@ -1069,6 +1102,12 @@ msgstr ""
msgid "Copy commit SHA to clipboard"
msgstr ""
msgid "Copy reference to clipboard"
msgstr ""
msgid "Create"
msgstr ""
msgid "Create New Directory"
msgstr ""
......@@ -1087,6 +1126,9 @@ msgstr ""
msgid "Create file"
msgstr ""
msgid "Create lists from labels. Issues with that label appear in that list."
msgstr ""
msgid "Create merge request"
msgstr ""
......@@ -1099,6 +1141,9 @@ msgstr ""
msgid "Create new file"
msgstr ""
msgid "Create new label"
msgstr ""
msgid "Create new..."
msgstr ""
......@@ -1239,6 +1284,9 @@ msgstr ""
msgid "DownloadSource|Download"
msgstr ""
msgid "Due date"
msgstr ""
msgid "Edit"
msgstr ""
......@@ -1838,6 +1886,12 @@ msgstr ""
msgid "Lock"
msgstr ""
msgid "Lock %{issuableDisplayName}"
msgstr ""
msgid "Lock this %{issuableDisplayName}? Only <strong>project members</strong> will be able to comment."
msgstr ""
msgid "Locked"
msgstr ""
......@@ -1850,12 +1904,18 @@ msgstr ""
msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos."
msgstr ""
msgid "Manage labels"
msgstr ""
msgid "Mar"
msgstr ""
msgid "March"
msgstr ""
msgid "Mark done"
msgstr ""
msgid "Maximum git storage failures"
msgstr ""
......@@ -1889,6 +1949,9 @@ msgstr ""
msgid "Messages"
msgstr ""
msgid "Milestone"
msgstr ""
msgid "Milestones|Delete milestone"
msgstr ""
......@@ -1910,9 +1973,18 @@ msgstr ""
msgid "More information is available|here"
msgstr ""
msgid "Move"
msgstr ""
msgid "Move issue"
msgstr ""
msgid "Multiple issue boards"
msgstr ""
msgid "Name new label"
msgstr ""
msgid "New Issue"
msgid_plural "New Issues"
msgstr[0] ""
......@@ -1969,12 +2041,21 @@ msgstr ""
msgid "New tag"
msgstr ""
msgid "No assignee"
msgstr ""
msgid "No changes"
msgstr ""
msgid "No connection could be made to a Gitaly Server, please check your logs!"
msgstr ""
msgid "No due date"
msgstr ""
msgid "No estimate or time spent"
msgstr ""
msgid "No file chosen"
msgstr ""
......@@ -1990,9 +2071,15 @@ msgstr ""
msgid "None"
msgstr ""
msgid "Not allowed to merge"
msgstr ""
msgid "Not available"
msgstr ""
msgid "Not confidential"
msgstr ""
msgid "Not enough data"
msgstr ""
......@@ -2446,6 +2533,9 @@ msgstr ""
msgid "PushRule|Committer restriction"
msgstr ""
msgid "Quick actions can be used in the issues description and comment boxes."
msgstr ""
msgid "Read more"
msgstr ""
......@@ -2458,6 +2548,9 @@ msgstr ""
msgid "RefSwitcher|Tags"
msgstr ""
msgid "Reference:"
msgstr ""
msgid "Register / Sign In"
msgstr ""
......@@ -2532,6 +2625,9 @@ msgstr ""
msgid "Save pipeline schedule"
msgstr ""
msgid "Save variables"
msgstr ""
msgid "Schedule a new pipeline"
msgstr ""
......@@ -2547,18 +2643,33 @@ msgstr ""
msgid "Search branches and tags"
msgstr ""
msgid "Search milestones"
msgstr ""
msgid "Search project"
msgstr ""
msgid "Search users"
msgstr ""
msgid "Seconds before reseting failure information"
msgstr ""
msgid "Seconds to wait for a storage access attempt"
msgstr ""
msgid "Secret variables"
msgstr ""
msgid "Select Archive Format"
msgstr ""
msgid "Select a timezone"
msgstr ""
msgid "Select assignee"
msgstr ""
msgid "Select branch/tag"
msgstr ""
......@@ -2639,6 +2750,9 @@ msgstr ""
msgid "Something went wrong on our end."
msgstr ""
msgid "Something went wrong trying to change the confidentiality of this issue"
msgstr ""
msgid "Something went wrong trying to change the locked state of this ${this.issuableDisplayName}"
msgstr ""
......@@ -2992,6 +3106,9 @@ msgstr ""
msgid "This is the author's first Merge Request to this project."
msgstr ""
msgid "This issue is confidential"
msgstr ""
msgid "This issue is confidential and locked."
msgstr ""
......@@ -3040,9 +3157,21 @@ msgstr ""
msgid "Time between merge request creation and merge/close"
msgstr ""
msgid "Time tracking"
msgstr ""
msgid "Time until first merge request"
msgstr ""
msgid "TimeTrackingEstimated|Est"
msgstr ""
msgid "TimeTracking|Estimated:"
msgstr ""
msgid "TimeTracking|Spent"
msgstr ""
msgid "Timeago|%s days ago"
msgstr ""
......@@ -3182,6 +3311,12 @@ msgstr ""
msgid "Title"
msgstr ""
msgid "Todo"
msgstr ""
msgid "Toggle sidebar"
msgstr ""
msgid "ToggleButton|Toggle Status: OFF"
msgstr ""
......@@ -3203,6 +3338,9 @@ msgstr ""
msgid "Track groups of issues that share a theme, across projects and milestones"
msgstr ""
msgid "Track time with quick actions"
msgstr ""
msgid "Trigger this manual action"
msgstr ""
......@@ -3221,6 +3359,9 @@ msgstr ""
msgid "Unlock"
msgstr ""
msgid "Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment."
msgstr ""
msgid "Unlocked"
msgstr ""
......@@ -3266,9 +3407,15 @@ msgstr ""
msgid "Use your global notification setting"
msgstr ""
msgid "Variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use variables for passwords, secret keys, or whatever you want."
msgstr ""
msgid "View file @ "
msgstr ""
msgid "View labels"
msgstr ""
msgid "View open merge request"
msgstr ""
......@@ -3497,6 +3644,9 @@ msgstr ""
msgid "Your projects"
msgstr ""
msgid "assign yourself"
msgstr ""
msgid "branch name"
msgstr ""
......@@ -3551,11 +3701,20 @@ msgstr ""
msgid "commit"
msgstr ""
msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue."
msgstr ""
msgid "confidentiality|You are going to turn on the confidentiality. This means that only team members with <strong>at least Reporter access</strong> are able to see and leave comments on the issue."
msgstr ""
msgid "day"
msgid_plural "days"
msgstr[0] ""
msgstr[1] ""
msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command."
msgstr ""
msgid "merge request"
msgid_plural "merge requests"
msgstr[0] ""
......@@ -3710,9 +3869,15 @@ msgstr ""
msgid "personal access token"
msgstr ""
msgid "remove due date"
msgstr ""
msgid "source"
msgstr ""
msgid "spendCommand|%{slash_command} will update the sum of the time spent."
msgstr ""
msgid "to help your contributors communicate effectively!"
msgstr ""
......
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