diff --git a/Gemfile b/Gemfile index 7e7e6ea97..d1c6c6534 100644 --- a/Gemfile +++ b/Gemfile @@ -27,10 +27,10 @@ gem 'uglifier' gem 'flag_shih_tzu' # Random name generator for user names gem 'haikunator' -# Template parsing safetly +# Template parsing safely gem 'liquid' # Parse Markdown to HTML -gem 'redcarpet' +gem 'commonmarker' ##-- for active storage --## gem 'aws-sdk-s3', require: false @@ -44,6 +44,8 @@ gem 'pg' gem 'redis' gem 'redis-namespace' gem 'redis-rack-cache' +# super fast record imports in bulk +gem 'activerecord-import' ##--- gems for server & infra configuration ---## gem 'dotenv-rails' diff --git a/Gemfile.lock b/Gemfile.lock index d9da65980..5dbad5245 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -18,56 +18,58 @@ GEM specs: action-cable-testing (0.6.1) actioncable (>= 5.0) - actioncable (6.0.3.4) - actionpack (= 6.0.3.4) + actioncable (6.0.3.5) + actionpack (= 6.0.3.5) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.0.3.4) - actionpack (= 6.0.3.4) - activejob (= 6.0.3.4) - activerecord (= 6.0.3.4) - activestorage (= 6.0.3.4) - activesupport (= 6.0.3.4) + actionmailbox (6.0.3.5) + actionpack (= 6.0.3.5) + activejob (= 6.0.3.5) + activerecord (= 6.0.3.5) + activestorage (= 6.0.3.5) + activesupport (= 6.0.3.5) mail (>= 2.7.1) - actionmailer (6.0.3.4) - actionpack (= 6.0.3.4) - actionview (= 6.0.3.4) - activejob (= 6.0.3.4) + actionmailer (6.0.3.5) + actionpack (= 6.0.3.5) + actionview (= 6.0.3.5) + activejob (= 6.0.3.5) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.0.3.4) - actionview (= 6.0.3.4) - activesupport (= 6.0.3.4) + actionpack (6.0.3.5) + actionview (= 6.0.3.5) + activesupport (= 6.0.3.5) rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.0.3.4) - actionpack (= 6.0.3.4) - activerecord (= 6.0.3.4) - activestorage (= 6.0.3.4) - activesupport (= 6.0.3.4) + actiontext (6.0.3.5) + actionpack (= 6.0.3.5) + activerecord (= 6.0.3.5) + activestorage (= 6.0.3.5) + activesupport (= 6.0.3.5) nokogiri (>= 1.8.5) - actionview (6.0.3.4) - activesupport (= 6.0.3.4) + actionview (6.0.3.5) + activesupport (= 6.0.3.5) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.0.3.4) - activesupport (= 6.0.3.4) + activejob (6.0.3.5) + activesupport (= 6.0.3.5) globalid (>= 0.3.6) - activemodel (6.0.3.4) - activesupport (= 6.0.3.4) - activerecord (6.0.3.4) - activemodel (= 6.0.3.4) - activesupport (= 6.0.3.4) - activestorage (6.0.3.4) - actionpack (= 6.0.3.4) - activejob (= 6.0.3.4) - activerecord (= 6.0.3.4) + activemodel (6.0.3.5) + activesupport (= 6.0.3.5) + activerecord (6.0.3.5) + activemodel (= 6.0.3.5) + activesupport (= 6.0.3.5) + activerecord-import (1.0.7) + activerecord (>= 3.2) + activestorage (6.0.3.5) + actionpack (= 6.0.3.5) + activejob (= 6.0.3.5) + activerecord (= 6.0.3.5) marcel (~> 0.3.1) - activesupport (6.0.3.4) + activesupport (6.0.3.5) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -145,7 +147,9 @@ GEM coderay (1.1.3) coercible (1.0.0) descendants_tracker (~> 0.0.1) - concurrent-ruby (1.1.7) + commonmarker (0.21.1) + ruby-enum (~> 0.5) + concurrent-ruby (1.1.8) connection_pool (2.2.3) crack (0.4.3) safe_yaml (~> 1.0.0) @@ -181,7 +185,7 @@ GEM dotenv (= 2.7.6) railties (>= 3.2) equalizer (0.0.11) - erubi (1.9.0) + erubi (1.10.0) et-orbi (1.2.4) tzinfo execjs (2.7.0) @@ -257,7 +261,7 @@ GEM mime-types (~> 3.0) multi_xml (>= 0.5.2) httpclient (2.8.3) - i18n (1.8.5) + i18n (1.8.8) concurrent-ruby (~> 1.0) ice_nine (0.11.2) inflecto (0.0.2) @@ -294,7 +298,7 @@ GEM listen (3.3.3) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.7.0) + loofah (2.9.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -311,7 +315,7 @@ GEM mini_magick (4.10.1) mini_mime (1.0.2) mini_portile2 (2.5.0) - minitest (5.14.2) + minitest (5.14.3) momentjs-rails (2.20.1) railties (>= 3.1) msgpack (1.3.3) @@ -321,8 +325,8 @@ GEM net-http-persistent (4.0.0) connection_pool (~> 2.2) netrc (0.11.0) - nio4r (2.5.4) - nokogiri (1.11.0) + nio4r (2.5.5) + nokogiri (1.11.1) mini_portile2 (~> 2.5.0) racc (~> 1.4) oauth (0.5.4) @@ -353,38 +357,37 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.0.3.4) - actioncable (= 6.0.3.4) - actionmailbox (= 6.0.3.4) - actionmailer (= 6.0.3.4) - actionpack (= 6.0.3.4) - actiontext (= 6.0.3.4) - actionview (= 6.0.3.4) - activejob (= 6.0.3.4) - activemodel (= 6.0.3.4) - activerecord (= 6.0.3.4) - activestorage (= 6.0.3.4) - activesupport (= 6.0.3.4) + rails (6.0.3.5) + actioncable (= 6.0.3.5) + actionmailbox (= 6.0.3.5) + actionmailer (= 6.0.3.5) + actionpack (= 6.0.3.5) + actiontext (= 6.0.3.5) + actionview (= 6.0.3.5) + activejob (= 6.0.3.5) + activemodel (= 6.0.3.5) + activerecord (= 6.0.3.5) + activestorage (= 6.0.3.5) + activesupport (= 6.0.3.5) bundler (>= 1.3.0) - railties (= 6.0.3.4) + railties (= 6.0.3.5) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) rails-html-sanitizer (1.3.0) loofah (~> 2.3) - railties (6.0.3.4) - actionpack (= 6.0.3.4) - activesupport (= 6.0.3.4) + railties (6.0.3.5) + actionpack (= 6.0.3.5) + activesupport (= 6.0.3.5) method_source rake (>= 0.8.7) thor (>= 0.20.3, < 2.0) rainbow (3.0.0) - rake (13.0.1) + rake (13.0.3) rb-fsevent (0.10.4) rb-inotify (0.10.1) ffi (~> 1.0) - redcarpet (3.5.1) redis (4.2.1) redis-namespace (1.8.0) redis (>= 3.0.4) @@ -444,6 +447,8 @@ GEM rubocop (>= 0.87.0) rubocop-rspec (1.43.2) rubocop (~> 0.87) + ruby-enum (0.9.0) + i18n ruby-progressbar (1.10.1) ruby2ruby (2.4.4) ruby_parser (~> 3.1) @@ -520,7 +525,7 @@ GEM inflecto virtus telephone_number (1.4.9) - thor (1.0.1) + thor (1.1.0) thread_safe (0.3.6) tilt (2.0.10) time_diff (0.3.0) @@ -532,7 +537,7 @@ GEM nokogiri (>= 1.6, < 2.0) twitty (0.1.1) oauth - tzinfo (1.2.8) + tzinfo (1.2.9) thread_safe (~> 0.1) tzinfo-data (1.2020.1) tzinfo (>= 1.0.0) @@ -575,13 +580,14 @@ GEM websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) wisper (2.0.0) - zeitwerk (2.4.1) + zeitwerk (2.4.2) PLATFORMS ruby DEPENDENCIES action-cable-testing + activerecord-import acts-as-taggable-on administrate annotate @@ -595,6 +601,7 @@ DEPENDENCIES bullet bundle-audit byebug + commonmarker cypress-on-rails (~> 1.0) database_cleaner devise @@ -629,7 +636,6 @@ DEPENDENCIES pundit rack-cors rails - redcarpet redis redis-namespace redis-rack-cache diff --git a/app/controllers/api/v1/accounts/contacts/contact_inboxes_controller.rb b/app/controllers/api/v1/accounts/contacts/contact_inboxes_controller.rb index 7875b0f10..16686dbfe 100644 --- a/app/controllers/api/v1/accounts/contacts/contact_inboxes_controller.rb +++ b/app/controllers/api/v1/accounts/contacts/contact_inboxes_controller.rb @@ -1,21 +1,14 @@ class Api::V1::Accounts::Contacts::ContactInboxesController < Api::V1::Accounts::BaseController before_action :ensure_contact before_action :ensure_inbox, only: [:create] - before_action :validate_channel_type def create source_id = params[:source_id] || SecureRandom.uuid - @contact_inbox = ContactInbox.create(contact: @contact, inbox: @inbox, source_id: source_id) + @contact_inbox = ContactInbox.create!(contact: @contact, inbox: @inbox, source_id: source_id) end private - def validate_channel_type - return if @inbox.channel_type == 'Channel::Api' - - render json: { error: 'Contact Inbox creation is only allowed in API inboxes' }, status: :unprocessable_entity - end - def ensure_inbox @inbox = Current.account.inboxes.find(params[:inbox_id]) end diff --git a/app/controllers/api/v1/accounts/contacts_controller.rb b/app/controllers/api/v1/accounts/contacts_controller.rb index 2ea843f9b..37a583f05 100644 --- a/app/controllers/api/v1/accounts/contacts_controller.rb +++ b/app/controllers/api/v1/accounts/contacts_controller.rb @@ -22,6 +22,14 @@ class Api::V1::Accounts::ContactsController < Api::V1::Accounts::BaseController @contacts = fetch_contact_last_seen_at(contacts) end + def import + ActiveRecord::Base.transaction do + import = Current.account.data_imports.create!(data_type: 'contacts') + import.import_file.attach(params[:import_file]) + end + head :ok + end + # returns online contacts def active contacts = Current.account.contacts.where(id: ::OnlineStatusTracker @@ -46,7 +54,7 @@ class Api::V1::Accounts::ContactsController < Api::V1::Accounts::BaseController rescue ActiveRecord::RecordInvalid => e render json: { message: e.record.errors.full_messages.join(', '), - contact: Contact.find_by(email: contact_params[:email]) + contact: Current.account.contacts.find_by(email: contact_params[:email]) }, status: :unprocessable_entity end diff --git a/app/controllers/api/v1/accounts/conversations/assignments_controller.rb b/app/controllers/api/v1/accounts/conversations/assignments_controller.rb index 58fbc5b4e..670abf37a 100644 --- a/app/controllers/api/v1/accounts/conversations/assignments_controller.rb +++ b/app/controllers/api/v1/accounts/conversations/assignments_controller.rb @@ -1,9 +1,20 @@ class Api::V1::Accounts::Conversations::AssignmentsController < Api::V1::Accounts::Conversations::BaseController - # assign agent to a conversation + # assigns agent/team to a conversation def create + set_assignee + render json: @assignee + end + + private + + def set_assignee # if params[:assignee_id] is not a valid id, it will set to nil, hence unassigning the conversation - assignee = Current.account.users.find_by(id: params[:assignee_id]) - @conversation.update_assignee(assignee) - render json: assignee + if params.key?(:assignee_id) + @assignee = Current.account.users.find_by(id: params[:assignee_id]) + @conversation.update_assignee(@assignee) + elsif params.key?(:team_id) + @assignee = Current.account.teams.find_by(id: params[:team_id]) + @conversation.update!(team: @assignee) + end end end diff --git a/app/controllers/api/v1/accounts/inbox_members_controller.rb b/app/controllers/api/v1/accounts/inbox_members_controller.rb index fc960d9ec..f715c7040 100644 --- a/app/controllers/api/v1/accounts/inbox_members_controller.rb +++ b/app/controllers/api/v1/accounts/inbox_members_controller.rb @@ -22,9 +22,10 @@ class Api::V1::Accounts::InboxMembersController < Api::V1::Accounts::BaseControl # get the list of user_ids from params # the missing ones are the agents which are to be deleted from the inbox # the new ones are the agents which are to be added to the inbox - - agents_to_be_added_ids.each { |user_id| @inbox.add_member(user_id) } - agents_to_be_removed_ids.each { |user_id| @inbox.remove_member(user_id) } + ActiveRecord::Base.transaction do + agents_to_be_added_ids.each { |user_id| @inbox.add_member(user_id) } + agents_to_be_removed_ids.each { |user_id| @inbox.remove_member(user_id) } + end end def agents_to_be_added_ids diff --git a/app/controllers/api/v1/accounts/inboxes_controller.rb b/app/controllers/api/v1/accounts/inboxes_controller.rb index 0f573bbb9..6c078d28f 100644 --- a/app/controllers/api/v1/accounts/inboxes_controller.rb +++ b/app/controllers/api/v1/accounts/inboxes_controller.rb @@ -89,6 +89,8 @@ class Api::V1::Accounts::InboxesController < Api::V1::Accounts::BaseController :webhook_url, :email, :reply_time, + :pre_chat_form_enabled, + { pre_chat_form_options: [:pre_chat_message, :require_email] }, { selected_feature_flags: [] } ]) end diff --git a/app/controllers/api/v1/accounts/notifications_controller.rb b/app/controllers/api/v1/accounts/notifications_controller.rb index 49191caad..8f63d79f5 100644 --- a/app/controllers/api/v1/accounts/notifications_controller.rb +++ b/app/controllers/api/v1/accounts/notifications_controller.rb @@ -1,6 +1,7 @@ class Api::V1::Accounts::NotificationsController < Api::V1::Accounts::BaseController - protect_from_forgery with: :null_session + RESULTS_PER_PAGE = 15 + protect_from_forgery with: :null_session before_action :fetch_notification, only: [:update] before_action :set_primary_actor, only: [:read_all] before_action :set_current_page, only: [:index] @@ -8,17 +9,18 @@ class Api::V1::Accounts::NotificationsController < Api::V1::Accounts::BaseContro def index @unread_count = current_user.notifications.where(account_id: current_account.id, read_at: nil).count @count = notifications.count - @notifications = notifications.page @current_page + @notifications = notifications.page(@current_page).per(RESULTS_PER_PAGE) end def read_all + # rubocop:disable Rails/SkipsModelValidations if @primary_actor current_user.notifications.where(account_id: current_account.id, primary_actor: @primary_actor, read_at: nil) - .update(read_at: DateTime.now.utc) + .update_all(read_at: DateTime.now.utc) else - current_user.notifications.where(account_id: current_account.id, read_at: nil).update(read_at: DateTime.now.utc) + current_user.notifications.where(account_id: current_account.id, read_at: nil).update_all(read_at: DateTime.now.utc) end - + # rubocop:enable Rails/SkipsModelValidations head :ok end diff --git a/app/controllers/api/v1/accounts/team_members_controller.rb b/app/controllers/api/v1/accounts/team_members_controller.rb index 32a792509..d7e17a687 100644 --- a/app/controllers/api/v1/accounts/team_members_controller.rb +++ b/app/controllers/api/v1/accounts/team_members_controller.rb @@ -7,17 +7,41 @@ class Api::V1::Accounts::TeamMembersController < Api::V1::Accounts::BaseControll end def create - record = @team.team_members.find_or_create_by(user_id: params[:user_id]) - @team_member = record.user + ActiveRecord::Base.transaction do + @team_members = params[:user_ids].map { |user_id| @team.add_member(user_id) } + end + end + + def update + ActiveRecord::Base.transaction do + members_to_be_added_ids.each { |user_id| @team.add_member(user_id) } + members_to_be_removed_ids.each { |user_id| @team.remove_member(user_id) } + end + @team_members = @team.members + render action: 'create' end def destroy - @team.team_members.find_by(user_id: params[:user_id])&.destroy + ActiveRecord::Base.transaction do + params[:user_ids].map { |user_id| @team.remove_member(user_id) } + end head :ok end private + def members_to_be_added_ids + params[:user_ids] - current_members_ids + end + + def members_to_be_removed_ids + current_members_ids - params[:user_ids] + end + + def current_members_ids + @current_members_ids ||= @team.members.pluck(:id) + end + def fetch_team @team = Current.account.teams.find(params[:team_id]) end diff --git a/app/controllers/api/v1/accounts/twitter/authorizations_controller.rb b/app/controllers/api/v1/accounts/twitter/authorizations_controller.rb new file mode 100644 index 000000000..f96a2921c --- /dev/null +++ b/app/controllers/api/v1/accounts/twitter/authorizations_controller.rb @@ -0,0 +1,29 @@ +class Api::V1::Accounts::Twitter::AuthorizationsController < Api::V1::Accounts::BaseController + include TwitterConcern + + before_action :check_authorization + + def create + @response = twitter_client.request_oauth_token(url: twitter_callback_url) + if @response.status == '200' + ::Redis::Alfred.setex(oauth_token, Current.account.id) + render json: { success: true, url: oauth_authorize_endpoint(oauth_token) } + else + render json: { success: false }, status: :unprocessable_entity + end + end + + private + + def oauth_token + parsed_body['oauth_token'] + end + + def oauth_authorize_endpoint(oauth_token) + "#{twitter_api_base_url}/oauth/authorize?oauth_token=#{oauth_token}" + end + + def check_authorization + raise Pundit::NotAuthorizedError unless Current.account_user.administrator? + end +end diff --git a/app/controllers/api/v1/widget/base_controller.rb b/app/controllers/api/v1/widget/base_controller.rb index 1d377d69d..52f19595e 100644 --- a/app/controllers/api/v1/widget/base_controller.rb +++ b/app/controllers/api/v1/widget/base_controller.rb @@ -20,11 +20,7 @@ class Api::V1::Widget::BaseController < ApplicationController end def auth_token_params - @auth_token_params ||= ::Widget::TokenService.new(token: request.headers[header_name]).decode_token - end - - def header_name - 'X-Auth-Token' + @auth_token_params ||= ::Widget::TokenService.new(token: request.headers['X-Auth-Token']).decode_token end def set_web_widget @@ -39,6 +35,50 @@ class Api::V1::Widget::BaseController < ApplicationController @contact = @contact_inbox.contact end + def create_conversation + ::Conversation.create!(conversation_params) + end + + def inbox + @inbox ||= ::Inbox.find_by(id: auth_token_params[:inbox_id]) + end + + def conversation_params + # FIXME: typo referrer in additional attributes, will probably require a migration. + { + account_id: inbox.account_id, + inbox_id: inbox.id, + contact_id: @contact.id, + contact_inbox_id: @contact_inbox.id, + additional_attributes: { + browser: browser_params, + referer: permitted_params[:message][:referer_url], + initiated_at: timestamp_params + } + } + end + + def update_contact(email) + contact_with_email = @current_account.contacts.find_by(email: email) + if contact_with_email + @contact = ::ContactMergeAction.new( + account: @current_account, + base_contact: contact_with_email, + mergee_contact: @contact + ).perform + else + @contact.update!(email: email, name: contact_name) + end + end + + def contact_email + permitted_params[:contact][:email].downcase + end + + def contact_name + params[:contact][:name] || contact_email.split('@')[0] + end + def browser_params { browser_name: browser.name, @@ -48,4 +88,19 @@ class Api::V1::Widget::BaseController < ApplicationController platform_version: browser.platform.version } end + + def timestamp_params + { timestamp: permitted_params[:message][:timestamp] } + end + + def message_params + { + account_id: conversation.account_id, + sender: @contact, + content: permitted_params[:message][:content], + inbox_id: conversation.inbox_id, + echo_id: permitted_params[:message][:echo_id], + message_type: :incoming + } + end end diff --git a/app/controllers/api/v1/widget/contacts_controller.rb b/app/controllers/api/v1/widget/contacts_controller.rb index 1fca2ee81..ad818d7ac 100644 --- a/app/controllers/api/v1/widget/contacts_controller.rb +++ b/app/controllers/api/v1/widget/contacts_controller.rb @@ -12,7 +12,7 @@ class Api::V1::Widget::ContactsController < Api::V1::Widget::BaseController def process_hmac return if params[:identifier_hash].blank? - raise StandardError, 'HMAC failed: Invalid Identifer Hash Provided' unless valid_hmac? + raise StandardError, 'HMAC failed: Invalid Identifier Hash Provided' unless valid_hmac? @contact_inbox.update(hmac_verified: true) end diff --git a/app/controllers/api/v1/widget/conversations_controller.rb b/app/controllers/api/v1/widget/conversations_controller.rb index bafd008f9..cc68cb888 100644 --- a/app/controllers/api/v1/widget/conversations_controller.rb +++ b/app/controllers/api/v1/widget/conversations_controller.rb @@ -5,6 +5,14 @@ class Api::V1::Widget::ConversationsController < Api::V1::Widget::BaseController @conversation = conversation end + def create + ActiveRecord::Base.transaction do + update_contact(contact_email) if @contact.email.blank? && contact_email.present? + @conversation = create_conversation + conversation.messages.create(message_params) + end + end + def update_last_seen head :ok && return if conversation.nil? @@ -43,6 +51,6 @@ class Api::V1::Widget::ConversationsController < Api::V1::Widget::BaseController end def permitted_params - params.permit(:id, :typing_status, :website_token, :email) + params.permit(:id, :typing_status, :website_token, :email, contact: [:name, :email], message: [:content, :referer_url, :timestamp, :echo_id]) end end diff --git a/app/controllers/api/v1/widget/messages_controller.rb b/app/controllers/api/v1/widget/messages_controller.rb index c98138366..6def00a3a 100644 --- a/app/controllers/api/v1/widget/messages_controller.rb +++ b/app/controllers/api/v1/widget/messages_controller.rb @@ -39,44 +39,7 @@ class Api::V1::Widget::MessagesController < Api::V1::Widget::BaseController end def set_conversation - @conversation = ::Conversation.create!(conversation_params) if conversation.nil? - end - - def message_params - { - account_id: conversation.account_id, - sender: @contact, - content: permitted_params[:message][:content], - inbox_id: conversation.inbox_id, - echo_id: permitted_params[:message][:echo_id], - message_type: :incoming - } - end - - def conversation_params - # FIXME: typo referrer in additional attributes - # will probably require a migration. - { - account_id: inbox.account_id, - inbox_id: inbox.id, - contact_id: @contact.id, - contact_inbox_id: @contact_inbox.id, - additional_attributes: { - browser: browser_params, - referer: permitted_params[:message][:referer_url], - initiated_at: timestamp_params - } - } - end - - def timestamp_params - { - timestamp: permitted_params[:message][:timestamp] - } - end - - def inbox - @inbox ||= ::Inbox.find_by(id: auth_token_params[:inbox_id]) + @conversation = create_conversation if conversation.nil? end def message_finder_params @@ -90,36 +53,12 @@ class Api::V1::Widget::MessagesController < Api::V1::Widget::BaseController @message_finder ||= MessageFinder.new(conversation, message_finder_params) end - def update_contact(email) - contact_with_email = @current_account.contacts.find_by(email: email) - if contact_with_email - @contact = ::ContactMergeAction.new( - account: @current_account, - base_contact: contact_with_email, - mergee_contact: @contact - ).perform - else - @contact.update!( - email: email, - name: contact_name - ) - end - end - - def contact_email - permitted_params[:contact][:email].downcase - end - - def contact_name - contact_email.split('@')[0] - end - def message_update_params params.permit(message: [{ submitted_values: [:name, :title, :value] }]) end def permitted_params - params.permit(:id, :before, :website_token, contact: [:email], message: [:content, :referer_url, :timestamp, :echo_id]) + params.permit(:id, :before, :website_token, contact: [:name, :email], message: [:content, :referer_url, :timestamp, :echo_id]) end def set_message diff --git a/app/controllers/concerns/twitter_concern.rb b/app/controllers/concerns/twitter_concern.rb new file mode 100644 index 000000000..e2c236d25 --- /dev/null +++ b/app/controllers/concerns/twitter_concern.rb @@ -0,0 +1,26 @@ +module TwitterConcern + extend ActiveSupport::Concern + + private + + def parsed_body + @parsed_body ||= Rack::Utils.parse_nested_query(@response.raw_response.body) + end + + def host + ENV.fetch('FRONTEND_URL', '') + end + + def twitter_client + Twitty::Facade.new do |config| + config.consumer_key = ENV.fetch('TWITTER_CONSUMER_KEY', nil) + config.consumer_secret = ENV.fetch('TWITTER_CONSUMER_SECRET', nil) + config.base_url = twitter_api_base_url + config.environment = ENV.fetch('TWITTER_ENVIRONMENT', '') + end + end + + def twitter_api_base_url + 'https://api.twitter.com' + end +end diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index 9ed9f7f47..14030b565 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -20,7 +20,8 @@ class DashboardController < ActionController::Base 'TERMS_URL', 'PRIVACY_URL', 'DISPLAY_MANIFEST', - 'CREATE_NEW_ACCOUNT_FROM_DASHBOARD' + 'CREATE_NEW_ACCOUNT_FROM_DASHBOARD', + 'CHATWOOT_INBOX_TOKEN' ).merge( APP_VERSION: Chatwoot.config[:version] ) diff --git a/app/controllers/twitter/authorizations_controller.rb b/app/controllers/twitter/authorizations_controller.rb deleted file mode 100644 index 765e026fe..000000000 --- a/app/controllers/twitter/authorizations_controller.rb +++ /dev/null @@ -1,30 +0,0 @@ -class Twitter::AuthorizationsController < Twitter::BaseController - def create - @response = twitter_client.request_oauth_token(url: twitter_callback_url) - - if @response.status == '200' - ::Redis::Alfred.setex(oauth_token, account.id) - redirect_to oauth_authorize_endpoint(oauth_token) - else - redirect_to app_new_twitter_inbox_url(account_id: account.id) - end - end - - private - - def oauth_token - parsed_body['oauth_token'] - end - - def user - @user ||= User.find_by(id: params[:user_id]) - end - - def account - @account ||= user.account - end - - def oauth_authorize_endpoint(oauth_token) - "#{twitter_api_base_url}/oauth/authorize?oauth_token=#{oauth_token}" - end -end diff --git a/app/controllers/twitter/base_controller.rb b/app/controllers/twitter/base_controller.rb index 353c1159c..9b4ba2a6a 100644 --- a/app/controllers/twitter/base_controller.rb +++ b/app/controllers/twitter/base_controller.rb @@ -1,24 +1,3 @@ class Twitter::BaseController < ApplicationController - private - - def parsed_body - @parsed_body ||= Rack::Utils.parse_nested_query(@response.raw_response.body) - end - - def host - ENV.fetch('FRONTEND_URL', '') - end - - def twitter_client - Twitty::Facade.new do |config| - config.consumer_key = ENV.fetch('TWITTER_CONSUMER_KEY', nil) - config.consumer_secret = ENV.fetch('TWITTER_CONSUMER_SECRET', nil) - config.base_url = twitter_api_base_url - config.environment = ENV.fetch('TWITTER_ENVIRONMENT', '') - end - end - - def twitter_api_base_url - 'https://api.twitter.com' - end + include TwitterConcern end diff --git a/app/controllers/twitter/callbacks_controller.rb b/app/controllers/twitter/callbacks_controller.rb index b3cafbe12..d484b0871 100644 --- a/app/controllers/twitter/callbacks_controller.rb +++ b/app/controllers/twitter/callbacks_controller.rb @@ -1,4 +1,6 @@ class Twitter::CallbacksController < Twitter::BaseController + include TwitterConcern + def show return redirect_to twitter_app_redirect_url if permitted_params[:denied] diff --git a/app/finders/conversation_finder.rb b/app/finders/conversation_finder.rb index 2aa7cb321..4336aff11 100644 --- a/app/finders/conversation_finder.rb +++ b/app/finders/conversation_finder.rb @@ -22,10 +22,12 @@ class ConversationFinder def perform set_inboxes + set_team set_assignee_type find_all_conversations filter_by_status unless params[:q] + filter_by_team if @team filter_by_labels if params[:labels] filter_by_query if params[:q] @@ -61,6 +63,10 @@ class ConversationFinder @assignee_type = params[:assignee_type] end + def set_team + @team = current_account.teams.find(params[:team_id]) if params[:team_id] + end + def find_all_conversations @conversations = current_account.conversations.where(inbox_id: @inbox_ids) end @@ -87,6 +93,10 @@ class ConversationFinder @conversations = @conversations.where(status: params[:status] || DEFAULT_STATUS) end + def filter_by_team + @conversations = @conversations.where(team: @team) + end + def filter_by_labels @conversations = @conversations.tagged_with(params[:labels], any: true) end diff --git a/app/helpers/file_type_helper.rb b/app/helpers/file_type_helper.rb index 9f6939565..4936fa155 100644 --- a/app/helpers/file_type_helper.rb +++ b/app/helpers/file_type_helper.rb @@ -9,6 +9,8 @@ module FileTypeHelper 'image/bmp' ].include?(content_type) + return :audio if content_type.include?('audio/') + :file end end diff --git a/app/javascript/dashboard/api/channel/twitterClient.js b/app/javascript/dashboard/api/channel/twitterClient.js new file mode 100644 index 000000000..110cf6cde --- /dev/null +++ b/app/javascript/dashboard/api/channel/twitterClient.js @@ -0,0 +1,14 @@ +/* global axios */ +import ApiClient from '../ApiClient'; + +class TwitterClient extends ApiClient { + constructor() { + super('twitter', { accountScoped: true }); + } + + generateAuthorization() { + return axios.post(`${this.url}/authorization`); + } +} + +export default new TwitterClient(); diff --git a/app/javascript/dashboard/api/inbox/conversation.js b/app/javascript/dashboard/api/inbox/conversation.js index 9f87d2aa5..159e77f0e 100644 --- a/app/javascript/dashboard/api/inbox/conversation.js +++ b/app/javascript/dashboard/api/inbox/conversation.js @@ -6,10 +6,11 @@ class ConversationApi extends ApiClient { super('conversations', { accountScoped: true }); } - get({ inboxId, status, assigneeType, page, labels }) { + get({ inboxId, status, assigneeType, page, labels, teamId }) { return axios.get(this.url, { params: { inbox_id: inboxId, + team_id: teamId, status, assignee_type: assigneeType, page, @@ -56,13 +57,14 @@ class ConversationApi extends ApiClient { return axios.post(`${this.url}/${conversationId}/unmute`); } - meta({ inboxId, status, assigneeType, labels }) { + meta({ inboxId, status, assigneeType, labels, teamId }) { return axios.get(`${this.url}/meta`, { params: { inbox_id: inboxId, status, assignee_type: assigneeType, labels, + team_id: teamId, }, }); } diff --git a/app/javascript/dashboard/api/notifications.js b/app/javascript/dashboard/api/notifications.js new file mode 100644 index 000000000..e13bc78a6 --- /dev/null +++ b/app/javascript/dashboard/api/notifications.js @@ -0,0 +1,33 @@ +/* global axios */ +import ApiClient from './ApiClient'; + +class NotificationsAPI extends ApiClient { + constructor() { + super('notifications', { accountScoped: true }); + } + + get(page) { + return axios.get(`${this.url}?page=${page}`); + } + + getNotifications(contactId) { + return axios.get(`${this.url}/${contactId}/notifications`); + } + + getUnreadCount() { + return axios.get(`${this.url}/unread_count`); + } + + read(primaryActorType, primaryActorId) { + return axios.post(`${this.url}/read_all`, { + primary_actor_type: primaryActorType, + primary_actor_id: primaryActorId, + }); + } + + readAll() { + return axios.post(`${this.url}/read_all`); + } +} + +export default new NotificationsAPI(); diff --git a/app/javascript/dashboard/api/specs/channel/twitterClient.spec.js b/app/javascript/dashboard/api/specs/channel/twitterClient.spec.js new file mode 100644 index 000000000..0480aeb82 --- /dev/null +++ b/app/javascript/dashboard/api/specs/channel/twitterClient.spec.js @@ -0,0 +1,9 @@ +import TwitterClient from '../../channel/twitterClient'; +import ApiClient from '../../ApiClient'; + +describe('#TwitterClient', () => { + it('creates correct instance', () => { + expect(TwitterClient).toBeInstanceOf(ApiClient); + expect(TwitterClient).toHaveProperty('generateAuthorization'); + }); +}); diff --git a/app/javascript/dashboard/api/specs/notifications.spec.js b/app/javascript/dashboard/api/specs/notifications.spec.js new file mode 100644 index 000000000..14f472ce9 --- /dev/null +++ b/app/javascript/dashboard/api/specs/notifications.spec.js @@ -0,0 +1,13 @@ +import notifications from '../notifications'; +import ApiClient from '../ApiClient'; + +describe('#NotificationAPI', () => { + it('creates correct instance', () => { + expect(notifications).toBeInstanceOf(ApiClient); + expect(notifications).toHaveProperty('get'); + expect(notifications).toHaveProperty('getNotifications'); + expect(notifications).toHaveProperty('getUnreadCount'); + expect(notifications).toHaveProperty('read'); + expect(notifications).toHaveProperty('readAll'); + }); +}); diff --git a/app/javascript/dashboard/api/specs/teams.spec.js b/app/javascript/dashboard/api/specs/teams.spec.js new file mode 100644 index 000000000..7622a5417 --- /dev/null +++ b/app/javascript/dashboard/api/specs/teams.spec.js @@ -0,0 +1,15 @@ +import teams from '../teams'; +import ApiClient from '../ApiClient'; + +describe('#TeamsAPI', () => { + it('creates correct instance', () => { + expect(teams).toBeInstanceOf(ApiClient); + expect(teams).toHaveProperty('get'); + expect(teams).toHaveProperty('show'); + expect(teams).toHaveProperty('create'); + expect(teams).toHaveProperty('update'); + expect(teams).toHaveProperty('delete'); + expect(teams).toHaveProperty('getAgents'); + expect(teams).toHaveProperty('addAgents'); + }); +}); diff --git a/app/javascript/dashboard/api/teams.js b/app/javascript/dashboard/api/teams.js new file mode 100644 index 000000000..9c117c71b --- /dev/null +++ b/app/javascript/dashboard/api/teams.js @@ -0,0 +1,20 @@ +/* global axios */ +import ApiClient from './ApiClient'; + +export class TeamsAPI extends ApiClient { + constructor() { + super('teams', { accountScoped: true }); + } + + getAgents({ teamId }) { + return axios.get(`${this.url}/${teamId}/team_members`); + } + + addAgents({ teamId, agentsList }) { + return axios.post(`${this.url}/${teamId}/team_members`, { + user_ids: agentsList, + }); + } +} + +export default new TeamsAPI(); diff --git a/app/javascript/dashboard/assets/scss/widgets/_reply-box.scss b/app/javascript/dashboard/assets/scss/widgets/_reply-box.scss index 870a60c1b..d91e192d2 100644 --- a/app/javascript/dashboard/assets/scss/widgets/_reply-box.scss +++ b/app/javascript/dashboard/assets/scss/widgets/_reply-box.scss @@ -8,23 +8,6 @@ } .reply-box__top { - .canned { - @include elegant-card; - background: $color-white; - border-bottom: $space-small solid $color-white; - border-top: $space-small solid $color-white; - left: 0; - - max-height: 14rem; - overflow: auto; - position: absolute; - width: 24rem; - z-index: 100; - - .active a { - background: $color-woot; - } - } .icon { color: $medium-gray; diff --git a/app/javascript/dashboard/assets/scss/widgets/_sidemenu.scss b/app/javascript/dashboard/assets/scss/widgets/_sidemenu.scss index 3971ec6fd..344317735 100644 --- a/app/javascript/dashboard/assets/scss/widgets/_sidemenu.scss +++ b/app/javascript/dashboard/assets/scss/widgets/_sidemenu.scss @@ -49,8 +49,10 @@ margin-top: $space-micro; .inbox-icon { + $icon-top-space: -1px; display: inline-block; margin-right: $space-micro; + margin-top: $icon-top-space; min-width: $space-normal; text-align: center; } @@ -70,9 +72,9 @@ .dropdown-pane { @include elegant-card; @include border-light; + bottom: 6rem; display: block; - left: 18%; - top: -110px; + left: 5rem; visibility: visible; width: 80%; z-index: 999; @@ -118,42 +120,6 @@ line-height: $global-lineheight; } -.current-user { - @include flex; - align-items: center; - cursor: pointer; - flex-direction: row; - - .current-user--data { - @include flex; - flex-direction: column; - - .current-user--name { - font-size: $font-size-small; - font-weight: $font-weight-medium; - line-height: 1; - margin-bottom: $space-smaller; - margin-left: $space-one; - margin-top: $space-micro; - } - - .current-user--role { - color: $color-gray; - font-size: $font-size-mini; - margin-bottom: $zero; - margin-left: $space-one; - text-transform: capitalize; - } - } - - .current-user--options { - font-size: $font-size-big; - margin-bottom: auto; - margin-left: auto; - margin-top: auto; - } -} - .hamburger--menu { cursor: pointer; display: none; diff --git a/app/javascript/dashboard/components/ChatList.vue b/app/javascript/dashboard/components/ChatList.vue index 06850ff38..8637c071a 100644 --- a/app/javascript/dashboard/components/ChatList.vue +++ b/app/javascript/dashboard/components/ChatList.vue @@ -80,6 +80,10 @@ export default { type: String, default: '', }, + activeTeam: { + type: Object, + default: () => {}, + }, }, data() { return { @@ -128,12 +132,16 @@ export default { status: this.activeStatus, page: this.currentPage + 1, labels: this.label ? [this.label] : undefined, + teamId: this.activeTeam.name ? this.activeTeam.id : undefined, }; }, pageTitle() { if (this.inbox.name) { return this.inbox.name; } + if (this.activeTeam.name) { + return this.activeTeam.name; + } if (this.label) { return `#${this.label}`; } @@ -162,6 +170,9 @@ export default { }, }, watch: { + activeTeam() { + this.resetAndFetchData(); + }, conversationInbox() { this.resetAndFetchData(); }, diff --git a/app/javascript/dashboard/components/Code.vue b/app/javascript/dashboard/components/Code.vue index 0be14acf3..b5edfa8d7 100644 --- a/app/javascript/dashboard/components/Code.vue +++ b/app/javascript/dashboard/components/Code.vue @@ -3,7 +3,7 @@ - + @@ -15,7 +15,7 @@ export default { props: { script: { type: String, - required: true, + default: '', }, lang: { type: String, diff --git a/app/javascript/dashboard/components/layout/Sidebar.vue b/app/javascript/dashboard/components/layout/Sidebar.vue index 1357ff104..19c56c2af 100644 --- a/app/javascript/dashboard/components/layout/Sidebar.vue +++ b/app/javascript/dashboard/components/layout/Sidebar.vue @@ -13,6 +13,11 @@ :key="item.toState" :menu-item="item" /> + -
- - - - -
- -
-

