From 02b86df780958b4fca86eb45096a7c68ad24fd7b Mon Sep 17 00:00:00 2001 From: Tao Wang Date: Sat, 16 Jun 2018 15:00:45 +1000 Subject: [PATCH] i18n: externalize strings from 'app/views/admin/' Signed-off-by: Tao Wang --- .../abuse_reports/_abuse_report.html.haml | 21 +- app/views/admin/abuse_reports/index.html.haml | 16 +- app/views/admin/appearances/_form.html.haml | 41 +- .../appearances/preview_sign_in.html.haml | 8 +- app/views/admin/appearances/show.html.haml | 6 +- .../admin/background_jobs/show.html.haml | 29 +- .../admin/broadcast_messages/_form.html.haml | 12 +- .../admin/broadcast_messages/edit.html.haml | 4 +- .../admin/broadcast_messages/index.html.haml | 21 +- app/views/admin/dashboard/index.html.haml | 99 ++- app/views/admin/deploy_keys/edit.html.haml | 8 +- app/views/admin/deploy_keys/index.html.haml | 20 +- app/views/admin/deploy_keys/new.html.haml | 8 +- app/views/admin/health_check/show.html.haml | 2 +- app/views/admin/hook_logs/_index.html.haml | 19 +- app/views/admin/hook_logs/show.html.haml | 6 +- app/views/admin/hooks/_form.html.haml | 31 +- app/views/admin/hooks/edit.html.haml | 14 +- app/views/admin/hooks/index.html.haml | 17 +- .../impersonation_tokens/index.html.haml | 4 +- app/views/admin/jobs/index.html.haml | 2 +- app/views/admin/keys/show.html.haml | 2 +- app/views/admin/logs/show.html.haml | 6 +- app/views/admin/projects/_projects.html.haml | 6 +- app/views/admin/projects/index.html.haml | 20 +- app/views/admin/projects/show.html.haml | 99 ++- .../admin/requests_profiles/index.html.haml | 8 +- app/views/admin/runners/_runner.html.haml | 22 +- app/views/admin/runners/index.html.haml | 57 +- app/views/admin/runners/show.html.haml | 41 +- app/views/admin/services/_form.html.haml | 2 +- app/views/admin/services/edit.html.haml | 4 +- app/views/admin/services/index.html.haml | 12 +- app/views/admin/spam_logs/_spam_log.html.haml | 18 +- app/views/admin/spam_logs/index.html.haml | 24 +- app/views/admin/system_info/show.html.haml | 17 +- .../cohorts/_cohorts_table.html.haml | 14 +- .../cohorts/_usage_ping.html.haml | 8 +- .../cohorts/index.html.haml | 11 +- locale/gitlab.pot | 717 ++++++++++++++++++ 40 files changed, 1085 insertions(+), 391 deletions(-) diff --git a/app/views/admin/abuse_reports/_abuse_report.html.haml b/app/views/admin/abuse_reports/_abuse_report.html.haml index 89a87f3896856f..bf83f665f0047b 100644 --- a/app/views/admin/abuse_reports/_abuse_report.html.haml +++ b/app/views/admin/abuse_reports/_abuse_report.html.haml @@ -2,33 +2,34 @@ - user = abuse_report.user %tr %th.d-block.d-sm-none.d-md-none - %strong User + %strong + = _('User') %td - if user = link_to user.name, user .light.small - Joined #{time_ago_with_tooltip(user.created_at)} + = _('Joined %{created_time}').html_safe % { created_time: time_ago_with_tooltip(user.created_at) } - else - (removed) + = _('(removed)') %td %strong.subheading.d-block.d-sm-none.d-md-none Reported by - if reporter = link_to reporter.name, reporter - else - (removed) + = _('(removed)') .light.small = time_ago_with_tooltip(abuse_report.created_at) %td - %strong.subheading.d-block.d-sm-none.d-md-none Message + %strong.subheading.d-block.d-sm-none.d-md-none + = _('Message') .message = markdown_field(abuse_report, :message) %td - if user - = link_to 'Remove user & report', admin_abuse_report_path(abuse_report, remove_user: true), - data: { confirm: "USER #{user.name} WILL BE REMOVED! Are you sure?" }, remote: true, method: :delete, class: "btn btn-sm btn-block btn-remove js-remove-tr" + = link_to _('Remove user & report'), admin_abuse_report_path(abuse_report, remove_user: true), data: { confirm: _('USER %{user_name} WILL BE REMOVED! Are you sure?').html_safe % { user_name: user.name } }, remote: true, method: :delete, class: "btn btn-sm btn-block btn-remove js-remove-tr" - if user && !user.blocked? - = link_to 'Block user', block_admin_user_path(user), data: {confirm: 'USER WILL BE BLOCKED! Are you sure?'}, method: :put, class: "btn btn-sm btn-block" + = link_to _('Block user'), block_admin_user_path(user), data: { confirm: _('USER WILL BE BLOCKED! Are you sure?') }, method: :put, class: "btn btn-sm btn-block" - else .btn.btn-sm.disabled.btn-block - Already blocked - = link_to 'Remove report', [:admin, abuse_report], remote: true, method: :delete, class: "btn btn-sm btn-block btn-close js-remove-tr" + = _('Already blocked') + = link_to _('Remove report'), [:admin, abuse_report], remote: true, method: :delete, class: "btn btn-sm btn-block btn-close js-remove-tr" diff --git a/app/views/admin/abuse_reports/index.html.haml b/app/views/admin/abuse_reports/index.html.haml index cc29657a439893..e3fa0138ce3176 100644 --- a/app/views/admin/abuse_reports/index.html.haml +++ b/app/views/admin/abuse_reports/index.html.haml @@ -1,5 +1,6 @@ -- page_title 'Abuse Reports' -%h3.page-title Abuse Reports +- page_title _('Abuse Reports') +%h3.page-title + = _('Abuse Reports') %hr .abuse-reports - if @abuse_reports.present? @@ -7,13 +8,14 @@ %table.table.responsive-table %thead.d-none.d-sm-none.d-md-table-header-group %tr - %th User - %th Reported by - %th.wide Message - %th Action + %th= _('User') + %th= _('Reported by') + %th.wide= _('Message') + %th= _('Action') = render @abuse_reports = paginate @abuse_reports, theme: 'gitlab' - else .empty-state .text-center - %h4 There are no abuse reports! #{emoji_icon('tada')} + %h4 + = _("There are no abuse reports!") + emoji_icon('tada') diff --git a/app/views/admin/appearances/_form.html.haml b/app/views/admin/appearances/_form.html.haml index 0ed0f241fa35ef..4f5833a9e24e66 100644 --- a/app/views/admin/appearances/_form.html.haml +++ b/app/views/admin/appearances/_form.html.haml @@ -1,47 +1,48 @@ = form_for @appearance, url: admin_appearances_path do |f| = form_errors(@appearance) + - link_to_help_markdown = link_to(_("GitLab Flavored Markdown"), help_page_path('user/markdown'), target: '_blank') %fieldset.app_logo %legend - Navigation bar: + = _('Navigation bar:') .form-group.row - = f.label :header_logo, 'Header logo', class: 'col-sm-2 col-form-label' + = f.label :header_logo, _('Header logo'), class: 'col-sm-2 col-form-label' .col-sm-10 - if @appearance.header_logo? = image_tag @appearance.header_logo_url, class: 'appearance-light-logo-preview' - if @appearance.persisted? %br - = link_to 'Remove header logo', header_logos_admin_appearances_path, data: { confirm: "Header logo will be removed. Are you sure?"}, method: :delete, class: "btn btn-inverted btn-remove btn-sm remove-logo" + = link_to _('Remove header logo'), header_logos_admin_appearances_path, data: { confirm: _("Header logo will be removed. Are you sure?") }, method: :delete, class: "btn btn-inverted btn-remove btn-sm remove-logo" %hr = f.hidden_field :header_logo_cache = f.file_field :header_logo, class: "" .hint - Maximum file size is 1MB. Pages are optimized for a 28px tall header logo + = _('Maximum file size is 1MB. Pages are optimized for a 28px tall header logo') %fieldset.app_logo %legend - Favicon: + = _("Favicon:") .form-group.row - = f.label :favicon, 'Favicon', class: 'col-sm-2 col-form-label' + = f.label :favicon, _('Favicon'), class: 'col-sm-2 col-form-label' .col-sm-10 - if @appearance.favicon? = image_tag @appearance.favicon_url, class: 'appearance-light-logo-preview' - if @appearance.persisted? %br - = link_to 'Remove favicon', favicon_admin_appearances_path, data: { confirm: "Favicon will be removed. Are you sure?"}, method: :delete, class: "btn btn-inverted btn-remove btn-sm remove-logo" + = link_to _('Remove favicon'), favicon_admin_appearances_path, data: { confirm: _("Favicon will be removed. Are you sure?") }, method: :delete, class: "btn btn-inverted btn-remove btn-sm remove-logo" %hr = f.hidden_field :favicon_cache = f.file_field :favicon, class: '' .hint - Maximum file size is 1MB. Image size must be 32x32px. Allowed image formats are #{favicon_extension_whitelist}. + = _("Maximum file size is 1MB. Image size must be 32x32px. Allowed image formats are %{favicon_extension_whitelist}.") % { favicon_extension_whitelist: favicon_extension_whitelist } %br - Images with incorrect dimensions are not resized automatically, and may result in unexpected behavior. + = _("Images with incorrect dimensions are not resized automatically, and may result in unexpected behavior.") = render partial: 'admin/appearances/system_header_footer_form', locals: { form: f } %fieldset.sign-in %legend - Sign in/Sign up pages: + = _('Sign in/Sign up pages:') .form-group.row = f.label :title, class: 'col-sm-2 col-form-label' .col-sm-10 @@ -51,7 +52,7 @@ .col-sm-10 = f.text_area :description, class: "form-control", rows: 10 .hint - Description parsed with #{link_to "GitLab Flavored Markdown", help_page_path('user/markdown'), target: '_blank'}. + = _("Description parsed with %{link_to_help_markdown}.").html_safe % { link_to_help_markdown: link_to_help_markdown } .form-group.row = f.label :logo, class: 'col-sm-2 col-form-label' .col-sm-10 @@ -59,30 +60,30 @@ = image_tag @appearance.logo_url, class: 'appearance-logo-preview' - if @appearance.persisted? %br - = link_to 'Remove logo', logo_admin_appearances_path, data: { confirm: "Logo will be removed. Are you sure?"}, method: :delete, class: "btn btn-inverted btn-remove btn-sm remove-logo" + = link_to _('Remove logo'), logo_admin_appearances_path, data: { confirm: _("Logo will be removed. Are you sure?") }, method: :delete, class: "btn btn-inverted btn-remove btn-sm remove-logo" %hr = f.hidden_field :logo_cache = f.file_field :logo, class: "" .hint - Maximum file size is 1MB. Pages are optimized for a 640x360 px logo. + = _('Maximum file size is 1MB. Pages are optimized for a 640x360 px logo.') %fieldset %legend - New project pages: + = _('New project pages:') .form-group.row = f.label :new_project_guidelines, class: 'col-sm-2 col-form-label' .col-sm-10 = f.text_area :new_project_guidelines, class: "form-control", rows: 10 .hint - Guidelines parsed with #{link_to "GitLab Flavored Markdown", help_page_path('user/markdown'), target: '_blank'}. + = _('Guidelines parsed with %{link_to_help_markdown}.').html_safe % { link_to_help_markdown: link_to_help_markdown } .form-actions - = f.submit 'Save', class: 'btn btn-save append-right-10' + = f.submit _('Save'), class: 'btn btn-save append-right-10' - if @appearance.persisted? - Preview last save: - = link_to 'Sign-in page', preview_sign_in_admin_appearances_path, class: 'btn', target: '_blank', rel: 'noopener noreferrer' - = link_to 'New project page', new_project_path, class: 'btn', target: '_blank', rel: 'noopener noreferrer' + = _("Preview last save:") + = link_to _('Sign-in page'), preview_sign_in_admin_appearances_path, class: 'btn', target: '_blank', rel: 'noopener noreferrer' + = link_to _('New project page'), new_project_path, class: 'btn', target: '_blank', rel: 'noopener noreferrer' - if @appearance.updated_at %span.float-right - Last edit #{time_ago_with_tooltip(@appearance.updated_at)} + = _('Last edit %{time}').html_safe % { time: time_ago_with_tooltip(@appearance.updated_at) } diff --git a/app/views/admin/appearances/preview_sign_in.html.haml b/app/views/admin/appearances/preview_sign_in.html.haml index 1af7dd5bb67f8f..9984e836a133a7 100644 --- a/app/views/admin/appearances/preview_sign_in.html.haml +++ b/app/views/admin/appearances/preview_sign_in.html.haml @@ -1,12 +1,12 @@ -= render 'devise/shared/tab_single', tab_title: 'Sign in preview' += render 'devise/shared/tab_single', tab_title: _('Sign in preview') .login-box %form.gl-show-field-errors .form-group = label_tag :login - = text_field_tag :login, nil, class: "form-control top", title: 'Please provide your username or email address.' + = text_field_tag :login, nil, class: "form-control top", title: _('Please provide your username or email address.') .form-group = label_tag :password - = password_field_tag :password, nil, class: "form-control bottom", title: 'This field is required.' + = password_field_tag :password, nil, class: "form-control bottom", title: _('This field is required.') .form-group - = button_tag "Sign in", class: "btn-create btn" + = button_tag _("Sign in"), class: "btn-create btn" diff --git a/app/views/admin/appearances/show.html.haml b/app/views/admin/appearances/show.html.haml index 454b779842c032..e590f6be6e667c 100644 --- a/app/views/admin/appearances/show.html.haml +++ b/app/views/admin/appearances/show.html.haml @@ -1,9 +1,9 @@ -- page_title "Appearance" +- page_title _("Appearance") %h3.page-title - Appearance settings + = _('Appearance settings') %p.light - You can modify the look and feel of GitLab here + = _('You can modify the look and feel of GitLab here') %hr = render 'form' diff --git a/app/views/admin/background_jobs/show.html.haml b/app/views/admin/background_jobs/show.html.haml index faa5854bb40886..c632df68db148e 100644 --- a/app/views/admin/background_jobs/show.html.haml +++ b/app/views/admin/background_jobs/show.html.haml @@ -1,30 +1,31 @@ - @no_container = true -- page_title "Background Jobs" +- page_title _("Background Jobs") %div{ class: container_class } - %h3.page-title Background Jobs - %p.light GitLab uses #{link_to "sidekiq", "http://sidekiq.org/"} library for async job processing + %h3.page-title= _('Background Jobs') + %p.light + = _('GitLab uses %{link} library for async job processing').html_safe % { link: link_to("sidekiq", "http://sidekiq.org/") } %hr .card - .card-header Sidekiq running processes + .card-header= _('Sidekiq running processes') .card-body - if @sidekiq_processes.empty? %h4.cred %i.fa.fa-exclamation-triangle - There are no running sidekiq processes. Please restart GitLab + = _('There are no running sidekiq processes. Please restart GitLab') - else .table-holder %table.table %thead - %th USER - %th PID - %th CPU - %th MEM - %th STATE - %th START - %th COMMAND + %th= _('USER') + %th= _('PID') + %th= _('CPU') + %th= _('MEM') + %th= _('STATE') + %th= _('START') + %th= _('COMMAND') %tbody - @sidekiq_processes.each do |process| %tr @@ -34,10 +35,10 @@ .clearfix %p %i.fa.fa-exclamation-circle - If '[#{@concurrency} of #{@concurrency} busy]' is shown, restart GitLab with 'sudo service gitlab reload'. + = _("If '[%{concurrency} of %{concurrency} busy]' is shown, restart GitLab with 'sudo service gitlab reload'.") % { concurrency: @concurrency } %p %i.fa.fa-exclamation-circle - If more than one sidekiq process is listed, stop GitLab, kill the remaining sidekiq processes (sudo pkill -u #{gitlab_config.user} -f sidekiq) and restart GitLab. + = _("If more than one sidekiq process is listed, stop GitLab, kill the remaining sidekiq processes (sudo pkill -u %{gitlab_config_user} -f sidekiq) and restart GitLab.") % { gitlab_config_user: gitlab_config.user } diff --git a/app/views/admin/broadcast_messages/_form.html.haml b/app/views/admin/broadcast_messages/_form.html.haml index 7f34357f147d3e..c7ca124f7a3be7 100644 --- a/app/views/admin/broadcast_messages/_form.html.haml +++ b/app/views/admin/broadcast_messages/_form.html.haml @@ -4,7 +4,7 @@ - if @broadcast_message.message.present? = render_broadcast_message(@broadcast_message) - else - Your message here + = _('Your message here') = form_for [:admin, @broadcast_message], html: { class: 'broadcast-message-form js-quick-submit js-requires-input'} do |f| = form_errors(@broadcast_message) @@ -17,13 +17,13 @@ data: { preview_path: preview_admin_broadcast_messages_path } .form-group.row.js-toggle-colors-container .col-sm-10.offset-sm-2 - = link_to 'Customize colors', '#', class: 'js-toggle-colors-link' + = link_to _('Customize colors'), '#', class: 'js-toggle-colors-link' .form-group.row.js-toggle-colors-container.toggle-colors.hide - = f.label :color, "Background Color", class: 'col-form-label col-sm-2' + = f.label :color, _("Background Color"), class: 'col-form-label col-sm-2' .col-sm-10 = f.color_field :color, class: "form-control" .form-group.row.js-toggle-colors-container.toggle-colors.hide - = f.label :font, "Font Color", class: 'col-form-label col-sm-2' + = f.label :font, _("Font Color"), class: 'col-form-label col-sm-2' .col-sm-10 = f.color_field :font, class: "form-control" .form-group.row @@ -36,6 +36,6 @@ = f.datetime_select :ends_at, {}, class: 'form-control form-control-inline' .form-actions - if @broadcast_message.persisted? - = f.submit "Update broadcast message", class: "btn btn-create" + = f.submit _("Update broadcast message"), class: "btn btn-create" - else - = f.submit "Add broadcast message", class: "btn btn-create" + = f.submit _("Add broadcast message"), class: "btn btn-create" diff --git a/app/views/admin/broadcast_messages/edit.html.haml b/app/views/admin/broadcast_messages/edit.html.haml index 8cbc4597e32942..569aaa29cc4546 100644 --- a/app/views/admin/broadcast_messages/edit.html.haml +++ b/app/views/admin/broadcast_messages/edit.html.haml @@ -1,4 +1,4 @@ -- breadcrumb_title "Messages" -- page_title "Broadcast Messages" +- breadcrumb_title _("Messages") +- page_title _("Broadcast Messages") = render 'form' diff --git a/app/views/admin/broadcast_messages/index.html.haml b/app/views/admin/broadcast_messages/index.html.haml index 9ef58faf8ccbea..1bd8ed0a7c30f3 100644 --- a/app/views/admin/broadcast_messages/index.html.haml +++ b/app/views/admin/broadcast_messages/index.html.haml @@ -1,11 +1,10 @@ -- breadcrumb_title "Messages" -- page_title "Broadcast Messages" +- breadcrumb_title _("Messages") +- page_title _("Broadcast Messages") %h3.page-title - Broadcast Messages + = _('Broadcast Messages') %p.light - Broadcast messages are displayed for every user and can be used to notify - users about scheduled maintenance, recent upgrades and more. + = _('Broadcast messages are displayed for every user and can be used to notify users about scheduled maintenance, recent upgrades and more.') = render 'form' @@ -15,10 +14,10 @@ %table.table %thead %tr - %th Status - %th Preview - %th Starts - %th Ends + %th= _('Status') + %th= _('Preview') + %th= _('Starts') + %th= _('Ends') %th   %tbody - @broadcast_messages.each do |message| @@ -32,7 +31,7 @@ %td = message.ends_at %td - = link_to icon('pencil-square-o'), edit_admin_broadcast_message_path(message), title: 'Edit', class: 'btn btn-sm' - = link_to icon('times'), admin_broadcast_message_path(message), method: :delete, remote: true, title: 'Remove', class: 'js-remove-tr btn btn-sm btn-danger' + = link_to icon('pencil-square-o'), edit_admin_broadcast_message_path(message), title: _('Edit'), class: 'btn btn-sm' + = link_to icon('times'), admin_broadcast_message_path(message), method: :delete, remote: true, title: _('Remove'), class: 'js-remove-tr btn btn-sm btn-danger' = paginate @broadcast_messages, theme: 'gitlab' diff --git a/app/views/admin/dashboard/index.html.haml b/app/views/admin/dashboard/index.html.haml index fac61f9d249456..5abcad83761d0a 100644 --- a/app/views/admin/dashboard/index.html.haml +++ b/app/views/admin/dashboard/index.html.haml @@ -1,5 +1,5 @@ - @no_container = true -- breadcrumb_title "Dashboard" +- breadcrumb_title _("Dashboard") %div{ class: container_class } = render_if_exists 'admin/licenses/breakdown', license: @license @@ -11,154 +11,147 @@ .well-segment.well-centered = link_to admin_projects_path do %h3.text-center - Projects: + = _("Projects:") = approximate_count_with_delimiters(@counts, Project) %hr - = link_to('New project', new_project_path, class: "btn btn-new") + = link_to(_('New project'), new_project_path, class: "btn btn-new") .col-sm-4 .info-well.dark-well .well-segment.well-centered = link_to admin_users_path do %h3.text-center - Users: + = _("Users:") = approximate_count_with_delimiters(@counts, User) = render_if_exists 'admin/dashboard/users_statistics' %hr - = link_to 'New user', new_admin_user_path, class: "btn btn-new" + = link_to _('New user'), new_admin_user_path, class: "btn btn-new" .col-sm-4 .info-well.dark-well .well-segment.well-centered = link_to admin_groups_path do %h3.text-center - Groups: + = _("Groups:") = approximate_count_with_delimiters(@counts, Group) %hr - = link_to 'New group', new_admin_group_path, class: "btn btn-new" + = link_to _('New group'), new_admin_group_path, class: "btn btn-new" .row .col-md-4 .info-well .well-segment.admin-well.admin-well-statistics - %h4 Statistics + %h4= _('Statistics') %p - Forks + = _('Forks') %span.light.float-right = approximate_count_with_delimiters(@counts, ForkedProjectLink) %p - Issues + = _('Issues') %span.light.float-right = approximate_count_with_delimiters(@counts, Issue) %p - Merge Requests + = _('Merge Requests') %span.light.float-right = approximate_count_with_delimiters(@counts, MergeRequest) %p - Notes + = _('Notes') %span.light.float-right = approximate_count_with_delimiters(@counts, Note) %p - Snippets + = _('Snippets') %span.light.float-right = approximate_count_with_delimiters(@counts, Snippet) %p - SSH Keys + = _('SSH Keys') %span.light.float-right = approximate_count_with_delimiters(@counts, Key) %p - Milestones + = _('Milestones') %span.light.float-right = approximate_count_with_delimiters(@counts, Milestone) %p - Active Users + = _('Active Users') %span.light.float-right = number_with_delimiter(User.active.count) .col-md-4 .info-well .well-segment.admin-well.admin-well-features - %h4 Features - - sign_up = "Sign up" - %p{ "aria-label" => "#{sign_up}: status " + (allow_signup? ? "on" : "off") } - = sign_up + %h4= _('Features') + %p{ "aria-label" => _("Sign up: status %{on_or_off}") % { on_or_off: allow_signup? ? _("on") : _("off") } } + = _("Sign up") %span.light.float-right = boolean_to_icon allow_signup? - - ldap = "LDAP" - %p{ "aria-label" => "#{ldap}: status " + (Gitlab.config.ldap.enabled ? "on" : "off") } - = ldap + %p{ "aria-label" => _("LDAP: status %{on_or_off}") % { on_or_off: (Gitlab.config.ldap.enabled ? _("on") : _("off")) } } + = _("LDAP") %span.light.float-right = boolean_to_icon Gitlab.config.ldap.enabled - - gravatar = "Gravatar" - %p{ "aria-label" => "#{gravatar}: status " + (gravatar_enabled? ? "on" : "off") } - = gravatar + %p{ "aria-label" => _("Gravatar: status %{on_or_off}") % { on_or_off: (gravatar_enabled? ? _("on") : _("off")) } } + = _("Gravatar") %span.light.float-right = boolean_to_icon gravatar_enabled? - - omniauth = "OmniAuth" - %p{ "aria-label" => "#{omniauth}: status " + (Gitlab::Auth.omniauth_enabled? ? "on" : "off") } - = omniauth + %p{ "aria-label" => _("OmniAuth: status %{on_or_off}") % { on_or_off: (Gitlab::Auth.omniauth_enabled? ? _("on") : _("off")) } } + = _("OmniAuth") %span.light.float-right = boolean_to_icon Gitlab::Auth.omniauth_enabled? - - reply_email = "Reply by email" - %p{ "aria-label" => "#{reply_email}: status " + (Gitlab::IncomingEmail.enabled? ? "on" : "off") } - = reply_email + %p{ "aria-label" => _("Reply by email: status %{on_or_off}") % { on_or_off: (Gitlab::IncomingEmail.enabled? ? _("on") : _("off")) } } + = _("Reply by email") %span.light.float-right = boolean_to_icon Gitlab::IncomingEmail.enabled? = render_if_exists 'admin/dashboard/elastic_and_geo' - - container_reg = "Container Registry" - %p{ "aria-label" => "#{container_reg}: status " + (Gitlab.config.registry.enabled ? "on" : "off") } - = container_reg + - container_reg = _("") + %p{ "aria-label" => _("Container Registry: status %{on_or_off}") % { on_or_off: (Gitlab.config.registry.enabled ? _("on") : _("off")) } } + = _("Container Registry") %span.light.float-right = boolean_to_icon Gitlab.config.registry.enabled - - gitlab_pages = 'GitLab Pages' - gitlab_pages_enabled = Gitlab.config.pages.enabled - %p{ "aria-label" => "#{gitlab_pages}: status " + (gitlab_pages_enabled ? "on" : "off") } - = gitlab_pages + %p{ "aria-label" => _("GitLab Pages: status %{on_or_off}") % { on_or_off: (gitlab_pages_enabled ? _("on") : _("off")) } } + = _("GitLab Pages") %span.light.float-right = boolean_to_icon gitlab_pages_enabled - - gitlab_shared_runners = 'Shared Runners' - gitlab_shared_runners_enabled = Gitlab.config.gitlab_ci.shared_runners_enabled - %p{ "aria-label" => "#{gitlab_shared_runners}: status " + (gitlab_shared_runners_enabled ? "on" : "off") } - = gitlab_shared_runners + %p{ "aria-label" => _("Shared Runners: status %{on_or_off}") % { on_or_off: (gitlab_shared_runners_enabled ? _("on") : _("off")) } } + = _("Shared Runners") %span.light.float-right = boolean_to_icon gitlab_shared_runners_enabled .col-md-4 .info-well .well-segment.admin-well %h4 - Components + = _('Components') - if Gitlab::CurrentSettings.version_check_enabled .float-right = version_status_badge %p - GitLab + = _('GitLab') %span.float-right = Gitlab::VERSION = "(#{Gitlab.revision})" %p - GitLab Shell + = _('GitLab Shell') %span.float-right = Gitlab::Shell.new.version %p - GitLab Workhorse + = _('GitLab Workhorse') %span.float-right = gitlab_workhorse_version %p - GitLab API + = _('GitLab API') %span.float-right = API::API::version - if Gitlab.config.pages.enabled %p - GitLab Pages + = _('GitLab Pages') %span.float-right = Gitlab::Pages::VERSION = render_if_exists 'admin/dashboard/geo' %p - Ruby + = _('Ruby') %span.float-right #{RUBY_VERSION}p#{RUBY_PATCHLEVEL} %p - Rails + = _('Rails') %span.float-right #{Rails::VERSION::STRING} %p @@ -166,12 +159,12 @@ %span.float-right = Gitlab::Database.version %p - = link_to "Gitaly Servers", admin_gitaly_servers_path + = link_to _("Gitaly Servers"), admin_gitaly_servers_path .row .col-md-4 .info-well .well-segment.admin-well - %h4 Latest projects + %h4= _('Latest projects') - @projects.each do |project| %p = link_to project.full_name, [:admin, project.namespace.becomes(Namespace), project], class: 'str-truncated-60' @@ -180,7 +173,7 @@ .col-md-4 .info-well .well-segment.admin-well - %h4 Latest users + %h4= _('Latest users') - @users.each do |user| %p = link_to [:admin, user], class: 'str-truncated-60' do @@ -190,7 +183,7 @@ .col-md-4 .info-well .well-segment.admin-well - %h4 Latest groups + %h4= _('Latest groups') - @groups.each do |group| %p = link_to [:admin, group], class: 'str-truncated-60' do diff --git a/app/views/admin/deploy_keys/edit.html.haml b/app/views/admin/deploy_keys/edit.html.haml index b50adef362f65e..f9c1497db1431f 100644 --- a/app/views/admin/deploy_keys/edit.html.haml +++ b/app/views/admin/deploy_keys/edit.html.haml @@ -1,10 +1,10 @@ -- page_title 'Edit Deploy Key' -%h3.page-title Edit public deploy key +- page_title _('Edit Deploy Key') +%h3.page-title= _("Edit public deploy key") %hr %div = form_for [:admin, @deploy_key], html: { class: 'deploy-key-form' } do |f| = render partial: 'shared/deploy_keys/form', locals: { form: f, deploy_key: @deploy_key } .form-actions - = f.submit 'Save changes', class: 'btn-save btn' - = link_to 'Cancel', admin_deploy_keys_path, class: 'btn btn-cancel' + = f.submit _('Save changes'), class: 'btn-save btn' + = link_to _('Cancel'), admin_deploy_keys_path, class: 'btn btn-cancel' diff --git a/app/views/admin/deploy_keys/index.html.haml b/app/views/admin/deploy_keys/index.html.haml index 52ab8bae11924b..e4dcb700bafb04 100644 --- a/app/views/admin/deploy_keys/index.html.haml +++ b/app/views/admin/deploy_keys/index.html.haml @@ -1,19 +1,19 @@ -- page_title "Deploy Keys" +- page_title _("Deploy Keys") %h3.page-title.deploy-keys-title - Public deploy keys (#{@deploy_keys.count}) + #{ _("Public deploy keys") } (#{@deploy_keys.count}) .float-right - = link_to 'New deploy key', new_admin_deploy_key_path, class: 'btn btn-new btn-sm btn-inverted' + = link_to _('New deploy key'), new_admin_deploy_key_path, class: 'btn btn-new btn-sm btn-inverted' - if @deploy_keys.any? .table-holder.deploy-keys-list %table.table %thead %tr - %th.col-sm-2 Title - %th.col-sm-4 Fingerprint - %th.col-sm-2 Projects with write access - %th.col-sm-2 Added at + %th.col-sm-2= _('Title') + %th.col-sm-4= _('Fingerprint') + %th.col-sm-2= _('Projects with write access') + %th.col-sm-2= _('Added at') %th.col-sm-2 %tbody - @deploy_keys.each do |deploy_key| @@ -27,8 +27,8 @@ = link_to project.full_name, admin_project_path(project), class: 'label deploy-project-label' %td %span.cgray - added #{time_ago_with_tooltip(deploy_key.created_at)} + = _('added %{deploy_key_created_time}').html_safe % { deploy_key_created_time: time_ago_with_tooltip(deploy_key.created_at) } %td .float-right - = link_to 'Edit', edit_admin_deploy_key_path(deploy_key), class: 'btn btn-sm' - = link_to 'Remove', admin_deploy_key_path(deploy_key), data: { confirm: 'Are you sure?'}, method: :delete, class: 'btn btn-sm btn-remove delete-key' + = link_to _('Edit'), edit_admin_deploy_key_path(deploy_key), class: 'btn btn-sm' + = link_to _('Remove'), admin_deploy_key_path(deploy_key), data: { confirm: _('Are you sure?') }, method: :delete, class: 'btn btn-sm btn-remove delete-key' diff --git a/app/views/admin/deploy_keys/new.html.haml b/app/views/admin/deploy_keys/new.html.haml index d4f8e340b69252..06b86b0a9b2341 100644 --- a/app/views/admin/deploy_keys/new.html.haml +++ b/app/views/admin/deploy_keys/new.html.haml @@ -1,10 +1,10 @@ -- page_title 'New Deploy Key' -%h3.page-title New public deploy key +- page_title _('New Deploy Key') +%h3.page-title= _('New public deploy key') %hr %div = form_for [:admin, @deploy_key], html: { class: 'deploy-key-form' } do |f| = render partial: 'shared/deploy_keys/form', locals: { form: f, deploy_key: @deploy_key } .form-actions - = f.submit 'Create', class: 'btn-create btn' - = link_to 'Cancel', admin_deploy_keys_path, class: 'btn btn-cancel' + = f.submit _('Create'), class: 'btn-create btn' + = link_to _('Cancel'), admin_deploy_keys_path, class: 'btn btn-cancel' diff --git a/app/views/admin/health_check/show.html.haml b/app/views/admin/health_check/show.html.haml index 11fe14fca837c6..f6cbf0e25585e2 100644 --- a/app/views/admin/health_check/show.html.haml +++ b/app/views/admin/health_check/show.html.haml @@ -29,7 +29,7 @@ %hr .card .card-header - Current Status: + = _('Current Status:') - if no_errors = icon('circle', class: 'cgreen') #{ s_('HealthCheck|Healthy') } diff --git a/app/views/admin/hook_logs/_index.html.haml b/app/views/admin/hook_logs/_index.html.haml index 1d7c9930b6a930..5f57ce1bcdd9ab 100644 --- a/app/views/admin/hook_logs/_index.html.haml +++ b/app/views/admin/hook_logs/_index.html.haml @@ -1,18 +1,19 @@ .row.prepend-top-default.append-bottom-default .col-lg-3 %h4.prepend-top-0 - Recent Deliveries - %p When an event in GitLab triggers a webhook, you can use the request details to figure out if something went wrong. + = _('Recent Deliveries') + %p + = _('When an event in GitLab triggers a webhook, you can use the request details to figure out if something went wrong.') .col-lg-9 - if hook_logs.any? %table.table %thead %tr - %th Status - %th Trigger - %th URL - %th Elapsed time - %th Request time + %th= _('Status') + %th= _('Trigger') + %th= _('URL') + %th= _('Elapsed time') + %th= _('Request time') %th - hook_logs.each do |hook_log| %tr @@ -28,10 +29,10 @@ %td.light = time_ago_with_tooltip(hook_log.created_at) %td - = link_to 'View details', admin_hook_hook_log_path(hook, hook_log) + = link_to _('View details'), admin_hook_hook_log_path(hook, hook_log) = paginate hook_logs, theme: 'gitlab' - else .settings-message.text-center - You don't have any webhooks deliveries + = _("You don't have any webhooks deliveries") diff --git a/app/views/admin/hook_logs/show.html.haml b/app/views/admin/hook_logs/show.html.haml index 2eb3ac857225da..ae137a908dde93 100644 --- a/app/views/admin/hook_logs/show.html.haml +++ b/app/views/admin/hook_logs/show.html.haml @@ -1,10 +1,10 @@ -- page_title 'Request details' +- page_title _('Request details') %h3.page-title - Request details + = _('Request details') %hr -= link_to 'Resend Request', retry_admin_hook_hook_log_path(@hook, @hook_log), class: "btn btn-default float-right prepend-left-10" += link_to _('Resend Request'), retry_admin_hook_hook_log_path(@hook, @hook_log), class: "btn btn-default float-right prepend-left-10" = render partial: 'shared/hook_logs/content', locals: { hook_log: @hook_log } diff --git a/app/views/admin/hooks/_form.html.haml b/app/views/admin/hooks/_form.html.haml index 072f80b56b9e2e..15846f55a92d51 100644 --- a/app/views/admin/hooks/_form.html.haml +++ b/app/views/admin/hooks/_form.html.haml @@ -1,52 +1,51 @@ = form_errors(hook) .form-group - = form.label :url, 'URL', class: 'label-bold' + = form.label :url, _('URL'), class: 'label-bold' = form.text_field :url, class: 'form-control' .form-group - = form.label :token, 'Secret Token', class: 'label-bold' + = form.label :token, _('Secret Token'), class: 'label-bold' = form.text_field :token, class: 'form-control' %p.form-text.text-muted - Use this token to validate received payloads + = _('Use this token to validate received payloads') .form-group - = form.label :url, 'Trigger', class: 'label-bold' + = form.label :url, _('Trigger'), class: 'label-bold' %ul.list-unstyled %li .form-text.text-muted - System hook will be triggered on set of events like creating project - or adding ssh key. But you can also enable extra triggers like Push events. + = _('System hook will be triggered on set of events like creating project or adding ssh key. But you can also enable extra triggers like Push events.') .prepend-top-default = form.check_box :repository_update_events, class: 'float-left' .prepend-left-20 = form.label :repository_update_events, class: 'list-label' do - %strong Repository update events + %strong= _('Repository update events') %p.light - This URL will be triggered when repository is updated + = _('This URL will be triggered when repository is updated') %li = form.check_box :push_events, class: 'float-left' .prepend-left-20 = form.label :push_events, class: 'list-label' do - %strong Push events + %strong= _('Push events') %p.light - This URL will be triggered for each branch updated to the repository + = _('This URL will be triggered for each branch updated to the repository') %li = form.check_box :tag_push_events, class: 'float-left' .prepend-left-20 = form.label :tag_push_events, class: 'list-label' do - %strong Tag push events + %strong= _('Tag push events') %p.light - This URL will be triggered when a new tag is pushed to the repository + = _('This URL will be triggered when a new tag is pushed to the repository') %li = form.check_box :merge_requests_events, class: 'float-left' .prepend-left-20 = form.label :merge_requests_events, class: 'list-label' do - %strong Merge request events + %strong= _('Merge request events') %p.light - This URL will be triggered when a merge request is created/updated/merged + = _('This URL will be triggered when a merge request is created/updated/merged') .form-group - = form.label :enable_ssl_verification, 'SSL verification', class: 'label-bold checkbox' + = form.label :enable_ssl_verification, _('SSL verification'), class: 'label-bold checkbox' .form-check = form.check_box :enable_ssl_verification, class: 'form-check-input' = form.label :enable_ssl_verification, class: 'form-check-label' do - %strong Enable SSL verification + %strong= _("Enable SSL verification") diff --git a/app/views/admin/hooks/edit.html.haml b/app/views/admin/hooks/edit.html.haml index b9a650e1f1ffc6..078e93b58d59a7 100644 --- a/app/views/admin/hooks/edit.html.haml +++ b/app/views/admin/hooks/edit.html.haml @@ -1,20 +1,20 @@ -- add_to_breadcrumbs "System Hooks", admin_hooks_path -- page_title 'Edit System Hook' +- add_to_breadcrumbs _("System Hooks"), admin_hooks_path +- page_title _('Edit System Hook') %h3.page-title - Edit System Hook + = _('Edit System Hook') %p.light - #{link_to 'System hooks ', help_page_path('system_hooks/system_hooks'), class: 'vlink'} can be - used for binding events when GitLab creates a User or Project. + - link_to_system_hooks = link_to(_('System hooks'), help_page_path('system_hooks/system_hooks'), class: 'vlink') + = _('%{link_to_system_hooks} can be used for binding events when GitLab creates a User or Project.').html_safe % { link_to_system_hooks: link_to_system_hooks } %hr = form_for @hook, as: :hook, url: admin_hook_path do |f| = render partial: 'form', locals: { form: f, hook: @hook } .form-actions - = f.submit 'Save changes', class: 'btn btn-create' + = f.submit _('Save changes'), class: 'btn btn-create' = render 'shared/web_hooks/test_button', triggers: SystemHook.triggers, hook: @hook - = link_to 'Remove', admin_hook_path(@hook), method: :delete, class: 'btn btn-remove float-right', data: { confirm: 'Are you sure?' } + = link_to _('Remove'), admin_hook_path(@hook), method: :delete, class: 'btn btn-remove float-right', data: { confirm: _('Are you sure?') } %hr diff --git a/app/views/admin/hooks/index.html.haml b/app/views/admin/hooks/index.html.haml index 87f9b0e86a79de..cdcdb94a459990 100644 --- a/app/views/admin/hooks/index.html.haml +++ b/app/views/admin/hooks/index.html.haml @@ -1,35 +1,36 @@ -- page_title 'System Hooks' +- page_title _('System Hooks') .row.prepend-top-default .col-lg-4 %h4.prepend-top-0 = page_title %p - #{link_to 'System hooks ', help_page_path('system_hooks/system_hooks'), class: 'vlink'} can be - used for binding events when GitLab creates a User or Project. + - link_to_system_hooks = link_to(_('System hooks'), help_page_path('system_hooks/system_hooks'), class: 'vlink') + = _('%{link_to_system_hooks} can be used for binding events when GitLab creates a User or Project.').html_safe % { link_to_system_hooks: link_to_system_hooks } .col-lg-8.append-bottom-default = form_for @hook, as: :hook, url: admin_hooks_path do |f| = render partial: 'form', locals: { form: f, hook: @hook } - = f.submit 'Add system hook', class: 'btn btn-create' + = f.submit _('Add system hook'), class: 'btn btn-create' %hr - if @hooks.any? .card .card-header - System hooks (#{@hooks.count}) + = _('System hooks (%{hooks_count})') % { hooks_count: @hooks.count } %ul.content-list - @hooks.each do |hook| %li .controls = render 'shared/web_hooks/test_button', triggers: SystemHook.triggers, hook: hook, button_class: 'btn-sm' - = link_to 'Edit', edit_admin_hook_path(hook), class: 'btn btn-sm' - = link_to 'Remove', admin_hook_path(hook), data: { confirm: 'Are you sure?' }, method: :delete, class: 'btn btn-remove btn-sm' + = link_to _('Edit'), edit_admin_hook_path(hook), class: 'btn btn-sm' + = link_to _('Remove'), admin_hook_path(hook), data: { confirm: _('Are you sure?') }, method: :delete, class: 'btn btn-remove btn-sm' .monospace= hook.url %div - SystemHook.triggers.each_value do |event| - if hook.public_send(event) %span.badge.badge-gray= event.to_s.titleize - %span.badge.badge-gray SSL Verification: #{hook.enable_ssl_verification ? 'enabled' : 'disabled'} + %span.badge.badge-gray + = _('SSL Verification: %{hook_enabled}') % { hook_enabled: hook.enable_ssl_verification ? _('enabled') : _('disabled') } = render 'shared/plugins/index' diff --git a/app/views/admin/impersonation_tokens/index.html.haml b/app/views/admin/impersonation_tokens/index.html.haml index 9e490713ef3872..7ff74efbc16f9e 100644 --- a/app/views/admin/impersonation_tokens/index.html.haml +++ b/app/views/admin/impersonation_tokens/index.html.haml @@ -1,6 +1,6 @@ -- add_to_breadcrumbs "Users", admin_users_path +- add_to_breadcrumbs _("Users"), admin_users_path - breadcrumb_title @user.name -- page_title "Impersonation Tokens", @user.name, "Users" +- page_title _("Impersonation Tokens"), @user.name, _("Users") = render 'admin/users/head' .row.prepend-top-default diff --git a/app/views/admin/jobs/index.html.haml b/app/views/admin/jobs/index.html.haml index 4e3e2f7a475802..3173635542906d 100644 --- a/app/views/admin/jobs/index.html.haml +++ b/app/views/admin/jobs/index.html.haml @@ -1,4 +1,4 @@ -- breadcrumb_title "Jobs" +- breadcrumb_title _("Jobs") - @no_container = true %div{ class: container_class } diff --git a/app/views/admin/keys/show.html.haml b/app/views/admin/keys/show.html.haml index 9ee77c77398bb0..03cc0ae15be03d 100644 --- a/app/views/admin/keys/show.html.haml +++ b/app/views/admin/keys/show.html.haml @@ -1,2 +1,2 @@ -- page_title @key.title, "Keys" +- page_title @key.title, _("Keys") = render "profiles/keys/key_details", admin: true diff --git a/app/views/admin/logs/show.html.haml b/app/views/admin/logs/show.html.haml index e4c0382a4376c3..eac1324e620e7b 100644 --- a/app/views/admin/logs/show.html.haml +++ b/app/views/admin/logs/show.html.haml @@ -1,5 +1,5 @@ - @no_container = true -- page_title "Logs" +- page_title _("Logs") %div{ class: container_class } %ul.nav-links.log-tabs.nav.nav-tabs @@ -7,7 +7,7 @@ %li.nav-item = link_to klass.file_name, "##{klass.file_name_noext}", data: { toggle: 'tab' }, class: "#{active_when(klass == @loggers.first)} nav-link" .row-content-block - To prevent performance issues admin logs output the last 2000 lines + = _('To prevent performance issues admin logs output the last 2000 lines') .tab-content - @loggers.each do |klass| .tab-pane{ class: active_when(klass == @loggers.first), id: klass.file_name_noext } @@ -18,7 +18,7 @@ .float-right = link_to '#', class: 'log-bottom' do %i.fa.fa-arrow-down - Scroll down + = _('Scroll down') .file-content.logs %ol - klass.read_latest.each do |line| diff --git a/app/views/admin/projects/_projects.html.haml b/app/views/admin/projects/_projects.html.haml index 50296a2afe7497..18f4927b0e0de5 100644 --- a/app/views/admin/projects/_projects.html.haml +++ b/app/views/admin/projects/_projects.html.haml @@ -4,7 +4,7 @@ - @projects.each_with_index do |project| %li.project-row{ class: ('no-description' if project.description.blank?) } .controls - = link_to 'Edit', edit_project_path(project), id: "edit_#{dom_id(project)}", class: "btn" + = link_to _('Edit'), edit_project_path(project), id: "edit_#{dom_id(project)}", class: "btn" %button.delete-project-button.btn.btn-danger{ data: { toggle: 'modal', target: '#delete-project-modal', delete_project_url: project_path(project), @@ -15,7 +15,7 @@ %span.badge.badge-pill = storage_counter(project.statistics.storage_size) - if project.archived - %span.badge.badge-warning archived + %span.badge.badge-warning= _('archived') .title = link_to(admin_namespace_project_path(project.namespace, project)) do .dash-project-avatar @@ -35,6 +35,6 @@ = paginate @projects, theme: 'gitlab' - else - .nothing-here-block No projects found + .nothing-here-block= _('No projects found') #delete-project-modal diff --git a/app/views/admin/projects/index.html.haml b/app/views/admin/projects/index.html.haml index 57de792f92d0be..8c1de2b3953775 100644 --- a/app/views/admin/projects/index.html.haml +++ b/app/views/admin/projects/index.html.haml @@ -1,5 +1,5 @@ - @no_container = true -- page_title "Projects" +- page_title _("Projects") - params[:visibility_level] ||= [] @@ -9,36 +9,36 @@ .search-holder = render 'shared/projects/search_form', autofocus: true, icon: true .dropdown - - toggle_text = 'Namespace' + - toggle_text = _('Namespace') - if params[:namespace_id].present? = hidden_field_tag :namespace_id, params[:namespace_id] - namespace = Namespace.find(params[:namespace_id]) - toggle_text = "#{namespace.kind}: #{namespace.full_path}" = dropdown_toggle(toggle_text, { toggle: 'dropdown', is_filter: 'true' }, { toggle_class: 'js-namespace-select large' }) .dropdown-menu.dropdown-select.dropdown-menu-right - = dropdown_title('Namespaces') - = dropdown_filter("Search for Namespace") + = dropdown_title(_('Namespaces')) + = dropdown_filter(_("Search for Namespace")) = dropdown_content = dropdown_loading = render 'shared/projects/dropdown' = link_to new_project_path, class: 'btn btn-new' do - New Project - = button_tag "Search", class: "btn btn-primary btn-search hide" + = _('New Project') + = button_tag _("Search"), class: "btn btn-primary btn-search hide" %ul.nav-links.nav.nav-tabs - opts = params[:visibility_level].present? ? {} : { page: admin_projects_path } = nav_link(opts) do = link_to admin_projects_path do - All + = _('All') = nav_link(html_options: { class: active_when(params[:visibility_level] == Gitlab::VisibilityLevel::PRIVATE.to_s) }) do = link_to admin_projects_path(visibility_level: Gitlab::VisibilityLevel::PRIVATE) do - Private + = _('Private') = nav_link(html_options: { class: active_when(params[:visibility_level] == Gitlab::VisibilityLevel::INTERNAL.to_s) }) do = link_to admin_projects_path(visibility_level: Gitlab::VisibilityLevel::INTERNAL) do - Internal + = _('Internal') = nav_link(html_options: { class: active_when(params[:visibility_level] == Gitlab::VisibilityLevel::PUBLIC.to_s) }) do = link_to admin_projects_path(visibility_level: Gitlab::VisibilityLevel::PUBLIC) do - Public + = _('Public') = render 'projects' diff --git a/app/views/admin/projects/show.html.haml b/app/views/admin/projects/show.html.haml index c1ed2aa4ea870e..b42057091122d1 100644 --- a/app/views/admin/projects/show.html.haml +++ b/app/views/admin/projects/show.html.haml @@ -1,11 +1,11 @@ -- add_to_breadcrumbs "Projects", admin_projects_path +- add_to_breadcrumbs _("Projects"), admin_projects_path - breadcrumb_title @project.full_name -- page_title @project.full_name, "Projects" +- page_title @project.full_name, _("Projects") %h3.page-title - Project: #{@project.full_name} + = _('Project: %{name}') % { name: @project.full_name } = link_to edit_project_path(@project), class: "btn btn-nr float-right" do %i.fa.fa-pencil-square-o - Edit + = _('Edit') %hr - if @project.last_repository_check_failed? .row @@ -21,34 +21,34 @@ .col-md-6 .card .card-header - Project info: + = _("Project info:") %ul.content-list %li - %span.light Name: + %span.light= _('Name:') %strong = link_to @project.name, project_path(@project) %li - %span.light Namespace: + %span.light= _('Namespace:') %strong - if @project.namespace = link_to @project.namespace.human_name, [:admin, @project.group || @project.owner] - else - Global + = _('Global') %li - %span.light Owned by: + %span.light= _('Owned by:') %strong - if @project.owner = link_to @project.owner_name, [:admin, @project.owner] - else - (deleted) + = _('(deleted)') %li - %span.light Created by: + %span.light= _('Created by:') %strong - = @project.creator.try(:name) || '(deleted)' + = @project.creator.try(:name) || _('(deleted)') %li - %span.light Created on: + %span.light= _('Created on:') %strong = @project.created_at.to_s(:medium) @@ -62,51 +62,47 @@ = link_to @project.ssh_url_to_repo, project_path(@project) - if @project.repository.exists? %li - %span.light Gitaly storage name: + %span.light= _('Gitaly storage name:') %strong = @project.repository.storage %li - %span.light Gitaly relative path: + %span.light= _('Gitaly relative path:') %strong = @project.repository.relative_path %li - %span.light Storage used: - %strong= storage_counter(@project.statistics.storage_size) - ( - = storage_counter(@project.statistics.repository_size) - repository, - = storage_counter(@project.statistics.build_artifacts_size) - build artifacts, - = storage_counter(@project.statistics.lfs_objects_size) - LFS - ) + %span.light= _('Storage used:') + - counter_storage = storage_counter(@project.statistics.storage_size) + - counter_repository = storage_counter(@project.statistics.repository_size) + - counter_build_artifacts = storage_counter(@project.statistics.build_artifacts_size) + - counter_lfs_objects = storage_counter(@project.statistics.lfs_objects_size) + = _('%{counter_storage} (%{counter_repository} repository, %{counter_build_artifacts} build artifacts, %{counter_lfs_objects} LFS)').html_safe % { counter_storage: counter_storage, counter_repository: counter_repository, counter_build_artifacts: counter_build_artifacts, counter_lfs_objects: counter_lfs_objects } %li - %span.light last commit: + %span.light= _('last commit:') %strong = last_commit(@project) %li - %span.light Git LFS status: + %span.light= _('Git LFS status:') %strong = project_lfs_status(@project) = link_to icon('question-circle'), help_page_path('workflow/lfs/manage_large_binaries_with_git_lfs') - else %li - %span.light repository: + %span.light= _('repository:') %strong.cred - does not exist + = _('does not exist') - if @project.archived? %li - %span.light archived: - %strong project is read-only + %span.light= _('archived:') + %strong= _('project is read-only') = render "shared_runner_status", project: @project %li - %span.light access: + %span.light= _('access:') %strong %span{ class: visibility_level_color(@project.visibility_level) } = visibility_level_icon(@project.visibility_level) @@ -114,60 +110,55 @@ .card .card-header - Transfer project + = _('Transfer project') .card-body = form_for @project, url: transfer_admin_project_path(@project), method: :put do |f| .form-group.row - = f.label :new_namespace_id, "Namespace", class: 'col-form-label col-sm-3' + = f.label :new_namespace_id, _("Namespace"), class: 'col-form-label col-sm-3' .col-sm-9 .dropdown - = dropdown_toggle('Search for Namespace', { toggle: 'dropdown', field_name: 'new_namespace_id' }, { toggle_class: 'js-namespace-select large' }) + = dropdown_toggle(_('Search for Namespace'), { toggle: 'dropdown', field_name: 'new_namespace_id' }, { toggle_class: 'js-namespace-select large' }) .dropdown-menu.dropdown-select - = dropdown_title('Namespaces') - = dropdown_filter("Search for Namespace") + = dropdown_title(_('Namespaces')) + = dropdown_filter(_("Search for Namespace")) = dropdown_content = dropdown_loading .form-group.row .offset-sm-3.col-sm-9 - = f.submit 'Transfer', class: 'btn btn-primary' + = f.submit _('Transfer'), class: 'btn btn-primary' .card.repository-check .card-header - Repository check + = _('Repository check') .card-body = form_for @project, url: repository_check_admin_project_path(@project), method: :post do |f| .form-group - if @project.last_repository_check_at.nil? - This repository has never been checked. + = _('This repository has never been checked.') - else - This repository was last checked - = @project.last_repository_check_at.to_s(:medium) + '.' - The check + = _('This repository was last checked %{time}.').html_safe % { time: @project.last_repository_check_at.to_s(:medium) } - if @project.last_repository_check_failed? - = succeed '.' do - %strong.cred failed - See - = link_to 'repocheck.log', admin_logs_path - for error messages. + - link_to_repocheck = link_to('repocheck.log', admin_logs_path) + = _('The check failed. See %{link_to_repocheck} for error messages.').html_safe % { link_to_repocheck: link_to_repocheck } - else - passed. + = _('The check passed.') = link_to icon('question-circle'), help_page_path('administration/repository_checks') .form-group - = f.submit 'Trigger repository check', class: 'btn btn-primary' + = f.submit _('Trigger repository check'), class: 'btn btn-primary' .col-md-6 - if @group .card .card-header %strong= @group.name - group members + = _('group members') %span.badge.badge-pill= @group_members.size .float-right = link_to admin_group_path(@group), class: 'btn btn-sm' do - = icon('pencil-square-o', text: 'Manage access') + = icon('pencil-square-o', text: _('Manage access')) %ul.content-list.members-list = render partial: 'shared/members/member', collection: @group_members, as: :member, locals: { show_controls: false } .card-footer @@ -178,10 +169,10 @@ .card .card-header %strong= @project.name - project members + = _('project members') %span.badge.badge-pill= @project.users.size .float-right - = link_to icon('pencil-square-o', text: 'Manage access'), polymorphic_url([@project, :members]), class: "btn btn-sm" + = link_to icon('pencil-square-o', text: _('Manage access')), polymorphic_url([@project, :members]), class: "btn btn-sm" %ul.content-list.project_members.members-list = render partial: 'shared/members/member', collection: @project_members, as: :member, locals: { show_controls: false } .card-footer diff --git a/app/views/admin/requests_profiles/index.html.haml b/app/views/admin/requests_profiles/index.html.haml index adfc67d66d08e1..48388ee65159d8 100644 --- a/app/views/admin/requests_profiles/index.html.haml +++ b/app/views/admin/requests_profiles/index.html.haml @@ -1,14 +1,12 @@ - @no_container = true -- page_title 'Requests Profiles' +- page_title _('Requests Profiles') %div{ class: container_class } %h3.page-title = page_title .bs-callout.clearfix - Pass the header - %code X-Profile-Token: #{@profile_token} - to profile the request + = _('Pass the header X-Profile-Token: %{profile_token} to profile the request').html_safe % { profile_token: @profile_token } - if @profiles.present? .prepend-top-default @@ -22,4 +20,4 @@ = link_to profile.time.to_s(:long), admin_requests_profile_path(profile) - else %p - No profiles found + = _('No profiles found') diff --git a/app/views/admin/runners/_runner.html.haml b/app/views/admin/runners/_runner.html.haml index 43937b013391c4..94646acad91d67 100644 --- a/app/views/admin/runners/_runner.html.haml +++ b/app/views/admin/runners/_runner.html.haml @@ -1,15 +1,15 @@ %tr{ id: dom_id(runner) } %td - if runner.instance_type? - %span.badge.badge-success shared + %span.badge.badge-success= _("shared") - elsif runner.group_type? - %span.badge.badge-success group + %span.badge.badge-success= _("group") - else - %span.badge.badge-info specific + %span.badge.badge-info= _("specific") - if runner.locked? - %span.badge.badge-warning locked + %span.badge.badge-warning= _("locked") - unless runner.active? - %span.badge.badge-danger paused + %span.badge.badge-danger= _("paused") %td = link_to admin_runner_path(runner) do @@ -22,7 +22,7 @@ = runner.ip_address %td - if runner.instance_type? || runner.group_type? - n/a + = _("n/a") - else = runner.projects.count(:all) %td @@ -35,17 +35,17 @@ - if runner.contacted_at = time_ago_with_tooltip runner.contacted_at - else - Never + = _("Never") %td.admin-runner-btn-group-cell .float-right.btn-group - = link_to admin_runner_path(runner), class: 'btn btn-sm btn-default has-tooltip', title: 'Edit', ref: 'tooltip', aria: { label: 'Edit' }, data: { placement: 'top', container: 'body'} do + = link_to admin_runner_path(runner), class: 'btn btn-sm btn-default has-tooltip', title: _('Edit'), ref: 'tooltip', aria: { label: _('Edit') }, data: { placement: 'top', container: 'body' } do = icon('pencil')   - if runner.active? - = link_to [:pause, :admin, runner], method: :get, class: 'btn btn-sm btn-default has-tooltip', title: 'Pause', ref: 'tooltip', aria: { label: 'Pause' }, data: { placement: 'top', container: 'body', confirm: "Are you sure?" } do + = link_to [:pause, :admin, runner], method: :get, class: 'btn btn-sm btn-default has-tooltip', title: _('Pause'), ref: 'tooltip', aria: { label: _('Pause') }, data: { placement: 'top', container: 'body', confirm: _("Are you sure?") } do = icon('pause') - else - = link_to [:resume, :admin, runner], method: :get, class: 'btn btn-default btn-sm has-tooltip', title: 'Resume', ref: 'tooltip', aria: { label: 'Resume' }, data: { placement: 'top', container: 'body'} do + = link_to [:resume, :admin, runner], method: :get, class: 'btn btn-default btn-sm has-tooltip', title: _('Resume'), ref: 'tooltip', aria: { label: _('Resume') }, data: { placement: 'top', container: 'body' } do = icon('play') - = link_to [:admin, runner], method: :delete, class: 'btn btn-danger btn-sm has-tooltip', title: 'Remove', ref: 'tooltip', aria: { label: 'Remove' }, data: { placement: 'top', container: 'body', confirm: "Are you sure?" } do + = link_to [:admin, runner], method: :delete, class: 'btn btn-danger btn-sm has-tooltip', title: _('Remove'), ref: 'tooltip', aria: { label: _('Remove') }, data: { placement: 'top', container: 'body', confirm: _("Are you sure?") } do = icon('remove') diff --git a/app/views/admin/runners/index.html.haml b/app/views/admin/runners/index.html.haml index 8dfd176f1b7aae..178a653f7263c1 100644 --- a/app/views/admin/runners/index.html.haml +++ b/app/views/admin/runners/index.html.haml @@ -1,38 +1,35 @@ -- breadcrumb_title "Runners" +- breadcrumb_title _("Runners") - @no_container = true %div{ class: container_class } .bs-callout %p - A 'Runner' is a process which runs a job. - You can setup as many Runners as you need. - %br - Runners can be placed on separate users, servers, even on your local machine. + = _("A 'Runner' is a process which runs a job. You can setup as many Runners as you need.
Runners can be placed on separate users, servers, even on your local machine.").html_safe %br %div - %span Each Runner can be in one of the following states: + %span= _("Each Runner can be in one of the following states:") %ul %li - %span.badge.badge-success shared - \- Runner runs jobs from all unassigned projects + %span.badge.badge-success= _("shared") + \- #{_("Runner runs jobs from all unassigned projects")} %li - %span.badge.badge-success group - \- Runner runs jobs from all unassigned projects in its group + %span.badge.badge-success= _("group") + \- #{_("Runner runs jobs from all unassigned projects in its group")} %li - %span.badge.badge-info specific - \- Runner runs jobs from assigned projects + %span.badge.badge-info= _("specific") + \- #{_("Runner runs jobs from assigned projects")} %li - %span.badge.badge-warning locked - \- Runner cannot be assigned to other projects + %span.badge.badge-warning= _("locked") + \- #{_("Runner cannot be assigned to other projects")} %li - %span.badge.badge-danger paused - \- Runner will not receive any new jobs + %span.badge.badge-danger= _("paused") + \- #{_("Runner will not receive any new jobs")} .bs-callout.clearfix .float-left %p - You can reset runners registration token by pressing a button below. + = _("You can reset runners registration token by pressing a button below.") .prepend-top-10 = button_to _("Reset runners registration token"), reset_runners_token_admin_application_settings_path, method: :put, class: 'btn btn-default', @@ -45,11 +42,11 @@ .float-left = form_tag admin_runners_path, id: 'runners-search', class: 'form-inline', method: :get do .form-group - = search_field_tag :search, params[:search], class: 'form-control input-short', placeholder: 'Runner description or token', spellcheck: false - = submit_tag 'Search', class: 'btn' + = search_field_tag :search, params[:search], class: 'form-control input-short', placeholder: _('Runner description or token'), spellcheck: false + = submit_tag _('Search'), class: 'btn' .float-right.light - Runners with last contact more than a minute ago: #{@active_runners_cnt} + = _("Runners with last contact more than a minute ago: %{active_runners_counter}") % { active_runners_counter: @active_runners_cnt } %br @@ -59,19 +56,19 @@ %table.table %thead %tr - %th Type - %th Runner token - %th Description - %th Version - %th IP Address - %th Projects - %th Jobs - %th Tags - %th= link_to 'Last contact', admin_runners_path(safe_params.slice(:search).merge(sort: 'contacted_asc')) + %th= _("Type") + %th= _("Runner token") + %th= _("Description") + %th= _("Version") + %th= _("IP Address") + %th= _("Projects") + %th= _("Jobs") + %th= _("Tags") + %th= link_to _('Last contact'), admin_runners_path(safe_params.slice(:search).merge(sort: 'contacted_asc')) %th - @runners.each do |runner| = render "admin/runners/runner", runner: runner = paginate @runners, theme: "gitlab" - else - .nothing-here-block No runners found + .nothing-here-block= _('No runners found') diff --git a/app/views/admin/runners/show.html.haml b/app/views/admin/runners/show.html.haml index 62be38e9dd2f8b..fe94308e04194b 100644 --- a/app/views/admin/runners/show.html.haml +++ b/app/views/admin/runners/show.html.haml @@ -1,30 +1,29 @@ = content_for :title do %h3.project-title - Runner ##{@runner.id} + = _("Runner #%{id}") % { id: @runner.id } .float-right - if @runner.instance_type? %span.runner-state.runner-state-shared - Shared + = _('Shared') - else %span.runner-state.runner-state-specific - Specific + = _('Specific') - add_to_breadcrumbs _("Runners"), admin_runners_path - breadcrumb_title "##{@runner.id}" - if @runner.instance_type? .bs-callout.bs-callout-success - %h4 This Runner will process jobs from ALL UNASSIGNED projects + %h4= _('This Runner will process jobs from ALL UNASSIGNED projects') %p - If you want Runners to build only specific projects, enable them in the table below. - Keep in mind that this is a one way transition. + = _('If you want Runners to build only specific projects, enable them in the table below. Keep in mind that this is a one way transition.') - elsif @runner.group_type? .bs-callout.bs-callout-success - %h4 This runner will process jobs from all projects in its group and subgroups + %h4= _('This runner will process jobs from all projects in its group and subgroups') - else .bs-callout.bs-callout-info - %h4 This Runner will process jobs only from ASSIGNED projects - %p You can't make this a shared Runner. + %h4= _('This Runner will process jobs only from ASSIGNED projects') + %p= _("You can't make this a shared Runner.") %hr .append-bottom-20 @@ -32,12 +31,12 @@ .row .col-md-6 - %h4 Restrict projects for this Runner + %h4= _("Restrict projects for this Runner") - if @runner.projects.any? %table.table.assigned-projects %thead %tr - %th Assigned projects + %th= _('Assigned projects') %th - @runner.runner_projects.each do |runner_project| - project = runner_project.project @@ -48,12 +47,12 @@ = project.full_name %td .float-right - = link_to 'Disable', [:admin, project.namespace.becomes(Namespace), project, runner_project], method: :delete, class: 'btn btn-danger btn-sm' + = link_to _('Disable'), [:admin, project.namespace.becomes(Namespace), project, runner_project], method: :delete, class: 'btn btn-danger btn-sm' %table.table.unassigned-projects %thead %tr - %th Project + %th= _('Project') %th %tr @@ -61,7 +60,7 @@ = form_tag admin_runner_path(@runner), id: 'runner-projects-search', class: 'form-inline', method: :get do .form-group = search_field_tag :search, params[:search], class: 'form-control', spellcheck: false - = submit_tag 'Search', class: 'btn' + = submit_tag _('Search'), class: 'btn' %td - @projects.each do |project| @@ -72,19 +71,19 @@ .float-right = form_for [:admin, project.namespace.becomes(Namespace), project, project.runner_projects.new] do |f| = f.hidden_field :runner_id, value: @runner.id - = f.submit 'Enable', class: 'btn btn-sm' + = f.submit _('Enable'), class: 'btn btn-sm' = paginate @projects, theme: "gitlab" .col-md-6 - %h4 Recent jobs served by this Runner + %h4= _('Recent jobs served by this Runner') %table.table.ci-table.runner-builds %thead %tr - %th Job - %th Status - %th Project - %th Commit - %th Finished at + %th= _('Job') + %th= _('Status') + %th= _('Project') + %th= _('Commit') + %th= _('Finished at') - @builds.each do |build| - project = build.project diff --git a/app/views/admin/services/_form.html.haml b/app/views/admin/services/_form.html.haml index f8cab4cbadd8b7..dcadb9276d9fe1 100644 --- a/app/views/admin/services/_form.html.haml +++ b/app/views/admin/services/_form.html.haml @@ -7,4 +7,4 @@ = render 'shared/service_settings', form: form, subject: @service .footer-block.row-content-block - = form.submit 'Save', class: 'btn btn-save' + = form.submit _('Save'), class: 'btn btn-save' diff --git a/app/views/admin/services/edit.html.haml b/app/views/admin/services/edit.html.haml index 512176649e66ec..0a2e158d0aebf8 100644 --- a/app/views/admin/services/edit.html.haml +++ b/app/views/admin/services/edit.html.haml @@ -1,4 +1,4 @@ -- add_to_breadcrumbs "Service Templates", admin_application_settings_services_path +- add_to_breadcrumbs _("Service Templates"), admin_application_settings_services_path - breadcrumb_title @service.title -- page_title @service.title, "Service Templates" +- page_title @service.title, _("Service Templates") = render 'form' diff --git a/app/views/admin/services/index.html.haml b/app/views/admin/services/index.html.haml index 89872c1b91ad19..2704678ebd6f95 100644 --- a/app/views/admin/services/index.html.haml +++ b/app/views/admin/services/index.html.haml @@ -1,15 +1,15 @@ -- page_title "Service Templates" -%h3.page-title Service templates -%p.light Service template allows you to set default values for project services +- page_title _("Service Templates") +%h3.page-title= _('Service templates') +%p.light= _('Service template allows you to set default values for project services') .table-holder %table.table %thead %tr %th - %th Service - %th Description - %th Last edit + %th= _('Service') + %th= _('Description') + %th= _('Last edit') - @services.sort_by(&:title).each do |service| %tr %td diff --git a/app/views/admin/spam_logs/_spam_log.html.haml b/app/views/admin/spam_logs/_spam_log.html.haml index 9d47dc1cce52f8..ed5a84ead565ed 100644 --- a/app/views/admin/spam_logs/_spam_log.html.haml +++ b/app/views/admin/spam_logs/_spam_log.html.haml @@ -6,9 +6,9 @@ - if user = link_to user.name, [:admin, user] .light.small - Joined #{time_ago_with_tooltip(user.created_at)} + = _('Joined %{user_created_time}').html_safe % { user_created_time: time_ago_with_tooltip(user.created_at) } - else - (removed) + = _('(removed)') %td = spam_log.source_ip %td @@ -23,17 +23,17 @@ = truncate(spam_log.description, length: 100) %td - if user - = link_to 'Remove user', admin_spam_log_path(spam_log, remove_user: true), - data: { confirm: "USER #{user.name} WILL BE REMOVED! Are you sure?" }, method: :delete, class: "btn btn-sm btn-remove" + = link_to _('Remove user'), admin_spam_log_path(spam_log, remove_user: true), + data: { confirm: _("USER %{user_name} WILL BE REMOVED! Are you sure?") % { user_name: user.name } }, method: :delete, class: "btn btn-sm btn-remove" %td - if spam_log.submitted_as_ham? .btn.btn-sm.disabled - Submitted as ham + = _("Submitted as ham") - else - = link_to 'Submit as ham', mark_as_ham_admin_spam_log_path(spam_log), method: :post, class: 'btn btn-sm btn-warning' + = link_to _('Submit as ham'), mark_as_ham_admin_spam_log_path(spam_log), method: :post, class: 'btn btn-sm btn-warning' - if user && !user.blocked? - = link_to 'Block user', block_admin_user_path(user), data: {confirm: 'USER WILL BE BLOCKED! Are you sure?'}, method: :put, class: "btn btn-sm" + = link_to _('Block user'), block_admin_user_path(user), data: { confirm: _('USER WILL BE BLOCKED! Are you sure?') }, method: :put, class: "btn btn-sm" - else .btn.btn-sm.disabled - Already blocked - = link_to 'Remove log', [:admin, spam_log], remote: true, method: :delete, class: "btn btn-sm btn-close js-remove-tr" + = _('Already blocked') + = link_to _('Remove log'), [:admin, spam_log], remote: true, method: :delete, class: "btn btn-sm btn-close js-remove-tr" diff --git a/app/views/admin/spam_logs/index.html.haml b/app/views/admin/spam_logs/index.html.haml index 8aaa6379730380..34f899500a9d67 100644 --- a/app/views/admin/spam_logs/index.html.haml +++ b/app/views/admin/spam_logs/index.html.haml @@ -1,22 +1,22 @@ -- page_title "Spam Logs" -%h3.page-title Spam Logs +- page_title _("Spam Logs") +%h3.page-title= _('Spam Logs') %hr - if @spam_logs.present? .table-holder %table.table %thead %tr - %th Date - %th User - %th Source IP - %th API? - %th Recaptcha verified? - %th Type - %th Title - %th Description - %th Primary Action + %th= _('Date') + %th= _('User') + %th= _('Source IP') + %th= _('API?') + %th= _('Recaptcha verified?') + %th= _('Type') + %th= _('Title') + %th= _('Description') + %th= _('Primary Action') %th = render @spam_logs = paginate @spam_logs - else - %h4 There are no Spam Logs + %h4= _('There are no Spam Logs') diff --git a/app/views/admin/system_info/show.html.haml b/app/views/admin/system_info/show.html.haml index b19934e028d7c0..0a25f79c611f41 100644 --- a/app/views/admin/system_info/show.html.haml +++ b/app/views/admin/system_info/show.html.haml @@ -1,30 +1,31 @@ - @no_container = true -- page_title "System Info" +- page_title _("System Info") %div{ class: container_class } .prepend-top-default .row .col-sm-4 .card.bg-light.light-well - %h4 CPU + %h4= _('CPU') .data - if @cpus - %h1 #{@cpus.length} cores + %h1 + = _('%{cpus} cores') % { cpus: @cpus.length } - else = icon('warning', class: 'text-warning') - Unable to collect CPU info + = _('Unable to collect CPU info') .col-sm-4 .card.bg-light.light-well - %h4 Memory Usage + %h4= _('Memory Usage') .data - if @memory %h1 #{number_to_human_size(@memory.active_bytes)} / #{number_to_human_size(@memory.total_bytes)} - else = icon('warning', class: 'text-warning') - Unable to collect memory info + = _('Unable to collect memory info') .col-sm-4 .card.bg-light.light-well - %h4 Disk Usage + %h4= _('Disk Usage') .data - @disks.each do |disk| %h1 #{number_to_human_size(disk[:bytes_used])} / #{number_to_human_size(disk[:bytes_total])} @@ -32,6 +33,6 @@ %p= disk[:mount_path] .col-sm-4 .card.bg-light.light-well - %h4 Uptime + %h4= _('Uptime') .data %h1= distance_of_time_in_words_to_now(Rails.application.config.booted_at) diff --git a/app/views/instance_statistics/cohorts/_cohorts_table.html.haml b/app/views/instance_statistics/cohorts/_cohorts_table.html.haml index 701a4e62b39a2e..4eeb0c47e3d6b8 100644 --- a/app/views/instance_statistics/cohorts/_cohorts_table.html.haml +++ b/app/views/instance_statistics/cohorts/_cohorts_table.html.haml @@ -1,19 +1,17 @@ .bs-callout.clearfix %p - User cohorts are shown for the last #{@cohorts[:months_included]} - months. Only users with activity are counted in the cohort total; inactive - users are counted separately. - = link_to icon('question-circle'), help_page_path('user/admin_area/user_cohorts', anchor: 'cohorts'), title: 'About this feature', target: '_blank' + = _('User cohorts are shown for the last %{months} months. Only users with activity are counted in the cohort total; inactive users are counted separately.') % { months: @cohorts[:months_included] } + = link_to icon('question-circle'), help_page_path('user/admin_area/user_cohorts', anchor: 'cohorts'), title: _('About this feature'), target: '_blank' .table-holder %table.table %thead %tr - %th Registration month - %th Inactive users - %th Cohort total + %th= _('Registration month') + %th= _('Inactive users') + %th= _('Cohort total') - @cohorts[:months_included].times do |i| - %th Month #{i} + %th= _('Month %{month}') % { month: i } %tbody - @cohorts[:cohorts].each do |cohort| %tr diff --git a/app/views/instance_statistics/cohorts/_usage_ping.html.haml b/app/views/instance_statistics/cohorts/_usage_ping.html.haml index 3dda386fcf7d93..4b242bf41bce2f 100644 --- a/app/views/instance_statistics/cohorts/_usage_ping.html.haml +++ b/app/views/instance_statistics/cohorts/_usage_ping.html.haml @@ -1,10 +1,8 @@ -%h2#usage-ping Usage ping +%h2#usage-ping _('Usage ping') .bs-callout.clearfix %p - User cohorts are shown because the usage ping is enabled. The data sent with - this is shown below. To disable this, visit - = succeed '.' do - = link_to 'application settings', admin_application_settings_path(anchor: 'usage-statistics') + - link_to_application_settings = link_to(_('application settings'), admin_application_settings_path(anchor: 'usage-statistics')) + = _('User cohorts are shown because the usage ping is enabled. The data sent with this is shown below. To disable this, visit %{link_to_application_settings}.').html_safe % { link_to_application_settings: link_to_application_settings } %pre.usage-data.js-syntax-highlight.code.highlight{ data: { endpoint: usage_data_admin_application_settings_path(format: :html) } } diff --git a/app/views/instance_statistics/cohorts/index.html.haml b/app/views/instance_statistics/cohorts/index.html.haml index 5e9a8c083aff9c..4e4ab8921d61cc 100644 --- a/app/views/instance_statistics/cohorts/index.html.haml +++ b/app/views/instance_statistics/cohorts/index.html.haml @@ -1,4 +1,4 @@ -- breadcrumb_title "Cohorts" +- breadcrumb_title _("Cohorts") - @no_container = true %div{ class: container_class } @@ -8,9 +8,6 @@ - else .bs-callout.bs-callout-warning.clearfix %p - User cohorts are only shown when the - = link_to 'usage ping', help_page_path('user/admin_area/settings/usage_statistics', anchor: 'usage-ping'), target: '_blank' - is enabled. To enable it and see user cohorts, - visit - = succeed '.' do - = link_to 'application settings', admin_application_settings_path(anchor: 'usage-statistics') + - link_to_usage_ping = link_to(_('usage ping'), help_page_path('user/admin_area/settings/usage_statistics', anchor: 'usage-ping'), target: '_blank') + - link_to_application_settings = link_to(_('application settings'), admin_application_settings_path(anchor: 'usage-statistics')) + = _('User cohorts are only shown when the %{link_to_usage_ping} is enabled. To enable it and see user cohorts, visit %{link_to_application_settings}.').html_safe % { link_to_usage_ping: link_to_usage_ping, link_to_application_settings: link_to_application_settings } diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 0ea8789d6cbfc5..1a4fdfa71ce202 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -116,12 +116,18 @@ msgid_plural "%{count} participants" msgstr[0] "" msgstr[1] "" +msgid "%{cpus} cores" +msgstr "" + msgid "%{filePath} deleted" msgstr "" msgid "%{group_docs_link_start}Groups%{group_docs_link_end} allow you to manage and collaborate across multiple projects. Members of a group have access to all of its projects." msgstr "" +msgid "%{link_to_system_hooks} can be used for binding events when GitLab creates a User or Project." +msgstr "" + msgid "%{loadingIcon} Started" msgstr "" @@ -188,6 +194,12 @@ msgstr[1] "" msgid "%{unstaged} unstaged and %{staged} staged changes" msgstr "" +msgid "(deleted)" +msgstr "" + +msgid "(removed)" +msgstr "" + msgid "+ %{moreCount} more" msgstr "" @@ -291,6 +303,9 @@ msgstr "" msgid "%{changedFilesLength} unstaged and %{stagedFilesLength} staged changes" msgstr "" +msgid "%{counter_storage} (%{counter_repository} repository, %{counter_build_artifacts} build artifacts, %{counter_lfs_objects} LFS)" +msgstr "" + msgid "%{created_count} created, %{accepted_count} accepted." msgstr "" @@ -309,6 +324,9 @@ msgstr "" msgid "A 'Runner' is a process which runs a job. You can setup as many Runners as you need." msgstr "" +msgid "A 'Runner' is a process which runs a job. You can setup as many Runners as you need.
Runners can be placed on separate users, servers, even on your local machine." +msgstr "" + msgid "A collection of graphs regarding Continuous Integration" msgstr "" @@ -324,6 +342,9 @@ msgstr "" msgid "A user with write access to the source branch selected this option" msgstr "" +msgid "API?" +msgstr "" + msgid "About GitLab" msgstr "" @@ -369,12 +390,18 @@ msgstr "" msgid "Account and limit" msgstr "" +msgid "Action" +msgstr "" + msgid "Active" msgstr "" msgid "Active Sessions" msgstr "" +msgid "Active Users" +msgstr "" + msgid "Activity" msgstr "" @@ -402,6 +429,9 @@ msgstr "" msgid "Add additional text to appear in all email communications. %{character_limit} character limit" msgstr "" +msgid "Add broadcast message" +msgstr "" + msgid "Add new application" msgstr "" @@ -411,6 +441,9 @@ msgstr "" msgid "Add reaction" msgstr "" +msgid "Add system hook" +msgstr "" + msgid "Add todo" msgstr "" @@ -420,6 +453,9 @@ msgstr "" msgid "Add users to group" msgstr "" +msgid "Added at" +msgstr "" + msgid "Additional text" msgstr "" @@ -525,6 +561,9 @@ msgstr "" msgid "Allows you to add and manage Kubernetes clusters." msgstr "" +msgid "Already blocked" +msgstr "" + msgid "Also called \"Issuer\" or \"Relying party trust identifier\"" msgstr "" @@ -684,6 +723,9 @@ msgstr "" msgid "Appearance" msgstr "" +msgid "Appearance settings" +msgstr "" + msgid "Application" msgstr "" @@ -762,6 +804,9 @@ msgstr "" msgid "Assigned Merge Requests" msgstr "" +msgid "Assigned projects" +msgstr "" + msgid "Assigned to :name" msgstr "" @@ -1050,6 +1095,9 @@ msgstr "" msgid "Bitbucket import" msgstr "" +msgid "Block user" +msgstr "" + msgid "Blog" msgstr "" @@ -1205,6 +1253,12 @@ msgstr "" msgid "Branches|protected" msgstr "" +msgid "Broadcast Messages" +msgstr "" + +msgid "Broadcast messages are displayed for every user and can be used to notify users about scheduled maintenance, recent upgrades and more." +msgstr "" + msgid "Browse Directory" msgstr "" @@ -1286,6 +1340,12 @@ msgstr "" msgid "CICD|instance enabled" msgstr "" +msgid "COMMAND" +msgstr "" + +msgid "CPU" +msgstr "" + msgid "Callback URL" msgstr "" @@ -1937,6 +1997,9 @@ msgstr "" msgid "ClusterIntegration|sign up" msgstr "" +msgid "Cohort total" +msgstr "" + msgid "Cohorts" msgstr "" @@ -2049,6 +2112,9 @@ msgstr "" msgid "CompareBranches|There isn't anything to compare." msgstr "" +msgid "Components" +msgstr "" + msgid "Confidential" msgstr "" @@ -2097,6 +2163,9 @@ msgstr "" msgid "Container Registry" msgstr "" +msgid "Container Registry: status %{on_or_off}" +msgstr "" + msgid "ContainerRegistry|Created" msgstr "" @@ -2316,6 +2385,9 @@ msgstr "" msgid "Created by me" msgstr "" +msgid "Created by:" +msgstr "" + msgid "Created on:" msgstr "" @@ -2331,6 +2403,9 @@ msgstr "" msgid "Current Branch" msgstr "" +msgid "Current Status:" +msgstr "" + msgid "Current node" msgstr "" @@ -2400,6 +2475,9 @@ msgstr "" msgid "DashboardProjects|Personal" msgstr "" +msgid "Date" +msgstr "" + msgid "Dec" msgstr "" @@ -2573,6 +2651,9 @@ msgstr "" msgid "Description" msgstr "" +msgid "Description parsed with %{link_to_help_markdown}." +msgstr "" + msgid "Description templates allow you to define context-specific templates for issue and merge request description fields for your project." msgstr "" @@ -2621,6 +2702,9 @@ msgstr "" msgid "Discover projects, groups and snippets. Share your projects with others" msgstr "" +msgid "Disk Usage" +msgstr "" + msgid "Dismiss" msgstr "" @@ -2687,6 +2771,9 @@ msgstr "" msgid "Edit" msgstr "" +msgid "Edit Deploy Key" +msgstr "" + msgid "Edit Label" msgstr "" @@ -2696,6 +2783,9 @@ msgstr "" msgid "Edit Snippet" msgstr "" +msgid "Edit System Hook" +msgstr "" + msgid "Edit application" msgstr "" @@ -2708,6 +2798,12 @@ msgstr "" msgid "Edit identity for %{user_name}" msgstr "" +msgid "Edit public deploy key" +msgstr "" + +msgid "Elapsed time" +msgstr "" + msgid "Elasticsearch" msgstr "" @@ -2738,6 +2834,9 @@ msgstr "" msgid "Enable SAML authentication for this group" msgstr "" +msgid "Enable SSL verification" +msgstr "" + msgid "Enable Sentry for error reporting and logging." msgstr "" @@ -2774,6 +2873,9 @@ msgstr "" msgid "Enabled" msgstr "" +msgid "Ends" +msgstr "" + msgid "Ends at (UTC)" msgstr "" @@ -3047,6 +3149,18 @@ msgstr "" msgid "Faster as it re-uses the project workspace (falling back to clone if it doesn't exist)" msgstr "" +msgid "Favicon" +msgstr "" + +msgid "Favicon will be removed. Are you sure?" +msgstr "" + +msgid "Favicon:" +msgstr "" + +msgid "Features" +msgstr "" + msgid "Feb" msgstr "" @@ -3083,12 +3197,18 @@ msgstr "" msgid "Find the newly extracted Takeout/Google Code Project Hosting/GoogleCodeProjectHosting.json file." msgstr "" +msgid "Fingerprint" +msgstr "" + msgid "Fingerprints" msgstr "" msgid "Finished" msgstr "" +msgid "Finished at" +msgstr "" + msgid "FirstPushedBy|First" msgstr "" @@ -3142,6 +3262,9 @@ msgstr "" msgid "Forking in progress" msgstr "" +msgid "Forks" +msgstr "" + msgid "Format" msgstr "" @@ -3463,6 +3586,9 @@ msgstr "" msgid "Git" msgstr "" +msgid "Git LFS status:" +msgstr "" + msgid "Git repository URL" msgstr "" @@ -3481,9 +3607,18 @@ msgstr "" msgid "GitHub import" msgstr "" +msgid "GitLab" +msgstr "" + +msgid "GitLab API" +msgstr "" + msgid "GitLab CI Linter has been moved" msgstr "" +msgid "GitLab Flavored Markdown" +msgstr "" + msgid "GitLab Geo" msgstr "" @@ -3493,15 +3628,30 @@ msgstr "" msgid "GitLab Import" msgstr "" +msgid "GitLab Pages" +msgstr "" + +msgid "GitLab Pages: status %{on_or_off}" +msgstr "" + +msgid "GitLab Shell" +msgstr "" + msgid "GitLab User" msgstr "" +msgid "GitLab Workhorse" +msgstr "" + msgid "GitLab project export" msgstr "" msgid "GitLab single sign on URL" msgstr "" +msgid "GitLab uses %{link} library for async job processing" +msgstr "" + msgid "GitLab will run a background job that will produce pseudonymized CSVs of the GitLab database that will be uploaded to your configured object storage directory." msgstr "" @@ -3514,6 +3664,12 @@ msgstr "" msgid "Gitaly Servers" msgstr "" +msgid "Gitaly relative path:" +msgstr "" + +msgid "Gitaly storage name:" +msgstr "" + msgid "Gitaly|Address" msgstr "" @@ -3523,6 +3679,9 @@ msgstr "" msgid "Gitea Import" msgstr "" +msgid "Global" +msgstr "" + msgid "Go Back" msgstr "" @@ -3553,6 +3712,12 @@ msgstr "" msgid "Graph" msgstr "" +msgid "Gravatar" +msgstr "" + +msgid "Gravatar: status %{on_or_off}" +msgstr "" + msgid "Group" msgstr "" @@ -3649,6 +3814,9 @@ msgstr "" msgid "Groups can also be nested by creating %{subgroup_docs_link_start}subgroups%{subgroup_docs_link_end}." msgstr "" +msgid "Groups:" +msgstr "" + msgid "GroupsDropdown|Frequently visited" msgstr "" @@ -3709,9 +3877,18 @@ msgstr "" msgid "GroupsTree|Sorry, no groups or projects matched your search" msgstr "" +msgid "Guidelines parsed with %{link_to_help_markdown}." +msgstr "" + msgid "Have your users email" msgstr "" +msgid "Header logo" +msgstr "" + +msgid "Header logo will be removed. Are you sure?" +msgstr "" + msgid "Header message" msgstr "" @@ -3807,6 +3984,9 @@ msgstr "" msgid "IDE|Review" msgstr "" +msgid "IP Address" +msgstr "" + msgid "Identifier" msgstr "" @@ -3816,6 +3996,9 @@ msgstr "" msgid "Identity provider single sign on URL" msgstr "" +msgid "If '[%{concurrency} of %{concurrency} busy]' is shown, restart GitLab with 'sudo service gitlab reload'." +msgstr "" + msgid "If disabled, a diverged local branch will not be automatically updated with commits from its remote counterpart, to prevent local data loss. If the default branch (%{default_branch}) has diverged and cannot be updated, mirroring will fail. Other diverged branches are silently ignored." msgstr "" @@ -3828,12 +4011,18 @@ msgstr "" msgid "If enabled, access to projects will be validated on an external service using their classification label." msgstr "" +msgid "If more than one sidekiq process is listed, stop GitLab, kill the remaining sidekiq processes (sudo pkill -u %{gitlab_config_user} -f sidekiq) and restart GitLab." +msgstr "" + msgid "If using GitHub, you’ll see pipeline statuses on GitHub for your commits and pull requests. %{more_info_link}" msgstr "" msgid "If you already have files you can push them using the %{link_to_cli} below." msgstr "" +msgid "If you want Runners to build only specific projects, enable them in the table below. Keep in mind that this is a one way transition." +msgstr "" + msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: https://username:password@gitlab.company.com/group/project.git." msgstr "" @@ -3846,6 +4035,12 @@ msgstr "" msgid "ImageDiffViewer|Swipe" msgstr "" +msgid "Images with incorrect dimensions are not resized automatically, and may result in unexpected behavior." +msgstr "" + +msgid "Impersonation Tokens" +msgstr "" + msgid "Import" msgstr "" @@ -3912,6 +4107,9 @@ msgstr "" msgid "In the next step, you'll be able to select the projects you want to import." msgstr "" +msgid "Inactive users" +msgstr "" + msgid "Include a Terms of Service agreement and Privacy Policy that all users must accept." msgstr "" @@ -3959,6 +4157,9 @@ msgstr "" msgid "Interested parties can even contribute by pushing commits if they want to." msgstr "" +msgid "Internal" +msgstr "" + msgid "Internal - The group and any internal projects can be viewed by any logged in user." msgstr "" @@ -4010,6 +4211,12 @@ msgstr "" msgid "Jobs" msgstr "" +msgid "Joined %{created_time}" +msgstr "" + +msgid "Joined %{user_created_time}" +msgstr "" + msgid "Jul" msgstr "" @@ -4022,6 +4229,9 @@ msgstr "" msgid "June" msgstr "" +msgid "Keys" +msgstr "" + msgid "Koding" msgstr "" @@ -4052,6 +4262,12 @@ msgstr "" msgid "Kubernetes service integration has been deprecated. %{deprecated_message_content} your Kubernetes clusters using the new Kubernetes Clusters page" msgstr "" +msgid "LDAP" +msgstr "" + +msgid "LDAP: status %{on_or_off}" +msgstr "" + msgid "LFS" msgstr "" @@ -4111,6 +4327,15 @@ msgstr "" msgid "Last commit" msgstr "" +msgid "Last contact" +msgstr "" + +msgid "Last edit" +msgstr "" + +msgid "Last edit %{time}" +msgstr "" + msgid "Last edited %{date}" msgstr "" @@ -4132,6 +4357,15 @@ msgstr "" msgid "Latest changes" msgstr "" +msgid "Latest groups" +msgstr "" + +msgid "Latest projects" +msgstr "" + +msgid "Latest users" +msgstr "" + msgid "Learn more" msgstr "" @@ -4275,9 +4509,15 @@ msgstr "" msgid "Locks give the ability to lock specific file or folder." msgstr "" +msgid "Logo will be removed. Are you sure?" +msgstr "" + msgid "Logs" msgstr "" +msgid "MEM" +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 "" @@ -4344,6 +4584,15 @@ msgstr "" msgid "Markdown enabled" msgstr "" +msgid "Maximum file size is 1MB. Image size must be 32x32px. Allowed image formats are %{favicon_extension_whitelist}." +msgstr "" + +msgid "Maximum file size is 1MB. Pages are optimized for a 28px tall header logo" +msgstr "" + +msgid "Maximum file size is 1MB. Pages are optimized for a 640x360 px logo." +msgstr "" + msgid "Maximum git storage failures" msgstr "" @@ -4359,6 +4608,9 @@ msgstr "" msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"." msgstr "" +msgid "Memory Usage" +msgstr "" + msgid "Merge Request" msgstr "" @@ -4380,6 +4632,9 @@ msgstr "" msgid "Merge request approvals" msgstr "" +msgid "Merge request events" +msgstr "" + msgid "Merge requests" msgstr "" @@ -4410,6 +4665,9 @@ msgstr "" msgid "Merged" msgstr "" +msgid "Message" +msgstr "" + msgid "Messages" msgstr "" @@ -4596,6 +4854,9 @@ msgstr "" msgid "Monitoring" msgstr "" +msgid "Month %{month}" +msgstr "" + msgid "Months" msgstr "" @@ -4638,6 +4899,18 @@ msgstr "" msgid "Name:" msgstr "" +msgid "Namespace" +msgstr "" + +msgid "Namespace:" +msgstr "" + +msgid "Namespaces" +msgstr "" + +msgid "Navigation bar:" +msgstr "" + msgid "Nav|Help" msgstr "" @@ -4662,6 +4935,9 @@ msgstr "" msgid "New Application" msgstr "" +msgid "New Deploy Key" +msgstr "" + msgid "New Group" msgstr "" @@ -4679,6 +4955,9 @@ msgstr "" msgid "New Pipeline Schedule" msgstr "" +msgid "New Project" +msgstr "" + msgid "New Snippet" msgstr "" @@ -4691,6 +4970,9 @@ msgstr "" msgid "New branch unavailable" msgstr "" +msgid "New deploy key" +msgstr "" + msgid "New directory" msgstr "" @@ -4721,6 +5003,15 @@ msgstr "" msgid "New project" msgstr "" +msgid "New project page" +msgstr "" + +msgid "New project pages:" +msgstr "" + +msgid "New public deploy key" +msgstr "" + msgid "New schedule" msgstr "" @@ -4733,6 +5024,9 @@ msgstr "" msgid "New tag" msgstr "" +msgid "New user" +msgstr "" + msgid "New..." msgstr "" @@ -4793,6 +5087,12 @@ msgstr "" msgid "No prioritised labels with such name or description" msgstr "" +msgid "No profiles found" +msgstr "" + +msgid "No projects found" +msgstr "" + msgid "No public groups" msgstr "" @@ -4802,6 +5102,9 @@ msgstr "" msgid "No repository" msgstr "" +msgid "No runners found" +msgstr "" + msgid "No schedules" msgstr "" @@ -4853,6 +5156,9 @@ msgstr "" msgid "Note: Consider asking your GitLab administrator to configure %{github_integration_link}, which will allow login via GitHub and allow importing repositories without generating a Personal Access Token." msgstr "" +msgid "Notes" +msgstr "" + msgid "Notes|Are you sure you want to cancel creating this comment?" msgstr "" @@ -4940,6 +5246,12 @@ msgstr "" msgid "OfSearchInADropdown|Filter" msgstr "" +msgid "OmniAuth" +msgstr "" + +msgid "OmniAuth: status %{on_or_off}" +msgstr "" + msgid "Once imported, repositories can be mirrored over SSH. Read more %{ssh_link}" msgstr "" @@ -5032,9 +5344,15 @@ msgstr "" msgid "Overwrite diverged branches" msgstr "" +msgid "Owned by:" +msgstr "" + msgid "Owner" msgstr "" +msgid "PID" +msgstr "" + msgid "Pages" msgstr "" @@ -5053,6 +5371,9 @@ msgstr "" msgid "Part of merge request changes" msgstr "" +msgid "Pass the header X-Profile-Token: %{profile_token} to profile the request" +msgstr "" + msgid "Password" msgstr "" @@ -5275,6 +5596,9 @@ msgstr "" msgid "Please note that this application is not provided by GitLab and you should verify its authenticity before allowing access." msgstr "" +msgid "Please provide your username or email address." +msgstr "" + msgid "Please select at least one filter to see results" msgstr "" @@ -5299,9 +5623,15 @@ msgstr "" msgid "Preview" msgstr "" +msgid "Preview last save:" +msgstr "" + msgid "Primary" msgstr "" +msgid "Primary Action" +msgstr "" + msgid "Prioritize" msgstr "" @@ -5314,6 +5644,9 @@ msgstr "" msgid "Prioritized label" msgstr "" +msgid "Private" +msgstr "" + msgid "Private - Project access must be granted explicitly to each user." msgstr "" @@ -5467,9 +5800,15 @@ msgstr "" msgid "Project export started. A download link will be sent by email." msgstr "" +msgid "Project info:" +msgstr "" + msgid "Project name" msgstr "" +msgid "Project: %{name}" +msgstr "" + msgid "ProjectActivityRSS|Subscribe" msgstr "" @@ -5530,6 +5869,12 @@ msgstr "" msgid "Projects shared with %{group_name}" msgstr "" +msgid "Projects with write access" +msgstr "" + +msgid "Projects:" +msgstr "" + msgid "ProjectsDropdown|Frequently visited" msgstr "" @@ -5692,12 +6037,18 @@ msgstr "" msgid "Pseudonymizer data collection" msgstr "" +msgid "Public" +msgstr "" + msgid "Public - The group and any public projects can be viewed without any authentication." msgstr "" msgid "Public - The project can be accessed without any authentication." msgstr "" +msgid "Public deploy keys" +msgstr "" + msgid "Public pipelines" msgstr "" @@ -5734,6 +6085,9 @@ msgstr "" msgid "Quick actions can be used in the issues description and comment boxes." msgstr "" +msgid "Rails" +msgstr "" + msgid "Read more" msgstr "" @@ -5746,6 +6100,15 @@ msgstr "" msgid "Real-time features" msgstr "" +msgid "Recaptcha verified?" +msgstr "" + +msgid "Recent Deliveries" +msgstr "" + +msgid "Recent jobs served by this Runner" +msgstr "" + msgid "Reference:" msgstr "" @@ -5769,6 +6132,9 @@ msgstr "" msgid "Register and see your runners for this project." msgstr "" +msgid "Registration month" +msgstr "" + msgid "Registry" msgstr "" @@ -5805,12 +6171,33 @@ msgstr "" msgid "Remove avatar" msgstr "" +msgid "Remove favicon" +msgstr "" + +msgid "Remove header logo" +msgstr "" + +msgid "Remove log" +msgstr "" + +msgid "Remove logo" +msgstr "" + msgid "Remove priority" msgstr "" msgid "Remove project" msgstr "" +msgid "Remove report" +msgstr "" + +msgid "Remove user" +msgstr "" + +msgid "Remove user & report" +msgstr "" + msgid "Rename" msgstr "" @@ -5823,12 +6210,21 @@ msgstr "" msgid "Repair authentication" msgstr "" +msgid "Reply by email" +msgstr "" + +msgid "Reply by email: status %{on_or_off}" +msgstr "" + msgid "Reply to this email directly or %{view_it_on_gitlab}." msgstr "" msgid "Repo by URL" msgstr "" +msgid "Reported by" +msgstr "" + msgid "Reports|%{failedString} and %{resolvedString}" msgstr "" @@ -5865,6 +6261,9 @@ msgstr "" msgid "Repository URL" msgstr "" +msgid "Repository check" +msgstr "" + msgid "Repository has no locks." msgstr "" @@ -5877,18 +6276,30 @@ msgstr "" msgid "Repository storage" msgstr "" +msgid "Repository update events" +msgstr "" + msgid "RepositorySettingsAccessLevel|Select" msgstr "" msgid "Request Access" msgstr "" +msgid "Request details" +msgstr "" + +msgid "Request time" +msgstr "" + msgid "Requests Profiles" msgstr "" msgid "Require all users to accept Terms of Service and Privacy Policy when they access GitLab." msgstr "" +msgid "Resend Request" +msgstr "" + msgid "Reset git storage health information" msgstr "" @@ -5910,6 +6321,9 @@ msgstr "" msgid "Response metrics (Custom)" msgstr "" +msgid "Restrict projects for this Runner" +msgstr "" + msgid "Resume" msgstr "" @@ -5951,12 +6365,36 @@ msgstr "" msgid "Roadmap" msgstr "" +msgid "Ruby" +msgstr "" + msgid "Run CI/CD pipelines for external repositories" msgstr "" +msgid "Runner #%{id}" +msgstr "" + +msgid "Runner cannot be assigned to other projects" +msgstr "" + +msgid "Runner description or token" +msgstr "" + +msgid "Runner runs jobs from all unassigned projects" +msgstr "" + +msgid "Runner runs jobs from all unassigned projects in its group" +msgstr "" + +msgid "Runner runs jobs from assigned projects" +msgstr "" + msgid "Runner token" msgstr "" +msgid "Runner will not receive any new jobs" +msgstr "" + msgid "Runners" msgstr "" @@ -5966,6 +6404,9 @@ msgstr "" msgid "Runners can be placed on separate users, servers, and even on your local machine." msgstr "" +msgid "Runners with last contact more than a minute ago: %{active_runners_counter}" +msgstr "" + msgid "Running" msgstr "" @@ -5996,6 +6437,18 @@ msgstr "" msgid "SSL Verification" msgstr "" +msgid "SSL Verification: %{hook_enabled}" +msgstr "" + +msgid "SSL verification" +msgstr "" + +msgid "START" +msgstr "" + +msgid "STATE" +msgstr "" + msgid "Save" msgstr "" @@ -6029,6 +6482,9 @@ msgstr "" msgid "Scoped issue boards" msgstr "" +msgid "Scroll down" +msgstr "" + msgid "Scroll down to Google Code Project Hosting and enable the switch on the right." msgstr "" @@ -6050,6 +6506,9 @@ msgstr "" msgid "Search files" msgstr "" +msgid "Search for Namespace" +msgstr "" + msgid "Search for projects, issues, etc." msgstr "" @@ -6098,6 +6557,9 @@ msgstr "" msgid "Seconds to wait for a storage access attempt" msgstr "" +msgid "Secret Token" +msgstr "" + msgid "Secret:" msgstr "" @@ -6184,6 +6646,9 @@ msgstr "" msgid "Server version" msgstr "" +msgid "Service" +msgstr "" + msgid "Service Desk" msgstr "" @@ -6193,6 +6658,12 @@ msgstr "" msgid "Service URL" msgstr "" +msgid "Service template allows you to set default values for project services" +msgstr "" + +msgid "Service templates" +msgstr "" + msgid "Session expiration, projects limit and attachment size." msgstr "" @@ -6238,9 +6709,15 @@ msgstr "" msgid "Share the %{sso_label} with members so they can sign in to your group through your identity provider" msgstr "" +msgid "Shared" +msgstr "" + msgid "Shared Runners" msgstr "" +msgid "Shared Runners: status %{on_or_off}" +msgstr "" + msgid "SharedRunnersMinutesSettings|By resetting the pipeline minutes for this namespace, the currently used minutes will be set to zero." msgstr "" @@ -6294,21 +6771,39 @@ msgstr "" msgid "Sidebar|Weight" msgstr "" +msgid "Sidekiq running processes" +msgstr "" + msgid "Sign in" msgstr "" msgid "Sign in / Register" msgstr "" +msgid "Sign in preview" +msgstr "" + msgid "Sign in to %{group_name}" msgstr "" msgid "Sign in with Single Sign-On" msgstr "" +msgid "Sign in/Sign up pages:" +msgstr "" + msgid "Sign out" msgstr "" +msgid "Sign up" +msgstr "" + +msgid "Sign up: status %{on_or_off}" +msgstr "" + +msgid "Sign-in page" +msgstr "" + msgid "Sign-in restrictions" msgstr "" @@ -6480,6 +6975,9 @@ msgstr "" msgid "Source (branch or tag)" msgstr "" +msgid "Source IP" +msgstr "" + msgid "Source code" msgstr "" @@ -6492,6 +6990,9 @@ msgstr "" msgid "Spam and Anti-bot Protection" msgstr "" +msgid "Specific" +msgstr "" + msgid "Specific Runners" msgstr "" @@ -6543,12 +7044,18 @@ msgstr "" msgid "Started" msgstr "" +msgid "Starts" +msgstr "" + msgid "Starts at (UTC)" msgstr "" msgid "State your message to activate" msgstr "" +msgid "Statistics" +msgstr "" + msgid "Status" msgstr "" @@ -6564,18 +7071,27 @@ msgstr "" msgid "Storage" msgstr "" +msgid "Storage used:" +msgstr "" + msgid "Storage:" msgstr "" msgid "Subgroups" msgstr "" +msgid "Submit as ham" +msgstr "" + msgid "Submit as spam" msgstr "" msgid "Submit search" msgstr "" +msgid "Submitted as ham" +msgstr "" + msgid "Subscribe" msgstr "" @@ -6600,6 +7116,15 @@ msgstr "" msgid "System header and footer:" msgstr "" +msgid "System hook will be triggered on set of events like creating project or adding ssh key. But you can also enable extra triggers like Push events." +msgstr "" + +msgid "System hooks" +msgstr "" + +msgid "System hooks (%{hooks_count})" +msgstr "" + msgid "System metrics (Custom)" msgstr "" @@ -6608,6 +7133,9 @@ msgid_plural "Tags (%{tag_count})" msgstr[0] "" msgstr[1] "" +msgid "Tag push events" +msgstr "" + msgid "Tags" msgstr "" @@ -6725,6 +7253,12 @@ msgstr "" msgid "The character highlighter helps you keep the subject line to %{titleLength} characters and wrap the body at %{bodyLength} so they are readable in git." msgstr "" +msgid "The check failed. See %{link_to_repocheck} for error messages." +msgstr "" + +msgid "The check passed." +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 "" @@ -6830,6 +7364,12 @@ msgstr "" 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 "" +msgid "There are no Spam Logs" +msgstr "" + +msgid "There are no abuse reports!" +msgstr "" + msgid "There are no issues to show" msgstr "" @@ -6839,6 +7379,9 @@ msgstr "" msgid "There are no merge requests to show" msgstr "" +msgid "There are no running sidekiq processes. Please restart GitLab" +msgstr "" + msgid "There are problems accessing Git storage: " msgstr "" @@ -6875,6 +7418,24 @@ msgstr "" msgid "This GitLab instance does not provide any shared Runners yet. Instance administrators can register shared Runners in the admin area." msgstr "" +msgid "This Runner will process jobs from ALL UNASSIGNED projects" +msgstr "" + +msgid "This Runner will process jobs only from ASSIGNED projects" +msgstr "" + +msgid "This URL will be triggered for each branch updated to the repository" +msgstr "" + +msgid "This URL will be triggered when a merge request is created/updated/merged" +msgstr "" + +msgid "This URL will be triggered when a new tag is pushed to the repository" +msgstr "" + +msgid "This URL will be triggered when repository is updated" +msgstr "" + msgid "This application was created by %{link_to_owner}." msgstr "" @@ -6893,6 +7454,9 @@ msgstr "" msgid "This directory" msgstr "" +msgid "This field is required." +msgstr "" + msgid "This group" msgstr "" @@ -6974,6 +7538,15 @@ msgstr "" msgid "This repository" msgstr "" +msgid "This repository has never been checked." +msgstr "" + +msgid "This repository was last checked %{time}." +msgstr "" + +msgid "This runner will process jobs from all projects in its group and subgroups" +msgstr "" + msgid "This source diff could not be displayed because it is too large." msgstr "" @@ -7209,6 +7782,9 @@ msgstr "" msgid "To only use CI/CD features for an external repository, choose CI/CD for external repo." msgstr "" +msgid "To prevent performance issues admin logs output the last 2000 lines" +msgstr "" + msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" msgstr "" @@ -7275,15 +7851,27 @@ msgstr "" msgid "Track time with quick actions" msgstr "" +msgid "Transfer" +msgstr "" + +msgid "Transfer project" +msgstr "" + msgid "Trending" msgstr "" +msgid "Trigger" +msgstr "" + msgid "Trigger pipelines for mirror updates" msgstr "" msgid "Trigger pipelines when branches or tags are updated from the upstream repository. Depending on the activity of the upstream repository, this may greatly increase the load on your CI runners. Only enable this if you know they can handle the load." msgstr "" +msgid "Trigger repository check" +msgstr "" + msgid "Trigger this manual action" msgstr "" @@ -7299,6 +7887,27 @@ msgstr "" msgid "Twitter" msgstr "" +msgid "Type" +msgstr "" + +msgid "URL" +msgstr "" + +msgid "USER" +msgstr "" + +msgid "USER %{user_name} WILL BE REMOVED! Are you sure?" +msgstr "" + +msgid "USER WILL BE BLOCKED! Are you sure?" +msgstr "" + +msgid "Unable to collect CPU info" +msgstr "" + +msgid "Unable to collect memory info" +msgstr "" + msgid "Unable to load the diff. %{button_try_again}" msgstr "" @@ -7356,6 +7965,9 @@ msgstr "" msgid "Update" msgstr "" +msgid "Update broadcast message" +msgstr "" + msgid "Update now" msgstr "" @@ -7395,6 +8007,9 @@ msgstr "" msgid "UploadLink|click to upload" msgstr "" +msgid "Uptime" +msgstr "" + msgid "Upvotes" msgstr "" @@ -7419,24 +8034,42 @@ msgstr "" msgid "Use the following registration token during setup:" msgstr "" +msgid "Use this token to validate received payloads" +msgstr "" + msgid "Use your global notification setting" msgstr "" msgid "Used by members to sign in to your group in GitLab" msgstr "" +msgid "User" +msgstr "" + msgid "User Settings" msgstr "" msgid "User and IP Rate Limits" msgstr "" +msgid "User cohorts are only shown when the %{link_to_usage_ping} is enabled. To enable it and see user cohorts, visit %{link_to_application_settings}." +msgstr "" + +msgid "User cohorts are shown because the usage ping is enabled. The data sent with this is shown below. To disable this, visit %{link_to_application_settings}." +msgstr "" + +msgid "User cohorts are shown for the last %{months} months. Only users with activity are counted in the cohort total; inactive users are counted separately." +msgstr "" + msgid "User map" msgstr "" msgid "Users" msgstr "" +msgid "Users:" +msgstr "" + msgid "User|Current status" msgstr "" @@ -7461,6 +8094,12 @@ msgstr "" msgid "Verified" msgstr "" +msgid "Version" +msgstr "" + +msgid "View details" +msgstr "" + msgid "View epics list" msgstr "" @@ -7548,6 +8187,9 @@ msgstr "" msgid "When a runner is locked, it cannot be assigned to other projects" msgstr "" +msgid "When an event in GitLab triggers a webhook, you can use the request details to figure out if something went wrong." +msgstr "" + msgid "When enabled, users cannot use GitLab until the terms have been accepted." msgstr "" @@ -7743,6 +8385,9 @@ msgstr "" msgid "You can easily install a Runner on a Kubernetes cluster. %{link_to_help_page}" msgstr "" +msgid "You can modify the look and feel of GitLab here" +msgstr "" + msgid "You can move around the graph by using the arrow keys." msgstr "" @@ -7752,9 +8397,15 @@ msgstr "" msgid "You can only edit files when you are on a branch" msgstr "" +msgid "You can reset runners registration token by pressing a button below." +msgstr "" + msgid "You can resolve the merge conflict using either the Interactive mode, by choosing %{use_ours} or %{use_theirs} buttons, or by editing the files directly. Commit these changes into %{branch_name}" msgstr "" +msgid "You can't make this a shared Runner." +msgstr "" + msgid "You cannot write to a read-only secondary GitLab Geo instance. Please use %{link_to_primary_node} instead." msgstr "" @@ -7770,6 +8421,9 @@ msgstr "" msgid "You don't have any authorized applications" msgstr "" +msgid "You don't have any webhooks deliveries" +msgstr "" + msgid "You have no permissions" msgstr "" @@ -7866,6 +8520,9 @@ msgstr "" msgid "Your groups" msgstr "" +msgid "Your message here" +msgstr "" + msgid "Your name" msgstr "" @@ -7875,6 +8532,12 @@ msgstr "" msgid "a deleted user" msgstr "" +msgid "access:" +msgstr "" + +msgid "added %{deploy_key_created_time}" +msgstr "" + msgid "ago" msgstr "" @@ -7891,6 +8554,15 @@ msgid_plural "and %d fixed vulnerabilities" msgstr[0] "" msgstr[1] "" +msgid "application settings" +msgstr "" + +msgid "archived" +msgstr "" + +msgid "archived:" +msgstr "" + msgid "assign yourself" msgstr "" @@ -8158,6 +8830,9 @@ msgstr "" msgid "disabled" msgstr "" +msgid "does not exist" +msgstr "" + msgid "done" msgstr "" @@ -8170,6 +8845,12 @@ msgstr "" msgid "for this project" msgstr "" +msgid "group" +msgstr "" + +msgid "group members" +msgstr "" + msgid "here" msgstr "" @@ -8191,12 +8872,18 @@ msgstr "" msgid "is not a valid X509 certificate." msgstr "" +msgid "last commit:" +msgstr "" + msgid "latest version" msgstr "" msgid "license management" msgstr "" +msgid "locked" +msgstr "" + msgid "locked by %{path_lock_user_name} %{created_at}" msgstr "" @@ -8434,12 +9121,21 @@ msgstr "" msgid "mrWidget|to be merged automatically when the pipeline succeeds" msgstr "" +msgid "n/a" +msgstr "" + msgid "new merge request" msgstr "" msgid "notification emails" msgstr "" +msgid "off" +msgstr "" + +msgid "on" +msgstr "" + msgid "or" msgstr "" @@ -8456,12 +9152,21 @@ msgstr[1] "" msgid "password" msgstr "" +msgid "paused" +msgstr "" + msgid "personal access token" msgstr "" msgid "private key does not match certificate." msgstr "" +msgid "project is read-only" +msgstr "" + +msgid "project members" +msgstr "" + msgid "remaining" msgstr "" @@ -8471,9 +9176,18 @@ msgstr "" msgid "remove weight" msgstr "" +msgid "repository:" +msgstr "" + +msgid "shared" +msgstr "" + msgid "source" msgstr "" +msgid "specific" +msgstr "" + msgid "spendCommand|%{slash_command} will update the sum of the time spent." msgstr "" @@ -8486,6 +9200,9 @@ msgstr "" msgid "to help your contributors communicate effectively!" msgstr "" +msgid "usage ping" +msgstr "" + msgid "username" msgstr "" -- GitLab