diff --git a/app/assets/javascripts/app/controllers/_manage/knowledge_base.coffee b/app/assets/javascripts/app/controllers/_manage/knowledge_base.coffee index 5de5c83c6..a040778ef 100644 --- a/app/assets/javascripts/app/controllers/_manage/knowledge_base.coffee +++ b/app/assets/javascripts/app/controllers/_manage/knowledge_base.coffee @@ -59,7 +59,7 @@ class App.ManageKnowledgeBase extends App.ControllerTabs @renderNonExistant() renderNonExistant: -> - @renderScreenError(detail: __('No Knowledge Base. Please create first Knowledge Base'), el: @$('.page-content')) + @renderScreenError(detail: __('There is no Knowledge Base yet. Please create one.'), el: @$('.page-content')) @headerSwitchInput.prop('checked', false) @modal = new App.KnowledgeBaseNewModal( diff --git a/app/assets/javascripts/app/controllers/agent_ticket_create.coffee b/app/assets/javascripts/app/controllers/agent_ticket_create.coffee index 720f69913..61538abfe 100644 --- a/app/assets/javascripts/app/controllers/agent_ticket_create.coffee +++ b/app/assets/javascripts/app/controllers/agent_ticket_create.coffee @@ -219,7 +219,7 @@ class App.TicketCreate extends App.Controller @log 'debug', 'form hash changed', diff, data App.TaskManager.update(@taskKey, { 'state': data }) - # check it task title in task need to be updated + # check it task title in task needs to be updated if @latestTitle isnt data.title @latestTitle = data.title App.TaskManager.touch(@taskKey) diff --git a/app/assets/javascripts/app/controllers/agent_ticket_create/form_hander_signature.coffee b/app/assets/javascripts/app/controllers/agent_ticket_create/form_hander_signature.coffee index f5c2ad89e..b8a35e050 100644 --- a/app/assets/javascripts/app/controllers/agent_ticket_create/form_hander_signature.coffee +++ b/app/assets/javascripts/app/controllers/agent_ticket_create/form_hander_signature.coffee @@ -9,7 +9,7 @@ class TicketCreateFormHanderSignature if group && group.signature_id signature = App.Signature.find(group.signature_id) - # check if signature need to be added + # check if signature needs to be added type = ui.el.closest('.content').find('[name="formSenderType"]').val() if signature && signature.body && type is 'email-out' signatureFinished = App.Utils.replaceTags(signature.body, { user: App.Session.get(), config: App.Config.all() }) diff --git a/app/assets/javascripts/app/controllers/ticket_zoom/article_action/email_reply.coffee b/app/assets/javascripts/app/controllers/ticket_zoom/article_action/email_reply.coffee index 0145f2fa0..f77657f0b 100644 --- a/app/assets/javascripts/app/controllers/ticket_zoom/article_action/email_reply.coffee +++ b/app/assets/javascripts/app/controllers/ticket_zoom/article_action/email_reply.coffee @@ -12,7 +12,7 @@ class EmailReply extends App.Controller href: '#' } - # check if reply all need to be shown + # check if reply all needs to be shown recipients = [] if article.sender.name is 'Customer' if article.from @@ -127,7 +127,7 @@ class EmailReply extends App.Controller # get current body body = ui.el.closest('.ticketZoom').find('.article-add [data-name="body"]').html() || '' - # check if quote need to be added via user selection of content + # check if quote needs to be added via user selection of content signaturePosition = 'bottom' if !@hasUserSelectedContent(ui) diff --git a/app/assets/javascripts/app/controllers/ticket_zoom/article_view.coffee b/app/assets/javascripts/app/controllers/ticket_zoom/article_view.coffee index 2f32d2841..49a7e3d5b 100644 --- a/app/assets/javascripts/app/controllers/ticket_zoom/article_view.coffee +++ b/app/assets/javascripts/app/controllers/ticket_zoom/article_view.coffee @@ -125,7 +125,7 @@ class ArticleViewItem extends App.ControllerObserver else @el.removeClass('is-internal') - # check if email link need to be updated + # check if email link needs to be updated links = clone(article.preferences.links) || [] if article.type.name is 'email' link = diff --git a/app/assets/javascripts/app/lib/app_post/i18n.coffee b/app/assets/javascripts/app/lib/app_post/i18n.coffee index 81234c313..84b67e380 100644 --- a/app/assets/javascripts/app/lib/app_post/i18n.coffee +++ b/app/assets/javascripts/app/lib/app_post/i18n.coffee @@ -163,7 +163,7 @@ class _i18nSingleton extends Spine.Module @dirToSet = locale.dir localeFound = true - # check if locale need to be changed + # check if locale needs to be changed return if localeToSet is @locale # set locale diff --git a/app/assets/javascripts/app/views/import/kayako.jst.eco b/app/assets/javascripts/app/views/import/kayako.jst.eco index d4659d33b..5921c817a 100644 --- a/app/assets/javascripts/app/views/import/kayako.jst.eco +++ b/app/assets/javascripts/app/views/import/kayako.jst.eco @@ -36,7 +36,7 @@ <%- @T('Enter your email address and password from your %s account which should be used for the import.', 'Kayako') %>

- <%- @T('Attention: These will also your login password after the import is completed.') %> + <%- @T('Attention: These will also be your login and password after the import is completed.') %>

diff --git a/app/controllers/application_controller/has_user.rb b/app/controllers/application_controller/has_user.rb index 6ba9152b0..18d8e6d1b 100644 --- a/app/controllers/application_controller/has_user.rb +++ b/app/controllers/application_controller/has_user.rb @@ -73,7 +73,7 @@ module ApplicationController::HasUser session[:ping] = Time.zone.now.iso8601 - # check if remote ip need to be updated + # check if remote ip needs to be updated if session[:user_id] if !session[:remote_ip] || session[:remote_ip] != request.remote_ip # rubocop:disable Style/SoleNestedConditional session[:remote_ip] = request.remote_ip diff --git a/app/controllers/monitoring_controller.rb b/app/controllers/monitoring_controller.rb index ba3e62eb4..d9f6478d4 100644 --- a/app/controllers/monitoring_controller.rb +++ b/app/controllers/monitoring_controller.rb @@ -311,7 +311,7 @@ curl http://localhost/api/v1/monitoring/amount_check?token=XXX&periode=1h raise Exceptions::UnprocessableEntity, 'periode need to have s, m, h or d as last!' if !scale.match?(%r{^(s|m|h|d)$}) periode = params[:periode][0, params[:periode].length - 1] - raise Exceptions::UnprocessableEntity, 'periode need to be an integer!' if periode.to_i.zero? + raise Exceptions::UnprocessableEntity, 'periode needs to be an integer!' if periode.to_i.zero? case scale when 's' @@ -334,7 +334,7 @@ curl http://localhost/api/v1/monitoring/amount_check?token=XXX&periode=1h state_param = false map.each do |row| next if params[row[:param]].blank? - raise Exceptions::UnprocessableEntity, "#{row[:param]} need to be an integer!" if params[row[:param]].to_i.zero? + raise Exceptions::UnprocessableEntity, "#{row[:param]} needs to be an integer!" if params[row[:param]].to_i.zero? state_param = true diff --git a/app/controllers/reports_controller.rb b/app/controllers/reports_controller.rb index 4f7d44468..899af814e 100644 --- a/app/controllers/reports_controller.rb +++ b/app/controllers/reports_controller.rb @@ -7,7 +7,7 @@ class ReportsController < ApplicationController def reporting_config if !Report.enabled? render json: { - error: __('Elasticsearch need to be configured!'), + error: __('Elasticsearch needs to be configured!'), } return end diff --git a/app/models/avatar.rb b/app/models/avatar.rb index 5aa8be1f9..ff443bec8 100644 --- a/app/models/avatar.rb +++ b/app/models/avatar.rb @@ -180,7 +180,7 @@ add avatar by url end end - # check if avatar need to be updated + # check if avatar needs to be updated if data[:resize].present? && data[:resize][:content].present? record[:store_hash] = Digest::MD5.hexdigest(data[:resize][:content]) if avatar_already_exists&.store_hash == record[:store_hash] diff --git a/app/models/cti/driver/base.rb b/app/models/cti/driver/base.rb index 4de2ce046..8fb780471 100644 --- a/app/models/cti/driver/base.rb +++ b/app/models/cti/driver/base.rb @@ -73,7 +73,7 @@ class Cti::Driver::Base config_inbound = @config[:inbound] || {} block_caller_ids = config_inbound[:block_caller_ids] || [] - # check if call need to be blocked + # check if call needs to be blocked block_caller_ids.each do |item| next if item[:caller_id] != @params['from'] diff --git a/app/models/role.rb b/app/models/role.rb index e38352f2b..895d48698 100644 --- a/app/models/role.rb +++ b/app/models/role.rb @@ -176,7 +176,7 @@ returns return true if !will_save_change_to_attribute?('active') return true if active != false return true if !with_permission?(['admin', 'admin.user']) - raise Exceptions::UnprocessableEntity, __('Minimum one user needs to have admin permissions.') if last_admin_check_admin_count < 1 + raise Exceptions::UnprocessableEntity, __('At least one user needs to have admin permissions.') if last_admin_check_admin_count < 1 true end @@ -184,7 +184,7 @@ returns def last_admin_check_by_permission(permission) return true if Setting.get('import_mode') return true if permission.name != 'admin' && permission.name != 'admin.user' - raise Exceptions::UnprocessableEntity, __('Minimum one user needs to have admin permissions.') if last_admin_check_admin_count < 1 + raise Exceptions::UnprocessableEntity, __('At least one user needs to have admin permissions.') if last_admin_check_admin_count < 1 true end diff --git a/app/models/ticket.rb b/app/models/ticket.rb index 23a43505a..a0cc20739 100644 --- a/app/models/ticket.rb +++ b/app/models/ticket.rb @@ -207,7 +207,7 @@ returns next end - # check if warning need to be sent + # check if warning needs to be sent TransactionJob.perform_now( object: 'Ticket', type: 'escalation_warning', diff --git a/app/models/user.rb b/app/models/user.rb index 181ab893f..06ad1945f 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1010,7 +1010,7 @@ try to find correct name preferences[:notification_sound][:enabled] = false end class_name = preferences[:notification_sound][:enabled].class.to_s - raise Exceptions::UnprocessableEntity, "preferences.notification_sound.enabled need to be an boolean, but it was a #{class_name}" if class_name != 'TrueClass' && class_name != 'FalseClass' + raise Exceptions::UnprocessableEntity, "preferences.notification_sound.enabled needs to be an boolean, but it was a #{class_name}" if class_name != 'TrueClass' && class_name != 'FalseClass' true end @@ -1021,7 +1021,7 @@ checks if the current user is the last one with admin permissions. Raises -raise 'Minimum one user need to have admin permissions' +raise 'At least one user need to have admin permissions' =end @@ -1029,7 +1029,7 @@ raise 'Minimum one user need to have admin permissions' return true if !will_save_change_to_attribute?('active') return true if active != false return true if !permissions?(['admin', 'admin.user']) - raise Exceptions::UnprocessableEntity, __('Minimum one user needs to have admin permissions.') if last_admin_check_admin_count < 1 + raise Exceptions::UnprocessableEntity, __('At least one user needs to have admin permissions.') if last_admin_check_admin_count < 1 true end @@ -1037,7 +1037,7 @@ raise 'Minimum one user need to have admin permissions' def last_admin_check_by_role(role) return true if Setting.get('import_mode') return true if !role.with_permission?(['admin', 'admin.user']) - raise Exceptions::UnprocessableEntity, __('Minimum one user needs to have admin permissions.') if last_admin_check_admin_count < 1 + raise Exceptions::UnprocessableEntity, __('At least one user needs to have admin permissions.') if last_admin_check_admin_count < 1 true end diff --git a/config/locales/doorkeeper.en.yml b/config/locales/doorkeeper.en.yml index 2a869b3c6..41c18ad07 100644 --- a/config/locales/doorkeeper.en.yml +++ b/config/locales/doorkeeper.en.yml @@ -92,7 +92,7 @@ en: unknown: 'The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed.' missing_param: 'Missing required parameter: %{value}.' not_support_pkce: 'Invalid code_verifier parameter. Server does not support pkce.' - request_not_authorized: 'Request need to be authorized. Required parameter for authorizing request is missing or invalid.' + request_not_authorized: 'Request needs to be authorized. Required parameter for authorizing request is missing or invalid.' invalid_redirect_uri: "The requested redirect uri is malformed or doesn't match client redirect URI." unauthorized_client: 'The client is not authorized to perform this request using this method.' access_denied: 'The resource owner or authorization server denied the request.' @@ -115,11 +115,11 @@ en: unsupported_grant_type: 'The authorization grant type is not supported by the authorization server.' invalid_token: - revoked: "The access token was revoked" - expired: "The access token expired" - unknown: "The access token is invalid" + revoked: 'The access token was revoked' + expired: 'The access token expired' + unknown: 'The access token is invalid' revoke: - unauthorized: "You are not authorized to revoke this token" + unauthorized: 'You are not authorized to revoke this token' flash: applications: diff --git a/i18n/zammad.pot b/i18n/zammad.pot index 794676d3d..680e9a4bb 100644 --- a/i18n/zammad.pot +++ b/i18n/zammad.pot @@ -937,6 +937,11 @@ msgstr "" msgid "At least one object must be selected." msgstr "" +#: app/models/role.rb +#: app/models/user.rb +msgid "At least one user needs to have admin permissions." +msgstr "" + #: app/assets/javascripts/app/views/generic/attachments.jst.eco #: app/assets/javascripts/app/views/layout_ref/communication_overview.jst.eco #: app/assets/javascripts/app/views/layout_ref/ticket_zoom.jst.eco @@ -955,7 +960,7 @@ msgid "Attachments" msgstr "" #: app/assets/javascripts/app/views/import/kayako.jst.eco -msgid "Attention: These will also your login password after the import is completed." +msgid "Attention: These will also be your login and password after the import is completed." msgstr "" #: app/assets/javascripts/app/views/import/freshdesk.jst.eco @@ -3346,7 +3351,7 @@ msgid "Elasticsearch is not reachable, probably because it's not running or even msgstr "" #: app/controllers/reports_controller.rb -msgid "Elasticsearch need to be configured!" +msgid "Elasticsearch needs to be configured!" msgstr "" #: app/assets/javascripts/app/controllers/_channel/email.coffee @@ -5788,11 +5793,6 @@ msgstr "" msgid "Minimum of one permission is needed!" msgstr "" -#: app/models/role.rb -#: app/models/user.rb -msgid "Minimum one user needs to have admin permissions." -msgstr "" - #: app/assets/javascripts/app/views/generic/timer.jst.eco msgid "Minute" msgstr "" @@ -6237,10 +6237,6 @@ msgstr "" msgid "No Knowledge Base created" msgstr "" -#: app/assets/javascripts/app/controllers/_manage/knowledge_base.coffee -msgid "No Knowledge Base. Please create first Knowledge Base" -msgstr "" - #: lib/external_credential/microsoft365.rb msgid "No Microsoft365 app configured!" msgstr "" @@ -8920,6 +8916,10 @@ msgstr "" msgid "There can be several reasons for the chat to not show up:" msgstr "" +#: app/assets/javascripts/app/controllers/_manage/knowledge_base.coffee +msgid "There is no Knowledge Base yet. Please create one." +msgstr "" + #: app/assets/javascripts/app/views/channel/chat.jst.eco msgid "There is no agent online." msgstr "" diff --git a/lib/telegram.rb b/lib/telegram.rb index 76d0c8d72..ddaa97f17 100644 --- a/lib/telegram.rb +++ b/lib/telegram.rb @@ -325,7 +325,7 @@ returns ticket = possible_tickets.find_each.find { |possible_ticket| possible_ticket.preferences[:channel_id] == channel.id } if ticket - # check if title need to be updated + # check if title needs to be updated if ticket.title == '-' ticket.title = title end diff --git a/spec/models/ticket/subject_spec.rb b/spec/models/ticket/subject_spec.rb index 4c0214a6c..4edbbccfb 100644 --- a/spec/models/ticket/subject_spec.rb +++ b/spec/models/ticket/subject_spec.rb @@ -38,7 +38,7 @@ RSpec.describe Ticket::Subject do expect(ticket.subject_clean('')).to eq('') end - it 'cleanup subject with long string which need to be truncated by [...]' do + it 'cleanup subject with long string which needs to be truncated by [...]' do expect(ticket.subject_clean('123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890')).to eq('12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[...]') end diff --git a/spec/requests/integration/message_bird_sms_spec.rb b/spec/requests/integration/message_bird_sms_spec.rb index c238643ad..c8535d96b 100644 --- a/spec/requests/integration/message_bird_sms_spec.rb +++ b/spec/requests/integration/message_bird_sms_spec.rb @@ -89,7 +89,7 @@ RSpec.describe 'Message Bird SMS', type: :request do expect(ticket.state.name).to eq('new') expect(article.id).to eq(Ticket::Article.last.id) - # new ticket need to be create + # new ticket needs to be created ticket.state = Ticket::State.find_by(name: 'closed') ticket.save! diff --git a/spec/requests/integration/twilio_sms_spec.rb b/spec/requests/integration/twilio_sms_spec.rb index 56a554a84..f6c3dd63a 100644 --- a/spec/requests/integration/twilio_sms_spec.rb +++ b/spec/requests/integration/twilio_sms_spec.rb @@ -96,7 +96,7 @@ RSpec.describe 'Twilio SMS', type: :request do expect(ticket.state.name).to eq('new') expect(article.id).to eq(Ticket::Article.last.id) - # new ticket need to be create + # new ticket needs to be created ticket.state = Ticket::State.find_by(name: 'closed') ticket.save! diff --git a/test/unit/email_process_test.rb b/test/unit/email_process_test.rb index 10dc8837f..242b8a8c4 100644 --- a/test/unit/email_process_test.rb +++ b/test/unit/email_process_test.rb @@ -201,7 +201,7 @@ Some Textäöü".encode('ISO-8859-1'), result: { 0 => { priority: '2 normal', - title: '??? some subject 3', # it's ok, because subject need to be 7bit encoded + title: '??? some subject 3', # it's ok, because subject needs to be 7bit encoded }, 1 => { body: 'Some Text???', # it's ok, because no content-type is given diff --git a/test/unit/object_cache_test.rb b/test/unit/object_cache_test.rb index f25b7de7e..21c5ec9e6 100644 --- a/test/unit/object_cache_test.rb +++ b/test/unit/object_cache_test.rb @@ -40,7 +40,7 @@ class ObjectCacheTest < ActiveSupport::TestCase roles = Role.where(name: %w[Agent Admin]) groups = Group.all.order(:id) - # be sure that minimum one admin is available + # be sure that at least one admin is available User.create_or_update( login: 'last_admin_check@example.org', firstname: 'last_admin_check',