- {{ currentUserAvailableName }} -

-
- {{ $t(`AGENT_MGMT.AGENT_TYPES.${currentRole.toUpperCase()}`) }} -
-
- -
-
- + - + + + @close-account-create-modal="closeCreateAccountModal" + /> @@ -406,7 +318,23 @@ export default { } } } + .app-context-menu { + align-items: center; + cursor: pointer; + display: flex; + flex-direction: row; height: 6rem; } + +.current-user--options { + font-size: $font-size-big; + margin-bottom: auto; + margin-left: auto; + margin-top: auto; +} + +.teams-sidebar-menu + .nested.vertical.menu { + padding-left: calc(var(--space-medium) - var(--space-one)); +} diff --git a/app/javascript/dashboard/components/layout/SidebarItem.vue b/app/javascript/dashboard/components/layout/SidebarItem.vue index df7318aad..7a3394fce 100644 --- a/app/javascript/dashboard/components/layout/SidebarItem.vue +++ b/app/javascript/dashboard/components/layout/SidebarItem.vue @@ -155,7 +155,6 @@ export default { .wrap { display: flex; - align-items: center; } .label-color--display { diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/AccountSelector.vue b/app/javascript/dashboard/components/layout/sidebarComponents/AccountSelector.vue new file mode 100644 index 000000000..9860d7a09 --- /dev/null +++ b/app/javascript/dashboard/components/layout/sidebarComponents/AccountSelector.vue @@ -0,0 +1,56 @@ + + + diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/AddAccountModal.vue b/app/javascript/dashboard/components/layout/sidebarComponents/AddAccountModal.vue new file mode 100644 index 000000000..2c78495c9 --- /dev/null +++ b/app/javascript/dashboard/components/layout/sidebarComponents/AddAccountModal.vue @@ -0,0 +1,92 @@ + + + diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/AgentDetails.vue b/app/javascript/dashboard/components/layout/sidebarComponents/AgentDetails.vue new file mode 100644 index 000000000..a1233db7c --- /dev/null +++ b/app/javascript/dashboard/components/layout/sidebarComponents/AgentDetails.vue @@ -0,0 +1,63 @@ + + + + diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/NotificationBell.vue b/app/javascript/dashboard/components/layout/sidebarComponents/NotificationBell.vue new file mode 100644 index 000000000..e5f05aed1 --- /dev/null +++ b/app/javascript/dashboard/components/layout/sidebarComponents/NotificationBell.vue @@ -0,0 +1,52 @@ + + + + diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/OptionsMenu.vue b/app/javascript/dashboard/components/layout/sidebarComponents/OptionsMenu.vue new file mode 100644 index 000000000..35eeb696d --- /dev/null +++ b/app/javascript/dashboard/components/layout/sidebarComponents/OptionsMenu.vue @@ -0,0 +1,76 @@ + + + diff --git a/app/javascript/dashboard/routes/dashboard/contacts/components/Footer.vue b/app/javascript/dashboard/components/widgets/TableFooter.vue similarity index 99% rename from app/javascript/dashboard/routes/dashboard/contacts/components/Footer.vue rename to app/javascript/dashboard/components/widgets/TableFooter.vue index 9c2e5467b..b4123f433 100644 --- a/app/javascript/dashboard/routes/dashboard/contacts/components/Footer.vue +++ b/app/javascript/dashboard/components/widgets/TableFooter.vue @@ -172,6 +172,7 @@ export default { margin-left: -2px; font-size: var(--font-size-small); padding: var(--space-small) var(--space-normal); + border-radius: 0; &:hover, &:focus, diff --git a/app/javascript/dashboard/components/widgets/WootWriter/Editor.vue b/app/javascript/dashboard/components/widgets/WootWriter/Editor.vue index 35154edf6..2af0c9365 100644 --- a/app/javascript/dashboard/components/widgets/WootWriter/Editor.vue +++ b/app/javascript/dashboard/components/widgets/WootWriter/Editor.vue @@ -1,55 +1,113 @@ @@ -173,8 +195,8 @@ export default { } .left-wrap { - display: flex; align-items: center; + display: flex; } .button--reply { @@ -185,4 +207,21 @@ export default { color: var(--s-600); font-size: var(--font-size-default); } + +.right-wrap { + display: flex; + + .enter-to-send--checkbox { + align-items: center; + display: flex; + + input { + margin: 0; + } + + label { + color: var(--s-500); + } + } +} diff --git a/app/javascript/dashboard/components/widgets/conversation/CannedResponse.vue b/app/javascript/dashboard/components/widgets/conversation/CannedResponse.vue index e80adf24d..8826b3ea9 100644 --- a/app/javascript/dashboard/components/widgets/conversation/CannedResponse.vue +++ b/app/javascript/dashboard/components/widgets/conversation/CannedResponse.vue @@ -1,88 +1,45 @@ diff --git a/app/javascript/dashboard/components/widgets/conversation/helpers/botMessageContentHelper.js b/app/javascript/dashboard/components/widgets/conversation/helpers/botMessageContentHelper.js new file mode 100644 index 000000000..42e59a161 --- /dev/null +++ b/app/javascript/dashboard/components/widgets/conversation/helpers/botMessageContentHelper.js @@ -0,0 +1,57 @@ +const generateInputSelectContent = (contentType, contentAttributes) => { + const { submitted_values: submittedValues = [] } = contentAttributes; + const [selectedOption] = submittedValues; + + if (selectedOption && selectedOption.title) { + return `${selectedOption.title}`; + } + return ''; +}; + +const generateInputEmailContent = (contentType, contentAttributes) => { + const { submitted_email: submittedEmail = '' } = contentAttributes; + if (submittedEmail) { + return `${submittedEmail}`; + } + return ''; +}; + +const generateFormContent = ( + contentType, + contentAttributes, + noResponseText +) => { + const { items, submitted_values: submittedValues = [] } = contentAttributes; + if (submittedValues.length) { + const submittedObject = submittedValues.reduce((acc, keyValuePair) => { + acc[keyValuePair.name] = keyValuePair.value; + return acc; + }, {}); + let formMessageContent = ''; + items.forEach(item => { + formMessageContent += `
${item.label}
`; + const response = submittedObject[item.name] || noResponseText; + formMessageContent += `${response}

`; + }); + return formMessageContent; + } + return ''; +}; + +export const generateBotMessageContent = ( + contentType, + contentAttributes, + noResponseText = 'No response' +) => { + const contentTypeMethods = { + input_select: generateInputSelectContent, + input_email: generateInputEmailContent, + form: generateFormContent, + }; + + const contentTypeMethod = contentTypeMethods[contentType]; + if (contentTypeMethod && typeof contentTypeMethod === 'function') { + return contentTypeMethod(contentType, contentAttributes, noResponseText); + } + return ''; +}; diff --git a/app/javascript/dashboard/components/widgets/conversation/helpers/specs/botMessageContentHelper.spec.js b/app/javascript/dashboard/components/widgets/conversation/helpers/specs/botMessageContentHelper.spec.js new file mode 100644 index 000000000..716fdd65b --- /dev/null +++ b/app/javascript/dashboard/components/widgets/conversation/helpers/specs/botMessageContentHelper.spec.js @@ -0,0 +1,39 @@ +import { generateBotMessageContent } from '../botMessageContentHelper'; + +describe('#generateBotMessageContent', () => { + it('return correct input_select content', () => { + expect( + generateBotMessageContent('input_select', { + submitted_values: [{ value: 'salad', title: 'Salad' }], + }) + ).toEqual('Salad'); + }); + + it('return correct input_email content', () => { + expect( + generateBotMessageContent('input_email', { + submitted_email: 'hello@chatwoot.com', + }) + ).toEqual('hello@chatwoot.com'); + }); + + it('return correct form content', () => { + expect( + generateBotMessageContent('form', { + items: [ + { + name: 'large_text', + label: 'This a large text', + }, + { + name: 'email', + label: 'Email', + }, + ], + submitted_values: [{ name: 'large_text', value: 'Large Text Content' }], + }) + ).toEqual( + '
This a large text
Large Text Content

Email
No response

' + ); + }); +}); diff --git a/app/javascript/dashboard/components/widgets/mentions/MentionBox.vue b/app/javascript/dashboard/components/widgets/mentions/MentionBox.vue new file mode 100644 index 000000000..e5963d0ee --- /dev/null +++ b/app/javascript/dashboard/components/widgets/mentions/MentionBox.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/app/javascript/dashboard/i18n/default-sidebar.js b/app/javascript/dashboard/i18n/default-sidebar.js index f39f5b4f8..c4074e433 100644 --- a/app/javascript/dashboard/i18n/default-sidebar.js +++ b/app/javascript/dashboard/i18n/default-sidebar.js @@ -8,11 +8,15 @@ export const getSidebarItems = accountId => ({ 'inbox_conversation', 'conversation_through_inbox', 'contacts_dashboard', + 'notifications_dashboard', 'settings_account_reports', 'profile_settings', 'profile_settings_index', 'label_conversations', 'conversations_through_label', + 'team_conversations', + 'conversations_through_team', + 'notifications_index', ], menuItems: { assignedToMe: { @@ -31,6 +35,13 @@ export const getSidebarItems = accountId => ({ toState: frontendURL(`accounts/${accountId}/contacts`), toStateName: 'contacts_dashboard', }, + notifications: { + icon: 'ion-ios-bell', + label: 'NOTIFICATIONS', + hasSubMenu: false, + toState: frontendURL(`accounts/${accountId}/notifications`), + toStateName: 'notifications_dashboard', + }, report: { icon: 'ion-arrow-graph-up-right', label: 'REPORTS', diff --git a/app/javascript/dashboard/i18n/locale/ar/chatlist.json b/app/javascript/dashboard/i18n/locale/ar/chatlist.json index 6de032b49..b1697b62b 100644 --- a/app/javascript/dashboard/i18n/locale/ar/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ar/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "تم تلقيه عبر البريد الإلكتروني", "VIEW_TWEET_IN_TWITTER": "عرض التغريدة في تويتر", - "REPLY_TO_TWEET": "الرد على هذه التغريدة" + "REPLY_TO_TWEET": "الرد على هذه التغريدة", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/ar/conversation.json b/app/javascript/dashboard/i18n/locale/ar/conversation.json index cc05895cb..b880b6b8c 100644 --- a/app/javascript/dashboard/i18n/locale/ar/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ar/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "إزالة التحديد", "DOWNLOAD": "تنزيل", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "إغلاق المحادثة", "REOPEN_ACTION": "إعادة فتح", @@ -44,7 +45,8 @@ "TWEET": "تغريد", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "ملاحظة خاصة: مرئية فقط لأعضاء فريق العمل والموظفين", "CHANGE_STATUS": "تم تغيير حالة المحادثة", diff --git a/app/javascript/dashboard/i18n/locale/ar/generalSettings.json b/app/javascript/dashboard/i18n/locale/ar/generalSettings.json index 351367867..8b1e4a538 100644 --- a/app/javascript/dashboard/i18n/locale/ar/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/ar/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "الإشعارات", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "الاسم", + "رقم الهاتف", + "المحادثات", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/ar/settings.json b/app/javascript/dashboard/i18n/locale/ar/settings.json index 5b80c6bb9..427943188 100644 --- a/app/javascript/dashboard/i18n/locale/ar/settings.json +++ b/app/javascript/dashboard/i18n/locale/ar/settings.json @@ -27,6 +27,7 @@ "NOTE": "قم بتحديث تفضيلات إشعار البريد الإلكتروني الخاص بك من هنا", "CONVERSATION_ASSIGNMENT": "إرسال إشعارات البريد الإلكتروني عند إسناد محادثة لي", "CONVERSATION_CREATION": "إرسال إشعارات للبريد الإلكتروني عند ورود محادثة جديدة", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "قم بتحديث تفضيلات إشعارات المتصفح من هنا", "CONVERSATION_ASSIGNMENT": "إرسال إشعارات على المتصفح عند إسناد محادثة لي", "CONVERSATION_CREATION": "إرسال إشعارات المتصفح عند ورود محادثة جديدة", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "لقد قمت بتمكين الإشعارات لهذا المتصفح.", "REQUEST_PUSH": "تفعيل إشعارات المتصفح" @@ -118,10 +120,12 @@ "HOME": "الرئيسية", "AGENTS": "موظف الدعم", "INBOXES": "قنوات التواصل", + "NOTIFICATIONS": "الإشعارات", "CANNED_RESPONSES": "الردود السريعة", "INTEGRATIONS": "خيارات الربط", "ACCOUNT_SETTINGS": "إعدادات الحساب", - "LABELS": "الوسوم" + "LABELS": "الوسوم", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "حساب جديد", diff --git a/app/javascript/dashboard/i18n/locale/ca/chatlist.json b/app/javascript/dashboard/i18n/locale/ca/chatlist.json index 37c38fe1d..a6d6f335c 100644 --- a/app/javascript/dashboard/i18n/locale/ca/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ca/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Rebut per correu electrònic", "VIEW_TWEET_IN_TWITTER": "Veure el tuit a Twitter", - "REPLY_TO_TWEET": "Respon a aquest tuit" + "REPLY_TO_TWEET": "Respon a aquest tuit", + "NO_MESSAGES": "Cap Missatge" } } diff --git a/app/javascript/dashboard/i18n/locale/ca/conversation.json b/app/javascript/dashboard/i18n/locale/ca/conversation.json index b58a644c1..a8dd8529b 100644 --- a/app/javascript/dashboard/i18n/locale/ca/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ca/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Elimina la selecció", "DOWNLOAD": "Descarrega", "UPLOADING_ATTACHMENTS": "Pujant fitxers adjunts...", + "NO_RESPONSE": "Sense resposta", "HEADER": { "RESOLVE_ACTION": "Resoldre", "REOPEN_ACTION": "Tornar a obrir", @@ -42,9 +43,10 @@ "SEND": "Envia", "CREATE": "Afegeix una nota", "TWEET": "Tuit", - "TIP_FORMAT_ICON": "Show rich text editor", - "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_FORMAT_ICON": "Mostra l'editor de text enriquit", + "TIP_EMOJI_ICON": "Mostra la selecció d'emoticones", + "TIP_ATTACH_ICON": "Ajuntar fitxers", + "ENTER_TO_SEND": "Intro per enviar" }, "VISIBLE_TO_AGENTS": "Nota privada: Només és visible per tu i el vostre equip", "CHANGE_STATUS": "Estat de la conversa canviat", diff --git a/app/javascript/dashboard/i18n/locale/ca/generalSettings.json b/app/javascript/dashboard/i18n/locale/ca/generalSettings.json index 20ca7465c..9a69381d9 100644 --- a/app/javascript/dashboard/i18n/locale/ca/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/ca/generalSettings.json @@ -43,7 +43,7 @@ "CUSTOM_EMAIL_DOMAIN_ENABLED": "Ara podeu rebre correus electrònics al vostre domini personalitzat." } }, - "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance." + "UPDATE_CHATWOOT": "L'actualització %{latestChatwootVersion} per Chatwoot està disponible. Si us plau, actualitza l'instancia." }, "FORMS": { "MULTISELECT": { @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Presiona retorn (tecla enter) per eliminar", "SELECT_ONE": "Selecciona un" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notificacions", + "MARK_ALL_DONE": "Marca Tot Fet", + "LIST": { + "LOADING_MESSAGE": "Carregant notificacions...", + "404": "Cap Notificació", + "TABLE_HEADER": [ + "Nom", + "Número de telèfon", + "Converses", + "Darrer contacte" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "Nova conversació", + "conversation_assignment": "Conversació Assignada", + "assigned_conversation_new_message": "Missatge Nou", + "conversation_mention": "Menció" + } } } diff --git a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json index 1f4f8430a..c12d86b3b 100644 --- a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json @@ -242,7 +242,7 @@ "INBOX_UPDATE_TITLE": "Configuració de la safata d'entrada", "INBOX_UPDATE_SUB_TEXT": "Actualitza la configuració de la safata d'entrada", "AUTO_ASSIGNMENT_SUB_TEXT": "Activa o desactiva l'assignació automàtica d'agents disponibles a les noves converses", - "HMAC_VERIFICATION": "User Identity Validation", + "HMAC_VERIFICATION": "Validació de la Identitat del Usuari", "HMAC_DESCRIPTION": "Inorder validate the users identity, the SDK allows you to pass an `identity_hash` for each user. You can generate HMAC using 'sha256' with the key shown here." }, "FACEBOOK_REAUTHORIZE": { diff --git a/app/javascript/dashboard/i18n/locale/ca/settings.json b/app/javascript/dashboard/i18n/locale/ca/settings.json index 06d239685..d624f7674 100644 --- a/app/javascript/dashboard/i18n/locale/ca/settings.json +++ b/app/javascript/dashboard/i18n/locale/ca/settings.json @@ -27,6 +27,7 @@ "NOTE": "Actualitza aqui les preferències de les notificacions per correu electrònic", "CONVERSATION_ASSIGNMENT": "Envieu notificacions per correu electrònic quan se m’assigni una conversa", "CONVERSATION_CREATION": "Envieu notificacions per correu electrònic quan es crea una nova conversa", + "CONVERSATION_MENTION": "Enviar notificacions per mail quan siguis esmentat en una conversació", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Envia notificacions per correu electrònic quan es creï un missatge nou en una conversa assignada" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Actualitzeu les preferències de notificació aquí", "CONVERSATION_ASSIGNMENT": "Envia notificacions automàtiques quan se m'assigna una conversa", "CONVERSATION_CREATION": "Envia notificacions automàtiques quan es creï una conversa nova", + "CONVERSATION_MENTION": "Enviar notificacions push quan siguis esmentat en una conversació", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Envia notificacions automàtiques quan es creï un missatge nou en una conversa assignada", "HAS_ENABLED_PUSH": "Heu activat les notificacions per a aquest navegador.", "REQUEST_PUSH": "Activa les notificacions" @@ -118,10 +120,12 @@ "HOME": "Inici", "AGENTS": "Agents", "INBOXES": "Safates d'entrada", + "NOTIFICATIONS": "Notificacions", "CANNED_RESPONSES": "Respostes predeterminades", "INTEGRATIONS": "Integracions", "ACCOUNT_SETTINGS": "Configuració del compte", - "LABELS": "Etiquetes" + "LABELS": "Etiquetes", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "Compte nou", diff --git a/app/javascript/dashboard/i18n/locale/cs/chatlist.json b/app/javascript/dashboard/i18n/locale/cs/chatlist.json index edbd83ecb..e1b0fa701 100644 --- a/app/javascript/dashboard/i18n/locale/cs/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/cs/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Obdrženo e-mailem", "VIEW_TWEET_IN_TWITTER": "Zobrazit tweet na Twitteru", - "REPLY_TO_TWEET": "Odpovědět na tento tweet" + "REPLY_TO_TWEET": "Odpovědět na tento tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/cs/conversation.json b/app/javascript/dashboard/i18n/locale/cs/conversation.json index d43167102..d965aef4e 100644 --- a/app/javascript/dashboard/i18n/locale/cs/conversation.json +++ b/app/javascript/dashboard/i18n/locale/cs/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Odstranit výběr", "DOWNLOAD": "Stáhnout", "UPLOADING_ATTACHMENTS": "Nahrávání příloh...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Vyřešit", "REOPEN_ACTION": "Znovu otevřít", @@ -44,7 +45,8 @@ "TWEET": "Tweet", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Soukromá poznámka: Viditelné pouze pro vás a váš tým", "CHANGE_STATUS": "Stav konverzace byl změněn", diff --git a/app/javascript/dashboard/i18n/locale/cs/generalSettings.json b/app/javascript/dashboard/i18n/locale/cs/generalSettings.json index c2d583554..cbe34df14 100644 --- a/app/javascript/dashboard/i18n/locale/cs/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/cs/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Stiskněte Enter pro odebrání", "SELECT_ONE": "Vyberte jeden" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Název", + "Telefonní číslo", + "Konverzace", + "Naposledy kontaktováno" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/cs/settings.json b/app/javascript/dashboard/i18n/locale/cs/settings.json index 7b477e382..de8c5977b 100644 --- a/app/javascript/dashboard/i18n/locale/cs/settings.json +++ b/app/javascript/dashboard/i18n/locale/cs/settings.json @@ -27,6 +27,7 @@ "NOTE": "Zde aktualizujte nastavení e-mailových oznámení", "CONVERSATION_ASSIGNMENT": "Odeslat e-mailová oznámení, když je mi přiřazena konverzace", "CONVERSATION_CREATION": "Odeslat oznámení e-mailem při vytváření nové konverzace", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Update your push notification preferences here", "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send push notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "You have enabled push for this browser.", "REQUEST_PUSH": "Enable push notifications" @@ -98,7 +100,7 @@ }, "FILE_BUBBLE": { "DOWNLOAD": "Stáhnout", - "UPLOADING": "Uploading..." + "UPLOADING": "Nahrávání..." }, "FORM_BUBBLE": { "SUBMIT": "Odeslat" @@ -118,10 +120,12 @@ "HOME": "Home", "AGENTS": "Agenti", "INBOXES": "Krabice", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Konzervované odpovědi", "INTEGRATIONS": "Integrace", "ACCOUNT_SETTINGS": "Account Settings", - "LABELS": "Labels" + "LABELS": "Labels", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/da/chatlist.json b/app/javascript/dashboard/i18n/locale/da/chatlist.json index cee4cc55d..52a8f919c 100644 --- a/app/javascript/dashboard/i18n/locale/da/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/da/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Modtaget via e-mail", "VIEW_TWEET_IN_TWITTER": "Se tweet på Twitter", - "REPLY_TO_TWEET": "Svar på dette tweet" + "REPLY_TO_TWEET": "Svar på dette tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/da/conversation.json b/app/javascript/dashboard/i18n/locale/da/conversation.json index db40a2e32..d1288f6d1 100644 --- a/app/javascript/dashboard/i18n/locale/da/conversation.json +++ b/app/javascript/dashboard/i18n/locale/da/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Fjern Markering", "DOWNLOAD": "Download", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Løs", "REOPEN_ACTION": "Genåben", @@ -44,7 +45,8 @@ "TWEET": "Tweet", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Privat Note: Kun synlig for dig og dit team", "CHANGE_STATUS": "Samtalestatus ændret", diff --git a/app/javascript/dashboard/i18n/locale/da/generalSettings.json b/app/javascript/dashboard/i18n/locale/da/generalSettings.json index 6da2cc759..4c7f80127 100644 --- a/app/javascript/dashboard/i18n/locale/da/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/da/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Navn", + "Telefonnummer", + "Samtaler", + "Sidst Kontaktet" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/da/settings.json b/app/javascript/dashboard/i18n/locale/da/settings.json index a5bd70c1f..1fa4232d1 100644 --- a/app/javascript/dashboard/i18n/locale/da/settings.json +++ b/app/javascript/dashboard/i18n/locale/da/settings.json @@ -27,6 +27,7 @@ "NOTE": "Opdater dine e-mail notifikationspræferencer her", "CONVERSATION_ASSIGNMENT": "Send e-mail notifikationer når en samtale er tildelt mig", "CONVERSATION_CREATION": "Send e-mail notifikationer når en ny samtale er oprettet", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send e-mail notifikationer når en ny besked er oprettet i en tildelt samtale" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Opdater dine push-notifikationspræferencer her", "CONVERSATION_ASSIGNMENT": "Send push-notifikationer, når en samtale er tildelt mig", "CONVERSATION_CREATION": "Send push-notifikationer, når en ny samtale er oprettet", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push-notifikationer, når en ny besked oprettes i en tildelt samtale", "HAS_ENABLED_PUSH": "Du har aktiveret push for denne browser.", "REQUEST_PUSH": "Aktivér push-notifikationer" @@ -118,10 +120,12 @@ "HOME": "Hjem", "AGENTS": "Agenter", "INBOXES": "Indbakker", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Standardsvar Svar", "INTEGRATIONS": "Integrationer", "ACCOUNT_SETTINGS": "Kontoindstillinger", - "LABELS": "Etiketter" + "LABELS": "Etiketter", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "Ny Konto", diff --git a/app/javascript/dashboard/i18n/locale/de/chatlist.json b/app/javascript/dashboard/i18n/locale/de/chatlist.json index 086ce1130..4be11b63f 100644 --- a/app/javascript/dashboard/i18n/locale/de/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/de/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Per E-Mail empfangen", "VIEW_TWEET_IN_TWITTER": "Tweet auf Twitter anzeigen", - "REPLY_TO_TWEET": "Auf diesen Tweet antworten" + "REPLY_TO_TWEET": "Auf diesen Tweet antworten", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/de/conversation.json b/app/javascript/dashboard/i18n/locale/de/conversation.json index 7ecd5013f..c6015c0ac 100644 --- a/app/javascript/dashboard/i18n/locale/de/conversation.json +++ b/app/javascript/dashboard/i18n/locale/de/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Auswahl entfernen", "DOWNLOAD": "Herunterladen", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Fall schließen", "REOPEN_ACTION": "Wieder öffnen", @@ -44,7 +45,8 @@ "TWEET": "Tweet", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Privater Hinweis: Nur für Sie und Ihr Team sichtbar", "CHANGE_STATUS": "Gesprächsstatus geändert", diff --git a/app/javascript/dashboard/i18n/locale/de/generalSettings.json b/app/javascript/dashboard/i18n/locale/de/generalSettings.json index edd13312b..3c8c19273 100644 --- a/app/javascript/dashboard/i18n/locale/de/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/de/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Drücke Enter zum Entfernen", "SELECT_ONE": "Eine Option wählen" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Name", + "Telefonnummer", + "Gespräche", + "Letzter Kontakt" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/de/settings.json b/app/javascript/dashboard/i18n/locale/de/settings.json index ad0921198..094d6175a 100644 --- a/app/javascript/dashboard/i18n/locale/de/settings.json +++ b/app/javascript/dashboard/i18n/locale/de/settings.json @@ -27,6 +27,7 @@ "NOTE": "Aktualisieren Sie hier Ihre E-Mail-Benachrichtigungseinstellungen", "CONVERSATION_ASSIGNMENT": "Senden Sie E-Mail-Benachrichtigungen, wenn mir ein Gespräch zugewiesen wurde", "CONVERSATION_CREATION": "Senden Sie E-Mail-Benachrichtigungen, wenn eine neue Konversation erstellt wird", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Aktualisieren Sie hier Ihre Push-Benachrichtigungseinstellungen", "CONVERSATION_ASSIGNMENT": "Push-Benachrichtigungen senden, wenn mir ein Gespräch zugewiesen wird", "CONVERSATION_CREATION": "Push-Benachrichtigungen senden, wenn eine neue Konversation startet", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "Sie haben die Push-Benachrichtigung für diesen Browser aktiviert.", "REQUEST_PUSH": "Push-Benachrichtigungen aktivieren" @@ -118,10 +120,12 @@ "HOME": "Hauptseite", "AGENTS": "Agenten", "INBOXES": "Posteingänge", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Vorgefertigte Antworten", "INTEGRATIONS": "Integrationen", "ACCOUNT_SETTINGS": "Kontoeinstellungen", - "LABELS": "Labels" + "LABELS": "Labels", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/el/chatlist.json b/app/javascript/dashboard/i18n/locale/el/chatlist.json index be07a6765..23eee7635 100644 --- a/app/javascript/dashboard/i18n/locale/el/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/el/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Παραλήφθηκε από email", "VIEW_TWEET_IN_TWITTER": "Προβολή του tweet στο Twitter", - "REPLY_TO_TWEET": "Απάντηση στο tweet" + "REPLY_TO_TWEET": "Απάντηση στο tweet", + "NO_MESSAGES": "Κανένα Μήνυμα" } } diff --git a/app/javascript/dashboard/i18n/locale/el/conversation.json b/app/javascript/dashboard/i18n/locale/el/conversation.json index 35c17a371..e09b90ceb 100644 --- a/app/javascript/dashboard/i18n/locale/el/conversation.json +++ b/app/javascript/dashboard/i18n/locale/el/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Διαγραφή Επιλογής", "DOWNLOAD": "Κατέβασμα", "UPLOADING_ATTACHMENTS": "Ανέβασμα επισυναπτόμενων...", + "NO_RESPONSE": "Καμία ανταπόκριση", "HEADER": { "RESOLVE_ACTION": "Επίλυση", "REOPEN_ACTION": "Επαναφορά", @@ -42,9 +43,10 @@ "SEND": "Αποστολή", "CREATE": "Σημείωση (Add Note)", "TWEET": "Tweet", - "TIP_FORMAT_ICON": "Show rich text editor", - "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_FORMAT_ICON": "Προβολή επεξεργαστή εμπλουτισμένου κειμένου", + "TIP_EMOJI_ICON": "Προβολή επιλογέα emoji", + "TIP_ATTACH_ICON": "Επισύναψη αρχείων", + "ENTER_TO_SEND": "Εισαγωγή για αποστολή" }, "VISIBLE_TO_AGENTS": "Ιδιωτική Σημείωση: Ορατή μόνο σε σας και την ομάδα σας", "CHANGE_STATUS": "Η κατάσταση της συνομιλίας άλλαξε", diff --git a/app/javascript/dashboard/i18n/locale/el/generalSettings.json b/app/javascript/dashboard/i18n/locale/el/generalSettings.json index 847e4a2d7..d62ea08b1 100644 --- a/app/javascript/dashboard/i18n/locale/el/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/el/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Πάτησε enter για αφαίρεση", "SELECT_ONE": "Επιλέξτε ένα" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Ειδοποιήσεις", + "MARK_ALL_DONE": "Όλες ολοκληρωμένες", + "LIST": { + "LOADING_MESSAGE": "Φόρτωση ειδοποιήσεων...", + "404": "Καμία Ειδοποίηση", + "TABLE_HEADER": [ + "Όνομα", + "Αριθμός Τηλεφώνου", + "Συζητήσεις", + "Τελευταία επικοινωνία" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "Νέα συνομιλία", + "conversation_assignment": "Η Συνομιλία Ανατέθηκε", + "assigned_conversation_new_message": "Νέο Μήνυμα", + "conversation_mention": "Αναφορά" + } } } diff --git a/app/javascript/dashboard/i18n/locale/el/settings.json b/app/javascript/dashboard/i18n/locale/el/settings.json index 5b9117390..e00652101 100644 --- a/app/javascript/dashboard/i18n/locale/el/settings.json +++ b/app/javascript/dashboard/i18n/locale/el/settings.json @@ -27,6 +27,7 @@ "NOTE": "Ενημέρωστε την προτίμηση για ειδοποιήσεις με email εδώ", "CONVERSATION_ASSIGNMENT": "Να στέλνεται ειδοποίηση email όταν μια συνομιλία αντιστοιχίζεται σε μένα", "CONVERSATION_CREATION": "Να στέλνεται ειδοποίηση όταν δημιουργείται μια νέα συνομιλία", + "CONVERSATION_MENTION": "Αποστολή ειδοποιήσεων email όταν αναφέρεστε σε μια συνομιλία", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Αποστολή ειδοποίησης email όταν ένα νέο μήνυμα δημιουργείται σε συνομιλία που έχει αναληφθεί" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Ενημερώστε τις ρυθμίσεις για τις push ειδοποιήσεις εδώ", "CONVERSATION_ASSIGNMENT": "Να ειδοποιούμαι με push όταν μια συνομιλία μου ανατείθεται", "CONVERSATION_CREATION": "Να ειδοποιούμαι με push όταν δημιουργείται μια νέα συνομιλία", + "CONVERSATION_MENTION": "Αποστολή ειδοποιήσεων push όταν αναφέρεστε σε μια συνομιλία", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Αποστολή ειδοποίησης push όταν ένα νέο μήνυμα δημιουργείται σε συνομιλία που έχει αναληφθεί", "HAS_ENABLED_PUSH": "Έχετε ενεργοποιήσει τις ειδοποιήσεις push για αυτόν τον browser.", "REQUEST_PUSH": "Ενεργοποποίηση των ειδοποιήσεων push" @@ -118,10 +120,12 @@ "HOME": "Αρχική", "AGENTS": "Πράκτορες", "INBOXES": "Κιβώτια Εισερχομένων", + "NOTIFICATIONS": "Ειδοποιήσεις", "CANNED_RESPONSES": "Έτοιμες Απαντήσεις", "INTEGRATIONS": "Ενοποιήσεις", "ACCOUNT_SETTINGS": "Ρυθμίσεις Λογαριασμού", - "LABELS": "Ετικέτες" + "LABELS": "Ετικέτες", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "Νέος Λογαριασμός", diff --git a/app/javascript/dashboard/i18n/locale/en/chatlist.json b/app/javascript/dashboard/i18n/locale/en/chatlist.json index a0b31427f..228554789 100644 --- a/app/javascript/dashboard/i18n/locale/en/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/en/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Received via email", "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", - "REPLY_TO_TWEET": "Reply to this tweet" + "REPLY_TO_TWEET": "Reply to this tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/en/conversation.json b/app/javascript/dashboard/i18n/locale/en/conversation.json index 19bc5235b..967378552 100644 --- a/app/javascript/dashboard/i18n/locale/en/conversation.json +++ b/app/javascript/dashboard/i18n/locale/en/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Remove Selection", "DOWNLOAD": "Download", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Resolve", "REOPEN_ACTION": "Reopen", @@ -44,7 +45,8 @@ "TWEET": "Tweet", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team", "CHANGE_STATUS": "Conversation status changed", diff --git a/app/javascript/dashboard/i18n/locale/en/generalSettings.json b/app/javascript/dashboard/i18n/locale/en/generalSettings.json index 245bcb4c1..d5e8bd50b 100644 --- a/app/javascript/dashboard/i18n/locale/en/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/en/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Name", + "Phone Number", + "Conversations", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json index 8c3f5624b..16217e5ae 100644 --- a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json @@ -38,7 +38,8 @@ "PICK_A_VALUE": "Pick a value" }, "TWITTER": { - "HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' " + "HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ", + "ERROR_MESSAGE": "There was an error connecting to Twitter, please try again" }, "WEBSITE_CHANNEL": { "TITLE": "Website channel", @@ -224,7 +225,8 @@ "TABS": { "SETTINGS": "Settings", "COLLABORATORS": "Collaborators", - "CONFIGURATION": "Configuration" + "CONFIGURATION": "Configuration", + "PRE_CHAT_FORM": "Pre Chat Form" }, "SETTINGS": "Settings", "FEATURES": { @@ -250,6 +252,23 @@ "SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services", "MESSAGE_SUCCESS": "Reconnection successful", "MESSAGE_ERROR": "There was an error, please try again" + }, + "PRE_CHAT_FORM": { + "DESCRIPTION": "Pre chat forms enable you to capture user information before they start conversation with you.", + "ENABLE": { + "LABEL": "Enable pre chat form", + "OPTIONS": { + "ENABLED": "Yes", + "DISABLED": "No" + } + }, + "PRE_CHAT_MESSAGE": { + "LABEL": "Pre Chat Message", + "PLACEHOLDER": "This message would be visible to the users along with the form" + }, + "REQUIRE_EMAIL": { + "LABEL": "Visitors should provide their name and email address before starting the chat" + } } } } diff --git a/app/javascript/dashboard/i18n/locale/en/settings.json b/app/javascript/dashboard/i18n/locale/en/settings.json index ca4267b9a..6b42cf3f2 100644 --- a/app/javascript/dashboard/i18n/locale/en/settings.json +++ b/app/javascript/dashboard/i18n/locale/en/settings.json @@ -27,6 +27,7 @@ "NOTE": "Update your email notification preferences here", "CONVERSATION_ASSIGNMENT": "Send email notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send email notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Update your push notification preferences here", "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send push notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "You have enabled push for this browser.", "REQUEST_PUSH": "Enable push notifications" @@ -118,10 +120,12 @@ "HOME": "Home", "AGENTS": "Agents", "INBOXES": "Inboxes", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Canned Responses", "INTEGRATIONS": "Integrations", "ACCOUNT_SETTINGS": "Account Settings", - "LABELS": "Labels" + "LABELS": "Labels", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/es/chatlist.json b/app/javascript/dashboard/i18n/locale/es/chatlist.json index e9c9cd004..cdbf8853a 100644 --- a/app/javascript/dashboard/i18n/locale/es/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/es/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Recibido por email", "VIEW_TWEET_IN_TWITTER": "Ver tweet en Twitter", - "REPLY_TO_TWEET": "Responder a este tweet" + "REPLY_TO_TWEET": "Responder a este tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/es/conversation.json b/app/javascript/dashboard/i18n/locale/es/conversation.json index 5048cab78..18ee43f10 100644 --- a/app/javascript/dashboard/i18n/locale/es/conversation.json +++ b/app/javascript/dashboard/i18n/locale/es/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Eliminar selección", "DOWNLOAD": "Descargar", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Resolver", "REOPEN_ACTION": "Reabrir", @@ -44,7 +45,8 @@ "TWEET": "Tweet", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Nota privada: solo visible para ti y tu equipo", "CHANGE_STATUS": "Estado de la conversación cambiado", diff --git a/app/javascript/dashboard/i18n/locale/es/generalSettings.json b/app/javascript/dashboard/i18n/locale/es/generalSettings.json index c319024a2..205f371d2 100644 --- a/app/javascript/dashboard/i18n/locale/es/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/es/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notificaciones", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Nombre", + "Número telefónico", + "Conversaciones", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/es/settings.json b/app/javascript/dashboard/i18n/locale/es/settings.json index ebe505fda..d109c8d99 100644 --- a/app/javascript/dashboard/i18n/locale/es/settings.json +++ b/app/javascript/dashboard/i18n/locale/es/settings.json @@ -27,6 +27,7 @@ "NOTE": "Actualiza tus preferencias de notificación por correo electrónico aquí", "CONVERSATION_ASSIGNMENT": "Enviar notificaciones por correo electrónico cuando se me ha asignado una conversación", "CONVERSATION_CREATION": "Enviar notificaciones por correo electrónico cuando se crea una nueva conversación", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Envirar notificaciones por correo electrónico cuando un nuevo mensaje es creado en una conversación asignada" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Actualize sus preferencias de notificaciones push aquí", "CONVERSATION_ASSIGNMENT": "Enviar notificaciones push cuando se me ha asignado una conversación", "CONVERSATION_CREATION": "Enviar notificaciones push cuando se crea una nueva conversación", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Enviar notificaciones push cuando un nuevo mensaja es creadao en una conversación asignada", "HAS_ENABLED_PUSH": "Has habilitado notificaciones push para este navegador.", "REQUEST_PUSH": "Habilitar notificaciones push" @@ -118,10 +120,12 @@ "HOME": "Inicio", "AGENTS": "Agentes", "INBOXES": "Entradas", + "NOTIFICATIONS": "Notificaciones", "CANNED_RESPONSES": "Respuestas predefinidas", "INTEGRATIONS": "Integraciones", "ACCOUNT_SETTINGS": "Configuración de la cuenta", - "LABELS": "Etiquetas" + "LABELS": "Etiquetas", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "Nueva cuenta", diff --git a/app/javascript/dashboard/i18n/locale/es/signup.json b/app/javascript/dashboard/i18n/locale/es/signup.json index 110cd7eae..ea5a28555 100644 --- a/app/javascript/dashboard/i18n/locale/es/signup.json +++ b/app/javascript/dashboard/i18n/locale/es/signup.json @@ -14,9 +14,9 @@ "ERROR": "Full name is too short" }, "EMAIL": { - "LABEL": "Work email", - "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises", - "ERROR": "Email address is invalid" + "LABEL": "Email de trabajo", + "PLACEHOLDER": "Introduzca su dirección de correo electrónico de trabajo. Ejemplo: bruce@wayne.enterprises", + "ERROR": "Dirección de correo no válida" }, "PASSWORD": { "LABEL": "Contraseña", @@ -33,6 +33,6 @@ "ERROR_MESSAGE": "No se pudo conectar al servidor Woot, por favor inténtalo de nuevo más tarde" }, "SUBMIT": "Enviar", - "HAVE_AN_ACCOUNT": "Already have an account?" + "HAVE_AN_ACCOUNT": "¿Ya tienes una cuenta?" } } diff --git a/app/javascript/dashboard/i18n/locale/fa/chatlist.json b/app/javascript/dashboard/i18n/locale/fa/chatlist.json index b9a553efa..5a5ac3d04 100644 --- a/app/javascript/dashboard/i18n/locale/fa/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/fa/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "از طریق ایمیل دریافت شد", "VIEW_TWEET_IN_TWITTER": "مشاهده توییت در توییتر", - "REPLY_TO_TWEET": "پاسخ به این توییت" + "REPLY_TO_TWEET": "پاسخ به این توییت", + "NO_MESSAGES": "هیچ پیامی وجود ندارد" } } diff --git a/app/javascript/dashboard/i18n/locale/fa/contact.json b/app/javascript/dashboard/i18n/locale/fa/contact.json index 5c23cb435..6a87edfe5 100644 --- a/app/javascript/dashboard/i18n/locale/fa/contact.json +++ b/app/javascript/dashboard/i18n/locale/fa/contact.json @@ -34,9 +34,9 @@ "NO_AVAILABLE_LABELS": "هیچ برچسبی به این گفتگو اضافه نشده است." }, "MUTE_CONTACT": "بی‌صدا کردن گفتگو", - "UNMUTE_CONTACT": "Unmute Conversation", + "UNMUTE_CONTACT": "خارج کردن از حالت بی صدا", "MUTED_SUCCESS": "این گفتگو به مدت ۶ ساعت بی‌صدا است", - "UNMUTED_SUCCESS": "This conversation is unmuted", + "UNMUTED_SUCCESS": "این گفتگو از حالت بی صدا خارج شده است", "SEND_TRANSCRIPT": "ارسال متن", "EDIT_LABEL": "ویرایش" }, @@ -108,7 +108,7 @@ "نام", "شماره تلفن", "گفتگوها", - "Last Contacted" + "آخرین تماس" ] } } diff --git a/app/javascript/dashboard/i18n/locale/fa/conversation.json b/app/javascript/dashboard/i18n/locale/fa/conversation.json index 669dc9bf5..fb720345b 100644 --- a/app/javascript/dashboard/i18n/locale/fa/conversation.json +++ b/app/javascript/dashboard/i18n/locale/fa/conversation.json @@ -1,6 +1,6 @@ { "CONVERSATION": { - "404": "لطفا یک گفتگو را از پنجره سمت چپ انتخاب کنید", + "404": "لطفا یک گفتگو را از پنجره گفتگوها انتخاب کنید", "NO_MESSAGE_1": "اوه اوه! به نظر می‌رسد هیچ پیامی از طرف مشتری در صندوق ورودی شما وجود ندارد.", "NO_MESSAGE_2": " برای ارسال پیام به صفحه خود بروید!", "NO_INBOX_1": "سلام! به نظر می‌رسد هنوز صندوق ورودی اضافه نکرده‌اید.", @@ -11,7 +11,7 @@ "TITLE": "جستجو پیام‌ها", "LOADING_MESSAGE": "درحال پردازش داده...", "PLACEHOLDER": "متنی برای جستجو پیام تایپ کنید", - "NO_MATCHING_RESULTS": "There are no messages matching the search parameters." + "NO_MATCHING_RESULTS": "گفتگویی با مشخصات ورودی یافت نشد." }, "UNREAD_MESSAGES": "پیام‌های خوانده نشده", "UNREAD_MESSAGE": "پیام خوانده نشده", @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "حذف انتخاب‌شده‌ها", "DOWNLOAD": "دانلود", "UPLOADING_ATTACHMENTS": "در حال بارگذاری پیوست‌ها...", + "NO_RESPONSE": "بدون پاسخ", "HEADER": { "RESOLVE_ACTION": "حل شد", "REOPEN_ACTION": "دوباره باز کنید", @@ -33,8 +34,8 @@ "DETAILS": "جزئیات" }, "FOOTER": { - "MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.", - "PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents" + "MSG_INPUT": "برای رفتن به سرخط shift+enter و برای استفاده از پیام های ذخیره شده / را بزنید.", + "PRIVATE_MSG_INPUT": "برای رفتن به سرخط shift+enter را بزنید. این پیام فقط به ایجنت ها نمایش داده میشود" }, "REPLYBOX": { "REPLY": "پاسخ", @@ -42,18 +43,19 @@ "SEND": "ارسال", "CREATE": "افزودن یادداشت", "TWEET": "توییت", - "TIP_FORMAT_ICON": "Show rich text editor", - "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_FORMAT_ICON": "نمایش ویرایشگر متنی پیشرفته", + "TIP_EMOJI_ICON": "انتخاب ایموجی", + "TIP_ATTACH_ICON": "ضمیمه فایل", + "ENTER_TO_SEND": "برای ارسال Enter را بزنید" }, "VISIBLE_TO_AGENTS": "یادداشت خصوصی: فقط برای شما و تیم شما قابل مشاهده است", "CHANGE_STATUS": "وضعیت گفتگو تغییر کرد", - "CHANGE_AGENT": "Conversation Assignee changed", - "SENT_BY": "Sent by:", + "CHANGE_AGENT": "مسول گفتگو تغییر کرد", + "SENT_BY": "ارسال شده توسط:", "ASSIGNMENT": { - "SELECT_AGENT": "Select Agent", + "SELECT_AGENT": "انتخاب ایجنت", "REMOVE": "حذف", - "ASSIGN": "Assign" + "ASSIGN": "اختصاص دادن" } }, "EMAIL_TRANSCRIPT": { @@ -65,7 +67,7 @@ "SEND_EMAIL_ERROR": "خطایی پیش آمد. لطفا دوباره امتحان کنید", "FORM": { "SEND_TO_CONTACT": "متن گفتگو را برای مشتری ارسال کنید", - "SEND_TO_AGENT": "Send the transcript to the assigned agent", + "SEND_TO_AGENT": "متن گفتگو را به ایجنت اختصاص یافته ارسال کنید", "SEND_TO_OTHER_EMAIL_ADDRESS": "متن گفتگو را به آدرس ایمیل دیگری ارسال کنید", "EMAIL": { "PLACEHOLDER": "یک آدرس ایمیل وارد کنید", diff --git a/app/javascript/dashboard/i18n/locale/fa/generalSettings.json b/app/javascript/dashboard/i18n/locale/fa/generalSettings.json index 0b614f625..ac97ac9f8 100644 --- a/app/javascript/dashboard/i18n/locale/fa/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/fa/generalSettings.json @@ -34,22 +34,42 @@ "ERROR": "" }, "AUTO_RESOLVE_DURATION": { - "LABEL": "Number of days after a ticket should auto resolve if there is no activity", + "LABEL": "تعداد روزهایی که اگر فعالیتی وجود نداشته باشد، گفتگو به صورت خودکار بسته شود", "PLACEHOLDER": "30", - "ERROR": "Please enter a valid auto resolve duration (minimum 1 day)" + "ERROR": "لطفاً یک مدت زمان حل خودکار معتبر (حداقل 1 روز) وارد کنید" }, "FEATURES": { - "INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.", + "INBOUND_EMAIL_ENABLED": "تداوم مکالمه با ایمیل برای حساب شما فعال است.", "CUSTOM_EMAIL_DOMAIN_ENABLED": "اکنون می‌توانید ایمیل‌ها را در دامنه سفارشی خود دریافت کنید." } }, - "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance." + "UPDATE_CHATWOOT": "به روزرسانی%{latestChatwootVersion} برای Chatwoot در دسترس است. لطفا نمونه خود را به روز کنید." }, "FORMS": { "MULTISELECT": { - "ENTER_TO_SELECT": "Press enter to select", - "ENTER_TO_REMOVE": "Press enter to remove", - "SELECT_ONE": "Select one" + "ENTER_TO_SELECT": "برای انتخاب Enter را فشار دهید", + "ENTER_TO_REMOVE": "برای حذف دکمه enter را فشار دهید", + "SELECT_ONE": "یکی را انتخاب کن" + } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "اعلان ها", + "MARK_ALL_DONE": "همه را به انجام شده تغییر بده", + "LIST": { + "LOADING_MESSAGE": "در حال بارگیری اعلان ها...", + "404": "اعلانی وجود ندارد", + "TABLE_HEADER": [ + "نام", + "شماره تلفن", + "گفتگوها", + "آخرین تماس" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "گفتگوی جدید", + "conversation_assignment": "مکالمه اختصاص داده شد", + "assigned_conversation_new_message": "پیام جدید", + "conversation_mention": "اشاره" } } } diff --git a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json index af852c412..f809aa345 100644 --- a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json @@ -75,10 +75,10 @@ }, "REPLY_TIME": { "TITLE": "تنظیم زمان پاسخ", - "IN_A_FEW_MINUTES": "In a few minutes", - "IN_A_FEW_HOURS": "In a few hours", - "IN_A_DAY": "In a day", - "HELP_TEXT": "This reply time will be displayed on the live chat widget" + "IN_A_FEW_MINUTES": "در چند دقیقه", + "IN_A_FEW_HOURS": "در چند ساعت", + "IN_A_DAY": "در یک روز", + "HELP_TEXT": "این زمان پاسخ در ویجت چت زنده نمایش داده می شود" }, "WIDGET_COLOR": { "LABEL": "رنگ ویجت", @@ -124,7 +124,7 @@ }, "API_CHANNEL": { "TITLE": "کانال API", - "DESC": "Integrate with API channel and start supporting your customers.", + "DESC": "با کانال API ادغام شده و از مشتریان خود پشتیبانی کنید.", "CHANNEL_NAME": { "LABEL": "عنوان کانال", "PLACEHOLDER": "لطفا اسم یک کانال را وارد کنید", @@ -132,12 +132,12 @@ }, "WEBHOOK_URL": { "LABEL": "آدرس URL وب هوک", - "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.", + "SUBTITLE": "آدرس کال بک خود را جهت دریافت اطلاعات رویداد های وارد کنید.", "PLACEHOLDER": "آدرس URL وب هوک" }, "SUBMIT_BUTTON": "ایجاد کانال API", "API": { - "ERROR_MESSAGE": "We were not able to save the api channel" + "ERROR_MESSAGE": "کانال API ذخیره نشد" } }, "EMAIL_CHANNEL": { @@ -150,14 +150,14 @@ }, "EMAIL": { "LABEL": "ایمیل", - "SUBTITLE": "Email where your customers sends you support tickets", + "SUBTITLE": "آدرس ایمیلی که مشتریان درخواست پشتیبانی را برای شما ارسال کنند", "PLACEHOLDER": "ایمیل" }, "SUBMIT_BUTTON": "ایجاد کانال ایمیل", "API": { - "ERROR_MESSAGE": "We were not able to save the email channel" + "ERROR_MESSAGE": "کانال ایمیل ذخیره نشد" }, - "FINISH_MESSAGE": "Start forwarding your emails to the following email address." + "FINISH_MESSAGE": "ایمیل های خود را به این آدرس ها فوروارد کنید." }, "AUTH": { "TITLE": "کانال‌ها", @@ -166,8 +166,8 @@ "AGENTS": { "TITLE": "اپراتورها", "DESC": "در اینجا می‌توانید اپراتورها را به صندوق‌ ورودی خود اختصاص دهید. توجه داشته باشید که فقط اپراتورهایی که در اینجا معرفی شده باشند می‌توانند به پیام‌های این صندوق پاسخ بدهند.دیگر اپراتورها نخواهند توانست پیام‌های این صندوق را ببینید یا به آن‌ها پاسخی بدهند.
پانویس:به عنوان مدیر اگر می‌خواهید به همه صندوق‌های ورودی دسترسی داشته باشید می‌بایست خود را به عنوان اپراتور به همه صندوق‌ها اضافه کنید.", - "VALIDATION_ERROR": "Add atleast one agent to your new Inbox", - "PICK_AGENTS": "Pick agents for the inbox" + "VALIDATION_ERROR": "حداقل یک ایجنت به اینباکس جدید اضافه کنید", + "PICK_AGENTS": "انتخاب ایجنت ها برای این صندوق ورودی" }, "DETAILS": { "TITLE": "جزئیات صندوق‌ ورودی", @@ -229,8 +229,8 @@ "SETTINGS": "تنظیمات", "FEATURES": { "LABEL": "امکانات", - "DISPLAY_FILE_PICKER": "Display file picker on the widget", - "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget" + "DISPLAY_FILE_PICKER": "نمایش گزینه ضمیه فایل در ویجت", + "DISPLAY_EMOJI_PICKER": "نمایش گزینه انتخاب ایموجی در ویجت" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "اسکریپت ویجت", @@ -242,13 +242,13 @@ "INBOX_UPDATE_TITLE": "تنظیمات صندوق ورودی", "INBOX_UPDATE_SUB_TEXT": "تغییر پارامترهای صندوق ورودی", "AUTO_ASSIGNMENT_SUB_TEXT": "فعال کردن یا غیرفعال کردن واگذاری خودکار گفتگوها به اپراتورهای عضو این صندوق ورودی.", - "HMAC_VERIFICATION": "User Identity Validation", - "HMAC_DESCRIPTION": "Inorder validate the users identity, the SDK allows you to pass an `identity_hash` for each user. You can generate HMAC using 'sha256' with the key shown here." + "HMAC_VERIFICATION": "اعتبار سنجی کاربر", + "HMAC_DESCRIPTION": "برای اعتبار سنجی کاربران با استفاده از این کلید یک هش HMAC sha256 تولید کنید." }, "FACEBOOK_REAUTHORIZE": { "TITLE": "احراز هویت مجدد", - "SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services", - "MESSAGE_SUCCESS": "Reconnection successful", + "SUBTITLE": "اتصال فیس بوک شما منقضی شده است ، لطفاً برای ادامه خدمات دوباره صفحه فیس بوک خود را متصل کنید", + "MESSAGE_SUCCESS": "اتصال مجدد موفقیت آمیز بود", "MESSAGE_ERROR": "خطایی پیش آمد. لطفا دوباره امتحان کنید" } } diff --git a/app/javascript/dashboard/i18n/locale/fa/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/fa/labelsMgmt.json index b5aec37bb..bdca400d6 100644 --- a/app/javascript/dashboard/i18n/locale/fa/labelsMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fa/labelsMgmt.json @@ -4,7 +4,7 @@ "HEADER_BTN_TXT": "افزودن برچسب", "LOADING": "درحال گرفتن برچسب‌ها", "SEARCH_404": "هیچ آیتمی با این مشخصات یافت نشد", - "SIDEBAR_TXT": "

Labels

Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.

Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.

", + "SIDEBAR_TXT": "

\n برچسب ها\n

برچسب ها به شما در دسته بندی مکالمات و اولویت بندی آنها کمک می کند. می توانید برچسب را به یک مکالمه از نوار کناری اختصاص دهید.\n
\n
\n برچسب ها به حساب گره خورده اند و می توانند برای ایجاد گردش کار سفارشی در سازمان شما استفاده شوند. می توانید رنگ سفارشی را به برچسب اختصاص دهید ، شناسایی برچسب آسان تر می شود. شما می توانید برچسب را در نوار کناری نمایش دهید تا مکالمه ها به راحتی فیلتر شود.\n

", "LIST": { "404": "هیچ برچسبی در این حساب‌کاربری وجود ندارد.", "TITLE": "مدیریت برچسب‌ها", diff --git a/app/javascript/dashboard/i18n/locale/fa/report.json b/app/javascript/dashboard/i18n/locale/fa/report.json index 76a5af375..4a0ef7e8c 100644 --- a/app/javascript/dashboard/i18n/locale/fa/report.json +++ b/app/javascript/dashboard/i18n/locale/fa/report.json @@ -3,7 +3,7 @@ "HEADER": "گزارشات", "LOADING_CHART": "در حال دریافت اطلاعات...", "NO_ENOUGH_DATA": "متاسفانه اطلاعات کافی دریافت نشد، لطفا بعدا دوباره امتحان کنید", - "DOWNLOAD_AGENT_REPORTS": "Download agent reports", + "DOWNLOAD_AGENT_REPORTS": "دانلود گزارش ایجنت", "METRICS": { "CONVERSATIONS": { "NAME": "گفتگوها", diff --git a/app/javascript/dashboard/i18n/locale/fa/settings.json b/app/javascript/dashboard/i18n/locale/fa/settings.json index ed325a60a..39ad6c770 100644 --- a/app/javascript/dashboard/i18n/locale/fa/settings.json +++ b/app/javascript/dashboard/i18n/locale/fa/settings.json @@ -27,7 +27,8 @@ "NOTE": "اینجا می‌توانید تنظیمات اعلامیه‌هایی که به ایمیل ارسال می‌شود تغییر دهید", "CONVERSATION_ASSIGNMENT": "هر وقت گفتگویی به من اختصاص داده شد،‌ ایمیل بفرست", "CONVERSATION_CREATION": "هر وقت گفتگوی جدیدی شروع شد برای من ایمیل بفرست", - "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" + "CONVERSATION_MENTION": "هنگامی که از شما در گفتگو نام برده می‌شود، از طریق ایمیل آگاه‌سازی ارسال کن", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "با ایجاد پیام جدید در مکالمه اختصاصی ، اعلان های ایمیل را ارسال کنید" }, "API": { "UPDATE_SUCCESS": "تغییرات تنظیمات اعلامیه‌ها با موفقیت ثبت شد", @@ -38,7 +39,8 @@ "NOTE": "اینجا می‌توانید تنظیمات پوش نوتیفیکیشن را تغییر دهید", "CONVERSATION_ASSIGNMENT": "هر وقت گفتگویی به من اختصاص داده شد، برای من پوش نوتیفیکیشن بفرست", "CONVERSATION_CREATION": "هر وقت گفتگوی جدیدی شروع شد برای من پوش نوتیفیکیشن بفرست", - "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", + "CONVERSATION_MENTION": "هنگامی که از شما در مکالمه نام برده می شود پوش نوتیفیکیشن ارسال کنید", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "وقتی پیام جدیدی در مکالمه اختصاص داده شده ایجاد می شود ، پوش نوتیفیکیشن را ارسال کنید", "HAS_ENABLED_PUSH": "در این مرورگر پوش نوتیفیکیشن را فعال کرده‌اید", "REQUEST_PUSH": "فعال کردن پوش نوتیفیکیشن" }, @@ -118,10 +120,12 @@ "HOME": "صفحه اصلی", "AGENTS": "اپراتورها", "INBOXES": "صندوق‌های ورودی", + "NOTIFICATIONS": "اعلان ها", "CANNED_RESPONSES": "پاسخ‌های آماده", "INTEGRATIONS": "برنامه‌های تلفیق شده", "ACCOUNT_SETTINGS": "تنظیمات حساب", - "LABELS": "برچسب‌ها" + "LABELS": "برچسب‌ها", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "حساب‌کاربری جدید", diff --git a/app/javascript/dashboard/i18n/locale/fa/signup.json b/app/javascript/dashboard/i18n/locale/fa/signup.json index 9098caaed..6f659b7a7 100644 --- a/app/javascript/dashboard/i18n/locale/fa/signup.json +++ b/app/javascript/dashboard/i18n/locale/fa/signup.json @@ -2,11 +2,11 @@ "REGISTER": { "TRY_WOOT": "ثبت حساب", "TITLE": "ثبت نام", - "TERMS_ACCEPT": "با ثبت نام، اعلام می‌دارید که قوانین و شرایط استفاده از ما را تایید کرده و می‌پذیرید.", + "TERMS_ACCEPT": "با ثبت نام، اعلام می‌دارید که قوانین و شرایط استفاده از این نرم افزار را تایید کرده و می‌پذیرید", "ACCOUNT_NAME": { "LABEL": "عنوان حساب", - "PLACEHOLDER": "نام حساب‌کاربری را وارد کنید. به عنوان مثال: شرکت وین", - "ERROR": "نام حساب‌کاربری خیلی کوتاه است" + "PLACEHOLDER": "نام حساب ‌کاربری را وارد کنید. به عنوان مثال: شرکت وین", + "ERROR": "نام حساب ‌کاربری خیلی کوتاه است" }, "FULL_NAME": { "LABEL": "نام کامل", @@ -33,6 +33,6 @@ "ERROR_MESSAGE": "ارتباط با سرور برقرار نشد، لطفا بعدا امتحان کنید" }, "SUBMIT": "ثبت", - "HAVE_AN_ACCOUNT": "از قبل حساب‌کاربری دارید؟" + "HAVE_AN_ACCOUNT": "از قبل حساب ‌کاربری دارید؟" } } diff --git a/app/javascript/dashboard/i18n/locale/fi/chatlist.json b/app/javascript/dashboard/i18n/locale/fi/chatlist.json index 5d53bf280..f274c34ab 100644 --- a/app/javascript/dashboard/i18n/locale/fi/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/fi/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Vastaanotettu sähköpostitse", "VIEW_TWEET_IN_TWITTER": "Näytä twiitti Twitterissä", - "REPLY_TO_TWEET": "Vastaa tähän twiittiin" + "REPLY_TO_TWEET": "Vastaa tähän twiittiin", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/fi/conversation.json b/app/javascript/dashboard/i18n/locale/fi/conversation.json index b89b46445..a0e283db2 100644 --- a/app/javascript/dashboard/i18n/locale/fi/conversation.json +++ b/app/javascript/dashboard/i18n/locale/fi/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Poista valinnat", "DOWNLOAD": "Lataa", "UPLOADING_ATTACHMENTS": "Ladataan liitteitä...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Ratkaise", "REOPEN_ACTION": "Uudelleenavaa", @@ -44,7 +45,8 @@ "TWEET": "Twiittaa", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Yksityinen huomautus: Näkyy vain sinulle ja tiimillesi", "CHANGE_STATUS": "Keskustelun tila muutettu", diff --git a/app/javascript/dashboard/i18n/locale/fi/generalSettings.json b/app/javascript/dashboard/i18n/locale/fi/generalSettings.json index 17cfa1a70..b52fd6c8f 100644 --- a/app/javascript/dashboard/i18n/locale/fi/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/fi/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Paina enter poistaaksesi", "SELECT_ONE": "Valitse yksi" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Ilmoitukset", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Nimi", + "Puhelinnumero", + "Keskustelut", + "Viimeksi otettu yhteyttä" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/fi/settings.json b/app/javascript/dashboard/i18n/locale/fi/settings.json index 9c8a6918e..9be37c069 100644 --- a/app/javascript/dashboard/i18n/locale/fi/settings.json +++ b/app/javascript/dashboard/i18n/locale/fi/settings.json @@ -27,6 +27,7 @@ "NOTE": "Päivitä sähköposti-ilmoitusasetukset täällä", "CONVERSATION_ASSIGNMENT": "Lähetä sähköposti-ilmoitus, kun keskustelu on määritetty minulle", "CONVERSATION_CREATION": "Lähetä sähköposti-ilmoitus, kun keskustelu on määritetty minulle", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Lähetä sähköposti-ilmoitus, kun uusi viesti saapuu minulle osoitettuun keskusteluun" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Päivitä push-ilmoitusasetukset täällä", "CONVERSATION_ASSIGNMENT": "Lähetä push-ilmoitus, kun keskustelu on määritetty minulle", "CONVERSATION_CREATION": "Lähetä push-ilmoitus, kun keskustelu on määritetty minulle", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Lähetä push-ilmoitus, kun uusi viesti saapuu minulle osoitettuun keskusteluun", "HAS_ENABLED_PUSH": "Tämän selaimen push-ilmoitukset on otettu käyttöön.", "REQUEST_PUSH": "Ota push-ilmoitukset käyttöön" @@ -118,10 +120,12 @@ "HOME": "Koti", "AGENTS": "Edustajat", "INBOXES": "Kansiot", + "NOTIFICATIONS": "Ilmoitukset", "CANNED_RESPONSES": "Tallennetut vastaukset", "INTEGRATIONS": "Integraatiot", "ACCOUNT_SETTINGS": "Tilin asetukset", - "LABELS": "Tunnisteet" + "LABELS": "Tunnisteet", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "Uusi tili", diff --git a/app/javascript/dashboard/i18n/locale/fr/chatlist.json b/app/javascript/dashboard/i18n/locale/fr/chatlist.json index 178d5fcd4..d1ad57afa 100644 --- a/app/javascript/dashboard/i18n/locale/fr/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/fr/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Reçu par courriel", "VIEW_TWEET_IN_TWITTER": "Voir le tweet sur Twitter", - "REPLY_TO_TWEET": "Répondre à ce tweet" + "REPLY_TO_TWEET": "Répondre à ce tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/fr/contact.json b/app/javascript/dashboard/i18n/locale/fr/contact.json index d2fb773c3..0e8308310 100644 --- a/app/javascript/dashboard/i18n/locale/fr/contact.json +++ b/app/javascript/dashboard/i18n/locale/fr/contact.json @@ -11,7 +11,7 @@ "OS": "Système d'exploitation", "INITIATED_FROM": "Initié depuis", "INITIATED_AT": "Initié à", - "IP_ADDRESS": "IP Address", + "IP_ADDRESS": "Adresse IP", "CONVERSATIONS": { "NO_RECORDS_FOUND": "Il n'y a aucune conversation précédente associée à ce contact.", "TITLE": "Conversations précédentes" diff --git a/app/javascript/dashboard/i18n/locale/fr/conversation.json b/app/javascript/dashboard/i18n/locale/fr/conversation.json index 1302bc63f..9fe75bf12 100644 --- a/app/javascript/dashboard/i18n/locale/fr/conversation.json +++ b/app/javascript/dashboard/i18n/locale/fr/conversation.json @@ -13,8 +13,8 @@ "PLACEHOLDER": "Saisissez n'importe quel texte pour rechercher des messages", "NO_MATCHING_RESULTS": "Aucun message ne correspond aux paramètres de recherche." }, - "UNREAD_MESSAGES": "Unread Messages", - "UNREAD_MESSAGE": "Unread Message", + "UNREAD_MESSAGES": "Messages non lus", + "UNREAD_MESSAGE": "Message non lu", "CLICK_HERE": "Cliquez ici", "LOADING_INBOXES": "Chargement des boîtes de réception", "LOADING_CONVERSATIONS": "Chargement des conversations", @@ -24,7 +24,8 @@ "REPLYING_TO": "Vous répondez à :", "REMOVE_SELECTION": "Supprimer la sélection", "DOWNLOAD": "Télécharger", - "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "UPLOADING_ATTACHMENTS": "Envoi des pièces jointes...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Résoudre", "REOPEN_ACTION": "Ré-ouvrir", @@ -42,18 +43,19 @@ "SEND": "Envoyer", "CREATE": "Ajouter une note", "TWEET": "Tweeter", - "TIP_FORMAT_ICON": "Show rich text editor", - "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_FORMAT_ICON": "Afficher l'éditeur de texte enrichi", + "TIP_EMOJI_ICON": "Montrer le sélecteur d'émoji", + "TIP_ATTACH_ICON": "Joindre des fichiers", + "ENTER_TO_SEND": "Entrer pour envoyer" }, "VISIBLE_TO_AGENTS": "Note privée : uniquement visible par vous et votre équipe", "CHANGE_STATUS": "Statut de la conversation modifié", "CHANGE_AGENT": "Responsable de la conversation modifié", - "SENT_BY": "Sent by:", + "SENT_BY": "Envoyé par:", "ASSIGNMENT": { - "SELECT_AGENT": "Select Agent", + "SELECT_AGENT": "Sélectionner un agent", "REMOVE": "Supprimer", - "ASSIGN": "Assign" + "ASSIGN": "Assigner" } }, "EMAIL_TRANSCRIPT": { @@ -65,7 +67,7 @@ "SEND_EMAIL_ERROR": "Une erreur est survenue, veuillez réessayer", "FORM": { "SEND_TO_CONTACT": "Envoyer la transcription au client", - "SEND_TO_AGENT": "Send the transcript to the assigned agent", + "SEND_TO_AGENT": "Envoyer la transcription à l'agent assigné", "SEND_TO_OTHER_EMAIL_ADDRESS": "Envoyer la transcription à une autre adresse de courriel", "EMAIL": { "PLACEHOLDER": "Entrez une adresse de courriel", diff --git a/app/javascript/dashboard/i18n/locale/fr/generalSettings.json b/app/javascript/dashboard/i18n/locale/fr/generalSettings.json index 23c90e893..117d509ea 100644 --- a/app/javascript/dashboard/i18n/locale/fr/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/fr/generalSettings.json @@ -43,13 +43,33 @@ "CUSTOM_EMAIL_DOMAIN_ENABLED": "Vous pouvez maintenant recevoir des courriels dans votre domaine personnalisé." } }, - "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance." + "UPDATE_CHATWOOT": "Une mise à jour %{latestChatwootVersion} de Chatwoot est disponible. Veuillez mettre à jour votre instance." }, "FORMS": { "MULTISELECT": { - "ENTER_TO_SELECT": "Press enter to select", - "ENTER_TO_REMOVE": "Press enter to remove", - "SELECT_ONE": "Select one" + "ENTER_TO_SELECT": "Appuyer sur Entrée pour sélectionner", + "ENTER_TO_REMOVE": "Appuyer sur Entrée pour supprimer", + "SELECT_ONE": "Sélectionnez un" + } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Nom", + "Numéro de téléphone", + "Conversations", + "Dernièrement contacté" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" } } } diff --git a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json index 80f8899f9..cc596263e 100644 --- a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json @@ -166,8 +166,8 @@ "AGENTS": { "TITLE": "Agents", "DESC": "Ici vous pouvez ajouter des agents pour gérer votre boîte de réception nouvellement créée. Seuls ces agents sélectionnés auront accès à votre boîte de réception. Les agents qui ne font pas partie de cette boîte de réception ne seront pas en mesure de voir ou de répondre aux messages de cette boîte de réception lorsqu'ils se connectent.
PS : En tant qu'administrateur, si vous avez besoin d'accéder à toutes les boîtes de réception, vous devriez vous ajouter en tant qu'agent à toutes les boîtes de réception que vous créez.", - "VALIDATION_ERROR": "Add atleast one agent to your new Inbox", - "PICK_AGENTS": "Pick agents for the inbox" + "VALIDATION_ERROR": "Ajouter au moins un agent à votre nouvelle boîte de réception", + "PICK_AGENTS": "Sélectionner les agents de la boîte de réception" }, "DETAILS": { "TITLE": "Détails de la boîte de réception", @@ -242,8 +242,8 @@ "INBOX_UPDATE_TITLE": "Paramètres de boîtes de réception", "INBOX_UPDATE_SUB_TEXT": "Mettre à jour les paramètres de votre boîte de réception", "AUTO_ASSIGNMENT_SUB_TEXT": "Activer ou désactiver l'affectation automatique de nouvelles conversations aux agents ajoutés à cette boîte de réception.", - "HMAC_VERIFICATION": "User Identity Validation", - "HMAC_DESCRIPTION": "Inorder validate the users identity, the SDK allows you to pass an `identity_hash` for each user. You can generate HMAC using 'sha256' with the key shown here." + "HMAC_VERIFICATION": "Validation de l'identité de l'utilisateur", + "HMAC_DESCRIPTION": "Afin de valider l'identité des utilisateurs, le SDK vous permet de passer un `identity_hash` pour chaque utilisateur. Vous pouvez générer HMAC en utilisant 'sha256' avec la clé indiquée ici." }, "FACEBOOK_REAUTHORIZE": { "TITLE": "Réautoriser", diff --git a/app/javascript/dashboard/i18n/locale/fr/report.json b/app/javascript/dashboard/i18n/locale/fr/report.json index ed325d06c..ed05c942c 100644 --- a/app/javascript/dashboard/i18n/locale/fr/report.json +++ b/app/javascript/dashboard/i18n/locale/fr/report.json @@ -3,7 +3,7 @@ "HEADER": "Rapports", "LOADING_CHART": "Chargement des données du graphique ...", "NO_ENOUGH_DATA": "Nous n'avons pas reçu assez de points de données pour générer un rapport. Veuillez réessayer plus tard.", - "DOWNLOAD_AGENT_REPORTS": "Download agent reports", + "DOWNLOAD_AGENT_REPORTS": "Télécharger les rapports de l'agent", "METRICS": { "CONVERSATIONS": { "NAME": "Conversations", diff --git a/app/javascript/dashboard/i18n/locale/fr/settings.json b/app/javascript/dashboard/i18n/locale/fr/settings.json index 52567494a..bcd44ad6f 100644 --- a/app/javascript/dashboard/i18n/locale/fr/settings.json +++ b/app/javascript/dashboard/i18n/locale/fr/settings.json @@ -27,6 +27,7 @@ "NOTE": "Mettez à jour vos préférences de notification par courriel ici", "CONVERSATION_ASSIGNMENT": "Envoyer des notifications par courriel lorsqu'une conversation m'est assignée", "CONVERSATION_CREATION": "Envoyer des notifications par courriel quand une nouvelle conversation est créée", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Envoyer des notifications par courriel lorsqu'un nouveau message est créé dans une conversation assignée" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Mettez à jour vos préférences de notification push ici", "CONVERSATION_ASSIGNMENT": "Envoyer des notifications push lorsqu'une conversation m'est assignée", "CONVERSATION_CREATION": "Envoyer des notifications push quand une nouvelle conversation est créée", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Envoyer des notifications push lorsqu'un nouveau message est créé dans une conversation assignée", "HAS_ENABLED_PUSH": "Vous avez activé les notifications pour ce navigateur.", "REQUEST_PUSH": "Activer les notifications push" @@ -118,10 +120,12 @@ "HOME": "Accueil", "AGENTS": "Agents", "INBOXES": "Boîtes de réception", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Réponses standardisées", "INTEGRATIONS": "Intégrations", "ACCOUNT_SETTINGS": "Paramètres du compte", - "LABELS": "Étiquettes" + "LABELS": "Étiquettes", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "Nouveau compte", diff --git a/app/javascript/dashboard/i18n/locale/fr/signup.json b/app/javascript/dashboard/i18n/locale/fr/signup.json index 6b40d95f6..afdd3f9ee 100644 --- a/app/javascript/dashboard/i18n/locale/fr/signup.json +++ b/app/javascript/dashboard/i18n/locale/fr/signup.json @@ -5,18 +5,18 @@ "TERMS_ACCEPT": "En vous inscrivant, vous acceptez nos CGU et notre politique de confidentialité", "ACCOUNT_NAME": { "LABEL": "Nom du compte", - "PLACEHOLDER": "Enter an account name. eg: Wayne Enterprises", - "ERROR": "Account name is too short" + "PLACEHOLDER": "Entrez un nom de compte. Ex : Wayne Enterprises", + "ERROR": "Le nom du compte est trop court" }, "FULL_NAME": { - "LABEL": "Full name", - "PLACEHOLDER": "Enter your full name. eg: Bruce Wayne", - "ERROR": "Full name is too short" + "LABEL": "Nom complet", + "PLACEHOLDER": "Entrez votre nom complet. Ex. : Bruce Wayne", + "ERROR": "Le nom complet est trop court" }, "EMAIL": { - "LABEL": "Work email", - "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises", - "ERROR": "Email address is invalid" + "LABEL": "E-mail professionnel", + "PLACEHOLDER": "Entrez votre adresse e-mail professionnelle. Ex. : bruce@wayne.enterprises", + "ERROR": "L'adresse e-mail est invalide" }, "PASSWORD": { "LABEL": "Mot de passe", @@ -33,6 +33,6 @@ "ERROR_MESSAGE": "Impossible de se connecter au serveur Woot, veuillez réessayer plus tard" }, "SUBMIT": "Envoyer", - "HAVE_AN_ACCOUNT": "Already have an account?" + "HAVE_AN_ACCOUNT": "Vous avez déjà un compte ?" } } diff --git a/app/javascript/dashboard/i18n/locale/hi/chatlist.json b/app/javascript/dashboard/i18n/locale/hi/chatlist.json index a0b31427f..228554789 100644 --- a/app/javascript/dashboard/i18n/locale/hi/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/hi/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Received via email", "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", - "REPLY_TO_TWEET": "Reply to this tweet" + "REPLY_TO_TWEET": "Reply to this tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/hi/conversation.json b/app/javascript/dashboard/i18n/locale/hi/conversation.json index 19bc5235b..967378552 100644 --- a/app/javascript/dashboard/i18n/locale/hi/conversation.json +++ b/app/javascript/dashboard/i18n/locale/hi/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Remove Selection", "DOWNLOAD": "Download", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Resolve", "REOPEN_ACTION": "Reopen", @@ -44,7 +45,8 @@ "TWEET": "Tweet", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team", "CHANGE_STATUS": "Conversation status changed", diff --git a/app/javascript/dashboard/i18n/locale/hi/generalSettings.json b/app/javascript/dashboard/i18n/locale/hi/generalSettings.json index 245bcb4c1..d5e8bd50b 100644 --- a/app/javascript/dashboard/i18n/locale/hi/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/hi/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Name", + "Phone Number", + "Conversations", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/hi/settings.json b/app/javascript/dashboard/i18n/locale/hi/settings.json index 0f4addcd4..21a6dcc78 100644 --- a/app/javascript/dashboard/i18n/locale/hi/settings.json +++ b/app/javascript/dashboard/i18n/locale/hi/settings.json @@ -27,6 +27,7 @@ "NOTE": "Update your email notification preferences here", "CONVERSATION_ASSIGNMENT": "Send email notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send email notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Update your push notification preferences here", "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send push notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "You have enabled push for this browser.", "REQUEST_PUSH": "Enable push notifications" @@ -118,10 +120,12 @@ "HOME": "Home", "AGENTS": "Agents", "INBOXES": "Inboxes", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Canned Responses", "INTEGRATIONS": "Integrations", "ACCOUNT_SETTINGS": "Account Settings", - "LABELS": "Labels" + "LABELS": "Labels", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/hu/chatlist.json b/app/javascript/dashboard/i18n/locale/hu/chatlist.json index a0b31427f..228554789 100644 --- a/app/javascript/dashboard/i18n/locale/hu/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/hu/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Received via email", "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", - "REPLY_TO_TWEET": "Reply to this tweet" + "REPLY_TO_TWEET": "Reply to this tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/hu/conversation.json b/app/javascript/dashboard/i18n/locale/hu/conversation.json index 19bc5235b..967378552 100644 --- a/app/javascript/dashboard/i18n/locale/hu/conversation.json +++ b/app/javascript/dashboard/i18n/locale/hu/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Remove Selection", "DOWNLOAD": "Download", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Resolve", "REOPEN_ACTION": "Reopen", @@ -44,7 +45,8 @@ "TWEET": "Tweet", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team", "CHANGE_STATUS": "Conversation status changed", diff --git a/app/javascript/dashboard/i18n/locale/hu/generalSettings.json b/app/javascript/dashboard/i18n/locale/hu/generalSettings.json index 245bcb4c1..cb1ecc865 100644 --- a/app/javascript/dashboard/i18n/locale/hu/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/hu/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Név", + "Phone Number", + "Conversations", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/hu/settings.json b/app/javascript/dashboard/i18n/locale/hu/settings.json index 64db2db53..b7f6c3e85 100644 --- a/app/javascript/dashboard/i18n/locale/hu/settings.json +++ b/app/javascript/dashboard/i18n/locale/hu/settings.json @@ -27,6 +27,7 @@ "NOTE": "Update your email notification preferences here", "CONVERSATION_ASSIGNMENT": "Send email notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send email notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Update your push notification preferences here", "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send push notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "You have enabled push for this browser.", "REQUEST_PUSH": "Enable push notifications" @@ -118,10 +120,12 @@ "HOME": "Home", "AGENTS": "Ügynökök", "INBOXES": "Inboxes", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Canned Responses", "INTEGRATIONS": "Integrations", "ACCOUNT_SETTINGS": "Account Settings", - "LABELS": "Labels" + "LABELS": "Labels", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/id/chatlist.json b/app/javascript/dashboard/i18n/locale/id/chatlist.json index b8abc40b3..2550d9cfc 100644 --- a/app/javascript/dashboard/i18n/locale/id/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/id/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Diterima melalui email", "VIEW_TWEET_IN_TWITTER": "Lihat tweet di Twitter", - "REPLY_TO_TWEET": "Balas tweet ini" + "REPLY_TO_TWEET": "Balas tweet ini", + "NO_MESSAGES": "Tidak Ada Pesan" } } diff --git a/app/javascript/dashboard/i18n/locale/id/conversation.json b/app/javascript/dashboard/i18n/locale/id/conversation.json index a4262af53..1d9b1aea6 100644 --- a/app/javascript/dashboard/i18n/locale/id/conversation.json +++ b/app/javascript/dashboard/i18n/locale/id/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Hapus Pilihan", "DOWNLOAD": "Unduh", "UPLOADING_ATTACHMENTS": "Unggah lampiran...", + "NO_RESPONSE": "Tidak ada respon", "HEADER": { "RESOLVE_ACTION": "Menyelesaikan", "REOPEN_ACTION": "Buka Kembali", @@ -42,9 +43,10 @@ "SEND": "Kirim", "CREATE": "Tambahkan Catatan", "TWEET": "Tweet", - "TIP_FORMAT_ICON": "Show rich text editor", - "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_FORMAT_ICON": "Tampilkan editor teks", + "TIP_EMOJI_ICON": "Tampilkan pemilih emoji", + "TIP_ATTACH_ICON": "Lampirkan file", + "ENTER_TO_SEND": "Enter untuk mengirim" }, "VISIBLE_TO_AGENTS": "Catatan Pribadi: Hanya terlihat oleh Anda dan tim Anda", "CHANGE_STATUS": "Status percakapan berubah", diff --git a/app/javascript/dashboard/i18n/locale/id/generalSettings.json b/app/javascript/dashboard/i18n/locale/id/generalSettings.json index 2a8e3cc8f..44da8c070 100644 --- a/app/javascript/dashboard/i18n/locale/id/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/id/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Tekan enter untuk menghapus", "SELECT_ONE": "Pilih satu" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifikasi", + "MARK_ALL_DONE": "Tandai Semua Selesai", + "LIST": { + "LOADING_MESSAGE": "Memuat notifikasi...", + "404": "Tidak Ada Notifikasi", + "TABLE_HEADER": [ + "Nama", + "Nomor Telpon", + "Percakapan", + "Terakhir Dihubungi" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "Percakapan baru", + "conversation_assignment": "Percakapan ditugaskan", + "assigned_conversation_new_message": "Pesan Baru", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/id/settings.json b/app/javascript/dashboard/i18n/locale/id/settings.json index 738609da1..8e52f7600 100644 --- a/app/javascript/dashboard/i18n/locale/id/settings.json +++ b/app/javascript/dashboard/i18n/locale/id/settings.json @@ -27,6 +27,7 @@ "NOTE": "Perbarui preferensi pemberitahuan email Anda di sini", "CONVERSATION_ASSIGNMENT": "Kirim pemberitahuan email saat percakapan ditugaskan kepada saya", "CONVERSATION_CREATION": "Kirim pemberitahuan email ketika percakapan baru dibuat", + "CONVERSATION_MENTION": "Kirim pemberitahuan email saat Anda disebut dalam percakapan", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Kirim pemberitahuan email ketika pesan baru dibuat dalam percakapan yang telah ditugaskan" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Perbarui preferensi push notification Anda di sini", "CONVERSATION_ASSIGNMENT": "Kirim pemberitahuan push ketika percakapan ditugaskan kepada saya", "CONVERSATION_CREATION": "Kirim push notification ketika percakapan baru dibuat", + "CONVERSATION_MENTION": "Kirim push notification ketika Anda disebut dalam percakapan", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Kirim push notification ketika pesan baru dibuat dalam percakapan yang telah ditugaskan", "HAS_ENABLED_PUSH": "Anda telah mengaktifkan push notification untuk browser ini.", "REQUEST_PUSH": "Aktifkan push notifications" @@ -118,10 +120,12 @@ "HOME": "Home", "AGENTS": "Agen", "INBOXES": "Kotak masuk", + "NOTIFICATIONS": "Notifikasi", "CANNED_RESPONSES": "Canned Responses", "INTEGRATIONS": "Integrasi", "ACCOUNT_SETTINGS": "Pengaturan Akun", - "LABELS": "Label" + "LABELS": "Label", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "Akun Baru", diff --git a/app/javascript/dashboard/i18n/locale/it/chatlist.json b/app/javascript/dashboard/i18n/locale/it/chatlist.json index c4b7666e6..1c5ae61b5 100644 --- a/app/javascript/dashboard/i18n/locale/it/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/it/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Received via email", "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", - "REPLY_TO_TWEET": "Reply to this tweet" + "REPLY_TO_TWEET": "Reply to this tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/it/conversation.json b/app/javascript/dashboard/i18n/locale/it/conversation.json index c1de8945f..e95c60922 100644 --- a/app/javascript/dashboard/i18n/locale/it/conversation.json +++ b/app/javascript/dashboard/i18n/locale/it/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Remove Selection", "DOWNLOAD": "Scaricare", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Risolvi", "REOPEN_ACTION": "Riapri", @@ -44,7 +45,8 @@ "TWEET": "Twitta", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Nota privata: visibile solo a te e al tuo team", "CHANGE_STATUS": "Stato conversazione cambiato", diff --git a/app/javascript/dashboard/i18n/locale/it/generalSettings.json b/app/javascript/dashboard/i18n/locale/it/generalSettings.json index 8d2ce6120..ab9b0e66e 100644 --- a/app/javascript/dashboard/i18n/locale/it/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/it/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "nome", + "Phone Number", + "Conversazioni", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/it/settings.json b/app/javascript/dashboard/i18n/locale/it/settings.json index 77b84633a..146b0d228 100644 --- a/app/javascript/dashboard/i18n/locale/it/settings.json +++ b/app/javascript/dashboard/i18n/locale/it/settings.json @@ -27,6 +27,7 @@ "NOTE": "Aggiorna qui le tue preferenze di notifica email", "CONVERSATION_ASSIGNMENT": "Invia notifiche via email quando viene assegnata una conversazione a me", "CONVERSATION_CREATION": "Invia notifiche via email quando viene creata una nuova conversazione", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Aggiorna qui le tue preferenze di notifiche push", "CONVERSATION_ASSIGNMENT": "Invia notifiche push quando una conversazione mi viene assegnata", "CONVERSATION_CREATION": "Invia notifiche push quando una conversazione mi viene assegnata", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "Hai abilitato notifiche push per questo browser.", "REQUEST_PUSH": "Abilita notifiche push" @@ -118,10 +120,12 @@ "HOME": "Home", "AGENTS": "Agenti", "INBOXES": "Posta", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Risposte predefinite", "INTEGRATIONS": "Integrazioni", "ACCOUNT_SETTINGS": "Impostazioni Account", - "LABELS": "Labels" + "LABELS": "Labels", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/ja/chatlist.json b/app/javascript/dashboard/i18n/locale/ja/chatlist.json index 205e25b17..71aa0a41b 100644 --- a/app/javascript/dashboard/i18n/locale/ja/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ja/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "メールで受信しました", "VIEW_TWEET_IN_TWITTER": "ツイートをTwitterで見る", - "REPLY_TO_TWEET": "このつぶやきに返信" + "REPLY_TO_TWEET": "このつぶやきに返信", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/ja/conversation.json b/app/javascript/dashboard/i18n/locale/ja/conversation.json index a93dd3ba1..2fc7732e3 100644 --- a/app/javascript/dashboard/i18n/locale/ja/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ja/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "選択項目を削除", "DOWNLOAD": "ダウンロード", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "解決する", "REOPEN_ACTION": "再開する", @@ -44,7 +45,8 @@ "TWEET": "ツイート", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "非公開設定の注意:あなたとあなたのチームのみに表示されます", "CHANGE_STATUS": "会話の状態が変更されました", diff --git a/app/javascript/dashboard/i18n/locale/ja/generalSettings.json b/app/javascript/dashboard/i18n/locale/ja/generalSettings.json index 451637f7d..d1ea118df 100644 --- a/app/javascript/dashboard/i18n/locale/ja/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/ja/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "名前", + "電話番号", + "会話データ", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/ja/settings.json b/app/javascript/dashboard/i18n/locale/ja/settings.json index 8ecd99646..fcc775987 100644 --- a/app/javascript/dashboard/i18n/locale/ja/settings.json +++ b/app/javascript/dashboard/i18n/locale/ja/settings.json @@ -27,6 +27,7 @@ "NOTE": "メール通知設定を更新する", "CONVERSATION_ASSIGNMENT": "会話が自分に割り当てられたときにメールで通知を送信する", "CONVERSATION_CREATION": "新しい会話が作成されたときにメールで通知を送信する", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "割り当てられた会話で新しいメッセージが作成されたときにメールで通知を送信します" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "ここでプッシュ通知の設定を更新します", "CONVERSATION_ASSIGNMENT": "会話が自分に割り当てられたときにプッシュ通知を送信する", "CONVERSATION_CREATION": "新しい会話が作成されたときにプッシュ通知を送信する", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "割り当てられた会話で新しいメッセージが作成されたときにプッシュ通知を送信する", "HAS_ENABLED_PUSH": "このブラウザーでプッシュ通知を有効にしました。", "REQUEST_PUSH": "プッシュ通知を有効にする" @@ -118,10 +120,12 @@ "HOME": "ホーム", "AGENTS": "担当者", "INBOXES": "受信トレイ", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "定型文", "INTEGRATIONS": "連携", "ACCOUNT_SETTINGS": "アカウント設定", - "LABELS": "ラベル" + "LABELS": "ラベル", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "新規アカウント", diff --git a/app/javascript/dashboard/i18n/locale/ko/chatlist.json b/app/javascript/dashboard/i18n/locale/ko/chatlist.json index 826c75939..33cf9dcae 100644 --- a/app/javascript/dashboard/i18n/locale/ko/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ko/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "이메일을 통해 수신됨", "VIEW_TWEET_IN_TWITTER": "트위터에서 트윗 보기", - "REPLY_TO_TWEET": "트윗에 응답하기" + "REPLY_TO_TWEET": "트윗에 응답하기", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/ko/conversation.json b/app/javascript/dashboard/i18n/locale/ko/conversation.json index 241dedbab..accee1e2c 100644 --- a/app/javascript/dashboard/i18n/locale/ko/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ko/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "선택 항목 제거", "DOWNLOAD": "다운로드", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "해결함", "REOPEN_ACTION": "다시 열기", @@ -44,7 +45,8 @@ "TWEET": "트윗", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "개인 노트: 귀하와 귀하의 팀만 볼 수 있음", "CHANGE_STATUS": "대화 상태가 변경됨", diff --git a/app/javascript/dashboard/i18n/locale/ko/generalSettings.json b/app/javascript/dashboard/i18n/locale/ko/generalSettings.json index e55798c20..a4fd98f0b 100644 --- a/app/javascript/dashboard/i18n/locale/ko/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/ko/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "제거하려면 Enter 키를 누르십시오.", "SELECT_ONE": "하나 선택" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "이름", + "전화 번호", + "대화", + "마지막으로 연락한 사람" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "멘션" + } } } diff --git a/app/javascript/dashboard/i18n/locale/ko/settings.json b/app/javascript/dashboard/i18n/locale/ko/settings.json index 48a876b98..7d63bca00 100644 --- a/app/javascript/dashboard/i18n/locale/ko/settings.json +++ b/app/javascript/dashboard/i18n/locale/ko/settings.json @@ -27,6 +27,7 @@ "NOTE": "여기서 이메일 알림 기본 설정 업데이트", "CONVERSATION_ASSIGNMENT": "대화가 할당될 때 이메일 알림 보내기", "CONVERSATION_CREATION": "새 대화가 생성될 때 이메일 알림 보내기", + "CONVERSATION_MENTION": "대화에서 멘션될 때 이메일 알림 보내기", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "할당된 대화에서 새 메시지가 생성될 때 이메일 알림 보내기" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "여기에서 푸시 알림 기본 설정 업데이트", "CONVERSATION_ASSIGNMENT": "대화가 할당되면 푸시 알림 보내기", "CONVERSATION_CREATION": "새 대화가 만들어질 때 푸시 알림 보내기", + "CONVERSATION_MENTION": "대화에서 멘션될 때 푸시 알림 보내기", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "할당된 대화에서 새 메시지가 생성될 때 푸시 알림 보내기", "HAS_ENABLED_PUSH": "이 브라우저에 대한 푸시를 사용 가능으로 설정하셨습니다.", "REQUEST_PUSH": "푸시 알림 사용" @@ -118,10 +120,12 @@ "HOME": "홈", "AGENTS": "에이전트", "INBOXES": "받은 메시지함", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "미리 준비된 답변", "INTEGRATIONS": "통합", "ACCOUNT_SETTINGS": "계정 설정", - "LABELS": "라벨" + "LABELS": "라벨", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "새 계정", diff --git a/app/javascript/dashboard/i18n/locale/ml/chatlist.json b/app/javascript/dashboard/i18n/locale/ml/chatlist.json index 429135b83..7a0db1357 100644 --- a/app/javascript/dashboard/i18n/locale/ml/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ml/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "ഇമെയിൽ വഴി ലഭിച്ചു", "VIEW_TWEET_IN_TWITTER": "ട്വിറ്ററിൽ ട്വീറ്റ് കാണുക", - "REPLY_TO_TWEET": "ഈ ട്വീറ്റിന് മറുപടി നൽകുക" + "REPLY_TO_TWEET": "ഈ ട്വീറ്റിന് മറുപടി നൽകുക", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/ml/conversation.json b/app/javascript/dashboard/i18n/locale/ml/conversation.json index 07d28a6ab..5a5b39642 100644 --- a/app/javascript/dashboard/i18n/locale/ml/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ml/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "തിരഞ്ഞെടുക്കൽ നീക്കംചെയ്യുക", "DOWNLOAD": "ഡൗൺലോഡ്", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "പരിഹരിക്കുക", "REOPEN_ACTION": "വീണ്ടും തുറക്കുക", @@ -44,7 +45,8 @@ "TWEET": "ട്വീറ്റ്", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "സ്വകാര്യ കുറിപ്പ്: നിങ്ങൾക്കും നിങ്ങളുടെ ടീമിനും മാത്രം ദൃശ്യമാണ്", "CHANGE_STATUS": "സംഭാഷണ നില മാറ്റി", diff --git a/app/javascript/dashboard/i18n/locale/ml/generalSettings.json b/app/javascript/dashboard/i18n/locale/ml/generalSettings.json index cf28774a0..42aa3a1da 100644 --- a/app/javascript/dashboard/i18n/locale/ml/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/ml/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "പേര്", + "ഫോൺ നമ്പർ", + "സംഭാഷണങ്ങൾ", + "അവസാനം കോൺടാക്റ്റുചെയ്തത്" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/ml/settings.json b/app/javascript/dashboard/i18n/locale/ml/settings.json index 7004a287b..5ddadf8a9 100644 --- a/app/javascript/dashboard/i18n/locale/ml/settings.json +++ b/app/javascript/dashboard/i18n/locale/ml/settings.json @@ -27,6 +27,7 @@ "NOTE": "നിങ്ങളുടെ ഇമെയിൽ അറിയിപ്പ് മുൻ‌ഗണനകൾ ഇവിടെ അപ്‌ഡേറ്റു ചെയ്യുക", "CONVERSATION_ASSIGNMENT": "ഒരു സംഭാഷണം എനിക്ക് നിയോഗിക്കുമ്പോൾ ഇമെയിൽ അറിയിപ്പുകൾ അയയ്‌ക്കുക", "CONVERSATION_CREATION": "ഒരു പുതിയ സംഭാഷണം സൃഷ്ടിക്കുമ്പോൾ ഇമെയിൽ അറിയിപ്പുകൾ അയയ്ക്കുക", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Update your push notification preferences here", "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send push notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "You have enabled push for this browser.", "REQUEST_PUSH": "Enable push notifications" @@ -118,10 +120,12 @@ "HOME": "ഹോം", "AGENTS": "ഏജന്റുമാർ", "INBOXES": "ഇൻ‌ബോക്സുകൾ", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "ക്യാൻഡ് പ്രതികരണങ്ങൾ", "INTEGRATIONS": "സംയോജനങ്ങൾ", "ACCOUNT_SETTINGS": "അക്കൗണ്ട് ക്രമീകരണങ്ങൾ", - "LABELS": "ലേബലുകൾ" + "LABELS": "ലേബലുകൾ", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "പുതിയ അക്കൗണ്ട്", diff --git a/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json new file mode 100644 index 000000000..ac4a62127 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json @@ -0,0 +1,96 @@ +{ + "AGENT_MGMT": { + "HEADER": "Agents", + "HEADER_BTN_TXT": "Add Agent", + "LOADING": "Fetching Agent List", + "SIDEBAR_TXT": "

Agents

An Agent is a member of your Customer Support team.

Agents will be able to view and reply to messages from your users. The list shows all agents currently in your account.

Click on Add Agent to add a new agent. Agent you add will receive an email with a confirmation link to activate their account, after which they can access Chatwoot and respond to messages.

Access to Chatwoot's features are based on following roles.

Agent - Agents with this role can only access inboxes, reports and conversations. They can assign conversations to other agents or themselves and resolve conversations.

Administrator - Administrator will have access to all Chatwoot features enabled for your account, including settings, along with all of a normal agents' privileges.

", + "AGENT_TYPES": { + "ADMINISTRATOR": "Administrator", + "AGENT": "Agent" + }, + "LIST": { + "404": "There are no agents associated to this account", + "TITLE": "Manage agents in your team", + "DESC": "You can add/remove agents to/in your team.", + "NAME": "Name", + "EMAIL": "EMAIL", + "STATUS": "Status", + "ACTIONS": "Actions", + "VERIFIED": "Verified", + "VERIFICATION_PENDING": "Verification Pending" + }, + "ADD": { + "TITLE": "Add agent to your team", + "DESC": "You can add people who will be able to handle support for your inboxes.", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "NAME": { + "LABEL": "Agent Name", + "PLACEHOLDER": "Please enter a name of the agent" + }, + "AGENT_TYPE": { + "LABEL": "Role", + "PLACEHOLDER": "Please select a role", + "ERROR": "Role is required" + }, + "EMAIL": { + "LABEL": "Email Address", + "PLACEHOLDER": "Please enter an email address of the agent" + }, + "SUBMIT": "Add Agent" + }, + "API": { + "SUCCESS_MESSAGE": "Agent added successfully", + "EXIST_MESSAGE": "Agent email already in use, Please try another email address", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Agent deleted successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + } + }, + "EDIT": { + "TITLE": "Edit agent", + "FORM": { + "NAME": { + "LABEL": "Agent Name", + "PLACEHOLDER": "Please enter a name of the agent" + }, + "AGENT_TYPE": { + "LABEL": "Role", + "PLACEHOLDER": "Please select a role", + "ERROR": "Role is required" + }, + "EMAIL": { + "LABEL": "Email Address", + "PLACEHOLDER": "Please enter an email address of the agent" + }, + "SUBMIT": "Edit Agent" + }, + "BUTTON_TEXT": "Edit", + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Agent updated successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "PASSWORD_RESET": { + "ADMIN_RESET_BUTTON": "Reset Password", + "ADMIN_SUCCESS_MESSAGE": "An email with reset password instructions has been sent to the agent", + "SUCCESS_MESSAGE": "Agent password reset successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "SEARCH": { + "NO_RESULTS": "No agents found." + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ne/cannedMgmt.json new file mode 100644 index 000000000..bcab1dc6a --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/cannedMgmt.json @@ -0,0 +1,76 @@ +{ + "CANNED_MGMT": { + "HEADER": "Canned Responses", + "HEADER_BTN_TXT": "Add Canned Response", + "LOADING": "Fetching Canned Responses", + "SEARCH_404": "There are no items matching this query", + "SIDEBAR_TXT": "

Canned Responses

Canned Responses are saved reply templates which can be used to quickly send out a reply to a conversation .

For creating a Canned Response, just click on the Add Canned Response. You can also edit or delete an existing Canned Response by clicking on the Edit or Delete button

Canned responses are used with the help of Short Codes. Agents can access canned responses while on a chat by typing '/' followed by the short code.

", + "LIST": { + "404": "There are no canned responses available in this account.", + "TITLE": "Manage canned responses", + "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to tickets.", + "TABLE_HEADER": [ + "Short Code", + "Content", + "Actions" + ] + }, + "ADD": { + "TITLE": "Add Canned Response", + "DESC": "Canned Responses are saved reply templates which can be used to quickly send out reply to conversation .", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "SHORT_CODE": { + "LABEL": "Short Code", + "PLACEHOLDER": "Please enter a shortcode", + "ERROR": "Short Code is required" + }, + "CONTENT": { + "LABEL": "Content", + "PLACEHOLDER": "Please enter a content", + "ERROR": "Content is required" + }, + "SUBMIT": "Submit" + }, + "API": { + "SUCCESS_MESSAGE": "Canned Response added successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "EDIT": { + "TITLE": "Edit Canned Response", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "SHORT_CODE": { + "LABEL": "Short Code", + "PLACEHOLDER": "Please enter a shortcode", + "ERROR": "Short Code is required" + }, + "CONTENT": { + "LABEL": "Content", + "PLACEHOLDER": "Please enter a content", + "ERROR": "Content is required" + }, + "SUBMIT": "Submit" + }, + "BUTTON_TEXT": "Edit", + "API": { + "SUCCESS_MESSAGE": "Canned Response updated successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Canned response deleted successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/chatlist.json b/app/javascript/dashboard/i18n/locale/ne/chatlist.json new file mode 100644 index 000000000..228554789 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/chatlist.json @@ -0,0 +1,85 @@ +{ + "CHAT_LIST": { + "LOADING": "Fetching conversations", + "LOAD_MORE_CONVERSATIONS": "Load more conversations", + "EOF": "All conversations loaded 🎉", + "LIST": { + "404": "There are no active conversations in this group." + }, + "TAB_HEADING": "Conversations", + "SEARCH": { + "INPUT": "Search for People, Chats, Saved Replies .." + }, + "STATUS_TABS": [ + { + "NAME": "Open", + "KEY": "openCount" + }, + { + "NAME": "Resolved", + "KEY": "allConvCount" + } + ], + "ASSIGNEE_TYPE_TABS": [ + { + "NAME": "Mine", + "KEY": "me", + "COUNT_KEY": "mineCount" + }, + { + "NAME": "Unassigned", + "KEY": "unassigned", + "COUNT_KEY": "unAssignedCount" + }, + { + "NAME": "All", + "KEY": "all", + "COUNT_KEY": "allCount" + } + ], + "CHAT_STATUS_ITEMS": [ + { + "TEXT": "Open", + "VALUE": "open" + }, + { + "TEXT": "Resolved", + "VALUE": "resolved" + }, + { + "TEXT": "Bot", + "VALUE": "bot" + } + ], + "ATTACHMENTS": { + "image": { + "ICON": "ion-image", + "CONTENT": "Picture message" + }, + "audio": { + "ICON": "ion-volume-high", + "CONTENT": "Audio message" + }, + "video": { + "ICON": "ion-ios-videocam", + "CONTENT": "Video message" + }, + "file": { + "ICON": "ion-document", + "CONTENT": "File Attachment" + }, + "location": { + "ICON": "ion-ios-location", + "CONTENT": "Location" + }, + "fallback": { + "ICON": "ion-link", + "CONTENT": "has shared a url" + } + }, + "RECEIVED_VIA_EMAIL": "Received via email", + "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", + "REPLY_TO_TWEET": "Reply to this tweet", + "NO_MESSAGES": "No Messages" + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/contact.json b/app/javascript/dashboard/i18n/locale/ne/contact.json new file mode 100644 index 000000000..da85ffab8 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/contact.json @@ -0,0 +1,115 @@ +{ + "CONTACT_PANEL": { + "NOT_AVAILABLE": "Not Available", + "EMAIL_ADDRESS": "Email Address", + "PHONE_NUMBER": "Phone number", + "COPY_SUCCESSFUL": "Copied to clipboard successfully", + "COMPANY": "Company", + "LOCATION": "Location", + "CONVERSATION_TITLE": "Conversation Details", + "BROWSER": "Browser", + "OS": "Operating System", + "INITIATED_FROM": "Initiated from", + "INITIATED_AT": "Initiated at", + "IP_ADDRESS": "IP Address", + "CONVERSATIONS": { + "NO_RECORDS_FOUND": "There are no previous conversations associated to this contact.", + "TITLE": "Previous Conversations" + }, + "CUSTOM_ATTRIBUTES": { + "TITLE": "Custom Attributes" + }, + "LABELS": { + "TITLE": "Conversation Labels", + "MODAL": { + "TITLE": "Labels for", + "ACTIVE_LABELS": "Labels added to the conversation", + "INACTIVE_LABELS": "Labels available in the account", + "REMOVE": "Click on X icon to remove the label", + "ADD": "Click on + icon to add the label", + "UPDATE_BUTTON": "Update labels", + "UPDATE_ERROR": "Couldn't update labels, try again." + }, + "NO_LABELS_TO_ADD": "There are no more labels defined in the account.", + "NO_AVAILABLE_LABELS": "There are no labels added to this conversation." + }, + "MUTE_CONTACT": "Mute Conversation", + "UNMUTE_CONTACT": "Unmute Conversation", + "MUTED_SUCCESS": "This conversation is muted for 6 hours", + "UNMUTED_SUCCESS": "This conversation is unmuted", + "SEND_TRANSCRIPT": "Send Transcript", + "EDIT_LABEL": "Edit" + }, + "EDIT_CONTACT": { + "BUTTON_LABEL": "Edit Contact", + "TITLE": "Edit contact", + "DESC": "Edit contact details", + "FORM": { + "SUBMIT": "Submit", + "CANCEL": "Cancel", + "AVATAR": { + "LABEL": "Contact Avatar" + }, + "NAME": { + "PLACEHOLDER": "Enter the full name of the contact", + "LABEL": "Full Name" + }, + "BIO": { + "PLACEHOLDER": "Enter the bio of the contact", + "LABEL": "Bio" + }, + "EMAIL_ADDRESS": { + "PLACEHOLDER": "Enter the email address of the contact", + "LABEL": "Email Address" + }, + "PHONE_NUMBER": { + "PLACEHOLDER": "Enter the phone number of the contact", + "LABEL": "Phone Number" + }, + "LOCATION": { + "PLACEHOLDER": "Enter the location of the contact", + "LABEL": "Location" + }, + "COMPANY_NAME": { + "PLACEHOLDER": "Enter the company name", + "LABEL": "Company Name" + }, + "SOCIAL_PROFILES": { + "FACEBOOK": { + "PLACEHOLDER": "Enter the Facebook username", + "LABEL": "Facebook" + }, + "TWITTER": { + "PLACEHOLDER": "Enter the Twitter username", + "LABEL": "Twitter" + }, + "LINKEDIN": { + "PLACEHOLDER": "Enter the LinkedIn username", + "LABEL": "LinkedIn" + }, + "GITHUB": { + "PLACEHOLDER": "Enter the Github username", + "LABEL": "Github" + } + } + }, + "SUCCESS_MESSAGE": "Updated contact successfully", + "CONTACT_ALREADY_EXIST": "This email address is in use for another contact.", + "ERROR_MESSAGE": "There was an error updating the contact, please try again" + }, + "CONTACTS_PAGE": { + "HEADER": "Contacts", + "SEARCH_BUTTON": "Search", + "SEARCH_INPUT_PLACEHOLDER": "Search for contacts", + "LIST": { + "LOADING_MESSAGE": "Loading contacts...", + "404": "No contacts matches your search 🔍", + "TABLE_HEADER": [ + "Name", + "Phone Number", + "Conversations", + "Last Contacted" + ] + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/conversation.json b/app/javascript/dashboard/i18n/locale/ne/conversation.json new file mode 100644 index 000000000..967378552 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/conversation.json @@ -0,0 +1,78 @@ +{ + "CONVERSATION": { + "404": "Please select a conversation from left pane", + "NO_MESSAGE_1": "Uh oh! Looks like there are no messages from customers in your inbox.", + "NO_MESSAGE_2": " to send a message to your page!", + "NO_INBOX_1": "Hola! Looks like you haven't added any inboxes yet.", + "NO_INBOX_2": " to get started", + "NO_INBOX_AGENT": "Uh Oh! Looks like you are not part of any inbox. Please contact your administrator", + "SEARCH_MESSAGES": "Search for messages in conversations", + "SEARCH": { + "TITLE": "Search messages", + "LOADING_MESSAGE": "Crunching data...", + "PLACEHOLDER": "Type any text to search messages", + "NO_MATCHING_RESULTS": "There are no messages matching the search parameters." + }, + "UNREAD_MESSAGES": "Unread Messages", + "UNREAD_MESSAGE": "Unread Message", + "CLICK_HERE": "Click here", + "LOADING_INBOXES": "Loading inboxes", + "LOADING_CONVERSATIONS": "Loading Conversations", + "CANNOT_REPLY": "You cannot reply due to", + "24_HOURS_WINDOW": "24 hour message window restriction", + "LAST_INCOMING_TWEET": "You are replying to the last incoming tweet", + "REPLYING_TO": "You are replying to:", + "REMOVE_SELECTION": "Remove Selection", + "DOWNLOAD": "Download", + "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", + "HEADER": { + "RESOLVE_ACTION": "Resolve", + "REOPEN_ACTION": "Reopen", + "OPEN": "More", + "CLOSE": "Close", + "DETAILS": "details" + }, + "FOOTER": { + "MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.", + "PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents" + }, + "REPLYBOX": { + "REPLY": "Reply", + "PRIVATE_NOTE": "Private Note", + "SEND": "Send", + "CREATE": "Add Note", + "TWEET": "Tweet", + "TIP_FORMAT_ICON": "Show rich text editor", + "TIP_EMOJI_ICON": "Show emoji selector", + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" + }, + "VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team", + "CHANGE_STATUS": "Conversation status changed", + "CHANGE_AGENT": "Conversation Assignee changed", + "SENT_BY": "Sent by:", + "ASSIGNMENT": { + "SELECT_AGENT": "Select Agent", + "REMOVE": "Remove", + "ASSIGN": "Assign" + } + }, + "EMAIL_TRANSCRIPT": { + "TITLE": "Send conversation transcript", + "DESC": "Send a copy of the conversation transcript to the specified email address", + "SUBMIT": "Submit", + "CANCEL": "Cancel", + "SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully", + "SEND_EMAIL_ERROR": "There was an error, please try again", + "FORM": { + "SEND_TO_CONTACT": "Send the transcript to the customer", + "SEND_TO_AGENT": "Send the transcript to the assigned agent", + "SEND_TO_OTHER_EMAIL_ADDRESS": "Send the transcript to another email address", + "EMAIL": { + "PLACEHOLDER": "Enter an email address", + "ERROR": "Please enter a valid email address" + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/generalSettings.json b/app/javascript/dashboard/i18n/locale/ne/generalSettings.json new file mode 100644 index 000000000..d5e8bd50b --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/generalSettings.json @@ -0,0 +1,75 @@ +{ + "GENERAL_SETTINGS": { + "TITLE": "Account settings", + "SUBMIT": "Update settings", + "BACK": "Back", + "UPDATE": { + "ERROR": "Could not update settings, try again!", + "SUCCESS": "Successfully updated account settings" + }, + "FORM": { + "ERROR": "Please fix form errors", + "GENERAL_SECTION": { + "TITLE": "General settings", + "NOTE": "" + }, + "NAME": { + "LABEL": "Account name", + "PLACEHOLDER": "Your account name", + "ERROR": "Please enter a valid account name" + }, + "LANGUAGE": { + "LABEL": "Site language (Beta)", + "PLACEHOLDER": "Your account name", + "ERROR": "" + }, + "DOMAIN": { + "LABEL": "Incoming Email Domain", + "PLACEHOLDER": "The domain where you will receive the emails", + "ERROR": "" + }, + "SUPPORT_EMAIL": { + "LABEL": "Support Email", + "PLACEHOLDER": "Your company's support email", + "ERROR": "" + }, + "AUTO_RESOLVE_DURATION": { + "LABEL": "Number of days after a ticket should auto resolve if there is no activity", + "PLACEHOLDER": "30", + "ERROR": "Please enter a valid auto resolve duration (minimum 1 day)" + }, + "FEATURES": { + "INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.", + "CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now." + } + }, + "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance." + }, + "FORMS": { + "MULTISELECT": { + "ENTER_TO_SELECT": "Press enter to select", + "ENTER_TO_REMOVE": "Press enter to remove", + "SELECT_ONE": "Select one" + } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Name", + "Phone Number", + "Conversations", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json new file mode 100644 index 000000000..8c3f5624b --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json @@ -0,0 +1,255 @@ +{ + "INBOX_MGMT": { + "HEADER": "Inboxes", + "SIDEBAR_TXT": "

Inbox

When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.

Click on Add Inbox to connect a website or a Facebook Page.

In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.

You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.

", + "LIST": { + "404": "There are no inboxes attached to this account." + }, + "CREATE_FLOW": [ + { + "title": "Choose Channel", + "route": "settings_inbox_new", + "body": "Choose the provider you want to integrate with Chatwoot." + }, + { + "title": "Create Inbox", + "route": "settings_inboxes_page_channel", + "body": "Authenticate your account and create an inbox." + }, + { + "title": "Add Agents", + "route": "settings_inboxes_add_agents", + "body": "Add agents to the created inbox." + }, + { + "title": "Voila!", + "route": "settings_inbox_finish", + "body": "You are all set to go!" + } + ], + "ADD": { + "FB": { + "HELP": "PS: By signing in, we only get access to your Page's messages. Your private messages can never be accessed by Chatwoot.", + "CHOOSE_PAGE": "Choose Page", + "CHOOSE_PLACEHOLDER": "Select a page from the list", + "INBOX_NAME": "Inbox Name", + "ADD_NAME": "Add a name for your inbox", + "PICK_NAME": "Pick A Name Your Inbox", + "PICK_A_VALUE": "Pick a value" + }, + "TWITTER": { + "HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' " + }, + "WEBSITE_CHANNEL": { + "TITLE": "Website channel", + "DESC": "Create a channel for your website and start supporting your customers via our website widget.", + "LOADING_MESSAGE": "Creating Website Support Channel", + "CHANNEL_AVATAR": { + "LABEL": "Channel Avatar" + }, + "CHANNEL_NAME": { + "LABEL": "Website Name", + "PLACEHOLDER": "Enter your website name (eg: Acme Inc)" + }, + "CHANNEL_DOMAIN": { + "LABEL": "Website Domain", + "PLACEHOLDER": "Enter your website domain (eg: acme.com)" + }, + "CHANNEL_WELCOME_TITLE": { + "LABEL": "Welcome Heading", + "PLACEHOLDER": "Hi there !" + }, + "CHANNEL_WELCOME_TAGLINE": { + "LABEL": "Welcome Tagline", + "PLACEHOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback." + }, + "CHANNEL_GREETING_MESSAGE": { + "LABEL": "Channel greeting message", + "PLACEHOLDER": "Acme Inc typically replies in a few hours." + }, + "CHANNEL_GREETING_TOGGLE": { + "LABEL": "Enable channel greeting", + "HELP_TEXT": "Send a greeting message to the user when he starts the conversation.", + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "REPLY_TIME": { + "TITLE": "Set Reply time", + "IN_A_FEW_MINUTES": "In a few minutes", + "IN_A_FEW_HOURS": "In a few hours", + "IN_A_DAY": "In a day", + "HELP_TEXT": "This reply time will be displayed on the live chat widget" + }, + "WIDGET_COLOR": { + "LABEL": "Widget Color", + "PLACEHOLDER": "Update the widget color used in widget" + }, + "SUBMIT_BUTTON": "Create inbox" + }, + "TWILIO": { + "TITLE": "Twilio SMS/Whatsapp Channel", + "DESC": "Integrate Twilio and start supporting your customers via SMS or Whatsapp.", + "ACCOUNT_SID": { + "LABEL": "Account SID", + "PLACEHOLDER": "Please enter your Twilio Account SID", + "ERROR": "This field is required" + }, + "CHANNEL_TYPE": { + "LABEL": "Channel Type", + "ERROR": "Please select your Channel Type" + }, + "AUTH_TOKEN": { + "LABEL": "Auth Token", + "PLACEHOLDER": "Please enter your Twilio Auth Token", + "ERROR": "This field is required" + }, + "CHANNEL_NAME": { + "LABEL": "Channel Name", + "PLACEHOLDER": "Please enter a channel name", + "ERROR": "This field is required" + }, + "PHONE_NUMBER": { + "LABEL": "Phone number", + "PLACEHOLDER": "Please enter the phone number from which message will be sent.", + "ERROR": "Please enter a valid value. Phone number should start with `+` sign." + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the message callback URL in Twilio with the URL mentioned here." + }, + "SUBMIT_BUTTON": "Create Twilio Channel", + "API": { + "ERROR_MESSAGE": "We were not able to authenticate Twilio credentials, please try again" + } + }, + "API_CHANNEL": { + "TITLE": "API Channel", + "DESC": "Integrate with API channel and start supporting your customers.", + "CHANNEL_NAME": { + "LABEL": "Channel Name", + "PLACEHOLDER": "Please enter a channel name", + "ERROR": "This field is required" + }, + "WEBHOOK_URL": { + "LABEL": "Webhook URL", + "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.", + "PLACEHOLDER": "Webhook URL" + }, + "SUBMIT_BUTTON": "Create API Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the api channel" + } + }, + "EMAIL_CHANNEL": { + "TITLE": "Email Channel", + "DESC": "Integrate you email inbox.", + "CHANNEL_NAME": { + "LABEL": "Channel Name", + "PLACEHOLDER": "Please enter a channel name", + "ERROR": "This field is required" + }, + "EMAIL": { + "LABEL": "Email", + "SUBTITLE": "Email where your customers sends you support tickets", + "PLACEHOLDER": "Email" + }, + "SUBMIT_BUTTON": "Create Email Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the email channel" + }, + "FINISH_MESSAGE": "Start forwarding your emails to the following email address." + }, + "AUTH": { + "TITLE": "Channels", + "DESC": "Currently, we support Website live chat widgets, Facebook Pages, Twitter profiles and Whatsapp as platforms. We have more platforms like Email, Telegram and Line in the works, which will be out soon." + }, + "AGENTS": { + "TITLE": "Agents", + "DESC": "Here you can add agents to manage your newly created inbox. Only these selected agents will have access to your inbox. Agents which are not part of this inbox will not be able to see or respond to messages in this inbox when they login.
PS: As an administrator, if you need access to all inboxes, you should add yourself as agent to all inboxes that you create.", + "VALIDATION_ERROR": "Add atleast one agent to your new Inbox", + "PICK_AGENTS": "Pick agents for the inbox" + }, + "DETAILS": { + "TITLE": "Inbox Details", + "DESC": "From the dropdown below, select the Facebook Page you want to connect to Chatwoot. You can also give a custom name to your inbox for better identification." + }, + "FINISH": { + "TITLE": "Nailed It!", + "DESC": "You have successfully finished integrating your Facebook Page with Chatwoot. Next time a customer messages your Page, the conversation will automatically appear on your inbox.
We are also providing you with a widget script that you can easily add to your website. Once this is live on your website, customers can message you right from your website without the help of any external tool and the conversation will appear right here, on Chatwoot.
Cool, huh? Well, we sure try to be :)" + } + }, + "DETAILS": { + "LOADING_FB": "Authenticating you with Facebook...", + "ERROR_FB_AUTH": "Something went wrong, Please refresh page...", + "CREATING_CHANNEL": "Creating your Inbox...", + "TITLE": "Configure Inbox Details", + "DESC": "" + }, + "AGENTS": { + "BUTTON_TEXT": "Add agents", + "ADD_AGENTS": "Adding Agents to your Inbox..." + }, + "FINISH": { + "TITLE": "Your Inbox is ready!", + "MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting ", + "BUTTON_TEXT": "Take me there", + "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox." + }, + "REAUTH": "Reauthorize", + "VIEW": "View", + "EDIT": { + "API": { + "SUCCESS_MESSAGE": "Inbox settings updated successfully", + "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Auto assignment updated successfully", + "ERROR_MESSAGE": "Could not update widget color. Please try again later." + }, + "AUTO_ASSIGNMENT": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + }, + "API": { + "SUCCESS_MESSAGE": "Inbox deleted successfully", + "ERROR_MESSAGE": "Could not delete inbox. Please try again later." + } + }, + "TABS": { + "SETTINGS": "Settings", + "COLLABORATORS": "Collaborators", + "CONFIGURATION": "Configuration" + }, + "SETTINGS": "Settings", + "FEATURES": { + "LABEL": "Features", + "DISPLAY_FILE_PICKER": "Display file picker on the widget", + "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget" + }, + "SETTINGS_POPUP": { + "MESSENGER_HEADING": "Messenger Script", + "MESSENGER_SUB_HEAD": "Place this button inside your body tag", + "INBOX_AGENTS": "Agents", + "INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox", + "UPDATE": "Update", + "AUTO_ASSIGNMENT": "Enable auto assignment", + "INBOX_UPDATE_TITLE": "Inbox Settings", + "INBOX_UPDATE_SUB_TEXT": "Update your inbox settings", + "AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.", + "HMAC_VERIFICATION": "User Identity Validation", + "HMAC_DESCRIPTION": "Inorder validate the users identity, the SDK allows you to pass an `identity_hash` for each user. You can generate HMAC using 'sha256' with the key shown here." + }, + "FACEBOOK_REAUTHORIZE": { + "TITLE": "Reauthorize", + "SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services", + "MESSAGE_SUCCESS": "Reconnection successful", + "MESSAGE_ERROR": "There was an error, please try again" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/integrations.json b/app/javascript/dashboard/i18n/locale/ne/integrations.json new file mode 100644 index 000000000..8e158982a --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/integrations.json @@ -0,0 +1,61 @@ +{ + "INTEGRATION_SETTINGS": { + "HEADER": "Integrations", + "WEBHOOK": { + "TITLE": "Webhook", + "CONFIGURE": "Configure", + "HEADER": "Webhook settings", + "HEADER_BTN_TXT": "Add new webhook", + "LOADING": "Fetching attached webhooks", + "SEARCH_404": "There are no items matching this query", + "SIDEBAR_TXT": "

Webhooks

Webhooks are HTTP callbacks which can be defined for every account. They are triggered by events like message creation in Chatwoot. You can create more than one webhook for this account.

For creating a webhook, click on the Add new webhook button. You can also remove any existing webhook by clicking on the Delete button.

", + "LIST": { + "404": "There are no webhooks configured for this account.", + "TITLE": "Manage webhooks", + "TABLE_HEADER": [ + "Webhook endpoint", + "Actions" + ] + }, + "ADD": { + "CANCEL": "Cancel", + "TITLE": "Add new webhook", + "DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.", + "FORM": { + "END_POINT": { + "LABEL": "Webhook URL", + "PLACEHOLDER": "Example: https://example/api/webhook", + "ERROR": "Please enter a valid URL" + }, + "SUBMIT": "Create webhook" + }, + "API": { + "SUCCESS_MESSAGE": "Webhook added successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Webhook deleted successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep it" + } + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Integration deleted successfully" + } + }, + "CONNECT": { + "BUTTON_TEXT": "Connect" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ne/labelsMgmt.json new file mode 100644 index 000000000..b0dbe439f --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/labelsMgmt.json @@ -0,0 +1,68 @@ +{ + "LABEL_MGMT": { + "HEADER": "Labels", + "HEADER_BTN_TXT": "Add label", + "LOADING": "Fetching labels", + "SEARCH_404": "There are no items matching this query", + "SIDEBAR_TXT": "

Labels

Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.

Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.

", + "LIST": { + "404": "There are no labels available in this account.", + "TITLE": "Manage labels", + "DESC": "Labels let you group the conversations together.", + "TABLE_HEADER": [ + "Name", + "Description", + "Color" + ] + }, + "FORM": { + "NAME": { + "LABEL": "Label Name", + "PLACEHOLDER": "Label name", + "ERROR": "Label Name is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Label Description" + }, + "COLOR": { + "LABEL": "Color" + }, + "SHOW_ON_SIDEBAR": { + "LABEL": "Show label on sidebar" + }, + "EDIT": "Edit", + "CREATE": "Create", + "DELETE": "Delete", + "CANCEL": "Cancel" + }, + "ADD": { + "TITLE": "Add label", + "DESC": "Labels let you group the conversations together.", + "API": { + "SUCCESS_MESSAGE": "Label added successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + }, + "EDIT": { + "TITLE": "Edit label", + "API": { + "SUCCESS_MESSAGE": "Label updated successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Label deleted successfully", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/login.json b/app/javascript/dashboard/i18n/locale/ne/login.json new file mode 100644 index 000000000..30f667052 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/login.json @@ -0,0 +1,21 @@ +{ + "LOGIN": { + "TITLE": "Login to Chatwoot", + "EMAIL": { + "LABEL": "Email", + "PLACEHOLDER": "Email eg: someone@example.com" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACEHOLDER": "Password" + }, + "API": { + "SUCCESS_MESSAGE": "Login Successful", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later", + "UNAUTH": "Username / Password Incorrect. Please try again" + }, + "FORGOT_PASSWORD": "Forgot your password?", + "CREATE_NEW_ACCOUNT": "Create new account", + "SUBMIT": "Login" + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/report.json b/app/javascript/dashboard/i18n/locale/ne/report.json new file mode 100644 index 000000000..22e4a1c75 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/report.json @@ -0,0 +1,44 @@ +{ + "REPORT": { + "HEADER": "Reports", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_AGENT_REPORTS": "Download agent reports", + "METRICS": { + "CONVERSATIONS": { + "NAME": "Conversations", + "DESC": "( Total )" + }, + "INCOMING_MESSAGES": { + "NAME": "Incoming Messages", + "DESC": "( Total )" + }, + "OUTGOING_MESSAGES": { + "NAME": "Outgoing Messages", + "DESC": "( Total )" + }, + "FIRST_RESPONSE_TIME": { + "NAME": "First response time", + "DESC": "( Avg )" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + } + ] + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/resetPassword.json b/app/javascript/dashboard/i18n/locale/ne/resetPassword.json new file mode 100644 index 000000000..bb678e809 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/resetPassword.json @@ -0,0 +1,15 @@ +{ + "RESET_PASSWORD": { + "TITLE": "Reset Password", + "EMAIL": { + "LABEL": "Email", + "PLACEHOLDER": "Please enter your email", + "ERROR": "Please enter a valid email" + }, + "API": { + "SUCCESS_MESSAGE": "Password reset link has been sent to your email", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "SUBMIT": "Submit" + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/setNewPassword.json b/app/javascript/dashboard/i18n/locale/ne/setNewPassword.json new file mode 100644 index 000000000..94a3fd2e1 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/setNewPassword.json @@ -0,0 +1,20 @@ +{ + "SET_NEW_PASSWORD": { + "TITLE": "Set New Password", + "PASSWORD": { + "LABEL": "Password", + "PLACEHOLDER": "Password", + "ERROR": "Password is too short" + }, + "CONFIRM_PASSWORD": { + "LABEL": "Confirm Password", + "PLACEHOLDER": "Confirm Password", + "ERROR": "Passwords do not match" + }, + "API": { + "SUCCESS_MESSAGE": "Successfully changed the password", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "SUBMIT": "Submit" + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/settings.json b/app/javascript/dashboard/i18n/locale/ne/settings.json new file mode 100644 index 000000000..b7cd91f83 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/settings.json @@ -0,0 +1,146 @@ +{ + "PROFILE_SETTINGS": { + "LINK": "Profile Settings", + "TITLE": "Profile Settings", + "BTN_TEXT": "Update Profile", + "AFTER_EMAIL_CHANGED": "Your profile has been updated successfully, please login again as your login credentials are changed", + "FORM": { + "AVATAR": "Profile Image", + "ERROR": "Please fix form errors", + "REMOVE_IMAGE": "Remove", + "UPLOAD_IMAGE": "Upload image", + "UPDATE_IMAGE": "Update image", + "PROFILE_SECTION": { + "TITLE": "Profile", + "NOTE": "Your email address is your identity and is used to log in." + }, + "PASSWORD_SECTION": { + "TITLE": "Password", + "NOTE": "Updating your password would reset your logins in multiple devices." + }, + "ACCESS_TOKEN": { + "TITLE": "Access Token", + "NOTE": "This token can be used if you are building an API based integration" + }, + "EMAIL_NOTIFICATIONS_SECTION": { + "TITLE": "Email Notifications", + "NOTE": "Update your email notification preferences here", + "CONVERSATION_ASSIGNMENT": "Send email notifications when a conversation is assigned to me", + "CONVERSATION_CREATION": "Send email notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" + }, + "API": { + "UPDATE_SUCCESS": "Your notification preferences are updated successfully", + "UPDATE_ERROR": "There is an error while updating the preferences, please try again" + }, + "PUSH_NOTIFICATIONS_SECTION": { + "TITLE": "Push Notifications", + "NOTE": "Update your push notification preferences here", + "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me", + "CONVERSATION_CREATION": "Send push notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", + "HAS_ENABLED_PUSH": "You have enabled push for this browser.", + "REQUEST_PUSH": "Enable push notifications" + }, + "PROFILE_IMAGE": { + "LABEL": "Profile Image" + }, + "NAME": { + "LABEL": "Your full name", + "ERROR": "Please enter a valid full name", + "PLACEHOLDER": "Please enter your full name" + }, + "DISPLAY_NAME": { + "LABEL": "Display name", + "ERROR": "Please enter a valid display name", + "PLACEHOLDER": "Please enter a display name, this would be displayed in conversations" + }, + "AVAILABILITY": { + "LABEL": "Availability", + "STATUSES_LIST": [ + "Online", + "Busy", + "Offline" + ] + }, + "EMAIL": { + "LABEL": "Your email address", + "ERROR": "Please enter a valid email address", + "PLACEHOLDER": "Please enter your email address, this would be displayed in conversations" + }, + "PASSWORD": { + "LABEL": "Password", + "ERROR": "Please enter a password of length 6 or more", + "PLACEHOLDER": "Please enter a new password" + }, + "PASSWORD_CONFIRMATION": { + "LABEL": "Confirm new password", + "ERROR": "Confirm password should match the password", + "PLACEHOLDER": "Please re-enter your password" + } + } + }, + "SIDEBAR_ITEMS": { + "CHANGE_AVAILABILITY_STATUS": "Change", + "CHANGE_ACCOUNTS": "Switch Account", + "SELECTOR_SUBTITLE": "Select an account from the following list", + "PROFILE_SETTINGS": "Profile Settings", + "LOGOUT": "Logout" + }, + "APP_GLOBAL": { + "TRIAL_MESSAGE": "days trial remaining.", + "TRAIL_BUTTON": "Buy Now" + }, + "COMPONENTS": { + "CODE": { + "BUTTON_TEXT": "Copy", + "COPY_SUCCESSFUL": "Code copied to clipboard successfully" + }, + "FILE_BUBBLE": { + "DOWNLOAD": "Download", + "UPLOADING": "अपलोड गर्दै..." + }, + "FORM_BUBBLE": { + "SUBMIT": "Submit" + } + }, + "CONFIRM_EMAIL": "Verifying...", + "SETTINGS": { + "INBOXES": { + "NEW_INBOX": "Add Inbox" + } + }, + "SIDEBAR": { + "CONVERSATIONS": "Conversations", + "REPORTS": "Reports", + "CONTACTS": "Contacts", + "SETTINGS": "Settings", + "HOME": "Home", + "AGENTS": "Agents", + "INBOXES": "Inboxes", + "NOTIFICATIONS": "Notifications", + "CANNED_RESPONSES": "Canned Responses", + "INTEGRATIONS": "Integrations", + "ACCOUNT_SETTINGS": "Account Settings", + "LABELS": "Labels", + "TEAMS": "Teams" + }, + "CREATE_ACCOUNT": { + "NEW_ACCOUNT": "New Account", + "SELECTOR_SUBTITLE": "Create a new account", + "API": { + "SUCCESS_MESSAGE": "Account created successfully", + "EXIST_MESSAGE": "Account already exists", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "FORM": { + "NAME": { + "LABEL": "Account Name", + "PLACEHOLDER": "Wayne Enterprises" + }, + "SUBMIT": "Submit" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/signup.json b/app/javascript/dashboard/i18n/locale/ne/signup.json new file mode 100644 index 000000000..6eaa5d646 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/signup.json @@ -0,0 +1,38 @@ +{ + "REGISTER": { + "TRY_WOOT": "Register an account", + "TITLE": "Register", + "TERMS_ACCEPT": "By signing up, you agree to our T & C and Privacy policy", + "ACCOUNT_NAME": { + "LABEL": "Account name", + "PLACEHOLDER": "Enter an account name. eg: Wayne Enterprises", + "ERROR": "Account name is too short" + }, + "FULL_NAME": { + "LABEL": "Full name", + "PLACEHOLDER": "Enter your full name. eg: Bruce Wayne", + "ERROR": "Full name is too short" + }, + "EMAIL": { + "LABEL": "Work email", + "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises", + "ERROR": "Email address is invalid" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACEHOLDER": "Password", + "ERROR": "Password is too short" + }, + "CONFIRM_PASSWORD": { + "LABEL": "Confirm Password", + "PLACEHOLDER": "Confirm Password", + "ERROR": "Password doesnot match" + }, + "API": { + "SUCCESS_MESSAGE": "Registration Successfull", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "SUBMIT": "Submit", + "HAVE_AN_ACCOUNT": "Already have an account?" + } +} diff --git a/app/javascript/dashboard/i18n/locale/ne/webhooks.json b/app/javascript/dashboard/i18n/locale/ne/webhooks.json new file mode 100644 index 000000000..347c96893 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ne/webhooks.json @@ -0,0 +1,5 @@ +{ + "WEBHOOKS_SETTINGS": { + "HEADER": "Webhook Settings" + } +} diff --git a/app/javascript/dashboard/i18n/locale/nl/chatlist.json b/app/javascript/dashboard/i18n/locale/nl/chatlist.json index d44463213..9457f267c 100644 --- a/app/javascript/dashboard/i18n/locale/nl/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/nl/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Received via email", "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", - "REPLY_TO_TWEET": "Reply to this tweet" + "REPLY_TO_TWEET": "Reply to this tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/nl/conversation.json b/app/javascript/dashboard/i18n/locale/nl/conversation.json index 5f7ceb9be..0b53c985c 100644 --- a/app/javascript/dashboard/i18n/locale/nl/conversation.json +++ b/app/javascript/dashboard/i18n/locale/nl/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Remove Selection", "DOWNLOAD": "Download", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Oplossen", "REOPEN_ACTION": "Heropenen", @@ -44,7 +45,8 @@ "TWEET": "Tweet", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Privéopmerking: alleen zichtbaar voor jou en je team", "CHANGE_STATUS": "Gespreksstatus veranderd", diff --git a/app/javascript/dashboard/i18n/locale/nl/generalSettings.json b/app/javascript/dashboard/i18n/locale/nl/generalSettings.json index 7df7773f4..289239b97 100644 --- a/app/javascript/dashboard/i18n/locale/nl/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/nl/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Naam", + "Phone Number", + "Gesprekken", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/nl/settings.json b/app/javascript/dashboard/i18n/locale/nl/settings.json index 70a7486f8..4e1b94a34 100644 --- a/app/javascript/dashboard/i18n/locale/nl/settings.json +++ b/app/javascript/dashboard/i18n/locale/nl/settings.json @@ -27,6 +27,7 @@ "NOTE": "Update hier uw e-mailvoorkeuren", "CONVERSATION_ASSIGNMENT": "E-mailberichten verzenden wanneer een gesprek aan mij is toegewezen", "CONVERSATION_CREATION": "E-mailberichten verzenden wanneer een nieuw gesprek is gemaakt", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Werk je pushberichtvoorkeuren hier bij", "CONVERSATION_ASSIGNMENT": "Stuur pushberichten wanneer een gesprek aan mij is toegewezen", "CONVERSATION_CREATION": "Stuur pushberichten wanneer een nieuw gesprek is aangemaakt", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "Je hebt pushberichten voor deze browser ingeschakeld.", "REQUEST_PUSH": "Pushberichten inschakelen" @@ -118,10 +120,12 @@ "HOME": "Startpagina", "AGENTS": "Medewerkers", "INBOXES": "Inboxen", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Standaard antwoorden", "INTEGRATIONS": "Integraties", "ACCOUNT_SETTINGS": "Accountinstellingen", - "LABELS": "Labelen" + "LABELS": "Labelen", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/no/agentMgmt.json b/app/javascript/dashboard/i18n/locale/no/agentMgmt.json new file mode 100644 index 000000000..a02049e06 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/agentMgmt.json @@ -0,0 +1,96 @@ +{ + "AGENT_MGMT": { + "HEADER": "Agenter", + "HEADER_BTN_TXT": "Legg til agent", + "LOADING": "Henter agentliste", + "SIDEBAR_TXT": "

Agenter

En agent er en medlem i ditt kundeserivce-team.

Agenter vil ha mulighet til å se på og svare på henvendelser fra dine brukere. Listen viser alle agenter i din konto

Klikk på Legg til agent for å legge til agent. Agenten du legger til vil motta en e-post med en link for å bekrefte kontoen deres. Etter dette får de tilgang til Chatwoot og kan begynne å svare på henvendelser.

Tilgang til funksjonene i Chatwoot er basert på følgende roller.

Agent - Agenter med denne rollen har bare tilgang til innbokser, rapporter og samtaler. De kan tildele samtaler til seg selv og andre agenter, og markere samtaler som løst.

Administrator - En administrator har tilgang til alle funksjoner og innstillinger i Chatwoot, i tillegg til det en agent vil ha tilgang til.

", + "AGENT_TYPES": { + "ADMINISTRATOR": "Administrator", + "AGENT": "Agent" + }, + "LIST": { + "404": "Det er ingen agenter tilknyttet denne kontoen", + "TITLE": "Administrer agentene i ditt team", + "DESC": "Du kan legge til eller fjerne agenter i ditt team.", + "NAME": "Navn", + "EMAIL": "E-POST", + "STATUS": "Satus", + "ACTIONS": "Handlinger", + "VERIFIED": "Verifisert", + "VERIFICATION_PENDING": "Verifisering venter" + }, + "ADD": { + "TITLE": "Legg til agent i teamet ditt", + "DESC": "Du kan legge til personer som vil kunne håndtere støtte for dine innbokser.", + "CANCEL_BUTTON_TEXT": "Avbryt", + "FORM": { + "NAME": { + "LABEL": "Agent navn", + "PLACEHOLDER": "Skriv inn navnet til agenten" + }, + "AGENT_TYPE": { + "LABEL": "Rolle", + "PLACEHOLDER": "Velg en rolle", + "ERROR": "En rolle er påkrevd" + }, + "EMAIL": { + "LABEL": "E-postadresse", + "PLACEHOLDER": "Skriv inn en agent sin e-postadresse" + }, + "SUBMIT": "Legg til agent" + }, + "API": { + "SUCCESS_MESSAGE": "Agent ble lagt til", + "EXIST_MESSAGE": "E-postadressen til agenten er allerede i bruk, prøv en annen e-postadresse", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere" + } + }, + "DELETE": { + "BUTTON_TEXT": "Slett", + "API": { + "SUCCESS_MESSAGE": "Agenten ble slettet", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere" + }, + "CONFIRM": { + "TITLE": "Bekreft sletting", + "MESSAGE": "Er du sikker på at du vil slette ", + "YES": "Ja, slett ", + "NO": "Nei, behold " + } + }, + "EDIT": { + "TITLE": "Rediger agent", + "FORM": { + "NAME": { + "LABEL": "Agent navn", + "PLACEHOLDER": "Skriv inn navnet til agenten" + }, + "AGENT_TYPE": { + "LABEL": "Rolle", + "PLACEHOLDER": "Velg en rolle", + "ERROR": "En rolle er påkrevd" + }, + "EMAIL": { + "LABEL": "E-postadresse", + "PLACEHOLDER": "Skriv inn en agent sin e-postadresse" + }, + "SUBMIT": "Rediger agent" + }, + "BUTTON_TEXT": "Rediger", + "CANCEL_BUTTON_TEXT": "Avbryt", + "API": { + "SUCCESS_MESSAGE": "Agenten ble oppdatert", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere" + }, + "PASSWORD_RESET": { + "ADMIN_RESET_BUTTON": "Tilbakestill passord", + "ADMIN_SUCCESS_MESSAGE": "En e-post med instruksjoner for å tilbakestille passordet er sendt til agenten", + "SUCCESS_MESSAGE": "Passordet til agenten ble tilbakestilt", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere" + } + }, + "SEARCH": { + "NO_RESULTS": "Ingen agenter funnet." + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/no/cannedMgmt.json new file mode 100644 index 000000000..e0b6e9218 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/cannedMgmt.json @@ -0,0 +1,76 @@ +{ + "CANNED_MGMT": { + "HEADER": "Forhåndslagde svar", + "HEADER_BTN_TXT": "Legg til svar", + "LOADING": "Henter forhåndslagde svar", + "SEARCH_404": "Det finnes ingen elementer som samsvarer med denne spørringen", + "SIDEBAR_TXT": "

Forhåndslagde svar

Forhåndslagde svar er forhåndsdefinerte maler som kan bli brukt til å sende ut et raskt svar på en samtale.

For å lage et forhåndslagd svar, klikk på Legg til svar. Du kan også redigere eller slette et eksisterende forhåndslagd svar ved å klikke på rediger eller slett

Forhåndslagde svar kan brukes ved hjelp av Korte koder. Agenter kan få tilgang til svar mens de er i en samtale ved å skrive '/' etterfulgt av den korte koden.

", + "LIST": { + "404": "Det er ingen forhåndslagde svar tilgjengelig i denne kontoen.", + "TITLE": "Administrer forhåndslagde svar", + "DESC": "Forhåndslagde svar er predefinerte maler som kan brukes for å raskt sende ut svar til henvendelser.", + "TABLE_HEADER": [ + "Kort kode", + "Innhold", + "Handlinger" + ] + }, + "ADD": { + "TITLE": "Legg til svar", + "DESC": "Forhåndslagde svar er predefinerte maler som kan brukes for å raskt sende ut svar til henvendelser.", + "CANCEL_BUTTON_TEXT": "Avbryt", + "FORM": { + "SHORT_CODE": { + "LABEL": "Kort kode", + "PLACEHOLDER": "Angi en kort kode", + "ERROR": "Kort kode kreves" + }, + "CONTENT": { + "LABEL": "Innhold", + "PLACEHOLDER": "Angi en kort kode", + "ERROR": "Innhold er påkrevd" + }, + "SUBMIT": "Send" + }, + "API": { + "SUCCESS_MESSAGE": "Forhåndslagd svar ble lagt til", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere" + } + }, + "EDIT": { + "TITLE": "Rediger forhåndslagd svar", + "CANCEL_BUTTON_TEXT": "Avbryt", + "FORM": { + "SHORT_CODE": { + "LABEL": "Kort kode", + "PLACEHOLDER": "Angi en kort kode", + "ERROR": "Kort kode kreves" + }, + "CONTENT": { + "LABEL": "Innhold", + "PLACEHOLDER": "Angi en kort kode", + "ERROR": "Innhold er påkrevd" + }, + "SUBMIT": "Send" + }, + "BUTTON_TEXT": "Rediger", + "API": { + "SUCCESS_MESSAGE": "Forhåndslagd svar ble oppdatert", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere" + } + }, + "DELETE": { + "BUTTON_TEXT": "Slett", + "API": { + "SUCCESS_MESSAGE": "Forhåndslagd svar ble slettet", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere" + }, + "CONFIRM": { + "TITLE": "Bekreft sletting", + "MESSAGE": "Er du sikker på at du vil slette ", + "YES": "Ja, slett ", + "NO": "Nei, behold " + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/chatlist.json b/app/javascript/dashboard/i18n/locale/no/chatlist.json new file mode 100644 index 000000000..1d021333f --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/chatlist.json @@ -0,0 +1,85 @@ +{ + "CHAT_LIST": { + "LOADING": "Henter samtaler", + "LOAD_MORE_CONVERSATIONS": "Last inn flere samtaler", + "EOF": "Alle samtaler lastet 🎉", + "LIST": { + "404": "Det er ingen aktive samtaler i denne gruppen." + }, + "TAB_HEADING": "Samtaler", + "SEARCH": { + "INPUT": "Søk etter personer, samtaler, lagrede svar .." + }, + "STATUS_TABS": [ + { + "NAME": "Åpne", + "KEY": "openCount" + }, + { + "NAME": "Løst", + "KEY": "allConvCount" + } + ], + "ASSIGNEE_TYPE_TABS": [ + { + "NAME": "Mine", + "KEY": "me", + "COUNT_KEY": "mineCount" + }, + { + "NAME": "Ikke tildelt", + "KEY": "unassigned", + "COUNT_KEY": "unAssignedCount" + }, + { + "NAME": "Alle", + "KEY": "all", + "COUNT_KEY": "allCount" + } + ], + "CHAT_STATUS_ITEMS": [ + { + "TEXT": "Åpne", + "VALUE": "open" + }, + { + "TEXT": "Løst", + "VALUE": "resolved" + }, + { + "TEXT": "Bot", + "VALUE": "bot" + } + ], + "ATTACHMENTS": { + "image": { + "ICON": "ion-image", + "CONTENT": "Bildemelding" + }, + "audio": { + "ICON": "ion-volume-high", + "CONTENT": "Lydmelding" + }, + "video": { + "ICON": "ion-ios-videocam", + "CONTENT": "Video beskjed" + }, + "file": { + "ICON": "ion-document", + "CONTENT": "Vedlegg" + }, + "location": { + "ICON": "ion-ios-location", + "CONTENT": "Plassering" + }, + "fallback": { + "ICON": "ion-link", + "CONTENT": "har delt en URL" + } + }, + "RECEIVED_VIA_EMAIL": "Mottatt via e-post", + "VIEW_TWEET_IN_TWITTER": "Vis tweet i Twitter", + "REPLY_TO_TWEET": "Svar på denne tweeten", + "NO_MESSAGES": "Ingen meldinger" + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/contact.json b/app/javascript/dashboard/i18n/locale/no/contact.json new file mode 100644 index 000000000..a44e2ac23 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/contact.json @@ -0,0 +1,115 @@ +{ + "CONTACT_PANEL": { + "NOT_AVAILABLE": "Ikke tilgjengelig", + "EMAIL_ADDRESS": "E-postadresse", + "PHONE_NUMBER": "Telefonnummer", + "COPY_SUCCESSFUL": "Kopiert til utklippstavle", + "COMPANY": "Firma", + "LOCATION": "Plassering", + "CONVERSATION_TITLE": "Samtaledetaljer", + "BROWSER": "Nettleser", + "OS": "Operativsystem", + "INITIATED_FROM": "Startet fra", + "INITIATED_AT": "Started", + "IP_ADDRESS": "IP Adresse", + "CONVERSATIONS": { + "NO_RECORDS_FOUND": "Det er ingen tidligere samtaler knyttet til denne kontakten.", + "TITLE": "Tidligere samtaler" + }, + "CUSTOM_ATTRIBUTES": { + "TITLE": "Egendefinerte verdier" + }, + "LABELS": { + "TITLE": "Samtaleetiketter", + "MODAL": { + "TITLE": "Etiketter for", + "ACTIVE_LABELS": "Etiketter lagt til i samtalen", + "INACTIVE_LABELS": "Etiketter tilgjengelig i kontoen", + "REMOVE": "Klikk på X ikonet for å fjerne etiketten", + "ADD": "Klikk på + ikonet for å legge til etiketten", + "UPDATE_BUTTON": "Oppdater etiketter", + "UPDATE_ERROR": "Kunne ikke oppdatere etiketter, prøv på nytt." + }, + "NO_LABELS_TO_ADD": "Det er ingen flere etiketter definert i kontoen.", + "NO_AVAILABLE_LABELS": "Det er ingen etiketter lagt til i denne samtalen." + }, + "MUTE_CONTACT": "Demp samtale", + "UNMUTE_CONTACT": "Skru av demping", + "MUTED_SUCCESS": "Denne samtalen er dempet i 6 timer", + "UNMUTED_SUCCESS": "Demping er skrudd av for samtalen", + "SEND_TRANSCRIPT": "Send kopi av samtale", + "EDIT_LABEL": "Rediger" + }, + "EDIT_CONTACT": { + "BUTTON_LABEL": "Rediger kontakt", + "TITLE": "Rediger kontakt", + "DESC": "Rediger kontaktopplysninger", + "FORM": { + "SUBMIT": "Send", + "CANCEL": "Avbryt", + "AVATAR": { + "LABEL": "Kontaktens profilbilde" + }, + "NAME": { + "PLACEHOLDER": "Angi hele navnet på kontakten", + "LABEL": "Fullt navn" + }, + "BIO": { + "PLACEHOLDER": "Skriv beskrivelse for kontakten", + "LABEL": "Beskrivelse" + }, + "EMAIL_ADDRESS": { + "PLACEHOLDER": "Skriv inn e-postadressen til kontakten", + "LABEL": "E-postadresse" + }, + "PHONE_NUMBER": { + "PLACEHOLDER": "Skriv inn telefonnummeret til kontakten", + "LABEL": "Telefonnummer" + }, + "LOCATION": { + "PLACEHOLDER": "Angi plasseringen til kontakten", + "LABEL": "Plassering" + }, + "COMPANY_NAME": { + "PLACEHOLDER": "Skriv inn firmanavn", + "LABEL": "Firmaets navn" + }, + "SOCIAL_PROFILES": { + "FACEBOOK": { + "PLACEHOLDER": "Skriv inn Facebook brukernavn", + "LABEL": "Facebook" + }, + "TWITTER": { + "PLACEHOLDER": "Skriv inn Twitter brukernavn", + "LABEL": "Twitter" + }, + "LINKEDIN": { + "PLACEHOLDER": "Skriv inn LinkedIn brukernavn", + "LABEL": "LinkedIn" + }, + "GITHUB": { + "PLACEHOLDER": "Skriv inn Github brukernavn", + "LABEL": "Github" + } + } + }, + "SUCCESS_MESSAGE": "Kontakten er oppdatert", + "CONTACT_ALREADY_EXIST": "Denne e-postadressen er allerede i bruk av en annen kontakt.", + "ERROR_MESSAGE": "Det oppstod en feil under oppdatering av kontakten. Prøv igjen" + }, + "CONTACTS_PAGE": { + "HEADER": "Kontakter", + "SEARCH_BUTTON": "Søk", + "SEARCH_INPUT_PLACEHOLDER": "Søk etter kontakter", + "LIST": { + "LOADING_MESSAGE": "Laster inn kontakter...", + "404": "Ingen kontakter samsvarer med søket ditt 🔍", + "TABLE_HEADER": [ + "Navn", + "Telefonnummer", + "Samtaler", + "Siste kontakt" + ] + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/conversation.json b/app/javascript/dashboard/i18n/locale/no/conversation.json new file mode 100644 index 000000000..c0c523a73 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/conversation.json @@ -0,0 +1,78 @@ +{ + "CONVERSATION": { + "404": "Velg en samtale fra venstre panel", + "NO_MESSAGE_1": "Å nei! Ser ut til at det ikke er noen meldinger fra kunder i innboksen din.", + "NO_MESSAGE_2": " for å sende en melding til siden din!", + "NO_INBOX_1": "Tjohei! Det ser ut til at du ikke har lagt til noen innbokser enda.", + "NO_INBOX_2": " for å komme i gang", + "NO_INBOX_AGENT": "Uff da! Det ser ut til at du ikke er en del av innboksen. Kontakt systemansvarlig", + "SEARCH_MESSAGES": "Søk etter meldinger i samtaler", + "SEARCH": { + "TITLE": "Søk i meldinger", + "LOADING_MESSAGE": "Knuser data...", + "PLACEHOLDER": "Skriv tekst for å søke etter meldinger", + "NO_MATCHING_RESULTS": "Det finnes ingen meldinger som samsvarer med søket." + }, + "UNREAD_MESSAGES": "Uleste meldinger", + "UNREAD_MESSAGE": "Ulest melding", + "CLICK_HERE": "Klikk her", + "LOADING_INBOXES": "Laster innbokser", + "LOADING_CONVERSATIONS": "Laster samtaler", + "CANNOT_REPLY": "Du kan ikke svare på grunn av", + "24_HOURS_WINDOW": "24-timers meldingsrestriksjon", + "LAST_INCOMING_TWEET": "Du svarer på den siste innkommende tweet", + "REPLYING_TO": "Du svarer til:", + "REMOVE_SELECTION": "Fjern utvalget", + "DOWNLOAD": "Last ned", + "UPLOADING_ATTACHMENTS": "Laster opp vedlegg...", + "NO_RESPONSE": "No response", + "HEADER": { + "RESOLVE_ACTION": "Løs", + "REOPEN_ACTION": "Gjenåpne", + "OPEN": "Mer", + "CLOSE": "Lukk", + "DETAILS": "detaljer" + }, + "FOOTER": { + "MSG_INPUT": "Shift + enter for ny linje. Start med '/' for å velge et forhåndslagd svar.", + "PRIVATE_MSG_INPUT": "Skift + enter for ny linje. Dette vil kun være synlig for agenter" + }, + "REPLYBOX": { + "REPLY": "Svar", + "PRIVATE_NOTE": "Privat notat", + "SEND": "Send", + "CREATE": "Legg til notat", + "TWEET": "Tweet", + "TIP_FORMAT_ICON": "Vis rik tekstredigering", + "TIP_EMOJI_ICON": "Vis emoji-velger", + "TIP_ATTACH_ICON": "Legg ved filer", + "ENTER_TO_SEND": "Trykk enter for å sende" + }, + "VISIBLE_TO_AGENTS": "Privat notat: bare synlig for deg og ditt team", + "CHANGE_STATUS": "Samtalestatus er endret", + "CHANGE_AGENT": "Tildelt agent er endret", + "SENT_BY": "Sendt av:", + "ASSIGNMENT": { + "SELECT_AGENT": "Velg agent", + "REMOVE": "Fjern", + "ASSIGN": "Tildel" + } + }, + "EMAIL_TRANSCRIPT": { + "TITLE": "Send kopi av samtale", + "DESC": "Send en kopi av samtalen til den angitte e-postadressen", + "SUBMIT": "Send", + "CANCEL": "Avbryt", + "SEND_EMAIL_SUCCESS": "Kopi av samtalen ble sendt", + "SEND_EMAIL_ERROR": "Det oppstod en feil. Prøv igjen", + "FORM": { + "SEND_TO_CONTACT": "Send kopi av samtalen til kunden", + "SEND_TO_AGENT": "Send kopi av samtalen til den tildelte agenten", + "SEND_TO_OTHER_EMAIL_ADDRESS": "Send kopi av samtalen til en annen e-postadresse", + "EMAIL": { + "PLACEHOLDER": "Skriv inn en e-postadresse", + "ERROR": "Vennligst skriv inn en gyldig e-postadresse" + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/generalSettings.json b/app/javascript/dashboard/i18n/locale/no/generalSettings.json new file mode 100644 index 000000000..0a217efa4 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/generalSettings.json @@ -0,0 +1,75 @@ +{ + "GENERAL_SETTINGS": { + "TITLE": "Kontoinnstillinger", + "SUBMIT": "Oppdater innstillinger", + "BACK": "Tilbake", + "UPDATE": { + "ERROR": "Kunne ikke oppdatere innstillinger, prøv igjen!", + "SUCCESS": "Innstillinger ble oppdatert" + }, + "FORM": { + "ERROR": "Vennligst fiks skjemafeil", + "GENERAL_SECTION": { + "TITLE": "Generelle innstillinger", + "NOTE": "" + }, + "NAME": { + "LABEL": "Kontonavn", + "PLACEHOLDER": "Ditt kontonavn", + "ERROR": "Vennligst oppgi et gyldig kontonavn" + }, + "LANGUAGE": { + "LABEL": "Nettstedspråk (Beta)", + "PLACEHOLDER": "Ditt kontonavn", + "ERROR": "" + }, + "DOMAIN": { + "LABEL": "Innkommende e-postdomene", + "PLACEHOLDER": "Domenet hvor du vil motta e-posten", + "ERROR": "" + }, + "SUPPORT_EMAIL": { + "LABEL": "Support e-post", + "PLACEHOLDER": "Ditt firmas support e-post", + "ERROR": "" + }, + "AUTO_RESOLVE_DURATION": { + "LABEL": "Antall dager en sak skal løses automatisk hvis det ikke har vært aktivitet", + "PLACEHOLDER": "30", + "ERROR": "Angi en gyldig varighet for når en sak skal løses automatisk (minimum 1 dag)" + }, + "FEATURES": { + "INBOUND_EMAIL_ENABLED": "Samtalekontinuitet med e-post er aktivert for din konto.", + "CUSTOM_EMAIL_DOMAIN_ENABLED": "Du kan motta e-post i ditt egendefinerte domene nå." + } + }, + "UPDATE_CHATWOOT": "En oppdatering av %{latestChatwootVersion} for Chatwoot er tilgjengelig. Oppdater din instans." + }, + "FORMS": { + "MULTISELECT": { + "ENTER_TO_SELECT": "Trykk enter for å velge", + "ENTER_TO_REMOVE": "Trykk enter for å fjerne", + "SELECT_ONE": "Velg en" + } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Varsler", + "MARK_ALL_DONE": "Merk alle som ferdige", + "LIST": { + "LOADING_MESSAGE": "Laster varsler...", + "404": "Ingen varsler", + "TABLE_HEADER": [ + "Navn", + "Telefonnummer", + "Samtaler", + "Siste kontakt" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "Ny samtale", + "conversation_assignment": "Samtale tildelt", + "assigned_conversation_new_message": "Ny melding", + "conversation_mention": "Omtale" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json new file mode 100644 index 000000000..5f68c594d --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json @@ -0,0 +1,255 @@ +{ + "INBOX_MGMT": { + "HEADER": "Innbokser", + "SIDEBAR_TXT": "

Innboks

Når du kobler til et nettsted eller en facebook-side til Chatwoot blir den kalt en Innboks. Du kan ha ubegrensede innbokser i din Chatwoot-konto.

Klikk på Legg til innboks for å koble sammen en nettside eller en facebook-side.

I oversikten kan du se alle samtalene fra innboksene på et sted og svare på de i samtaler-fanen.

Du kan også se samtaler for hver enkelt innboks ved å klikke på innboksen på venstre siden av oversikten.

", + "LIST": { + "404": "Det er ingen innbokser tilknyttet denne kontoen." + }, + "CREATE_FLOW": [ + { + "title": "Velg kanal", + "route": "settings_inbox_new", + "body": "Velg tilbyderen du vil integrere med Chatwoot." + }, + { + "title": "Opprett innboks", + "route": "settings_inboxes_page_channel", + "body": "Autoriser din konto og opprett en innboks." + }, + { + "title": "Legg til agenter", + "route": "settings_inboxes_add_agents", + "body": "Legg agenter til i den opprettede innboksen." + }, + { + "title": "Voila!", + "route": "settings_inbox_finish", + "body": "Klar - ferdig - gå!" + } + ], + "ADD": { + "FB": { + "HELP": "PS: Ved å logge inn får vi bare tilgang til meldingene til siden. Dine private meldinger vil aldri bli lest av Chatwoot.", + "CHOOSE_PAGE": "Velg side", + "CHOOSE_PLACEHOLDER": "Velg en side fra listen", + "INBOX_NAME": "Navn på innboks", + "ADD_NAME": "Legge til et navn på innboksen din", + "PICK_NAME": "Velg et navn din innboks", + "PICK_A_VALUE": "Velg en verdi" + }, + "TWITTER": { + "HELP": "For å legge til din Twitter-profil som kanal, må du autorisere din Twitter-profil ved å klikke på 'Logg inn med Twitter' " + }, + "WEBSITE_CHANNEL": { + "TITLE": "Nettsidekanal", + "DESC": "Opprett en kanal for nettstedet ditt og begynn å hjelpe kundene dine via nettstedswidgeten.", + "LOADING_MESSAGE": "Oppretter nettstedskanal", + "CHANNEL_AVATAR": { + "LABEL": "Kanal profilbilde" + }, + "CHANNEL_NAME": { + "LABEL": "Nettstedsnavn", + "PLACEHOLDER": "Angi navnet på nettsiden (f. eks.: Acme Inc)" + }, + "CHANNEL_DOMAIN": { + "LABEL": "Nettstedets domene", + "PLACEHOLDER": "Angi URL på nettsiden (f. eks.: acme.no)" + }, + "CHANNEL_WELCOME_TITLE": { + "LABEL": "Velkomsttittel", + "PLACEHOLDER": "Tjohei!" + }, + "CHANNEL_WELCOME_TAGLINE": { + "LABEL": "Velkomsthilsen undertittel", + "PLACEHOLDER": "Det skal være lett å kontakte oss. Spør oss om hva som helst, eller del din tilbakemelding." + }, + "CHANNEL_GREETING_MESSAGE": { + "LABEL": "Kanalhilsen", + "PLACEHOLDER": "Acme AS pleier vanligvis å svare i løpet av noen timer." + }, + "CHANNEL_GREETING_TOGGLE": { + "LABEL": "Aktiver kanalhilsen", + "HELP_TEXT": "Send en velkomstmelding til brukeren når hen starter samtalen.", + "ENABLED": "Aktivert", + "DISABLED": "Deaktivert" + }, + "REPLY_TIME": { + "TITLE": "Angi svartid", + "IN_A_FEW_MINUTES": "Om noen få minutter", + "IN_A_FEW_HOURS": "Om noen få timer", + "IN_A_DAY": "Om en dag", + "HELP_TEXT": "Denne svartiden vil bli vist i live chat widgeten" + }, + "WIDGET_COLOR": { + "LABEL": "Widget farge", + "PLACEHOLDER": "Oppdater fargen brukt i widgeten" + }, + "SUBMIT_BUTTON": "Opprett innboks" + }, + "TWILIO": { + "TITLE": "Twilio SMS/Whatsapp kanal", + "DESC": "Integrer Twilio for å støtte kundene dine via SMS eller Whatsapp.", + "ACCOUNT_SID": { + "LABEL": "Konto-SID", + "PLACEHOLDER": "Skriv inn din Twilio konto-SID", + "ERROR": "Dette feltet er obligatorisk" + }, + "CHANNEL_TYPE": { + "LABEL": "Kanaltype", + "ERROR": "Velg din kanaltype" + }, + "AUTH_TOKEN": { + "LABEL": "Autoriseringstoken", + "PLACEHOLDER": "Vennligst skriv inn din Twilio autoriseringstoken", + "ERROR": "Dette feltet er obligatorisk" + }, + "CHANNEL_NAME": { + "LABEL": "Kanalnavn", + "PLACEHOLDER": "Vennligst skriv inn et kanalnavn", + "ERROR": "Dette feltet er obligatorisk" + }, + "PHONE_NUMBER": { + "LABEL": "Telefonnummer", + "PLACEHOLDER": "Vennligst angi telefonnummeret som meldinger skal sendes fra.", + "ERROR": "Skriv inn en gyldig verdi. Telefonnummeret skal starte med `+`-tegn." + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "Du må konfigurere callback URL for meldinger med URLen nevnt her." + }, + "SUBMIT_BUTTON": "Opprett Twilio-kanal", + "API": { + "ERROR_MESSAGE": "Vi kunne ikke godkjenne Twilio legitimasjonsopplysningene, vennligst prøv igjen" + } + }, + "API_CHANNEL": { + "TITLE": "API Kanal", + "DESC": "Integrer med en API-kanal for å støtte dine kunder.", + "CHANNEL_NAME": { + "LABEL": "Kanalnavn", + "PLACEHOLDER": "Vennligst skriv inn et kanalnavn", + "ERROR": "Dette feltet er obligatorisk" + }, + "WEBHOOK_URL": { + "LABEL": "Webhook URL", + "SUBTITLE": "Konfigurere nettadressen du vil motta callbacks fra hendelser.", + "PLACEHOLDER": "Webhook URL" + }, + "SUBMIT_BUTTON": "Opprett API-kanal", + "API": { + "ERROR_MESSAGE": "Vi klarte ikke å lagre API-kanalen" + } + }, + "EMAIL_CHANNEL": { + "TITLE": "E-postkanal", + "DESC": "Integrer din e-postinnboks.", + "CHANNEL_NAME": { + "LABEL": "Kanalnavn", + "PLACEHOLDER": "Vennligst skriv inn et kanalnavn", + "ERROR": "Dette feltet er obligatorisk" + }, + "EMAIL": { + "LABEL": "E-post", + "SUBTITLE": "E-post der kundene dine sender deg henvendelser", + "PLACEHOLDER": "E-post" + }, + "SUBMIT_BUTTON": "Opprett e-postkanal", + "API": { + "ERROR_MESSAGE": "Vi kunne ikke lagre e-postkanalen" + }, + "FINISH_MESSAGE": "Begynn å videresende e-post til følgende e-postadresse." + }, + "AUTH": { + "TITLE": "Kanaler", + "DESC": "Vi støtter for tiden live chat widgets, Facebook sider, Twitter profiler og Whatsapp. Vi har flere plattformer er på vei som e-post, Telegram og Line. Disse vil lanseres snart." + }, + "AGENTS": { + "TITLE": "Agenter", + "DESC": "Her kan du legge til agenter for å administrere innboksen din. Bare de valgte agentene har tilgang til innboksen din. Agenter som ikke er en del av denne innboksen vil ikke kunne se eller svare på meldinger i denne innboksen når de logger inn.
PS: Dersom du som administrator trenger tilgang til alle innbokser, må du legge deg selv til som agent i alle innbokser du lager.", + "VALIDATION_ERROR": "Legg til minst én agent i den nye innboksen", + "PICK_AGENTS": "Velg agenter for innboksen" + }, + "DETAILS": { + "TITLE": "Innboksdetaljer", + "DESC": "Fra listen under, velg facebook-siden du vil koble til Chatwoot. Du kan også gi innboksen et egendefinert navn for bedre identifisering." + }, + "FINISH": { + "TITLE": "Den satt!", + "DESC": "Du er ferdig med å integrere din facebook-side med Chatwoot. Neste gang en kunde sender en melding fra siden din vil samtalen vises automatisk i innboksen din.
Vi gir deg også et widget skript som du enkelt kan legge til på nettstedet ditt. Når dette er direkte på din nettside kan kunder sende deg meldinger fra nettstedet ditt uten hjelp av eksterne verktøy og samtalen vil vises her, i Chatwoot.
Kult, eller hva? Vel, vi prøver :)" + } + }, + "DETAILS": { + "LOADING_FB": "Autentiserer deg med Facebook...", + "ERROR_FB_AUTH": "Noe gikk galt, oppdater siden...", + "CREATING_CHANNEL": "Oppretter innboksen din...", + "TITLE": "Konfigurer innboksdetaljer", + "DESC": "" + }, + "AGENTS": { + "BUTTON_TEXT": "Legg til agenter", + "ADD_AGENTS": "Legger til agenter i innboksen..." + }, + "FINISH": { + "TITLE": "Innboksen din er klar!", + "MESSAGE": "Du kan nå kommunisere med kundene dine via den nye kanalen. Til lykke med kundeservicen!", + "BUTTON_TEXT": "Ta meg dit", + "WEBSITE_SUCCESS": "Du har nå fullført opprettingen av nettstedskanalen. Kopier koden nedenfor og lim den inn på nettstedet. Neste gang en kunde bruker live-chatten vil samtalen vises automatisk i innboksen din." + }, + "REAUTH": "Reautoriser", + "VIEW": "Vis", + "EDIT": { + "API": { + "SUCCESS_MESSAGE": "Innboksinnstillinger ble oppdatert", + "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Autotildeling ble oppdatert", + "ERROR_MESSAGE": "Kunne ikke oppdatere widget-fargen. Prøv igjen senere." + }, + "AUTO_ASSIGNMENT": { + "ENABLED": "Aktivert", + "DISABLED": "Deaktivert" + } + }, + "DELETE": { + "BUTTON_TEXT": "Slett", + "CONFIRM": { + "TITLE": "Bekreft sletting", + "MESSAGE": "Er du sikker på at du vil slette ", + "YES": "Ja, slett ", + "NO": "Nei, behold " + }, + "API": { + "SUCCESS_MESSAGE": "Innboksen ble slettet", + "ERROR_MESSAGE": "Kan ikke slette innboks. Prøv igjen senere." + } + }, + "TABS": { + "SETTINGS": "Innstillinger", + "COLLABORATORS": "Samarbeidspartnere", + "CONFIGURATION": "Konfigurasjon" + }, + "SETTINGS": "Innstillinger", + "FEATURES": { + "LABEL": "Funksjoner", + "DISPLAY_FILE_PICKER": "Vis filvelger i widget", + "DISPLAY_EMOJI_PICKER": "Vis emoji-velger i widget" + }, + "SETTINGS_POPUP": { + "MESSENGER_HEADING": "Kopi av samtale", + "MESSENGER_SUB_HEAD": "Plasser denne knappen innenfor body-taggen", + "INBOX_AGENTS": "Agenter", + "INBOX_AGENTS_SUB_TEXT": "Legg til eller fjern agenter fra denne innboksen", + "UPDATE": "Oppdater", + "AUTO_ASSIGNMENT": "Aktiver autotilordning", + "INBOX_UPDATE_TITLE": "Innboksinnstillinger", + "INBOX_UPDATE_SUB_TEXT": "Oppdater innboksinnstillinger", + "AUTO_ASSIGNMENT_SUB_TEXT": "Aktiver eller deaktiver automatisk tildeling av nye samtaler til agenter som er lagt til i denne innboksen.", + "HMAC_VERIFICATION": "Brukeridentitetsvalidering", + "HMAC_DESCRIPTION": "For å bekrefte brukerens identitet vil SDK-en la deg legge inn en `identity_hash` for hver bruker. Du kan generere HMAC ved å benytte 'sha256' med nøkkelen vist her." + }, + "FACEBOOK_REAUTHORIZE": { + "TITLE": "Reautoriser", + "SUBTITLE": "Facebook-tilkoblingen din er utløpt, koble til Facebook-siden din for å fortsette tjenester", + "MESSAGE_SUCCESS": "Ny tilkobling vellykket", + "MESSAGE_ERROR": "Det oppstod en feil. Prøv igjen" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/integrations.json b/app/javascript/dashboard/i18n/locale/no/integrations.json new file mode 100644 index 000000000..6af20dca2 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/integrations.json @@ -0,0 +1,61 @@ +{ + "INTEGRATION_SETTINGS": { + "HEADER": "Integrasjoner", + "WEBHOOK": { + "TITLE": "Webhook", + "CONFIGURE": "Konfigurer", + "HEADER": "Webhook-innstillinger", + "HEADER_BTN_TXT": "Legg til ny webhook", + "LOADING": "Henter tilknyttede webhooks", + "SEARCH_404": "Det finnes ingen elementer som samsvarer med denne spørringen", + "SIDEBAR_TXT": "

Webhooks

Webhooks er HTTP callbacks, som kan defineres for hver konto. De utløses av hendelser som opprettelse av meldinger i Chatwoot. Du kan opprette mer enn en webhook for denne kontoen.

For å opprette en webhook, klikk på Legg til ny webhook. Du kan også fjerne en eksisterende webhook ved å klikke på slett.

", + "LIST": { + "404": "Det er ingen webhook-er konfigurert for denne kontoen.", + "TITLE": "Administrer webhooks", + "TABLE_HEADER": [ + "Webhook endepunkt", + "Handlinger" + ] + }, + "ADD": { + "CANCEL": "Avbryt", + "TITLE": "Legg til ny webhook", + "DESC": "Webhook-hendelser gir deg sanntidsinformasjon om hva som skjer i din Chatwoot-konto. Skriv inn en gyldig nettadresse for å konfigurere en callback.", + "FORM": { + "END_POINT": { + "LABEL": "Webhook URL", + "PLACEHOLDER": "Eksempel: https://example/api/webhook", + "ERROR": "Vennligst skriv inn en gyldig URL" + }, + "SUBMIT": "Opprett webhook" + }, + "API": { + "SUCCESS_MESSAGE": "Webhook ble lagt til", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere" + } + }, + "DELETE": { + "BUTTON_TEXT": "Slett", + "API": { + "SUCCESS_MESSAGE": "Webhook ble slettet", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere" + }, + "CONFIRM": { + "TITLE": "Bekreft sletting", + "MESSAGE": "Er du sikker på at du vil slette ", + "YES": "Ja, slett ", + "NO": "Nei, behold den" + } + } + }, + "DELETE": { + "BUTTON_TEXT": "Slett", + "API": { + "SUCCESS_MESSAGE": "Integrasjonen ble slettet" + } + }, + "CONNECT": { + "BUTTON_TEXT": "Koble til" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/no/labelsMgmt.json new file mode 100644 index 000000000..928a3502e --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/labelsMgmt.json @@ -0,0 +1,68 @@ +{ + "LABEL_MGMT": { + "HEADER": "Etiketter", + "HEADER_BTN_TXT": "Legg til etikett", + "LOADING": "Henter etiketter", + "SEARCH_404": "Det finnes ingen elementer som samsvarer med denne spørringen", + "SIDEBAR_TXT": "

Etiketter

hjelper deg med å kategorisere samtaler og prioritere dem. Du kan tilordne etiketter til en samtale fra sidepanelet.

Etiketter er knyttet til kontoen og kan brukes til å opprette egendefinerte arbeidsstrømmer i din organisasjon. Du kan tilordne egendefinert farge til en etikett- det gjør det enklere å identifisere etiketten. Du vil kunne vise etiketten på sidepanelet for å enkelt filtrere samtalene.

", + "LIST": { + "404": "Det er ingen etiketter tilgjengelig i denne kontoen.", + "TITLE": "Administrer etiketter", + "DESC": "Etiketter lar deg gruppere samtaler sammen.", + "TABLE_HEADER": [ + "Navn", + "Beskrivelse", + "Farge" + ] + }, + "FORM": { + "NAME": { + "LABEL": "Etikettens navn", + "PLACEHOLDER": "Etikettens navn", + "ERROR": "Etikettens navn må fylles ut" + }, + "DESCRIPTION": { + "LABEL": "Beskrivelse", + "PLACEHOLDER": "Etikettbeskrivelse" + }, + "COLOR": { + "LABEL": "Farge" + }, + "SHOW_ON_SIDEBAR": { + "LABEL": "Vis etikett i sidepanelet" + }, + "EDIT": "Rediger", + "CREATE": "Opprett", + "DELETE": "Slett", + "CANCEL": "Avbryt" + }, + "ADD": { + "TITLE": "Legg til etikett", + "DESC": "Etiketter lar deg gruppere samtaler sammen.", + "API": { + "SUCCESS_MESSAGE": "Etikett lagt til", + "ERROR_MESSAGE": "Det oppstod en feil. Prøv igjen" + } + }, + "EDIT": { + "TITLE": "Rediger etikett", + "API": { + "SUCCESS_MESSAGE": "Etiketten ble oppdatert", + "ERROR_MESSAGE": "Det oppstod en feil. Prøv igjen" + } + }, + "DELETE": { + "BUTTON_TEXT": "Slett", + "API": { + "SUCCESS_MESSAGE": "Etiketten ble slettet", + "ERROR_MESSAGE": "Det oppstod en feil. Prøv igjen" + }, + "CONFIRM": { + "TITLE": "Bekreft sletting", + "MESSAGE": "Er du sikker på at du vil slette ", + "YES": "Ja, slett ", + "NO": "Nei, behold " + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/login.json b/app/javascript/dashboard/i18n/locale/no/login.json new file mode 100644 index 000000000..d67b667d4 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/login.json @@ -0,0 +1,21 @@ +{ + "LOGIN": { + "TITLE": "Logg inn i Chatwoot", + "EMAIL": { + "LABEL": "E-post", + "PLACEHOLDER": "Eksempel: ola@nordmann.no" + }, + "PASSWORD": { + "LABEL": "Passord", + "PLACEHOLDER": "Passord" + }, + "API": { + "SUCCESS_MESSAGE": "Innlogging vellykket", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere", + "UNAUTH": "Brukernavn eller passord er feil. Prøv igjen" + }, + "FORGOT_PASSWORD": "Glemt passord?", + "CREATE_NEW_ACCOUNT": "Opprett ny konto", + "SUBMIT": "Logg inn" + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/report.json b/app/javascript/dashboard/i18n/locale/no/report.json new file mode 100644 index 000000000..97ca6b427 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/report.json @@ -0,0 +1,44 @@ +{ + "REPORT": { + "HEADER": "Rapporter", + "LOADING_CHART": "Laster inn diagramdata...", + "NO_ENOUGH_DATA": "Vi har ikke mottatt nok data for å generere rapporten, vennligst prøv igjen senere.", + "DOWNLOAD_AGENT_REPORTS": "Last ned agentrapporter", + "METRICS": { + "CONVERSATIONS": { + "NAME": "Samtaler", + "DESC": "(Totalt )" + }, + "INCOMING_MESSAGES": { + "NAME": "Innkommende meldinger", + "DESC": "(Totalt )" + }, + "OUTGOING_MESSAGES": { + "NAME": "Utgående meldinger", + "DESC": "(Totalt )" + }, + "FIRST_RESPONSE_TIME": { + "NAME": "Første svartid", + "DESC": "( Gj. sn. )" + }, + "RESOLUTION_TIME": { + "NAME": "Løsningstid", + "DESC": "( Gj. sn. )" + }, + "RESOLUTION_COUNT": { + "NAME": "Antall løsninger", + "DESC": "(Totalt )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Siste 7 dager" + }, + { + "id": 1, + "name": "Siste 30 dager" + } + ] + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/resetPassword.json b/app/javascript/dashboard/i18n/locale/no/resetPassword.json new file mode 100644 index 000000000..511938490 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/resetPassword.json @@ -0,0 +1,15 @@ +{ + "RESET_PASSWORD": { + "TITLE": "Tilbakestill passord", + "EMAIL": { + "LABEL": "E-post", + "PLACEHOLDER": "Skriv inn din e-post", + "ERROR": "Vennligst skriv inn en gyldig e-postadresse" + }, + "API": { + "SUCCESS_MESSAGE": "Link for å tilbakestille passordet ditt er sendt til e-postadressen din", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere" + }, + "SUBMIT": "Send" + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/setNewPassword.json b/app/javascript/dashboard/i18n/locale/no/setNewPassword.json new file mode 100644 index 000000000..82e90136c --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/setNewPassword.json @@ -0,0 +1,20 @@ +{ + "SET_NEW_PASSWORD": { + "TITLE": "Angi nytt passord", + "PASSWORD": { + "LABEL": "Passord", + "PLACEHOLDER": "Passord", + "ERROR": "Passordet er for kort" + }, + "CONFIRM_PASSWORD": { + "LABEL": "Bekreft passord", + "PLACEHOLDER": "Bekreft passord", + "ERROR": "Passordet stemmer ikke" + }, + "API": { + "SUCCESS_MESSAGE": "Passordet ble endret", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere" + }, + "SUBMIT": "Send" + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/settings.json b/app/javascript/dashboard/i18n/locale/no/settings.json new file mode 100644 index 000000000..d58c2c3a3 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/settings.json @@ -0,0 +1,146 @@ +{ + "PROFILE_SETTINGS": { + "LINK": "Brukerinnstillinger", + "TITLE": "Brukerinnstillinger", + "BTN_TEXT": "Oppdater profil", + "AFTER_EMAIL_CHANGED": "Din profil har blitt oppdatert, vennligst logg inn igjen ettersom din innloggingsinformasjon er endret", + "FORM": { + "AVATAR": "Profilbilde", + "ERROR": "Vennligst fiks skjemafeil", + "REMOVE_IMAGE": "Fjern", + "UPLOAD_IMAGE": "Last opp bilde", + "UPDATE_IMAGE": "Oppdater bilde", + "PROFILE_SECTION": { + "TITLE": "Profil", + "NOTE": "Din e-postadresse er din identitet og brukes til å logge inn." + }, + "PASSWORD_SECTION": { + "TITLE": "Passord", + "NOTE": "Oppdatering av passordet ditt nullstiller logger deg ut på andre enheter." + }, + "ACCESS_TOKEN": { + "TITLE": "Tilgangstoken", + "NOTE": "Dette tokenet kan brukes hvis du lager en API-basert integrasjon" + }, + "EMAIL_NOTIFICATIONS_SECTION": { + "TITLE": "E-postvarsler", + "NOTE": "Oppdater varslingsinnstillingene for e-post her", + "CONVERSATION_ASSIGNMENT": "Send e-postvarsler når en samtale er tildelt meg", + "CONVERSATION_CREATION": "Send e-postvarsler når en ny samtale opprettes", + "CONVERSATION_MENTION": "Send varsel på e-post når du er nevnt i en samtale", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send e-postvarsler når en ny melding opprettes i en tilordnet samtale" + }, + "API": { + "UPDATE_SUCCESS": "Dine varslingsinnstillinger er oppdatert", + "UPDATE_ERROR": "Det oppstod en feil under oppdatering av innstillingene. Prøv igjen" + }, + "PUSH_NOTIFICATIONS_SECTION": { + "TITLE": "Pushvarsler", + "NOTE": "Oppdater dine push-varslingsinnstillinger her", + "CONVERSATION_ASSIGNMENT": "Send push-varsler når en samtale er tildelt meg", + "CONVERSATION_CREATION": "Send push-varsler når en ny samtale opprettes", + "CONVERSATION_MENTION": "Send pushvarslinger når du er nevnt i en samtale", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push-varsler når en ny melding opprettes i en tilordnet samtale", + "HAS_ENABLED_PUSH": "Du har aktivert push-varsler for denne nettleseren.", + "REQUEST_PUSH": "Aktiver push-varsler" + }, + "PROFILE_IMAGE": { + "LABEL": "Profilbilde" + }, + "NAME": { + "LABEL": "Ditt fulle navn", + "ERROR": "Vennligst oppgi et gyldig navn", + "PLACEHOLDER": "Skriv inn fullt navn" + }, + "DISPLAY_NAME": { + "LABEL": "Visningsnavn", + "ERROR": "Vennligst oppgi et gyldig visningsnavn", + "PLACEHOLDER": "Skriv inn et visningsnavn, dette vil bli vist i samtaler" + }, + "AVAILABILITY": { + "LABEL": "Tilgjengelighet", + "STATUSES_LIST": [ + "Pålogget", + "Opptatt", + "Frakoblet" + ] + }, + "EMAIL": { + "LABEL": "Din e-postadresse", + "ERROR": "Vennligst skriv inn en gyldig e-postadresse", + "PLACEHOLDER": "Vennligst skriv inn din e-postadresse, dette vises i samtaler" + }, + "PASSWORD": { + "LABEL": "Passord", + "ERROR": "Skriv inn et passord som er 6 eller flere tegn langt", + "PLACEHOLDER": "Vennligst angi et nytt passord" + }, + "PASSWORD_CONFIRMATION": { + "LABEL": "Bekreft nytt passord", + "ERROR": "Det bekreftende passordet burde samsvare med passordet", + "PLACEHOLDER": "Oppgi ditt passord på nytt" + } + } + }, + "SIDEBAR_ITEMS": { + "CHANGE_AVAILABILITY_STATUS": "Endre", + "CHANGE_ACCOUNTS": "Bytt konto", + "SELECTOR_SUBTITLE": "Velg en konto fra følgende liste", + "PROFILE_SETTINGS": "Brukerinnstillinger", + "LOGOUT": "Logg ut" + }, + "APP_GLOBAL": { + "TRIAL_MESSAGE": "dager gjenværende av prøveperioden.", + "TRAIL_BUTTON": "Kjøp nå" + }, + "COMPONENTS": { + "CODE": { + "BUTTON_TEXT": "Kopier", + "COPY_SUCCESSFUL": "Koden er kopiert til utklippstavlen" + }, + "FILE_BUBBLE": { + "DOWNLOAD": "Last ned", + "UPLOADING": "Laster opp..." + }, + "FORM_BUBBLE": { + "SUBMIT": "Send" + } + }, + "CONFIRM_EMAIL": "Verifiserer...", + "SETTINGS": { + "INBOXES": { + "NEW_INBOX": "Legg til innboks" + } + }, + "SIDEBAR": { + "CONVERSATIONS": "Samtaler", + "REPORTS": "Rapporter", + "CONTACTS": "Kontakter", + "SETTINGS": "Innstillinger", + "HOME": "Hjem", + "AGENTS": "Agenter", + "INBOXES": "Innbokser", + "NOTIFICATIONS": "Varsler", + "CANNED_RESPONSES": "Forhåndslagde svar", + "INTEGRATIONS": "Integrasjoner", + "ACCOUNT_SETTINGS": "Kontoinnstillinger", + "LABELS": "Etiketter", + "TEAMS": "Teams" + }, + "CREATE_ACCOUNT": { + "NEW_ACCOUNT": "Ny konto", + "SELECTOR_SUBTITLE": "Opprett ny konto", + "API": { + "SUCCESS_MESSAGE": "Kontoen ble opprettet", + "EXIST_MESSAGE": "Kontoen eksisterer allerede", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere" + }, + "FORM": { + "NAME": { + "LABEL": "Kontonavn", + "PLACEHOLDER": "Ola's bedrift" + }, + "SUBMIT": "Send" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/signup.json b/app/javascript/dashboard/i18n/locale/no/signup.json new file mode 100644 index 000000000..8dd41d1c8 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/signup.json @@ -0,0 +1,38 @@ +{ + "REGISTER": { + "TRY_WOOT": "Registrer en konto", + "TITLE": "Registrer", + "TERMS_ACCEPT": "Ved å registrere deg, samtykker du til våre brukerbetingelser og retningslinjer for personvern", + "ACCOUNT_NAME": { + "LABEL": "Kontonavn", + "PLACEHOLDER": "Skriv inn et kontonavn. f. eks: Ola's bedrift", + "ERROR": "Kontonavnet er for kort" + }, + "FULL_NAME": { + "LABEL": "Fullt navn", + "PLACEHOLDER": "Skriv inn fullt navn. F. eks: Ola Nordmann", + "ERROR": "Kontonavnet er for kort" + }, + "EMAIL": { + "LABEL": "Bedriftse-postadresse", + "PLACEHOLDER": "Skriv inn din profesjonelle e-postadresse. F.eks: ola@olasbedrift.no", + "ERROR": "E-postadressen er ugyldig" + }, + "PASSWORD": { + "LABEL": "Passord", + "PLACEHOLDER": "Passord", + "ERROR": "Passordet er for kort" + }, + "CONFIRM_PASSWORD": { + "LABEL": "Bekreft passord", + "PLACEHOLDER": "Bekreft passord", + "ERROR": "Passordet stemmer ikke" + }, + "API": { + "SUCCESS_MESSAGE": "Registrering fullført", + "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere" + }, + "SUBMIT": "Send", + "HAVE_AN_ACCOUNT": "Har du allerede en konto?" + } +} diff --git a/app/javascript/dashboard/i18n/locale/no/webhooks.json b/app/javascript/dashboard/i18n/locale/no/webhooks.json new file mode 100644 index 000000000..a800bb510 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/no/webhooks.json @@ -0,0 +1,5 @@ +{ + "WEBHOOKS_SETTINGS": { + "HEADER": "Webhook-innstillinger" + } +} diff --git a/app/javascript/dashboard/i18n/locale/pl/chatlist.json b/app/javascript/dashboard/i18n/locale/pl/chatlist.json index 371f6191a..f3a4a7de7 100644 --- a/app/javascript/dashboard/i18n/locale/pl/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/pl/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Received via email", "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", - "REPLY_TO_TWEET": "Reply to this tweet" + "REPLY_TO_TWEET": "Reply to this tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/pl/conversation.json b/app/javascript/dashboard/i18n/locale/pl/conversation.json index 1e0e3819b..45a15cbb7 100644 --- a/app/javascript/dashboard/i18n/locale/pl/conversation.json +++ b/app/javascript/dashboard/i18n/locale/pl/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Usuń zaznaczenie", "DOWNLOAD": "Pobierz", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Rozwiąż", "REOPEN_ACTION": "Otwórz ponownie", @@ -44,7 +45,8 @@ "TWEET": "Tweetuj", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Prywatna uwaga: widoczne tylko dla Ciebie i twojego zespołu", "CHANGE_STATUS": "Status konwersacji zmieniony", diff --git a/app/javascript/dashboard/i18n/locale/pl/generalSettings.json b/app/javascript/dashboard/i18n/locale/pl/generalSettings.json index 0ed60e798..98f4e7301 100644 --- a/app/javascript/dashboard/i18n/locale/pl/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/pl/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Nazwisko", + "Numer telefonu", + "Rozmowy", + "Ostatnio nawiązano kontakt" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/pl/settings.json b/app/javascript/dashboard/i18n/locale/pl/settings.json index e466e145f..4d2d28977 100644 --- a/app/javascript/dashboard/i18n/locale/pl/settings.json +++ b/app/javascript/dashboard/i18n/locale/pl/settings.json @@ -27,6 +27,7 @@ "NOTE": "Zaktualizuj ustawienia powiadomień e-mail tutaj", "CONVERSATION_ASSIGNMENT": "Wysyłaj powiadomienia e-mail, gdy konwersacja jest przypisana do mnie", "CONVERSATION_CREATION": "Wysyłaj powiadomienia e-mail po utworzeniu nowej rozmowy", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Update your push notification preferences here", "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send push notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "You have enabled push for this browser.", "REQUEST_PUSH": "Enable push notifications" @@ -118,10 +120,12 @@ "HOME": "Home", "AGENTS": "Agenci", "INBOXES": "Skrzynki", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Gotowe odpowiedzi", "INTEGRATIONS": "Integracje", "ACCOUNT_SETTINGS": "Account Settings", - "LABELS": "Labels" + "LABELS": "Labels", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json b/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json index 04c4fb160..a3acf9de6 100644 --- a/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json @@ -55,7 +55,7 @@ "TITLE": "Confirmar Exclusão", "MESSAGE": "Tem certeza que deseja excluir ", "YES": "Sim, excluir ", - "NO": "No, Keep " + "NO": "Não, Manter " } }, "EDIT": { diff --git a/app/javascript/dashboard/i18n/locale/pt/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/pt/cannedMgmt.json index 9d8fd0096..54ce9bbea 100644 --- a/app/javascript/dashboard/i18n/locale/pt/cannedMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt/cannedMgmt.json @@ -69,7 +69,7 @@ "TITLE": "Confirmar Exclusão", "MESSAGE": "Tem certeza que deseja excluir ", "YES": "Sim, excluir ", - "NO": "No, Keep " + "NO": "Não, Manter " } } } diff --git a/app/javascript/dashboard/i18n/locale/pt/chatlist.json b/app/javascript/dashboard/i18n/locale/pt/chatlist.json index ad8710e50..b02a91286 100644 --- a/app/javascript/dashboard/i18n/locale/pt/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/pt/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Received via email", "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", - "REPLY_TO_TWEET": "Reply to this tweet" + "REPLY_TO_TWEET": "Reply to this tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/pt/conversation.json b/app/javascript/dashboard/i18n/locale/pt/conversation.json index dc7fa3424..9ebad3489 100644 --- a/app/javascript/dashboard/i18n/locale/pt/conversation.json +++ b/app/javascript/dashboard/i18n/locale/pt/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Remove Selection", "DOWNLOAD": "BAIXAR", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Resolver", "REOPEN_ACTION": "Reabrir", @@ -44,7 +45,8 @@ "TWEET": "Tuitar", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Nota Privada: Apenas visível para você e sua equipe", "CHANGE_STATUS": "Estado da conversa alterado", @@ -62,7 +64,7 @@ "SUBMIT": "submeter", "CANCEL": "cancelar", "SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully", - "SEND_EMAIL_ERROR": "There was an error, please try again", + "SEND_EMAIL_ERROR": "Ocorreu um erro, por favor tente novamente", "FORM": { "SEND_TO_CONTACT": "Send the transcript to the customer", "SEND_TO_AGENT": "Send the transcript to the assigned agent", diff --git a/app/javascript/dashboard/i18n/locale/pt/generalSettings.json b/app/javascript/dashboard/i18n/locale/pt/generalSettings.json index 2ae83649b..5e64d035a 100644 --- a/app/javascript/dashboard/i18n/locale/pt/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/pt/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Nome:", + "Phone Number", + "Conversas", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json index 179ef4913..b236751c9 100644 --- a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json @@ -214,7 +214,7 @@ "TITLE": "Confirmar Exclusão", "MESSAGE": "Tem certeza que deseja excluir ", "YES": "Sim, excluir ", - "NO": "No, Keep " + "NO": "Não, Manter " }, "API": { "SUCCESS_MESSAGE": "Caixa de entrada excluída com sucesso", @@ -249,7 +249,7 @@ "TITLE": "Reautorizar", "SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services", "MESSAGE_SUCCESS": "Reconnection successful", - "MESSAGE_ERROR": "There was an error, please try again" + "MESSAGE_ERROR": "Ocorreu um erro, por favor tente novamente" } } } diff --git a/app/javascript/dashboard/i18n/locale/pt/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/pt/labelsMgmt.json index 801613806..b00a9c435 100644 --- a/app/javascript/dashboard/i18n/locale/pt/labelsMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt/labelsMgmt.json @@ -1,67 +1,67 @@ { "LABEL_MGMT": { - "HEADER": "Labels", - "HEADER_BTN_TXT": "Add label", - "LOADING": "Fetching labels", + "HEADER": "Etiquetas", + "HEADER_BTN_TXT": "Adicionar Etiqueta", + "LOADING": "Buscando etiquetas", "SEARCH_404": "Não existem itens correspondentes a esta consulta", - "SIDEBAR_TXT": "

Labels

Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.

Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.

", + "SIDEBAR_TXT": "

Etiquetas

As etiquetas o ajudam a categorizar as conversas e a priorizá-las. Você pode atribuir a etiqueta a uma conversa a partir do painel lateral.

As etiquetas estão vinculadas à conta e podem ser usadas para criar fluxos de trabalho personalizados em sua organização. Você pode atribuir uma cor personalizada para uma etiqueta, facilitando a identificação da etiqueta. Você será capaz de exibir o rótulo na barra lateral para filtrar as conversas facilmente.

", "LIST": { - "404": "There are no labels available in this account.", - "TITLE": "Manage labels", - "DESC": "Labels let you group the conversations together.", + "404": "Não há etiquetas disponíveis nesta conta.", + "TITLE": "Gerir etiquetas", + "DESC": "Etiquetas permitem que você agrupe as conversas juntos.", "TABLE_HEADER": [ "Nome:", - "Description", - "Color" + "Descrição", + "Cor" ] }, "FORM": { "NAME": { - "LABEL": "Label Name", - "PLACEHOLDER": "Label name", - "ERROR": "Label Name is required" + "LABEL": "Nome da etiqueta", + "PLACEHOLDER": "Nome da etiqueta", + "ERROR": "Nome da etiqueta é obrigatório" }, "DESCRIPTION": { - "LABEL": "Description", - "PLACEHOLDER": "Label Description" + "LABEL": "Descrição", + "PLACEHOLDER": "Descrição da etiqueta" }, "COLOR": { - "LABEL": "Color" + "LABEL": "Cor" }, "SHOW_ON_SIDEBAR": { - "LABEL": "Show label on sidebar" + "LABEL": "Mostrar etiqueta na barra lateral" }, "EDIT": "Alterar", - "CREATE": "Create", + "CREATE": "Criar", "DELETE": "excluir", "CANCEL": "cancelar" }, "ADD": { - "TITLE": "Add label", - "DESC": "Labels let you group the conversations together.", + "TITLE": "Adicionar Etiqueta", + "DESC": "Etiquetas permitem que você agrupe as conversas juntos.", "API": { - "SUCCESS_MESSAGE": "Label added successfully", - "ERROR_MESSAGE": "There was an error, please try again" + "SUCCESS_MESSAGE": "Etiqueta adicionada com sucesso", + "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente" } }, "EDIT": { - "TITLE": "Edit label", + "TITLE": "Editar etiqueta", "API": { - "SUCCESS_MESSAGE": "Label updated successfully", - "ERROR_MESSAGE": "There was an error, please try again" + "SUCCESS_MESSAGE": "Etiqueta adicionada com sucesso", + "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente" } }, "DELETE": { "BUTTON_TEXT": "excluir", "API": { - "SUCCESS_MESSAGE": "Label deleted successfully", - "ERROR_MESSAGE": "There was an error, please try again" + "SUCCESS_MESSAGE": "Etiqueta eliminada com sucesso", + "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente" }, "CONFIRM": { "TITLE": "Confirmar Exclusão", "MESSAGE": "Tem certeza que deseja excluir ", "YES": "Sim, excluir ", - "NO": "No, Keep " + "NO": "Não, Manter " } } } diff --git a/app/javascript/dashboard/i18n/locale/pt/settings.json b/app/javascript/dashboard/i18n/locale/pt/settings.json index 3062e68e5..d20d7e91d 100644 --- a/app/javascript/dashboard/i18n/locale/pt/settings.json +++ b/app/javascript/dashboard/i18n/locale/pt/settings.json @@ -27,6 +27,7 @@ "NOTE": "Atualize suas preferências de notificação por e-mail aqui", "CONVERSATION_ASSIGNMENT": "Enviar notificações por email quando uma conversa é atribuída a mim", "CONVERSATION_CREATION": "Enviar notificações por email quando uma nova conversa é criada", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Update your push notification preferences here", "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send push notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "You have enabled push for this browser.", "REQUEST_PUSH": "Enable push notifications" @@ -118,10 +120,12 @@ "HOME": "Home", "AGENTS": "agentes", "INBOXES": "Caixas de Entrada", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Respostas Prontas", "INTEGRATIONS": "Integrações", "ACCOUNT_SETTINGS": "Account Settings", - "LABELS": "Labels" + "LABELS": "Etiquetas", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json b/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json index aadcf510e..d9eb6a678 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Recebido por e-mail", "VIEW_TWEET_IN_TWITTER": "Ver tweet no Twitter", - "REPLY_TO_TWEET": "Responder a este tweet" + "REPLY_TO_TWEET": "Responder a este tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json b/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json index 90d3d7f0c..ffc5ebbe0 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Remover Seleção", "DOWNLOAD": "Baixar", "UPLOADING_ATTACHMENTS": "Enviando anexos...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Resolver", "REOPEN_ACTION": "Reabrir", @@ -42,9 +43,10 @@ "SEND": "Enviar", "CREATE": "Enviar", "TWEET": "Tweet", - "TIP_FORMAT_ICON": "Show rich text editor", - "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_FORMAT_ICON": "Mostrar editor de texto completo", + "TIP_EMOJI_ICON": "Mostrar seletor de emoji", + "TIP_ATTACH_ICON": "Anexar arquivos", + "ENTER_TO_SEND": "Enter para enviar" }, "VISIBLE_TO_AGENTS": "Mensagem Privada: Apenas visível para você e sua equipe", "CHANGE_STATUS": "Estado da conversa mudou", diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json b/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json index 4aea9f01d..fdc226b77 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json @@ -43,7 +43,7 @@ "CUSTOM_EMAIL_DOMAIN_ENABLED": "Você pode receber e-mails em seu domínio personalizado agora." } }, - "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance." + "UPDATE_CHATWOOT": "Uma atualização %{latestChatwootVersion} para o Chatwoot está disponível. Por favor, atualize sua instância." }, "FORMS": { "MULTISELECT": { @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Digite enter para remover", "SELECT_ONE": "Selecione um" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notificações", + "MARK_ALL_DONE": "Marcar Tudo Feito", + "LIST": { + "LOADING_MESSAGE": "Carregando notificações...", + "404": "Sem Notificações", + "TABLE_HEADER": [ + "Nome", + "Número de Telefone", + "Conversas", + "Último contato" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "Nova conversa", + "conversation_assignment": "Conversa Atribuída", + "assigned_conversation_new_message": "Nova Mensagem", + "conversation_mention": "Menção" + } } } diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json index a52504cda..5d98fbda3 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json @@ -242,8 +242,8 @@ "INBOX_UPDATE_TITLE": "Configurações da Caixa de entrada", "INBOX_UPDATE_SUB_TEXT": "Atualize suas configurações de caixa de entrada", "AUTO_ASSIGNMENT_SUB_TEXT": "Ativar ou desativar a atribuição automática de novas conversas aos agentes adicionados a essa caixa de entrada.", - "HMAC_VERIFICATION": "User Identity Validation", - "HMAC_DESCRIPTION": "Inorder validate the users identity, the SDK allows you to pass an `identity_hash` for each user. You can generate HMAC using 'sha256' with the key shown here." + "HMAC_VERIFICATION": "Validação de Identidade do Usuário", + "HMAC_DESCRIPTION": "Para validar a identidade dos usuários, o SDK permite que você passe um `identity_hash` para cada usuário. Você pode gerar HMAC usando 'sha256' com a chave mostrada aqui." }, "FACEBOOK_REAUTHORIZE": { "TITLE": "Reautorizar", diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/settings.json b/app/javascript/dashboard/i18n/locale/pt_BR/settings.json index 6f5ec5156..3b5a94f44 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/settings.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/settings.json @@ -27,6 +27,7 @@ "NOTE": "Atualize suas preferências de notificação por e-mail aqui", "CONVERSATION_ASSIGNMENT": "Enviar notificações por email quando uma conversa for atribuída a mim", "CONVERSATION_CREATION": "Enviar notificações por email quando uma nova conversa for criada", + "CONVERSATION_MENTION": "Enviar notificações por email quando você for mencionado em uma conversa", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Envie notificações por e-mail quando uma nova mensagem for criada numa conversa já atribuída" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Atualize suas preferências de notificação Push aqui", "CONVERSATION_ASSIGNMENT": "Enviar notificações push quando uma conversa é atribuída a mim", "CONVERSATION_CREATION": "Enviar notificações push quando uma nova conversa é criada", + "CONVERSATION_MENTION": "Enviar notificações push quando você for mencionado em uma conversa", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Envie notificações quando uma nova mensagem for criada numa conversa já atribuída", "HAS_ENABLED_PUSH": "Você ativou push para este navegador.", "REQUEST_PUSH": "Habilitar notificações push" @@ -118,10 +120,12 @@ "HOME": "Principal", "AGENTS": "Agentes", "INBOXES": "Caixas de Entrada", + "NOTIFICATIONS": "Notificações", "CANNED_RESPONSES": "Atalhos", "INTEGRATIONS": "Integrações", "ACCOUNT_SETTINGS": "Configurações da conta", - "LABELS": "Marcadores" + "LABELS": "Marcadores", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "Nova conta", diff --git a/app/javascript/dashboard/i18n/locale/ro/chatlist.json b/app/javascript/dashboard/i18n/locale/ro/chatlist.json index b6b803d17..80130cb08 100644 --- a/app/javascript/dashboard/i18n/locale/ro/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ro/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Received via email", "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", - "REPLY_TO_TWEET": "Reply to this tweet" + "REPLY_TO_TWEET": "Reply to this tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/ro/conversation.json b/app/javascript/dashboard/i18n/locale/ro/conversation.json index 61a0f549f..f903efd09 100644 --- a/app/javascript/dashboard/i18n/locale/ro/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ro/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Remove Selection", "DOWNLOAD": "Descărcare", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Rezolvă", "REOPEN_ACTION": "Redeschide", @@ -44,7 +45,8 @@ "TWEET": "Tweet", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Notă privată: vizibilă doar pentru tine și echipa ta", "CHANGE_STATUS": "Stare conversație schimbată", diff --git a/app/javascript/dashboard/i18n/locale/ro/generalSettings.json b/app/javascript/dashboard/i18n/locale/ro/generalSettings.json index 8a3a51be3..3f17f91e6 100644 --- a/app/javascript/dashboard/i18n/locale/ro/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/ro/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Nume", + "Phone Number", + "Conversații", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/ro/settings.json b/app/javascript/dashboard/i18n/locale/ro/settings.json index a639a620c..aeba06d03 100644 --- a/app/javascript/dashboard/i18n/locale/ro/settings.json +++ b/app/javascript/dashboard/i18n/locale/ro/settings.json @@ -27,6 +27,7 @@ "NOTE": "Actualizați preferințele de notificare prin e-mail aici", "CONVERSATION_ASSIGNMENT": "Trimite notificări prin e-mail atunci când o conversație îmi este atribuită", "CONVERSATION_CREATION": "Trimite notificări prin e-mail atunci când o conversație nouă este creată", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Actualizați preferințele de notificare push aici", "CONVERSATION_ASSIGNMENT": "Trimite notificări push atunci când o conversație îmi este atribuită", "CONVERSATION_CREATION": "Trimite notificări push atunci când o conversație nouă este creată", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "Ați activat apăsarea pentru acest browser.", "REQUEST_PUSH": "Activează notificările push" @@ -118,10 +120,12 @@ "HOME": "Acasa", "AGENTS": "Agenți", "INBOXES": "Căsuțe", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Răspunsuri predefinite", "INTEGRATIONS": "Integrări", "ACCOUNT_SETTINGS": "Setările contului", - "LABELS": "Etichete" + "LABELS": "Etichete", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "Cont Nou", diff --git a/app/javascript/dashboard/i18n/locale/ru/chatlist.json b/app/javascript/dashboard/i18n/locale/ru/chatlist.json index df8554edf..9fdca975f 100644 --- a/app/javascript/dashboard/i18n/locale/ru/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ru/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Получено по электронной почте", "VIEW_TWEET_IN_TWITTER": "Просмотреть твит в Twitter", - "REPLY_TO_TWEET": "Ответить на этот твит" + "REPLY_TO_TWEET": "Ответить на этот твит", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/ru/contact.json b/app/javascript/dashboard/i18n/locale/ru/contact.json index eaa8963a5..11e42012f 100644 --- a/app/javascript/dashboard/i18n/locale/ru/contact.json +++ b/app/javascript/dashboard/i18n/locale/ru/contact.json @@ -11,7 +11,7 @@ "OS": "Операционная система", "INITIATED_FROM": "Начат из", "INITIATED_AT": "Начат в", - "IP_ADDRESS": "IP Address", + "IP_ADDRESS": "IP адрес", "CONVERSATIONS": { "NO_RECORDS_FOUND": "Нет предыдущих диалогов, связанных с этим контактом.", "TITLE": "Предыдущие диалоги" diff --git a/app/javascript/dashboard/i18n/locale/ru/conversation.json b/app/javascript/dashboard/i18n/locale/ru/conversation.json index a3311eafc..aad9b5f13 100644 --- a/app/javascript/dashboard/i18n/locale/ru/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ru/conversation.json @@ -9,12 +9,12 @@ "SEARCH_MESSAGES": "Поиск по сообщениям в диалогах", "SEARCH": { "TITLE": "Поиск сообщений", - "LOADING_MESSAGE": "Crunching data...", + "LOADING_MESSAGE": "Сохранение данных...", "PLACEHOLDER": "Введите любой текст для поиска сообщений", "NO_MATCHING_RESULTS": "Нет сообщений, соответствующих параметрам поиска." }, - "UNREAD_MESSAGES": "Unread Messages", - "UNREAD_MESSAGE": "Unread Message", + "UNREAD_MESSAGES": "Непрочитанные сообщения", + "UNREAD_MESSAGE": "Непрочитанное сообщение", "CLICK_HERE": "Нажмите здесь", "LOADING_INBOXES": "Загружаем источники", "LOADING_CONVERSATIONS": "Загрузка диалогов", @@ -24,7 +24,8 @@ "REPLYING_TO": "Вы отвечаете на:", "REMOVE_SELECTION": "Удалить выделенное", "DOWNLOAD": "Скачать", - "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "UPLOADING_ATTACHMENTS": "Загрузка вложений...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Завершить", "REOPEN_ACTION": "Открыть заново", @@ -42,18 +43,19 @@ "SEND": "Отправить", "CREATE": "Добавить заметку", "TWEET": "Твит", - "TIP_FORMAT_ICON": "Show rich text editor", - "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_FORMAT_ICON": "Показать редактор текста", + "TIP_EMOJI_ICON": "Показать emoji панель", + "TIP_ATTACH_ICON": "Прикрепить файлы", + "ENTER_TO_SEND": "Введите чтобы отправить" }, "VISIBLE_TO_AGENTS": "Приватная заметка: видна только вам и вашей команде", "CHANGE_STATUS": "Статус разговора изменен", "CHANGE_AGENT": "Назначенный оператор изменен", - "SENT_BY": "Sent by:", + "SENT_BY": "Отправитель:", "ASSIGNMENT": { - "SELECT_AGENT": "Select Agent", + "SELECT_AGENT": "Выбрать Агента", "REMOVE": "Удалить", - "ASSIGN": "Assign" + "ASSIGN": "Назначить" } }, "EMAIL_TRANSCRIPT": { @@ -65,7 +67,7 @@ "SEND_EMAIL_ERROR": "Произошла ошибка, попробуйте еще раз", "FORM": { "SEND_TO_CONTACT": "Отправить субтитры клиенту", - "SEND_TO_AGENT": "Send the transcript to the assigned agent", + "SEND_TO_AGENT": "Отправить транскрипт назначенному агенту", "SEND_TO_OTHER_EMAIL_ADDRESS": "Отправить субтитры на другой адрес электронной почты", "EMAIL": { "PLACEHOLDER": "Введите адрес электронной почты", diff --git a/app/javascript/dashboard/i18n/locale/ru/generalSettings.json b/app/javascript/dashboard/i18n/locale/ru/generalSettings.json index 7360e697c..3426f2897 100644 --- a/app/javascript/dashboard/i18n/locale/ru/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/ru/generalSettings.json @@ -43,13 +43,33 @@ "CUSTOM_EMAIL_DOMAIN_ENABLED": "Теперь вы можете получать письма на свой домен." } }, - "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance." + "UPDATE_CHATWOOT": "Доступно обновление %{latestChatwootVersion} для Chatwoot. Пожалуйста, обновите свою версию." }, "FORMS": { "MULTISELECT": { - "ENTER_TO_SELECT": "Press enter to select", - "ENTER_TO_REMOVE": "Press enter to remove", - "SELECT_ONE": "Select one" + "ENTER_TO_SELECT": "Нажмите Enter для выбора", + "ENTER_TO_REMOVE": "Нажмите Enter для удаления", + "SELECT_ONE": "Выберите один" + } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Имя", + "Номер телефона", + "Диалоги", + "Последний Контакт" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" } } } diff --git a/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json index a14c7e5ea..1716e6e8d 100644 --- a/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json @@ -74,10 +74,10 @@ "DISABLED": "Выключено" }, "REPLY_TIME": { - "TITLE": "Set Reply time", + "TITLE": "Установить время ответа", "IN_A_FEW_MINUTES": "Через несколько минут", "IN_A_FEW_HOURS": "Через несколько часов", - "IN_A_DAY": "In a day", + "IN_A_DAY": "Через день", "HELP_TEXT": "Это время ответа будет отображаться в виджете онлайн чата" }, "WIDGET_COLOR": { @@ -166,8 +166,8 @@ "AGENTS": { "TITLE": "Операторы", "DESC": "Здесь вы можете добавить операторов для управления только что созданным источником. Только эти операторы будут иметь доступ к вашему источнику. Операторы, которые не являются частью этого источника, не смогут видеть диалоги или отвечать на них.
PS: Если вам как администратору нужен доступ ко всем источникам, то вы должны добавить себя как операторы во все каналы, которые вы создаете.", - "VALIDATION_ERROR": "Add atleast one agent to your new Inbox", - "PICK_AGENTS": "Pick agents for the inbox" + "VALIDATION_ERROR": "Добавьте хотя бы одного агента в новый канал", + "PICK_AGENTS": "Выберите агентов для канала" }, "DETAILS": { "TITLE": "Настройки источника", @@ -242,13 +242,13 @@ "INBOX_UPDATE_TITLE": "Настройки источника", "INBOX_UPDATE_SUB_TEXT": "Изменить настройки источника", "AUTO_ASSIGNMENT_SUB_TEXT": "Включить или отключить автоматическое назначение новых разговоров к агентам, добавленным к этому источнику.", - "HMAC_VERIFICATION": "User Identity Validation", - "HMAC_DESCRIPTION": "Inorder validate the users identity, the SDK allows you to pass an `identity_hash` for each user. You can generate HMAC using 'sha256' with the key shown here." + "HMAC_VERIFICATION": "Проверка личности пользователя", + "HMAC_DESCRIPTION": "Для проверки личности пользователя SDK предлагает вам передать параметр `identity_hash` для каждого пользователя. Вы можете сгенерировать HMAC с помощью шифрования 'sha256' с ключом, который указан ниже." }, "FACEBOOK_REAUTHORIZE": { "TITLE": "Войти заново", - "SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services", - "MESSAGE_SUCCESS": "Reconnection successful", + "SUBTITLE": "Ваше подключение к Facebook истекло. Пожалуйста, переподключитесь к Facebook для продолжения работы", + "MESSAGE_SUCCESS": "Переподключение выполнено", "MESSAGE_ERROR": "Произошла ошибка, попробуйте еще раз" } } diff --git a/app/javascript/dashboard/i18n/locale/ru/report.json b/app/javascript/dashboard/i18n/locale/ru/report.json index ef0bfaead..c349e11b8 100644 --- a/app/javascript/dashboard/i18n/locale/ru/report.json +++ b/app/javascript/dashboard/i18n/locale/ru/report.json @@ -3,7 +3,7 @@ "HEADER": "Отчёты", "LOADING_CHART": "Загрузка данных графика...", "NO_ENOUGH_DATA": "Недостаточно данных для создания отчета, пожалуйста, повторите попытку позже.", - "DOWNLOAD_AGENT_REPORTS": "Download agent reports", + "DOWNLOAD_AGENT_REPORTS": "Сказать отчёт по агентам", "METRICS": { "CONVERSATIONS": { "NAME": "Диалоги", diff --git a/app/javascript/dashboard/i18n/locale/ru/settings.json b/app/javascript/dashboard/i18n/locale/ru/settings.json index f97b18fbc..a17b3c83c 100644 --- a/app/javascript/dashboard/i18n/locale/ru/settings.json +++ b/app/javascript/dashboard/i18n/locale/ru/settings.json @@ -27,6 +27,7 @@ "NOTE": "Настраивайте email уведомления здесь", "CONVERSATION_ASSIGNMENT": "Отправлять email уведомление, когда мне назначен диалог", "CONVERSATION_CREATION": "Отправлять email уведомление, когда новый диалог создан", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Отправлять email уведомления при создании нового сообщения в назначенном диалоге" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Редактируйте настройки push-уведомлений здесь", "CONVERSATION_ASSIGNMENT": "Отправлять push уведомление при назначении мне диалога", "CONVERSATION_CREATION": "Отправлять push уведомление, когда новый диалог создан", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Отправлять push уведомления при создании нового сообщения в назначенном диалоге", "HAS_ENABLED_PUSH": "Вы включили push уведомления для этого браузера.", "REQUEST_PUSH": "Включить push-уведомления" @@ -118,10 +120,12 @@ "HOME": "Главная", "AGENTS": "Операторы", "INBOXES": "Источники", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Шаблонные ответы", "INTEGRATIONS": "Интеграции", "ACCOUNT_SETTINGS": "Настройки аккаунта", - "LABELS": "Категории" + "LABELS": "Категории", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "Новый аккаунт", diff --git a/app/javascript/dashboard/i18n/locale/ru/signup.json b/app/javascript/dashboard/i18n/locale/ru/signup.json index 0cff17a0a..05b098c04 100644 --- a/app/javascript/dashboard/i18n/locale/ru/signup.json +++ b/app/javascript/dashboard/i18n/locale/ru/signup.json @@ -5,18 +5,18 @@ "TERMS_ACCEPT": "Зарегистрировавшись, вы соглашаетесь с нашими правилами пользования и политикой конфиденциальности", "ACCOUNT_NAME": { "LABEL": "Имя аккаунта", - "PLACEHOLDER": "Enter an account name. eg: Wayne Enterprises", - "ERROR": "Account name is too short" + "PLACEHOLDER": "Введите имя аккаунта, например: Wayne Enterprises", + "ERROR": "Имя аккаунта слишком короткое" }, "FULL_NAME": { - "LABEL": "Full name", - "PLACEHOLDER": "Enter your full name. eg: Bruce Wayne", - "ERROR": "Full name is too short" + "LABEL": "Полное имя", + "PLACEHOLDER": "Введите полное имя, например: Bruce Wayne", + "ERROR": "Имя слишком короткое" }, "EMAIL": { - "LABEL": "Work email", - "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises", - "ERROR": "Email address is invalid" + "LABEL": "Рабочий email", + "PLACEHOLDER": "Введите ваш рабочий email адрес. Например: bruce@wayne.enterprises", + "ERROR": "Неверный email" }, "PASSWORD": { "LABEL": "Пароль", @@ -33,6 +33,6 @@ "ERROR_MESSAGE": "Не удается соединиться с сервером Woot, попробуйте позже" }, "SUBMIT": "Отправить", - "HAVE_AN_ACCOUNT": "Already have an account?" + "HAVE_AN_ACCOUNT": "Уже есть аккаунт?" } } diff --git a/app/javascript/dashboard/i18n/locale/sk/chatlist.json b/app/javascript/dashboard/i18n/locale/sk/chatlist.json index a0b31427f..228554789 100644 --- a/app/javascript/dashboard/i18n/locale/sk/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/sk/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Received via email", "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", - "REPLY_TO_TWEET": "Reply to this tweet" + "REPLY_TO_TWEET": "Reply to this tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/sk/conversation.json b/app/javascript/dashboard/i18n/locale/sk/conversation.json index 19bc5235b..967378552 100644 --- a/app/javascript/dashboard/i18n/locale/sk/conversation.json +++ b/app/javascript/dashboard/i18n/locale/sk/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Remove Selection", "DOWNLOAD": "Download", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Resolve", "REOPEN_ACTION": "Reopen", @@ -44,7 +45,8 @@ "TWEET": "Tweet", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team", "CHANGE_STATUS": "Conversation status changed", diff --git a/app/javascript/dashboard/i18n/locale/sk/generalSettings.json b/app/javascript/dashboard/i18n/locale/sk/generalSettings.json index 245bcb4c1..d5e8bd50b 100644 --- a/app/javascript/dashboard/i18n/locale/sk/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/sk/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Name", + "Phone Number", + "Conversations", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/sk/settings.json b/app/javascript/dashboard/i18n/locale/sk/settings.json index 0f4addcd4..21a6dcc78 100644 --- a/app/javascript/dashboard/i18n/locale/sk/settings.json +++ b/app/javascript/dashboard/i18n/locale/sk/settings.json @@ -27,6 +27,7 @@ "NOTE": "Update your email notification preferences here", "CONVERSATION_ASSIGNMENT": "Send email notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send email notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Update your push notification preferences here", "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send push notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "You have enabled push for this browser.", "REQUEST_PUSH": "Enable push notifications" @@ -118,10 +120,12 @@ "HOME": "Home", "AGENTS": "Agents", "INBOXES": "Inboxes", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Canned Responses", "INTEGRATIONS": "Integrations", "ACCOUNT_SETTINGS": "Account Settings", - "LABELS": "Labels" + "LABELS": "Labels", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/sv/chatlist.json b/app/javascript/dashboard/i18n/locale/sv/chatlist.json index fb1981fa7..5add8aadf 100644 --- a/app/javascript/dashboard/i18n/locale/sv/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/sv/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Mottaget via e-post", "VIEW_TWEET_IN_TWITTER": "Visa tweet i Twitter", - "REPLY_TO_TWEET": "Svara på detta tweet" + "REPLY_TO_TWEET": "Svara på detta tweet", + "NO_MESSAGES": "Inga meddelanden" } } diff --git a/app/javascript/dashboard/i18n/locale/sv/conversation.json b/app/javascript/dashboard/i18n/locale/sv/conversation.json index 3914f4a3e..afd4dbf74 100644 --- a/app/javascript/dashboard/i18n/locale/sv/conversation.json +++ b/app/javascript/dashboard/i18n/locale/sv/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Ta bort urval", "DOWNLOAD": "Hämta", "UPLOADING_ATTACHMENTS": "Laddar upp bilagor...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Lös", "REOPEN_ACTION": "Återöppna", @@ -42,9 +43,10 @@ "SEND": "Skicka", "CREATE": "Lägg till anteckning", "TWEET": "Twittra", - "TIP_FORMAT_ICON": "Show rich text editor", - "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_FORMAT_ICON": "Visa textformaterare", + "TIP_EMOJI_ICON": "Visa emoji-väljare", + "TIP_ATTACH_ICON": "Bifoga filer", + "ENTER_TO_SEND": "Enter för att skicka" }, "VISIBLE_TO_AGENTS": "Privat anteckning: Endast synlig för dig och ditt team", "CHANGE_STATUS": "Konversationsstatus ändrad", diff --git a/app/javascript/dashboard/i18n/locale/sv/generalSettings.json b/app/javascript/dashboard/i18n/locale/sv/generalSettings.json index 9412ab970..d23cdf973 100644 --- a/app/javascript/dashboard/i18n/locale/sv/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/sv/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Tryck Enter för att ta bort", "SELECT_ONE": "Markera en/ett" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Aviseringar", + "MARK_ALL_DONE": "Markera alla som klara", + "LIST": { + "LOADING_MESSAGE": "Laddar aviseringar...", + "404": "Inga aviseringar", + "TABLE_HEADER": [ + "Namn", + "Telefonnummer", + "Konversationer", + "Senast kontaktad" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "Ny konversation", + "conversation_assignment": "Konversationen tilldelad", + "assigned_conversation_new_message": "Nytt meddelande", + "conversation_mention": "Omnämning" + } } } diff --git a/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json index 586c7f71c..7afa2f9e1 100644 --- a/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json @@ -242,8 +242,8 @@ "INBOX_UPDATE_TITLE": "Inkorg inställningar", "INBOX_UPDATE_SUB_TEXT": "Uppdatera inställningarna för din inkorg", "AUTO_ASSIGNMENT_SUB_TEXT": "Aktivera eller inaktivera automatisk tilldelning av nya konversationer till de agenter som lagts till den här inkorgen.", - "HMAC_VERIFICATION": "User Identity Validation", - "HMAC_DESCRIPTION": "Inorder validate the users identity, the SDK allows you to pass an `identity_hash` for each user. You can generate HMAC using 'sha256' with the key shown here." + "HMAC_VERIFICATION": "Validering av användaridentitet", + "HMAC_DESCRIPTION": "För att validera användarens identitet låter SDKn dig att skicka en `identity_hash` för varje användare. Du kan generera HMAC med 'sha256' med nyckeln som visas här." }, "FACEBOOK_REAUTHORIZE": { "TITLE": "Återauktorisera", diff --git a/app/javascript/dashboard/i18n/locale/sv/settings.json b/app/javascript/dashboard/i18n/locale/sv/settings.json index bbe4e7a08..e6be52419 100644 --- a/app/javascript/dashboard/i18n/locale/sv/settings.json +++ b/app/javascript/dashboard/i18n/locale/sv/settings.json @@ -27,6 +27,7 @@ "NOTE": "Uppdatera dina e-postaviseringsinställningar här", "CONVERSATION_ASSIGNMENT": "Skicka e-postmeddelanden när en konversation är tilldelad till mig", "CONVERSATION_CREATION": "Skicka e-postmeddelanden när en ny konversation skapas", + "CONVERSATION_MENTION": "Skicka e-postaviseringar när du nämns i en konversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Skicka e-postaviseringar när ett nytt meddelande skapas i en tilldelad konversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Uppdatera dina inställningar för push-notiser här", "CONVERSATION_ASSIGNMENT": "Skicka push-notiser när en konversation tilldelas till mig", "CONVERSATION_CREATION": "Skicka push-notiser när en ny konversation skapas", + "CONVERSATION_MENTION": "Skicka push-meddelanden när du nämns i en konversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Skicka push-meddelanden när ett nytt meddelande skapas i en tilldelad konversation", "HAS_ENABLED_PUSH": "Du har aktiverat push-funktionen för denna webbläsare.", "REQUEST_PUSH": "Aktivera push-meddelanden" @@ -118,10 +120,12 @@ "HOME": "Hem", "AGENTS": "Agenter", "INBOXES": "Inkorgar", + "NOTIFICATIONS": "Aviseringar", "CANNED_RESPONSES": "Svarsmallar", "INTEGRATIONS": "Integrationer", "ACCOUNT_SETTINGS": "Kontoinställningar", - "LABELS": "Etiketter" + "LABELS": "Etiketter", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "Nytt konto", diff --git a/app/javascript/dashboard/i18n/locale/ta/chatlist.json b/app/javascript/dashboard/i18n/locale/ta/chatlist.json index 0836fcd4c..e27a9c1b0 100644 --- a/app/javascript/dashboard/i18n/locale/ta/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ta/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Received via email", "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", - "REPLY_TO_TWEET": "Reply to this tweet" + "REPLY_TO_TWEET": "Reply to this tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/ta/conversation.json b/app/javascript/dashboard/i18n/locale/ta/conversation.json index f46cd8ec6..00b97388b 100644 --- a/app/javascript/dashboard/i18n/locale/ta/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ta/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Remove Selection", "DOWNLOAD": "பதிவிறக்கம்", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "தீர்", "REOPEN_ACTION": "மீண்டும் திற", @@ -44,7 +45,8 @@ "TWEET": "ட்வீட்", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "தனிப்பட்ட குறிப்பு: உங்களுக்கும் உங்கள் குழுவினருக்கும் மட்டுமே தெரியும்", "CHANGE_STATUS": "உரையாடலின் நிலை மாற்றப்பட்டது", diff --git a/app/javascript/dashboard/i18n/locale/ta/generalSettings.json b/app/javascript/dashboard/i18n/locale/ta/generalSettings.json index af4b2f8dd..089370638 100644 --- a/app/javascript/dashboard/i18n/locale/ta/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/ta/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "பெயர்", + "Phone Number", + "உரையாடல்கள்", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/ta/settings.json b/app/javascript/dashboard/i18n/locale/ta/settings.json index 0422dfe30..25b3d720f 100644 --- a/app/javascript/dashboard/i18n/locale/ta/settings.json +++ b/app/javascript/dashboard/i18n/locale/ta/settings.json @@ -27,6 +27,7 @@ "NOTE": "உங்கள் ஈமெயில் வழியான அறிவிப்பு தொடர்பான விருப்பங்களை இங்கே புதுப்பிக்கவும்", "CONVERSATION_ASSIGNMENT": "ஒரு உரையாடல் எனக்கு ஒதுக்கப்பட்டால் ஈமெயிலில் அறிவிப்புகளை அனுப்பவும்", "CONVERSATION_CREATION": "புதிய உரையாடல் உருவாக்கப்படும்போது ஈ-மெயிலில் அறிவிப்புகளை அனுப்பவும்", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "உங்கள் புஷ் அறிவிப்பு விருப்பங்களை இங்கே புதுப்பிக்கவும்", "CONVERSATION_ASSIGNMENT": "ஒரு உரையாடல் எனக்கு ஒதுக்கப்படும் போது புஷ் அறிவிப்புகளை அனுப்பவும்", "CONVERSATION_CREATION": "புதிய உரையாடல் உருவாக்கப்படும்போது புஷ் அறிவிப்புகளை அனுப்பவும்", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "இந்த பிரௌசருக்கான புஷ் அறிவிப்புகளை இயக்கியுள்ளீர்கள்.", "REQUEST_PUSH": "புஷ் அறிவிப்புகளை இயக்கு" @@ -118,10 +120,12 @@ "HOME": "முகப்பு", "AGENTS": "ஏஜென்ட்கள்", "INBOXES": "இன்பாக்ஸ்கள்", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "பதிவு செய்யப்பட்ட பதில்கள்", "INTEGRATIONS": "சேர்ப்புகள்", "ACCOUNT_SETTINGS": "கணக்கின் அமைப்புகள்", - "LABELS": "Labels" + "LABELS": "Labels", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/th/chatlist.json b/app/javascript/dashboard/i18n/locale/th/chatlist.json index 744a4182c..96e82d019 100644 --- a/app/javascript/dashboard/i18n/locale/th/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/th/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "ได้รับทางอีเมลล์", "VIEW_TWEET_IN_TWITTER": "ดูทวิตในทวิตเตอร์", - "REPLY_TO_TWEET": "ตอบกลับทวิตนี้" + "REPLY_TO_TWEET": "ตอบกลับทวิตนี้", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/th/conversation.json b/app/javascript/dashboard/i18n/locale/th/conversation.json index 706c6b4a4..25e0ccbaa 100644 --- a/app/javascript/dashboard/i18n/locale/th/conversation.json +++ b/app/javascript/dashboard/i18n/locale/th/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "ลบตัวเลือก", "DOWNLOAD": "ดาวโหลด", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "เสร็จสิ้น", "REOPEN_ACTION": "เปิดใหม่อีกครั้ง", @@ -44,7 +45,8 @@ "TWEET": "ทวิต", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "โน้ตส่วนตัว: มีเพียงคุณและทีมเท่านั้นที่มองเห็นได้", "CHANGE_STATUS": "สถานะการสนทนามีการเปลี่ยนเเปลง", diff --git a/app/javascript/dashboard/i18n/locale/th/generalSettings.json b/app/javascript/dashboard/i18n/locale/th/generalSettings.json index 7b8481828..863b6a1a6 100644 --- a/app/javascript/dashboard/i18n/locale/th/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/th/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "ชื่อ", + "หมายเลขโทรศัพท์", + "การสนทนา", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/th/settings.json b/app/javascript/dashboard/i18n/locale/th/settings.json index 9c562e0fd..a6dc455f4 100644 --- a/app/javascript/dashboard/i18n/locale/th/settings.json +++ b/app/javascript/dashboard/i18n/locale/th/settings.json @@ -27,6 +27,7 @@ "NOTE": "Update your email notification preferences here", "CONVERSATION_ASSIGNMENT": "Send email notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send email notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Update your push notification preferences here", "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send push notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "You have enabled push for this browser.", "REQUEST_PUSH": "Enable push notifications" @@ -118,10 +120,12 @@ "HOME": "Home", "AGENTS": "พนักงาน", "INBOXES": "กล่องข้อความ", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "คำตอบสำเร็จรูป", "INTEGRATIONS": "Integrations", "ACCOUNT_SETTINGS": "Account Settings", - "LABELS": "Labels" + "LABELS": "Labels", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/tr/chatlist.json b/app/javascript/dashboard/i18n/locale/tr/chatlist.json index 4688ab92b..b7d2f2889 100644 --- a/app/javascript/dashboard/i18n/locale/tr/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/tr/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "E-posta ile alındı", "VIEW_TWEET_IN_TWITTER": "Twitter'da tweet'i görüntüleyin", - "REPLY_TO_TWEET": "Bu tweet'i yanıtla" + "REPLY_TO_TWEET": "Bu tweet'i yanıtla", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/tr/conversation.json b/app/javascript/dashboard/i18n/locale/tr/conversation.json index 203f35f40..adc62a1e1 100644 --- a/app/javascript/dashboard/i18n/locale/tr/conversation.json +++ b/app/javascript/dashboard/i18n/locale/tr/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Seçimi Kaldır", "DOWNLOAD": "İndir", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Çözüldü", "REOPEN_ACTION": "Yeniden aç", @@ -44,7 +45,8 @@ "TWEET": "Tweet", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Özel Not: Yalnızca siz ve ekibiniz tarafından görülebilir", "CHANGE_STATUS": "Görüşme durumu değişti", diff --git a/app/javascript/dashboard/i18n/locale/tr/generalSettings.json b/app/javascript/dashboard/i18n/locale/tr/generalSettings.json index 2f55cdbd2..2a3ca4512 100644 --- a/app/javascript/dashboard/i18n/locale/tr/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/tr/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Kaldırmak için enter tuşuna basın", "SELECT_ONE": "Birini seç" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Bildirimler", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "İsim", + "Telefon numarası", + "Konuşmalar", + "Son Görüşülen" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/tr/settings.json b/app/javascript/dashboard/i18n/locale/tr/settings.json index 571c52b27..4d63b5181 100644 --- a/app/javascript/dashboard/i18n/locale/tr/settings.json +++ b/app/javascript/dashboard/i18n/locale/tr/settings.json @@ -27,6 +27,7 @@ "NOTE": "E-posta bildirim tercihlerinizi buradan güncelleyin", "CONVERSATION_ASSIGNMENT": "Bana bir konuşma atandığında e-posta bildirimleri gönder", "CONVERSATION_CREATION": "Yeni bir görüşme oluşturulduğunda e-posta bildirimleri gönderin", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Atanmış bir görüşmede yeni bir mesaj oluşturulduğunda e-posta bildirimleri gönderin" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Bildirim tercihlerinizi buradan güncelleyin", "CONVERSATION_ASSIGNMENT": "Bana bir konuşma atandığında anında bildirim gönder", "CONVERSATION_CREATION": "Yeni bir görüşme oluşturulduğunda anlık bildirimler gönderin", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Atanan bir görüşmede yeni bir mesaj oluşturulduğunda anlık bildirimler gönderin", "HAS_ENABLED_PUSH": "Bu tarayıcı için bildirim özelliğini etkinleştirdiniz.", "REQUEST_PUSH": "Bildirimlerini etkinleştirin" @@ -118,10 +120,12 @@ "HOME": "Anasayfa", "AGENTS": "Kullanıcılar", "INBOXES": "Gelen kutuları", + "NOTIFICATIONS": "Bildirimler", "CANNED_RESPONSES": "Hazır Yanıtlar", "INTEGRATIONS": "Entegrasyonlar", "ACCOUNT_SETTINGS": "Hesap ayarları", - "LABELS": "Etiketler" + "LABELS": "Etiketler", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "Yeni hesap", diff --git a/app/javascript/dashboard/i18n/locale/uk/chatlist.json b/app/javascript/dashboard/i18n/locale/uk/chatlist.json index 26c062754..c5abfba0c 100644 --- a/app/javascript/dashboard/i18n/locale/uk/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/uk/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Received via email", "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", - "REPLY_TO_TWEET": "Reply to this tweet" + "REPLY_TO_TWEET": "Reply to this tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/uk/conversation.json b/app/javascript/dashboard/i18n/locale/uk/conversation.json index 9db996de8..97d7930b9 100644 --- a/app/javascript/dashboard/i18n/locale/uk/conversation.json +++ b/app/javascript/dashboard/i18n/locale/uk/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Remove Selection", "DOWNLOAD": "Звантажити", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Вирішити", "REOPEN_ACTION": "Відкрити знову", @@ -44,7 +45,8 @@ "TWEET": "Твітнути", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Приватна нотатка: видима тільки вам та вашій команді", "CHANGE_STATUS": "Статус бесіди змінено", diff --git a/app/javascript/dashboard/i18n/locale/uk/generalSettings.json b/app/javascript/dashboard/i18n/locale/uk/generalSettings.json index 37d19aba0..ae9d5037f 100644 --- a/app/javascript/dashboard/i18n/locale/uk/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/uk/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Ім'я", + "Phone Number", + "Бесіди", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/uk/settings.json b/app/javascript/dashboard/i18n/locale/uk/settings.json index d9a028405..c8e5a8054 100644 --- a/app/javascript/dashboard/i18n/locale/uk/settings.json +++ b/app/javascript/dashboard/i18n/locale/uk/settings.json @@ -27,6 +27,7 @@ "NOTE": "Тут оновлюються налаштування повідомлень електронною поштою", "CONVERSATION_ASSIGNMENT": "Надсилати сповіщення коли бесіду призначають мені", "CONVERSATION_CREATION": "Надсилати сповіщення при створенні нової бесіди", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Update your push notification preferences here", "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me", "CONVERSATION_CREATION": "Send push notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "You have enabled push for this browser.", "REQUEST_PUSH": "Enable push notifications" @@ -118,10 +120,12 @@ "HOME": "Головна", "AGENTS": "Агенти", "INBOXES": "Вхідні", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Швидкі відповіді", "INTEGRATIONS": "Інтеграції", "ACCOUNT_SETTINGS": "Налаштування акаунту", - "LABELS": "Labels" + "LABELS": "Labels", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/vi/chatlist.json b/app/javascript/dashboard/i18n/locale/vi/chatlist.json index 08dac6f2c..930bfb402 100644 --- a/app/javascript/dashboard/i18n/locale/vi/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/vi/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Nhận được từ email", "VIEW_TWEET_IN_TWITTER": "Xem tweet trên Twitter", - "REPLY_TO_TWEET": "Trả lời cho tweet này" + "REPLY_TO_TWEET": "Trả lời cho tweet này", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/vi/conversation.json b/app/javascript/dashboard/i18n/locale/vi/conversation.json index 688548695..2f3362aef 100644 --- a/app/javascript/dashboard/i18n/locale/vi/conversation.json +++ b/app/javascript/dashboard/i18n/locale/vi/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Xóa lựa chọn", "DOWNLOAD": "Tải xuống", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "Giải quyết", "REOPEN_ACTION": "Mở lại", @@ -44,7 +45,8 @@ "TWEET": "Tweet", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "Lưu ý riêng: Chỉ hiển thị với bạn và nhóm của bạn", "CHANGE_STATUS": "Trạng thái cuộc trò chuyện đã thay đổi", diff --git a/app/javascript/dashboard/i18n/locale/vi/generalSettings.json b/app/javascript/dashboard/i18n/locale/vi/generalSettings.json index 72de27414..0e7cb8d2c 100644 --- a/app/javascript/dashboard/i18n/locale/vi/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/vi/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Tên", + "Số điện thoại", + "Các cuộc hội thoại", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/vi/settings.json b/app/javascript/dashboard/i18n/locale/vi/settings.json index 0e451d0c2..60e46454b 100644 --- a/app/javascript/dashboard/i18n/locale/vi/settings.json +++ b/app/javascript/dashboard/i18n/locale/vi/settings.json @@ -27,6 +27,7 @@ "NOTE": "Cập nhật tùy chọn thông báo qua email của bạn tại đây", "CONVERSATION_ASSIGNMENT": "Gửi thông báo qua email khi cuộc trò chuyện được chỉ định cho tôi", "CONVERSATION_CREATION": "Gửi thông báo qua email khi cuộc trò chuyện mới được tạo", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "Cập nhật tùy chọn thông báo của bạn tại đây", "CONVERSATION_ASSIGNMENT": "Gửi thông báo khi cuộc trò chuyện được chỉ định cho tôi", "CONVERSATION_CREATION": "Gửi thông báo khi cuộc trò chuyện mới được tạo", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "Bạn đã bật tính năng thông báo cho trình duyệt này.", "REQUEST_PUSH": "Bật thông báo" @@ -118,10 +120,12 @@ "HOME": "Trang Chủ", "AGENTS": "Đại lý", "INBOXES": "Hộp thư đến", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Thư mẫu phẩn hồi", "INTEGRATIONS": "Tích hợp", "ACCOUNT_SETTINGS": "Cài Đặt Tài Khoản", - "LABELS": "Nhãn" + "LABELS": "Nhãn", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "Tạo mới tài khoản", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/chatlist.json b/app/javascript/dashboard/i18n/locale/zh_CN/chatlist.json index 244d350a8..4b220d70e 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/chatlist.json @@ -77,8 +77,9 @@ "CONTENT": "分享了一个网址" } }, - "RECEIVED_VIA_EMAIL": "Received via email", - "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", - "REPLY_TO_TWEET": "Reply to this tweet" + "RECEIVED_VIA_EMAIL": "通过电子邮件接收", + "VIEW_TWEET_IN_TWITTER": "在 Twitter 中查看 tweet", + "REPLY_TO_TWEET": "回复此推文", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/contact.json b/app/javascript/dashboard/i18n/locale/zh_CN/contact.json index 977bbf804..dce3b86b8 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/contact.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/contact.json @@ -1,23 +1,23 @@ { "CONTACT_PANEL": { - "NOT_AVAILABLE": "Not Available", + "NOT_AVAILABLE": "不可用", "EMAIL_ADDRESS": "电子邮件地址", "PHONE_NUMBER": "电话号码", - "COPY_SUCCESSFUL": "Copied to clipboard successfully", - "COMPANY": "Company", + "COPY_SUCCESSFUL": "已成功复制到剪贴板", + "COMPANY": "公司", "LOCATION": "位置", "CONVERSATION_TITLE": "对话详情", "BROWSER": "浏览器", "OS": "操作系统", "INITIATED_FROM": "启动自:", "INITIATED_AT": "发起于", - "IP_ADDRESS": "IP Address", + "IP_ADDRESS": "IP 地址", "CONVERSATIONS": { "NO_RECORDS_FOUND": "此联系人没有关联到以前的会话。", "TITLE": "上一次对话" }, "CUSTOM_ATTRIBUTES": { - "TITLE": "Custom Attributes" + "TITLE": "自定义属性" }, "LABELS": { "TITLE": "对话标记", @@ -41,7 +41,7 @@ "EDIT_LABEL": "编辑" }, "EDIT_CONTACT": { - "BUTTON_LABEL": "Edit Contact", + "BUTTON_LABEL": "编辑联系人", "TITLE": "Edit contact", "DESC": "Edit contact details", "FORM": { @@ -52,7 +52,7 @@ }, "NAME": { "PLACEHOLDER": "Enter the full name of the contact", - "LABEL": "Full Name" + "LABEL": "名字" }, "BIO": { "PLACEHOLDER": "Enter the bio of the contact", @@ -80,15 +80,15 @@ "LABEL": "Facebook" }, "TWITTER": { - "PLACEHOLDER": "Enter the Twitter username", - "LABEL": "Twitter" + "PLACEHOLDER": "输入 Twitter 用户名", + "LABEL": "推特" }, "LINKEDIN": { "PLACEHOLDER": "Enter the LinkedIn username", "LABEL": "LinkedIn" }, "GITHUB": { - "PLACEHOLDER": "Enter the Github username", + "PLACEHOLDER": "输入Github用户名", "LABEL": "Github" } } @@ -99,14 +99,14 @@ }, "CONTACTS_PAGE": { "HEADER": "Contacts", - "SEARCH_BUTTON": "Search", - "SEARCH_INPUT_PLACEHOLDER": "Search for contacts", + "SEARCH_BUTTON": "搜索", + "SEARCH_INPUT_PLACEHOLDER": "搜索联系人", "LIST": { - "LOADING_MESSAGE": "Loading contacts...", - "404": "No contacts matches your search 🔍", + "LOADING_MESSAGE": "正在加载联系人列表...", + "404": "没有搜索到联系人🔍", "TABLE_HEADER": [ "姓名:", - "Phone Number", + "电话号码", "会话", "Last Contacted" ] diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json b/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json index 4af0500fe..684739937 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Remove Selection", "DOWNLOAD": "下载", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "已解决", "REOPEN_ACTION": "重新打开", @@ -44,7 +45,8 @@ "TWEET": "推特", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "私人便签:仅对您和您的团队可见", "CHANGE_STATUS": "对话状态已更改", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/generalSettings.json b/app/javascript/dashboard/i18n/locale/zh_CN/generalSettings.json index 2cb32a6c5..180cb54c9 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/generalSettings.json @@ -34,22 +34,42 @@ "ERROR": "" }, "AUTO_RESOLVE_DURATION": { - "LABEL": "Number of days after a ticket should auto resolve if there is no activity", + "LABEL": "非活跃工单的自动结单的天数", "PLACEHOLDER": "30", - "ERROR": "Please enter a valid auto resolve duration (minimum 1 day)" + "ERROR": "请输入一个合法的自动结单日期(最少1天)" }, "FEATURES": { "INBOUND_EMAIL_ENABLED": "您的帐户启用了与电子邮件的对话连续性。", "CUSTOM_EMAIL_DOMAIN_ENABLED": "您现在可以在您的自定义域名的电子邮件中接收消息。" } }, - "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance." + "UPDATE_CHATWOOT": "Chatwoot 有可用更新%{latestChatwootVersion},请更新您的应用。" }, "FORMS": { "MULTISELECT": { - "ENTER_TO_SELECT": "Press enter to select", - "ENTER_TO_REMOVE": "Press enter to remove", - "SELECT_ONE": "Select one" + "ENTER_TO_SELECT": "按回车键选择", + "ENTER_TO_REMOVE": "按回车键删除", + "SELECT_ONE": "请选择一个" + } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "消息通知", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "姓名:", + "Phone Number", + "会话", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" } } } diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json index db9678c32..42019fca2 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json @@ -74,11 +74,11 @@ "DISABLED": "已禁用" }, "REPLY_TIME": { - "TITLE": "Set Reply time", - "IN_A_FEW_MINUTES": "In a few minutes", - "IN_A_FEW_HOURS": "In a few hours", - "IN_A_DAY": "In a day", - "HELP_TEXT": "This reply time will be displayed on the live chat widget" + "TITLE": "设置回复时间", + "IN_A_FEW_MINUTES": "几分钟前", + "IN_A_FEW_HOURS": "几个小时前", + "IN_A_DAY": "一天内", + "HELP_TEXT": "此回复时间将会显示在实时聊天窗口上" }, "WIDGET_COLOR": { "LABEL": "窗口小部件颜色", @@ -247,8 +247,8 @@ }, "FACEBOOK_REAUTHORIZE": { "TITLE": "重新授权", - "SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services", - "MESSAGE_SUCCESS": "Reconnection successful", + "SUBTITLE": "您的 Facebook 连接已过期,请重新连接您的 Facebook 页面以继续服务", + "MESSAGE_SUCCESS": "重新连接成功", "MESSAGE_ERROR": "出现错误,请重试" } } diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/report.json b/app/javascript/dashboard/i18n/locale/zh_CN/report.json index 4a1bc0812..1ce4e4362 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/report.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/report.json @@ -3,7 +3,7 @@ "HEADER": "报告", "LOADING_CHART": "正在载入图表数据...", "NO_ENOUGH_DATA": "我们没有收到足够的数据点来生成报告,请稍后再试。", - "DOWNLOAD_AGENT_REPORTS": "Download agent reports", + "DOWNLOAD_AGENT_REPORTS": "下载客服报表", "METRICS": { "CONVERSATIONS": { "NAME": "会话", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/settings.json b/app/javascript/dashboard/i18n/locale/zh_CN/settings.json index 0e34b69d9..9e21f72c0 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/settings.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/settings.json @@ -27,6 +27,7 @@ "NOTE": "在此更新您的电子邮件通知设置", "CONVERSATION_ASSIGNMENT": "当对话分配给我时发送电子邮件通知", "CONVERSATION_CREATION": "当对话分配给我时发送电子邮件通知", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "在此更新您的电子邮件通知设置", "CONVERSATION_ASSIGNMENT": "当对话被分配给我时发送推送通知", "CONVERSATION_CREATION": "创建新对话时发送推送通知", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "您已启用此浏览器的推送。", "REQUEST_PUSH": "启用推送通知" @@ -118,10 +120,12 @@ "HOME": "首页", "AGENTS": "客服代理们", "INBOXES": "收件箱", + "NOTIFICATIONS": "消息通知", "CANNED_RESPONSES": "预设回复", "INTEGRATIONS": "集成方式", "ACCOUNT_SETTINGS": "帐户设置", - "LABELS": "标签" + "LABELS": "标签", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "New Account", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/signup.json b/app/javascript/dashboard/i18n/locale/zh_CN/signup.json index 9cffdde98..05f1d8705 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/signup.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/signup.json @@ -5,18 +5,18 @@ "TERMS_ACCEPT": "通过注册,您同意我们的 T & C隐私政策", "ACCOUNT_NAME": { "LABEL": "帐户名称", - "PLACEHOLDER": "Enter an account name. eg: Wayne Enterprises", - "ERROR": "Account name is too short" + "PLACEHOLDER": "输入帐户名称,例如 Wayne Enterprises", + "ERROR": "帐号名称太短了" }, "FULL_NAME": { - "LABEL": "Full name", - "PLACEHOLDER": "Enter your full name. eg: Bruce Wayne", - "ERROR": "Full name is too short" + "LABEL": "名字", + "PLACEHOLDER": "输入您的全名,例如 Bruce Wayne", + "ERROR": "帐号名称太短了" }, "EMAIL": { - "LABEL": "Work email", - "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises", - "ERROR": "Email address is invalid" + "LABEL": "工作邮箱", + "PLACEHOLDER": "请输入您的工作电子邮件地址,例如 bruce@wayne.enterprises", + "ERROR": "电子邮件地址无效" }, "PASSWORD": { "LABEL": "密码", @@ -33,6 +33,6 @@ "ERROR_MESSAGE": "无法连接服务器,请稍后再试" }, "SUBMIT": "提交", - "HAVE_AN_ACCOUNT": "Already have an account?" + "HAVE_AN_ACCOUNT": "已经有帐号?" } } diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/chatlist.json b/app/javascript/dashboard/i18n/locale/zh_TW/chatlist.json index 08139b290..43d5eba7a 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/chatlist.json @@ -79,6 +79,7 @@ }, "RECEIVED_VIA_EMAIL": "Received via email", "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", - "REPLY_TO_TWEET": "Reply to this tweet" + "REPLY_TO_TWEET": "Reply to this tweet", + "NO_MESSAGES": "No Messages" } } diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json b/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json index 700d252ea..1a59cb094 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json @@ -25,6 +25,7 @@ "REMOVE_SELECTION": "Remove Selection", "DOWNLOAD": "下載", "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "NO_RESPONSE": "No response", "HEADER": { "RESOLVE_ACTION": "已解決", "REOPEN_ACTION": "重新打開", @@ -44,7 +45,8 @@ "TWEET": "推特", "TIP_FORMAT_ICON": "Show rich text editor", "TIP_EMOJI_ICON": "Show emoji selector", - "TIP_ATTACH_ICON": "Attach files" + "TIP_ATTACH_ICON": "Attach files", + "ENTER_TO_SEND": "Enter to send" }, "VISIBLE_TO_AGENTS": "私人筆記:僅對您和您的團隊可以看見", "CHANGE_STATUS": "對話狀態已更改", diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/generalSettings.json b/app/javascript/dashboard/i18n/locale/zh_TW/generalSettings.json index 5ad4e24b9..1b874112c 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/generalSettings.json @@ -51,5 +51,25 @@ "ENTER_TO_REMOVE": "Press enter to remove", "SELECT_ONE": "Select one" } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "姓名:", + "聯絡人電話", + "會話", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } } } diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/settings.json b/app/javascript/dashboard/i18n/locale/zh_TW/settings.json index aea65842e..43b6cf012 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/settings.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/settings.json @@ -27,6 +27,7 @@ "NOTE": "在此更新您的電子信箱通知設定", "CONVERSATION_ASSIGNMENT": "當對話分配給我時發送電子信箱通知", "CONVERSATION_CREATION": "當對話分配給我時發送電子信箱通知", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation" }, "API": { @@ -38,6 +39,7 @@ "NOTE": "在此更新您的電子信箱通知設定", "CONVERSATION_ASSIGNMENT": "當對話被分配給我時發送推送通知", "CONVERSATION_CREATION": "建立新對話時發送推送通知", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", "HAS_ENABLED_PUSH": "您已啟用此瀏覽器的推送。", "REQUEST_PUSH": "啟用推送通知" @@ -118,10 +120,12 @@ "HOME": "首頁", "AGENTS": "客服代理們", "INBOXES": "收件匣", + "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "預設回覆", "INTEGRATIONS": "整合方式", "ACCOUNT_SETTINGS": "帳戶設定", - "LABELS": "標籤" + "LABELS": "標籤", + "TEAMS": "Teams" }, "CREATE_ACCOUNT": { "NEW_ACCOUNT": "新帳戶", diff --git a/app/javascript/dashboard/mixins/specs/time.spec.js b/app/javascript/dashboard/mixins/specs/time.spec.js new file mode 100644 index 000000000..c470dfe27 --- /dev/null +++ b/app/javascript/dashboard/mixins/specs/time.spec.js @@ -0,0 +1,10 @@ +import TimeMixin from '../time'; + +describe('#messageStamp', () => { + it('returns correct value', () => { + expect(TimeMixin.methods.messageStamp(1612971343)).toEqual('3:35 PM'); + expect(TimeMixin.methods.messageStamp(1612971343, 'LLL d, h:mm a')).toEqual( + 'Feb 10, 3:35 PM' + ); + }); +}); diff --git a/app/javascript/dashboard/mixins/specs/uiSettings.spec.js b/app/javascript/dashboard/mixins/specs/uiSettings.spec.js new file mode 100644 index 000000000..a32a8ffcf --- /dev/null +++ b/app/javascript/dashboard/mixins/specs/uiSettings.spec.js @@ -0,0 +1,56 @@ +import { shallowMount, createLocalVue } from '@vue/test-utils'; +import uiSettingsMixin from '../uiSettings'; +import Vuex from 'vuex'; + +const localVue = createLocalVue(); +localVue.use(Vuex); + +describe('uiSettingsMixin', () => { + let getters; + let actions; + let store; + + beforeEach(() => { + actions = { updateUISettings: jest.fn() }; + getters = { + getUISettings: () => ({ + display_rich_content_editor: false, + enter_to_send_enabled: false, + }), + }; + store = new Vuex.Store({ actions, getters }); + }); + + it('returns uiSettings', () => { + const Component = { + render() {}, + title: 'TestComponent', + mixins: [uiSettingsMixin], + }; + const wrapper = shallowMount(Component, { store, localVue }); + expect(wrapper.vm.uiSettings).toEqual({ + display_rich_content_editor: false, + enter_to_send_enabled: false, + }); + }); + + it('dispatches store actions correctly', () => { + const Component = { + render() {}, + title: 'TestComponent', + mixins: [uiSettingsMixin], + }; + const wrapper = shallowMount(Component, { store, localVue }); + wrapper.vm.updateUISettings({ enter_to_send_enabled: true }); + expect(actions.updateUISettings).toHaveBeenCalledWith( + expect.anything(), + { + uiSettings: { + display_rich_content_editor: false, + enter_to_send_enabled: true, + }, + }, + undefined + ); + }); +}); diff --git a/app/javascript/dashboard/mixins/time.js b/app/javascript/dashboard/mixins/time.js index 4516c5c67..0048d5764 100644 --- a/app/javascript/dashboard/mixins/time.js +++ b/app/javascript/dashboard/mixins/time.js @@ -1,13 +1,12 @@ -/* eslint no-console: 0 */ import fromUnixTime from 'date-fns/fromUnixTime'; import format from 'date-fns/format'; import formatDistanceToNow from 'date-fns/formatDistanceToNow'; export default { methods: { - messageStamp(time) { + messageStamp(time, dateFormat = 'h:mm a') { const unixTime = fromUnixTime(time); - return format(unixTime, 'h:mm a'); + return format(unixTime, dateFormat); }, dynamicTime(time) { const unixTime = fromUnixTime(time); diff --git a/app/javascript/dashboard/mixins/uiSettings.js b/app/javascript/dashboard/mixins/uiSettings.js new file mode 100644 index 000000000..fd99b1774 --- /dev/null +++ b/app/javascript/dashboard/mixins/uiSettings.js @@ -0,0 +1,19 @@ +import { mapGetters } from 'vuex'; + +export default { + computed: { + ...mapGetters({ + uiSettings: 'getUISettings', + }), + }, + methods: { + updateUISettings(uiSettings = {}) { + this.$store.dispatch('updateUISettings', { + uiSettings: { + ...this.uiSettings, + ...uiSettings, + }, + }); + }, + }, +}; diff --git a/app/javascript/dashboard/routes/dashboard/contacts/components/ContactsView.vue b/app/javascript/dashboard/routes/dashboard/contacts/components/ContactsView.vue index 0b0c4801e..b55efcf31 100644 --- a/app/javascript/dashboard/routes/dashboard/contacts/components/ContactsView.vue +++ b/app/javascript/dashboard/routes/dashboard/contacts/components/ContactsView.vue @@ -14,7 +14,7 @@ :on-click-contact="openContactInfoPanel" :active-contact-id="selectedContactId" /> -