diff --git a/.dockerignore b/.dockerignore index 85065ec7d..a5af77eb5 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,8 +1,6 @@ .bundle .env .env.* -.git -.gitignore docker-compose.* docker/Dockerfile docker/dockerfiles diff --git a/.env.example b/.env.example index ac4a2c0e8..70bf5d588 100644 --- a/.env.example +++ b/.env.example @@ -110,6 +110,8 @@ AWS_REGION= RAILS_LOG_TO_STDOUT=true LOG_LEVEL=info LOG_SIZE=500 +# Configure this environment variable if you want to use lograge instead of rails logger +#LOGRAGE_ENABLED=true ### This environment variables are only required if you are setting up social media channels @@ -159,9 +161,6 @@ ANDROID_SHA256_CERT_FINGERPRINT=AC:73:8E:DE:EB:56:EA:CC:10:87:02:A7:65:37:7B:38: # for mobile apps # FCM_SERVER_KEY= -## Bot Customizations -USE_INBOX_AVATAR_FOR_BOT=true - ### APM and Error Monitoring configurations ## Elastic APM ## https://www.elastic.co/guide/en/apm/agent/ruby/current/getting-started-rails.html diff --git a/.gitignore b/.gitignore index 4182a0ac7..e59f13b8f 100644 --- a/.gitignore +++ b/.gitignore @@ -61,8 +61,9 @@ test/cypress/videos/* /config/master.key /config/*.enc -.vscode/settings.json +#ignore files under .vscode directory +.vscode # yalc for local testing .yalc -yalc.lock \ No newline at end of file +yalc.lock diff --git a/Gemfile b/Gemfile index 7013245e5..7a61c39fe 100644 --- a/Gemfile +++ b/Gemfile @@ -87,7 +87,7 @@ gem 'line-bot-api' gem 'twilio-ruby', '~> 5.66' # twitty will handle subscription of twitter account events # gem 'twitty', git: 'https://github.com/chatwoot/twitty' -gem 'twitty' +gem 'twitty', '~> 0.1.5' # facebook client gem 'koala' # slack client @@ -149,7 +149,23 @@ gem 'net-imap', require: false gem 'net-pop', require: false gem 'net-smtp', require: false -group :production, :staging do +# Include logrange conditionally in intializer using env variable +gem 'lograge', '~> 0.12.0', require: false + +# worked with microsoft refresh token +gem 'omniauth-oauth2' + +gem 'audited', '~> 5.2' + +# need for google auth +gem 'omniauth' +gem 'omniauth-google-oauth2' +gem 'omniauth-rails_csrf_protection', '~> 1.0' + +### Gems required only in specific deployment environments ### +############################################################## + +group :production do # we dont want request timing out in development while using byebug gem 'rack-timeout' end @@ -165,6 +181,10 @@ group :development do # When we want to squash migrations gem 'squasher' + + # profiling + gem 'rack-mini-profiler', require: false + gem 'stackprof' end group :test do @@ -202,13 +222,3 @@ group :development, :test do gem 'spring' gem 'spring-watcher-listen' end - -# worked with microsoft refresh token -gem 'omniauth-oauth2' - -gem 'audited', '~> 5.2' - -# need for google auth -gem 'omniauth' -gem 'omniauth-google-oauth2' -gem 'omniauth-rails_csrf_protection', '~> 1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 9937dfcc2..3fa0dddca 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -137,7 +137,7 @@ GEM byebug (11.1.3) climate_control (1.1.1) coderay (1.1.3) - commonmarker (0.23.7) + commonmarker (0.23.9) concurrent-ruby (1.2.2) connection_pool (2.2.5) crack (0.4.5) @@ -416,6 +416,11 @@ GEM llhttp-ffi (0.4.0) ffi-compiler (~> 1.0) rake (~> 13.0) + lograge (0.12.0) + actionpack (>= 4) + activesupport (>= 4) + railties (>= 4) + request_store (~> 1.0) loofah (2.19.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) @@ -459,14 +464,14 @@ GEM sidekiq newrelic_rpm (8.15.0) nio4r (2.5.8) - nokogiri (1.14.2) + nokogiri (1.14.3) mini_portile2 (~> 2.8.0) racc (~> 1.4) - nokogiri (1.14.2-arm64-darwin) + nokogiri (1.14.3-arm64-darwin) racc (~> 1.4) - nokogiri (1.14.2-x86_64-darwin) + nokogiri (1.14.3-x86_64-darwin) racc (~> 1.4) - nokogiri (1.14.2-x86_64-linux) + nokogiri (1.14.3-x86_64-linux) racc (~> 1.4) oauth (0.5.10) oauth2 (2.0.9) @@ -520,6 +525,8 @@ GEM rack (>= 1.0, < 3) rack-cors (1.1.1) rack (>= 2.0.0) + rack-mini-profiler (3.0.0) + rack (>= 1.2.0) rack-protection (3.0.5) rack rack-proxy (0.7.2) @@ -566,6 +573,8 @@ GEM declarative (< 0.1.0) trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) + request_store (1.5.1) + rack (>= 1.4) responders (3.0.1) actionpack (>= 5.0) railties (>= 5.0) @@ -692,6 +701,7 @@ GEM activesupport (>= 5.2) sprockets (>= 3.0.0) squasher (0.6.2) + stackprof (0.2.24) statsd-ruby (1.5.0) stripe (6.5.0) telephone_number (1.4.16) @@ -707,7 +717,7 @@ GEM faraday (>= 0.9, < 3.0) jwt (>= 1.5, <= 2.5) nokogiri (>= 1.6, < 2.0) - twitty (0.1.4) + twitty (0.1.5) oauth tzinfo (2.0.6) concurrent-ruby (~> 1.0) @@ -821,6 +831,7 @@ DEPENDENCIES line-bot-api liquid listen + lograge (~> 0.12.0) maxminddb mock_redis net-imap @@ -840,6 +851,7 @@ DEPENDENCIES pundit rack-attack rack-cors + rack-mini-profiler rack-timeout rails (~> 6.1, >= 6.1.7.3) redis @@ -865,12 +877,13 @@ DEPENDENCIES spring spring-watcher-listen squasher + stackprof stripe telephone_number test-prof time_diff twilio-ruby (~> 5.66) - twitty + twitty (~> 0.1.5) tzinfo-data uglifier valid_email2 diff --git a/Procfile b/Procfile index 3cfa8ae13..f281f018a 100644 --- a/Procfile +++ b/Procfile @@ -1,3 +1,3 @@ -release: POSTGRES_STATEMENT_TIMEOUT=600s bundle exec rails db:chatwoot_prepare +release: POSTGRES_STATEMENT_TIMEOUT=600s bundle exec rails db:chatwoot_prepare && echo $SOURCE_VERSION > .git_sha web: bundle exec rails ip_lookup:setup && bin/rails server -p $PORT -e $RAILS_ENV worker: bundle exec rails ip_lookup:setup && bundle exec sidekiq -C config/sidekiq.yml diff --git a/app/controllers/api/v1/accounts/agents_controller.rb b/app/controllers/api/v1/accounts/agents_controller.rb index eb409b9ff..9a089f242 100644 --- a/app/controllers/api/v1/accounts/agents_controller.rb +++ b/app/controllers/api/v1/accounts/agents_controller.rb @@ -19,6 +19,7 @@ class Api::V1::Accounts::AgentsController < Api::V1::Accounts::BaseController def destroy @agent.current_account_user.destroy! + delete_user_record(@agent) head :ok end @@ -74,4 +75,8 @@ class Api::V1::Accounts::AgentsController < Api::V1::Accounts::BaseController def validate_limit render_payment_required('Account limit exceeded. Please purchase more licenses') if agents.count >= Current.account.usage_limits[:agents] end + + def delete_user_record(agent) + DeleteObjectJob.perform_later(agent) if agent.reload.account_users.blank? + end end diff --git a/app/controllers/api/v1/accounts/articles_controller.rb b/app/controllers/api/v1/accounts/articles_controller.rb index f1689d918..cc0976375 100644 --- a/app/controllers/api/v1/accounts/articles_controller.rb +++ b/app/controllers/api/v1/accounts/articles_controller.rb @@ -1,14 +1,19 @@ class Api::V1::Accounts::ArticlesController < Api::V1::Accounts::BaseController before_action :portal before_action :check_authorization - before_action :fetch_article, except: [:index, :create, :attach_file] + before_action :fetch_article, except: [:index, :create, :attach_file, :reorder] before_action :set_current_page, only: [:index] def index @portal_articles = @portal.articles @all_articles = @portal_articles.search(list_params) @articles_count = @all_articles.count - @articles = @all_articles.order_by_updated_at.page(@current_page) + + @articles = if list_params[:category_slug].present? + @all_articles.order_by_position.page(@current_page).per(50) + else + @all_articles.order_by_updated_at.page(@current_page) + end end def create @@ -43,6 +48,11 @@ class Api::V1::Accounts::ArticlesController < Api::V1::Accounts::BaseController render json: { file_url: url_for(file_blob) } end + def reorder + Article.update_positions(params[:positions_hash]) + head :ok + end + private def fetch_article diff --git a/app/controllers/api/v1/accounts/contacts_controller.rb b/app/controllers/api/v1/accounts/contacts_controller.rb index b86b973df..8afd5b655 100644 --- a/app/controllers/api/v1/accounts/contacts_controller.rb +++ b/app/controllers/api/v1/accounts/contacts_controller.rb @@ -119,11 +119,12 @@ class Api::V1::Accounts::ContactsController < Api::V1::Accounts::BaseController end def fetch_contacts_with_conversation_count(contacts) - contacts_with_conversation_count = filtrate(contacts).left_outer_joins(:conversations) - .select('contacts.*, COUNT(conversations.id) as conversations_count') - .group('contacts.id') - .includes([{ avatar_attachment: [:blob] }]) - .page(@current_page).per(RESULTS_PER_PAGE) + conversation_count_sub_query = 'SELECT COUNT(*) FROM "conversations" WHERE "conversations"."contact_id" = "contacts"."id"' + contacts_with_conversation_count = filtrate(contacts) + .select("contacts.*, (#{conversation_count_sub_query}) as conversations_count") + .group('contacts.id') + .includes([{ avatar_attachment: [:blob] }]) + .page(@current_page).per(RESULTS_PER_PAGE) return contacts_with_conversation_count.includes([{ contact_inboxes: [:inbox] }]) if @include_contact_inboxes diff --git a/app/controllers/api/v1/accounts/inboxes_controller.rb b/app/controllers/api/v1/accounts/inboxes_controller.rb index 24f797025..20402b5d1 100644 --- a/app/controllers/api/v1/accounts/inboxes_controller.rb +++ b/app/controllers/api/v1/accounts/inboxes_controller.rb @@ -82,8 +82,8 @@ class Api::V1::Accounts::InboxesController < Api::V1::Accounts::BaseController end def destroy - @inbox.destroy! - head :ok + ::DeleteObjectJob.perform_later(@inbox) if @inbox.present? + render status: :ok, json: { message: I18n.t('messages.inbox_deletetion_response') } end private diff --git a/app/controllers/api/v1/accounts/microsoft/authorizations_controller.rb b/app/controllers/api/v1/accounts/microsoft/authorizations_controller.rb index 49a4bdcb0..bee47b213 100644 --- a/app/controllers/api/v1/accounts/microsoft/authorizations_controller.rb +++ b/app/controllers/api/v1/accounts/microsoft/authorizations_controller.rb @@ -7,11 +7,12 @@ class Api::V1::Accounts::Microsoft::AuthorizationsController < Api::V1::Accounts redirect_url = microsoft_client.auth_code.authorize_url( { redirect_uri: "#{base_url}/microsoft/callback", - scope: 'offline_access https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send openid', + scope: 'offline_access https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send openid profile', prompt: 'consent' } ) if redirect_url + email = email.downcase ::Redis::Alfred.setex(email, Current.account.id, 5.minutes) render json: { success: true, url: redirect_url } else diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb index 507e00e64..af48ccdf3 100644 --- a/app/controllers/api/v1/accounts_controller.rb +++ b/app/controllers/api/v1/accounts_controller.rb @@ -1,5 +1,6 @@ class Api::V1::AccountsController < Api::BaseController include AuthHelper + include CacheKeysHelper skip_before_action :authenticate_user!, :set_current_user, :handle_with_exception, only: [:create], raise: false @@ -30,6 +31,10 @@ class Api::V1::AccountsController < Api::BaseController end end + def cache_keys + render json: { cache_keys: get_cache_keys }, status: :ok + end + def show @latest_chatwoot_version = ::Redis::Alfred.get(::Redis::Alfred::LATEST_CHATWOOT_VERSION) render 'api/v1/accounts/show', format: :json @@ -47,6 +52,14 @@ class Api::V1::AccountsController < Api::BaseController private + def get_cache_keys + { + label: fetch_value_for_key(params[:id], Label.name.underscore), + inbox: fetch_value_for_key(params[:id], Inbox.name.underscore), + team: fetch_value_for_key(params[:id], Team.name.underscore) + } + end + def fetch_account @account = current_user.accounts.find(params[:id]) @current_account_user = @account.account_users.find_by(user_id: current_user.id) diff --git a/app/controllers/api/v1/widget/conversations_controller.rb b/app/controllers/api/v1/widget/conversations_controller.rb index 9b8c4da81..2c72a0361 100644 --- a/app/controllers/api/v1/widget/conversations_controller.rb +++ b/app/controllers/api/v1/widget/conversations_controller.rb @@ -65,6 +65,16 @@ class Api::V1::Widget::ConversationsController < Api::V1::Widget::BaseController head :ok end + def set_custom_attributes + conversation.update!(custom_attributes: permitted_params[:custom_attributes]) + end + + def destroy_custom_attributes + conversation.custom_attributes = conversation.custom_attributes.excluding(params[:custom_attribute]) + conversation.save! + render json: conversation + end + private def trigger_typing_event(event) diff --git a/app/controllers/api/v2/accounts/reports_controller.rb b/app/controllers/api/v2/accounts/reports_controller.rb index dedeb17bf..8e95ea594 100644 --- a/app/controllers/api/v2/accounts/reports_controller.rb +++ b/app/controllers/api/v2/accounts/reports_controller.rb @@ -1,5 +1,7 @@ class Api::V2::Accounts::ReportsController < Api::V1::Accounts::BaseController include Api::V2::Accounts::ReportsHelper + include Api::V2::Accounts::HeatmapHelper + before_action :check_authorization def index @@ -32,6 +34,14 @@ class Api::V2::Accounts::ReportsController < Api::V1::Accounts::BaseController generate_csv('teams_report', 'api/v2/accounts/reports/teams') end + def conversation_traffic + @report_data = generate_conversations_heatmap_report + timezone_offset = (params[:timezone_offset] || 0).to_f + @timezone = ActiveSupport::TimeZone[timezone_offset] + + generate_csv('conversation_traffic_reports', 'api/v2/accounts/reports/conversation_traffic') + end + def conversations return head :unprocessable_entity if params[:type].blank? diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index 25a981df6..ff6b5f57e 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -56,7 +56,8 @@ class DashboardController < ActionController::Base FB_APP_ID: GlobalConfigService.load('FB_APP_ID', ''), FACEBOOK_API_VERSION: 'v14.0', IS_ENTERPRISE: ChatwootApp.enterprise?, - AZURE_APP_ID: ENV.fetch('AZURE_APP_ID', '') + AZURE_APP_ID: ENV.fetch('AZURE_APP_ID', ''), + GIT_SHA: GIT_HASH } end end diff --git a/app/controllers/microsoft/callbacks_controller.rb b/app/controllers/microsoft/callbacks_controller.rb index c3ecb8c09..215103bd4 100644 --- a/app/controllers/microsoft/callbacks_controller.rb +++ b/app/controllers/microsoft/callbacks_controller.rb @@ -8,7 +8,7 @@ class Microsoft::CallbacksController < ApplicationController ) inbox = find_or_create_inbox - ::Redis::Alfred.delete(users_data['email']) + ::Redis::Alfred.delete(users_data['email'].downcase) redirect_to app_microsoft_inbox_agents_url(account_id: account.id, inbox_id: inbox.id) rescue StandardError => e ChatwootExceptionTracker.new(e).capture_exception @@ -31,7 +31,7 @@ class Microsoft::CallbacksController < ApplicationController end def account_id - ::Redis::Alfred.get(users_data['email']) + ::Redis::Alfred.get(users_data['email'].downcase) end def account diff --git a/app/controllers/super_admin/accounts_controller.rb b/app/controllers/super_admin/accounts_controller.rb index 3f1e15cdc..112357363 100644 --- a/app/controllers/super_admin/accounts_controller.rb +++ b/app/controllers/super_admin/accounts_controller.rb @@ -47,4 +47,11 @@ class SuperAdmin::AccountsController < SuperAdmin::ApplicationController Internal::SeedAccountJob.perform_later(requested_resource) redirect_back(fallback_location: [namespace, requested_resource], notice: 'Account seeding triggered') end + + def destroy + account = Account.find(params[:id]) + + DeleteObjectJob.perform_later(account) if account.present? + redirect_back(fallback_location: [namespace, requested_resource], notice: 'Account deletion is in progress.') + end end diff --git a/app/controllers/super_admin/users_controller.rb b/app/controllers/super_admin/users_controller.rb index 23c212c29..fec4fb790 100644 --- a/app/controllers/super_admin/users_controller.rb +++ b/app/controllers/super_admin/users_controller.rb @@ -1,6 +1,18 @@ class SuperAdmin::UsersController < SuperAdmin::ApplicationController # Overwrite any of the RESTful controller actions to implement custom behavior # For example, you may want to send an email after a foo is updated. + + def create + resource = resource_class.new(resource_params) + authorize_resource(resource) + + if resource.save + redirect_to super_admin_user_path(resource), notice: translate_with_resource('create.success') + else + notice = resource.errors.full_messages.first + redirect_to new_super_admin_user_path, notice: notice + end + end # # def update # super diff --git a/app/controllers/twitter/callbacks_controller.rb b/app/controllers/twitter/callbacks_controller.rb index 0c2dc8263..616adb816 100644 --- a/app/controllers/twitter/callbacks_controller.rb +++ b/app/controllers/twitter/callbacks_controller.rb @@ -14,7 +14,7 @@ class Twitter::CallbacksController < Twitter::BaseController redirect_to app_twitter_inbox_agents_url(account_id: account.id, inbox_id: inbox.id) end rescue StandardError => e - Rails.logger.error e + ChatwootExceptionTracker.new(e).capture_exception redirect_to twitter_app_redirect_url end @@ -49,10 +49,22 @@ class Twitter::CallbacksController < Twitter::BaseController twitter_access_token_secret: parsed_body['oauth_token_secret'], profile_id: parsed_body['user_id'] ) - account.inboxes.create!( + inbox = account.inboxes.create!( name: parsed_body['screen_name'], channel: twitter_profile ) + save_profile_image(inbox) + inbox + end + + def save_profile_image(inbox) + response = twitter_client.user_show(screen_name: inbox.name) + + return unless response.status.to_i == 200 + + parsed_user_profile = response.body + + ::Avatar::AvatarFromUrlJob.perform_later(inbox, parsed_user_profile['profile_image_url_https']) end def permitted_params diff --git a/app/drops/contact_drop.rb b/app/drops/contact_drop.rb index 7d5a85f0e..6611ecdc3 100644 --- a/app/drops/contact_drop.rb +++ b/app/drops/contact_drop.rb @@ -1,4 +1,8 @@ class ContactDrop < BaseDrop + def name + @obj.try(:name).try(:split).try(:map, &:capitalize).try(:join, ' ') + end + def email @obj.try(:email) end @@ -8,10 +12,10 @@ class ContactDrop < BaseDrop end def first_name - @obj.try(:name).try(:split).try(:first) + @obj.try(:name).try(:split).try(:first).try(:capitalize) if @obj.try(:name).try(:split).try(:size) > 1 end def last_name - @obj.try(:name).try(:split).try(:last) if @obj.try(:name).try(:split).try(:size) > 1 + @obj.try(:name).try(:split).try(:last).try(:capitalize) if @obj.try(:name).try(:split).try(:size) > 1 end end diff --git a/app/drops/user_drop.rb b/app/drops/user_drop.rb index 0ef91a724..7cafea1bb 100644 --- a/app/drops/user_drop.rb +++ b/app/drops/user_drop.rb @@ -1,13 +1,17 @@ class UserDrop < BaseDrop + def name + @obj.try(:name).try(:split).try(:map, &:capitalize).try(:join, ' ') + end + def available_name @obj.try(:available_name) end def first_name - @obj.try(:name).try(:split).try(:first) + @obj.try(:name).try(:split).try(:first).try(:capitalize) if @obj.try(:name).try(:split).try(:size) > 1 end def last_name - @obj.try(:name).try(:split).try(:last) if @obj.try(:name).try(:split).try(:size) > 1 + @obj.try(:name).try(:split).try(:last).try(:capitalize) if @obj.try(:name).try(:split).try(:size) > 1 end end diff --git a/app/finders/email_channel_finder.rb b/app/finders/email_channel_finder.rb index 3fb7edd53..41cd8e910 100644 --- a/app/finders/email_channel_finder.rb +++ b/app/finders/email_channel_finder.rb @@ -7,12 +7,18 @@ class EmailChannelFinder def perform channel = nil - recipient_mails = @email_object.to.to_a + @email_object.cc.to_a + recipient_mails.each do |email| normalized_email = normalize_email_with_plus_addressing(email) channel = Channel::Email.find_by('lower(email) = ? OR lower(forward_to_email) = ?', normalized_email, normalized_email) + break if channel.present? end channel end + + def recipient_mails + recipient_addresses = @email_object.to.to_a + @email_object.cc.to_a + @email_object.bcc.to_a + [@email_object['X-Original-To'].try(:value)] + recipient_addresses.flatten.compact + end end diff --git a/app/finders/message_finder.rb b/app/finders/message_finder.rb index 7a00e5cbf..8854e239a 100644 --- a/app/finders/message_finder.rb +++ b/app/finders/message_finder.rb @@ -21,12 +21,30 @@ class MessageFinder end def current_messages - if @params[:after].present? - messages.reorder('created_at asc').where('id >= ?', @params[:before].to_i).limit(20) + if @params[:after].present? && @params[:before].present? + messages_between(@params[:after].to_i, @params[:before].to_i) elsif @params[:before].present? - messages.reorder('created_at desc').where('id < ?', @params[:before].to_i).limit(20).reverse + messages_before(@params[:before].to_i) + elsif @params[:after].present? + messages_after(@params[:after].to_i) else - messages.reorder('created_at desc').limit(20).reverse + messages_latest end end + + def messages_after(after_id) + messages.reorder('created_at asc').where('id > ?', after_id).limit(100) + end + + def messages_before(before_id) + messages.reorder('created_at desc').where('id < ?', before_id).limit(20).reverse + end + + def messages_between(after_id, before_id) + messages.reorder('created_at asc').where('id >= ? AND id < ?', after_id, before_id).limit(1000) + end + + def messages_latest + messages.reorder('created_at desc').limit(20).reverse + end end diff --git a/app/helpers/api/v2/accounts/heatmap_helper.rb b/app/helpers/api/v2/accounts/heatmap_helper.rb new file mode 100644 index 000000000..597135f47 --- /dev/null +++ b/app/helpers/api/v2/accounts/heatmap_helper.rb @@ -0,0 +1,103 @@ +module Api::V2::Accounts::HeatmapHelper + def generate_conversations_heatmap_report + timezone_data = generate_heatmap_data_for_timezone(params[:timezone_offset]) + + group_traffic_data(timezone_data) + end + + private + + def group_traffic_data(data) + # start with an empty array + result_arr = [] + + # pick all the unique dates from the data in ascending order + dates = data.pluck(:date).uniq.sort + + # add the dates as the first row, leave an empty cell for the hour column + # e.g. [nil, '2023-01-01', '2023-1-02', '2023-01-03'] + result_arr << ([nil] + dates) + + # group the data by hour, we do not need to sort it, because the data is already sorted + # given it starts from the beginning of the day + # here each hour is a key, and the value is an array of all the items for that hour at each date + # e.g. hour = 1 + # value = [{date: 2023-01-01, value: 1}, {date: 2023-01-02, value: 1}, {date: 2023-01-03, value: 1}, ...] + data.group_by { |d| d[:hour] }.each do |hour, items| + # create a new row for each hour + row = [hour] + + # group the items by date, so we can easily access the value for each date + # grouped values will be a hasg with the date as the key, and the value as the value + # e.g. { '2023-01-01' => [{date: 2023-01-01, value: 1}], '2023-01-02' => [{date: 2023-01-02, value: 1}], ... } + grouped_values = items.group_by { |d| d[:date] } + + # now for each unique date we have, we can access the value for that date and append it to the array + dates.each do |date| + row << (grouped_values[date][0][:value] if grouped_values[date].is_a?(Array)) + end + + # row will look like [22, 0, 0, 1, 4, 6, 7, 4] + # add the row to the result array + + result_arr << row + end + + # return the resultant array + # the result looks like this + # [ + # [nil, '2023-01-01', '2023-1-02', '2023-01-03'], + # [0, 0, 0, 0], + # [1, 0, 0, 0], + # [2, 0, 0, 0], + # [3, 0, 0, 0], + # [4, 0, 0, 0], + # ] + result_arr + end + + def generate_heatmap_data_for_timezone(offset) + timezone = ActiveSupport::TimeZone[offset]&.name + timezone_today = DateTime.now.in_time_zone(timezone).beginning_of_day + + timezone_data_raw = generate_heatmap_data(timezone_today, offset) + + transform_data(timezone_data_raw, false) + end + + def generate_heatmap_data(date, offset) + report_params = { + type: :account, + group_by: 'hour', + metric: 'conversations_count', + business_hours: false + } + + V2::ReportBuilder.new(Current.account, report_params.merge({ + since: since_timestamp(date), + until: until_timestamp(date), + timezone_offset: offset + })).build + end + + def transform_data(data, zone_transform) + # rubocop:disable Rails/TimeZone + data.map do |d| + date = zone_transform ? Time.zone.at(d[:timestamp]) : Time.at(d[:timestamp]) + { + date: date.to_date.to_s, + hour: date.hour, + value: d[:value] + } + end + # rubocop:enable Rails/TimeZone + end + + def since_timestamp(date) + (date - 6.days).to_i.to_s + end + + def until_timestamp(date) + date.to_i.to_s + end +end diff --git a/app/helpers/cache_keys_helper.rb b/app/helpers/cache_keys_helper.rb new file mode 100644 index 000000000..aab33e44c --- /dev/null +++ b/app/helpers/cache_keys_helper.rb @@ -0,0 +1,15 @@ +module CacheKeysHelper + def get_prefixed_cache_key(account_id, key) + "idb-cache-key-account-#{account_id}-#{key}" + end + + def fetch_value_for_key(account_id, key) + prefixed_cache_key = get_prefixed_cache_key(account_id, key) + value_from_cache = Redis::Alfred.get(prefixed_cache_key) + + return value_from_cache if value_from_cache.present? + + # zero epoch time: 1970-01-01 00:00:00 UTC + '0000000000' + end +end diff --git a/app/javascript/dashboard/App.vue b/app/javascript/dashboard/App.vue index 0d0a6906c..ccae9e52c 100644 --- a/app/javascript/dashboard/App.vue +++ b/app/javascript/dashboard/App.vue @@ -72,13 +72,6 @@ export default { if (!this.hasAccounts) { this.showAddAccountModal = true; } - verifyServiceWorkerExistence(registration => - registration.pushManager.getSubscription().then(subscription => { - if (subscription) { - registerSubscription(); - } - }) - ); }, currentAccountId() { if (this.currentAccountId) { @@ -107,6 +100,14 @@ export default { this.updateRTLDirectionView(locale); this.latestChatwootVersion = latestChatwootVersion; vueActionCable.init(pubsubToken); + + verifyServiceWorkerExistence(registration => + registration.pushManager.getSubscription().then(subscription => { + if (subscription) { + registerSubscription(); + } + }) + ); }, }, }; diff --git a/app/javascript/dashboard/api/ApiClient.js b/app/javascript/dashboard/api/ApiClient.js index 25083dc99..fed0746ca 100644 --- a/app/javascript/dashboard/api/ApiClient.js +++ b/app/javascript/dashboard/api/ApiClient.js @@ -13,6 +13,19 @@ class ApiClient { return `${this.baseUrl()}/${this.resource}`; } + // eslint-disable-next-line class-methods-use-this + get accountIdFromRoute() { + const isInsideAccountScopedURLs = window.location.pathname.includes( + '/app/accounts' + ); + + if (isInsideAccountScopedURLs) { + return window.location.pathname.split('/')[3]; + } + + return ''; + } + baseUrl() { let url = this.apiVersion; @@ -20,15 +33,8 @@ class ApiClient { url = `/enterprise${url}`; } - if (this.options.accountScoped) { - const isInsideAccountScopedURLs = window.location.pathname.includes( - '/app/accounts' - ); - - if (isInsideAccountScopedURLs) { - const accountId = window.location.pathname.split('/')[3]; - url = `${url}/accounts/${accountId}`; - } + if (this.options.accountScoped && this.accountIdFromRoute) { + url = `${url}/accounts/${this.accountIdFromRoute}`; } return url; diff --git a/app/javascript/dashboard/api/CacheEnabledApiClient.js b/app/javascript/dashboard/api/CacheEnabledApiClient.js new file mode 100644 index 000000000..2c00389e5 --- /dev/null +++ b/app/javascript/dashboard/api/CacheEnabledApiClient.js @@ -0,0 +1,82 @@ +/* global axios */ +import { DataManager } from '../helper/CacheHelper/DataManager'; +import ApiClient from './ApiClient'; + +class CacheEnabledApiClient extends ApiClient { + constructor(resource, options = {}) { + super(resource, options); + this.dataManager = new DataManager(this.accountIdFromRoute); + } + + // eslint-disable-next-line class-methods-use-this + get cacheModelName() { + throw new Error('cacheModelName is not defined'); + } + + get(cache = false) { + if (cache) { + return this.getFromCache(); + } + + return axios.get(this.url); + } + + // eslint-disable-next-line class-methods-use-this + extractDataFromResponse(response) { + return response.data.payload; + } + + // eslint-disable-next-line class-methods-use-this + marshallData(dataToParse) { + return { data: { payload: dataToParse } }; + } + + async getFromCache() { + await this.dataManager.initDb(); + + const { data } = await axios.get( + `/api/v1/accounts/${this.accountIdFromRoute}/cache_keys` + ); + const cacheKeyFromApi = data.cache_keys[this.cacheModelName]; + const isCacheValid = await this.validateCacheKey(cacheKeyFromApi); + + let localData = []; + if (isCacheValid) { + localData = await this.dataManager.get({ + modelName: this.cacheModelName, + }); + } + + if (localData.length === 0) { + return this.refetchAndCommit(cacheKeyFromApi); + } + + return this.marshallData(localData); + } + + async refetchAndCommit(newKey = null) { + await this.dataManager.initDb(); + const response = await axios.get(this.url); + this.dataManager.replace({ + modelName: this.cacheModelName, + data: this.extractDataFromResponse(response), + }); + + await this.dataManager.setCacheKeys({ + [this.cacheModelName]: newKey, + }); + + return response; + } + + async validateCacheKey(cacheKeyFromApi) { + if (!this.dataManager.db) { + await this.dataManager.initDb(); + } + + const cachekey = await this.dataManager.getCacheKey(this.cacheModelName); + return cacheKeyFromApi === cachekey; + } +} + +export default CacheEnabledApiClient; diff --git a/app/javascript/dashboard/api/auditLogs.js b/app/javascript/dashboard/api/auditLogs.js new file mode 100644 index 000000000..f3e5864fc --- /dev/null +++ b/app/javascript/dashboard/api/auditLogs.js @@ -0,0 +1,16 @@ +/* global axios */ + +import ApiClient from './ApiClient'; + +class AuditLogs extends ApiClient { + constructor() { + super('audit_logs', { accountScoped: true }); + } + + get({ page }) { + const url = page ? `${this.url}?page=${page}` : this.url; + return axios.get(url); + } +} + +export default new AuditLogs(); diff --git a/app/javascript/dashboard/api/auth.js b/app/javascript/dashboard/api/auth.js index 19ba40a42..040c27313 100644 --- a/app/javascript/dashboard/api/auth.js +++ b/app/javascript/dashboard/api/auth.js @@ -2,7 +2,11 @@ import Cookies from 'js-cookie'; import endPoints from './endPoints'; -import { setAuthCredentials, clearCookiesOnLogout } from '../store/utils/api'; +import { + setAuthCredentials, + clearCookiesOnLogout, + deleteIndexedDBOnLogout, +} from '../store/utils/api'; export default { login(creds) { @@ -50,6 +54,7 @@ export default { axios .delete(urlData.url) .then(response => { + deleteIndexedDBOnLogout(); clearCookiesOnLogout(); resolve(response); }) diff --git a/app/javascript/dashboard/api/helpCenter/articles.js b/app/javascript/dashboard/api/helpCenter/articles.js index bcbb4dc5b..5423b1de2 100644 --- a/app/javascript/dashboard/api/helpCenter/articles.js +++ b/app/javascript/dashboard/api/helpCenter/articles.js @@ -60,6 +60,13 @@ class ArticlesAPI extends PortalsAPI { } ); } + + reorderArticles({ portalSlug, reorderedGroup, categorySlug }) { + return axios.post(`${this.url}/${portalSlug}/articles/reorder`, { + positions_hash: reorderedGroup, + category_slug: categorySlug, + }); + } } export default new ArticlesAPI(); diff --git a/app/javascript/dashboard/api/inbox/message.js b/app/javascript/dashboard/api/inbox/message.js index d671b86ff..098826ce3 100644 --- a/app/javascript/dashboard/api/inbox/message.js +++ b/app/javascript/dashboard/api/inbox/message.js @@ -75,10 +75,12 @@ class MessageApi extends ApiClient { return axios.delete(`${this.url}/${conversationID}/messages/${messageId}`); } - getPreviousMessages({ conversationId, before }) { - return axios.get(`${this.url}/${conversationId}/messages`, { - params: { before }, - }); + getPreviousMessages({ conversationId, after, before }) { + const params = { before }; + if (after && Number(after) !== Number(before)) { + params.after = after; + } + return axios.get(`${this.url}/${conversationId}/messages`, { params }); } translateMessage(conversationId, messageId, targetLanguage) { diff --git a/app/javascript/dashboard/api/inboxes.js b/app/javascript/dashboard/api/inboxes.js index 657a6d0e6..8c09791c8 100644 --- a/app/javascript/dashboard/api/inboxes.js +++ b/app/javascript/dashboard/api/inboxes.js @@ -1,11 +1,16 @@ /* global axios */ -import ApiClient from './ApiClient'; +import CacheEnabledApiClient from './CacheEnabledApiClient'; -class Inboxes extends ApiClient { +class Inboxes extends CacheEnabledApiClient { constructor() { super('inboxes', { accountScoped: true }); } + // eslint-disable-next-line class-methods-use-this + get cacheModelName() { + return 'inbox'; + } + getCampaigns(inboxId) { return axios.get(`${this.url}/${inboxId}/campaigns`); } diff --git a/app/javascript/dashboard/api/labels.js b/app/javascript/dashboard/api/labels.js index 8a088e840..2b521b058 100644 --- a/app/javascript/dashboard/api/labels.js +++ b/app/javascript/dashboard/api/labels.js @@ -1,9 +1,14 @@ -import ApiClient from './ApiClient'; +import CacheEnabledApiClient from './CacheEnabledApiClient'; -class LabelsAPI extends ApiClient { +class LabelsAPI extends CacheEnabledApiClient { constructor() { super('labels', { accountScoped: true }); } + + // eslint-disable-next-line class-methods-use-this + get cacheModelName() { + return 'label'; + } } export default new LabelsAPI(); diff --git a/app/javascript/dashboard/api/reports.js b/app/javascript/dashboard/api/reports.js index 29fefeec8..89b8554a5 100644 --- a/app/javascript/dashboard/api/reports.js +++ b/app/javascript/dashboard/api/reports.js @@ -14,8 +14,8 @@ class ReportsAPI extends ApiClient { to, type = 'account', id, - group_by, - business_hours, + groupBy, + businessHours, }) { return axios.get(`${this.url}`, { params: { @@ -24,22 +24,22 @@ class ReportsAPI extends ApiClient { until: to, type, id, - group_by, - business_hours, + group_by: groupBy, + business_hours: businessHours, timezone_offset: getTimeOffset(), }, }); } - getSummary(since, until, type = 'account', id, group_by, business_hours) { + getSummary(since, until, type = 'account', id, groupBy, businessHours) { return axios.get(`${this.url}/summary`, { params: { since, until, type, id, - group_by, - business_hours, + group_by: groupBy, + business_hours: businessHours, }, }); } @@ -59,6 +59,12 @@ class ReportsAPI extends ApiClient { }); } + getConversationTrafficCSV() { + return axios.get(`${this.url}/conversation_traffic`, { + params: { timezone_offset: getTimeOffset() }, + }); + } + getLabelReports({ from: since, to: until, businessHours }) { return axios.get(`${this.url}/labels`, { params: { since, until, business_hours: businessHours }, diff --git a/app/javascript/dashboard/api/teams.js b/app/javascript/dashboard/api/teams.js index ba202dff2..5413af96b 100644 --- a/app/javascript/dashboard/api/teams.js +++ b/app/javascript/dashboard/api/teams.js @@ -1,11 +1,27 @@ /* global axios */ -import ApiClient from './ApiClient'; +// import ApiClient from './ApiClient'; +import CacheEnabledApiClient from './CacheEnabledApiClient'; -export class TeamsAPI extends ApiClient { +export class TeamsAPI extends CacheEnabledApiClient { constructor() { super('teams', { accountScoped: true }); } + // eslint-disable-next-line class-methods-use-this + get cacheModelName() { + return 'team'; + } + + // eslint-disable-next-line class-methods-use-this + extractDataFromResponse(response) { + return response.data; + } + + // eslint-disable-next-line class-methods-use-this + marshallData(dataToParse) { + return { data: dataToParse }; + } + getAgents({ teamId }) { return axios.get(`${this.url}/${teamId}/team_members`); } diff --git a/app/javascript/dashboard/api/testimonials.js b/app/javascript/dashboard/api/testimonials.js index 705b7aabb..2d24945a5 100644 --- a/app/javascript/dashboard/api/testimonials.js +++ b/app/javascript/dashboard/api/testimonials.js @@ -1,5 +1,5 @@ /* global axios */ -import wootConstants from 'dashboard/constants'; +import wootConstants from 'dashboard/constants/globals'; export const getTestimonialContent = () => { return axios.get(wootConstants.TESTIMONIAL_URL); diff --git a/app/javascript/dashboard/assets/scss/widgets/_modal.scss b/app/javascript/dashboard/assets/scss/widgets/_modal.scss index c363d4220..cc22dc778 100644 --- a/app/javascript/dashboard/assets/scss/widgets/_modal.scss +++ b/app/javascript/dashboard/assets/scss/widgets/_modal.scss @@ -86,6 +86,12 @@ margin-left: var(--space-small); } + &:first-child { + .button { + margin-left: 0; + } + } + &.justify-content-end { justify-content: end; } diff --git a/app/javascript/dashboard/components/ChatList.vue b/app/javascript/dashboard/components/ChatList.vue index c7a65376d..dd9e353b8 100644 --- a/app/javascript/dashboard/components/ChatList.vue +++ b/app/javascript/dashboard/components/ChatList.vue @@ -45,7 +45,6 @@ variant="smooth" color-scheme="alert" icon="delete" - class="delete-custom-view__button" @click="onClickOpenDeleteFoldersModal" /> @@ -174,7 +173,7 @@ import ConversationCard from './widgets/conversation/ConversationCard'; import timeMixin from '../mixins/time'; import eventListenerMixins from 'shared/mixins/eventListenerMixins'; import conversationMixin from '../mixins/conversations'; -import wootConstants from '../constants'; +import wootConstants from 'dashboard/constants/globals'; import advancedFilterTypes from './widgets/conversation/advancedFilterItems'; import filterQueryGenerator from '../helper/filterQueryGenerator.js'; import AddCustomViews from 'dashboard/routes/dashboard/customviews/AddCustomViews'; @@ -835,17 +834,14 @@ export default { .filter--actions { display: flex; align-items: center; + gap: var(--space-micro); } .filter__applied { - padding: 0 0 var(--space-slab) 0 !important; + padding-bottom: var(--space-slab) !important; border-bottom: 1px solid var(--color-border); } -.delete-custom-view__button { - margin-right: var(--space-normal); -} - .tab--chat-type { padding: 0 var(--space-normal); diff --git a/app/javascript/dashboard/components/Code.vue b/app/javascript/dashboard/components/Code.vue index f348114a6..269311c2d 100644 --- a/app/javascript/dashboard/components/Code.vue +++ b/app/javascript/dashboard/components/Code.vue @@ -1,8 +1,23 @@ @@ -21,6 +36,24 @@ export default { type: String, default: 'javascript', }, + enableCodePen: { + type: Boolean, + default: false, + }, + codepenTitle: { + type: String, + default: 'Chatwoot Codepen', + }, + }, + computed: { + codepenScriptValue() { + const lang = this.lang === 'javascript' ? 'js' : this.lang; + return JSON.stringify({ + title: this.codepenTitle, + private: true, + [lang]: this.script, + }); + }, }, methods: { async onCopy(e) { @@ -37,10 +70,14 @@ export default { position: relative; text-align: left; - .button--copy-code { - margin-top: 0; + .code--action-area { + top: var(--space-small); position: absolute; - right: 0; + right: var(--space-small); + } + + .code--codeopen-form { + display: inline-block; } } diff --git a/app/javascript/dashboard/components/CustomAttribute.vue b/app/javascript/dashboard/components/CustomAttribute.vue index b9b769c44..80d5da911 100644 --- a/app/javascript/dashboard/components/CustomAttribute.vue +++ b/app/javascript/dashboard/components/CustomAttribute.vue @@ -218,13 +218,17 @@ export default { }, mounted() { this.editedValue = this.formattedValue; - bus.$on(BUS_EVENTS.FOCUS_CUSTOM_ATTRIBUTE, focusAttributeKey => { + bus.$on(BUS_EVENTS.FOCUS_CUSTOM_ATTRIBUTE, this.onFocusAttribute); + }, + destroyed() { + bus.$off(BUS_EVENTS.FOCUS_CUSTOM_ATTRIBUTE, this.onFocusAttribute); + }, + methods: { + onFocusAttribute(focusAttributeKey) { if (this.attributeKey === focusAttributeKey) { this.onEdit(); } - }); - }, - methods: { + }, focusInput() { if (this.$refs.inputfield) { this.$refs.inputfield.focus(); diff --git a/app/javascript/dashboard/components/Modal.vue b/app/javascript/dashboard/components/Modal.vue index d5dd55ffa..8b762c60c 100644 --- a/app/javascript/dashboard/components/Modal.vue +++ b/app/javascript/dashboard/components/Modal.vue @@ -47,7 +47,7 @@ export default { }, computed: { modalContainerClassName() { - let className = 'modal-container'; + let className = 'modal-container skip-context-menu'; if (this.fullWidth) { return `${className} modal-container--full-width`; } @@ -60,7 +60,9 @@ export default { 'right-aligned': 'right-aligned', }; - return `modal-mask ${modalClassNameMap[this.modalType] || ''}`; + return `modal-mask skip-context-menu ${modalClassNameMap[ + this.modalType + ] || ''}`; }, }, mounted() { diff --git a/app/javascript/dashboard/components/app/UpdateBanner.vue b/app/javascript/dashboard/components/app/UpdateBanner.vue index 49a1f988a..e9e41b6cb 100644 --- a/app/javascript/dashboard/components/app/UpdateBanner.vue +++ b/app/javascript/dashboard/components/app/UpdateBanner.vue @@ -12,7 +12,8 @@ diff --git a/app/javascript/dashboard/components/widgets/ChatTypeTabs.vue b/app/javascript/dashboard/components/widgets/ChatTypeTabs.vue index 0a15ee8b0..64db13f5c 100644 --- a/app/javascript/dashboard/components/widgets/ChatTypeTabs.vue +++ b/app/javascript/dashboard/components/widgets/ChatTypeTabs.vue @@ -9,7 +9,7 @@ diff --git a/app/javascript/dashboard/components/widgets/conversation/bubble/Video.vue b/app/javascript/dashboard/components/widgets/conversation/bubble/Video.vue index 14c26733b..84b068215 100644 --- a/app/javascript/dashboard/components/widgets/conversation/bubble/Video.vue +++ b/app/javascript/dashboard/components/widgets/conversation/bubble/Video.vue @@ -2,7 +2,12 @@
diff --git a/app/javascript/dashboard/components/widgets/conversation/contextMenu/Index.vue b/app/javascript/dashboard/components/widgets/conversation/contextMenu/Index.vue index 6a27d31eb..acbfa5575 100644 --- a/app/javascript/dashboard/components/widgets/conversation/contextMenu/Index.vue +++ b/app/javascript/dashboard/components/widgets/conversation/contextMenu/Index.vue @@ -69,7 +69,7 @@ + diff --git a/app/javascript/dashboard/constants.js b/app/javascript/dashboard/constants/globals.js similarity index 91% rename from app/javascript/dashboard/constants.js rename to app/javascript/dashboard/constants/globals.js index 2263154bd..71dd68051 100644 --- a/app/javascript/dashboard/constants.js +++ b/app/javascript/dashboard/constants/globals.js @@ -24,5 +24,6 @@ export default { DOCS_URL: '//www.chatwoot.com/docs/product/', TESTIMONIAL_URL: 'https://testimonials.cdn.chatwoot.com/content.json', SMALL_SCREEN_BREAKPOINT: 1024, + AVAILABILITY_STATUS_KEYS: ['online', 'busy', 'offline'], }; export const DEFAULT_REDIRECT_URL = '/app/'; diff --git a/app/javascript/dashboard/constants/localStorage.js b/app/javascript/dashboard/constants/localStorage.js new file mode 100644 index 000000000..00eb09ac5 --- /dev/null +++ b/app/javascript/dashboard/constants/localStorage.js @@ -0,0 +1,5 @@ +export const LOCAL_STORAGE_KEYS = { + DISMISSED_UPDATES: 'dismissedUpdates', + WIDGET_BUILDER: 'widgetBubble_', + DRAFT_MESSAGES: 'draftMessages', +}; diff --git a/app/javascript/dashboard/helper/AnalyticsHelper/events.js b/app/javascript/dashboard/helper/AnalyticsHelper/events.js index 0ffccd668..f8615a30c 100644 --- a/app/javascript/dashboard/helper/AnalyticsHelper/events.js +++ b/app/javascript/dashboard/helper/AnalyticsHelper/events.js @@ -13,6 +13,7 @@ export const ACCOUNT_EVENTS = Object.freeze({ ADDED_TO_CANNED_RESPONSE: 'Used added to canned response option', ADDED_A_CUSTOM_ATTRIBUTE: 'Added a custom attribute', ADDED_AN_INBOX: 'Added an inbox', + OPEN_MESSAGE_CONTEXT_MENU: 'Opened message context menu', }); export const LABEL_EVENTS = Object.freeze({ diff --git a/app/javascript/dashboard/helper/CacheHelper/DataManager.js b/app/javascript/dashboard/helper/CacheHelper/DataManager.js new file mode 100644 index 000000000..df7d560ac --- /dev/null +++ b/app/javascript/dashboard/helper/CacheHelper/DataManager.js @@ -0,0 +1,70 @@ +import { openDB } from 'idb'; +import { DATA_VERSION } from './version'; + +export class DataManager { + constructor(accountId) { + this.modelsToSync = ['inbox', 'label', 'team']; + this.accountId = accountId; + this.db = null; + } + + async initDb() { + if (this.db) return this.db; + this.db = await openDB(`cw-store-${this.accountId}`, DATA_VERSION, { + upgrade(db) { + db.createObjectStore('cache-keys'); + db.createObjectStore('inbox', { keyPath: 'id' }); + db.createObjectStore('label', { keyPath: 'id' }); + db.createObjectStore('team', { keyPath: 'id' }); + }, + }); + + return this.db; + } + + validateModel(name) { + if (!name) throw new Error('Model name is not defined'); + if (!this.modelsToSync.includes(name)) { + throw new Error(`Model ${name} is not defined`); + } + return true; + } + + async replace({ modelName, data }) { + this.validateModel(modelName); + + this.db.clear(modelName); + return this.push({ modelName, data }); + } + + async push({ modelName, data }) { + this.validateModel(modelName); + + if (Array.isArray(data)) { + const tx = this.db.transaction(modelName, 'readwrite'); + data.forEach(item => { + tx.store.add(item); + }); + await tx.done; + } else { + await this.db.add(modelName, data); + } + } + + async get({ modelName }) { + this.validateModel(modelName); + return this.db.getAll(modelName); + } + + async setCacheKeys(cacheKeys) { + Object.keys(cacheKeys).forEach(async modelName => { + this.db.put('cache-keys', cacheKeys[modelName], modelName); + }); + } + + async getCacheKey(modelName) { + this.validateModel(modelName); + + return this.db.get('cache-keys', modelName); + } +} diff --git a/app/javascript/dashboard/helper/CacheHelper/version.js b/app/javascript/dashboard/helper/CacheHelper/version.js new file mode 100644 index 000000000..07bd897f5 --- /dev/null +++ b/app/javascript/dashboard/helper/CacheHelper/version.js @@ -0,0 +1,3 @@ +// Monday, 13 March 2023 +// Change this version if you want to invalidate old data +export const DATA_VERSION = '1678706392'; diff --git a/app/javascript/dashboard/helper/URLHelper.js b/app/javascript/dashboard/helper/URLHelper.js index 68cadfb72..c4c544da0 100644 --- a/app/javascript/dashboard/helper/URLHelper.js +++ b/app/javascript/dashboard/helper/URLHelper.js @@ -1,4 +1,4 @@ -import { DEFAULT_REDIRECT_URL } from '../constants'; +import { DEFAULT_REDIRECT_URL } from 'dashboard/constants/globals'; export const frontendURL = (path, params) => { const stringifiedParams = params ? `?${new URLSearchParams(params)}` : ''; diff --git a/app/javascript/dashboard/helper/actionCable.js b/app/javascript/dashboard/helper/actionCable.js index c1b82bc1c..b5ea85f0a 100644 --- a/app/javascript/dashboard/helper/actionCable.js +++ b/app/javascript/dashboard/helper/actionCable.js @@ -26,6 +26,7 @@ class ActionCableConnector extends BaseActionCableConnector { 'first.reply.created': this.onFirstReplyCreated, 'conversation.read': this.onConversationRead, 'conversation.updated': this.onConversationUpdated, + 'account.cache_invalidated': this.onCacheInvalidate, }; } @@ -156,6 +157,13 @@ class ActionCableConnector extends BaseActionCableConnector { onFirstReplyCreated = () => { bus.$emit('fetch_overview_reports'); }; + + onCacheInvalidate = data => { + const keys = data.cache_keys; + this.app.$store.dispatch('labels/revalidate', { newKey: keys.label }); + this.app.$store.dispatch('inboxes/revalidate', { newKey: keys.inbox }); + this.app.$store.dispatch('teams/revalidate', { newKey: keys.team }); + }; } export default { diff --git a/app/javascript/dashboard/helper/automationHelper.js b/app/javascript/dashboard/helper/automationHelper.js index 302a202f5..581d539bc 100644 --- a/app/javascript/dashboard/helper/automationHelper.js +++ b/app/javascript/dashboard/helper/automationHelper.js @@ -136,6 +136,7 @@ export const getConditionOptions = ({ team_id: teams, campaigns: generateConditionOptions(campaigns), browser_language: languages, + conversation_language: languages, country_code: countries, message_type: MESSAGE_CONDITION_VALUES, }; diff --git a/app/javascript/dashboard/helper/messageHelper.js b/app/javascript/dashboard/helper/messageHelper.js index 773dd086d..1ae9a9aff 100644 --- a/app/javascript/dashboard/helper/messageHelper.js +++ b/app/javascript/dashboard/helper/messageHelper.js @@ -7,15 +7,22 @@ export const replaceVariablesInMessage = ({ message, variables }) => { }); }; +export const capitalizeName = name => { + return name.replace(/\b(\w)/g, s => s.toUpperCase()); +}; + const skipCodeBlocks = str => str.replace(/```(?:.|\n)+?```/g, ''); export const getFirstName = ({ user }) => { - return user?.name ? user.name.split(' ').shift() : ''; + const firstName = user?.name ? user.name.split(' ').shift() : ''; + return capitalizeName(firstName); }; export const getLastName = ({ user }) => { if (user && user.name) { - return user.name.split(' ').length > 1 ? user.name.split(' ').pop() : ''; + const lastName = + user.name.split(' ').length > 1 ? user.name.split(' ').pop() : ''; + return capitalizeName(lastName); } return ''; }; @@ -27,14 +34,14 @@ export const getMessageVariables = ({ conversation }) => { } = conversation; return { - 'contact.name': sender?.name, + 'contact.name': capitalizeName(sender?.name), 'contact.first_name': getFirstName({ user: sender }), 'contact.last_name': getLastName({ user: sender }), 'contact.email': sender?.email, 'contact.phone': sender?.phone_number, 'contact.id': sender?.id, 'conversation.id': id, - 'agent.name': assignee?.name ? assignee?.name : '', + 'agent.name': capitalizeName(assignee?.name || ''), 'agent.first_name': getFirstName({ user: assignee }), 'agent.last_name': getLastName({ user: assignee }), 'agent.email': assignee?.email ?? '', diff --git a/app/javascript/dashboard/helper/specs/CacheHelper/DataManger.spec.js b/app/javascript/dashboard/helper/specs/CacheHelper/DataManger.spec.js new file mode 100644 index 000000000..d96b643b4 --- /dev/null +++ b/app/javascript/dashboard/helper/specs/CacheHelper/DataManger.spec.js @@ -0,0 +1,114 @@ +import { DataManager } from '../../CacheHelper/DataManager'; + +describe('DataManager', () => { + const accountId = 'test-account'; + let dataManager; + + beforeAll(async () => { + dataManager = new DataManager(accountId); + await dataManager.initDb(); + }); + + afterEach(async () => { + const tx = dataManager.db.transaction( + dataManager.modelsToSync, + 'readwrite' + ); + dataManager.modelsToSync.forEach(modelName => { + tx.objectStore(modelName).clear(); + }); + await tx.done; + }); + + describe('initDb', () => { + it('should initialize the database', async () => { + expect(dataManager.db).not.toBeNull(); + }); + + it('should return the same instance of the database', async () => { + const db1 = await dataManager.initDb(); + const db2 = await dataManager.initDb(); + expect(db1).toBe(db2); + }); + }); + + describe('validateModel', () => { + it('should throw an error for empty input', async () => { + expect(() => { + dataManager.validateModel(); + }).toThrow(); + }); + + it('should throw an error for invalid model', async () => { + expect(() => { + dataManager.validateModel('invalid-model'); + }).toThrow(); + }); + + it('should not throw an error for valid model', async () => { + expect(dataManager.validateModel('label')).toBeTruthy(); + }); + }); + + describe('replace', () => { + it('should replace existing data in the specified model', async () => { + const inboxData = [ + { id: 1, name: 'inbox-1' }, + { id: 2, name: 'inbox-2' }, + ]; + const newData = [ + { id: 3, name: 'inbox-3' }, + { id: 4, name: 'inbox-4' }, + ]; + + await dataManager.push({ modelName: 'inbox', data: inboxData }); + await dataManager.replace({ modelName: 'inbox', data: newData }); + const result = await dataManager.get({ modelName: 'inbox' }); + expect(result).toEqual(newData); + }); + }); + + describe('push', () => { + it('should add data to the specified model', async () => { + const inboxData = { id: 1, name: 'inbox-1' }; + + await dataManager.push({ modelName: 'inbox', data: inboxData }); + const result = await dataManager.get({ modelName: 'inbox' }); + expect(result).toEqual([inboxData]); + }); + + it('should add multiple items to the specified model if an array of data is provided', async () => { + const inboxData = [ + { id: 1, name: 'inbox-1' }, + { id: 2, name: 'inbox-2' }, + ]; + + await dataManager.push({ modelName: 'inbox', data: inboxData }); + const result = await dataManager.get({ modelName: 'inbox' }); + expect(result).toEqual(inboxData); + }); + }); + + describe('get', () => { + it('should return all data in the specified model', async () => { + const inboxData = [ + { id: 1, name: 'inbox-1' }, + { id: 2, name: 'inbox-2' }, + ]; + + await dataManager.push({ modelName: 'inbox', data: inboxData }); + const result = await dataManager.get({ modelName: 'inbox' }); + expect(result).toEqual(inboxData); + }); + }); + + describe('setCacheKeys', () => { + it('should add cache keys for each model', async () => { + const cacheKeys = { inbox: 'cache-key-1', label: 'cache-key-2' }; + + await dataManager.setCacheKeys(cacheKeys); + const result = await dataManager.getCacheKey('inbox'); + expect(result).toEqual(cacheKeys.inbox); + }); + }); +}); diff --git a/app/javascript/dashboard/helper/specs/messageHelper.spec.js b/app/javascript/dashboard/helper/specs/messageHelper.spec.js index 7eac6b55e..c661c483b 100644 --- a/app/javascript/dashboard/helper/specs/messageHelper.spec.js +++ b/app/javascript/dashboard/helper/specs/messageHelper.spec.js @@ -4,6 +4,7 @@ import { getLastName, getMessageVariables, getUndefinedVariablesInMessage, + capitalizeName, } from '../messageHelper'; const variables = { @@ -87,11 +88,11 @@ describe('#getMessageVariables', () => { const conversation = { meta: { assignee: { - name: 'Samuel Smith', + name: 'samuel Smith', email: 'samuel@example.com', }, sender: { - name: 'John Doe', + name: 'john Doe', email: 'john.doe@gmail.com', phone_number: '1234567890', }, @@ -136,3 +137,30 @@ describe('#getUndefinedVariablesInMessage', () => { ); }); }); + +describe('#capitalizeName', () => { + it('capitalize name if name is passed', () => { + const string = 'john peter'; + expect(capitalizeName(string)).toBe('John Peter'); + }); + it('capitalize first name if full name is passed', () => { + const string = 'john Doe'; + expect(capitalizeName(string)).toBe('John Doe'); + }); + it('returns empty string if the string is empty', () => { + const string = ''; + expect(capitalizeName(string)).toBe(''); + }); + it('capitalize last name if last name is passed', () => { + const string = 'john doe'; + expect(capitalizeName(string)).toBe('John Doe'); + }); + it('capitalize first name if first name is passed', () => { + const string = 'john'; + expect(capitalizeName(string)).toBe('John'); + }); + it('capitalize last name if last name is passed', () => { + const string = 'doe'; + expect(capitalizeName(string)).toBe('Doe'); + }); +}); diff --git a/app/javascript/dashboard/i18n/locale/ar/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ar/advancedFilters.json index 5f8b070e5..c6c850d7e 100644 --- a/app/javascript/dashboard/i18n/locale/ar/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/ar/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "غير موجود", "is_greater_than": "هو أكبر من", "is_less_than": "هو أقل من", - "days_before": "قبل x أيام" + "days_before": "قبل x أيام", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "صحيح", diff --git a/app/javascript/dashboard/i18n/locale/ar/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ar/agentMgmt.json index 65be434b2..7cab8b7a1 100644 --- a/app/javascript/dashboard/i18n/locale/ar/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ar/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "عنوان البريد الإلكتروني", "PLACEHOLDER": "الرجاء إدخال عنوان البريد الإلكتروني للموظف" }, + "AGENT_AVAILABILITY": { + "LABEL": "التوفر", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "تعديل حساب الموظف" }, "BUTTON_TEXT": "تعديل", diff --git a/app/javascript/dashboard/i18n/locale/ar/contact.json b/app/javascript/dashboard/i18n/locale/ar/contact.json index f354b3dd0..b1d4b73a4 100644 --- a/app/javascript/dashboard/i18n/locale/ar/contact.json +++ b/app/javascript/dashboard/i18n/locale/ar/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "أدخل اسم الشركة", "LABEL": "اسم الشركة" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "اسم الدولة", + "SELECT_PLACEHOLDER": "اختر", + "REMOVE": "حذف", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "أدخل اسم مستخدم فيسبوك", diff --git a/app/javascript/dashboard/i18n/locale/ar/conversation.json b/app/javascript/dashboard/i18n/locale/ar/conversation.json index dee8999d9..4538f6bbd 100644 --- a/app/javascript/dashboard/i18n/locale/ar/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ar/conversation.json @@ -166,7 +166,15 @@ "COPY": "نسخ", "DELETE": "حذف", "CREATE_A_CANNED_RESPONSE": "إضافة إلى الردود السريعة", - "TRANSLATE": "ترجم" + "TRANSLATE": "ترجم", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "حذف", + "CANCEL": "إلغاء" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json index 73c75cd21..ab5aeb194 100644 --- a/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "الخصائص", "DISPLAY_FILE_PICKER": "عرض أداة انتقاء الملفات في الـ widget", "DISPLAY_EMOJI_PICKER": "عرض منتقي الرموز التعبيرية على الـ widget", - "ALLOW_END_CONVERSATION": "السماح للمستخدمين بإنهاء المحادثة من عنصر واجهة المستخدم" + "ALLOW_END_CONVERSATION": "السماح للمستخدمين بإنهاء المحادثة من عنصر واجهة المستخدم", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "كود \"الماسنجر\"", diff --git a/app/javascript/dashboard/i18n/locale/ar/settings.json b/app/javascript/dashboard/i18n/locale/ar/settings.json index f8187ecd4..e09322682 100644 --- a/app/javascript/dashboard/i18n/locale/ar/settings.json +++ b/app/javascript/dashboard/i18n/locale/ar/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "نسخ", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "تم نسخ الكود إلى الحافظة بنجاح" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/bg/advancedFilters.json b/app/javascript/dashboard/i18n/locale/bg/advancedFilters.json index 651106f4a..31b387436 100644 --- a/app/javascript/dashboard/i18n/locale/bg/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/bg/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Не присъства", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/bg/agentMgmt.json b/app/javascript/dashboard/i18n/locale/bg/agentMgmt.json index bbfe97627..37441f1ba 100644 --- a/app/javascript/dashboard/i18n/locale/bg/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/bg/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Имейл адрес", "PLACEHOLDER": "Моля, въведете имейл адрес на агента" }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Редактирай агента" }, "BUTTON_TEXT": "Редактирай", diff --git a/app/javascript/dashboard/i18n/locale/bg/contact.json b/app/javascript/dashboard/i18n/locale/bg/contact.json index 1624d0fb4..301552ca7 100644 --- a/app/javascript/dashboard/i18n/locale/bg/contact.json +++ b/app/javascript/dashboard/i18n/locale/bg/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Въведете име на фирма", "LABEL": "Име на фирма" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Име на държавата", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Въведете Facebook потребителско име", diff --git a/app/javascript/dashboard/i18n/locale/bg/conversation.json b/app/javascript/dashboard/i18n/locale/bg/conversation.json index 1f627a333..e064dc876 100644 --- a/app/javascript/dashboard/i18n/locale/bg/conversation.json +++ b/app/javascript/dashboard/i18n/locale/bg/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copy", "DELETE": "Изтрий", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Изтрий", + "CANCEL": "Отмени" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json index 97cedca41..0b229ae70 100644 --- a/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/bg/settings.json b/app/javascript/dashboard/i18n/locale/bg/settings.json index 6c892bba3..ce40bd7ed 100644 --- a/app/javascript/dashboard/i18n/locale/bg/settings.json +++ b/app/javascript/dashboard/i18n/locale/bg/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code copied to clipboard successfully" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/ca/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ca/advancedFilters.json index e90993888..c14c982df 100644 --- a/app/javascript/dashboard/i18n/locale/ca/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/ca/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "No és present", "is_greater_than": "És més gran que", "is_less_than": "És més petit que", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "Cert", diff --git a/app/javascript/dashboard/i18n/locale/ca/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ca/agentMgmt.json index 143cff28b..c59eb9c42 100644 --- a/app/javascript/dashboard/i18n/locale/ca/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ca/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Adreça de correu electrònic", "PLACEHOLDER": "Introduïu l'adreça de correu electrònic de l'agent" }, + "AGENT_AVAILABILITY": { + "LABEL": "Disponibilitat", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Editar l'agent" }, "BUTTON_TEXT": "Edita", diff --git a/app/javascript/dashboard/i18n/locale/ca/contact.json b/app/javascript/dashboard/i18n/locale/ca/contact.json index 8710cfa24..f65bd82f5 100644 --- a/app/javascript/dashboard/i18n/locale/ca/contact.json +++ b/app/javascript/dashboard/i18n/locale/ca/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Introdueix el nom de la companyia", "LABEL": "Nom de la companyia" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Nom del país", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Suprimeix", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Introduïu el nom d'usuari de Facebook", diff --git a/app/javascript/dashboard/i18n/locale/ca/conversation.json b/app/javascript/dashboard/i18n/locale/ca/conversation.json index 5595c149b..7d13fdacc 100644 --- a/app/javascript/dashboard/i18n/locale/ca/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ca/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copia", "DELETE": "Esborrar", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Esborrar", + "CANCEL": "Cancel·la" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json index 5a4f3acc1..973d88068 100644 --- a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Característiques", "DISPLAY_FILE_PICKER": "Mostra el selector de fitxers al widget", "DISPLAY_EMOJI_PICKER": "Mostra el selector d'emoji al widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Script del missatger", diff --git a/app/javascript/dashboard/i18n/locale/ca/settings.json b/app/javascript/dashboard/i18n/locale/ca/settings.json index c5da6a2c6..8a082637b 100644 --- a/app/javascript/dashboard/i18n/locale/ca/settings.json +++ b/app/javascript/dashboard/i18n/locale/ca/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copia", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "El codi s'ha copiat al porta-retalls amb èxit" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/cs/advancedFilters.json b/app/javascript/dashboard/i18n/locale/cs/advancedFilters.json index 033845685..1332d1519 100644 --- a/app/javascript/dashboard/i18n/locale/cs/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/cs/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Je menší než", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/cs/agentMgmt.json b/app/javascript/dashboard/i18n/locale/cs/agentMgmt.json index bb7eed2d6..7ae18a6a3 100644 --- a/app/javascript/dashboard/i18n/locale/cs/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/cs/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "E-mailová adresa", "PLACEHOLDER": "Zadejte prosím e-mailovou adresu agenta" }, + "AGENT_AVAILABILITY": { + "LABEL": "Dostupnost", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Upravit agenta" }, "BUTTON_TEXT": "Upravit", diff --git a/app/javascript/dashboard/i18n/locale/cs/contact.json b/app/javascript/dashboard/i18n/locale/cs/contact.json index de6d886a9..9b84c4b04 100644 --- a/app/javascript/dashboard/i18n/locale/cs/contact.json +++ b/app/javascript/dashboard/i18n/locale/cs/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Zadejte název společnosti", "LABEL": "Název společnosti" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Odebrat", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Zadejte uživatelské jméno na Facebooku", diff --git a/app/javascript/dashboard/i18n/locale/cs/conversation.json b/app/javascript/dashboard/i18n/locale/cs/conversation.json index 69e9d3b71..48180e03a 100644 --- a/app/javascript/dashboard/i18n/locale/cs/conversation.json +++ b/app/javascript/dashboard/i18n/locale/cs/conversation.json @@ -166,7 +166,15 @@ "COPY": "Kopírovat", "DELETE": "Vymazat", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Vymazat", + "CANCEL": "Zrušit" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json index 83818cad5..07ad8139c 100644 --- a/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Funkce", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger skript", diff --git a/app/javascript/dashboard/i18n/locale/cs/settings.json b/app/javascript/dashboard/i18n/locale/cs/settings.json index b78cddff7..da7a9529f 100644 --- a/app/javascript/dashboard/i18n/locale/cs/settings.json +++ b/app/javascript/dashboard/i18n/locale/cs/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Kopírovat", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Kód byl úspěšně zkopírován do schránky" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/da/advancedFilters.json b/app/javascript/dashboard/i18n/locale/da/advancedFilters.json index e17710b2c..a9b191eee 100644 --- a/app/javascript/dashboard/i18n/locale/da/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/da/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Er ikke til stede", "is_greater_than": "Er større end", "is_less_than": "Er mindre end", - "days_before": "Er x dage før" + "days_before": "Er x dage før", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "Sandt", diff --git a/app/javascript/dashboard/i18n/locale/da/agentMgmt.json b/app/javascript/dashboard/i18n/locale/da/agentMgmt.json index 45a45bcb6..0fa2b4825 100644 --- a/app/javascript/dashboard/i18n/locale/da/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/da/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "E-Mail Adresse", "PLACEHOLDER": "Indtast venligst en e-mail adresse på agenten" }, + "AGENT_AVAILABILITY": { + "LABEL": "Tilgængelighed", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Rediger Agent" }, "BUTTON_TEXT": "Rediger", diff --git a/app/javascript/dashboard/i18n/locale/da/contact.json b/app/javascript/dashboard/i18n/locale/da/contact.json index 2e2025b22..bd97d70ab 100644 --- a/app/javascript/dashboard/i18n/locale/da/contact.json +++ b/app/javascript/dashboard/i18n/locale/da/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Indtast virksomhedens navn", "LABEL": "Virksomhedens Navn" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Land Navn", + "SELECT_PLACEHOLDER": "Vælg", + "REMOVE": "Fjern", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Indtast Facebook brugernavn", diff --git a/app/javascript/dashboard/i18n/locale/da/conversation.json b/app/javascript/dashboard/i18n/locale/da/conversation.json index 1e8c97d3f..c759dd823 100644 --- a/app/javascript/dashboard/i18n/locale/da/conversation.json +++ b/app/javascript/dashboard/i18n/locale/da/conversation.json @@ -166,7 +166,15 @@ "COPY": "Kopiér", "DELETE": "Slet", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Slet", + "CANCEL": "Annuller" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json index 28dfb7f61..2cb1d5943 100644 --- a/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Funktioner", "DISPLAY_FILE_PICKER": "Vis filvælger på widget'en", "DISPLAY_EMOJI_PICKER": "Vis emoji-vælger på widget'en", - "ALLOW_END_CONVERSATION": "Tillad brugere at afslutte samtale fra widget" + "ALLOW_END_CONVERSATION": "Tillad brugere at afslutte samtale fra widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger- Script", diff --git a/app/javascript/dashboard/i18n/locale/da/settings.json b/app/javascript/dashboard/i18n/locale/da/settings.json index ade808a68..8903887d7 100644 --- a/app/javascript/dashboard/i18n/locale/da/settings.json +++ b/app/javascript/dashboard/i18n/locale/da/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Kopiér", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Kode kopieret til udklipsholder med succes" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/de/advancedFilters.json b/app/javascript/dashboard/i18n/locale/de/advancedFilters.json index e9dd89be2..e6eb76b63 100644 --- a/app/javascript/dashboard/i18n/locale/de/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/de/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Ist nicht anwesend", "is_greater_than": "Ist größer als", "is_less_than": "Ist kleiner als", - "days_before": "Ist x Tage her" + "days_before": "Ist x Tage her", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "Ja", diff --git a/app/javascript/dashboard/i18n/locale/de/agentMgmt.json b/app/javascript/dashboard/i18n/locale/de/agentMgmt.json index f6bdf07eb..4d77637ca 100644 --- a/app/javascript/dashboard/i18n/locale/de/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/de/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "E-Mail-Addresse", "PLACEHOLDER": "Bitte geben Sie eine E-Mail-Adresse des Agenten ein" }, + "AGENT_AVAILABILITY": { + "LABEL": "Verfügbarkeit", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Agent bearbeiten" }, "BUTTON_TEXT": "Bearbeiten", diff --git a/app/javascript/dashboard/i18n/locale/de/contact.json b/app/javascript/dashboard/i18n/locale/de/contact.json index 5369d2af2..a5b039f59 100644 --- a/app/javascript/dashboard/i18n/locale/de/contact.json +++ b/app/javascript/dashboard/i18n/locale/de/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Firmenname eingeben", "LABEL": "Firmenname" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Ländername", + "SELECT_PLACEHOLDER": "Auswählen", + "REMOVE": "Entfernen", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Facebook-Benutzername eingeben", diff --git a/app/javascript/dashboard/i18n/locale/de/conversation.json b/app/javascript/dashboard/i18n/locale/de/conversation.json index 2ff7277b2..faf4b2db7 100644 --- a/app/javascript/dashboard/i18n/locale/de/conversation.json +++ b/app/javascript/dashboard/i18n/locale/de/conversation.json @@ -166,7 +166,15 @@ "COPY": "Kopieren", "DELETE": "Löschen", "CREATE_A_CANNED_RESPONSE": "Zu vorgefertigten Antworten hinzufügen", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Löschen", + "CANCEL": "Stornieren" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json index 3b3023c20..d6f05f2ad 100644 --- a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Funktionen", "DISPLAY_FILE_PICKER": "Dateiauswahl im Widget anzeigen", "DISPLAY_EMOJI_PICKER": "Emoji-Auswahl im Widget anzeigen", - "ALLOW_END_CONVERSATION": "Benutzern erlauben, die Konversation vom Widget zu beenden" + "ALLOW_END_CONVERSATION": "Benutzern erlauben, die Konversation vom Widget zu beenden", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger-Skript", diff --git a/app/javascript/dashboard/i18n/locale/de/settings.json b/app/javascript/dashboard/i18n/locale/de/settings.json index b8feb06e5..f7f7c9d57 100644 --- a/app/javascript/dashboard/i18n/locale/de/settings.json +++ b/app/javascript/dashboard/i18n/locale/de/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Kopieren", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code erfolgreich in die Zwischenablage kopiert" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/el/advancedFilters.json b/app/javascript/dashboard/i18n/locale/el/advancedFilters.json index 8af93fe25..ada58acf8 100644 --- a/app/javascript/dashboard/i18n/locale/el/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/el/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Δεν υπάρχει", "is_greater_than": "Είναι μεγαλύτερο από", "is_less_than": "Είναι μικρότερο από", - "days_before": "Είναι x ημέρες πριν" + "days_before": "Είναι x ημέρες πριν", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/el/agentMgmt.json b/app/javascript/dashboard/i18n/locale/el/agentMgmt.json index cfe12f617..56d66ebfa 100644 --- a/app/javascript/dashboard/i18n/locale/el/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/el/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Διεύθυνση Email", "PLACEHOLDER": "Παρακαλώ εισάγετε το email του πράκτορα" }, + "AGENT_AVAILABILITY": { + "LABEL": "Διαθεσιμότητα", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Καταχώρηση" }, "BUTTON_TEXT": "Επεξεργασία", diff --git a/app/javascript/dashboard/i18n/locale/el/contact.json b/app/javascript/dashboard/i18n/locale/el/contact.json index aad4b23b9..977988851 100644 --- a/app/javascript/dashboard/i18n/locale/el/contact.json +++ b/app/javascript/dashboard/i18n/locale/el/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Εισάγετε το όνομα της εταιρείας", "LABEL": "Όνομα Εταιρείας" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Όνομα Χώρας", + "SELECT_PLACEHOLDER": "Επιλογή", + "REMOVE": "Διαγραφή", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Εισάγετε το όνομα χρήστη στο Facebook", diff --git a/app/javascript/dashboard/i18n/locale/el/conversation.json b/app/javascript/dashboard/i18n/locale/el/conversation.json index f9d725d4b..af15d1c34 100644 --- a/app/javascript/dashboard/i18n/locale/el/conversation.json +++ b/app/javascript/dashboard/i18n/locale/el/conversation.json @@ -166,7 +166,15 @@ "COPY": "Αντιγραφή", "DELETE": "Διαγραφή", "CREATE_A_CANNED_RESPONSE": "Προσθήκη στις έτοιμες απαντήσεις", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Διαγραφή", + "CANCEL": "Άκυρο" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json index 2989314b6..b1d938756 100644 --- a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Χαρακτηριστικά", "DISPLAY_FILE_PICKER": "Να εμφανίζεται η επιλογή αρχείου στο widget", "DISPLAY_EMOJI_PICKER": "Να εμφανίζεται ο επιλογές emoji στο widget", - "ALLOW_END_CONVERSATION": "Επιτρέψτε στους χρήστες να τερματίσουν τη συνομιλία από το widget" + "ALLOW_END_CONVERSATION": "Επιτρέψτε στους χρήστες να τερματίσουν τη συνομιλία από το widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Κώδικας (Script)", diff --git a/app/javascript/dashboard/i18n/locale/el/settings.json b/app/javascript/dashboard/i18n/locale/el/settings.json index 382d780dd..b1f4b16bf 100644 --- a/app/javascript/dashboard/i18n/locale/el/settings.json +++ b/app/javascript/dashboard/i18n/locale/el/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Αντιγραφή", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Ο κώδικας αντιγράφτηκε με επιτυχία στο πρόχειρο" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/en/advancedFilters.json b/app/javascript/dashboard/i18n/locale/en/advancedFilters.json index 46a573c42..a32c1bd9d 100644 --- a/app/javascript/dashboard/i18n/locale/en/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/en/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/en/agentMgmt.json b/app/javascript/dashboard/i18n/locale/en/agentMgmt.json index 0f965c717..13e7e818c 100644 --- a/app/javascript/dashboard/i18n/locale/en/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/en/agentMgmt.json @@ -33,6 +33,7 @@ "PLACEHOLDER": "Please select a role", "ERROR": "Role is required" }, + "EMAIL": { "LABEL": "Email Address", "PLACEHOLDER": "Please enter an email address of the agent" @@ -74,6 +75,11 @@ "LABEL": "Email Address", "PLACEHOLDER": "Please enter an email address of the agent" }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Edit Agent" }, "BUTTON_TEXT": "Edit", diff --git a/app/javascript/dashboard/i18n/locale/en/auditLogs.json b/app/javascript/dashboard/i18n/locale/en/auditLogs.json new file mode 100644 index 000000000..e288e2959 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/en/auditLogs.json @@ -0,0 +1,24 @@ +{ + "AUDIT_LOGS": { + "HEADER": "Audit Logs", + "HEADER_BTN_TXT": "Add Audit Logs", + "LOADING": "Fetching Audit Logs", + "SEARCH_404": "There are no items matching this query", + "SIDEBAR_TXT": "

Audit Logs

Audit Logs are trails for events and actions in a Chatwoot System.

", + "LIST": { + "404": "There are no Audit Logs available in this account.", + "TITLE": "Manage Audit Logs", + "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.", + "TABLE_HEADER": [ + "User", + "Action", + "IP Address", + "Time" + ] + }, + "API": { + "SUCCESS_MESSAGE": "AuditLogs retrieved successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/en/contact.json b/app/javascript/dashboard/i18n/locale/en/contact.json index 3b92097a1..bfeb2c4a9 100644 --- a/app/javascript/dashboard/i18n/locale/en/contact.json +++ b/app/javascript/dashboard/i18n/locale/en/contact.json @@ -120,8 +120,9 @@ "PHONE_NUMBER": { "PLACEHOLDER": "Enter the phone number of the contact", "LABEL": "Phone Number", - "HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]", + "HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]. You can select the dial code from the dropdown.", "ERROR": "Phone number should be either empty or of E.164 format", + "DIAL_CODE_ERROR": "Please select a dial code from the list", "DUPLICATE": "This phone number is in use for another contact." }, "LOCATION": { @@ -132,6 +133,17 @@ "PLACEHOLDER": "Enter the company name", "LABEL": "Company Name" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Enter the Facebook username", @@ -346,5 +358,4 @@ "ERROR_MESSAGE": "Could not merge contacts, try again!" } } - } diff --git a/app/javascript/dashboard/i18n/locale/en/conversation.json b/app/javascript/dashboard/i18n/locale/en/conversation.json index f98a3cdc0..597799c15 100644 --- a/app/javascript/dashboard/i18n/locale/en/conversation.json +++ b/app/javascript/dashboard/i18n/locale/en/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copy", "DELETE": "Delete", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Delete", + "CANCEL": "Cancel" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json index 87ec7a845..14f60eac8 100644 --- a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", @@ -477,6 +478,8 @@ "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key", "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here", "WHATSAPP_SECTION_UPDATE_BUTTON": "Update", + "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token", + "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.", "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings" }, "AUTO_ASSIGNMENT": { diff --git a/app/javascript/dashboard/i18n/locale/en/index.js b/app/javascript/dashboard/i18n/locale/en/index.js index 387241f31..434e50e1d 100644 --- a/app/javascript/dashboard/i18n/locale/en/index.js +++ b/app/javascript/dashboard/i18n/locale/en/index.js @@ -2,6 +2,7 @@ import advancedFilters from './advancedFilters.json'; import agentBots from './agentBots.json'; import agentMgmt from './agentMgmt.json'; import attributesMgmt from './attributesMgmt.json'; +import auditLogs from './auditLogs.json'; import automation from './automation.json'; import bulkActions from './bulkActions.json'; import campaign from './campaign.json'; @@ -34,6 +35,7 @@ export default { ...agentBots, ...agentMgmt, ...attributesMgmt, + ...auditLogs, ...automation, ...bulkActions, ...campaign, diff --git a/app/javascript/dashboard/i18n/locale/en/settings.json b/app/javascript/dashboard/i18n/locale/en/settings.json index a37884db8..de972eb78 100644 --- a/app/javascript/dashboard/i18n/locale/en/settings.json +++ b/app/javascript/dashboard/i18n/locale/en/settings.json @@ -160,6 +160,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Copied to clipboard" }, "SHOW_MORE_BLOCK": { @@ -198,6 +199,7 @@ "HOME": "Home", "AGENTS": "Agents", "AGENT_BOTS": "Bots", + "AUDIT_LOGS": "Audit Logs", "INBOXES": "Inboxes", "NOTIFICATIONS": "Notifications", "CANNED_RESPONSES": "Canned Responses", diff --git a/app/javascript/dashboard/i18n/locale/es/advancedFilters.json b/app/javascript/dashboard/i18n/locale/es/advancedFilters.json index 113e4aa37..2d2323d38 100644 --- a/app/javascript/dashboard/i18n/locale/es/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/es/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "No está presente", "is_greater_than": "Es mayor que", "is_less_than": "Es menor que", - "days_before": "Es X días antes" + "days_before": "Es X días antes", + "starts_with": "Empieza con" }, "ATTRIBUTE_LABELS": { "TRUE": "Verdadero", diff --git a/app/javascript/dashboard/i18n/locale/es/agentMgmt.json b/app/javascript/dashboard/i18n/locale/es/agentMgmt.json index c26e6af9d..04cd4c9e4 100644 --- a/app/javascript/dashboard/i18n/locale/es/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/es/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Dirección de email", "PLACEHOLDER": "Por favor, introduzca una dirección de correo electrónico del agente" }, + "AGENT_AVAILABILITY": { + "LABEL": "Disponibilidad", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Editar agente" }, "BUTTON_TEXT": "Editar", diff --git a/app/javascript/dashboard/i18n/locale/es/contact.json b/app/javascript/dashboard/i18n/locale/es/contact.json index a50b18ad7..215b96386 100644 --- a/app/javascript/dashboard/i18n/locale/es/contact.json +++ b/app/javascript/dashboard/i18n/locale/es/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Escriba el nombre de la empresa", "LABEL": "Empresa" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Nombre del país", + "SELECT_PLACEHOLDER": "Seleccionar", + "REMOVE": "Eliminar", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Escriba el usuario de Facebook", diff --git a/app/javascript/dashboard/i18n/locale/es/conversation.json b/app/javascript/dashboard/i18n/locale/es/conversation.json index 98417449d..3ee75ac74 100644 --- a/app/javascript/dashboard/i18n/locale/es/conversation.json +++ b/app/javascript/dashboard/i18n/locale/es/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copiar", "DELETE": "Eliminar", "CREATE_A_CANNED_RESPONSE": "Añadir a respuestas predefinidas", - "TRANSLATE": "Traducir" + "TRANSLATE": "Traducir", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Eliminar", + "CANCEL": "Cancelar" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json index a62477ccc..fed3a0a1e 100644 --- a/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Características", "DISPLAY_FILE_PICKER": "Mostrar el selector de archivos en el widget", "DISPLAY_EMOJI_PICKER": "Mostrar el selector de emoji en el widget", - "ALLOW_END_CONVERSATION": "Permitir a los usuarios finalizar conversaciones desde el widget" + "ALLOW_END_CONVERSATION": "Permitir a los usuarios finalizar conversaciones desde el widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Script de Messenger", diff --git a/app/javascript/dashboard/i18n/locale/es/search.json b/app/javascript/dashboard/i18n/locale/es/search.json index 15fbb3e8f..138d847cb 100644 --- a/app/javascript/dashboard/i18n/locale/es/search.json +++ b/app/javascript/dashboard/i18n/locale/es/search.json @@ -14,8 +14,8 @@ "EMPTY_STATE": "Ningún %{item} encontrado para la consulta '%{query}'", "EMPTY_STATE_FULL": "No se han encontrado resultados para la consulta '%{query}'", "PLACEHOLDER_KEYBINDING": "/ para enfocar", - "INPUT_PLACEHOLDER": "Search messages, contacts or conversations", - "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.", + "INPUT_PLACEHOLDER": "Buscar mensajes, contactos o conversaciones", + "EMPTY_STATE_DEFAULT": "Buscar por Id de conversación, correo electrónico, número de teléfono, mensajes para mejores resultados de búsqueda.", "BOT_LABEL": "Bot", "READ_MORE": "Leer más", "WROTE": "escribió:" diff --git a/app/javascript/dashboard/i18n/locale/es/settings.json b/app/javascript/dashboard/i18n/locale/es/settings.json index 37c40451a..ecfa80ec7 100644 --- a/app/javascript/dashboard/i18n/locale/es/settings.json +++ b/app/javascript/dashboard/i18n/locale/es/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copiar", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Código copiado al portapapeles con éxito" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/fa/advancedFilters.json b/app/javascript/dashboard/i18n/locale/fa/advancedFilters.json index 7a2ab7072..56f81139e 100644 --- a/app/javascript/dashboard/i18n/locale/fa/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/fa/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "در حال حاضر وجود ندارد", "is_greater_than": "بزرگتر از", "is_less_than": "کوچکتر از", - "days_before": "x روز قبل است" + "days_before": "x روز قبل است", + "starts_with": "شروع می‌‌شود با" }, "ATTRIBUTE_LABELS": { "TRUE": "درست", diff --git a/app/javascript/dashboard/i18n/locale/fa/agentMgmt.json b/app/javascript/dashboard/i18n/locale/fa/agentMgmt.json index fd0e60e07..f9bb7c095 100644 --- a/app/javascript/dashboard/i18n/locale/fa/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fa/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "ایمیل", "PLACEHOLDER": "لطفا ایمیل اپراتور را وارد کنید" }, + "AGENT_AVAILABILITY": { + "LABEL": "در دسترس", + "PLACEHOLDER": "لطفا یک وضعیت در دسترس بودن را انتخاب کنید", + "ERROR": "در دسترس بودن الزامی است" + }, "SUBMIT": "تغییر ایجنت" }, "BUTTON_TEXT": "ویرایش", diff --git a/app/javascript/dashboard/i18n/locale/fa/contact.json b/app/javascript/dashboard/i18n/locale/fa/contact.json index d89b7fdad..846270653 100644 --- a/app/javascript/dashboard/i18n/locale/fa/contact.json +++ b/app/javascript/dashboard/i18n/locale/fa/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "نام شرکت را وارد کنید", "LABEL": "نام شرکت" }, + "COUNTRY": { + "PLACEHOLDER": "نام کشور را وارد کنید", + "LABEL": "نام کشور", + "SELECT_PLACEHOLDER": "انتخاب کنید", + "REMOVE": "حذف", + "SELECT_COUNTRY": "کشور را انتخاب کنید" + }, + "CITY": { + "PLACEHOLDER": "نام شهر را وارد کنید", + "LABEL": "نام شهر" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "نام‌کاربری فیس‌بوک را وارد کنید", diff --git a/app/javascript/dashboard/i18n/locale/fa/conversation.json b/app/javascript/dashboard/i18n/locale/fa/conversation.json index cae027c34..ae7e82c7d 100644 --- a/app/javascript/dashboard/i18n/locale/fa/conversation.json +++ b/app/javascript/dashboard/i18n/locale/fa/conversation.json @@ -166,7 +166,15 @@ "COPY": "کپی", "DELETE": "حذف", "CREATE_A_CANNED_RESPONSE": "اضافه کردن به پاسخ‌های آماده", - "TRANSLATE": "ترجمه" + "TRANSLATE": "ترجمه", + "COPY_PERMALINK": "کپی پیوند پیام", + "LINK_COPIED": "نشانی اینترنتی پیام در کلیپ‌بورد کپی شد", + "DELETE_CONFIRMATION": { + "TITLE": "آیا از حذف این پیام مطمئن هستید؟", + "MESSAGE": "شما نمی توانید این عمل را لغو کنید", + "DELETE": "حذف", + "CANCEL": "انصراف" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json index 47b5211a7..565e92108 100644 --- a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "امکانات", "DISPLAY_FILE_PICKER": "نمایش گزینه ضمیه فایل در ویجت", "DISPLAY_EMOJI_PICKER": "نمایش گزینه انتخاب ایموجی در ویجت", - "ALLOW_END_CONVERSATION": "به کاربران اجازه دهید مکالمه را از ویجت پایان دهند" + "ALLOW_END_CONVERSATION": "به کاربران اجازه دهید مکالمه را از ویجت پایان دهند", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "اسکریپت ویجت", diff --git a/app/javascript/dashboard/i18n/locale/fa/search.json b/app/javascript/dashboard/i18n/locale/fa/search.json index 18cd327c8..b695bc8b0 100644 --- a/app/javascript/dashboard/i18n/locale/fa/search.json +++ b/app/javascript/dashboard/i18n/locale/fa/search.json @@ -11,13 +11,13 @@ "CONVERSATIONS": "گفتگوها", "MESSAGES": "پیام‌ها" }, - "EMPTY_STATE": "No %{item} found for query '%{query}'", - "EMPTY_STATE_FULL": "No results found for query '%{query}'", - "PLACEHOLDER_KEYBINDING": "/ to focus", + "EMPTY_STATE": "هیچ %{item} برای درخواست '%{query}' یافت نشد", + "EMPTY_STATE_FULL": "هیچ نتیجه ای برای پرس و جو «%{query}» یافت نشد", + "PLACEHOLDER_KEYBINDING": "/ برای تمرکز", "INPUT_PLACEHOLDER": "جستجوی پیام‌ها، مخاطبین یا گفتگوها", "EMPTY_STATE_DEFAULT": "جستجو بر اساس شناسه گفتگو، ایمیل، شماره تلفن، پیام‌ها برای نتایج جستجوی بهتر.", "BOT_LABEL": "ربات", "READ_MORE": "ادامه مطلب", - "WROTE": "wrote:" + "WROTE": "نوشت:" } } diff --git a/app/javascript/dashboard/i18n/locale/fa/settings.json b/app/javascript/dashboard/i18n/locale/fa/settings.json index 52958e7eb..0893945b9 100644 --- a/app/javascript/dashboard/i18n/locale/fa/settings.json +++ b/app/javascript/dashboard/i18n/locale/fa/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "کپی", + "CODEPEN": "در CodePen باز کنید", "COPY_SUCCESSFUL": "کد به حافظه کپی شد" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/fi/advancedFilters.json b/app/javascript/dashboard/i18n/locale/fi/advancedFilters.json index 97c140b9c..013e51607 100644 --- a/app/javascript/dashboard/i18n/locale/fi/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/fi/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/fi/agentMgmt.json b/app/javascript/dashboard/i18n/locale/fi/agentMgmt.json index 83e327e98..77c726d8f 100644 --- a/app/javascript/dashboard/i18n/locale/fi/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fi/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Sähköpostiosoite", "PLACEHOLDER": "Ole hyvä ja kirjoita edustajan sähköpostiosoite" }, + "AGENT_AVAILABILITY": { + "LABEL": "Saatavuus", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Muokkaa edustajaa" }, "BUTTON_TEXT": "Muokkaa", diff --git a/app/javascript/dashboard/i18n/locale/fi/contact.json b/app/javascript/dashboard/i18n/locale/fi/contact.json index 68791ad7a..2d50f8fc2 100644 --- a/app/javascript/dashboard/i18n/locale/fi/contact.json +++ b/app/javascript/dashboard/i18n/locale/fi/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Anna yrityksen nimi", "LABEL": "Yrityksen nimi" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Poista", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Syötä Facebookin käyttäjätunnus", diff --git a/app/javascript/dashboard/i18n/locale/fi/conversation.json b/app/javascript/dashboard/i18n/locale/fi/conversation.json index d3a1d7e20..78d5654ec 100644 --- a/app/javascript/dashboard/i18n/locale/fi/conversation.json +++ b/app/javascript/dashboard/i18n/locale/fi/conversation.json @@ -166,7 +166,15 @@ "COPY": "Kopioi", "DELETE": "Poista", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Poista", + "CANCEL": "Peruuta" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json index d9b340d68..eb5db4e44 100644 --- a/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Ominaisuudet", "DISPLAY_FILE_PICKER": "Näytä liitevalitsin widgetissä", "DISPLAY_EMOJI_PICKER": "Näytä emojivalitsin widgetissä", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger-skripti", diff --git a/app/javascript/dashboard/i18n/locale/fi/settings.json b/app/javascript/dashboard/i18n/locale/fi/settings.json index da4f75285..f1a139347 100644 --- a/app/javascript/dashboard/i18n/locale/fi/settings.json +++ b/app/javascript/dashboard/i18n/locale/fi/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Kopioi", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Koodi kopioitu leikepöydälle onnistuneesti" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/fr/advancedFilters.json b/app/javascript/dashboard/i18n/locale/fr/advancedFilters.json index 80300b819..655912400 100644 --- a/app/javascript/dashboard/i18n/locale/fr/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/fr/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "N'est pas présent", "is_greater_than": "Est plus grand que", "is_less_than": "Est inférieur à", - "days_before": "Est x jours avant" + "days_before": "Est x jours avant", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "Vrai", diff --git a/app/javascript/dashboard/i18n/locale/fr/agentMgmt.json b/app/javascript/dashboard/i18n/locale/fr/agentMgmt.json index 27ef03fe8..b43b374fe 100644 --- a/app/javascript/dashboard/i18n/locale/fr/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fr/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Adresse de courriel", "PLACEHOLDER": "Veuillez entrer l'adresse de courriel de l'agent" }, + "AGENT_AVAILABILITY": { + "LABEL": "Disponibilité", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Modifier l'agent" }, "BUTTON_TEXT": "Modifier", diff --git a/app/javascript/dashboard/i18n/locale/fr/contact.json b/app/javascript/dashboard/i18n/locale/fr/contact.json index 447124ae4..f45021741 100644 --- a/app/javascript/dashboard/i18n/locale/fr/contact.json +++ b/app/javascript/dashboard/i18n/locale/fr/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Entrez le nom de la société", "LABEL": "Nom de la société" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Nom du pays", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Supprimer", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Entrez le nom d'utilisateur Facebook", diff --git a/app/javascript/dashboard/i18n/locale/fr/conversation.json b/app/javascript/dashboard/i18n/locale/fr/conversation.json index e3b4ee4be..c86781a3d 100644 --- a/app/javascript/dashboard/i18n/locale/fr/conversation.json +++ b/app/javascript/dashboard/i18n/locale/fr/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copier", "DELETE": "Supprimer", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Supprimer", + "CANCEL": "Annuler" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json index 57d92173c..da28a23f8 100644 --- a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Fonctionnalités", "DISPLAY_FILE_PICKER": "Afficher le sélecteur de fichiers sur le widget", "DISPLAY_EMOJI_PICKER": "Afficher le sélecteur d'émoticônes sur le widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Script du Widget Web", diff --git a/app/javascript/dashboard/i18n/locale/fr/settings.json b/app/javascript/dashboard/i18n/locale/fr/settings.json index 5695ef2cb..c76f8a13b 100644 --- a/app/javascript/dashboard/i18n/locale/fr/settings.json +++ b/app/javascript/dashboard/i18n/locale/fr/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copier", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code copié dans le presse-papier avec succès" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/he/advancedFilters.json b/app/javascript/dashboard/i18n/locale/he/advancedFilters.json index 71db57330..546eef447 100644 --- a/app/javascript/dashboard/i18n/locale/he/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/he/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "לא נוכח", "is_greater_than": "גדול מ", "is_less_than": "קטן מ", - "days_before": "זה x ימים לפני" + "days_before": "זה x ימים לפני", + "starts_with": "מתחיל עם" }, "ATTRIBUTE_LABELS": { "TRUE": "נכון", diff --git a/app/javascript/dashboard/i18n/locale/he/agentMgmt.json b/app/javascript/dashboard/i18n/locale/he/agentMgmt.json index 160dca10d..740bf130e 100644 --- a/app/javascript/dashboard/i18n/locale/he/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/he/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "כתובת מייל", "PLACEHOLDER": "אנא הכנס כתובת מייל של הסוכן" }, + "AGENT_AVAILABILITY": { + "LABEL": "זמינות", + "PLACEHOLDER": "אנא בחר סטטוס זמינות", + "ERROR": "נדרשת זמינות" + }, "SUBMIT": "ערוך סוכן" }, "BUTTON_TEXT": "ערוך", diff --git a/app/javascript/dashboard/i18n/locale/he/contact.json b/app/javascript/dashboard/i18n/locale/he/contact.json index ce5087118..3dfc780ab 100644 --- a/app/javascript/dashboard/i18n/locale/he/contact.json +++ b/app/javascript/dashboard/i18n/locale/he/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "הזן את שם החברה", "LABEL": "שם החברה" }, + "COUNTRY": { + "PLACEHOLDER": "הזן את שם המדינה", + "LABEL": "שם המדינה", + "SELECT_PLACEHOLDER": "בחר", + "REMOVE": "הסר", + "SELECT_COUNTRY": "בחר מדינה" + }, + "CITY": { + "PLACEHOLDER": "הזן את שם העיר", + "LABEL": "שם העיר" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "הזן את שם המשתמש בפייסבוק", diff --git a/app/javascript/dashboard/i18n/locale/he/contactFilters.json b/app/javascript/dashboard/i18n/locale/he/contactFilters.json index 21b968262..6a96ca2f6 100644 --- a/app/javascript/dashboard/i18n/locale/he/contactFilters.json +++ b/app/javascript/dashboard/i18n/locale/he/contactFilters.json @@ -1,15 +1,15 @@ { "CONTACTS_FILTER": { - "TITLE": "Filter Contacts", - "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.", + "TITLE": "סינון אנשי קשר", + "SUBTITLE": "הוסיפו פילטרים מתחת ולחצו 'אישור' בכדי לסנן אנשי קשר.", "ADD_NEW_FILTER": "הוסף מסנן", - "CLEAR_ALL_FILTERS": "Clear All Filters", + "CLEAR_ALL_FILTERS": "ניקוי כל הפילטרים", "FILTER_DELETE_ERROR": "צריך להיות לפחות מסנן אחד כדי לשמור", "SUBMIT_BUTTON_LABEL": "שלח", "CANCEL_BUTTON_LABEL": "ביטול", "CLEAR_BUTTON_LABEL": "מחק סננים", "EMPTY_VALUE_ERROR": "חובה ערך", - "TOOLTIP_LABEL": "Filter contacts", + "TOOLTIP_LABEL": "סינון אנשי קשר", "QUERY_DROPDOWN_LABELS": { "AND": "ו/גם", "OR": "או" @@ -22,14 +22,14 @@ "is_present": "נוכח", "is_not_present": "לא נוכח", "is_greater_than": "גדול מ", - "is_lesser_than": "Is lesser than", + "is_lesser_than": "הוא פחות מ", "days_before": "זה x ימים לפני" }, "ATTRIBUTES": { "NAME": "שם", "EMAIL": "אימייל", "PHONE_NUMBER": "מספר טלפון", - "IDENTIFIER": "Identifier", + "IDENTIFIER": "מזהה", "CITY": "עיר", "COUNTRY": "מדינה", "CUSTOM_ATTRIBUTE_LIST": "רשימה", @@ -39,7 +39,7 @@ "CUSTOM_ATTRIBUTE_CHECKBOX": "תיבת סימון", "CREATED_AT": "הוקם ב", "LAST_ACTIVITY": "פעילות אחרונה", - "REFERER_LINK": "Referrer link" + "REFERER_LINK": "קישור מפנה" }, "GROUPS": { "STANDARD_FILTERS": "סננים סטנדרטיים", diff --git a/app/javascript/dashboard/i18n/locale/he/conversation.json b/app/javascript/dashboard/i18n/locale/he/conversation.json index ff8c2b36c..f1c842a17 100644 --- a/app/javascript/dashboard/i18n/locale/he/conversation.json +++ b/app/javascript/dashboard/i18n/locale/he/conversation.json @@ -2,7 +2,7 @@ "CONVERSATION": { "SELECT_A_CONVERSATION": "אנא בחר שיחה מהחלונית השמאלית", "CSAT_REPLY_MESSAGE": "נא דרג שיחה זו", - "404": "Sorry, we cannot find the conversation. Please try again", + "404": "מצטערים, לא מצאנו את השיחה המבוקשת, נא לנסות שוב", "SWITCH_VIEW_LAYOUT": "החלף תצוגה", "DASHBOARD_APP_TAB_MESSAGES": "הודעות", "UNVERIFIED_SESSION": "זהות המשתמש לא מְאוּמָתת", @@ -35,7 +35,7 @@ "REMOVE_SELECTION": "הסר בחירה", "DOWNLOAD": "הורד", "UNKNOWN_FILE_TYPE": "קובץ לא ידוע", - "SAVE_CONTACT": "Save", + "SAVE_CONTACT": "שמור", "UPLOADING_ATTACHMENTS": "מעלה קובץ מצורף...", "SUCCESS_DELETE_MESSAGE": "ההודעה נמחקה בהצלחה", "FAIL_DELETE_MESSSAGE": "לא ניתן למחוק את ההודעה! נסה שוב", @@ -43,8 +43,8 @@ "RATING_TITLE": "דירוג", "FEEDBACK_TITLE": "משוב", "CARD": { - "SHOW_LABELS": "Show labels", - "HIDE_LABELS": "Hide labels" + "SHOW_LABELS": "הצג תויות", + "HIDE_LABELS": "הסתר תוויות" }, "HEADER": { "RESOLVE_ACTION": "פתרון", @@ -69,7 +69,7 @@ "CARD_CONTEXT_MENU": { "PENDING": "סמן כממתין", "RESOLVED": "סמן כפתור", - "MARK_AS_UNREAD": "Mark as unread", + "MARK_AS_UNREAD": "סמן כלא נקרא", "REOPEN": "פתח מחדש את השיחה", "SNOOZE": { "TITLE": "נודניק", @@ -83,15 +83,15 @@ "ASSIGN_TEAM": "שייך צוות", "API": { "AGENT_ASSIGNMENT": { - "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"", + "SUCCESFUL": "מזהה שיחה %{conversationId} קושר ל %{agentName}", "FAILED": "השמת הסוכן לא הצליחה. בבקשה נסה שנית." }, "LABEL_ASSIGNMENT": { - "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}", - "FAILED": "Couldn't assign label. Please try again." + "SUCCESFUL": "התוית %{labelName} קושרה למזהה שיחה %{conversationId}", + "FAILED": "לא ניתן לקשר שורה. אנא נסו שנית" }, "TEAM_ASSIGNMENT": { - "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}", + "SUCCESFUL": "הצוות %{team} קושר לשיחה מספר %{conversationId}", "FAILED": "השמה לצוות לא הצליחה, בבקשה נסה שנית." } } @@ -135,8 +135,8 @@ } }, "UNDEFINED_VARIABLES": { - "TITLE": "Undefined variables", - "MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?", + "TITLE": "משתנים בלתי מזוהים", + "MESSAGE": "יש לך {undefinedVariablesCount} משתנים בלתי מזוהים בהודעה {undefinedVariables}. תרצה לשלוח את ההודעה בכל זאת?", "CONFIRM": { "YES": "שלח", "CANCEL": "ביטול" @@ -147,11 +147,11 @@ "CHANGE_STATUS": "סטטוס השיחה השתנה", "CHANGE_STATUS_FAILED": "סטטוס השיחה השתנה לנכשלה", "CHANGE_AGENT": "שיוך שיחה השתנתה", - "CHANGE_AGENT_FAILED": "Assignee change failed", + "CHANGE_AGENT_FAILED": "שינוי קישור נכשל", "ASSIGN_LABEL_SUCCESFUL": "סמן משימה כבוצעה בהצלחה", "ASSIGN_LABEL_FAILED": "סמן משימה כנכשלה", "CHANGE_TEAM": "שיחת קבוצה השתנתה", - "FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit", + "FILE_SIZE_LIMIT": "הקובץ גדול מ{MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE}MB מגבלת העלאה", "MESSAGE_ERROR": "לא ניתן לשלוח הודעה, אנא נסה שוב מאוחר יותר", "SENT_BY": "נשלח על ידי:", "BOT": "בוט", @@ -166,7 +166,15 @@ "COPY": "העתק", "DELETE": "מחק", "CREATE_A_CANNED_RESPONSE": "הוסף לתגובות מוכנות", - "TRANSLATE": "Translate" + "TRANSLATE": "תרגום", + "COPY_PERMALINK": "העתק קישור להודעה", + "LINK_COPIED": "קישור להודעה הועתק ללוח", + "DELETE_CONFIRMATION": { + "TITLE": "בטוחים שאתם רוצים למחוק את ההודעה הזו?", + "MESSAGE": "לא ניתן לבטל פעולה זו", + "DELETE": "מחק", + "CANCEL": "ביטול" + } } }, "EMAIL_TRANSCRIPT": { @@ -196,39 +204,39 @@ }, "TEAM_MEMBERS": { "TITLE": "הזמן את חברי הצוות שלך", - "DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.", + "DESCRIPTION": "מאחר ואתם מוכנים לדבר עם הלקוח, הביאו את חברי הצוות שלכם לעזור לכם. תוכלו להזמין חברי צוות על ידי הוספה של כתובת הדוא\"ל שלהם לרשימת הסוכנים.", "NEW_LINK": "לחץ כאן כדי להזמין חבר צוות" }, "INBOXES": { "TITLE": "התחבר לתיבות", - "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.", + "DESCRIPTION": "חבר ערוצים שונים דרכם הלקוחות שלך היו מדברים איתך. זה יכול להיות אתר צ'אט חי, דף הפייסבוק או הטוויטר שלך או אפילו מספר הוואטסאפ שלך.", "NEW_LINK": "לחץ כאן כדי ליצור תיבה" }, "LABELS": { - "TITLE": "Organize conversations with labels", - "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.", + "TITLE": "ארגן שיחות עם תוויות", + "DESCRIPTION": "תוויות מספקות דרך קלה יותר לסווג את השיחה שלך. צור כמה תוויות כמו #support-enquiry, #billing-question וכו', כדי שתוכל להשתמש בהן בשיחה מאוחר יותר.", "NEW_LINK": "לחץ כאן כדי ליצור תגיות" } }, "CONVERSATION_SIDEBAR": { - "ASSIGNEE_LABEL": "Assigned Agent", - "SELF_ASSIGN": "Assign to me", - "TEAM_LABEL": "Assigned Team", + "ASSIGNEE_LABEL": "סוכן מוקצה", + "SELF_ASSIGN": "קשר אלי", + "TEAM_LABEL": "צוות משוייך", "SELECT": { "PLACEHOLDER": "כלום" }, "ACCORDION": { - "CONTACT_DETAILS": "Contact Details", - "CONVERSATION_ACTIONS": "Conversation Actions", + "CONTACT_DETAILS": "פרטי איש קשר", + "CONVERSATION_ACTIONS": "פעולות בשיחה", "CONVERSATION_LABELS": "תוויות שיחה", - "CONVERSATION_INFO": "Conversation Information", - "CONTACT_ATTRIBUTES": "Contact Attributes", + "CONVERSATION_INFO": "מידע על שיחה", + "CONTACT_ATTRIBUTES": "תכונות יצירת קשר", "PREVIOUS_CONVERSATION": "שיחות קודמות", - "MACROS": "Macros" + "MACROS": "מאקרו" } }, "CONVERSATION_CUSTOM_ATTRIBUTES": { - "ADD_BUTTON_TEXT": "Create attribute", + "ADD_BUTTON_TEXT": "צור תכונה", "UPDATE": { "SUCCESS": "המאפיין עודכן בהצלחה", "ERROR": "לא ניתן לעדכן את המאפיין. בבקשה נסה שוב מאוחר יותר" @@ -251,32 +259,32 @@ "EMAIL_HEADER": { "FROM": "מאת", "TO": "אל", - "BCC": "Bcc", + "BCC": "עותק מוסתר", "CC": "עותק", "SUBJECT": "נושא" }, "CONVERSATION_PARTICIPANTS": { - "SIDEBAR_MENU_TITLE": "Participating", - "SIDEBAR_TITLE": "Conversation participants", + "SIDEBAR_MENU_TITLE": "משתתף", + "SIDEBAR_TITLE": "משתתפים בשיחה", "NO_RECORDS_FOUND": "לא נמצאו תוצאות", - "ADD_PARTICIPANTS": "Select participants", + "ADD_PARTICIPANTS": "בחר משתתפים", "REMANING_PARTICIPANTS_TEXT": "+%{count} others", "REMANING_PARTICIPANT_TEXT": "+%{count} other", "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.", "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.", - "NO_PARTICIPANTS_TEXT": "No one is participating!.", - "WATCH_CONVERSATION": "Join conversation", - "YOU_ARE_WATCHING": "You are participating", + "NO_PARTICIPANTS_TEXT": "אף אחד לא משתתף!.", + "WATCH_CONVERSATION": "הצטרף לשיחה", + "YOU_ARE_WATCHING": "אתה משתתף", "API": { - "ERROR_MESSAGE": "Could not update, try again!", - "SUCCESS_MESSAGE": "Participants updated!" + "ERROR_MESSAGE": "לא ניתן היה לעדכן, נסה שוב!", + "SUCCESS_MESSAGE": "המשתתפים עודכנו!" } }, "TRANSLATE_MODAL": { - "TITLE": "View translated content", - "DESC": "You can view the translated content in each langauge.", - "ORIGINAL_CONTENT": "Original Content", - "TRANSLATED_CONTENT": "Translated Content", - "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content" + "TITLE": "הצג תוכן מתורגם", + "DESC": "תוכל לראות את התוכן המתורגם בכל שפה.", + "ORIGINAL_CONTENT": "תוכן מקורי", + "TRANSLATED_CONTENT": "תוכן מתורגם", + "NO_TRANSLATIONS_AVAILABLE": "אין תרגומים זמינים לתוכן זה" } } diff --git a/app/javascript/dashboard/i18n/locale/he/emoji.json b/app/javascript/dashboard/i18n/locale/he/emoji.json index fd81268fb..7eb8f230d 100644 --- a/app/javascript/dashboard/i18n/locale/he/emoji.json +++ b/app/javascript/dashboard/i18n/locale/he/emoji.json @@ -1,6 +1,6 @@ { "EMOJI": { - "PLACEHOLDER": "Search emojis", - "NOT_FOUND": "No emoji match your search" + "PLACEHOLDER": "חפש אימוג'י", + "NOT_FOUND": "אין אמוג'י שתואם את החיפוש שלך" } } diff --git a/app/javascript/dashboard/i18n/locale/he/generalSettings.json b/app/javascript/dashboard/i18n/locale/he/generalSettings.json index 2aad9ac69..4e44207a8 100644 --- a/app/javascript/dashboard/i18n/locale/he/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/he/generalSettings.json @@ -15,7 +15,7 @@ }, "ACCOUNT_ID": { "TITLE": "מזהה חשבון", - "NOTE": "This ID is required if you are building an API based integration" + "NOTE": "מזהה זה נדרש אם אתה בונה אינטגרציה מבוססת API" }, "NAME": { "LABEL": "שם החשבון", @@ -23,7 +23,7 @@ "ERROR": "נא להזין שם חשבון חוקי" }, "LANGUAGE": { - "LABEL": "Site language", + "LABEL": "שפת האתר", "PLACEHOLDER": "שם החשבון שלך", "ERROR": "" }, @@ -40,7 +40,7 @@ "AUTO_RESOLVE_DURATION": { "LABEL": "מספר הימים לאחר כרטיס אמור להיפתר אוטומטית אם אין פעילות", "PLACEHOLDER": "30", - "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)" + "ERROR": "אנא הזן משך פתרון אוטומטי חוקי (מינימום יום אחד ומקסימום 999 ימים)" }, "FEATURES": { "INBOUND_EMAIL_ENABLED": "רציפות השיחה עם הודעות אימייל מופעלת עבור החשבון שלך.", @@ -48,14 +48,14 @@ } }, "UPDATE_CHATWOOT": "עדכון %{latestChatwootVersion} עבור Chatwoot זמין. אנא עדכן את המופע שלך.", - "LEARN_MORE": "Learn more" + "LEARN_MORE": "למד עוד" }, "FORMS": { "MULTISELECT": { "ENTER_TO_SELECT": "הקש אנטר כדי לבחור", "ENTER_TO_REMOVE": "הקש אנטר כדי להסיר", "SELECT_ONE": "תבחר אחד", - "SELECT": "Select" + "SELECT": "בחר" } }, "NOTIFICATIONS_PAGE": { @@ -100,46 +100,46 @@ "GENERAL": "כללי", "REPORTS": "דוחות", "CONVERSATION": "שיחה", - "CHANGE_ASSIGNEE": "Change Assignee", - "CHANGE_TEAM": "Change Team", - "ADD_LABEL": "Add label to the conversation", - "REMOVE_LABEL": "Remove label from the conversation", + "CHANGE_ASSIGNEE": "שנה מוקצה", + "CHANGE_TEAM": "להחליף קבוצה", + "ADD_LABEL": "הוסף תווית לשיחה", + "REMOVE_LABEL": "הסר תווית מהשיחה", "SETTINGS": "הגדרות" }, "COMMANDS": { - "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard", - "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard", - "GO_TO_REPORTS_OVERVIEW": "Go to Reports Overview", - "GO_TO_CONVERSATION_REPORTS": "Go to Conversation Reports", - "GO_TO_AGENT_REPORTS": "Go to Agent Reports", - "GO_TO_LABEL_REPORTS": "Go to Label Reports", - "GO_TO_INBOX_REPORTS": "Go to Inbox Reports", - "GO_TO_TEAM_REPORTS": "Go to Team Reports", - "GO_TO_SETTINGS_AGENTS": "Go to Agent Settings", - "GO_TO_SETTINGS_TEAMS": "Go to Team Settings", - "GO_TO_SETTINGS_INBOXES": "Go to Inbox Settings", - "GO_TO_SETTINGS_LABELS": "Go to Label Settings", - "GO_TO_SETTINGS_CANNED_RESPONSES": "Go to Canned Response Settings", - "GO_TO_SETTINGS_APPLICATIONS": "Go to Application Settings", - "GO_TO_SETTINGS_ACCOUNT": "Go to Account Settings", - "GO_TO_SETTINGS_PROFILE": "Go to Profile Settings", - "GO_TO_NOTIFICATIONS": "Go to Notifications", - "ADD_LABELS_TO_CONVERSATION": "Add label to the conversation", - "ASSIGN_AN_AGENT": "Assign an agent", - "ASSIGN_A_TEAM": "Assign a team", - "MUTE_CONVERSATION": "Mute conversation", + "GO_TO_CONVERSATION_DASHBOARD": "עבור ללוח המחוונים לשיחה", + "GO_TO_CONTACTS_DASHBOARD": "עבור ללוח המחוונים של אנשי קשר", + "GO_TO_REPORTS_OVERVIEW": "עבור לסקירת דוחות", + "GO_TO_CONVERSATION_REPORTS": "עבור לדוחות שיחות", + "GO_TO_AGENT_REPORTS": "עבור לדוחות סוכן", + "GO_TO_LABEL_REPORTS": "עבור לדוחות תווית", + "GO_TO_INBOX_REPORTS": "עבור לדוחות תיבת הדואר הנכנס", + "GO_TO_TEAM_REPORTS": "עבור לדוחות צוותים", + "GO_TO_SETTINGS_AGENTS": "עבור להגדרות סוכן", + "GO_TO_SETTINGS_TEAMS": "עבור להגדרות צוות", + "GO_TO_SETTINGS_INBOXES": "עבור להגדרות תיבת הדואר הנכנס", + "GO_TO_SETTINGS_LABELS": "עבור להגדרות תווית", + "GO_TO_SETTINGS_CANNED_RESPONSES": "עבור להגדרות תגובה מוכנות", + "GO_TO_SETTINGS_APPLICATIONS": "עבור להגדרות אפליקציה", + "GO_TO_SETTINGS_ACCOUNT": "עבור להגדרות חשבון", + "GO_TO_SETTINGS_PROFILE": "עבור להגדרות פרופיל", + "GO_TO_NOTIFICATIONS": "עבור להודעות", + "ADD_LABELS_TO_CONVERSATION": "הוסף תווית לשיחה", + "ASSIGN_AN_AGENT": "הקצה סוכן", + "ASSIGN_A_TEAM": "הקצה צוות", + "MUTE_CONVERSATION": "שיחה אילמת", "UNMUTE_CONVERSATION": "בטל השתקת שיחה", - "REMOVE_LABEL_FROM_CONVERSATION": "Remove label from the conversation", + "REMOVE_LABEL_FROM_CONVERSATION": "הסר תווית מהשיחה", "REOPEN_CONVERSATION": "פתח מחדש את השיחה", "RESOLVE_CONVERSATION": "פתור את השיחה", - "SEND_TRANSCRIPT": "Send an email transcript", - "SNOOZE_CONVERSATION": "Snooze Conversation", - "UNTIL_NEXT_REPLY": "Until next reply", - "UNTIL_NEXT_WEEK": "Until next week", - "UNTIL_TOMORROW": "Until tomorrow" + "SEND_TRANSCRIPT": "שלח תמליל דוא\"ל", + "SNOOZE_CONVERSATION": "נודניק שיחה", + "UNTIL_NEXT_REPLY": "עד לתשובה הבאה", + "UNTIL_NEXT_WEEK": "עד שבוע הבא", + "UNTIL_TOMORROW": "עד מחר" } }, "DASHBOARD_APPS": { - "LOADING_MESSAGE": "Loading Dashboard App..." + "LOADING_MESSAGE": "טוען אפליקציית Dashboard..." } } diff --git a/app/javascript/dashboard/i18n/locale/he/helpCenter.json b/app/javascript/dashboard/i18n/locale/he/helpCenter.json index 510a9ff2d..560348e62 100644 --- a/app/javascript/dashboard/i18n/locale/he/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/he/helpCenter.json @@ -1,420 +1,420 @@ { "HELP_CENTER": { "HEADER": { - "FILTER": "Filter by", - "SORT": "Sort by", + "FILTER": "סנן לפי", + "SORT": "מיין לפי", "SETTINGS_BUTTON": "הגדרות", - "NEW_BUTTON": "New Article", + "NEW_BUTTON": "מאמר חדש", "DROPDOWN_OPTIONS": { - "PUBLISHED": "Published", - "DRAFT": "Draft", - "ARCHIVED": "Archived" + "PUBLISHED": "יצא לאור", + "DRAFT": "טיוטה", + "ARCHIVED": "בארכיון" }, "TITLES": { - "ALL_ARTICLES": "All Articles", - "MINE": "My Articles", - "DRAFT": "Draft Articles", - "ARCHIVED": "Archived Articles" + "ALL_ARTICLES": "כל המאמרים", + "MINE": "הכתבות שלי", + "DRAFT": "טיוטת מאמרים", + "ARCHIVED": "מאמרים בארכיון" } }, "EDIT_HEADER": { - "ALL_ARTICLES": "All Articles", - "PUBLISH_BUTTON": "Publish", - "MOVE_TO_ARCHIVE_BUTTON": "Move to archived", - "PREVIEW": "Preview", - "ADD_TRANSLATION": "Add translation", - "OPEN_SIDEBAR": "Open sidebar", - "CLOSE_SIDEBAR": "Close sidebar", - "SAVING": "Saving...", - "SAVED": "Saved" + "ALL_ARTICLES": "כל המאמרים", + "PUBLISH_BUTTON": "פרסם", + "MOVE_TO_ARCHIVE_BUTTON": "העבר לארכיון", + "PREVIEW": "תצוגה מקדימה", + "ADD_TRANSLATION": "הוסף תרגום", + "OPEN_SIDEBAR": "פתח סרגל צד", + "CLOSE_SIDEBAR": "סגור סרגל צד", + "SAVING": "שומר...", + "SAVED": "שמור" }, "ARTICLE_EDITOR": { "IMAGE_UPLOAD": { "TITLE": "העלה תמונה", "UPLOADING": "מעלה...", - "SUCCESS": "Image uploaded successfully", - "ERROR": "Error while uploading image", - "ERROR_FILE_SIZE": "Image size should be less than {size}MB", - "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png", - "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000" + "SUCCESS": "התמונה הועלתה בהצלחה", + "ERROR": "שגיאה בעת העלאת תמונה", + "ERROR_FILE_SIZE": "גודל התמונה צריך להיות פחות מ-{size}MB", + "ERROR_FILE_FORMAT": "פורמט התמונה צריך להיות jpg, jpeg או png", + "ERROR_FILE_DIMENSIONS": "מידות התמונה צריכות להיות פחות מ-2000 x 2000" } }, "ARTICLE_SETTINGS": { - "TITLE": "Article Settings", + "TITLE": "הגדרות מאמר", "FORM": { "CATEGORY": { - "LABEL": "Category", - "TITLE": "Select category", - "PLACEHOLDER": "Select category", - "NO_RESULT": "No category found", - "SEARCH_PLACEHOLDER": "Search category" + "LABEL": "קטגוריה", + "TITLE": "בחר קטגוריה", + "PLACEHOLDER": "בחר קטגוריה", + "NO_RESULT": "לא נמצאה קטגוריה", + "SEARCH_PLACEHOLDER": "קטגוריית חיפוש" }, "AUTHOR": { - "LABEL": "Author", - "TITLE": "Select author", - "PLACEHOLDER": "Select author", - "NO_RESULT": "No authors found", - "SEARCH_PLACEHOLDER": "Search author" + "LABEL": "מחבר", + "TITLE": "בחר מחבר", + "PLACEHOLDER": "בחר מחבר", + "NO_RESULT": "לא נמצאו מחברים", + "SEARCH_PLACEHOLDER": "חפש מחבר" }, "META_TITLE": { - "LABEL": "Meta title", - "PLACEHOLDER": "Add a meta title" + "LABEL": "כותרת מטא", + "PLACEHOLDER": "הוסף מטא כותרת" }, "META_DESCRIPTION": { - "LABEL": "Meta description", - "PLACEHOLDER": "Add your meta description for better SEO results..." + "LABEL": "מטא תיאור", + "PLACEHOLDER": "הוסף את המטא תיאור שלך לתוצאות SEO טובות יותר..." }, "META_TAGS": { - "LABEL": "Meta tags", - "PLACEHOLDER": "Add meta tags separated by comma..." + "LABEL": "מטא תגים", + "PLACEHOLDER": "הוסף מטא תגיות מופרדות בפסיק..." } }, "BUTTONS": { - "ARCHIVE": "Archive article", - "DELETE": "Delete article" + "ARCHIVE": "ארכיון מאמר", + "DELETE": "מחק מאמר" } }, "PORTAL": { - "HEADER": "Portals", - "DEFAULT": "Default", - "NEW_BUTTON": "New Portal", + "HEADER": "פורטלים", + "DEFAULT": "ברירת מחדל", + "NEW_BUTTON": "פורטל חדש", "ACTIVE_BADGE": "פעיל", - "CHOOSE_LOCALE_LABEL": "Choose a locale", - "LOADING_MESSAGE": "Loading portals...", - "ARTICLES_LABEL": "articles", - "NO_PORTALS_MESSAGE": "There are no available portals", - "ADD_NEW_LOCALE": "Add a new locale", + "CHOOSE_LOCALE_LABEL": "בחר מקום", + "LOADING_MESSAGE": "טוען פורטלים...", + "ARTICLES_LABEL": "מאמרים", + "NO_PORTALS_MESSAGE": "אין פורטלים זמינים", + "ADD_NEW_LOCALE": "הוסף מקום חדש", "POPOVER": { - "TITLE": "Portals", - "PORTAL_SETTINGS": "Portal settings", - "SUBTITLE": "You have multiple portals and can have different locales for each portal.", + "TITLE": "פורטלים", + "PORTAL_SETTINGS": "הגדרות פורטל", + "SUBTITLE": "יש לך מספר פורטלים ויכולים להיות לך מקומות שונים עבור כל פורטל.", "CANCEL_BUTTON_LABEL": "ביטול", - "CHOOSE_LOCALE_BUTTON": "Choose Locale" + "CHOOSE_LOCALE_BUTTON": "בחר מיקום" }, "PORTAL_SETTINGS": { "LIST_ITEM": { "HEADER": { - "COUNT_LABEL": "articles", - "ADD": "Add locale", - "VISIT": "Visit site", + "COUNT_LABEL": "מאמרים", + "ADD": "הוסף מקום", + "VISIT": "בקר באתר", "SETTINGS": "הגדרות", "DELETE": "מחק" }, "PORTAL_CONFIG": { - "TITLE": "Portal Configurations", + "TITLE": "תצורות פורטל", "ITEMS": { "NAME": "שם", - "DOMAIN": "Custom domain", - "SLUG": "Slug", - "TITLE": "Portal title", - "THEME": "Theme color", - "SUB_TEXT": "Portal sub text" + "DOMAIN": "תחום מותאם אישית", + "SLUG": "שבלול", + "TITLE": "כותרת הפורטל", + "THEME": "צבע נושא", + "SUB_TEXT": "טקסט משנה של פורטל" } }, "AVAILABLE_LOCALES": { - "TITLE": "Available locales", + "TITLE": "מקומות זמינים", "TABLE": { - "NAME": "Locale name", - "CODE": "Locale code", - "ARTICLE_COUNT": "No. of articles", - "CATEGORIES": "No. of categories", - "SWAP": "Swap", + "NAME": "שם מקומי", + "CODE": "קוד מקומי", + "ARTICLE_COUNT": "מספר מאמרים", + "CATEGORIES": "מספר קטגוריות", + "SWAP": "החלפה", "DELETE": "מחק", - "DEFAULT_LOCALE": "Default" + "DEFAULT_LOCALE": "ברירת מחדל" } } }, "DELETE_PORTAL": { - "TITLE": "Delete portal", - "MESSAGE": "Are you sure you want to delete this portal", - "YES": "Yes, delete portal", - "NO": "No, keep portal", + "TITLE": "מחק את הפורטל", + "MESSAGE": "האם אתה בטוח שאתה רוצה למחוק את הפורטל הזה", + "YES": "כן, מחק את הפורטל", + "NO": "לא, שמור על הפורטל", "API": { - "DELETE_SUCCESS": "Portal deleted successfully", - "DELETE_ERROR": "Error while deleting portal" + "DELETE_SUCCESS": "הפורטל נמחק בהצלחה", + "DELETE_ERROR": "שגיאה בעת מחיקת הפורטל" } } }, "EDIT": { - "HEADER_TEXT": "Edit portal", + "HEADER_TEXT": "ערוך פורטל", "TABS": { "BASIC_SETTINGS": { - "TITLE": "Basic information" + "TITLE": "מידע בסיסי" }, "CUSTOMIZATION_SETTINGS": { - "TITLE": "Portal customization" + "TITLE": "התאמה אישית של פורטל" }, "CATEGORY_SETTINGS": { - "TITLE": "Categories" + "TITLE": "קטגוריות" }, "LOCALE_SETTINGS": { - "TITLE": "Locales" + "TITLE": "מקומיים" } }, "CATEGORIES": { - "TITLE": "Categories in", - "NEW_CATEGORY": "New category", + "TITLE": "קטגוריות ב", + "NEW_CATEGORY": "קטגוריה חדשה", "TABLE": { "NAME": "שם", "DESCRIPTION": "תיאור", - "LOCALE": "Locale", - "ARTICLE_COUNT": "No. of articles", + "LOCALE": "מקומי", + "ARTICLE_COUNT": "מספר מאמרים", "ACTION_BUTTON": { - "EDIT": "Edit category", - "DELETE": "Delete category" + "EDIT": "ערוך קטגוריה", + "DELETE": "מחק קטגוריה" }, - "EMPTY_TEXT": "No categories found" + "EMPTY_TEXT": "לא נמצאו קטגוריות" } }, "EDIT_BASIC_INFO": { - "BUTTON_TEXT": "Update basic settings" + "BUTTON_TEXT": "עדכן הגדרות בסיסיות" } }, "ADD": { "CREATE_FLOW": [ { - "title": "Help center information", + "title": "מידע על מרכז העזרה", "route": "new_portal_information", - "body": "Basic information about portal", - "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings" + "body": "מידע בסיסי על הפורטל", + "CREATE_BASIC_SETTING_BUTTON": "צור הגדרות בסיסיות של פורטל" }, { - "title": "Help center customization", + "title": "התאמה אישית של מרכז העזרה", "route": "portal_customization", - "body": "Customize portal", - "UPDATE_PORTAL_BUTTON": "Update portal settings" + "body": "התאמה אישית של פורטל", + "UPDATE_PORTAL_BUTTON": "עדכון הגדרות פורטל" }, { - "title": "Voila! 🎉", + "title": "וואילה! 🎉", "route": "portal_finish", - "body": "You're all set!", - "FINISH": "Finish" + "body": "אתה מוכן!", + "FINISH": "סיים" } ], "CREATE_FLOW_PAGE": { "BACK_BUTTON": "חזור", "BASIC_SETTINGS_PAGE": { - "HEADER": "Create Portal", - "TITLE": "Help center information", - "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings" + "HEADER": "צור פורטל", + "TITLE": "מידע על מרכז העזרה", + "CREATE_BASIC_SETTING_BUTTON": "צור הגדרות בסיסיות של פורטל" }, "CUSTOMIZATION_PAGE": { - "HEADER": "Portal customisation", - "TITLE": "Help center customization", - "UPDATE_PORTAL_BUTTON": "Update portal settings" + "HEADER": "התאמה אישית של פורטל", + "TITLE": "התאמה אישית של מרכז העזרה", + "UPDATE_PORTAL_BUTTON": "עדכון הגדרות פורטל" }, "FINISH_PAGE": { - "TITLE": "Voila!🎉 You're all set up!", - "MESSAGE": "You can now see this created portal on your all portals page.", - "FINISH": "Go to all portals page" + "TITLE": "וואילה!🎉 הכל מסודר!", + "MESSAGE": "עכשיו אתה יכול לראות את הפורטל שנוצר בדף כל הפורטלים שלך.", + "FINISH": "עבור לדף כל הפורטלים" } }, "LOGO": { - "LABEL": "Logo", - "UPLOAD_BUTTON": "Upload logo", - "HELP_TEXT": "This logo will be displayed on the portal header." + "LABEL": "לוגו", + "UPLOAD_BUTTON": "העלה לוגו", + "HELP_TEXT": "לוגו זה יוצג בכותרת הפורטל." }, "NAME": { "LABEL": "שם", - "PLACEHOLDER": "Portal name", - "HELP_TEXT": "The name will be used in the public facing portal internally.", + "PLACEHOLDER": "שם הפורטל", + "HELP_TEXT": "השם ישמש בפורטל הפונה לציבור באופן פנימי.", "ERROR": "שם שדה חובה" }, "SLUG": { - "LABEL": "Slug", - "PLACEHOLDER": "Portal slug for urls", - "ERROR": "Slug is required" + "LABEL": "שבלול", + "PLACEHOLDER": "שבלול פורטל עבור כתובות אתרים", + "ERROR": "נדרש שבלול" }, "DOMAIN": { - "LABEL": "Custom Domain", - "PLACEHOLDER": "Portal custom domain", - "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com", - "ERROR": "Enter a valid domain URL" + "LABEL": "תחום מותאם אישית", + "PLACEHOLDER": "דומיין מותאם אישית של פורטל", + "HELP_TEXT": "הוסף רק אם אתה רוצה להשתמש בדומיין מותאם אישית עבור הפורטלים שלך. לדוגמה: https://example.com", + "ERROR": "הזן כתובת אתר חוקית של דומיין" }, "HOME_PAGE_LINK": { - "LABEL": "Home Page Link", - "PLACEHOLDER": "Portal home page link", - "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com", - "ERROR": "Enter a valid home page URL" + "LABEL": "קישור לדף הבית", + "PLACEHOLDER": "קישור לדף הבית של הפורטל", + "HELP_TEXT": "הקישור ששימש לחזרה מהפורטל לדף הבית. לדוגמה: https://example.com", + "ERROR": "הזן כתובת אתר חוקית של דף הבית" }, "THEME_COLOR": { - "LABEL": "Portal theme color", - "HELP_TEXT": "This color will show as the theme color for the portal." + "LABEL": "צבע נושא הפורטל", + "HELP_TEXT": "צבע זה יוצג כצבע הנושא עבור הפורטל." }, "PAGE_TITLE": { - "LABEL": "Page Title", - "PLACEHOLDER": "Portal page title", - "HELP_TEXT": "The page title will be used in the public facing portal.", - "ERROR": "Page title is required" + "LABEL": "כותרת העמוד", + "PLACEHOLDER": "כותרת דף הפורטל", + "HELP_TEXT": "כותרת העמוד תשמש בפורטל הפונה לציבור.", + "ERROR": "נדרשת כותרת העמוד" }, "HEADER_TEXT": { - "LABEL": "Header Text", - "PLACEHOLDER": "Portal header text", - "HELP_TEXT": "The Portal header text will be used in the public facing portal.", - "ERROR": "Portal header text is required" + "LABEL": "טקסט כותרת", + "PLACEHOLDER": "טקסט כותרת הפורטל", + "HELP_TEXT": "טקסט כותרת הפורטל ישמש בפורטל הפונה לציבור.", + "ERROR": "נדרש טקסט של כותרת הפורטל" }, "API": { - "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.", - "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.", - "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.", - "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again." + "SUCCESS_MESSAGE_FOR_BASIC": "הפורטל נוצר בהצלחה.", + "ERROR_MESSAGE_FOR_BASIC": "לא ניתן היה ליצור את הפורטל. נסה שוב.", + "SUCCESS_MESSAGE_FOR_UPDATE": "הפורטל עודכן בהצלחה.", + "ERROR_MESSAGE_FOR_UPDATE": "לא ניתן היה לעדכן את הפורטל. נסה שוב." } }, "ADD_LOCALE": { - "TITLE": "Add a new locale", - "SUB_TITLE": "This adds a new locale to your available translation list.", - "PORTAL": "Portal", + "TITLE": "הוסף מקום חדש", + "SUB_TITLE": "זה מוסיף מקום חדש לרשימת התרגום הזמינה שלך.", + "PORTAL": "פורטל", "LOCALE": { - "LABEL": "Locale", - "PLACEHOLDER": "Choose a locale", - "ERROR": "Locale is required" + "LABEL": "מקומי", + "PLACEHOLDER": "בחר מקום", + "ERROR": "דרוש מיקום" }, "BUTTONS": { - "CREATE": "Create locale", + "CREATE": "צור מקום", "CANCEL": "ביטול" }, "API": { - "SUCCESS_MESSAGE": "Locale added successfully", - "ERROR_MESSAGE": "Unable to add locale. Try again." + "SUCCESS_MESSAGE": "האזור נוסף בהצלחה", + "ERROR_MESSAGE": "לא ניתן להוסיף אזור. נסה שוב." } }, "CHANGE_DEFAULT_LOCALE": { "API": { - "SUCCESS_MESSAGE": "Default locale updated successfully", - "ERROR_MESSAGE": "Unable to update default locale. Try again." + "SUCCESS_MESSAGE": "מקום ברירת המחדל עודכן בהצלחה", + "ERROR_MESSAGE": "לא ניתן לעדכן את אזור ברירת המחדל. נסה שוב." } }, "DELETE_LOCALE": { "API": { - "SUCCESS_MESSAGE": "Locale removed from portal successfully", - "ERROR_MESSAGE": "Unable to remove locale from portal. Try again." + "SUCCESS_MESSAGE": "המקום הוסר מהפורטל בהצלחה", + "ERROR_MESSAGE": "לא ניתן להסיר את המקום מהפורטל. נסה שוב." } } }, "TABLE": { - "LOADING_MESSAGE": "Loading articles...", - "404": "No articles matches your search 🔍", - "NO_ARTICLES": "There are no available articles", + "LOADING_MESSAGE": "טוען מאמרים...", + "404": "אין מאמרים שתואמים לחיפוש שלך 🔍", + "NO_ARTICLES": "אין מאמרים זמינים", "HEADERS": { "TITLE": "כותרת", - "CATEGORY": "Category", - "READ_COUNT": "Read count", + "CATEGORY": "קטגוריה", + "READ_COUNT": "ספירת קריאה", "STATUS": "מצב", - "LAST_EDITED": "Last edited" + "LAST_EDITED": "עריכה אחרונה" }, "COLUMNS": { - "BY": "by" + "BY": "על ידי" } }, "EDIT_ARTICLE": { - "LOADING": "Loading article...", - "TITLE_PLACEHOLDER": "Article title goes here", - "CONTENT_PLACEHOLDER": "Write your article here", + "LOADING": "טוען מאמר...", + "TITLE_PLACEHOLDER": "כותרת המאמר נכנסת לכאן", + "CONTENT_PLACEHOLDER": "כתוב את המאמר שלך כאן", "API": { - "ERROR": "Error while saving article" + "ERROR": "שגיאה בעת שמירת מאמר" } }, "PUBLISH_ARTICLE": { "API": { - "ERROR": "Error while publishing article", - "SUCCESS": "Article published successfully" + "ERROR": "שגיאה בעת פרסום מאמר", + "SUCCESS": "המאמר פורסם בהצלחה" } }, "ARCHIVE_ARTICLE": { "API": { - "ERROR": "Error while archiving article", - "SUCCESS": "Article archived successfully" + "ERROR": "שגיאה בעת העברת מאמר לארכיון", + "SUCCESS": "המאמר הועבר לארכיון בהצלחה" } }, "DELETE_ARTICLE": { "MODAL": { "CONFIRM": { "TITLE": "אשר מחיקה", - "MESSAGE": "Are you sure to delete the article?", + "MESSAGE": "האם אתה בטוח שתמחק את המאמר?", "YES": "כן, מחק", "NO": "לא, השאר" } }, "API": { - "SUCCESS_MESSAGE": "Article deleted successfully", - "ERROR_MESSAGE": "Error while deleting article" + "SUCCESS_MESSAGE": "המאמר נמחק בהצלחה", + "ERROR_MESSAGE": "שגיאה בעת מחיקת מאמר" } }, "CREATE_ARTICLE": { - "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings" + "ERROR_MESSAGE": "אנא הוסף את כותרת המאמר והתוכן ואז רק אתה יכול לעדכן את ההגדרות" }, "SIDEBAR": { "SEARCH": { - "PLACEHOLDER": "Search for articles" + "PLACEHOLDER": "חפש מאמרים" } }, "CATEGORY": { "ADD": { - "TITLE": "Create a category", - "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.", - "PORTAL": "Portal", - "LOCALE": "Locale", + "TITLE": "צור קטגוריה", + "SUB_TITLE": "הקטגוריה תשמש בפורטל הפונה לציבור כדי לסווג מאמרים.", + "PORTAL": "פורטל", + "LOCALE": "מקומי", "NAME": { "LABEL": "שם", - "PLACEHOLDER": "Category name", - "HELP_TEXT": "The category name will be used in the public facing portal to categorize articles.", + "PLACEHOLDER": "שם קטגוריה", + "HELP_TEXT": "שם הקטגוריה ישמש בפורטל הפונה לציבור כדי לסווג מאמרים.", "ERROR": "שם שדה חובה" }, "SLUG": { - "LABEL": "Slug", - "PLACEHOLDER": "Category slug for urls", + "LABEL": "שבלול", + "PLACEHOLDER": "שבלול קטגוריה עבור כתובות אתרים", "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug", - "ERROR": "Slug is required" + "ERROR": "נדרש שבלול" }, "DESCRIPTION": { "LABEL": "תיאור", - "PLACEHOLDER": "Give a short description about the category.", + "PLACEHOLDER": "תן תיאור קצר על הקטגוריה.", "ERROR": "נדרש תיאור" }, "BUTTONS": { - "CREATE": "Create category", + "CREATE": "צור קטגוריה", "CANCEL": "ביטול" }, "API": { - "SUCCESS_MESSAGE": "Category created successfully", - "ERROR_MESSAGE": "Unable to create category" + "SUCCESS_MESSAGE": "קטגוריה נוצרה בהצלחה", + "ERROR_MESSAGE": "לא ניתן ליצור קטגוריה" } }, "EDIT": { - "TITLE": "Edit a category", - "SUB_TITLE": "Editing a category will update the category in the public facing portal.", - "PORTAL": "Portal", - "LOCALE": "Locale", + "TITLE": "ערוך קטגוריה", + "SUB_TITLE": "עריכת קטגוריה תעדכן את הקטגוריה בפורטל הפונה לציבור.", + "PORTAL": "פורטל", + "LOCALE": "מקומי", "NAME": { "LABEL": "שם", - "PLACEHOLDER": "Category name", - "HELP_TEXT": "The category name will be used in the public facing portal to categorize articles.", + "PLACEHOLDER": "שם קטגוריה", + "HELP_TEXT": "שם הקטגוריה ישמש בפורטל הפונה לציבור כדי לסווג מאמרים.", "ERROR": "שם שדה חובה" }, "SLUG": { - "LABEL": "Slug", - "PLACEHOLDER": "Category slug for urls", + "LABEL": "שבלול", + "PLACEHOLDER": "שבלול קטגוריה עבור כתובות אתרים", "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug", - "ERROR": "Slug is required" + "ERROR": "נדרש שבלול" }, "DESCRIPTION": { "LABEL": "תיאור", - "PLACEHOLDER": "Give a short description about the category.", + "PLACEHOLDER": "תן תיאור קצר על הקטגוריה.", "ERROR": "נדרש תיאור" }, "BUTTONS": { - "CREATE": "Update category", + "CREATE": "עדכון קטגוריה", "CANCEL": "ביטול" }, "API": { - "SUCCESS_MESSAGE": "Category updated successfully", - "ERROR_MESSAGE": "Unable to update category" + "SUCCESS_MESSAGE": "הקטגוריה עודכנה בהצלחה", + "ERROR_MESSAGE": "לא ניתן לעדכן את הקטגוריה" } }, "DELETE": { "API": { - "SUCCESS_MESSAGE": "Category deleted successfully", - "ERROR_MESSAGE": "Unable to delete category" + "SUCCESS_MESSAGE": "הקטגוריה נמחקה בהצלחה", + "ERROR_MESSAGE": "לא ניתן למחוק קטגוריה" } } } diff --git a/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json index 40dca7021..462b7d455 100644 --- a/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json @@ -61,7 +61,7 @@ "LABEL": "אוואטר הערוץ" }, "CHANNEL_WEBHOOK_URL": { - "LABEL": "URL של Webhook", + "LABEL": "כתובת אתר של Webhook", "PLACEHOLDER": "הזן את כתובת האתר שלך ל-Webhook", "ERROR": "אנא הכנס כתובת URL חוקית" }, @@ -107,7 +107,7 @@ "TITLE": "ערוץ SMS/ווטסאפ של Twilio", "DESC": "שלב את Twilio והתחל לתמוך בלקוחות שלך באמצעות SMS או WhatsApp.", "ACCOUNT_SID": { - "LABEL": "SID חשבון", + "LABEL": "חשבון SID", "PLACEHOLDER": "אנא הזן את SID חשבון Twilio שלך", "ERROR": "שדה חובה" }, @@ -150,7 +150,7 @@ "DESC": "התחל לתמוך בלקוחותיך באמצעות SMS.", "PROVIDERS": { "LABEL": "ספק API", - "TWILIO": "Twilio", + "TWILIO": "טוויליו", "BANDWIDTH": "Bandwidth" }, "API": { @@ -163,17 +163,17 @@ "ERROR": "שדה חובה" }, "API_KEY": { - "LABEL": "API key", + "LABEL": "מפתח API", "PLACEHOLDER": "נא הכנס את ה- Bandwith API Key שלך", "ERROR": "שדה חובה" }, "API_SECRET": { - "LABEL": "API Secret", + "LABEL": "סוד API", "PLACEHOLDER": "נא הכנס את ה- Bandwith API Secret שלך", "ERROR": "שדה חובה" }, "APPLICATION_ID": { - "LABEL": "Application ID", + "LABEL": "מזהה אפליקציה", "PLACEHOLDER": "נא הכנס את מזהה ה-Bandwidth Application ID שלך", "ERROR": "שדה חובה" }, @@ -202,7 +202,7 @@ "DESC": "התחל לתמוך בלקוחות שלך באמצעות וואטסאפ.", "PROVIDERS": { "LABEL": "ספק API", - "TWILIO": "Twilio", + "TWILIO": "טוויליו", "WHATSAPP_CLOUD": "WhatsApp Cloud", "360_DIALOG": "360Dialog" }, @@ -217,12 +217,12 @@ "ERROR": "נא ספק מספר טלפון תקני שמתחיל ב- '+' ולא מכיל רווחים." }, "PHONE_NUMBER_ID": { - "LABEL": "Phone number ID", + "LABEL": "מזהה מספר טלפון", "PLACEHOLDER": "נא הכנס את Phone number ID מתוך ממשק ה- Facebook developer.", "ERROR": "אנא הכנס ערך תקין." }, "BUSINESS_ACCOUNT_ID": { - "LABEL": "Business Account ID", + "LABEL": "מזהה חשבון עסקי", "PLACEHOLDER": "נא הכנס את Business Account ID מתוך ממשק ה- Facebook developer.", "ERROR": "אנא הכנס ערך תקין." }, @@ -232,16 +232,16 @@ "ERROR": "אנא הכנס ערך תקין." }, "API_KEY": { - "LABEL": "API key", + "LABEL": "מפתח API", "SUBTITLE": "הגדר את מפתח ה-API של וואטסאפ.", - "PLACEHOLDER": "API key", + "PLACEHOLDER": "מפתח API", "ERROR": "אנא הכנס ערך תקין." }, "API_CALLBACK": { "TITLE": "כתובת אתר להתקשרות חוזרת", "SUBTITLE": "עליך להגדיר את ה- webhook URL ואת ה- verification token הבאים בממשק ה- Facebook Developer.", - "WEBHOOK_URL": "Webhook URL", - "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token" + "WEBHOOK_URL": "כתובת אתר של Webhook", + "WEBHOOK_VERIFICATION_TOKEN": "אסימון אימות Webhook" }, "SUBMIT_BUTTON": "צור ערוץ וואטסאפ", "API": { @@ -257,9 +257,9 @@ "ERROR": "שדה חובה" }, "WEBHOOK_URL": { - "LABEL": "Webhook URL", + "LABEL": "כתובת אתר של Webhook", "SUBTITLE": "הגדר את כתובת האתר שבה ברצונך לקבל התקשרות חוזרת על אירועים.", - "PLACEHOLDER": "Webhook URL" + "PLACEHOLDER": "כתובת אתר של Webhook" }, "SUBMIT_BUTTON": "צור ערוץ API", "API": { @@ -318,9 +318,9 @@ "TITLE": "ערוץ טלגרם", "DESC": "השתלב עם ערוץ טלגרם והתחיל לתמוך בלקוחות שלך.", "BOT_TOKEN": { - "LABEL": "Bot Token", + "LABEL": "אסימון בוט", "SUBTITLE": "הגדר את אסימון הבוט שקיבלת מ- Telegram BotFather.", - "PLACEHOLDER": "Bot Token" + "PLACEHOLDER": "אסימון בוט" }, "SUBMIT_BUTTON": "צור ערוץ טלגרם", "API": { @@ -350,7 +350,7 @@ "DESCRIPTION": "בחר את ספק הדוא\"ל שלך מהרשימה מטה. אם אתה לא מוצא את ספק הדוא\"ל שלך ברשימה, תוכל לבחור את אפשרות \"ספק אחר\" ולספק את הגדרות ה- IMAP ו-SMTP." }, "MICROSOFT": { - "TITLE": "Microsoft Email", + "TITLE": "אימייל של מיקרוסופט", "DESCRIPTION": "לחץ על Sign in with Microsoft בכדי להתחיל. אתה תופנה למסך ההתחברות של Microsoft. ברגע שתאשר את בקשת ההרשאות, תופנה חזרה להגדרות תיבת הדואר.", "EMAIL_PLACEHOLDER": "הכנס כתובת דוא\"ל", "HELP": "בכדי להוסיף חשבון Microsoft כערוץ, עליך להתחבר לחשבונך ע\"י לחיצה על 'Sign in with Microsoft' ", @@ -431,7 +431,7 @@ "CAMPAIGN": "קמפיין", "PRE_CHAT_FORM": "טופס צ'אט מקדים", "BUSINESS_HOURS": "שעות פעילות", - "WIDGET_BUILDER": "Widget Builder", + "WIDGET_BUILDER": "בונה יישומונים", "BOT_CONFIGURATION": "הגדרות בוט" }, "SETTINGS": "הגדרות", @@ -439,7 +439,8 @@ "LABEL": "מאפיינים", "DISPLAY_FILE_PICKER": "הצג את בוחר הקבצים בווידג'ט", "DISPLAY_EMOJI_PICKER": "הצג את בוחר האמוג'י בווידג'ט", - "ALLOW_END_CONVERSATION": "אפשר למשתמשים לסיים שיחות באמצעות ה- Widget" + "ALLOW_END_CONVERSATION": "אפשר למשתמשים לסיים שיחות באמצעות ה- Widget", + "USE_INBOX_AVATAR_FOR_BOT": "השתמש בשם ובדמות תיבת הדואר הנכנס עבור הבוט" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "סקריפט מסנג'ר", @@ -457,32 +458,32 @@ "ENABLE_CONTINUITY_VIA_EMAIL": "אפשר המשך שיחה באמצעות הדוא\"ל", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "שיחות ימשיכו באמצעות הדוא\"ל אם לאיש הקשר קיימת כתובת דוא\"ל תקנית.", "LOCK_TO_SINGLE_CONVERSATION": "נעל לשיחה בודדת", - "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox", + "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "הפעל או השבת מספר שיחות עבור אותו איש קשר בתיבת הדואר הנכנס הזו", "INBOX_UPDATE_TITLE": "הגדרות תיבת דואר נכנס", "INBOX_UPDATE_SUB_TEXT": "עדכן את הגדרות תיבת הדואר הנכנס שלך", "AUTO_ASSIGNMENT_SUB_TEXT": "אפשר או השבת את ההקצאה האוטומטית של שיחות חדשות לסוכנים שנוספו לתיבת הדואר הנכנס הזו.", "HMAC_VERIFICATION": "אימות זהות משתמש", - "HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.", + "HMAC_DESCRIPTION": "על מנת לאמת את זהות המשתמש, אתה יכול להעביר `מזהה_hash` עבור כל משתמש. אתה יכול ליצור hash HMAC sha256 באמצעות `מזהה` עם המפתח המוצג כאן.", "HMAC_MANDATORY_VERIFICATION": "אכיפת אימות זהות משתמש", - "HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.", + "HMAC_MANDATORY_DESCRIPTION": "אם מופעל, בקשות חסרות 'מזהה_hash' יידחו.", "INBOX_IDENTIFIER": "מזהה תיבת דואר נכנס", "INBOX_IDENTIFIER_SUB_TEXT": "השתמש ב-'inbox_identifier' המוצג כאן כדי לאמת את לקוחות ה-API שלך.", "FORWARD_EMAIL_TITLE": "העבר לדואר אלקטרוני", "FORWARD_EMAIL_SUB_TEXT": "התחל להעביר את המיילים שלך לכתובת הדוא\"ל הבאה.", - "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved", - "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.", - "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.", - "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.", - "WHATSAPP_SECTION_TITLE": "API key", - "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key", - "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here", + "ALLOW_MESSAGES_AFTER_RESOLVED": "אפשר הודעות לאחר שהשיחה נפתרה", + "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "אפשר למשתמשי הקצה לשלוח הודעות גם לאחר פתרון השיחה.", + "WHATSAPP_SECTION_SUBHEADER": "מפתח API זה משמש לשילוב עם ממשקי ה-API של WhatsApp.", + "WHATSAPP_SECTION_UPDATE_SUBHEADER": "הזן את המפתח המעודכן שישמש לשילוב עם ממשקי ה-API של WhatsApp.", + "WHATSAPP_SECTION_TITLE": "מפתח API", + "WHATSAPP_SECTION_UPDATE_TITLE": "עדכון מפתח API", + "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "הזן את מפתח ה-API החדש כאן", "WHATSAPP_SECTION_UPDATE_BUTTON": "עדכן", - "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings" + "UPDATE_PRE_CHAT_FORM_SETTINGS": "עדכון הגדרות טופס טרום צ'אט" }, "AUTO_ASSIGNMENT": { - "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit", - "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0", - "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent" + "MAX_ASSIGNMENT_LIMIT": "מגבלת הקצאה אוטומטית", + "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "אנא הזן ערך גדול מ-0", + "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "הגבלת המספר המרבי של שיחות מתיבת הדואר הנכנס הזו שניתן להקצות אוטומטית לסוכן" }, "FACEBOOK_REAUTHORIZE": { "TITLE": "הרשאה מחדש", @@ -492,14 +493,14 @@ }, "PRE_CHAT_FORM": { "DESCRIPTION": "טפסי טרום צ'אט מאפשרים לך ללכוד מידע על המשתמש לפני שהם מתחילים בשיחה איתך.", - "SET_FIELDS": "Pre chat form fields", + "SET_FIELDS": "שדות טפסי טרום צ'אט", "SET_FIELDS_HEADER": { - "FIELDS": "Fields", - "LABEL": "Label", - "PLACE_HOLDER": "Placeholder", + "FIELDS": "שדות", + "LABEL": "תווית", + "PLACE_HOLDER": "מציין מקום", "KEY": "מפתח", "TYPE": "סוג", - "REQUIRED": "Required" + "REQUIRED": "נדרש" }, "ENABLE": { "LABEL": "אפשר טופס טרום צ'אט", @@ -509,7 +510,7 @@ } }, "PRE_CHAT_MESSAGE": { - "LABEL": "Pre chat message", + "LABEL": "הודעה לפני צ'אט", "PLACEHOLDER": "הודעה זו תהיה גלויה למשתמשים יחד עם הטופס" }, "REQUIRE_EMAIL": { @@ -533,26 +534,26 @@ "VALIDATION_ERROR": "שעת ההתחלה צריכה להיות לפני שעת הסגירה.", "CHOOSE": "בחר" }, - "ALL_DAY": "All-Day" + "ALL_DAY": "כל היום" }, "IMAP": { "TITLE": "IMAP", - "SUBTITLE": "Set your IMAP details", - "NOTE_TEXT": "To enable SMTP, please configure IMAP.", - "UPDATE": "Update IMAP settings", - "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox", - "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email", + "SUBTITLE": "הגדר את פרטי ה-IMAP שלך", + "NOTE_TEXT": "כדי להפעיל SMTP, אנא הגדר את IMAP.", + "UPDATE": "עדכון הגדרות IMAP", + "TOGGLE_AVAILABILITY": "הפעל תצורת IMAP עבור תיבת הדואר הנכנס הזו", + "TOGGLE_HELP": "הפעלת IMAP תעזור למשתמש לקבל דוא\"ל", "EDIT": { - "SUCCESS_MESSAGE": "IMAP settings updated successfully", - "ERROR_MESSAGE": "Unable to update IMAP settings" + "SUCCESS_MESSAGE": "הגדרות IMAP עודכנו בהצלחה", + "ERROR_MESSAGE": "לא ניתן לעדכן הגדרות IMAP" }, "ADDRESS": { - "LABEL": "Address", - "PLACE_HOLDER": "Address (Eg: imap.gmail.com)" + "LABEL": "כתובת", + "PLACE_HOLDER": "כתובת (לדוגמה: imap.gmail.com)" }, "PORT": { - "LABEL": "Port", - "PLACE_HOLDER": "Port" + "LABEL": "נמל", + "PLACE_HOLDER": "נמל" }, "LOGIN": { "LABEL": "התחבר", @@ -562,29 +563,29 @@ "LABEL": "סיסמה", "PLACE_HOLDER": "סיסמה" }, - "ENABLE_SSL": "Enable SSL" + "ENABLE_SSL": "הפעל SSL" }, "MICROSOFT": { - "TITLE": "Microsoft", - "SUBTITLE": "Reauthorize your MICROSOFT account" + "TITLE": "מיקרוסופט", + "SUBTITLE": "אשר מחדש את חשבון MICROSOFT שלך" }, "SMTP": { "TITLE": "SMTP", - "SUBTITLE": "Set your SMTP details", - "UPDATE": "Update SMTP settings", - "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox", - "TOGGLE_HELP": "Enabling SMTP will help the user to send email", + "SUBTITLE": "הגדר את פרטי ה-SMTP שלך", + "UPDATE": "עדכון הגדרות SMTP", + "TOGGLE_AVAILABILITY": "הפעל תצורת SMTP עבור תיבת הדואר הנכנס הזו", + "TOGGLE_HELP": "הפעלת SMTP תעזור למשתמש לשלוח דוא\"ל", "EDIT": { - "SUCCESS_MESSAGE": "SMTP settings updated successfully", - "ERROR_MESSAGE": "Unable to update SMTP settings" + "SUCCESS_MESSAGE": "הגדרות SMTP עודכנו בהצלחה", + "ERROR_MESSAGE": "לא ניתן לעדכן הגדרות SMTP" }, "ADDRESS": { - "LABEL": "Address", - "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)" + "LABEL": "כתובת", + "PLACE_HOLDER": "כתובת (למשל: smtp.gmail.com)" }, "PORT": { - "LABEL": "Port", - "PLACE_HOLDER": "Port" + "LABEL": "נמל", + "PLACE_HOLDER": "נמל" }, "LOGIN": { "LABEL": "התחבר", @@ -595,23 +596,23 @@ "PLACE_HOLDER": "סיסמה" }, "DOMAIN": { - "LABEL": "Domain", - "PLACE_HOLDER": "Domain" + "LABEL": "דומיין", + "PLACE_HOLDER": "דומיין" }, - "ENCRYPTION": "Encryption", + "ENCRYPTION": "הצפנה", "SSL_TLS": "SSL/TLS", "START_TLS": "STARTTLS", - "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode", - "AUTH_MECHANISM": "Authentication" + "OPEN_SSL_VERIFY_MODE": "פתח את מצב אימות SSL", + "AUTH_MECHANISM": "אימות" }, - "NOTE": "Note: ", + "NOTE": "הערה: ", "WIDGET_BUILDER": { "WIDGET_OPTIONS": { "AVATAR": { - "LABEL": "Website Avatar", + "LABEL": "אוואטר אתר", "DELETE": { "API": { - "SUCCESS_MESSAGE": "Avatar deleted successfully", + "SUCCESS_MESSAGE": "האוואטר נמחק בהצלחה", "ERROR_MESSAGE": "היתה שגיאה, בקשה נסה שוב" } } @@ -619,7 +620,7 @@ "WEBSITE_NAME": { "LABEL": "שם האתר", "PLACE_HOLDER": "הזן את שם האתר שלך (למשל: Acme Inc)", - "ERROR": "Please enter a valid website name" + "ERROR": "אנא הזן שם אתר חוקי" }, "WELCOME_HEADING": { "LABEL": "כותרת ברוכים הבאים", @@ -630,42 +631,42 @@ "PLACE_HOLDER": "אנחנו עושים את זה פשוט להתחבר אלינו. שאל אותנו כל דבר, או שתף את המשוב שלך." }, "REPLY_TIME": { - "LABEL": "Reply Time", + "LABEL": "זמן תשובה", "IN_A_FEW_MINUTES": "בעוד כמה דקות", "IN_A_FEW_HOURS": "בעוד כמה שעות", "IN_A_DAY": "ביום" }, "WIDGET_COLOR_LABEL": "צבע יישומון", - "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position", - "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type", + "WIDGET_BUBBLE_POSITION_LABEL": "מיקום בועת יישומון", + "WIDGET_BUBBLE_TYPE_LABEL": "סוג בועת יישומון", "WIDGET_BUBBLE_LAUNCHER_TITLE": { "DEFAULT": "דבר איתנו", - "LABEL": "Widget Bubble Launcher Title", + "LABEL": "כותרת מפעיל בועות יישומון", "PLACE_HOLDER": "דבר איתנו" }, "UPDATE": { - "BUTTON_TEXT": "Update Widget Settings", + "BUTTON_TEXT": "עדכון הגדרות ווידג'ט", "API": { - "SUCCESS_MESSAGE": "Widget settings updated successfully", - "ERROR_MESSAGE": "Unable to update widget settings" + "SUCCESS_MESSAGE": "הגדרות ווידג'ט עודכנו בהצלחה", + "ERROR_MESSAGE": "לא ניתן לעדכן את הגדרות הווידג'ט" } }, "WIDGET_VIEW_OPTION": { - "PREVIEW": "Preview", - "SCRIPT": "Script" + "PREVIEW": "תצוגה מקדימה", + "SCRIPT": "תסריט" }, "WIDGET_BUBBLE_POSITION": { - "LEFT": "Left", - "RIGHT": "Right" + "LEFT": "שמאלה", + "RIGHT": "ימין" }, "WIDGET_BUBBLE_TYPE": { - "STANDARD": "Standard", - "EXPANDED_BUBBLE": "Expanded Bubble" + "STANDARD": "סטנדרטי", + "EXPANDED_BUBBLE": "בועה מורחבת" } }, "WIDGET_SCREEN": { - "DEFAULT": "Default", - "CHAT": "Chat" + "DEFAULT": "ברירת מחדל", + "CHAT": "צ'אט" }, "REPLY_TIME": { "IN_A_FEW_MINUTES": "זמן מענה טיפוסי תוך כמה דקות", @@ -678,18 +679,18 @@ }, "BODY": { "TEAM_AVAILABILITY": { - "ONLINE": "We are Online", + "ONLINE": "אנחנו מקוונים", "OFFLINE": "אנחנו לא זמינים כרגע" }, - "USER_MESSAGE": "Hi", - "AGENT_MESSAGE": "Hello" + "USER_MESSAGE": "היי", + "AGENT_MESSAGE": "שלום" }, "BRANDING_TEXT": "מופעל על ידי Chatwoot", "SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};" }, "EMAIL_PROVIDERS": { - "MICROSOFT": "Microsoft", - "OTHER_PROVIDERS": "Other Providers" + "MICROSOFT": "מיקרוסופט", + "OTHER_PROVIDERS": "ספקים אחרים" } } } diff --git a/app/javascript/dashboard/i18n/locale/he/integrations.json b/app/javascript/dashboard/i18n/locale/he/integrations.json index e1e088fa1..05b41e289 100644 --- a/app/javascript/dashboard/i18n/locale/he/integrations.json +++ b/app/javascript/dashboard/i18n/locale/he/integrations.json @@ -2,29 +2,29 @@ "INTEGRATION_SETTINGS": { "HEADER": "אינטגרציות", "WEBHOOK": { - "SUBSCRIBED_EVENTS": "Subscribed Events", + "SUBSCRIBED_EVENTS": "אירועים מנויים", "FORM": { "CANCEL": "ביטול", "DESC": "אירועי Webhook מספקים לך מידע בזמן אמת על מה שקורה בחשבון Chatwoot שלך. אנא הזן כתובת אתר חוקית כדי להגדיר התקשרות חוזרת.", "SUBSCRIPTIONS": { - "LABEL": "Events", + "LABEL": "אירועים", "EVENTS": { - "CONVERSATION_CREATED": "Conversation Created", - "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed", - "CONVERSATION_UPDATED": "Conversation Updated", - "MESSAGE_CREATED": "Message created", - "MESSAGE_UPDATED": "Message updated", - "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user", - "CONTACT_CREATED": "Contact created", - "CONTACT_UPDATED": "Contact updated" + "CONVERSATION_CREATED": "השיחה נוצרה", + "CONVERSATION_STATUS_CHANGED": "סטטוס השיחה השתנה", + "CONVERSATION_UPDATED": "השיחה עודכנה", + "MESSAGE_CREATED": "ההודעה נוצרה", + "MESSAGE_UPDATED": "ההודעה עודכנה", + "WEBWIDGET_TRIGGERED": "ווידג'ט צ'אט חי נפתח על ידי המשתמש", + "CONTACT_CREATED": "צור קשר", + "CONTACT_UPDATED": "איש קשר עודכן" } }, "END_POINT": { - "LABEL": "Webhook URL", + "LABEL": "כתובת אתר של Webhook", "PLACEHOLDER": "דוגמה: https://example/api/webhook", "ERROR": "אנא הכנס כתובת URL חוקית" }, - "EDIT_SUBMIT": "Update webhook", + "EDIT_SUBMIT": "עדכון webhook", "ADD_SUBMIT": "צור webhook" }, "TITLE": "Webhook", @@ -46,7 +46,7 @@ "BUTTON_TEXT": "ערוך", "TITLE": "ערוך webhook", "API": { - "SUCCESS_MESSAGE": "Webhook configuration updated successfully", + "SUCCESS_MESSAGE": "תצורת Webhook עודכנה בהצלחה", "ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר" } }, @@ -54,7 +54,7 @@ "CANCEL": "ביטול", "TITLE": "הוסף Webhook חדש", "API": { - "SUCCESS_MESSAGE": "Webhook configuration added successfully", + "SUCCESS_MESSAGE": "תצורת Webhook נוספה בהצלחה", "ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר" } }, @@ -66,7 +66,7 @@ }, "CONFIRM": { "TITLE": "אשר מחיקה", - "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})", + "MESSAGE": "האם אתה בטוח שתמחק את ה-webhook? (%{webhookURL})", "YES": "כן, מחק ", "NO": "לא, השאר" } @@ -79,11 +79,11 @@ } }, "DYTE": { - "CLICK_HERE_TO_JOIN": "Click here to join", - "LEAVE_THE_ROOM": "Leave the room", - "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer", - "JOIN_ERROR": "There was an error joining the call, please try again", - "CREATE_ERROR": "There was an error creating a meeting link, please try again" + "CLICK_HERE_TO_JOIN": "לחץ כאן בשביל להצטרף", + "LEAVE_THE_ROOM": "עזוב את החדר", + "START_VIDEO_CALL_HELP_TEXT": "התחל שיחת וידאו חדשה עם הלקוח", + "JOIN_ERROR": "אירעה שגיאה בהצטרפות לשיחה, אנא נסה שוב", + "CREATE_ERROR": "אירעה שגיאה ביצירת קישור לפגישה, אנא נסה שוב" }, "DELETE": { "BUTTON_TEXT": "מחק", @@ -95,49 +95,49 @@ "BUTTON_TEXT": "התחבר" }, "DASHBOARD_APPS": { - "TITLE": "Dashboard Apps", - "HEADER_BTN_TXT": "Add a new dashboard app", - "SIDEBAR_TXT": "

Dashboard Apps

Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.

When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.

To add a new dashboard app, click on the button 'Add a new dashboard app'.

", - "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.", + "TITLE": "אפליקציות לוח מחוונים", + "HEADER_BTN_TXT": "הוסף אפליקציית לוח מחוונים חדשה", + "SIDEBAR_TXT": "

אפליקציות לוח מחוונים

אפליקציות לוח מחוונים מאפשרות לארגונים להטמיע אפליקציה בתוך לוח המחוונים של Chatwoot כדי לספק את ההקשר לסוכני תמיכת לקוחות. תכונה זו מאפשרת לך ליצור אפליקציה באופן עצמאי ולהטמיע אותה בתוך לוח המחוונים כדי לספק מידע על המשתמש, ההזמנות שלו או היסטוריית התשלומים הקודמת שלו.

כאשר תטמיע את האפליקציה שלך באמצעות לוח המחוונים ב-Chatwoot, האפליקציה שלך תהיה קבל את ההקשר של השיחה והקשר כאירוע חלון. הטמיע מאזין לאירוע ההודעה בדף שלך כדי לקבל את ההקשר.

כדי להוסיף אפליקציית לוח מחוונים חדשה, לחץ על הלחצן 'הוסף אפליקציית לוח מחוונים חדשה'.

", + "DESCRIPTION": "אפליקציות לוח מחוונים מאפשרות לארגונים להטמיע אפליקציה בתוך לוח המחוונים כדי לספק את ההקשר לסוכני תמיכת לקוחות. תכונה זו מאפשרת לך ליצור אפליקציה באופן עצמאי ולהטמיע אותה כדי לספק מידע על המשתמש, ההזמנות שלהם או היסטוריית התשלומים הקודמת שלהם.", "LIST": { - "404": "There are no dashboard apps configured on this account yet", - "LOADING": "Fetching dashboard apps...", + "404": "אין עדיין אפליקציות לוח מחוונים מוגדרות בחשבון זה", + "LOADING": "מביא אפליקציות לוח מחוונים...", "TABLE_HEADER": [ "שם", - "Endpoint" + "נקודת קצה" ], - "EDIT_TOOLTIP": "Edit app", - "DELETE_TOOLTIP": "Delete app" + "EDIT_TOOLTIP": "ערוך אפליקציה", + "DELETE_TOOLTIP": "מחק אפליקציה" }, "FORM": { "TITLE_LABEL": "שם", - "TITLE_PLACEHOLDER": "Enter a name for your dashboard app", - "TITLE_ERROR": "A name for the dashboard app is required", - "URL_LABEL": "Endpoint", - "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted", - "URL_ERROR": "A valid URL is required" + "TITLE_PLACEHOLDER": "הזן שם לאפליקציית לוח המחוונים שלך", + "TITLE_ERROR": "נדרש שם לאפליקציית לוח המחוונים", + "URL_LABEL": "נקודת קצה", + "URL_PLACEHOLDER": "הזן את כתובת האתר של נקודת הקצה שבה האפליקציה שלך מתארחת", + "URL_ERROR": "נדרשת כתובת אתר חוקית" }, "CREATE": { - "HEADER": "Add a new dashboard app", + "HEADER": "הוסף אפליקציית לוח מחוונים חדשה", "FORM_SUBMIT": "שלח", "FORM_CANCEL": "ביטול", - "API_SUCCESS": "Dashboard app configured successfully", - "API_ERROR": "We couldn't create an app. Please try again later" + "API_SUCCESS": "אפליקציית לוח המחוונים הוגדרה בהצלחה", + "API_ERROR": "לא הצלחנו ליצור אפליקציה. אנא נסה שוב מאוחר יותר" }, "UPDATE": { - "HEADER": "Edit dashboard app", + "HEADER": "עריכת אפליקציית לוח המחוונים", "FORM_SUBMIT": "עדכן", "FORM_CANCEL": "ביטול", - "API_SUCCESS": "Dashboard app updated successfully", - "API_ERROR": "We couldn't update the app. Please try again later" + "API_SUCCESS": "אפליקציית לוח המחוונים עודכנה בהצלחה", + "API_ERROR": "לא הצלחנו לעדכן את האפליקציה. אנא נסה שוב מאוחר יותר" }, "DELETE": { - "CONFIRM_YES": "Yes, delete it", - "CONFIRM_NO": "No, keep it", + "CONFIRM_YES": "כן, מחק את זה", + "CONFIRM_NO": "לא, שמור את זה", "TITLE": "אשר מחיקה", - "MESSAGE": "Are you sure to delete the app - %{appName}?", - "API_SUCCESS": "Dashboard app deleted successfully", - "API_ERROR": "We couldn't delete the app. Please try again later" + "MESSAGE": "האם אתה בטוח שתמחק את האפליקציה - %{appName}?", + "API_SUCCESS": "אפליקציית לוח המחוונים נמחקה בהצלחה", + "API_ERROR": "לא הצלחנו למחוק את האפליקציה. אנא נסה שוב מאוחר יותר" } } } diff --git a/app/javascript/dashboard/i18n/locale/he/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/he/labelsMgmt.json index 8e4ef7b2d..4a18b5c47 100644 --- a/app/javascript/dashboard/i18n/locale/he/labelsMgmt.json +++ b/app/javascript/dashboard/i18n/locale/he/labelsMgmt.json @@ -1,37 +1,37 @@ { "LABEL_MGMT": { - "HEADER": "Labels", - "HEADER_BTN_TXT": "Add label", - "LOADING": "Fetching labels", + "HEADER": "תוויות", + "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": "

תוויות

תוויות עוזרות לך לסווג שיחות ולתעדף אותן. אתה יכול להקצות תווית לשיחה מהלוח הצדדי.

תוויות קשורות לחשבון וניתן להשתמש בהן כדי ליצור זרימות עבודה מותאמות אישית בארגון שלך. אתה יכול להקצות צבע מותאם אישית לתווית, זה מקל על זיהוי התווית. תוכל להציג את התווית בסרגל הצד כדי לסנן את השיחות בקלות.

", "LIST": { - "404": "There are no labels available in this account.", - "TITLE": "Manage labels", - "DESC": "Labels let you group the conversations together.", + "404": "אין תוויות זמינות בחשבון זה.", + "TITLE": "נהל תוויות", + "DESC": "תוויות מאפשרות לך לקבץ את השיחות יחד.", "TABLE_HEADER": [ "שם", - "Description", - "Color" + "תיאור", + "צֶבַע" ] }, "FORM": { "NAME": { - "LABEL": "Label Name", - "PLACEHOLDER": "Label name", - "REQUIRED_ERROR": "Label name is required", - "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required", - "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed" + "LABEL": "שם התווית", + "PLACEHOLDER": "שם התווית", + "REQUIRED_ERROR": "נדרש שם תווית", + "MINIMUM_LENGTH_ERROR": "נדרש אורך מינימלי 2", + "VALID_ERROR": "רק אלפבית, מספרים, מקף וקו תחתון מותרים" }, "DESCRIPTION": { - "LABEL": "Description", - "PLACEHOLDER": "Label Description" + "LABEL": "תיאור", + "PLACEHOLDER": "תיאור תווית" }, "COLOR": { - "LABEL": "Color" + "LABEL": "צבע" }, "SHOW_ON_SIDEBAR": { - "LABEL": "Show label on sidebar" + "LABEL": "הצג תווית בסרגל הצד" }, "EDIT": "ערוך", "CREATE": "צור", @@ -39,24 +39,24 @@ "CANCEL": "ביטול" }, "ADD": { - "TITLE": "Add label", - "DESC": "Labels let you group the conversations together.", + "TITLE": "הוסף תווית", + "DESC": "תוויות מאפשרות לך לקבץ את השיחות יחד.", "API": { - "SUCCESS_MESSAGE": "Label added successfully", + "SUCCESS_MESSAGE": "תווית נוספה בהצלחה", "ERROR_MESSAGE": "היתה שגיאה, בקשה נסה שוב" } }, "EDIT": { - "TITLE": "Edit label", + "TITLE": "ערוך תווית", "API": { - "SUCCESS_MESSAGE": "Label updated successfully", + "SUCCESS_MESSAGE": "התווית עודכנה בהצלחה", "ERROR_MESSAGE": "היתה שגיאה, בקשה נסה שוב" } }, "DELETE": { "BUTTON_TEXT": "מחק", "API": { - "SUCCESS_MESSAGE": "Label deleted successfully", + "SUCCESS_MESSAGE": "התווית נמחקה בהצלחה", "ERROR_MESSAGE": "היתה שגיאה, בקשה נסה שוב" }, "CONFIRM": { diff --git a/app/javascript/dashboard/i18n/locale/he/login.json b/app/javascript/dashboard/i18n/locale/he/login.json index 617718944..bc76228a5 100644 --- a/app/javascript/dashboard/i18n/locale/he/login.json +++ b/app/javascript/dashboard/i18n/locale/he/login.json @@ -15,9 +15,9 @@ "UNAUTH": "שם משתמש / סיסמה שגויים. נסה שוב" }, "OAUTH": { - "GOOGLE_LOGIN": "Login with Google", - "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login", - "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address." + "GOOGLE_LOGIN": "התחבר עם גוגל", + "BUSINESS_ACCOUNTS_ONLY": "אנא השתמש בכתובת הדוא\"ל של החברה שלך כדי להתחבר", + "NO_ACCOUNT_FOUND": "לא מצאנו חשבון עבור כתובת הדוא\"ל שלך." }, "FORGOT_PASSWORD": "שכחת את הסיסמה?", "CREATE_NEW_ACCOUNT": "צור חשבון", diff --git a/app/javascript/dashboard/i18n/locale/he/macros.json b/app/javascript/dashboard/i18n/locale/he/macros.json index aea619a66..5e3d06d83 100644 --- a/app/javascript/dashboard/i18n/locale/he/macros.json +++ b/app/javascript/dashboard/i18n/locale/he/macros.json @@ -1,78 +1,78 @@ { "MACROS": { - "HEADER": "Macros", - "HEADER_BTN_TXT": "Add a new macro", - "HEADER_BTN_TXT_SAVE": "Save macro", - "LOADING": "Fetching macros", - "SIDEBAR_TXT": "

Macros

A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.

A macro can be helpful in 2 ways.

As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.

As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.

", - "ERROR": "Something went wrong. Please try again", - "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.", + "HEADER": "מאקרו", + "HEADER_BTN_TXT": "הוסף מאקרו חדש", + "HEADER_BTN_TXT_SAVE": "שמור מאקרו", + "LOADING": "מביא פקודות מאקרו", + "SIDEBAR_TXT": "

פקודות מאקרו

מאקרו הוא קבוצה של פעולות שמורות המסייעות לסוכני שירות לקוחות לבצע משימות בקלות. הסוכנים יכולים להגדיר קבוצה של פעולות כמו תיוג שיחה עם תווית, שליחת תמלול דוא\"ל, עדכון תכונה מותאמת אישית וכו', והם יכולים להפעיל את הפעולות הללו בלחיצה אחת. כאשר הסוכנים מפעילים את המאקרו, הפעולות יבוצעו ברצף בסדר שהן מוגדרות. מאקרו משפרים את הפרודוקטיביות ומגדילים את העקביות בפעולות.

מאקרו יכול להועיל בשתי דרכים.

כסוכן מסייע: אם סוכן מבצע קבוצה של פעולות מספר פעמים, הוא יכול לשמור אותה כמאקרו ולבצע את כל הפעולות יחד באמצעות לחיצה אחת.

p>

כאפשרות להצטרף לחבר צוות: כל סוכן צריך לבצע בדיקות/פעולות רבות ושונות במהלך כל שיחה. הכניסה לחבר צוות תמיכה חדש תהיה קלה אם פקודות מאקרו מוגדרות מראש זמינות בחשבון. במקום לתאר כל שלב בפירוט, המנהל/ראש הצוות יכול להצביע על פקודות המאקרו המשמשות בתרחישים שונים.

", + "ERROR": "משהו השתבש. אנא נסה שוב", + "ORDER_INFO": "פקודות מאקרו יפעלו לפי הסדר שתוסיף את הפעולות שלך. תוכל לסדר אותם מחדש על ידי גרירתם על ידי הידית לצד כל צומת.", "ADD": { "FORM": { "NAME": { - "LABEL": "Macro name", - "PLACEHOLDER": "Enter a name for your macro", - "ERROR": "Name is required for creating a macro" + "LABEL": "שם מאקרו", + "PLACEHOLDER": "הזן שם עבור המאקרו שלך", + "ERROR": "נדרש שם ליצירת מאקרו" }, "ACTIONS": { "LABEL": "פעולות" } }, "API": { - "SUCCESS_MESSAGE": "Macro added successfully", - "ERROR_MESSAGE": "Unable to create macro, Please try again later" + "SUCCESS_MESSAGE": "המאקרו נוסף בהצלחה", + "ERROR_MESSAGE": "לא ניתן ליצור מאקרו, אנא נסה שוב מאוחר יותר" } }, "LIST": { "TABLE_HEADER": [ "שם", - "Created by", - "Last updated by", - "Visibility" + "נוצר על ידי", + "עודכן לאחרונה על ידי", + "רְאוּת" ], - "404": "No macros found" + "404": "לא נמצאו פקודות מאקרו" }, "DELETE": { - "TOOLTIP": "Delete macro", + "TOOLTIP": "מחק מאקרו", "CONFIRM": { "MESSAGE": "האם אתה בטוח שברצונך למחוק ", "YES": "כן, מחק", "NO": "לא" }, "API": { - "SUCCESS_MESSAGE": "Macro deleted successfully", - "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later" + "SUCCESS_MESSAGE": "המאקרו נמחק בהצלחה", + "ERROR_MESSAGE": "אירעה שגיאה במחיקת המאקרו. אנא נסה שוב מאוחר יותר" } }, "EDIT": { - "TOOLTIP": "Edit macro", + "TOOLTIP": "ערוך מאקרו", "API": { - "SUCCESS_MESSAGE": "Macro updated successfully", - "ERROR_MESSAGE": "Could not update Macro, Please try again later" + "SUCCESS_MESSAGE": "המאקרו עודכן בהצלחה", + "ERROR_MESSAGE": "לא ניתן היה לעדכן מאקרו, אנא נסה שוב מאוחר יותר" } }, "EDITOR": { - "START_FLOW": "Start Flow", - "END_FLOW": "End Flow", - "LOADING": "Fetching macro", - "ADD_BTN_TOOLTIP": "Add new action", - "DELETE_BTN_TOOLTIP": "Delete Action", + "START_FLOW": "התחל זרימה", + "END_FLOW": "סיום זרימה", + "LOADING": "מביא מאקרו", + "ADD_BTN_TOOLTIP": "הוסף פעולה חדשה", + "DELETE_BTN_TOOLTIP": "מחיקת פעולה", "VISIBILITY": { - "LABEL": "Macro Visibility", + "LABEL": "נראות מאקרו", "GLOBAL": { - "LABEL": "Public", - "DESCRIPTION": "This macro is available publicly for all agents in this account." + "LABEL": "ציבורי", + "DESCRIPTION": "מאקרו זה זמין באופן ציבורי עבור כל הסוכנים בחשבון זה." }, "PERSONAL": { - "LABEL": "Private", - "DESCRIPTION": "This macro will be private to you and not be available to others." + "LABEL": "פרטי", + "DESCRIPTION": "מאקרו זה יהיה פרטי עבורך ולא יהיה זמין לאחרים." } } }, "EXECUTE": { - "BUTTON_TOOLTIP": "Execute", - "PREVIEW": "Preview Macro", - "EXECUTED_SUCCESSFULLY": "Macro executed successfully" + "BUTTON_TOOLTIP": "לבצע", + "PREVIEW": "תצוגה מקדימה מאקרו", + "EXECUTED_SUCCESSFULLY": "המאקרו הופעל בהצלחה" } } } diff --git a/app/javascript/dashboard/i18n/locale/he/report.json b/app/javascript/dashboard/i18n/locale/he/report.json index 58b31aac9..544db2ce2 100644 --- a/app/javascript/dashboard/i18n/locale/he/report.json +++ b/app/javascript/dashboard/i18n/locale/he/report.json @@ -1,126 +1,126 @@ { "REPORT": { "HEADER": "שיחות", - "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", + "LOADING_CHART": "טוען נתוני תרשים...", + "NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.", + "DOWNLOAD_AGENT_REPORTS": "הורד דוחות סוכן", "METRICS": { "CONVERSATIONS": { "NAME": "שיחות", "DESC": "( Total )" }, "INCOMING_MESSAGES": { - "NAME": "Incoming Messages", + "NAME": "הודעות נכנסות", "DESC": "( Total )" }, "OUTGOING_MESSAGES": { - "NAME": "Outgoing Messages", + "NAME": "הודעות יוצאות", "DESC": "( Total )" }, "FIRST_RESPONSE_TIME": { - "NAME": "First Response Time", + "NAME": "זמן תגובה ראשון", "DESC": "( Avg )", - "INFO_TEXT": "Total number of conversations used for computation:", - "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + "INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:", + "TOOLTIP_TEXT": "זמן התגובה הראשון הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)" }, "RESOLUTION_TIME": { - "NAME": "Resolution Time", + "NAME": "זמן רזולוציה", "DESC": "( Avg )", - "INFO_TEXT": "Total number of conversations used for computation:", - "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + "INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:", + "TOOLTIP_TEXT": "זמן הרזולוציה הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)" }, "RESOLUTION_COUNT": { - "NAME": "Resolution Count", + "NAME": "ספירת רזולוציות", "DESC": "( Total )" } }, "DATE_RANGE": [ { "id": 0, - "name": "Last 7 days" + "name": "7 הימים האחרונים" }, { "id": 1, - "name": "Last 30 days" + "name": "30 הימים האחרונים" }, { "id": 2, - "name": "Last 3 months" + "name": "3 החודשים האחרונים" }, { "id": 3, - "name": "Last 6 months" + "name": "6 החודשים האחרונים" }, { "id": 4, - "name": "Last year" + "name": "שנה שעברה" }, { "id": 5, - "name": "Custom date range" + "name": "טווח תאריכים מותאם אישית" } ], "CUSTOM_DATE_RANGE": { - "CONFIRM": "Apply", - "PLACEHOLDER": "Select date range" + "CONFIRM": "להגיש מועמדות", + "PLACEHOLDER": "בחר טווח תאריכים" }, - "GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By", - "DURATION_FILTER_LABEL": "Duration", + "GROUP_BY_FILTER_DROPDOWN_LABEL": "קבוצה לפי", + "DURATION_FILTER_LABEL": "משך", "GROUP_BY_DAY_OPTIONS": [ { "id": 1, - "groupBy": "Day" + "groupBy": "יום" } ], "GROUP_BY_WEEK_OPTIONS": [ { "id": 1, - "groupBy": "Day" + "groupBy": "יום" }, { "id": 2, - "groupBy": "Week" + "groupBy": "שבוע" } ], "GROUP_BY_MONTH_OPTIONS": [ { "id": 1, - "groupBy": "Day" + "groupBy": "יום" }, { "id": 2, - "groupBy": "Week" + "groupBy": "שבוע" }, { "id": 3, - "groupBy": "Month" + "groupBy": "חודש" } ], "GROUP_BY_YEAR_OPTIONS": [ { "id": 1, - "groupBy": "Day" + "groupBy": "יום" }, { "id": 2, - "groupBy": "Week" + "groupBy": "שבוע" }, { "id": 3, - "groupBy": "Month" + "groupBy": "חודש" }, { "id": 4, - "groupBy": "Year" + "groupBy": "שנה" } ], "BUSINESS_HOURS": "שעות פעילות" }, "AGENT_REPORTS": { - "HEADER": "Agents Overview", - "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", + "HEADER": "סקירה כללית של סוכנים", + "LOADING_CHART": "טוען נתוני תרשים...", + "NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.", + "DOWNLOAD_AGENT_REPORTS": "הורד דוחות סוכן", "FILTER_DROPDOWN_LABEL": "בחר סוכן", "METRICS": { "CONVERSATIONS": { @@ -128,133 +128,133 @@ "DESC": "( Total )" }, "INCOMING_MESSAGES": { - "NAME": "Incoming Messages", + "NAME": "הודעות נכנסות", "DESC": "( Total )" }, "OUTGOING_MESSAGES": { - "NAME": "Outgoing Messages", + "NAME": "הודעות יוצאות", "DESC": "( Total )" }, "FIRST_RESPONSE_TIME": { - "NAME": "First Response Time", + "NAME": "זמן תגובה ראשון", "DESC": "( Avg )", - "INFO_TEXT": "Total number of conversations used for computation:", - "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + "INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:", + "TOOLTIP_TEXT": "זמן התגובה הראשון הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)" }, "RESOLUTION_TIME": { - "NAME": "Resolution Time", + "NAME": "זמן רזולוציה", "DESC": "( Avg )", - "INFO_TEXT": "Total number of conversations used for computation:", - "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + "INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:", + "TOOLTIP_TEXT": "זמן הרזולוציה הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)" }, "RESOLUTION_COUNT": { - "NAME": "Resolution Count", + "NAME": "ספירת רזולוציות", "DESC": "( Total )" } }, "DATE_RANGE": [ { "id": 0, - "name": "Last 7 days" + "name": "7 הימים האחרונים" }, { "id": 1, - "name": "Last 30 days" + "name": "30 הימים האחרונים" }, { "id": 2, - "name": "Last 3 months" + "name": "3 החודשים האחרונים" }, { "id": 3, - "name": "Last 6 months" + "name": "6 החודשים האחרונים" }, { "id": 4, - "name": "Last year" + "name": "שנה שעברה" }, { "id": 5, - "name": "Custom date range" + "name": "טווח תאריכים מותאם אישית" } ], "CUSTOM_DATE_RANGE": { - "CONFIRM": "Apply", - "PLACEHOLDER": "Select date range" + "CONFIRM": "להגיש מועמדות", + "PLACEHOLDER": "בחר טווח תאריכים" } }, "LABEL_REPORTS": { - "HEADER": "Labels Overview", - "LOADING_CHART": "Loading chart data...", - "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", - "DOWNLOAD_LABEL_REPORTS": "Download label reports", - "FILTER_DROPDOWN_LABEL": "Select Label", + "HEADER": "סקירת תוויות", + "LOADING_CHART": "טוען נתוני תרשים...", + "NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.", + "DOWNLOAD_LABEL_REPORTS": "הורד דוחות תווית", + "FILTER_DROPDOWN_LABEL": "בחר תווית", "METRICS": { "CONVERSATIONS": { "NAME": "שיחות", "DESC": "( Total )" }, "INCOMING_MESSAGES": { - "NAME": "Incoming Messages", + "NAME": "הודעות נכנסות", "DESC": "( Total )" }, "OUTGOING_MESSAGES": { - "NAME": "Outgoing Messages", + "NAME": "הודעות יוצאות", "DESC": "( Total )" }, "FIRST_RESPONSE_TIME": { - "NAME": "First Response Time", + "NAME": "זמן תגובה ראשון", "DESC": "( Avg )", - "INFO_TEXT": "Total number of conversations used for computation:", - "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + "INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:", + "TOOLTIP_TEXT": "זמן התגובה הראשון הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)" }, "RESOLUTION_TIME": { - "NAME": "Resolution Time", + "NAME": "זמן רזולוציה", "DESC": "( Avg )", - "INFO_TEXT": "Total number of conversations used for computation:", - "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + "INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:", + "TOOLTIP_TEXT": "זמן הרזולוציה הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)" }, "RESOLUTION_COUNT": { - "NAME": "Resolution Count", + "NAME": "ספירת רזולוציות", "DESC": "( Total )" } }, "DATE_RANGE": [ { "id": 0, - "name": "Last 7 days" + "name": "7 הימים האחרונים" }, { "id": 1, - "name": "Last 30 days" + "name": "30 הימים האחרונים" }, { "id": 2, - "name": "Last 3 months" + "name": "3 החודשים האחרונים" }, { "id": 3, - "name": "Last 6 months" + "name": "6 החודשים האחרונים" }, { "id": 4, - "name": "Last year" + "name": "שנה שעברה" }, { "id": 5, - "name": "Custom date range" + "name": "טווח תאריכים מותאם אישית" } ], "CUSTOM_DATE_RANGE": { - "CONFIRM": "Apply", - "PLACEHOLDER": "Select date range" + "CONFIRM": "להגיש מועמדות", + "PLACEHOLDER": "בחר טווח תאריכים" } }, "INBOX_REPORTS": { - "HEADER": "Inbox Overview", - "LOADING_CHART": "Loading chart data...", - "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", - "DOWNLOAD_INBOX_REPORTS": "Download inbox reports", + "HEADER": "סקירה כללית של תיבת הדואר הנכנס", + "LOADING_CHART": "טוען נתוני תרשים...", + "NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.", + "DOWNLOAD_INBOX_REPORTS": "הורד דוחות תיבת דואר נכנס", "FILTER_DROPDOWN_LABEL": "בחר תיבת דואר", "METRICS": { "CONVERSATIONS": { @@ -262,201 +262,201 @@ "DESC": "( Total )" }, "INCOMING_MESSAGES": { - "NAME": "Incoming Messages", + "NAME": "הודעות נכנסות", "DESC": "( Total )" }, "OUTGOING_MESSAGES": { - "NAME": "Outgoing Messages", + "NAME": "הודעות יוצאות", "DESC": "( Total )" }, "FIRST_RESPONSE_TIME": { - "NAME": "First Response Time", + "NAME": "זמן תגובה ראשון", "DESC": "( Avg )", - "INFO_TEXT": "Total number of conversations used for computation:", - "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + "INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:", + "TOOLTIP_TEXT": "זמן התגובה הראשון הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)" }, "RESOLUTION_TIME": { - "NAME": "Resolution Time", + "NAME": "זמן רזולוציה", "DESC": "( Avg )", - "INFO_TEXT": "Total number of conversations used for computation:", - "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + "INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:", + "TOOLTIP_TEXT": "זמן הרזולוציה הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)" }, "RESOLUTION_COUNT": { - "NAME": "Resolution Count", + "NAME": "ספירת רזולוציות", "DESC": "( Total )" } }, "DATE_RANGE": [ { "id": 0, - "name": "Last 7 days" + "name": "7 הימים האחרונים" }, { "id": 1, - "name": "Last 30 days" + "name": "30 הימים האחרונים" }, { "id": 2, - "name": "Last 3 months" + "name": "3 החודשים האחרונים" }, { "id": 3, - "name": "Last 6 months" + "name": "6 החודשים האחרונים" }, { "id": 4, - "name": "Last year" + "name": "שנה שעברה" }, { "id": 5, - "name": "Custom date range" + "name": "טווח תאריכים מותאם אישית" } ], "CUSTOM_DATE_RANGE": { - "CONFIRM": "Apply", - "PLACEHOLDER": "Select date range" + "CONFIRM": "להגיש מועמדות", + "PLACEHOLDER": "בחר טווח תאריכים" } }, "TEAM_REPORTS": { - "HEADER": "Team Overview", - "LOADING_CHART": "Loading chart data...", - "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", - "DOWNLOAD_TEAM_REPORTS": "Download team reports", - "FILTER_DROPDOWN_LABEL": "Select Team", + "HEADER": "סקירת צוות", + "LOADING_CHART": "טוען נתוני תרשים...", + "NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.", + "DOWNLOAD_TEAM_REPORTS": "הורד דוחות צוות", + "FILTER_DROPDOWN_LABEL": "תבחר קבוצה", "METRICS": { "CONVERSATIONS": { "NAME": "שיחות", "DESC": "( Total )" }, "INCOMING_MESSAGES": { - "NAME": "Incoming Messages", + "NAME": "הודעות נכנסות", "DESC": "( Total )" }, "OUTGOING_MESSAGES": { - "NAME": "Outgoing Messages", + "NAME": "הודעות יוצאות", "DESC": "( Total )" }, "FIRST_RESPONSE_TIME": { - "NAME": "First Response Time", + "NAME": "זמן תגובה ראשון", "DESC": "( Avg )", - "INFO_TEXT": "Total number of conversations used for computation:", - "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + "INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:", + "TOOLTIP_TEXT": "זמן התגובה הראשון הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)" }, "RESOLUTION_TIME": { - "NAME": "Resolution Time", + "NAME": "זמן רזולוציה", "DESC": "( Avg )", - "INFO_TEXT": "Total number of conversations used for computation:", - "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + "INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:", + "TOOLTIP_TEXT": "זמן הרזולוציה הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)" }, "RESOLUTION_COUNT": { - "NAME": "Resolution Count", + "NAME": "ספירת רזולוציות", "DESC": "( Total )" } }, "DATE_RANGE": [ { "id": 0, - "name": "Last 7 days" + "name": "7 הימים האחרונים" }, { "id": 1, - "name": "Last 30 days" + "name": "30 הימים האחרונים" }, { "id": 2, - "name": "Last 3 months" + "name": "3 החודשים האחרונים" }, { "id": 3, - "name": "Last 6 months" + "name": "6 החודשים האחרונים" }, { "id": 4, - "name": "Last year" + "name": "שנה שעברה" }, { "id": 5, - "name": "Custom date range" + "name": "טווח תאריכים מותאם אישית" } ], "CUSTOM_DATE_RANGE": { - "CONFIRM": "Apply", - "PLACEHOLDER": "Select date range" + "CONFIRM": "להגיש מועמדות", + "PLACEHOLDER": "בחר טווח תאריכים" } }, "CSAT_REPORTS": { - "HEADER": "CSAT Reports", - "NO_RECORDS": "There are no CSAT survey responses available.", - "DOWNLOAD": "Download CSAT Reports", + "HEADER": "דוחות CSAT", + "NO_RECORDS": "אין תשובות לסקר CSAT זמינות.", + "DOWNLOAD": "הורד דוחות CSAT", "FILTERS": { "AGENTS": { - "PLACEHOLDER": "Choose Agents" + "PLACEHOLDER": "בחר סוכנים" } }, "TABLE": { "HEADER": { - "CONTACT_NAME": "Contact", - "AGENT_NAME": "Assigned agent", + "CONTACT_NAME": "איש קשר", + "AGENT_NAME": "סוכן מוקצה", "RATING": "דירוג", - "FEEDBACK_TEXT": "Feedback comment" + "FEEDBACK_TEXT": "הערת משוב" } }, "METRIC": { "TOTAL_RESPONSES": { - "LABEL": "Total responses", - "TOOLTIP": "Total number of responses collected" + "LABEL": "סה\"כ תגובות", + "TOOLTIP": "מספר כולל של תגובות שנאספו" }, "SATISFACTION_SCORE": { - "LABEL": "Satisfaction score", - "TOOLTIP": "Total number of positive responses / Total number of responses * 100" + "LABEL": "ציון שביעות רצון", + "TOOLTIP": "מספר סה\"כ של תגובות חיוביות / סה\"כ מספר תגובות * 100" }, "RESPONSE_RATE": { - "LABEL": "Response rate", - "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100" + "LABEL": "שיעור תגובה", + "TOOLTIP": "מספר כולל של תגובות / מספר כולל של הודעות סקר CSAT שנשלחו * 100" } } }, "OVERVIEW_REPORTS": { - "HEADER": "Overview", - "LIVE": "Live", + "HEADER": "סקירה כללית", + "LIVE": "לחיות", "ACCOUNT_CONVERSATIONS": { - "HEADER": "Open Conversations", - "LOADING_MESSAGE": "Loading conversation metrics...", + "HEADER": "שיחות פתוחות", + "LOADING_MESSAGE": "טוען מדדי שיחה...", "OPEN": "פתח", - "UNATTENDED": "Unattended", + "UNATTENDED": "ללא השגחה", "UNASSIGNED": "לא הוקצתה" }, "CONVERSATION_HEATMAP": { - "HEADER": "Conversation Traffic", - "NO_CONVERSATIONS": "No conversations", - "CONVERSATION": "%{count} conversation", - "CONVERSATIONS": "%{count} conversations" + "HEADER": "תנועת שיחות", + "NO_CONVERSATIONS": "בלי שיחות", + "CONVERSATION": "שיחה %{count}", + "CONVERSATIONS": "%{count} שיחות" }, "AGENT_CONVERSATIONS": { - "HEADER": "Conversations by agents", - "LOADING_MESSAGE": "Loading agent metrics...", - "NO_AGENTS": "There are no conversations by agents", + "HEADER": "שיחות של סוכנים", + "LOADING_MESSAGE": "מדדי סוכן טעינה...", + "NO_AGENTS": "אין שיחות של סוכנים", "TABLE_HEADER": { "AGENT": "סוכן", - "OPEN": "OPEN", - "UNATTENDED": "Unattended", + "OPEN": "פתוח", + "UNATTENDED": "ללא השגחה", "STATUS": "מצב" } }, "AGENT_STATUS": { - "HEADER": "Agent status", + "HEADER": "סטטוס סוכן", "ONLINE": "מחובר", "BUSY": "עסוק", "OFFLINE": "לא מחובר" } }, "DAYS_OF_WEEK": { - "SUNDAY": "Sunday", - "MONDAY": "Monday", - "TUESDAY": "Tuesday", - "WEDNESDAY": "Wednesday", - "THURSDAY": "Thursday", - "FRIDAY": "Friday", - "SATURDAY": "Saturday" + "SUNDAY": "יום ראשון", + "MONDAY": "יום שני", + "TUESDAY": "יום שלישי", + "WEDNESDAY": "יום רביעי", + "THURSDAY": "יום חמישי", + "FRIDAY": "שישי", + "SATURDAY": "יום שבת" } } diff --git a/app/javascript/dashboard/i18n/locale/he/search.json b/app/javascript/dashboard/i18n/locale/he/search.json index 12c207998..dd211513c 100644 --- a/app/javascript/dashboard/i18n/locale/he/search.json +++ b/app/javascript/dashboard/i18n/locale/he/search.json @@ -11,13 +11,13 @@ "CONVERSATIONS": "שיחות", "MESSAGES": "הודעות" }, - "EMPTY_STATE": "No %{item} found for query '%{query}'", - "EMPTY_STATE_FULL": "No results found for query '%{query}'", - "PLACEHOLDER_KEYBINDING": "/ to focus", - "INPUT_PLACEHOLDER": "Search messages, contacts or conversations", - "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.", + "EMPTY_STATE": "לא נמצא %{item} עבור השאילתה '%{query}'", + "EMPTY_STATE_FULL": "לא נמצאו תוצאות עבור השאילתה '%{query}'", + "PLACEHOLDER_KEYBINDING": "/ להתמקד", + "INPUT_PLACEHOLDER": "חפש הודעות, אנשי קשר או שיחות", + "EMPTY_STATE_DEFAULT": "חפש לפי מזהה שיחה, אימייל, מספר טלפון, הודעות לתוצאות חיפוש טובות יותר.", "BOT_LABEL": "בוט", - "READ_MORE": "Read more", - "WROTE": "wrote:" + "READ_MORE": "קרא עוד", + "WROTE": "נכתב:" } } diff --git a/app/javascript/dashboard/i18n/locale/he/setNewPassword.json b/app/javascript/dashboard/i18n/locale/he/setNewPassword.json index e8bea325e..59175d871 100644 --- a/app/javascript/dashboard/i18n/locale/he/setNewPassword.json +++ b/app/javascript/dashboard/i18n/locale/he/setNewPassword.json @@ -16,7 +16,7 @@ "ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר" }, "CAPTCHA": { - "ERROR": "Verification expired. Please solve captcha again." + "ERROR": "פג תוקף האימות. נא לפתור שוב את ה-captcha." }, "SUBMIT": "שלח" } diff --git a/app/javascript/dashboard/i18n/locale/he/settings.json b/app/javascript/dashboard/i18n/locale/he/settings.json index 5f8a61d14..bc97d2932 100644 --- a/app/javascript/dashboard/i18n/locale/he/settings.json +++ b/app/javascript/dashboard/i18n/locale/he/settings.json @@ -52,7 +52,7 @@ "BTN_TEXT": "שנה סיסמא" }, "ACCESS_TOKEN": { - "TITLE": "Token", + "TITLE": "אסימון", "NOTE": "משמש לחיבורי API" }, "AUDIO_NOTIFICATIONS_SECTION": { @@ -127,76 +127,77 @@ }, "CURRENT_PASSWORD": { "LABEL": "סיסמא נוכחית", - "ERROR": "Please enter the current password", - "PLACEHOLDER": "Please enter the current password" + "ERROR": "אנא הזן את הסיסמה הנוכחית", + "PLACEHOLDER": "אנא הזן את הסיסמה הנוכחית" }, "PASSWORD": { - "LABEL": "New password", - "ERROR": "Please enter a password of length 6 or more", - "PLACEHOLDER": "Please enter a new password" + "LABEL": "סיסמה חדשה", + "ERROR": "אנא הזן סיסמה באורך 6 או יותר", + "PLACEHOLDER": "אנא הזן סיסמה חדשה" }, "PASSWORD_CONFIRMATION": { - "LABEL": "Confirm new password", - "ERROR": "Confirm password should match the password", - "PLACEHOLDER": "Please re-enter your new password" + "LABEL": "תאשר סיסמא חדשה", + "ERROR": "אשר את הסיסמה צריכה להתאים לסיסמה", + "PLACEHOLDER": "אנא הזן מחדש את הסיסמה החדשה שלך" } } }, "SIDEBAR_ITEMS": { - "CHANGE_AVAILABILITY_STATUS": "Change", + "CHANGE_AVAILABILITY_STATUS": "שינוי", "CHANGE_ACCOUNTS": "החלף חשבון", - "CONTACT_SUPPORT": "Contact Support", - "SELECTOR_SUBTITLE": "Select an account from the following list", + "CONTACT_SUPPORT": "צור קשר עם תמיכה", + "SELECTOR_SUBTITLE": "בחר חשבון מהרשימה הבאה", "PROFILE_SETTINGS": "הגדרות פרופיל", - "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts", - "SUPER_ADMIN_CONSOLE": "Super Admin Console", + "KEYBOARD_SHORTCUTS": "קיצורי דרך במקלדת", + "SUPER_ADMIN_CONSOLE": "מסוף סופר אדמין", "LOGOUT": "התנתק" }, "APP_GLOBAL": { - "TRIAL_MESSAGE": "days trial remaining.", - "TRAIL_BUTTON": "Buy Now", - "DELETED_USER": "Deleted User", + "TRIAL_MESSAGE": "שנותרו ימי ניסיון.", + "TRAIL_BUTTON": "קנה עכשיו", + "DELETED_USER": "משתמש מחוק", "ACCOUNT_SUSPENDED": { - "TITLE": "Account Suspended", - "MESSAGE": "Your account is suspended. Please reach out to the support team for more information." + "TITLE": "חשבון מושעה", + "MESSAGE": "החשבון שלך מושעה. אנא פנה לצוות התמיכה לקבלת מידע נוסף." } }, "COMPONENTS": { "CODE": { - "BUTTON_TEXT": "Copy", - "COPY_SUCCESSFUL": "Code copied to clipboard successfully" + "BUTTON_TEXT": "עותק", + "CODEPEN": "פתח ב-CodePen", + "COPY_SUCCESSFUL": "הקוד הועתק ללוח בהצלחה" }, "SHOW_MORE_BLOCK": { - "SHOW_MORE": "Show More", - "SHOW_LESS": "Show Less" + "SHOW_MORE": "להראות יותר", + "SHOW_LESS": "הראי פחות" }, "FILE_BUBBLE": { "DOWNLOAD": "הורד", "UPLOADING": "מעלה...", - "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available." + "INSTAGRAM_STORY_UNAVAILABLE": "הסיפור הזה כבר לא זמין." }, "LOCATION_BUBBLE": { - "SEE_ON_MAP": "See on map" + "SEE_ON_MAP": "ראה במפה" }, "FORM_BUBBLE": { "SUBMIT": "שלח" } }, - "CONFIRM_EMAIL": "Verifying...", + "CONFIRM_EMAIL": "מאמת...", "SETTINGS": { "INBOXES": { - "NEW_INBOX": "Add Inbox" + "NEW_INBOX": "הוסף תיבת דואר נכנס" } }, "SIDEBAR": { - "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:", - "SWITCH": "Switch", + "CURRENTLY_VIEWING_ACCOUNT": "צופה כרגע:", + "SWITCH": "החלף", "CONVERSATIONS": "שיחות", "ALL_CONVERSATIONS": "כל השיחות", "MENTIONED_CONVERSATIONS": "אִזְכּוּרים", - "PARTICIPATING_CONVERSATIONS": "Participating", - "UNATTENDED_CONVERSATIONS": "Unattended", - "REPORTS": "Reports", + "PARTICIPATING_CONVERSATIONS": "משתתף", + "UNATTENDED_CONVERSATIONS": "ללא השגחה", + "REPORTS": "דיווחים", "SETTINGS": "הגדרות", "CONTACTS": "איש קשר", "HOME": "בית", @@ -207,106 +208,106 @@ "CANNED_RESPONSES": "תגובות מוכנות", "INTEGRATIONS": "אינטגרציות", "PROFILE_SETTINGS": "הגדרות פרופיל", - "ACCOUNT_SETTINGS": "Account Settings", + "ACCOUNT_SETTINGS": "הגדרות חשבון", "APPLICATIONS": "יישומים", - "LABELS": "Labels", + "LABELS": "תוויות", "CUSTOM_ATTRIBUTES": "מאפיינים בהתאמה אישית", - "AUTOMATION": "Automation", - "MACROS": "Macros", - "TEAMS": "Teams", - "BILLING": "Billing", - "CUSTOM_VIEWS_FOLDER": "Folders", - "CUSTOM_VIEWS_SEGMENTS": "Segments", - "ALL_CONTACTS": "All Contacts", - "TAGGED_WITH": "Tagged with", - "NEW_LABEL": "New label", - "NEW_TEAM": "New team", - "NEW_INBOX": "New inbox", + "AUTOMATION": "אוטומציה", + "MACROS": "מאקרו", + "TEAMS": "צוותים", + "BILLING": "חיוב", + "CUSTOM_VIEWS_FOLDER": "תיקיות", + "CUSTOM_VIEWS_SEGMENTS": "פלחים", + "ALL_CONTACTS": "כל אנשי הקשר", + "TAGGED_WITH": "מתוייג עם", + "NEW_LABEL": "תווית חדשה", + "NEW_TEAM": "קבוצה חדשה", + "NEW_INBOX": "תיבת דואר נכנס חדשה", "REPORTS_CONVERSATION": "שיחות", "CSAT": "CSAT", "CAMPAIGNS": "קמפיין", - "ONGOING": "Ongoing", - "ONE_OFF": "One off", + "ONGOING": "מתמשך", + "ONE_OFF": "חד פעמי", "REPORTS_AGENT": "סוכנים", - "REPORTS_LABEL": "Labels", + "REPORTS_LABEL": "תוויות", "REPORTS_INBOX": "תיבת הדואר הנכנס", - "REPORTS_TEAM": "Team", - "SET_AVAILABILITY_TITLE": "Set yourself as", - "BETA": "Beta", - "REPORTS_OVERVIEW": "Overview", + "REPORTS_TEAM": "צוות", + "SET_AVAILABILITY_TITLE": "הגדר את עצמך בתור", + "BETA": "בטא", + "REPORTS_OVERVIEW": "סקירה כללית", "FACEBOOK_REAUTHORIZE": "פג תוקף החיבור שלך לפייסבוק, אנא חבר מחדש את דף הפייסבוק שלך כדי להמשיך בשירותים", "HELP_CENTER": { - "TITLE": "Help Center (Beta)", - "ALL_ARTICLES": "All Articles", - "MY_ARTICLES": "My Articles", - "DRAFT": "Draft", - "ARCHIVED": "Archived", - "CATEGORY": "Category", + "TITLE": "מרכז העזרה (ביטא)", + "ALL_ARTICLES": "כל המאמרים", + "MY_ARTICLES": "הכתבות שלי", + "DRAFT": "טיוטה", + "ARCHIVED": "בארכיון", + "CATEGORY": "קטגוריה", "SETTINGS": "הגדרות", - "CATEGORY_EMPTY_MESSAGE": "No categories found" + "CATEGORY_EMPTY_MESSAGE": "לא נמצאו קטגוריות" }, "SET_AUTO_OFFLINE": { - "TEXT": "Mark offline automatically", - "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard." + "TEXT": "סמן באופן לא מקוון באופן אוטומטי", + "INFO_TEXT": "תן למערכת לסמן אותך באופן אוטומטי במצב לא מקוון כשאתה לא משתמש באפליקציה או בלוח המחוונים." }, - "DOCS": "Read docs" + "DOCS": "קרא מסמכים" }, "BILLING_SETTINGS": { - "TITLE": "Billing", + "TITLE": "חיוב", "CURRENT_PLAN": { - "TITLE": "Current Plan", - "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses" + "TITLE": "תוכנית נוכחית", + "PLAN_NOTE": "אתה רשום כעת לתוכנית **%{plan}** עם רישיונות **%{quantity}**" }, "MANAGE_SUBSCRIPTION": { - "TITLE": "Manage your subscription", - "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.", - "BUTTON_TXT": "Go to the billing portal" + "TITLE": "נהל את המנוי שלך", + "DESCRIPTION": "הצג את החשבוניות הקודמות שלך, ערוך את פרטי החיוב שלך או בטל את המנוי שלך.", + "BUTTON_TXT": "עבור לפורטל החיובים" }, "CHAT_WITH_US": { - "TITLE": "Need help?", - "DESCRIPTION": "Do you face any issues in billing? We are here to help.", + "TITLE": "זקוק לעזרה?", + "DESCRIPTION": "האם אתה נתקל בבעיות כלשהן בחיוב? אנחנו כאן כדי לעזור.", "BUTTON_TXT": "דבר איתנו" }, - "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again." + "NO_BILLING_USER": "חשבון החיוב שלך מוגדר. אנא רענן את הדף ונסה שוב." }, "CREATE_ACCOUNT": { - "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.", - "NEW_ACCOUNT": "New Account", - "SELECTOR_SUBTITLE": "Create a new account", + "NO_ACCOUNT_WARNING": "אה הו! לא הצלחנו למצוא חשבונות Chatwoot. נא ליצור חשבון חדש כדי להמשיך.", + "NEW_ACCOUNT": "חשבון חדש", + "SELECTOR_SUBTITLE": "צור חשבון חדש", "API": { - "SUCCESS_MESSAGE": "Account created successfully", - "EXIST_MESSAGE": "Account already exists", + "SUCCESS_MESSAGE": "החשבון נוצר בהצלחה", + "EXIST_MESSAGE": "החשבון כבר קיים", "ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר" }, "FORM": { "NAME": { "LABEL": "שם החברה", - "PLACEHOLDER": "Wayne Enterprises" + "PLACEHOLDER": "וויין אנטרפרייז" }, "SUBMIT": "שלח" } }, "KEYBOARD_SHORTCUTS": { - "TOGGLE_MODAL": "View all shortcuts", + "TOGGLE_MODAL": "הצג את כל קיצורי הדרך", "TITLE": { - "OPEN_CONVERSATION": "Open conversation", - "RESOLVE_AND_NEXT": "Resolve and move to next", - "NAVIGATE_DROPDOWN": "Navigate dropdown items", - "RESOLVE_CONVERSATION": "Resolve Conversation", - "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard", - "ADD_ATTACHMENT": "Add Attachment", - "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard", - "TOGGLE_SIDEBAR": "Toggle Sidebar", - "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar", - "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list", - "GO_TO_SETTINGS": "Go to Settings", - "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status", - "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note", - "SWITCH_TO_REPLY": "Switch to Reply", - "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown" + "OPEN_CONVERSATION": "שיחה פתוחה", + "RESOLVE_AND_NEXT": "פתור ועבור להבא", + "NAVIGATE_DROPDOWN": "נווט בפריטים הנפתחים", + "RESOLVE_CONVERSATION": "פתור שיחה", + "GO_TO_CONVERSATION_DASHBOARD": "עבור ללוח המחוונים לשיחה", + "ADD_ATTACHMENT": "הוסף קובץ מצורף", + "GO_TO_CONTACTS_DASHBOARD": "עבור ללוח המחוונים של אנשי קשר", + "TOGGLE_SIDEBAR": "החלפת סרגל צד", + "GO_TO_REPORTS_SIDEBAR": "עבור לסרגל הצד של דוחות", + "MOVE_TO_NEXT_TAB": "עבור ללשונית הבאה ברשימת השיחות", + "GO_TO_SETTINGS": "לך להגדרות", + "SWITCH_CONVERSATION_STATUS": "עבור למצב השיחה הבאה", + "SWITCH_TO_PRIVATE_NOTE": "עבור להערה פרטית", + "SWITCH_TO_REPLY": "עבור לתשובה", + "TOGGLE_SNOOZE_DROPDOWN": "החלפת תפריט נודניק" }, "KEYS": { - "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘", + "WINDOWS_KEY_AND_COMMAND_KEY": "נצח / ⌘", "ALT_OR_OPTION_KEY": "Alt / ⌥", "FORWARD_SLASH_KEY": "/" } diff --git a/app/javascript/dashboard/i18n/locale/he/signup.json b/app/javascript/dashboard/i18n/locale/he/signup.json index 489fafb53..a8d580aa4 100644 --- a/app/javascript/dashboard/i18n/locale/he/signup.json +++ b/app/javascript/dashboard/i18n/locale/he/signup.json @@ -1,44 +1,44 @@ { "REGISTER": { - "TRY_WOOT": "Create an account", - "TITLE": "Register", - "TESTIMONIAL_HEADER": "All it takes is one step to move forward", - "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.", - "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy", + "TRY_WOOT": "צור חשבון", + "TITLE": "הירשם", + "TESTIMONIAL_HEADER": "כל מה שצריך זה צעד אחד כדי להתקדם", + "TESTIMONIAL_CONTENT": "אתה במרחק צעד אחד מלהפעיל את הלקוחות שלך, לשמר אותם ולמצוא חדשים.", + "TERMS_ACCEPT": "על ידי יצירת חשבון, אתה מסכים לתנאים וההגבלות ול-מדיניות הפרטיות", "OAUTH": { - "GOOGLE_SIGNUP": "Sign up with Google" + "GOOGLE_SIGNUP": "הירשם לגוגל" }, "COMPANY_NAME": { - "LABEL": "Company name", - "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises", - "ERROR": "Company name is too short" + "LABEL": "שם החברה", + "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": "הזן את שמך המלא. למשל: ברוס וויין", + "ERROR": "השם המלא קצר מדי" }, "EMAIL": { - "LABEL": "Work email", - "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises", - "ERROR": "Please enter a valid work email address" + "LABEL": "מייל עבודה", + "PLACEHOLDER": "הזן את כתובת הדוא\"ל שלך בעבודה. למשל: bruce@wayne.enterprises", + "ERROR": "אנא הזן כתובת דוא\"ל חוקית לעבודה" }, "PASSWORD": { "LABEL": "סיסמה", "PLACEHOLDER": "סיסמה", "ERROR": "הסיסמה קצרה מדי", - "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character" + "IS_INVALID_PASSWORD": "הסיסמה צריכה להכיל לפחות אות אחת גדולה, אות קטנה אחת, מספר אחד ותו מיוחד אחד" }, "CONFIRM_PASSWORD": { "LABEL": "אמת סיסמה", "PLACEHOLDER": "אמת סיסמה", - "ERROR": "Password doesnot match" + "ERROR": "סיסמה לא מתאימה" }, "API": { - "SUCCESS_MESSAGE": "Registration Successfull", + "SUCCESS_MESSAGE": "ההרשמה הצליחה", "ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר" }, - "SUBMIT": "Create account", - "HAVE_AN_ACCOUNT": "Already have an account?" + "SUBMIT": "צור חשבון", + "HAVE_AN_ACCOUNT": "כבר יש לך חשבון?" } } diff --git a/app/javascript/dashboard/i18n/locale/he/teamsSettings.json b/app/javascript/dashboard/i18n/locale/he/teamsSettings.json index f02e1ba85..70683fe9e 100644 --- a/app/javascript/dashboard/i18n/locale/he/teamsSettings.json +++ b/app/javascript/dashboard/i18n/locale/he/teamsSettings.json @@ -1,35 +1,35 @@ { "TEAMS_SETTINGS": { - "NEW_TEAM": "Create new team", - "HEADER": "Teams", - "SIDEBAR_TXT": "

Teams

Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.

", + "NEW_TEAM": "צור צוות חדש", + "HEADER": "צוותים", + "SIDEBAR_TXT": "

צוותים

צוותים מאפשרים לך לארגן את הסוכנים שלך בקבוצות על סמך תחומי האחריות שלהם.
סוכן יכול להיות חלק ממספר צוותים. אתה יכול להקצות שיחות לצוות כאשר אתה עובד בשיתוף פעולה.

", "LIST": { - "404": "There are no teams created on this account.", - "EDIT_TEAM": "Edit team" + "404": "לא נוצרו צוותים בחשבון זה.", + "EDIT_TEAM": "ערוך צוות" }, "CREATE_FLOW": { "CREATE": { - "TITLE": "Create a new team", - "DESC": "Add a title and description to your new team." + "TITLE": "צור צוות חדש", + "DESC": "הוסף כותרת ותיאור לצוות החדש שלך." }, "AGENTS": { - "BUTTON_TEXT": "Add agents to team", - "TITLE": "Add agents to team - %{teamName}", - "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation." + "BUTTON_TEXT": "הוסף סוכנים לצוות", + "TITLE": "הוסף סוכנים לצוות - %{teamName}", + "DESC": "הוסף סוכנים לצוות החדש שלך שנוצר. זה מאפשר לך לשתף פעולה כצוות בשיחות, לקבל התראות על אירועים חדשים באותה שיחה." }, "WIZARD": [ { "title": "צור", "route": "settings_teams_new", - "body": "Create a new team of agents." + "body": "צור צוות חדש של סוכנים." }, { "title": "הוסף נציג", "route": "settings_teams_add_agents", - "body": "Add agents to the team." + "body": "הוסף סוכנים לצוות." }, { - "title": "Finish", + "title": "סיים", "route": "settings_teams_finish", "body": "אתם מוכנים לצאת לדרך!" } @@ -37,89 +37,89 @@ }, "EDIT_FLOW": { "CREATE": { - "TITLE": "Edit your team details", - "DESC": "Edit title and description to your team.", - "BUTTON_TEXT": "Update team" + "TITLE": "ערוך את פרטי הצוות שלך", + "DESC": "ערוך כותרת ותיאור לצוות שלך.", + "BUTTON_TEXT": "עדכן צוות" }, "AGENTS": { - "BUTTON_TEXT": "Update agents in team", - "TITLE": "Add agents to team - %{teamName}", - "DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team." + "BUTTON_TEXT": "עדכן סוכנים בצוות", + "TITLE": "הוסף סוכנים לצוות - %{teamName}", + "DESC": "הוסף סוכנים לצוות החדש שלך שנוצר. כל הסוכנים שנוספו יקבלו הודעה כאשר שיחה תוקצה לצוות זה." }, "WIZARD": [ { - "title": "Team details", + "title": "פרטי צוות", "route": "settings_teams_edit", - "body": "Change name, description and other details." + "body": "שנה שם, תיאור ופרטים נוספים." }, { - "title": "Edit Agents", + "title": "עריכת סוכנים", "route": "settings_teams_edit_members", - "body": "Edit agents in your team." + "body": "ערוך סוכנים בצוות שלך." }, { - "title": "Finish", + "title": "סיים", "route": "settings_teams_edit_finish", "body": "אתם מוכנים לצאת לדרך!" } ] }, "TEAM_FORM": { - "ERROR_MESSAGE": "Couldn't save the team details. Try again." + "ERROR_MESSAGE": "לא ניתן לשמור את פרטי הצוות. נסה שוב." }, "AGENTS": { - "AGENT": "AGENT", + "AGENT": "סוכן", "EMAIL": "מייל", "BUTTON_TEXT": "הוסף נציגים", - "ADD_AGENTS": "Adding Agents to your Team...", - "SELECT": "select", - "SELECT_ALL": "select all agents", - "SELECTED_COUNT": "%{selected} out of %{total} agents selected." + "ADD_AGENTS": "הוספת סוכנים לצוות שלך...", + "SELECT": "בחר", + "SELECT_ALL": "בחר את כל הסוכנים", + "SELECTED_COUNT": "%{selected} מתוך %{total} סוכנים שנבחרו." }, "ADD": { - "TITLE": "Add agents to team - %{teamName}", - "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.", - "SELECT": "select", - "SELECT_ALL": "select all agents", - "SELECTED_COUNT": "%{selected} out of %{total} agents selected.", + "TITLE": "הוסף סוכנים לצוות - %{teamName}", + "DESC": "הוסף סוכנים לצוות החדש שלך שנוצר. זה מאפשר לך לשתף פעולה כצוות בשיחות, לקבל התראות על אירועים חדשים באותה שיחה.", + "SELECT": "בחר", + "SELECT_ALL": "בחר את כל הסוכנים", + "SELECTED_COUNT": "%{selected} מתוך %{total} סוכנים שנבחרו.", "BUTTON_TEXT": "הוסף נציגים", - "AGENT_VALIDATION_ERROR": "Select at least one agent." + "AGENT_VALIDATION_ERROR": "בחר סוכן אחד לפחות." }, "FINISH": { - "TITLE": "Your team is ready!", - "MESSAGE": "You can now collaborate as a team on conversations. Happy supporting ", - "BUTTON_TEXT": "Finish" + "TITLE": "הצוות שלך מוכן!", + "MESSAGE": "עכשיו אתה יכול לשתף פעולה כצוות בשיחות. תמיכה שמח ", + "BUTTON_TEXT": "סיים" }, "DELETE": { "BUTTON_TEXT": "מחק", "API": { - "SUCCESS_MESSAGE": "Team deleted successfully.", - "ERROR_MESSAGE": "Couldn't delete the team. Try again." + "SUCCESS_MESSAGE": "הצוות נמחק בהצלחה.", + "ERROR_MESSAGE": "לא ניתן למחוק את הצוות. נסה שוב." }, "CONFIRM": { - "TITLE": "Are you sure want to delete - %{teamName}", - "PLACE_HOLDER": "Please type {teamName} to confirm", - "MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.", + "TITLE": "האם אתה בטוח רוצה למחוק - %{teamName}", + "PLACE_HOLDER": "אנא הקלד {teamName} כדי לאשר", + "MESSAGE": "מחיקת הצוות תסיר את הקצאת הצוות מהשיחות שהוקצו לצוות זה.", "YES": "מחק ", "NO": "ביטול" } }, "SETTINGS": "הגדרות", "FORM": { - "UPDATE": "Update team", - "CREATE": "Create team", + "UPDATE": "עדכן צוות", + "CREATE": "צור צוות", "NAME": { - "LABEL": "Team name", - "PLACEHOLDER": "Example: Sales, Customer Support" + "LABEL": "שם קבוצה", + "PLACEHOLDER": "דוגמה: מכירות, תמיכת לקוחות" }, "DESCRIPTION": { - "LABEL": "Team Description", - "PLACEHOLDER": "Short description about this team." + "LABEL": "תיאור צוות", + "PLACEHOLDER": "תיאור קצר על הצוות הזה." }, "AUTO_ASSIGN": { - "LABEL": "Allow auto assign for this team." + "LABEL": "אפשר הקצאה אוטומטית עבור הצוות הזה." }, - "SUBMIT_CREATE": "Create team" + "SUBMIT_CREATE": "צור צוות" } } } diff --git a/app/javascript/dashboard/i18n/locale/he/webhooks.json b/app/javascript/dashboard/i18n/locale/he/webhooks.json index 347c96893..23006b344 100644 --- a/app/javascript/dashboard/i18n/locale/he/webhooks.json +++ b/app/javascript/dashboard/i18n/locale/he/webhooks.json @@ -1,5 +1,5 @@ { "WEBHOOKS_SETTINGS": { - "HEADER": "Webhook Settings" + "HEADER": "הגדרות Webhook" } } diff --git a/app/javascript/dashboard/i18n/locale/he/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/he/whatsappTemplates.json index bbcf28156..78964f044 100644 --- a/app/javascript/dashboard/i18n/locale/he/whatsappTemplates.json +++ b/app/javascript/dashboard/i18n/locale/he/whatsappTemplates.json @@ -1,25 +1,25 @@ { "WHATSAPP_TEMPLATES": { "MODAL": { - "TITLE": "Whatsapp Templates", - "SUBTITLE": "Select the whatsapp template you want to send", - "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}" + "TITLE": "תבניות וואטסאפ", + "SUBTITLE": "בחר את תבנית הווטסאפ שברצונך לשלוח", + "TEMPLATE_SELECTED_SUBTITLE": "עיבוד %{templateName}" }, "PICKER": { - "SEARCH_PLACEHOLDER": "Search Templates", - "NO_TEMPLATES_FOUND": "No templates found for", + "SEARCH_PLACEHOLDER": "חפש תבניות", + "NO_TEMPLATES_FOUND": "לא נמצאו תבניות עבור", "LABELS": { - "LANGUAGE": "Language", - "TEMPLATE_BODY": "Template Body", - "CATEGORY": "Category" + "LANGUAGE": "שפה", + "TEMPLATE_BODY": "גוף התבנית", + "CATEGORY": "קטגוריה" } }, "PARSER": { - "VARIABLES_LABEL": "Variables", - "VARIABLE_PLACEHOLDER": "Enter %{variable} value", - "GO_BACK_LABEL": "Go Back", - "SEND_MESSAGE_LABEL": "Send Message", - "FORM_ERROR_MESSAGE": "Please fill all variables before sending" + "VARIABLES_LABEL": "משתנים", + "VARIABLE_PLACEHOLDER": "הזן ערך %{variable}", + "GO_BACK_LABEL": "חזור", + "SEND_MESSAGE_LABEL": "לשלוח הודעה", + "FORM_ERROR_MESSAGE": "נא למלא את כל המשתנים לפני השליחה" } } } diff --git a/app/javascript/dashboard/i18n/locale/hi/advancedFilters.json b/app/javascript/dashboard/i18n/locale/hi/advancedFilters.json index 352f041b2..2875d51c2 100644 --- a/app/javascript/dashboard/i18n/locale/hi/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/hi/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/hi/agentMgmt.json b/app/javascript/dashboard/i18n/locale/hi/agentMgmt.json index f42c30ea8..97f7a4c55 100644 --- a/app/javascript/dashboard/i18n/locale/hi/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hi/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Email Address", "PLACEHOLDER": "Please enter an email address of the agent" }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Edit Agent" }, "BUTTON_TEXT": "Edit", diff --git a/app/javascript/dashboard/i18n/locale/hi/contact.json b/app/javascript/dashboard/i18n/locale/hi/contact.json index 14ab0032d..9191698d8 100644 --- a/app/javascript/dashboard/i18n/locale/hi/contact.json +++ b/app/javascript/dashboard/i18n/locale/hi/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Enter the company name", "LABEL": "Company Name" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Enter the Facebook username", diff --git a/app/javascript/dashboard/i18n/locale/hi/conversation.json b/app/javascript/dashboard/i18n/locale/hi/conversation.json index f98a3cdc0..597799c15 100644 --- a/app/javascript/dashboard/i18n/locale/hi/conversation.json +++ b/app/javascript/dashboard/i18n/locale/hi/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copy", "DELETE": "Delete", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Delete", + "CANCEL": "Cancel" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json index fa12859ec..60454261d 100644 --- a/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/hi/settings.json b/app/javascript/dashboard/i18n/locale/hi/settings.json index 6e6a8b675..112ac79bd 100644 --- a/app/javascript/dashboard/i18n/locale/hi/settings.json +++ b/app/javascript/dashboard/i18n/locale/hi/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code copied to clipboard successfully" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/hr/advancedFilters.json b/app/javascript/dashboard/i18n/locale/hr/advancedFilters.json new file mode 100644 index 000000000..31a9b4056 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/advancedFilters.json @@ -0,0 +1,94 @@ +{ + "FILTER": { + "TITLE": "Filter Conversations", + "SUBTITLE": "Add filters below and hit 'Apply filters' to filter conversations.", + "ADD_NEW_FILTER": "Add Filter", + "FILTER_DELETE_ERROR": "You should have atleast one filter to save", + "SUBMIT_BUTTON_LABEL": "Apply filters", + "CANCEL_BUTTON_LABEL": "Cancel", + "CLEAR_BUTTON_LABEL": "Clear Filters", + "EMPTY_VALUE_ERROR": "Value is required", + "TOOLTIP_LABEL": "Filter conversations", + "QUERY_DROPDOWN_LABELS": { + "AND": "AND", + "OR": "OR" + }, + "OPERATOR_LABELS": { + "equal_to": "Equal to", + "not_equal_to": "Not equal to", + "contains": "Contains", + "does_not_contain": "Does not contain", + "is_present": "Is present", + "is_not_present": "Is not present", + "is_greater_than": "Is greater than", + "is_less_than": "Is lesser than", + "days_before": "Is x days before", + "starts_with": "Počinje s" + }, + "ATTRIBUTE_LABELS": { + "TRUE": "True", + "FALSE": "False" + }, + "ATTRIBUTES": { + "STATUS": "Status", + "ASSIGNEE_NAME": "Assignee Name", + "INBOX_NAME": "Inbox Name", + "TEAM_NAME": "Team Name", + "CONVERSATION_IDENTIFIER": "Conversation Identifier", + "CAMPAIGN_NAME": "Campaign Name", + "LABELS": "Labels", + "BROWSER_LANGUAGE": "Browser Language", + "COUNTRY_NAME": "Country Name", + "REFERER_LINK": "Referer link", + "CUSTOM_ATTRIBUTE_LIST": "List", + "CUSTOM_ATTRIBUTE_TEXT": "Text", + "CUSTOM_ATTRIBUTE_NUMBER": "Number", + "CUSTOM_ATTRIBUTE_LINK": "Link", + "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox", + "CREATED_AT": "Created At", + "LAST_ACTIVITY": "Last Activity" + }, + "GROUPS": { + "STANDARD_FILTERS": "Standard Filters", + "ADDITIONAL_FILTERS": "Additional Filters", + "CUSTOM_ATTRIBUTES": "Custom Attributes" + }, + "CUSTOM_VIEWS": { + "ADD": { + "TITLE": "Do you want to save this filter?", + "LABEL": "Name this filter", + "PLACEHOLDER": "Enter a name for this filter", + "ERROR_MESSAGE": "Name is required", + "SAVE_BUTTON": "Save filter", + "CANCEL_BUTTON": "Cancel", + "API_FOLDERS": { + "SUCCESS_MESSAGE": "Folder created successfully", + "ERROR_MESSAGE": "Error while creating folder" + }, + "API_SEGMENTS": { + "SUCCESS_MESSAGE": "Segment created successfully", + "ERROR_MESSAGE": "Error while creating segment" + } + }, + "DELETE": { + "DELETE_BUTTON": "Delete filter", + "MODAL": { + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete the filter ", + "YES": "Yes, Delete", + "NO": "No, Keep it" + } + }, + "API_FOLDERS": { + "SUCCESS_MESSAGE": "Folder deleted successfully", + "ERROR_MESSAGE": "Error while deleting folder" + }, + "API_SEGMENTS": { + "SUCCESS_MESSAGE": "Segment deleted successfully", + "ERROR_MESSAGE": "Error while deleting segment" + } + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/agentBots.json b/app/javascript/dashboard/i18n/locale/hr/agentBots.json new file mode 100644 index 000000000..a6533785d --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/agentBots.json @@ -0,0 +1,73 @@ +{ + "AGENT_BOTS": { + "HEADER": "Botovi", + "LOADING_EDITOR": "Otvaranje Editora...", + "HEADER_BTN_TXT": "Dodaj konfiguraciju Bota", + "SIDEBAR_TXT": "

Agentski Botovi

Agentski botovi omogućuju automatizaciju razgovora

", + "CSML_BOT_EDITOR": { + "NAME": { + "LABEL": "Ime Bota", + "PLACEHOLDER": "Dodijeli ime Botu", + "ERROR": "Potrebno je unijeti ime Bota" + }, + "DESCRIPTION": { + "LABEL": "Opis Bota", + "PLACEHOLDER": "Što ovaj Bot radi?" + }, + "BOT_CONFIG": { + "ERROR": "Unesi iznad svoju CSML bot konfiguraciju", + "API_ERROR": "Unesena CSML konfiguracija nije validna, molimo ispravite i ponovno unesite." + }, + "SUBMIT": "Validacija i pohrana" + }, + "BOT_CONFIGURATION": { + "TITLE": "Izaberi agentskog bota", + "DESC": "Možeš dodijeliti agentskog bota iz liste ovom sandučiću. Bot može inicijalno voditi razgovor i predati ga agentu kad je potrebno.", + "SUBMIT": "Ažuriraj", + "DISCONNECT": "Isključi Bota", + "SUCCESS_MESSAGE": "Uspješno ažuriran agentski bot", + "DISCONNECTED_SUCCESS_MESSAGE": "Uspješno isključen agentski bot", + "ERROR_MESSAGE": "Nije moguće ažurirati agentskog bota, molimo pokušajte kasnije", + "DISCONNECTED_ERROR_MESSAGE": "Nije moguće ažurirati agentskog bota, molimo pokušajte kasnije", + "SELECT_PLACEHOLDER": "Izaberi Bota" + }, + "ADD": { + "TITLE": "Konfiguriraj novog bota", + "CANCEL_BUTTON_TEXT": "Odustani", + "API": { + "SUCCESS_MESSAGE": "Uspješno dodan Bot", + "ERROR_MESSAGE": "Nije moguće dodati bota, molimo pokušajte kasnije" + } + }, + "LIST": { + "404": "Nije pronađen nijedan Bot, možeš kreirati Bota koristeći gumb 'Konfiguriraj novog bota' ↗", + "LOADING": "Dohvat Botova...", + "TYPE": "Tip Bota" + }, + "DELETE": { + "BUTTON_TEXT": "Izbriši", + "TITLE": "Izbriši Bota", + "SUBMIT": "Izbriši", + "CANCEL_BUTTON_TEXT": "Odustani", + "DESCRIPTION": "Jeste li sigurni da želite izbrisati ovog bota? Akciju nije moguće poništiti", + "API": { + "SUCCESS_MESSAGE": "Bot uspješno izbrisan", + "ERROR_MESSAGE": "Nije moguće izbrisati bota, molimo pokušajte kasnije" + } + }, + "EDIT": { + "BUTTON_TEXT": "Uredi", + "LOADING": "Dohvat Botova...", + "TITLE": "Uredi Bota", + "CANCEL_BUTTON_TEXT": "Odustani", + "API": { + "SUCCESS_MESSAGE": "Bot uspješno izbrisan", + "ERROR_MESSAGE": "Nije moguće ažurirati bota, molimo pokušajte kasnije" + } + }, + "TYPES": { + "WEBHOOK": "Webhook Bot", + "CSML": "CSML Bot" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/agentMgmt.json b/app/javascript/dashboard/i18n/locale/hr/agentMgmt.json new file mode 100644 index 000000000..4f0cdab51 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/agentMgmt.json @@ -0,0 +1,118 @@ +{ + "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" + }, + "AGENT_AVAILABILITY": { + "LABEL": "Raspoloživost", + "PLACEHOLDER": "Izaberi status raspoloživosti", + "ERROR": "Potrebna je raspoloživost" + }, + "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 results found." + }, + "MULTI_SELECTOR": { + "PLACEHOLDER": "None", + "TITLE": { + "AGENT": "Select agent", + "TEAM": "Select team" + }, + "SEARCH": { + "NO_RESULTS": { + "AGENT": "No agents found", + "TEAM": "No teams found" + }, + "PLACEHOLDER": { + "AGENT": "Search agents", + "TEAM": "Search teams" + } + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json new file mode 100644 index 000000000..2a9ea7de3 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json @@ -0,0 +1,99 @@ +{ + "ATTRIBUTES_MGMT": { + "HEADER": "Custom Attributes", + "HEADER_BTN_TXT": "Add Custom Attribute", + "LOADING": "Fetching custom attributes", + "SIDEBAR_TXT": "

Custom Attributes

A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.

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

", + "ADD": { + "TITLE": "Add Custom Attribute", + "SUBMIT": "Create", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "NAME": { + "LABEL": "Display Name", + "PLACEHOLDER": "Enter custom attribute display name", + "ERROR": "Name is required" + }, + "DESC": { + "LABEL": "Description", + "PLACEHOLDER": "Enter custom attribute description", + "ERROR": "Description is required" + }, + "MODEL": { + "LABEL": "Applies to", + "PLACEHOLDER": "Please select one", + "ERROR": "Model is required" + }, + "TYPE": { + "LABEL": "Type", + "PLACEHOLDER": "Please select a type", + "ERROR": "Type is required", + "LIST": { + "LABEL": "List Values", + "PLACEHOLDER": "Please enter value and press enter key", + "ERROR": "Must have at least one value" + } + }, + "KEY": { + "LABEL": "Key", + "PLACEHOLDER": "Enter custom attribute key", + "ERROR": "Key is required", + "IN_VALID": "Invalid key" + } + }, + "API": { + "SUCCESS_MESSAGE": "Custom Attribute added successfully!", + "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later." + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Custom Attribute deleted successfully.", + "ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again." + }, + "CONFIRM": { + "TITLE": "Are you sure want to delete - %{attributeName}", + "PLACE_HOLDER": "Please type {attributeName} to confirm", + "MESSAGE": "Deleting will remove the custom attribute", + "YES": "Delete ", + "NO": "Cancel" + } + }, + "EDIT": { + "TITLE": "Edit Custom Attribute", + "UPDATE_BUTTON_TEXT": "Update", + "TYPE": { + "LIST": { + "LABEL": "List Values", + "PLACEHOLDER": "Please enter values and press enter key" + } + }, + "API": { + "SUCCESS_MESSAGE": "Custom Attribute updated successfully", + "ERROR_MESSAGE": "There was an error updating custom attribute, please try again" + } + }, + "TABS": { + "HEADER": "Custom Attributes", + "CONVERSATION": "Conversation", + "CONTACT": "Contact" + }, + "LIST": { + "TABLE_HEADER": [ + "Name", + "Description", + "Type", + "Key" + ], + "BUTTONS": { + "EDIT": "Edit", + "DELETE": "Delete" + }, + "EMPTY_RESULT": { + "404": "There are no custom attributes created", + "NOT_FOUND": "There are no custom attributes configured" + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/automation.json b/app/javascript/dashboard/i18n/locale/hr/automation.json new file mode 100644 index 000000000..469df1c24 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/automation.json @@ -0,0 +1,118 @@ +{ + "AUTOMATION": { + "HEADER": "Automations", + "HEADER_BTN_TXT": "Add Automation Rule", + "LOADING": "Fetching automation rules", + "SIDEBAR_TXT": "

Automation Rules

Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.

", + "ADD": { + "TITLE": "Add Automation Rule", + "SUBMIT": "Create", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "NAME": { + "LABEL": "Rule Name", + "PLACEHOLDER": "Enter rule name", + "ERROR": "Name is required" + }, + "DESC": { + "LABEL": "Description", + "PLACEHOLDER": "Enter rule description", + "ERROR": "Description is required" + }, + "EVENT": { + "LABEL": "Event", + "PLACEHOLDER": "Please select one", + "ERROR": "Event is required" + }, + "CONDITIONS": { + "LABEL": "Conditions" + }, + "ACTIONS": { + "LABEL": "Actions" + } + }, + "CONDITION_BUTTON_LABEL": "Add Condition", + "ACTION_BUTTON_LABEL": "Add Action", + "API": { + "SUCCESS_MESSAGE": "Automation rule added successfully", + "ERROR_MESSAGE": "Could not able to create a automation rule, Please try again later" + } + }, + "LIST": { + "TABLE_HEADER": [ + "Name", + "Description", + "Active", + "Created on" + ], + "404": "No automation rules found" + }, + "DELETE": { + "TITLE": "Delete Automation Rule", + "SUBMIT": "Delete", + "CANCEL_BUTTON_TEXT": "Cancel", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + }, + "API": { + "SUCCESS_MESSAGE": "Automation rule deleted successfully", + "ERROR_MESSAGE": "Could not able to delete a automation rule, Please try again later" + } + }, + "EDIT": { + "TITLE": "Edit Automation Rule", + "SUBMIT": "Update", + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Automation rule updated successfully", + "ERROR_MESSAGE": "Could not update automation rule, Please try again later" + } + }, + "CLONE": { + "TOOLTIP": "Clone", + "API": { + "SUCCESS_MESSAGE": "Automation cloned successfully", + "ERROR_MESSAGE": "Could not clone automation rule, Please try again later" + } + }, + "FORM": { + "EDIT": "Edit", + "CREATE": "Create", + "DELETE": "Delete", + "CANCEL": "Cancel", + "RESET_MESSAGE": "Changing event type will reset the conditions and events you have added below" + }, + "CONDITION": { + "DELETE_MESSAGE": "You need to have atleast one condition to save", + "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes", + "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes" + }, + "ACTION": { + "DELETE_MESSAGE": "You need to have atleast one action to save", + "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here", + "TEAM_DROPDOWN_PLACEHOLDER": "Select teams" + }, + "TOGGLE": { + "ACTIVATION_TITLE": "Activate Automation Rule", + "DEACTIVATION_TITLE": "Deactivate Automation Rule", + "ACTIVATION_DESCRIPTION": "This action will activate the automation rule '{automationName}'. Are you sure you want to proceed?", + "DEACTIVATION_DESCRIPTION": "This action will deactivate the automation rule '{automationName}'. Are you sure you want to proceed?", + "ACTIVATION_SUCCESFUL": "Automation Rule Activated Successfully", + "DEACTIVATION_SUCCESFUL": "Automation Rule Deactivated Successfully", + "ACTIVATION_ERROR": "Could not Activate Automation, Please try again later", + "DEACTIVATION_ERROR": "Could not Deactivate Automation, Please try again later", + "CONFIRMATION_LABEL": "Yes", + "CANCEL_LABEL": "No" + }, + "ATTACHMENT": { + "UPLOAD_ERROR": "Could not upload attachment, Please try again", + "LABEL_IDLE": "Upload Attachment", + "LABEL_UPLOADING": "Uploading...", + "LABEL_UPLOADED": "Successfully Uploaded", + "LABEL_UPLOAD_FAILED": "Upload Failed" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/bulkActions.json b/app/javascript/dashboard/i18n/locale/hr/bulkActions.json new file mode 100644 index 000000000..d5145f1bb --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/bulkActions.json @@ -0,0 +1,40 @@ +{ + "BULK_ACTION": { + "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected", + "AGENT_SELECT_LABEL": "Select Agent", + "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to", + "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?", + "GO_BACK_LABEL": "Go back", + "ASSIGN_LABEL": "Assign", + "YES": "Yes", + "ASSIGN_AGENT_TOOLTIP": "Assign Agent", + "ASSIGN_TEAM_TOOLTIP": "Assign team", + "ASSIGN_SUCCESFUL": "Conversations assigned successfully", + "ASSIGN_FAILED": "Failed to assign conversations, please try again", + "RESOLVE_SUCCESFUL": "Conversations resolved successfully", + "RESOLVE_FAILED": "Failed to resolve conversations, please try again", + "ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.", + "AGENT_LIST_LOADING": "Loading Agents", + "UPDATE": { + "CHANGE_STATUS": "Change status", + "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply", + "UPDATE_SUCCESFUL": "Conversation status updated successfully.", + "UPDATE_FAILED": "Failed to update conversations, please try again" + }, + "LABELS": { + "ASSIGN_LABELS": "Assign Labels", + "NO_LABELS_FOUND": "No labels found for", + "ASSIGN_SELECTED_LABELS": "Assign selected labels", + "ASSIGN_SUCCESFUL": "Labels assigned successfully", + "ASSIGN_FAILED": "Failed to assign labels, please try again" + }, + "TEAMS": { + "TEAM_SELECT_LABEL": "Select Team", + "NONE": "None", + "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", + "ASSIGN_SELECTED_TEAMS": "Assign selected team", + "ASSIGN_SUCCESFUL": "Teams assiged successfully", + "ASSIGN_FAILED": "Failed to assign team, please try again" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/campaign.json b/app/javascript/dashboard/i18n/locale/hr/campaign.json new file mode 100644 index 000000000..bbcc463ee --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/campaign.json @@ -0,0 +1,126 @@ +{ + "CAMPAIGN": { + "HEADER": "Campaigns", + "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.", + "HEADER_BTN_TXT": { + "ONE_OFF": "Create a one off campaign", + "ONGOING": "Create a ongoing campaign" + }, + "ADD": { + "TITLE": "Create a campaign", + "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.", + "CANCEL_BUTTON_TEXT": "Cancel", + "CREATE_BUTTON_TEXT": "Create", + "FORM": { + "TITLE": { + "LABEL": "Title", + "PLACEHOLDER": "Please enter the title of campaign", + "ERROR": "Title is required" + }, + "SCHEDULED_AT": { + "LABEL": "Scheduled time", + "PLACEHOLDER": "Please select the time", + "CONFIRM": "Confirm", + "ERROR": "Scheduled time is required" + }, + "AUDIENCE": { + "LABEL": "Audience", + "PLACEHOLDER": "Select the customer labels", + "ERROR": "Audience is required" + }, + "INBOX": { + "LABEL": "Select Inbox", + "PLACEHOLDER": "Select Inbox", + "ERROR": "Inbox is required" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Please enter the message of campaign", + "ERROR": "Message is required" + }, + "SENT_BY": { + "LABEL": "Sent by", + "PLACEHOLDER": "Please select the the content of campaign", + "ERROR": "Sender is required" + }, + "END_POINT": { + "LABEL": "URL", + "PLACEHOLDER": "Please enter the URL", + "ERROR": "Please enter a valid URL" + }, + "TIME_ON_PAGE": { + "LABEL": "Time on page(Seconds)", + "PLACEHOLDER": "Please enter the time", + "ERROR": "Time on page is required" + }, + "ENABLED": "Enable campaign", + "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours", + "SUBMIT": "Add Campaign" + }, + "API": { + "SUCCESS_MESSAGE": "Campaign created successfully", + "ERROR_MESSAGE": "There was an error. Please try again." + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete?", + "YES": "Yes, Delete ", + "NO": "No, Keep " + }, + "API": { + "SUCCESS_MESSAGE": "Campaign deleted successfully", + "ERROR_MESSAGE": "Could not delete the campaign. Please try again later." + } + }, + "EDIT": { + "TITLE": "Edit campaign", + "UPDATE_BUTTON_TEXT": "Update", + "API": { + "SUCCESS_MESSAGE": "Campaign updated successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + }, + "LIST": { + "LOADING_MESSAGE": "Loading campaigns...", + "404": "There are no campaigns created for this inbox.", + "TABLE_HEADER": { + "TITLE": "Title", + "MESSAGE": "Message", + "INBOX": "Inbox", + "STATUS": "Status", + "SENDER": "Sender", + "URL": "URL", + "SCHEDULED_AT": "Scheduled time", + "TIME_ON_PAGE": "Time(Seconds)", + "CREATED_AT": "Created at" + }, + "BUTTONS": { + "ADD": "Add", + "EDIT": "Edit", + "DELETE": "Delete" + }, + "STATUS": { + "ENABLED": "Enabled", + "DISABLED": "Disabled", + "COMPLETED": "Completed", + "ACTIVE": "Active" + }, + "SENDER": { + "BOT": "Bot" + } + }, + "ONE_OFF": { + "HEADER": "One off campaigns", + "404": "There are no one off campaigns created", + "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns" + }, + "ONGOING": { + "HEADER": "Ongoing campaigns", + "404": "There are no ongoing campaigns created", + "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/hr/cannedMgmt.json new file mode 100644 index 000000000..9c14f5a52 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/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 short code", + "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/hr/chatlist.json b/app/javascript/dashboard/i18n/locale/hr/chatlist.json new file mode 100644 index 000000000..b96cfb976 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/chatlist.json @@ -0,0 +1,71 @@ +{ + "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", + "MENTION_HEADING": "Mentions", + "UNATTENDED_HEADING": "Unattended", + "SEARCH": { + "INPUT": "Search for People, Chats, Saved Replies .." + }, + "FILTER_ALL": "All", + "ASSIGNEE_TYPE_TABS": { + "me": "Mine", + "unassigned": "Unassigned", + "all": "All" + }, + "CHAT_STATUS_FILTER_ITEMS": { + "open": { + "TEXT": "Open" + }, + "resolved": { + "TEXT": "Resolved" + }, + "pending": { + "TEXT": "Pending" + }, + "snoozed": { + "TEXT": "Snoozed" + }, + "all": { + "TEXT": "All" + } + }, + "ATTACHMENTS": { + "image": { + "CONTENT": "Picture message" + }, + "audio": { + "CONTENT": "Audio message" + }, + "video": { + "CONTENT": "Video message" + }, + "file": { + "CONTENT": "File Attachment" + }, + "location": { + "CONTENT": "Location" + }, + "fallback": { + "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", + "LINK_TO_STORY": "Go to instagram story", + "SENT": "Sent successfully", + "READ": "Read successfully", + "DELIVERED": "Delivered successfully", + "NO_MESSAGES": "No Messages", + "NO_CONTENT": "No content available", + "HIDE_QUOTED_TEXT": "Hide Quoted Text", + "SHOW_QUOTED_TEXT": "Show Quoted Text", + "MESSAGE_READ": "Read" + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/contact.json b/app/javascript/dashboard/i18n/locale/hr/contact.json new file mode 100644 index 000000000..84c99aee3 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/contact.json @@ -0,0 +1,360 @@ +{ + "CONTACT_PANEL": { + "NOT_AVAILABLE": "Not Available", + "EMAIL_ADDRESS": "Email Address", + "PHONE_NUMBER": "Phone number", + "IDENTIFIER": "Identifier", + "COPY_SUCCESSFUL": "Copied to clipboard successfully", + "COMPANY": "Company", + "LOCATION": "Location", + "BROWSER_LANGUAGE": "Browser Language", + "CONVERSATION_TITLE": "Conversation Details", + "VIEW_PROFILE": "View Profile", + "BROWSER": "Browser", + "OS": "Operating System", + "INITIATED_FROM": "Initiated from", + "INITIATED_AT": "Initiated at", + "IP_ADDRESS": "IP Address", + "CREATED_AT_LABEL": "Created", + "NEW_MESSAGE": "New message", + "CONVERSATIONS": { + "NO_RECORDS_FOUND": "There are no previous conversations associated to this contact.", + "TITLE": "Previous Conversations" + }, + "LABELS": { + "CONTACT": { + "TITLE": "Contact Labels", + "ERROR": "Couldn't update labels" + }, + "CONVERSATION": { + "TITLE": "Conversation Labels", + "ADD_BUTTON": "Add Labels" + }, + "LABEL_SELECT": { + "TITLE": "Add Labels", + "PLACEHOLDER": "Search labels", + "NO_RESULT": "No labels found" + } + }, + "MERGE_CONTACT": "Merge contact", + "CONTACT_ACTIONS": "Contact actions", + "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", + "SIDEBAR_SECTIONS": { + "CUSTOM_ATTRIBUTES": "Custom Attributes", + "CONTACT_LABELS": "Contact Labels", + "PREVIOUS_CONVERSATIONS": "Previous Conversations" + } + }, + "EDIT_CONTACT": { + "BUTTON_LABEL": "Edit Contact", + "TITLE": "Edit contact", + "DESC": "Edit contact details" + }, + "CREATE_CONTACT": { + "BUTTON_LABEL": "New Contact", + "TITLE": "Create new contact", + "DESC": "Add basic information details about the contact." + }, + "IMPORT_CONTACTS": { + "BUTTON_LABEL": "Import", + "TITLE": "Import Contacts", + "DESC": "Import contacts through a CSV file.", + "DOWNLOAD_LABEL": "Download a sample csv.", + "FORM": { + "LABEL": "CSV File", + "SUBMIT": "Import", + "CANCEL": "Cancel" + }, + "SUCCESS_MESSAGE": "Contacts saved successfully", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "DELETE_NOTE": { + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you want sure to delete this note?", + "YES": "Yes, Delete it", + "NO": "No, Keep it" + } + }, + "DELETE_CONTACT": { + "BUTTON_LABEL": "Delete Contact", + "TITLE": "Delete contact", + "DESC": "Delete contact details", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete", + "NO": "No, Keep" + }, + "API": { + "SUCCESS_MESSAGE": "Contact deleted successfully", + "ERROR_MESSAGE": "Could not delete contact. Please try again later." + } + }, + "CONTACT_FORM": { + "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", + "DUPLICATE": "This email address is in use for another contact.", + "ERROR": "Please enter a valid email address." + }, + "PHONE_NUMBER": { + "PLACEHOLDER": "Enter the phone number of the contact", + "LABEL": "Phone Number", + "HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]", + "ERROR": "Phone number should be either empty or of E.164 format", + "DUPLICATE": "This phone number is in use for another contact." + }, + "LOCATION": { + "PLACEHOLDER": "Enter the location of the contact", + "LABEL": "Location" + }, + "COMPANY_NAME": { + "PLACEHOLDER": "Enter the company name", + "LABEL": "Company Name" + }, + "COUNTRY": { + "PLACEHOLDER": "Unesi ime zemlje", + "LABEL": "Ime zemlje", + "SELECT_PLACEHOLDER": "Odaberi", + "REMOVE": "Izbaci", + "SELECT_COUNTRY": "Odaberi zemlju" + }, + "CITY": { + "PLACEHOLDER": "Unesi ime grada", + "LABEL": "Ime grada" + }, + "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" + } + } + }, + "DELETE_AVATAR": { + "API": { + "SUCCESS_MESSAGE": "Contact avatar deleted successfully", + "ERROR_MESSAGE": "Could not delete the contact avatar. Please try again later." + } + }, + "SUCCESS_MESSAGE": "Contact saved successfully", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "NEW_CONVERSATION": { + "BUTTON_LABEL": "Start conversation", + "TITLE": "New conversation", + "DESC": "Start a new conversation by sending a new message.", + "NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.", + "FORM": { + "TO": { + "LABEL": "To" + }, + "INBOX": { + "LABEL": "Inbox", + "ERROR": "Select an inbox" + }, + "SUBJECT": { + "LABEL": "Subject", + "PLACEHOLDER": "Subject", + "ERROR": "Subject can't be empty" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Write your message here", + "ERROR": "Message can't be empty" + }, + "SUBMIT": "Send message", + "CANCEL": "Cancel", + "SUCCESS_MESSAGE": "Message sent!", + "GO_TO_CONVERSATION": "View", + "ERROR_MESSAGE": "Couldn't send! try again" + } + }, + "CONTACTS_PAGE": { + "HEADER": "Contacts", + "FIELDS": "Contact fields", + "SEARCH_BUTTON": "Search", + "SEARCH_INPUT_PLACEHOLDER": "Search for contacts", + "FILTER_CONTACTS": "Filter", + "FILTER_CONTACTS_SAVE": "Save filter", + "FILTER_CONTACTS_DELETE": "Delete filter", + "LIST": { + "LOADING_MESSAGE": "Loading contacts...", + "404": "No contacts matches your search 🔍", + "NO_CONTACTS": "There are no available contacts", + "TABLE_HEADER": { + "NAME": "Name", + "PHONE_NUMBER": "Phone Number", + "CONVERSATIONS": "Conversations", + "LAST_ACTIVITY": "Last Activity", + "CREATED_AT": "Created At", + "COUNTRY": "Country", + "CITY": "City", + "SOCIAL_PROFILES": "Social Profiles", + "COMPANY": "Company", + "EMAIL_ADDRESS": "Email Address" + }, + "VIEW_DETAILS": "View details" + } + }, + "CONTACT_PROFILE": { + "BACK_BUTTON": "Contacts", + "LOADING": "Loading contact profile..." + }, + "REMINDER": { + "ADD_BUTTON": { + "BUTTON": "Add", + "TITLE": "Shift + Enter to create a task" + }, + "FOOTER": { + "DUE_DATE": "Due date", + "LABEL_TITLE": "Set type" + } + }, + "NOTES": { + "FETCHING_NOTES": "Fetching notes...", + "NOT_AVAILABLE": "There are no notes created for this contact", + "HEADER": { + "TITLE": "Notes" + }, + "LIST": { + "LABEL": "added a note" + }, + "ADD": { + "BUTTON": "Add", + "PLACEHOLDER": "Add a note", + "TITLE": "Shift + Enter to create a note" + }, + "CONTENT_HEADER": { + "DELETE": "Delete note" + } + }, + "EVENTS": { + "HEADER": { + "TITLE": "Activities" + }, + "BUTTON": { + "PILL_BUTTON_NOTES": "notes", + "PILL_BUTTON_EVENTS": "events", + "PILL_BUTTON_CONVO": "conversations" + } + }, + "CUSTOM_ATTRIBUTES": { + "ADD_BUTTON_TEXT": "Add attributes", + "BUTTON": "Add custom attribute", + "NOT_AVAILABLE": "There are no custom attributes available for this contact.", + "COPY_SUCCESSFUL": "Copied to clipboard successfully", + "ACTIONS": { + "COPY": "Copy attribute", + "DELETE": "Delete attribute", + "EDIT": "Edit attribute" + }, + "ADD": { + "TITLE": "Create custom attribute", + "DESC": "Add custom information to this contact." + }, + "FORM": { + "CREATE": "Add attribute", + "CANCEL": "Cancel", + "NAME": { + "LABEL": "Custom attribute name", + "PLACEHOLDER": "Eg: shopify id", + "ERROR": "Invalid custom attribute name" + }, + "VALUE": { + "LABEL": "Attribute value", + "PLACEHOLDER": "Eg: 11901 " + }, + "ADD": { + "TITLE": "Create new attribute ", + "SUCCESS": "Attribute added successfully", + "ERROR": "Unable to add attribute. Please try again later" + }, + "UPDATE": { + "SUCCESS": "Attribute updated successfully", + "ERROR": "Unable to update attribute. Please try again later" + }, + "DELETE": { + "SUCCESS": "Attribute deleted successfully", + "ERROR": "Unable to delete attribute. Please try again later" + }, + "ATTRIBUTE_SELECT": { + "TITLE": "Add attributes", + "PLACEHOLDER": "Search attributes", + "NO_RESULT": "No attributes found" + }, + "ATTRIBUTE_TYPE": { + "LIST": { + "PLACEHOLDER": "Select value", + "SEARCH_INPUT_PLACEHOLDER": "Search value", + "NO_RESULT": "No result found" + } + } + }, + "VALIDATIONS": { + "REQUIRED": "Valid value is required", + "INVALID_URL": "Invalid URL" + } + }, + "MERGE_CONTACTS": { + "TITLE": "Merge contacts", + "DESCRIPTION": "Merge contacts to combine two profiles into one, including all attributes and conversations. In case of conflict, the Primary contact’ s attributes will take precedence.", + "PRIMARY": { + "TITLE": "Primary contact", + "HELP_LABEL": "To be kept" + }, + "CHILD": { + "TITLE": "Contact to merge", + "PLACEHOLDER": "Search for a contact", + "HELP_LABEL": "To be deleted" + }, + "SUMMARY": { + "TITLE": "Summary", + "DELETE_WARNING": "Contact of %{childContactName} will be deleted.", + "ATTRIBUTE_WARNING": "Contact details of %{childContactName} will be copied to %{primaryContactName}." + }, + "SEARCH": { + "ERROR": "ERROR_MESSAGE" + }, + "FORM": { + "SUBMIT": " Merge contacts", + "CANCEL": "Cancel", + "CHILD_CONTACT": { + "ERROR": "Select a child contact to merge" + }, + "SUCCESS_MESSAGE": "Contact merged successfully", + "ERROR_MESSAGE": "Could not merge contacts, try again!" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/contactFilters.json b/app/javascript/dashboard/i18n/locale/hr/contactFilters.json new file mode 100644 index 000000000..3f84a8476 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/contactFilters.json @@ -0,0 +1,50 @@ +{ + "CONTACTS_FILTER": { + "TITLE": "Filter Contacts", + "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.", + "ADD_NEW_FILTER": "Add Filter", + "CLEAR_ALL_FILTERS": "Clear All Filters", + "FILTER_DELETE_ERROR": "You should have atleast one filter to save", + "SUBMIT_BUTTON_LABEL": "Submit", + "CANCEL_BUTTON_LABEL": "Cancel", + "CLEAR_BUTTON_LABEL": "Clear Filters", + "EMPTY_VALUE_ERROR": "Value is required", + "TOOLTIP_LABEL": "Filter contacts", + "QUERY_DROPDOWN_LABELS": { + "AND": "AND", + "OR": "OR" + }, + "OPERATOR_LABELS": { + "equal_to": "Equal to", + "not_equal_to": "Not equal to", + "contains": "Contains", + "does_not_contain": "Does not contain", + "is_present": "Is present", + "is_not_present": "Is not present", + "is_greater_than": "Is greater than", + "is_lesser_than": "Is lesser than", + "days_before": "Is x days before" + }, + "ATTRIBUTES": { + "NAME": "Name", + "EMAIL": "Email", + "PHONE_NUMBER": "Phone number", + "IDENTIFIER": "Identifier", + "CITY": "City", + "COUNTRY": "Country", + "CUSTOM_ATTRIBUTE_LIST": "List", + "CUSTOM_ATTRIBUTE_TEXT": "Text", + "CUSTOM_ATTRIBUTE_NUMBER": "Number", + "CUSTOM_ATTRIBUTE_LINK": "Link", + "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox", + "CREATED_AT": "Created At", + "LAST_ACTIVITY": "Last Activity", + "REFERER_LINK": "Referrer link" + }, + "GROUPS": { + "STANDARD_FILTERS": "Standard Filters", + "ADDITIONAL_FILTERS": "Additional Filters", + "CUSTOM_ATTRIBUTES": "Custom Attributes" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/conversation.json b/app/javascript/dashboard/i18n/locale/hr/conversation.json new file mode 100644 index 000000000..597799c15 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/conversation.json @@ -0,0 +1,290 @@ +{ + "CONVERSATION": { + "SELECT_A_CONVERSATION": "Please select a conversation from left pane", + "CSAT_REPLY_MESSAGE": "Please rate the conversation", + "404": "Sorry, we cannot find the conversation. Please try again", + "SWITCH_VIEW_LAYOUT": "Switch the layout", + "DASHBOARD_APP_TAB_MESSAGES": "Messages", + "UNVERIFIED_SESSION": "The identity of this user is not verified", + "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", + "RESULT_TITLE": "Search Results", + "LOADING_MESSAGE": "Crunching data...", + "PLACEHOLDER": "Type any text to search messages", + "NO_MATCHING_RESULTS": "No results found." + }, + "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", + "NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?", + "ASSIGN_TO_ME": "Assign to me", + "TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to", + "TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction", + "SELECT_A_TWEET_TO_REPLY": "Please select a tweet to reply to.", + "REPLYING_TO": "You are replying to:", + "REMOVE_SELECTION": "Remove Selection", + "DOWNLOAD": "Download", + "UNKNOWN_FILE_TYPE": "Unknown File", + "SAVE_CONTACT": "Save", + "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "SUCCESS_DELETE_MESSAGE": "Message deleted successfully", + "FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again", + "NO_RESPONSE": "No response", + "RATING_TITLE": "Rating", + "FEEDBACK_TITLE": "Feedback", + "CARD": { + "SHOW_LABELS": "Show labels", + "HIDE_LABELS": "Hide labels" + }, + "HEADER": { + "RESOLVE_ACTION": "Resolve", + "REOPEN_ACTION": "Reopen", + "OPEN_ACTION": "Open", + "OPEN": "More", + "CLOSE": "Close", + "DETAILS": "details", + "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow", + "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week", + "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply" + }, + "RESOLVE_DROPDOWN": { + "MARK_PENDING": "Mark as pending", + "SNOOZE": { + "TITLE": "Snooze until", + "NEXT_REPLY": "Next reply", + "TOMORROW": "Tomorrow", + "NEXT_WEEK": "Next week" + } + }, + "CARD_CONTEXT_MENU": { + "PENDING": "Mark as pending", + "RESOLVED": "Mark as resolved", + "MARK_AS_UNREAD": "Mark as unread", + "REOPEN": "Reopen conversation", + "SNOOZE": { + "TITLE": "Snooze", + "NEXT_REPLY": "Until next reply", + "TOMORROW": "Until tomorrow", + "NEXT_WEEK": "Until next week" + }, + "ASSIGN_AGENT": "Assign agent", + "ASSIGN_LABEL": "Assign label", + "AGENTS_LOADING": "Loading agents...", + "ASSIGN_TEAM": "Assign team", + "API": { + "AGENT_ASSIGNMENT": { + "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"", + "FAILED": "Couldn't assign agent. Please try again." + }, + "LABEL_ASSIGNMENT": { + "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}", + "FAILED": "Couldn't assign label. Please try again." + }, + "TEAM_ASSIGNMENT": { + "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}", + "FAILED": "Couldn't assign team. Please try again." + } + } + }, + "FOOTER": { + "MESSAGE_SIGN_TOOLTIP": "Message signature", + "ENABLE_SIGN_TOOLTIP": "Enable signature", + "DISABLE_SIGN_TOOLTIP": "Disable signature", + "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", + "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.", + "CLICK_HERE": "Click here to update" + }, + "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", + "TIP_AUDIORECORDER_ICON": "Record audio", + "TIP_AUDIORECORDER_PERMISSION": "Allow access to audio", + "TIP_AUDIORECORDER_ERROR": "Could not open the audio", + "DRAG_DROP": "Drag and drop here to attach", + "START_AUDIO_RECORDING": "Start audio recording", + "STOP_AUDIO_RECORDING": "Stop audio recording", + "": "", + "EMAIL_HEAD": { + "ADD_BCC": "Add bcc", + "CC": { + "LABEL": "CC", + "PLACEHOLDER": "Emails separated by commas", + "ERROR": "Please enter valid email addresses" + }, + "BCC": { + "LABEL": "BCC", + "PLACEHOLDER": "Emails separated by commas", + "ERROR": "Please enter valid email addresses" + } + }, + "UNDEFINED_VARIABLES": { + "TITLE": "Undefined variables", + "MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?", + "CONFIRM": { + "YES": "Send", + "CANCEL": "Cancel" + } + } + }, + "VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team", + "CHANGE_STATUS": "Conversation status changed", + "CHANGE_STATUS_FAILED": "Conversation status change failed", + "CHANGE_AGENT": "Conversation Assignee changed", + "CHANGE_AGENT_FAILED": "Assignee change failed", + "ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully", + "ASSIGN_LABEL_FAILED": "Label assignment failed", + "CHANGE_TEAM": "Conversation team changed", + "FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit", + "MESSAGE_ERROR": "Unable to send this message, please try again later", + "SENT_BY": "Sent by:", + "BOT": "Bot", + "SEND_FAILED": "Couldn't send message! Try again", + "TRY_AGAIN": "retry", + "ASSIGNMENT": { + "SELECT_AGENT": "Select Agent", + "REMOVE": "Remove", + "ASSIGN": "Assign" + }, + "CONTEXT_MENU": { + "COPY": "Copy", + "DELETE": "Delete", + "CREATE_A_CANNED_RESPONSE": "Add to canned responses", + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Delete", + "CANCEL": "Cancel" + } + } + }, + "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" + } + } + }, + "ONBOARDING": { + "TITLE": "Hey 👋, Welcome to %{installationName}!", + "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.", + "READ_LATEST_UPDATES": "Read our latest updates", + "ALL_CONVERSATION": { + "TITLE": "All your conversations in one place", + "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status." + }, + "TEAM_MEMBERS": { + "TITLE": "Invite your team members", + "DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.", + "NEW_LINK": "Click here to invite a team member" + }, + "INBOXES": { + "TITLE": "Connect Inboxes", + "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.", + "NEW_LINK": "Click here to create an inbox" + }, + "LABELS": { + "TITLE": "Organize conversations with labels", + "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.", + "NEW_LINK": "Click here to create tags" + } + }, + "CONVERSATION_SIDEBAR": { + "ASSIGNEE_LABEL": "Assigned Agent", + "SELF_ASSIGN": "Assign to me", + "TEAM_LABEL": "Assigned Team", + "SELECT": { + "PLACEHOLDER": "None" + }, + "ACCORDION": { + "CONTACT_DETAILS": "Contact Details", + "CONVERSATION_ACTIONS": "Conversation Actions", + "CONVERSATION_LABELS": "Conversation Labels", + "CONVERSATION_INFO": "Conversation Information", + "CONTACT_ATTRIBUTES": "Contact Attributes", + "PREVIOUS_CONVERSATION": "Previous Conversations", + "MACROS": "Macros" + } + }, + "CONVERSATION_CUSTOM_ATTRIBUTES": { + "ADD_BUTTON_TEXT": "Create attribute", + "UPDATE": { + "SUCCESS": "Attribute updated successfully", + "ERROR": "Unable to update attribute. Please try again later" + }, + "ADD": { + "TITLE": "Add", + "SUCCESS": "Attribute added successfully", + "ERROR": "Unable to add attribute. Please try again later" + }, + "DELETE": { + "SUCCESS": "Attribute deleted successfully", + "ERROR": "Unable to delete attribute. Please try again later" + }, + "ATTRIBUTE_SELECT": { + "TITLE": "Add attributes", + "PLACEHOLDER": "Search attributes", + "NO_RESULT": "No attributes found" + } + }, + "EMAIL_HEADER": { + "FROM": "From", + "TO": "To", + "BCC": "Bcc", + "CC": "Cc", + "SUBJECT": "Subject" + }, + "CONVERSATION_PARTICIPANTS": { + "SIDEBAR_MENU_TITLE": "Participating", + "SIDEBAR_TITLE": "Conversation participants", + "NO_RECORDS_FOUND": "No results found", + "ADD_PARTICIPANTS": "Select participants", + "REMANING_PARTICIPANTS_TEXT": "+%{count} others", + "REMANING_PARTICIPANT_TEXT": "+%{count} other", + "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.", + "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.", + "NO_PARTICIPANTS_TEXT": "No one is participating!.", + "WATCH_CONVERSATION": "Join conversation", + "YOU_ARE_WATCHING": "You are participating", + "API": { + "ERROR_MESSAGE": "Could not update, try again!", + "SUCCESS_MESSAGE": "Participants updated!" + } + }, + "TRANSLATE_MODAL": { + "TITLE": "View translated content", + "DESC": "You can view the translated content in each langauge.", + "ORIGINAL_CONTENT": "Original Content", + "TRANSLATED_CONTENT": "Translated Content", + "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content" + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/csatMgmt.json b/app/javascript/dashboard/i18n/locale/hr/csatMgmt.json new file mode 100644 index 000000000..d7d2efc2a --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/csatMgmt.json @@ -0,0 +1,6 @@ +{ + "CSAT": { + "TITLE": "Rate your conversation", + "PLACEHOLDER": "Tell us more..." + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/emoji.json b/app/javascript/dashboard/i18n/locale/hr/emoji.json new file mode 100644 index 000000000..fd81268fb --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/emoji.json @@ -0,0 +1,6 @@ +{ + "EMOJI": { + "PLACEHOLDER": "Search emojis", + "NOT_FOUND": "No emoji match your search" + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/generalSettings.json b/app/javascript/dashboard/i18n/locale/hr/generalSettings.json new file mode 100644 index 000000000..367b35b1c --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/generalSettings.json @@ -0,0 +1,145 @@ +{ + "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": "" + }, + "ACCOUNT_ID": { + "TITLE": "Account ID", + "NOTE": "This ID is required if you are building an API based integration" + }, + "NAME": { + "LABEL": "Account name", + "PLACEHOLDER": "Your account name", + "ERROR": "Please enter a valid account name" + }, + "LANGUAGE": { + "LABEL": "Site language", + "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 and maximum 999 days)" + }, + "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.", + "LEARN_MORE": "Learn more" + }, + "FORMS": { + "MULTISELECT": { + "ENTER_TO_SELECT": "Press enter to select", + "ENTER_TO_REMOVE": "Press enter to remove", + "SELECT_ONE": "Select one", + "SELECT": "Select" + } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "DELETE_TITLE": "deleted", + "UNREAD_NOTIFICATION": { + "TITLE": "Unread Notifications", + "ALL_NOTIFICATIONS": "View all notifications", + "LOADING_UNREAD_MESSAGE": "Loading unread notifications...", + "EMPTY_MESSAGE": "You have no unread notifications" + }, + "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", + "participating_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } + }, + "NETWORK": { + "NOTIFICATION": { + "TEXT": "Disconnected from Chatwoot" + }, + "BUTTON": { + "REFRESH": "Refresh" + } + }, + "COMMAND_BAR": { + "SEARCH_PLACEHOLDER": "Search or jump to", + "SECTIONS": { + "GENERAL": "General", + "REPORTS": "Reports", + "CONVERSATION": "Conversation", + "CHANGE_ASSIGNEE": "Change Assignee", + "CHANGE_TEAM": "Change Team", + "ADD_LABEL": "Add label to the conversation", + "REMOVE_LABEL": "Remove label from the conversation", + "SETTINGS": "Settings" + }, + "COMMANDS": { + "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard", + "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard", + "GO_TO_REPORTS_OVERVIEW": "Go to Reports Overview", + "GO_TO_CONVERSATION_REPORTS": "Go to Conversation Reports", + "GO_TO_AGENT_REPORTS": "Go to Agent Reports", + "GO_TO_LABEL_REPORTS": "Go to Label Reports", + "GO_TO_INBOX_REPORTS": "Go to Inbox Reports", + "GO_TO_TEAM_REPORTS": "Go to Team Reports", + "GO_TO_SETTINGS_AGENTS": "Go to Agent Settings", + "GO_TO_SETTINGS_TEAMS": "Go to Team Settings", + "GO_TO_SETTINGS_INBOXES": "Go to Inbox Settings", + "GO_TO_SETTINGS_LABELS": "Go to Label Settings", + "GO_TO_SETTINGS_CANNED_RESPONSES": "Go to Canned Response Settings", + "GO_TO_SETTINGS_APPLICATIONS": "Go to Application Settings", + "GO_TO_SETTINGS_ACCOUNT": "Go to Account Settings", + "GO_TO_SETTINGS_PROFILE": "Go to Profile Settings", + "GO_TO_NOTIFICATIONS": "Go to Notifications", + "ADD_LABELS_TO_CONVERSATION": "Add label to the conversation", + "ASSIGN_AN_AGENT": "Assign an agent", + "ASSIGN_A_TEAM": "Assign a team", + "MUTE_CONVERSATION": "Mute conversation", + "UNMUTE_CONVERSATION": "Unmute conversation", + "REMOVE_LABEL_FROM_CONVERSATION": "Remove label from the conversation", + "REOPEN_CONVERSATION": "Reopen conversation", + "RESOLVE_CONVERSATION": "Resolve conversation", + "SEND_TRANSCRIPT": "Send an email transcript", + "SNOOZE_CONVERSATION": "Snooze Conversation", + "UNTIL_NEXT_REPLY": "Until next reply", + "UNTIL_NEXT_WEEK": "Until next week", + "UNTIL_TOMORROW": "Until tomorrow" + } + }, + "DASHBOARD_APPS": { + "LOADING_MESSAGE": "Loading Dashboard App..." + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/helpCenter.json b/app/javascript/dashboard/i18n/locale/hr/helpCenter.json new file mode 100644 index 000000000..07329ff81 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/helpCenter.json @@ -0,0 +1,422 @@ +{ + "HELP_CENTER": { + "HEADER": { + "FILTER": "Filter by", + "SORT": "Sort by", + "SETTINGS_BUTTON": "Settings", + "NEW_BUTTON": "New Article", + "DROPDOWN_OPTIONS": { + "PUBLISHED": "Published", + "DRAFT": "Draft", + "ARCHIVED": "Archived" + }, + "TITLES": { + "ALL_ARTICLES": "All Articles", + "MINE": "My Articles", + "DRAFT": "Draft Articles", + "ARCHIVED": "Archived Articles" + } + }, + "EDIT_HEADER": { + "ALL_ARTICLES": "All Articles", + "PUBLISH_BUTTON": "Publish", + "MOVE_TO_ARCHIVE_BUTTON": "Move to archived", + "PREVIEW": "Preview", + "ADD_TRANSLATION": "Add translation", + "OPEN_SIDEBAR": "Open sidebar", + "CLOSE_SIDEBAR": "Close sidebar", + "SAVING": "Saving...", + "SAVED": "Saved" + }, + "ARTICLE_EDITOR": { + "IMAGE_UPLOAD": { + "TITLE": "Upload image", + "UPLOADING": "Uploading...", + "SUCCESS": "Image uploaded successfully", + "ERROR": "Error while uploading image", + "ERROR_FILE_SIZE": "Image size should be less than {size}MB", + "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png", + "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000" + } + }, + "ARTICLE_SETTINGS": { + "TITLE": "Article Settings", + "FORM": { + "CATEGORY": { + "LABEL": "Kategorija", + "TITLE": "Select category", + "PLACEHOLDER": "Select category", + "NO_RESULT": "No category found", + "SEARCH_PLACEHOLDER": "Search category" + }, + "AUTHOR": { + "LABEL": "Author", + "TITLE": "Select author", + "PLACEHOLDER": "Select author", + "NO_RESULT": "No authors found", + "SEARCH_PLACEHOLDER": "Search author" + }, + "META_TITLE": { + "LABEL": "Meta title", + "PLACEHOLDER": "Add a meta title" + }, + "META_DESCRIPTION": { + "LABEL": "Meta description", + "PLACEHOLDER": "Add your meta description for better SEO results..." + }, + "META_TAGS": { + "LABEL": "Meta tags", + "PLACEHOLDER": "Add meta tags separated by comma..." + } + }, + "BUTTONS": { + "ARCHIVE": "Archive article", + "DELETE": "Delete article" + } + }, + "PORTAL": { + "HEADER": "Portals", + "DEFAULT": "Default", + "NEW_BUTTON": "New Portal", + "ACTIVE_BADGE": "active", + "CHOOSE_LOCALE_LABEL": "Choose a locale", + "LOADING_MESSAGE": "Loading portals...", + "ARTICLES_LABEL": "articles", + "NO_PORTALS_MESSAGE": "There are no available portals", + "ADD_NEW_LOCALE": "Add a new locale", + "POPOVER": { + "TITLE": "Portals", + "PORTAL_SETTINGS": "Portal settings", + "SUBTITLE": "You have multiple portals and can have different locales for each portal.", + "CANCEL_BUTTON_LABEL": "Cancel", + "CHOOSE_LOCALE_BUTTON": "Choose Locale" + }, + "PORTAL_SETTINGS": { + "LIST_ITEM": { + "HEADER": { + "COUNT_LABEL": "articles", + "ADD": "Add locale", + "VISIT": "Visit site", + "SETTINGS": "Settings", + "DELETE": "Delete" + }, + "PORTAL_CONFIG": { + "TITLE": "Portal Configurations", + "ITEMS": { + "NAME": "Name", + "DOMAIN": "Custom domain", + "SLUG": "Slug", + "TITLE": "Portal title", + "THEME": "Theme color", + "SUB_TEXT": "Portal sub text" + } + }, + "AVAILABLE_LOCALES": { + "TITLE": "Available locales", + "TABLE": { + "NAME": "Locale name", + "CODE": "Locale code", + "ARTICLE_COUNT": "No. of articles", + "CATEGORIES": "No. of categories", + "SWAP": "Swap", + "DELETE": "Delete", + "DEFAULT_LOCALE": "Default" + } + } + }, + "DELETE_PORTAL": { + "TITLE": "Delete portal", + "MESSAGE": "Are you sure you want to delete this portal", + "YES": "Yes, delete portal", + "NO": "No, keep portal", + "API": { + "DELETE_SUCCESS": "Portal deleted successfully", + "DELETE_ERROR": "Error while deleting portal" + } + } + }, + "EDIT": { + "HEADER_TEXT": "Edit portal", + "TABS": { + "BASIC_SETTINGS": { + "TITLE": "Basic information" + }, + "CUSTOMIZATION_SETTINGS": { + "TITLE": "Portal customization" + }, + "CATEGORY_SETTINGS": { + "TITLE": "Categories" + }, + "LOCALE_SETTINGS": { + "TITLE": "Locales" + } + }, + "CATEGORIES": { + "TITLE": "Categories in", + "NEW_CATEGORY": "New category", + "TABLE": { + "NAME": "Name", + "DESCRIPTION": "Description", + "LOCALE": "Locale", + "ARTICLE_COUNT": "No. of articles", + "ACTION_BUTTON": { + "EDIT": "Edit category", + "DELETE": "Delete category" + }, + "EMPTY_TEXT": "No categories found" + } + }, + "EDIT_BASIC_INFO": { + "BUTTON_TEXT": "Update basic settings" + } + }, + "ADD": { + "CREATE_FLOW": [ + { + "title": "Help center information", + "route": "new_portal_information", + "body": "Basic information about portal", + "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings" + }, + { + "title": "Help center customization", + "route": "portal_customization", + "body": "Customize portal", + "UPDATE_PORTAL_BUTTON": "Update portal settings" + }, + { + "title": "Voila! 🎉", + "route": "portal_finish", + "body": "You're all set!", + "FINISH": "Finish" + } + ], + "CREATE_FLOW_PAGE": { + "BACK_BUTTON": "Back", + "BASIC_SETTINGS_PAGE": { + "HEADER": "Create Portal", + "TITLE": "Help center information", + "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings" + }, + "CUSTOMIZATION_PAGE": { + "HEADER": "Portal customisation", + "TITLE": "Help center customization", + "UPDATE_PORTAL_BUTTON": "Update portal settings" + }, + "FINISH_PAGE": { + "TITLE": "Voila!🎉 You're all set up!", + "MESSAGE": "You can now see this created portal on your all portals page.", + "FINISH": "Go to all portals page" + } + }, + "LOGO": { + "LABEL": "Logo", + "UPLOAD_BUTTON": "Upload logo", + "HELP_TEXT": "This logo will be displayed on the portal header." + }, + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Portal name", + "HELP_TEXT": "The name will be used in the public facing portal internally.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Portal slug for urls", + "ERROR": "Slug is required" + }, + "DOMAIN": { + "LABEL": "Custom Domain", + "PLACEHOLDER": "Portal custom domain", + "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com", + "ERROR": "Enter a valid domain URL" + }, + "HOME_PAGE_LINK": { + "LABEL": "Home Page Link", + "PLACEHOLDER": "Portal home page link", + "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com", + "ERROR": "Enter a valid home page URL" + }, + "THEME_COLOR": { + "LABEL": "Portal theme color", + "HELP_TEXT": "This color will show as the theme color for the portal." + }, + "PAGE_TITLE": { + "LABEL": "Page Title", + "PLACEHOLDER": "Portal page title", + "HELP_TEXT": "The page title will be used in the public facing portal.", + "ERROR": "Page title is required" + }, + "HEADER_TEXT": { + "LABEL": "Header Text", + "PLACEHOLDER": "Portal header text", + "HELP_TEXT": "The Portal header text will be used in the public facing portal.", + "ERROR": "Portal header text is required" + }, + "API": { + "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.", + "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.", + "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.", + "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again." + } + }, + "ADD_LOCALE": { + "TITLE": "Add a new locale", + "SUB_TITLE": "This adds a new locale to your available translation list.", + "PORTAL": "Portal", + "LOCALE": { + "LABEL": "Locale", + "PLACEHOLDER": "Choose a locale", + "ERROR": "Locale is required" + }, + "BUTTONS": { + "CREATE": "Create locale", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Locale added successfully", + "ERROR_MESSAGE": "Unable to add locale. Try again." + } + }, + "CHANGE_DEFAULT_LOCALE": { + "API": { + "SUCCESS_MESSAGE": "Default locale updated successfully", + "ERROR_MESSAGE": "Unable to update default locale. Try again." + } + }, + "DELETE_LOCALE": { + "API": { + "SUCCESS_MESSAGE": "Locale removed from portal successfully", + "ERROR_MESSAGE": "Unable to remove locale from portal. Try again." + } + } + }, + "TABLE": { + "LOADING_MESSAGE": "Loading articles...", + "404": "No articles matches your search 🔍", + "NO_ARTICLES": "There are no available articles", + "HEADERS": { + "TITLE": "Title", + "CATEGORY": "Kategorija", + "READ_COUNT": "Read count", + "STATUS": "Status", + "LAST_EDITED": "Last edited" + }, + "COLUMNS": { + "BY": "by" + } + }, + "EDIT_ARTICLE": { + "LOADING": "Loading article...", + "TITLE_PLACEHOLDER": "Article title goes here", + "CONTENT_PLACEHOLDER": "Write your article here", + "API": { + "ERROR": "Error while saving article" + } + }, + "PUBLISH_ARTICLE": { + "API": { + "ERROR": "Error while publishing article", + "SUCCESS": "Article published successfully" + } + }, + "ARCHIVE_ARTICLE": { + "API": { + "ERROR": "Error while archiving article", + "SUCCESS": "Article archived successfully" + } + }, + "DELETE_ARTICLE": { + "MODAL": { + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete the article?", + "YES": "Yes, Delete", + "NO": "No, Keep it" + } + }, + "API": { + "SUCCESS_MESSAGE": "Article deleted successfully", + "ERROR_MESSAGE": "Error while deleting article" + } + }, + "CREATE_ARTICLE": { + "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings" + }, + "SIDEBAR": { + "SEARCH": { + "PLACEHOLDER": "Search for articles" + } + }, + "CATEGORY": { + "ADD": { + "TITLE": "Create a category", + "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.", + "PORTAL": "Portal", + "LOCALE": "Locale", + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Category name", + "HELP_TEXT": "The category name will be used in the public facing portal to categorize articles.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Category slug for urls", + "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug", + "ERROR": "Slug is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Give a short description about the category.", + "ERROR": "Description is required" + }, + "BUTTONS": { + "CREATE": "Create category", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Category created successfully", + "ERROR_MESSAGE": "Unable to create category" + } + }, + "EDIT": { + "TITLE": "Edit a category", + "SUB_TITLE": "Editing a category will update the category in the public facing portal.", + "PORTAL": "Portal", + "LOCALE": "Locale", + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Category name", + "HELP_TEXT": "The category name will be used in the public facing portal to categorize articles.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Category slug for urls", + "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug", + "ERROR": "Slug is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Give a short description about the category.", + "ERROR": "Description is required" + }, + "BUTTONS": { + "CREATE": "Update category", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Category updated successfully", + "ERROR_MESSAGE": "Unable to update category" + } + }, + "DELETE": { + "API": { + "SUCCESS_MESSAGE": "Category deleted successfully", + "ERROR_MESSAGE": "Unable to delete category" + } + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json new file mode 100644 index 000000000..8b28d2a3f --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json @@ -0,0 +1,696 @@ +{ + "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": { + "CHANNEL_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)", + "ERROR": "Please enter a valid inbox name" + }, + "WEBSITE_NAME": { + "LABEL": "Website Name", + "PLACEHOLDER": "Enter your website name (eg: Acme Inc)" + }, + "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' ", + "ERROR_MESSAGE": "There was an error connecting to Twitter, please try again", + "TWEETS": { + "ENABLE": "Create conversations from mentioned Tweets" + } + }, + "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_WEBHOOK_URL": { + "LABEL": "Webhook URL", + "PLACEHOLDER": "Enter your Webhook URL", + "ERROR": "Please enter a valid URL" + }, + "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": "Automatically send a greeting message when a new conversation is created.", + "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", + "API": { + "ERROR_MESSAGE": "We were not able to create a website channel, please try again" + } + }, + "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" + }, + "MESSAGING_SERVICE_SID": { + "LABEL": "Messaging Service SID", + "PLACEHOLDER": "Please enter your Twilio Messaging Service SID", + "ERROR": "This field is required", + "USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service" + }, + "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": "Inbox Name", + "PLACEHOLDER": "Please enter a inbox 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 provide a valid phone number that starts with a `+` sign and does not contain any spaces." + }, + "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" + } + }, + "SMS": { + "TITLE": "SMS Channel", + "DESC": "Start supporting your customers via SMS.", + "PROVIDERS": { + "LABEL": "API Provider", + "TWILIO": "Twilio", + "BANDWIDTH": "Bandwidth" + }, + "API": { + "ERROR_MESSAGE": "We were not able to save the SMS channel" + }, + "BANDWIDTH": { + "ACCOUNT_ID": { + "LABEL": "Account ID", + "PLACEHOLDER": "Please enter your Bandwidth Account ID", + "ERROR": "This field is required" + }, + "API_KEY": { + "LABEL": "API Key", + "PLACEHOLDER": "Please enter your Bandwith API Key", + "ERROR": "This field is required" + }, + "API_SECRET": { + "LABEL": "API Secret", + "PLACEHOLDER": "Please enter your Bandwith API Secret", + "ERROR": "This field is required" + }, + "APPLICATION_ID": { + "LABEL": "Application ID", + "PLACEHOLDER": "Please enter your Bandwidth Application ID", + "ERROR": "This field is required" + }, + "INBOX_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Please enter a inbox 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 provide a valid phone number that starts with a `+` sign and does not contain any spaces." + }, + "SUBMIT_BUTTON": "Create Bandwidth Channel", + "API": { + "ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again" + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here." + } + } + }, + "WHATSAPP": { + "TITLE": "WhatsApp Channel", + "DESC": "Start supporting your customers via WhatsApp.", + "PROVIDERS": { + "LABEL": "API Provider", + "TWILIO": "Twilio", + "WHATSAPP_CLOUD": "WhatsApp Cloud", + "360_DIALOG": "360Dialog" + }, + "INBOX_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Please enter an inbox 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 provide a valid phone number that starts with a `+` sign and does not contain any spaces." + }, + "PHONE_NUMBER_ID": { + "LABEL": "Phone number ID", + "PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.", + "ERROR": "Please enter a valid value." + }, + "BUSINESS_ACCOUNT_ID": { + "LABEL": "Business Account ID", + "PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.", + "ERROR": "Please enter a valid value." + }, + "WEBHOOK_VERIFY_TOKEN": { + "LABEL": "Webhook Verify Token", + "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.", + "ERROR": "Please enter a valid value." + }, + "API_KEY": { + "LABEL": "API key", + "SUBTITLE": "Configure the WhatsApp API key.", + "PLACEHOLDER": "API key", + "ERROR": "Please enter a valid value." + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.", + "WEBHOOK_URL": "Webhook URL", + "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token" + }, + "SUBMIT_BUTTON": "Create WhatsApp Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the WhatsApp channel" + } + }, + "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": "Provide the email address where your customers send support requests.", + "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." + }, + "LINE_CHANNEL": { + "TITLE": "LINE Channel", + "DESC": "Integrate with LINE channel and start supporting your customers.", + "CHANNEL_NAME": { + "LABEL": "Channel Name", + "PLACEHOLDER": "Please enter a channel name", + "ERROR": "This field is required" + }, + "LINE_CHANNEL_ID": { + "LABEL": "LINE Channel ID", + "PLACEHOLDER": "LINE Channel ID" + }, + "LINE_CHANNEL_SECRET": { + "LABEL": "LINE Channel Secret", + "PLACEHOLDER": "LINE Channel Secret" + }, + "LINE_CHANNEL_TOKEN": { + "LABEL": "LINE Channel Token", + "PLACEHOLDER": "LINE Channel Token" + }, + "SUBMIT_BUTTON": "Create LINE Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the LINE channel" + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here." + } + }, + "TELEGRAM_CHANNEL": { + "TITLE": "Telegram Channel", + "DESC": "Integrate with Telegram channel and start supporting your customers.", + "BOT_TOKEN": { + "LABEL": "Bot Token", + "SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.", + "PLACEHOLDER": "Bot Token" + }, + "SUBMIT_BUTTON": "Create Telegram Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the telegram channel" + } + }, + "AUTH": { + "TITLE": "Choose a channel", + "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below." + }, + "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 :)" + }, + "EMAIL_PROVIDER": { + "TITLE": "Select your email provider", + "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials." + }, + "MICROSOFT": { + "TITLE": "Microsoft Email", + "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.", + "EMAIL_PLACEHOLDER": "Enter email address", + "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ", + "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again" + } + }, + "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", + "MORE_SETTINGS": "More settings", + "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": "We couldn't update inbox settings. Please try again later." + }, + "EMAIL_COLLECT_BOX": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ENABLE_CSAT": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ALLOW_MESSAGES_AFTER_RESOLVED": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ENABLE_CONTINUITY_VIA_EMAIL": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "LOCK_TO_SINGLE_CONVERSATION": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ENABLE_HMAC": { + "LABEL": "Enable" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "PLACE_HOLDER": "Please type {inboxName} to confirm", + "YES": "Yes, Delete ", + "NO": "No, Keep " + }, + "API": { + "SUCCESS_MESSAGE": "Inbox deleted successfully", + "ERROR_MESSAGE": "Could not delete inbox. Please try again later.", + "AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully", + "AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later." + } + }, + "TABS": { + "SETTINGS": "Settings", + "COLLABORATORS": "Collaborators", + "CONFIGURATION": "Configuration", + "CAMPAIGN": "Campaigns", + "PRE_CHAT_FORM": "Pre Chat Form", + "BUSINESS_HOURS": "Business Hours", + "WIDGET_BUILDER": "Widget Builder", + "BOT_CONFIGURATION": "Bot Configuration" + }, + "SETTINGS": "Settings", + "FEATURES": { + "LABEL": "Features", + "DISPLAY_FILE_PICKER": "Display file picker on the widget", + "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" + }, + "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", + "AGENT_ASSIGNMENT": "Conversation Assignment", + "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings", + "UPDATE": "Update", + "ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box", + "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation", + "AUTO_ASSIGNMENT": "Enable auto assignment", + "ENABLE_CSAT": "Enable CSAT", + "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation", + "ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email", + "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.", + "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation", + "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox", + "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": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.", + "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation", + "HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.", + "INBOX_IDENTIFIER": "Inbox Identifier", + "INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.", + "FORWARD_EMAIL_TITLE": "Forward to Email", + "FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.", + "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved", + "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.", + "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.", + "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.", + "WHATSAPP_SECTION_TITLE": "API Key", + "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key", + "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here", + "WHATSAPP_SECTION_UPDATE_BUTTON": "Update", + "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings" + }, + "AUTO_ASSIGNMENT": { + "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit", + "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0", + "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent" + }, + "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" + }, + "PRE_CHAT_FORM": { + "DESCRIPTION": "Pre chat forms enable you to capture user information before they start conversation with you.", + "SET_FIELDS": "Pre chat form fields", + "SET_FIELDS_HEADER": { + "FIELDS": "Fields", + "LABEL": "Label", + "PLACE_HOLDER": "Placeholder", + "KEY": "Key", + "TYPE": "Type", + "REQUIRED": "Required" + }, + "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" + } + }, + "BUSINESS_HOURS": { + "TITLE": "Set your availability", + "SUBTITLE": "Set your availability on your livechat widget", + "WEEKLY_TITLE": "Set your weekly hours", + "TIMEZONE_LABEL": "Select timezone", + "UPDATE": "Update business hours settings", + "TOGGLE_AVAILABILITY": "Enable business availability for this inbox", + "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors", + "UNAVAILABLE_MESSAGE_DEFAULT": "We are unavailable at the moment. Leave a message we will respond once we are back.", + "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours vistors can be warned with a message and a pre-chat form.", + "DAY": { + "ENABLE": "Enable availability for this day", + "UNAVAILABLE": "Unavailable", + "HOURS": "hours", + "VALIDATION_ERROR": "Starting time should be before closing time.", + "CHOOSE": "Choose" + }, + "ALL_DAY": "All-Day" + }, + "IMAP": { + "TITLE": "IMAP", + "SUBTITLE": "Set your IMAP details", + "NOTE_TEXT": "To enable SMTP, please configure IMAP.", + "UPDATE": "Update IMAP settings", + "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox", + "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email", + "EDIT": { + "SUCCESS_MESSAGE": "IMAP settings updated successfully", + "ERROR_MESSAGE": "Unable to update IMAP settings" + }, + "ADDRESS": { + "LABEL": "Address", + "PLACE_HOLDER": "Address (Eg: imap.gmail.com)" + }, + "PORT": { + "LABEL": "Port", + "PLACE_HOLDER": "Port" + }, + "LOGIN": { + "LABEL": "Login", + "PLACE_HOLDER": "Login" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACE_HOLDER": "Password" + }, + "ENABLE_SSL": "Enable SSL" + }, + "MICROSOFT": { + "TITLE": "Microsoft", + "SUBTITLE": "Reauthorize your MICROSOFT account" + }, + "SMTP": { + "TITLE": "SMTP", + "SUBTITLE": "Set your SMTP details", + "UPDATE": "Update SMTP settings", + "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox", + "TOGGLE_HELP": "Enabling SMTP will help the user to send email", + "EDIT": { + "SUCCESS_MESSAGE": "SMTP settings updated successfully", + "ERROR_MESSAGE": "Unable to update SMTP settings" + }, + "ADDRESS": { + "LABEL": "Address", + "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)" + }, + "PORT": { + "LABEL": "Port", + "PLACE_HOLDER": "Port" + }, + "LOGIN": { + "LABEL": "Login", + "PLACE_HOLDER": "Login" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACE_HOLDER": "Password" + }, + "DOMAIN": { + "LABEL": "Domain", + "PLACE_HOLDER": "Domain" + }, + "ENCRYPTION": "Encryption", + "SSL_TLS": "SSL/TLS", + "START_TLS": "STARTTLS", + "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode", + "AUTH_MECHANISM": "Authentication" + }, + "NOTE": "Note: ", + "WIDGET_BUILDER": { + "WIDGET_OPTIONS": { + "AVATAR": { + "LABEL": "Website Avatar", + "DELETE": { + "API": { + "SUCCESS_MESSAGE": "Avatar deleted successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + } + }, + "WEBSITE_NAME": { + "LABEL": "Website Name", + "PLACE_HOLDER": "Enter your website name (eg: Acme Inc)", + "ERROR": "Please enter a valid website name" + }, + "WELCOME_HEADING": { + "LABEL": "Welcome Heading", + "PLACE_HOLDER": "Hi there!" + }, + "WELCOME_TAGLINE": { + "LABEL": "Welcome Tagline", + "PLACE_HOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback." + }, + "REPLY_TIME": { + "LABEL": "Reply Time", + "IN_A_FEW_MINUTES": "In a few minutes", + "IN_A_FEW_HOURS": "In a few hours", + "IN_A_DAY": "In a day" + }, + "WIDGET_COLOR_LABEL": "Widget Color", + "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position", + "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type", + "WIDGET_BUBBLE_LAUNCHER_TITLE": { + "DEFAULT": "Chat with us", + "LABEL": "Widget Bubble Launcher Title", + "PLACE_HOLDER": "Chat with us" + }, + "UPDATE": { + "BUTTON_TEXT": "Update Widget Settings", + "API": { + "SUCCESS_MESSAGE": "Widget settings updated successfully", + "ERROR_MESSAGE": "Unable to update widget settings" + } + }, + "WIDGET_VIEW_OPTION": { + "PREVIEW": "Preview", + "SCRIPT": "Script" + }, + "WIDGET_BUBBLE_POSITION": { + "LEFT": "Left", + "RIGHT": "Right" + }, + "WIDGET_BUBBLE_TYPE": { + "STANDARD": "Standard", + "EXPANDED_BUBBLE": "Expanded Bubble" + } + }, + "WIDGET_SCREEN": { + "DEFAULT": "Default", + "CHAT": "Chat" + }, + "REPLY_TIME": { + "IN_A_FEW_MINUTES": "Typically replies in a few minutes", + "IN_A_FEW_HOURS": "Typically replies in a few hours", + "IN_A_DAY": "Typically replies in a day" + }, + "FOOTER": { + "START_CONVERSATION_BUTTON_TEXT": "Start Conversation", + "CHAT_INPUT_PLACEHOLDER": "Type your message" + }, + "BODY": { + "TEAM_AVAILABILITY": { + "ONLINE": "We are Online", + "OFFLINE": "We are away at the moment" + }, + "USER_MESSAGE": "Hi", + "AGENT_MESSAGE": "Hello" + }, + "BRANDING_TEXT": "Powered by Chatwoot", + "SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};" + }, + "EMAIL_PROVIDERS": { + "MICROSOFT": "Microsoft", + "OTHER_PROVIDERS": "Other Providers" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/integrationApps.json b/app/javascript/dashboard/i18n/locale/hr/integrationApps.json new file mode 100644 index 000000000..a80ecb837 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/integrationApps.json @@ -0,0 +1,62 @@ +{ + "INTEGRATION_APPS": { + "FETCHING": "Fetching Integrations", + "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.", + "HEADER": "Applications", + "STATUS": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "CONFIGURE": "Configure", + "ADD_BUTTON": "Add a new hook", + "DELETE": { + "TITLE": { + "INBOX": "Confirm deletion", + "ACCOUNT": "Disconnect" + }, + "MESSAGE": { + "INBOX": "Are you sure to delete?", + "ACCOUNT": "Are you sure to disconnect?" + }, + "CONFIRM_BUTTON_TEXT": { + "INBOX": "Yes, Delete", + "ACCOUNT": "Yes, Disconnect" + }, + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Hook deleted successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "LIST": { + "FETCHING": "Fetching integration hooks", + "INBOX": "Inbox", + "DELETE": { + "BUTTON_TEXT": "Delete" + } + }, + "ADD": { + "FORM": { + "INBOX": { + "LABEL": "Select Inbox", + "PLACEHOLDER": "Select Inbox" + }, + "SUBMIT": "Create", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Integration hook added successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "CONNECT": { + "BUTTON_TEXT": "Connect" + }, + "DISCONNECT": { + "BUTTON_TEXT": "Disconnect" + }, + "SIDEBAR_DESCRIPTION": { + "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.

Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.

To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information." + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/integrations.json b/app/javascript/dashboard/i18n/locale/hr/integrations.json new file mode 100644 index 000000000..00d92f297 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/integrations.json @@ -0,0 +1,144 @@ +{ + "INTEGRATION_SETTINGS": { + "HEADER": "Integrations", + "WEBHOOK": { + "SUBSCRIBED_EVENTS": "Subscribed Events", + "FORM": { + "CANCEL": "Cancel", + "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.", + "SUBSCRIPTIONS": { + "LABEL": "Events", + "EVENTS": { + "CONVERSATION_CREATED": "Conversation Created", + "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed", + "CONVERSATION_UPDATED": "Conversation Updated", + "MESSAGE_CREATED": "Message created", + "MESSAGE_UPDATED": "Message updated", + "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user", + "CONTACT_CREATED": "Contact created", + "CONTACT_UPDATED": "Contact updated" + } + }, + "END_POINT": { + "LABEL": "Webhook URL", + "PLACEHOLDER": "Example: https://example/api/webhook", + "ERROR": "Please enter a valid URL" + }, + "EDIT_SUBMIT": "Update webhook", + "ADD_SUBMIT": "Create 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" + ] + }, + "EDIT": { + "BUTTON_TEXT": "Edit", + "TITLE": "Edit webhook", + "API": { + "SUCCESS_MESSAGE": "Webhook configuration updated successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "ADD": { + "CANCEL": "Cancel", + "TITLE": "Add new webhook", + "API": { + "SUCCESS_MESSAGE": "Webhook configuration 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 the webhook? (%{webhookURL})", + "YES": "Yes, Delete ", + "NO": "No, Keep it" + } + } + }, + "SLACK": { + "HELP_TEXT": { + "TITLE": "Using Slack Integration", + "BODY": "

Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.

Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.

Start the replies with note: to create private notes instead of replies.

If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.

When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.

" + } + }, + "DYTE": { + "CLICK_HERE_TO_JOIN": "Click here to join", + "LEAVE_THE_ROOM": "Leave the room", + "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer", + "JOIN_ERROR": "There was an error joining the call, please try again", + "CREATE_ERROR": "There was an error creating a meeting link, please try again" + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Integration deleted successfully" + } + }, + "CONNECT": { + "BUTTON_TEXT": "Connect" + }, + "DASHBOARD_APPS": { + "TITLE": "Dashboard Apps", + "HEADER_BTN_TXT": "Add a new dashboard app", + "SIDEBAR_TXT": "

Dashboard Apps

Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.

When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.

To add a new dashboard app, click on the button 'Add a new dashboard app'.

", + "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.", + "LIST": { + "404": "There are no dashboard apps configured on this account yet", + "LOADING": "Fetching dashboard apps...", + "TABLE_HEADER": [ + "Name", + "Endpoint" + ], + "EDIT_TOOLTIP": "Edit app", + "DELETE_TOOLTIP": "Delete app" + }, + "FORM": { + "TITLE_LABEL": "Name", + "TITLE_PLACEHOLDER": "Enter a name for your dashboard app", + "TITLE_ERROR": "A name for the dashboard app is required", + "URL_LABEL": "Endpoint", + "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted", + "URL_ERROR": "A valid URL is required" + }, + "CREATE": { + "HEADER": "Add a new dashboard app", + "FORM_SUBMIT": "Submit", + "FORM_CANCEL": "Cancel", + "API_SUCCESS": "Dashboard app configured successfully", + "API_ERROR": "We couldn't create an app. Please try again later" + }, + "UPDATE": { + "HEADER": "Edit dashboard app", + "FORM_SUBMIT": "Update", + "FORM_CANCEL": "Cancel", + "API_SUCCESS": "Dashboard app updated successfully", + "API_ERROR": "We couldn't update the app. Please try again later" + }, + "DELETE": { + "CONFIRM_YES": "Yes, delete it", + "CONFIRM_NO": "No, keep it", + "TITLE": "Confirm deletion", + "MESSAGE": "Are you sure to delete the app - %{appName}?", + "API_SUCCESS": "Dashboard app deleted successfully", + "API_ERROR": "We couldn't delete the app. Please try again later" + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/hr/labelsMgmt.json new file mode 100644 index 000000000..db12fa32a --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/labelsMgmt.json @@ -0,0 +1,70 @@ +{ + "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", + "REQUIRED_ERROR": "Label name is required", + "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required", + "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed" + }, + "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/hr/login.json b/app/javascript/dashboard/i18n/locale/hr/login.json new file mode 100644 index 000000000..25c956a81 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/login.json @@ -0,0 +1,26 @@ +{ + "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" + }, + "OAUTH": { + "GOOGLE_LOGIN": "Login with Google", + "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login", + "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address." + }, + "FORGOT_PASSWORD": "Forgot your password?", + "CREATE_NEW_ACCOUNT": "Create new account", + "SUBMIT": "Login" + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/macros.json b/app/javascript/dashboard/i18n/locale/hr/macros.json new file mode 100644 index 000000000..3a59d4f26 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/macros.json @@ -0,0 +1,78 @@ +{ + "MACROS": { + "HEADER": "Macros", + "HEADER_BTN_TXT": "Add a new macro", + "HEADER_BTN_TXT_SAVE": "Save macro", + "LOADING": "Fetching macros", + "SIDEBAR_TXT": "

Macros

A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.

A macro can be helpful in 2 ways.

As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.

As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.

", + "ERROR": "Something went wrong. Please try again", + "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.", + "ADD": { + "FORM": { + "NAME": { + "LABEL": "Macro name", + "PLACEHOLDER": "Enter a name for your macro", + "ERROR": "Name is required for creating a macro" + }, + "ACTIONS": { + "LABEL": "Actions" + } + }, + "API": { + "SUCCESS_MESSAGE": "Macro added successfully", + "ERROR_MESSAGE": "Unable to create macro, Please try again later" + } + }, + "LIST": { + "TABLE_HEADER": [ + "Name", + "Created by", + "Last updated by", + "Visibility" + ], + "404": "No macros found" + }, + "DELETE": { + "TOOLTIP": "Delete macro", + "CONFIRM": { + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete", + "NO": "No" + }, + "API": { + "SUCCESS_MESSAGE": "Macro deleted successfully", + "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later" + } + }, + "EDIT": { + "TOOLTIP": "Edit macro", + "API": { + "SUCCESS_MESSAGE": "Macro updated successfully", + "ERROR_MESSAGE": "Could not update Macro, Please try again later" + } + }, + "EDITOR": { + "START_FLOW": "Start Flow", + "END_FLOW": "End Flow", + "LOADING": "Fetching macro", + "ADD_BTN_TOOLTIP": "Add new action", + "DELETE_BTN_TOOLTIP": "Delete Action", + "VISIBILITY": { + "LABEL": "Macro Visibility", + "GLOBAL": { + "LABEL": "Public", + "DESCRIPTION": "This macro is available publicly for all agents in this account." + }, + "PERSONAL": { + "LABEL": "Private", + "DESCRIPTION": "This macro will be private to you and not be available to others." + } + } + }, + "EXECUTE": { + "BUTTON_TOOLTIP": "Execute", + "PREVIEW": "Preview Macro", + "EXECUTED_SUCCESSFULLY": "Macro executed successfully" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/report.json b/app/javascript/dashboard/i18n/locale/hr/report.json new file mode 100644 index 000000000..48dcccc2b --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/report.json @@ -0,0 +1,462 @@ +{ + "REPORT": { + "HEADER": "Conversations", + "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 )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + }, + "GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By", + "DURATION_FILTER_LABEL": "Duration", + "GROUP_BY_DAY_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + } + ], + "GROUP_BY_WEEK_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + }, + { + "id": 2, + "groupBy": "Week" + } + ], + "GROUP_BY_MONTH_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + }, + { + "id": 2, + "groupBy": "Week" + }, + { + "id": 3, + "groupBy": "Month" + } + ], + "GROUP_BY_YEAR_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + }, + { + "id": 2, + "groupBy": "Week" + }, + { + "id": 3, + "groupBy": "Month" + }, + { + "id": 4, + "groupBy": "Year" + } + ], + "BUSINESS_HOURS": "Business Hours" + }, + "AGENT_REPORTS": { + "HEADER": "Agents Overview", + "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", + "FILTER_DROPDOWN_LABEL": "Select Agent", + "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 )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "LABEL_REPORTS": { + "HEADER": "Labels Overview", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_LABEL_REPORTS": "Download label reports", + "FILTER_DROPDOWN_LABEL": "Select Label", + "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 )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "INBOX_REPORTS": { + "HEADER": "Inbox Overview", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_INBOX_REPORTS": "Download inbox reports", + "FILTER_DROPDOWN_LABEL": "Select Inbox", + "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 )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "TEAM_REPORTS": { + "HEADER": "Team Overview", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_TEAM_REPORTS": "Download team reports", + "FILTER_DROPDOWN_LABEL": "Select Team", + "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 )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "CSAT_REPORTS": { + "HEADER": "CSAT Reports", + "NO_RECORDS": "There are no CSAT survey responses available.", + "DOWNLOAD": "Download CSAT Reports", + "FILTERS": { + "AGENTS": { + "PLACEHOLDER": "Choose Agents" + } + }, + "TABLE": { + "HEADER": { + "CONTACT_NAME": "Contact", + "AGENT_NAME": "Assigned agent", + "RATING": "Rating", + "FEEDBACK_TEXT": "Feedback comment" + } + }, + "METRIC": { + "TOTAL_RESPONSES": { + "LABEL": "Total responses", + "TOOLTIP": "Total number of responses collected" + }, + "SATISFACTION_SCORE": { + "LABEL": "Satisfaction score", + "TOOLTIP": "Total number of positive responses / Total number of responses * 100" + }, + "RESPONSE_RATE": { + "LABEL": "Response rate", + "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100" + } + } + }, + "OVERVIEW_REPORTS": { + "HEADER": "Overview", + "LIVE": "Live", + "ACCOUNT_CONVERSATIONS": { + "HEADER": "Open Conversations", + "LOADING_MESSAGE": "Loading conversation metrics...", + "OPEN": "Open", + "UNATTENDED": "Unattended", + "UNASSIGNED": "Unassigned" + }, + "CONVERSATION_HEATMAP": { + "HEADER": "Conversation Traffic", + "NO_CONVERSATIONS": "No conversations", + "CONVERSATION": "%{count} conversation", + "CONVERSATIONS": "%{count} conversations" + }, + "AGENT_CONVERSATIONS": { + "HEADER": "Conversations by agents", + "LOADING_MESSAGE": "Loading agent metrics...", + "NO_AGENTS": "There are no conversations by agents", + "TABLE_HEADER": { + "AGENT": "Agent", + "OPEN": "OPEN", + "UNATTENDED": "Unattended", + "STATUS": "Status" + } + }, + "AGENT_STATUS": { + "HEADER": "Agent status", + "ONLINE": "Online", + "BUSY": "Busy", + "OFFLINE": "Offline" + } + }, + "DAYS_OF_WEEK": { + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday" + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/resetPassword.json b/app/javascript/dashboard/i18n/locale/hr/resetPassword.json new file mode 100644 index 000000000..bb678e809 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/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/hr/search.json b/app/javascript/dashboard/i18n/locale/hr/search.json new file mode 100644 index 000000000..418572c0c --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/search.json @@ -0,0 +1,23 @@ +{ + "SEARCH": { + "TABS": { + "ALL": "All", + "CONTACTS": "Contacts", + "CONVERSATIONS": "Conversations", + "MESSAGES": "Messages" + }, + "SECTION": { + "CONTACTS": "Contacts", + "CONVERSATIONS": "Conversations", + "MESSAGES": "Messages" + }, + "EMPTY_STATE": "No %{item} found for query '%{query}'", + "EMPTY_STATE_FULL": "No results found for query '%{query}'", + "PLACEHOLDER_KEYBINDING": "/ to focus", + "INPUT_PLACEHOLDER": "Search messages, contacts or conversations", + "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.", + "BOT_LABEL": "Bot", + "READ_MORE": "Read more", + "WROTE": "wrote:" + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/setNewPassword.json b/app/javascript/dashboard/i18n/locale/hr/setNewPassword.json new file mode 100644 index 000000000..ec2d94744 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/setNewPassword.json @@ -0,0 +1,23 @@ +{ + "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" + }, + "CAPTCHA": { + "ERROR": "Verification expired. Please solve captcha again." + }, + "SUBMIT": "Submit" + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/settings.json b/app/javascript/dashboard/i18n/locale/hr/settings.json new file mode 100644 index 000000000..5e6ad266e --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/settings.json @@ -0,0 +1,315 @@ +{ + "PROFILE_SETTINGS": { + "LINK": "Profile Settings", + "TITLE": "Profile Settings", + "BTN_TEXT": "Update Profile", + "DELETE_AVATAR": "Delete Avatar", + "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully", + "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again", + "UPDATE_SUCCESS": "Your profile has been updated successfully", + "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully", + "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." + }, + "SEND_MESSAGE": { + "TITLE": "Hotkey to send messages", + "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.", + "UPDATE_SUCCESS": "Your settings have been updated successfully", + "CARD": { + "ENTER_KEY": { + "HEADING": "Enter (↵)", + "CONTENT": "Send messages by pressing Enter key instead of clicking the send button." + }, + "CMD_ENTER_KEY": { + "HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)", + "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button." + } + } + }, + "MESSAGE_SIGNATURE_SECTION": { + "TITLE": "Personal message signature", + "NOTE": "Create a personal message signature that would be added to all the messages you send from your email inbox. Use the rich content editor to create a highly personalised signature.", + "BTN_TEXT": "Save message signature", + "API_ERROR": "Couldn't save signature! Try again", + "API_SUCCESS": "Signature saved successfully" + }, + "MESSAGE_SIGNATURE": { + "LABEL": "Message Signature", + "ERROR": "Message Signature cannot be empty", + "PLACEHOLDER": "Insert your personal message signature here." + }, + "PASSWORD_SECTION": { + "TITLE": "Password", + "NOTE": "Updating your password would reset your logins in multiple devices.", + "BTN_TEXT": "Change password" + }, + "ACCESS_TOKEN": { + "TITLE": "Access Token", + "NOTE": "This token can be used if you are building an API based integration" + }, + "AUDIO_NOTIFICATIONS_SECTION": { + "TITLE": "Audio Notifications", + "NOTE": "Enable audio notifications in dashboard for new messages and conversations.", + "ALERT_TYPE": { + "TITLE": "Alert events:", + "NONE": "None", + "ASSIGNED": "Assigned Conversations", + "ALL_CONVERSATIONS": "All Conversations" + }, + "DEFAULT_TONE": { + "TITLE": "Alert tone:" + }, + "CONDITIONS": { + "TITLE": "Alert conditions:", + "CONDITION_ONE": "Send audio alerts only if the browser window is not active", + "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read" + } + }, + "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", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating 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", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating 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" + ], + "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully", + "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again" + }, + "EMAIL": { + "LABEL": "Your email address", + "ERROR": "Please enter a valid email address", + "PLACEHOLDER": "Please enter your email address, this would be displayed in conversations" + }, + "CURRENT_PASSWORD": { + "LABEL": "Current password", + "ERROR": "Please enter the current password", + "PLACEHOLDER": "Please enter the current password" + }, + "PASSWORD": { + "LABEL": "New 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 new password" + } + } + }, + "SIDEBAR_ITEMS": { + "CHANGE_AVAILABILITY_STATUS": "Change", + "CHANGE_ACCOUNTS": "Switch Account", + "CONTACT_SUPPORT": "Contact Support", + "SELECTOR_SUBTITLE": "Select an account from the following list", + "PROFILE_SETTINGS": "Profile Settings", + "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts", + "SUPER_ADMIN_CONSOLE": "Super Admin Console", + "LOGOUT": "Logout" + }, + "APP_GLOBAL": { + "TRIAL_MESSAGE": "days trial remaining.", + "TRAIL_BUTTON": "Buy Now", + "DELETED_USER": "Deleted User", + "ACCOUNT_SUSPENDED": { + "TITLE": "Account Suspended", + "MESSAGE": "Your account is suspended. Please reach out to the support team for more information." + } + }, + "COMPONENTS": { + "CODE": { + "BUTTON_TEXT": "Copy", + "CODEPEN": "Otvori u CodePenu", + "COPY_SUCCESSFUL": "Copied to clipboard" + }, + "SHOW_MORE_BLOCK": { + "SHOW_MORE": "Show More", + "SHOW_LESS": "Show Less" + }, + "FILE_BUBBLE": { + "DOWNLOAD": "Download", + "UPLOADING": "Uploading...", + "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available." + }, + "LOCATION_BUBBLE": { + "SEE_ON_MAP": "See on map" + }, + "FORM_BUBBLE": { + "SUBMIT": "Submit" + } + }, + "CONFIRM_EMAIL": "Verifying...", + "SETTINGS": { + "INBOXES": { + "NEW_INBOX": "Add Inbox" + } + }, + "SIDEBAR": { + "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:", + "SWITCH": "Switch", + "CONVERSATIONS": "Conversations", + "ALL_CONVERSATIONS": "All Conversations", + "MENTIONED_CONVERSATIONS": "Mentions", + "PARTICIPATING_CONVERSATIONS": "Participating", + "UNATTENDED_CONVERSATIONS": "Unattended", + "REPORTS": "Reports", + "SETTINGS": "Settings", + "CONTACTS": "Contacts", + "HOME": "Home", + "AGENTS": "Agents", + "AGENT_BOTS": "Botovi", + "INBOXES": "Inboxes", + "NOTIFICATIONS": "Notifications", + "CANNED_RESPONSES": "Canned Responses", + "INTEGRATIONS": "Integrations", + "PROFILE_SETTINGS": "Profile Settings", + "ACCOUNT_SETTINGS": "Account Settings", + "APPLICATIONS": "Applications", + "LABELS": "Labels", + "CUSTOM_ATTRIBUTES": "Custom Attributes", + "AUTOMATION": "Automation", + "MACROS": "Macros", + "TEAMS": "Teams", + "BILLING": "Billing", + "CUSTOM_VIEWS_FOLDER": "Folders", + "CUSTOM_VIEWS_SEGMENTS": "Segments", + "ALL_CONTACTS": "All Contacts", + "TAGGED_WITH": "Tagged with", + "NEW_LABEL": "New label", + "NEW_TEAM": "New team", + "NEW_INBOX": "New inbox", + "REPORTS_CONVERSATION": "Conversations", + "CSAT": "CSAT", + "CAMPAIGNS": "Campaigns", + "ONGOING": "Ongoing", + "ONE_OFF": "One off", + "REPORTS_AGENT": "Agents", + "REPORTS_LABEL": "Labels", + "REPORTS_INBOX": "Inbox", + "REPORTS_TEAM": "Team", + "SET_AVAILABILITY_TITLE": "Set yourself as", + "BETA": "Beta", + "REPORTS_OVERVIEW": "Overview", + "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services", + "HELP_CENTER": { + "TITLE": "Help Center (Beta)", + "ALL_ARTICLES": "All Articles", + "MY_ARTICLES": "My Articles", + "DRAFT": "Draft", + "ARCHIVED": "Archived", + "CATEGORY": "Kategorija", + "SETTINGS": "Settings", + "CATEGORY_EMPTY_MESSAGE": "No categories found" + }, + "SET_AUTO_OFFLINE": { + "TEXT": "Mark offline automatically", + "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard." + }, + "DOCS": "Read docs" + }, + "BILLING_SETTINGS": { + "TITLE": "Billing", + "CURRENT_PLAN": { + "TITLE": "Current Plan", + "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses" + }, + "MANAGE_SUBSCRIPTION": { + "TITLE": "Manage your subscription", + "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.", + "BUTTON_TXT": "Go to the billing portal" + }, + "CHAT_WITH_US": { + "TITLE": "Need help?", + "DESCRIPTION": "Do you face any issues in billing? We are here to help.", + "BUTTON_TXT": "Chat with us" + }, + "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again." + }, + "CREATE_ACCOUNT": { + "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.", + "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": "Company Name", + "PLACEHOLDER": "Wayne Enterprises" + }, + "SUBMIT": "Submit" + } + }, + "KEYBOARD_SHORTCUTS": { + "TOGGLE_MODAL": "View all shortcuts", + "TITLE": { + "OPEN_CONVERSATION": "Open conversation", + "RESOLVE_AND_NEXT": "Resolve and move to next", + "NAVIGATE_DROPDOWN": "Navigate dropdown items", + "RESOLVE_CONVERSATION": "Resolve Conversation", + "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard", + "ADD_ATTACHMENT": "Add Attachment", + "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard", + "TOGGLE_SIDEBAR": "Toggle Sidebar", + "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar", + "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list", + "GO_TO_SETTINGS": "Go to Settings", + "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status", + "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note", + "SWITCH_TO_REPLY": "Switch to Reply", + "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown" + }, + "KEYS": { + "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘", + "ALT_OR_OPTION_KEY": "Alt / ⌥", + "FORWARD_SLASH_KEY": "/" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/signup.json b/app/javascript/dashboard/i18n/locale/hr/signup.json new file mode 100644 index 000000000..10ddc5b86 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/signup.json @@ -0,0 +1,44 @@ +{ + "REGISTER": { + "TRY_WOOT": "Create an account", + "TITLE": "Register", + "TESTIMONIAL_HEADER": "All it takes is one step to move forward", + "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.", + "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy", + "OAUTH": { + "GOOGLE_SIGNUP": "Sign up with Google" + }, + "COMPANY_NAME": { + "LABEL": "Company name", + "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises", + "ERROR": "Company 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": "Please enter a valid work email address" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACEHOLDER": "Password", + "ERROR": "Password is too short", + "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character" + }, + "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": "Create account", + "HAVE_AN_ACCOUNT": "Already have an account?" + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/teamsSettings.json b/app/javascript/dashboard/i18n/locale/hr/teamsSettings.json new file mode 100644 index 000000000..f9ecaaaae --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/teamsSettings.json @@ -0,0 +1,125 @@ +{ + "TEAMS_SETTINGS": { + "NEW_TEAM": "Create new team", + "HEADER": "Teams", + "SIDEBAR_TXT": "

Teams

Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.

", + "LIST": { + "404": "There are no teams created on this account.", + "EDIT_TEAM": "Edit team" + }, + "CREATE_FLOW": { + "CREATE": { + "TITLE": "Create a new team", + "DESC": "Add a title and description to your new team." + }, + "AGENTS": { + "BUTTON_TEXT": "Add agents to team", + "TITLE": "Add agents to team - %{teamName}", + "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation." + }, + "WIZARD": [ + { + "title": "Create", + "route": "settings_teams_new", + "body": "Create a new team of agents." + }, + { + "title": "Add Agents", + "route": "settings_teams_add_agents", + "body": "Add agents to the team." + }, + { + "title": "Finish", + "route": "settings_teams_finish", + "body": "You are all set to go!" + } + ] + }, + "EDIT_FLOW": { + "CREATE": { + "TITLE": "Edit your team details", + "DESC": "Edit title and description to your team.", + "BUTTON_TEXT": "Update team" + }, + "AGENTS": { + "BUTTON_TEXT": "Update agents in team", + "TITLE": "Add agents to team - %{teamName}", + "DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team." + }, + "WIZARD": [ + { + "title": "Team details", + "route": "settings_teams_edit", + "body": "Change name, description and other details." + }, + { + "title": "Edit Agents", + "route": "settings_teams_edit_members", + "body": "Edit agents in your team." + }, + { + "title": "Finish", + "route": "settings_teams_edit_finish", + "body": "You are all set to go!" + } + ] + }, + "TEAM_FORM": { + "ERROR_MESSAGE": "Couldn't save the team details. Try again." + }, + "AGENTS": { + "AGENT": "AGENT", + "EMAIL": "EMAIL", + "BUTTON_TEXT": "Add agents", + "ADD_AGENTS": "Adding Agents to your Team...", + "SELECT": "select", + "SELECT_ALL": "select all agents", + "SELECTED_COUNT": "%{selected} out of %{total} agents selected." + }, + "ADD": { + "TITLE": "Add agents to team - %{teamName}", + "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.", + "SELECT": "select", + "SELECT_ALL": "select all agents", + "SELECTED_COUNT": "%{selected} out of %{total} agents selected.", + "BUTTON_TEXT": "Add agents", + "AGENT_VALIDATION_ERROR": "Select at least one agent." + }, + "FINISH": { + "TITLE": "Your team is ready!", + "MESSAGE": "You can now collaborate as a team on conversations. Happy supporting ", + "BUTTON_TEXT": "Finish" + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Team deleted successfully.", + "ERROR_MESSAGE": "Couldn't delete the team. Try again." + }, + "CONFIRM": { + "TITLE": "Are you sure want to delete - %{teamName}", + "PLACE_HOLDER": "Please type {teamName} to confirm", + "MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.", + "YES": "Delete ", + "NO": "Cancel" + } + }, + "SETTINGS": "Settings", + "FORM": { + "UPDATE": "Update team", + "CREATE": "Create team", + "NAME": { + "LABEL": "Team name", + "PLACEHOLDER": "Example: Sales, Customer Support" + }, + "DESCRIPTION": { + "LABEL": "Team Description", + "PLACEHOLDER": "Short description about this team." + }, + "AUTO_ASSIGN": { + "LABEL": "Allow auto assign for this team." + }, + "SUBMIT_CREATE": "Create team" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/webhooks.json b/app/javascript/dashboard/i18n/locale/hr/webhooks.json new file mode 100644 index 000000000..e28c04329 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/webhooks.json @@ -0,0 +1,5 @@ +{ + "WEBHOOKS_SETTINGS": { + "HEADER": "Webhook postavke" + } +} diff --git a/app/javascript/dashboard/i18n/locale/hr/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/hr/whatsappTemplates.json new file mode 100644 index 000000000..8127f7dda --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hr/whatsappTemplates.json @@ -0,0 +1,25 @@ +{ + "WHATSAPP_TEMPLATES": { + "MODAL": { + "TITLE": "Whatsapp Predlošci", + "SUBTITLE": "Izaberi whatsapp predložak koji želiš poslati", + "TEMPLATE_SELECTED_SUBTITLE": "Proces %{templateName}" + }, + "PICKER": { + "SEARCH_PLACEHOLDER": "Pretraži Predloške", + "NO_TEMPLATES_FOUND": "Nije pronađen predložak za", + "LABELS": { + "LANGUAGE": "Jezik", + "TEMPLATE_BODY": "Tijelo predloška", + "CATEGORY": "Kategorija" + } + }, + "PARSER": { + "VARIABLES_LABEL": "Varijable", + "VARIABLE_PLACEHOLDER": "Unesi %{variable} vrijednost", + "GO_BACK_LABEL": "Nazad", + "SEND_MESSAGE_LABEL": "Šalji poruku", + "FORM_ERROR_MESSAGE": "Popuniti sve varijable prije slanja" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/hu/advancedFilters.json b/app/javascript/dashboard/i18n/locale/hu/advancedFilters.json index 55d41adca..3e1ec395e 100644 --- a/app/javascript/dashboard/i18n/locale/hu/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/hu/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/hu/agentMgmt.json b/app/javascript/dashboard/i18n/locale/hu/agentMgmt.json index b82f242b3..df9edc981 100644 --- a/app/javascript/dashboard/i18n/locale/hu/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hu/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Email cím", "PLACEHOLDER": "Kérjük adja meg az ügynök email címét" }, + "AGENT_AVAILABILITY": { + "LABEL": "Elérhetőség", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Ügynök szerkesztése" }, "BUTTON_TEXT": "Szerkesztés", diff --git a/app/javascript/dashboard/i18n/locale/hu/contact.json b/app/javascript/dashboard/i18n/locale/hu/contact.json index b6f85001a..2d7a0eab4 100644 --- a/app/javascript/dashboard/i18n/locale/hu/contact.json +++ b/app/javascript/dashboard/i18n/locale/hu/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Cégnév megadása", "LABEL": "Cégnév" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Eltávolítás", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Facebook felhasználó megadása", diff --git a/app/javascript/dashboard/i18n/locale/hu/conversation.json b/app/javascript/dashboard/i18n/locale/hu/conversation.json index 29ba6334e..0b4f87e45 100644 --- a/app/javascript/dashboard/i18n/locale/hu/conversation.json +++ b/app/javascript/dashboard/i18n/locale/hu/conversation.json @@ -166,7 +166,15 @@ "COPY": "Másolás", "DELETE": "Törlés", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Törlés", + "CANCEL": "Mégse" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json index 75f29cb9c..c294b2c12 100644 --- a/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Lehetőségek", "DISPLAY_FILE_PICKER": "File választó megjelenítése a widgeten", "DISPLAY_EMOJI_PICKER": "Emoji választó megjelenítése a widgeten", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger szkript", diff --git a/app/javascript/dashboard/i18n/locale/hu/settings.json b/app/javascript/dashboard/i18n/locale/hu/settings.json index 7a931f6a5..3a2600661 100644 --- a/app/javascript/dashboard/i18n/locale/hu/settings.json +++ b/app/javascript/dashboard/i18n/locale/hu/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Másolás", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Vágólapra másolva" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/hy/advancedFilters.json b/app/javascript/dashboard/i18n/locale/hy/advancedFilters.json index 46a573c42..a32c1bd9d 100644 --- a/app/javascript/dashboard/i18n/locale/hy/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/hy/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/hy/agentMgmt.json b/app/javascript/dashboard/i18n/locale/hy/agentMgmt.json index 0f965c717..b44e74542 100644 --- a/app/javascript/dashboard/i18n/locale/hy/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hy/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Email Address", "PLACEHOLDER": "Please enter an email address of the agent" }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Edit Agent" }, "BUTTON_TEXT": "Edit", diff --git a/app/javascript/dashboard/i18n/locale/hy/contact.json b/app/javascript/dashboard/i18n/locale/hy/contact.json index 14ab0032d..9191698d8 100644 --- a/app/javascript/dashboard/i18n/locale/hy/contact.json +++ b/app/javascript/dashboard/i18n/locale/hy/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Enter the company name", "LABEL": "Company Name" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Enter the Facebook username", diff --git a/app/javascript/dashboard/i18n/locale/hy/conversation.json b/app/javascript/dashboard/i18n/locale/hy/conversation.json index f98a3cdc0..597799c15 100644 --- a/app/javascript/dashboard/i18n/locale/hy/conversation.json +++ b/app/javascript/dashboard/i18n/locale/hy/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copy", "DELETE": "Delete", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Delete", + "CANCEL": "Cancel" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json index 87ec7a845..8b28d2a3f 100644 --- a/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/hy/settings.json b/app/javascript/dashboard/i18n/locale/hy/settings.json index 0a9e1220c..f670fc360 100644 --- a/app/javascript/dashboard/i18n/locale/hy/settings.json +++ b/app/javascript/dashboard/i18n/locale/hy/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Copied to clipboard" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/id/advancedFilters.json b/app/javascript/dashboard/i18n/locale/id/advancedFilters.json index 64f8d5ed6..81632e323 100644 --- a/app/javascript/dashboard/i18n/locale/id/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/id/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/id/agentMgmt.json b/app/javascript/dashboard/i18n/locale/id/agentMgmt.json index c556df688..6d9894075 100644 --- a/app/javascript/dashboard/i18n/locale/id/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/id/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Alamat email", "PLACEHOLDER": "Silakan masukkan alamat email agen" }, + "AGENT_AVAILABILITY": { + "LABEL": "Ketersediaan", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Edit Agen" }, "BUTTON_TEXT": "Edit", diff --git a/app/javascript/dashboard/i18n/locale/id/contact.json b/app/javascript/dashboard/i18n/locale/id/contact.json index 2509b468c..0064a00ce 100644 --- a/app/javascript/dashboard/i18n/locale/id/contact.json +++ b/app/javascript/dashboard/i18n/locale/id/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Masukkan nama perusahaan", "LABEL": "Nama Perusahaan" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Hapus", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Masukkan nama pengguna facebook", diff --git a/app/javascript/dashboard/i18n/locale/id/conversation.json b/app/javascript/dashboard/i18n/locale/id/conversation.json index 9368650ba..635b546a7 100644 --- a/app/javascript/dashboard/i18n/locale/id/conversation.json +++ b/app/javascript/dashboard/i18n/locale/id/conversation.json @@ -166,7 +166,15 @@ "COPY": "Salin", "DELETE": "Hapus", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Hapus", + "CANCEL": "Batalkan" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json index 529910eff..d4b524eb7 100644 --- a/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Fitur", "DISPLAY_FILE_PICKER": "Tampilkan file picker di widget", "DISPLAY_EMOJI_PICKER": "Tampilkan pilihan emoji di widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/id/settings.json b/app/javascript/dashboard/i18n/locale/id/settings.json index 98c754aee..00afcd484 100644 --- a/app/javascript/dashboard/i18n/locale/id/settings.json +++ b/app/javascript/dashboard/i18n/locale/id/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Salin", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Kode berhasil disalin ke clipboard" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/is/advancedFilters.json b/app/javascript/dashboard/i18n/locale/is/advancedFilters.json index ea653fecd..5dbaee6df 100644 --- a/app/javascript/dashboard/i18n/locale/is/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/is/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/is/agentMgmt.json b/app/javascript/dashboard/i18n/locale/is/agentMgmt.json index 091d97feb..f74a445fb 100644 --- a/app/javascript/dashboard/i18n/locale/is/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/is/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Netfang", "PLACEHOLDER": "Vinsamlegast skráið netfang þjónustufulltrúa" }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Breyta þjónustufulltrúa" }, "BUTTON_TEXT": "Breyta", diff --git a/app/javascript/dashboard/i18n/locale/is/contact.json b/app/javascript/dashboard/i18n/locale/is/contact.json index 0a4c76d67..bc8c435d2 100644 --- a/app/javascript/dashboard/i18n/locale/is/contact.json +++ b/app/javascript/dashboard/i18n/locale/is/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Enter the company name", "LABEL": "Company Name" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Velja", + "REMOVE": "Fjarlægja", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Enter the Facebook username", diff --git a/app/javascript/dashboard/i18n/locale/is/conversation.json b/app/javascript/dashboard/i18n/locale/is/conversation.json index c8abdbc22..be11937e3 100644 --- a/app/javascript/dashboard/i18n/locale/is/conversation.json +++ b/app/javascript/dashboard/i18n/locale/is/conversation.json @@ -166,7 +166,15 @@ "COPY": "Afrita", "DELETE": "Eyða", "CREATE_A_CANNED_RESPONSE": "Bæta við stöðluðu svari", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Eyða", + "CANCEL": "Hætta við" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json index b06848cec..a5ee57d9a 100644 --- a/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Fídusar", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Leyfa notendum að ljúka samtali úr græjunni" + "ALLOW_END_CONVERSATION": "Leyfa notendum að ljúka samtali úr græjunni", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/is/settings.json b/app/javascript/dashboard/i18n/locale/is/settings.json index 014389e1d..883fdc37b 100644 --- a/app/javascript/dashboard/i18n/locale/is/settings.json +++ b/app/javascript/dashboard/i18n/locale/is/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code copied to clipboard successfully" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/it/advancedFilters.json b/app/javascript/dashboard/i18n/locale/it/advancedFilters.json index 72a6008c4..5be8ea973 100644 --- a/app/javascript/dashboard/i18n/locale/it/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/it/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Non è presente", "is_greater_than": "È maggiore di", "is_less_than": "È minore di", - "days_before": "È x giorni prima" + "days_before": "È x giorni prima", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "Vero", diff --git a/app/javascript/dashboard/i18n/locale/it/agentMgmt.json b/app/javascript/dashboard/i18n/locale/it/agentMgmt.json index 68f101b82..b7d72cbe7 100644 --- a/app/javascript/dashboard/i18n/locale/it/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/it/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Indirizzo email", "PLACEHOLDER": "Si prega di inserire un indirizzo email dell'agente" }, + "AGENT_AVAILABILITY": { + "LABEL": "Disponibilità", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Modifica agente" }, "BUTTON_TEXT": "Modifica", diff --git a/app/javascript/dashboard/i18n/locale/it/contact.json b/app/javascript/dashboard/i18n/locale/it/contact.json index 6a08cda3e..49985ab33 100644 --- a/app/javascript/dashboard/i18n/locale/it/contact.json +++ b/app/javascript/dashboard/i18n/locale/it/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Inserisci il nome dell'azienda", "LABEL": "Nome azienda" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Nome del paese", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Rimuovi", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Inserisci il nome utente di Facebook", diff --git a/app/javascript/dashboard/i18n/locale/it/conversation.json b/app/javascript/dashboard/i18n/locale/it/conversation.json index 1b9a8bf3d..ccb5dbd4d 100644 --- a/app/javascript/dashboard/i18n/locale/it/conversation.json +++ b/app/javascript/dashboard/i18n/locale/it/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copia", "DELETE": "Elimina", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Elimina", + "CANCEL": "annulla" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json index 8f2b271b9..d1d5fcce0 100644 --- a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Funzionalità", "DISPLAY_FILE_PICKER": "Visualizza il selettore di file sul widget", "DISPLAY_EMOJI_PICKER": "Visualizza il selettore emoji sul widget", - "ALLOW_END_CONVERSATION": "Consenti agli utenti di terminare la conversazione dal widget" + "ALLOW_END_CONVERSATION": "Consenti agli utenti di terminare la conversazione dal widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Script Messenger", diff --git a/app/javascript/dashboard/i18n/locale/it/settings.json b/app/javascript/dashboard/i18n/locale/it/settings.json index c0b6ae5b7..1f0734872 100644 --- a/app/javascript/dashboard/i18n/locale/it/settings.json +++ b/app/javascript/dashboard/i18n/locale/it/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copia", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Codice copiato negli appunti correttamente" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/ja/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ja/advancedFilters.json index 519c4219b..65deca910 100644 --- a/app/javascript/dashboard/i18n/locale/ja/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/ja/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "存在しない", "is_greater_than": "より大きい", "is_less_than": "より小さい", - "days_before": "x日前" + "days_before": "x日前", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/ja/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ja/agentMgmt.json index 2bd7ccfbf..9769712ae 100644 --- a/app/javascript/dashboard/i18n/locale/ja/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ja/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Eメールアドレス", "PLACEHOLDER": "担当者のEメールアドレスを入力してください" }, + "AGENT_AVAILABILITY": { + "LABEL": "利用可能期間", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "担当者の編集" }, "BUTTON_TEXT": "編集", diff --git a/app/javascript/dashboard/i18n/locale/ja/contact.json b/app/javascript/dashboard/i18n/locale/ja/contact.json index d74dc07e6..591c14591 100644 --- a/app/javascript/dashboard/i18n/locale/ja/contact.json +++ b/app/javascript/dashboard/i18n/locale/ja/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "企業名を入力", "LABEL": "企業名" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "国名", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "削除", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Facebookのユーザー名を入力してください", diff --git a/app/javascript/dashboard/i18n/locale/ja/conversation.json b/app/javascript/dashboard/i18n/locale/ja/conversation.json index 2e96432e2..faf331d28 100644 --- a/app/javascript/dashboard/i18n/locale/ja/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ja/conversation.json @@ -166,7 +166,15 @@ "COPY": "コピー", "DELETE": "削除", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "削除", + "CANCEL": "キャンセル" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json index ed65659f6..cb1ddedde 100644 --- a/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "機能", "DISPLAY_FILE_PICKER": "ウィジェットにファイルピッカーを表示する", "DISPLAY_EMOJI_PICKER": "ウィジェットに絵文字ピッカーを表示する", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messengerスクリプト", diff --git a/app/javascript/dashboard/i18n/locale/ja/settings.json b/app/javascript/dashboard/i18n/locale/ja/settings.json index 50a017381..6110d8c7e 100644 --- a/app/javascript/dashboard/i18n/locale/ja/settings.json +++ b/app/javascript/dashboard/i18n/locale/ja/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "コピー", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "コードが正常にクリップボードにコピーされました" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/ka/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ka/advancedFilters.json index 46a573c42..a32c1bd9d 100644 --- a/app/javascript/dashboard/i18n/locale/ka/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/ka/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/ka/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ka/agentMgmt.json index 0f965c717..b44e74542 100644 --- a/app/javascript/dashboard/i18n/locale/ka/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ka/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Email Address", "PLACEHOLDER": "Please enter an email address of the agent" }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Edit Agent" }, "BUTTON_TEXT": "Edit", diff --git a/app/javascript/dashboard/i18n/locale/ka/contact.json b/app/javascript/dashboard/i18n/locale/ka/contact.json index 14ab0032d..9191698d8 100644 --- a/app/javascript/dashboard/i18n/locale/ka/contact.json +++ b/app/javascript/dashboard/i18n/locale/ka/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Enter the company name", "LABEL": "Company Name" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Enter the Facebook username", diff --git a/app/javascript/dashboard/i18n/locale/ka/conversation.json b/app/javascript/dashboard/i18n/locale/ka/conversation.json index f98a3cdc0..597799c15 100644 --- a/app/javascript/dashboard/i18n/locale/ka/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ka/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copy", "DELETE": "Delete", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Delete", + "CANCEL": "Cancel" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json index fa12859ec..60454261d 100644 --- a/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/ka/settings.json b/app/javascript/dashboard/i18n/locale/ka/settings.json index 6e6a8b675..112ac79bd 100644 --- a/app/javascript/dashboard/i18n/locale/ka/settings.json +++ b/app/javascript/dashboard/i18n/locale/ka/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code copied to clipboard successfully" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/ko/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ko/advancedFilters.json index 4513c9154..a0c25b1a8 100644 --- a/app/javascript/dashboard/i18n/locale/ko/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/ko/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "현존하지 않은", "is_greater_than": "보다 큰", "is_less_than": "보다 작은", - "days_before": "x 일 전에" + "days_before": "x 일 전에", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "참", diff --git a/app/javascript/dashboard/i18n/locale/ko/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ko/agentMgmt.json index bd1beb641..289837d54 100644 --- a/app/javascript/dashboard/i18n/locale/ko/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ko/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "이메일 주소", "PLACEHOLDER": "에이전트의 이메일 주소를 입력하십시오." }, + "AGENT_AVAILABILITY": { + "LABEL": "유용성", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "에이전트 수정" }, "BUTTON_TEXT": "수정", diff --git a/app/javascript/dashboard/i18n/locale/ko/contact.json b/app/javascript/dashboard/i18n/locale/ko/contact.json index 366ad4f59..bbd1194b3 100644 --- a/app/javascript/dashboard/i18n/locale/ko/contact.json +++ b/app/javascript/dashboard/i18n/locale/ko/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "회사명 입력", "LABEL": "회사명" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "국가 이름", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "제거", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "페이스북 사용자 이름 입력", diff --git a/app/javascript/dashboard/i18n/locale/ko/conversation.json b/app/javascript/dashboard/i18n/locale/ko/conversation.json index 29ae723f7..3e998acf6 100644 --- a/app/javascript/dashboard/i18n/locale/ko/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ko/conversation.json @@ -166,7 +166,15 @@ "COPY": "복사", "DELETE": "삭제", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "삭제", + "CANCEL": "취소" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json index cfe113466..bb94e80c6 100644 --- a/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "특징", "DISPLAY_FILE_PICKER": "위젯에 파일 선택기 표시", "DISPLAY_EMOJI_PICKER": "위젯에 이모지 선택기 표시", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "메신저 스크립트", diff --git a/app/javascript/dashboard/i18n/locale/ko/settings.json b/app/javascript/dashboard/i18n/locale/ko/settings.json index d297ba87c..cf387e1f6 100644 --- a/app/javascript/dashboard/i18n/locale/ko/settings.json +++ b/app/javascript/dashboard/i18n/locale/ko/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "복사", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "코드가 클립보드에 복사됨" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/lt/advancedFilters.json b/app/javascript/dashboard/i18n/locale/lt/advancedFilters.json index 46a573c42..a32c1bd9d 100644 --- a/app/javascript/dashboard/i18n/locale/lt/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/lt/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/lt/agentMgmt.json b/app/javascript/dashboard/i18n/locale/lt/agentMgmt.json index 0f965c717..b44e74542 100644 --- a/app/javascript/dashboard/i18n/locale/lt/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/lt/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Email Address", "PLACEHOLDER": "Please enter an email address of the agent" }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Edit Agent" }, "BUTTON_TEXT": "Edit", diff --git a/app/javascript/dashboard/i18n/locale/lt/contact.json b/app/javascript/dashboard/i18n/locale/lt/contact.json index 14ab0032d..9191698d8 100644 --- a/app/javascript/dashboard/i18n/locale/lt/contact.json +++ b/app/javascript/dashboard/i18n/locale/lt/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Enter the company name", "LABEL": "Company Name" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Enter the Facebook username", diff --git a/app/javascript/dashboard/i18n/locale/lt/conversation.json b/app/javascript/dashboard/i18n/locale/lt/conversation.json index f98a3cdc0..597799c15 100644 --- a/app/javascript/dashboard/i18n/locale/lt/conversation.json +++ b/app/javascript/dashboard/i18n/locale/lt/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copy", "DELETE": "Delete", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Delete", + "CANCEL": "Cancel" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json index fa12859ec..60454261d 100644 --- a/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/lt/settings.json b/app/javascript/dashboard/i18n/locale/lt/settings.json index 6e6a8b675..112ac79bd 100644 --- a/app/javascript/dashboard/i18n/locale/lt/settings.json +++ b/app/javascript/dashboard/i18n/locale/lt/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code copied to clipboard successfully" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/lv/advancedFilters.json b/app/javascript/dashboard/i18n/locale/lv/advancedFilters.json index 44b7d7324..c4a98db3d 100644 --- a/app/javascript/dashboard/i18n/locale/lv/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/lv/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Neiekļauj sevī", "is_greater_than": "Ir lielāks par", "is_less_than": "Ir mazāks par", - "days_before": "Ir x dienas pirms" + "days_before": "Ir x dienas pirms", + "starts_with": "Sākas ar" }, "ATTRIBUTE_LABELS": { "TRUE": "Patiesi", diff --git a/app/javascript/dashboard/i18n/locale/lv/agentMgmt.json b/app/javascript/dashboard/i18n/locale/lv/agentMgmt.json index 933a88bab..125b72ff7 100644 --- a/app/javascript/dashboard/i18n/locale/lv/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/lv/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "e-pasta Adrese", "PLACEHOLDER": "Lūdzu, ievadiet aģenta e-pasta adresi" }, + "AGENT_AVAILABILITY": { + "LABEL": "Pieejamība", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Rediģēt Aģentu" }, "BUTTON_TEXT": "Rediģēt", diff --git a/app/javascript/dashboard/i18n/locale/lv/contact.json b/app/javascript/dashboard/i18n/locale/lv/contact.json index b14c48cae..e2b4d3718 100644 --- a/app/javascript/dashboard/i18n/locale/lv/contact.json +++ b/app/javascript/dashboard/i18n/locale/lv/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Ievadiet uzņēmuma nosaukumu", "LABEL": "Uzņēmuma Nosaukums" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Valsts Nosaukums", + "SELECT_PLACEHOLDER": "Izvēlieties", + "REMOVE": "Noņemt", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Ievadiet Facebook lietotājvārdu", diff --git a/app/javascript/dashboard/i18n/locale/lv/conversation.json b/app/javascript/dashboard/i18n/locale/lv/conversation.json index db5b5bb87..842a66dcd 100644 --- a/app/javascript/dashboard/i18n/locale/lv/conversation.json +++ b/app/javascript/dashboard/i18n/locale/lv/conversation.json @@ -166,7 +166,15 @@ "COPY": "Kopēt", "DELETE": "Dzēst", "CREATE_A_CANNED_RESPONSE": "Pievienot sagatavotajām atbildēm", - "TRANSLATE": "Tulkot" + "TRANSLATE": "Tulkot", + "COPY_PERMALINK": "Kopēt saiti uz ziņojumu", + "LINK_COPIED": "Ziņojuma URL ir iekopēts starpliktuvē", + "DELETE_CONFIRMATION": { + "TITLE": "Vai tiešām vēlaties dzēst šo ziņojumu?", + "MESSAGE": "Šo darbību nevar atsaukt", + "DELETE": "Dzēst", + "CANCEL": "Atcelt" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json index ebb067826..c29ad9b57 100644 --- a/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Īpašības", "DISPLAY_FILE_PICKER": "Logrīkā parādīt failu atlasītāju", "DISPLAY_EMOJI_PICKER": "Logrīkā parādīt emocijzīmju atlasītāju", - "ALLOW_END_CONVERSATION": "Atļaut lietotājiem beigt sarunu no logrīka" + "ALLOW_END_CONVERSATION": "Atļaut lietotājiem beigt sarunu no logrīka", + "USE_INBOX_AVATAR_FOR_BOT": "Izmantot iesūtnes nosaukumu un avataru priekš robota" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Skripts", diff --git a/app/javascript/dashboard/i18n/locale/lv/settings.json b/app/javascript/dashboard/i18n/locale/lv/settings.json index f66a9a15e..36bd9813f 100644 --- a/app/javascript/dashboard/i18n/locale/lv/settings.json +++ b/app/javascript/dashboard/i18n/locale/lv/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Kopēt", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Kopēts starpliktuvē" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/ml/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ml/advancedFilters.json index 457199a78..bf0899346 100644 --- a/app/javascript/dashboard/i18n/locale/ml/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/ml/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "നിലവിലില്ല", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/ml/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ml/agentMgmt.json index ff04cba8e..fe7c43ad4 100644 --- a/app/javascript/dashboard/i18n/locale/ml/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ml/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "ഇമെയിൽ വിലാസം", "PLACEHOLDER": "ദയവായി ഏജന്റിന്റെ ഒരു ഇമെയിൽ വിലാസം നൽകുക" }, + "AGENT_AVAILABILITY": { + "LABEL": "ലഭ്യത", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "ഏജന്റിനെ എഡിറ്റുചെയ്യുക" }, "BUTTON_TEXT": "എഡിറ്റുചെയ്യുക", diff --git a/app/javascript/dashboard/i18n/locale/ml/contact.json b/app/javascript/dashboard/i18n/locale/ml/contact.json index 22062ff1f..cd3dd3f73 100644 --- a/app/javascript/dashboard/i18n/locale/ml/contact.json +++ b/app/javascript/dashboard/i18n/locale/ml/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "കമ്പനിയുടെ പേര് നൽകുക", "LABEL": "കമ്പനിയുടെ പേര്" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "രാജ്യത്തിന്റെ പേര്", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "നീക്കം ചെയ്യുക", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Facebook ഉപയോക്തൃനാമം നൽകുക", diff --git a/app/javascript/dashboard/i18n/locale/ml/conversation.json b/app/javascript/dashboard/i18n/locale/ml/conversation.json index 17d0c2ac9..fc65b17ec 100644 --- a/app/javascript/dashboard/i18n/locale/ml/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ml/conversation.json @@ -166,7 +166,15 @@ "COPY": "പകർത്തുക", "DELETE": "ഇല്ലാതാക്കുക", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "ഇല്ലാതാക്കുക", + "CANCEL": "റദ്ദാക്കുക" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json index 0adb36e5a..c01799541 100644 --- a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "മെസഞ്ചർ സ്ക്രിപ്റ്റ്", diff --git a/app/javascript/dashboard/i18n/locale/ml/settings.json b/app/javascript/dashboard/i18n/locale/ml/settings.json index 2da1c595a..ded3d4ab5 100644 --- a/app/javascript/dashboard/i18n/locale/ml/settings.json +++ b/app/javascript/dashboard/i18n/locale/ml/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "പകർത്തുക", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "കോഡ് ക്ലിപ്പ്ബോർഡിലേക്ക് വിജയകരമായി പകർത്തി" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/ms/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ms/advancedFilters.json index 4a952f86f..c064b75f5 100644 --- a/app/javascript/dashboard/i18n/locale/ms/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/ms/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Tidak sedia ada", "is_greater_than": "Adalah lebih besar", "is_less_than": "Adalah lebih kurang", - "days_before": "Adalah x hari sebelum" + "days_before": "Adalah x hari sebelum", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "Benar", diff --git a/app/javascript/dashboard/i18n/locale/ms/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ms/agentMgmt.json index 3321387f3..31e811ea5 100644 --- a/app/javascript/dashboard/i18n/locale/ms/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ms/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Emel", "PLACEHOLDER": "Sila masukkan emel ejen anda" }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Edit ejen" }, "BUTTON_TEXT": "Edit", diff --git a/app/javascript/dashboard/i18n/locale/ms/contact.json b/app/javascript/dashboard/i18n/locale/ms/contact.json index 8bb2570e4..0f11799fb 100644 --- a/app/javascript/dashboard/i18n/locale/ms/contact.json +++ b/app/javascript/dashboard/i18n/locale/ms/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Enter the company name", "LABEL": "Company Name" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Nama Negara", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Enter the Facebook username", diff --git a/app/javascript/dashboard/i18n/locale/ms/conversation.json b/app/javascript/dashboard/i18n/locale/ms/conversation.json index 61372a2ba..912511803 100644 --- a/app/javascript/dashboard/i18n/locale/ms/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ms/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copy", "DELETE": "Padamkan", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Padamkan", + "CANCEL": "Batalkan" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json index d6007fa1c..3d9df13da 100644 --- a/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/ms/settings.json b/app/javascript/dashboard/i18n/locale/ms/settings.json index 4668b204b..7d37e5ac2 100644 --- a/app/javascript/dashboard/i18n/locale/ms/settings.json +++ b/app/javascript/dashboard/i18n/locale/ms/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code copied to clipboard successfully" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/ne/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ne/advancedFilters.json index 46a573c42..a32c1bd9d 100644 --- a/app/javascript/dashboard/i18n/locale/ne/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/ne/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json index 0f965c717..b44e74542 100644 --- a/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Email Address", "PLACEHOLDER": "Please enter an email address of the agent" }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Edit Agent" }, "BUTTON_TEXT": "Edit", diff --git a/app/javascript/dashboard/i18n/locale/ne/contact.json b/app/javascript/dashboard/i18n/locale/ne/contact.json index 06cb5c9ba..6cf2d58ab 100644 --- a/app/javascript/dashboard/i18n/locale/ne/contact.json +++ b/app/javascript/dashboard/i18n/locale/ne/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Enter the company name", "LABEL": "Company Name" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Enter the Facebook username", diff --git a/app/javascript/dashboard/i18n/locale/ne/conversation.json b/app/javascript/dashboard/i18n/locale/ne/conversation.json index c935ded8d..b1519d4e2 100644 --- a/app/javascript/dashboard/i18n/locale/ne/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ne/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copy", "DELETE": "Delete", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Delete", + "CANCEL": "Cancel" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json index 9e58681c6..1a09fafc3 100644 --- a/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/ne/settings.json b/app/javascript/dashboard/i18n/locale/ne/settings.json index ec8b39160..6cbab6043 100644 --- a/app/javascript/dashboard/i18n/locale/ne/settings.json +++ b/app/javascript/dashboard/i18n/locale/ne/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code copied to clipboard successfully" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/nl/advancedFilters.json b/app/javascript/dashboard/i18n/locale/nl/advancedFilters.json index b55b5f3e0..a765fd026 100644 --- a/app/javascript/dashboard/i18n/locale/nl/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/nl/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is niet aanwezig", "is_greater_than": "Is groter dan", "is_less_than": "Is lager dan", - "days_before": "Is x dagen vóór" + "days_before": "Is x dagen vóór", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "Waar", diff --git a/app/javascript/dashboard/i18n/locale/nl/agentMgmt.json b/app/javascript/dashboard/i18n/locale/nl/agentMgmt.json index 7c9135d31..f2ca70cb1 100644 --- a/app/javascript/dashboard/i18n/locale/nl/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/nl/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Uw e-mailadres", "PLACEHOLDER": "Voer een e-mailadres in van de medewerker" }, + "AGENT_AVAILABILITY": { + "LABEL": "Beschikbaarheid", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Bewerk medewerker" }, "BUTTON_TEXT": "Bewerken", diff --git a/app/javascript/dashboard/i18n/locale/nl/contact.json b/app/javascript/dashboard/i18n/locale/nl/contact.json index c753c187b..31c9025af 100644 --- a/app/javascript/dashboard/i18n/locale/nl/contact.json +++ b/app/javascript/dashboard/i18n/locale/nl/contact.json @@ -15,7 +15,7 @@ "INITIATED_FROM": "Geïnitieerd vanuit", "INITIATED_AT": "Geïnitieerd op", "IP_ADDRESS": "IP-adres", - "CREATED_AT_LABEL": "Created", + "CREATED_AT_LABEL": "Aangemaakt op", "NEW_MESSAGE": "Nieuw bericht", "CONVERSATIONS": { "NO_RECORDS_FOUND": "Er zijn geen eerdere gesprekken gekoppeld aan dit contact.", @@ -132,6 +132,17 @@ "PLACEHOLDER": "Voer de bedrijfsnaam in", "LABEL": "Bedrijfsnaam" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Land Naam", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Verwijderen", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Voer de Facebook gebruikersnaam in", @@ -153,7 +164,7 @@ }, "DELETE_AVATAR": { "API": { - "SUCCESS_MESSAGE": "Contact avatar deleted successfully", + "SUCCESS_MESSAGE": "Contactavatar succesvol verwijderd", "ERROR_MESSAGE": "Contact avatar kon niet verwijderd worden. Probeer het later opnieuw." } }, @@ -161,56 +172,56 @@ "ERROR_MESSAGE": "Er is een fout opgetreden, probeer het opnieuw" }, "NEW_CONVERSATION": { - "BUTTON_LABEL": "Start conversation", - "TITLE": "New conversation", - "DESC": "Start a new conversation by sending a new message.", - "NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.", + "BUTTON_LABEL": "Start gesprek", + "TITLE": "Nieuw gesprek", + "DESC": "Begin een nieuw gesprek door een nieuw bericht te sturen.", + "NO_INBOX": "Kon geen inbox vinden om een nieuw gesprek met dit contact te starten.", "FORM": { "TO": { "LABEL": "Aan" }, "INBOX": { "LABEL": "Postvak In", - "ERROR": "Select an inbox" + "ERROR": "Selecteer een inbox" }, "SUBJECT": { "LABEL": "Onderwerp", "PLACEHOLDER": "Onderwerp", - "ERROR": "Subject can't be empty" + "ERROR": "Onderwerp mag niet leeg zijn" }, "MESSAGE": { "LABEL": "Bericht", - "PLACEHOLDER": "Write your message here", - "ERROR": "Message can't be empty" + "PLACEHOLDER": "Schrijf hier je bericht", + "ERROR": "Bericht mag niet leeg zijn" }, - "SUBMIT": "Send message", + "SUBMIT": "Verstuur bericht", "CANCEL": "Annuleren", "SUCCESS_MESSAGE": "Bericht verzonden!", "GO_TO_CONVERSATION": "Bekijken", - "ERROR_MESSAGE": "Couldn't send! try again" + "ERROR_MESSAGE": "Kon niet worden verzonden! Probeer opnieuw" } }, "CONTACTS_PAGE": { "HEADER": "Contacten", - "FIELDS": "Contact fields", + "FIELDS": "Contactvelden", "SEARCH_BUTTON": "Zoeken", "SEARCH_INPUT_PLACEHOLDER": "Zoeken naar contacten", "FILTER_CONTACTS": "Filteren", "FILTER_CONTACTS_SAVE": "Filter opslaan", "FILTER_CONTACTS_DELETE": "Filter verwijderen", "LIST": { - "LOADING_MESSAGE": "Loading contacts...", + "LOADING_MESSAGE": "Contacten laden...", "404": "Er zijn geen contacten die overeenkomen met je zoekopdracht 🔍", - "NO_CONTACTS": "There are no available contacts", + "NO_CONTACTS": "Er zijn geen beschikbare contacten", "TABLE_HEADER": { "NAME": "Naam", "PHONE_NUMBER": "Telefoonnummer", "CONVERSATIONS": "Gesprekken", "LAST_ACTIVITY": "Laatste Activiteit", "CREATED_AT": "Aangemaakt op", - "COUNTRY": "Country", + "COUNTRY": "Land", "CITY": "Woonplaats", - "SOCIAL_PROFILES": "Social Profiles", + "SOCIAL_PROFILES": "Social-profielen", "COMPANY": "Bedrijfsnaam", "EMAIL_ADDRESS": "Uw e-mailadres" }, diff --git a/app/javascript/dashboard/i18n/locale/nl/conversation.json b/app/javascript/dashboard/i18n/locale/nl/conversation.json index cc2ceebb5..4cc12d255 100644 --- a/app/javascript/dashboard/i18n/locale/nl/conversation.json +++ b/app/javascript/dashboard/i18n/locale/nl/conversation.json @@ -166,7 +166,15 @@ "COPY": "Kopiëren", "DELETE": "Verwijderen", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Verwijderen", + "CANCEL": "Annuleren" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json index 2bdd8e8d6..1daf26069 100644 --- a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/nl/settings.json b/app/javascript/dashboard/i18n/locale/nl/settings.json index 12c719d90..72945c7b6 100644 --- a/app/javascript/dashboard/i18n/locale/nl/settings.json +++ b/app/javascript/dashboard/i18n/locale/nl/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Kopiëren", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code succesvol naar het klembord gekopieerd " }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/no/advancedFilters.json b/app/javascript/dashboard/i18n/locale/no/advancedFilters.json index 7ddc8a1a1..f93779ca4 100644 --- a/app/javascript/dashboard/i18n/locale/no/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/no/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/no/agentMgmt.json b/app/javascript/dashboard/i18n/locale/no/agentMgmt.json index 5bcb9d6c4..291b0dbc6 100644 --- a/app/javascript/dashboard/i18n/locale/no/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/no/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "E-postadresse", "PLACEHOLDER": "Skriv inn en agent sin e-postadresse" }, + "AGENT_AVAILABILITY": { + "LABEL": "Tilgjengelighet", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Rediger agent" }, "BUTTON_TEXT": "Rediger", diff --git a/app/javascript/dashboard/i18n/locale/no/contact.json b/app/javascript/dashboard/i18n/locale/no/contact.json index c1949ddcd..04f24401b 100644 --- a/app/javascript/dashboard/i18n/locale/no/contact.json +++ b/app/javascript/dashboard/i18n/locale/no/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Skriv inn firmanavn", "LABEL": "Firmaets navn" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Fjern", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Skriv inn Facebook brukernavn", diff --git a/app/javascript/dashboard/i18n/locale/no/conversation.json b/app/javascript/dashboard/i18n/locale/no/conversation.json index 16d657506..65fb5c34e 100644 --- a/app/javascript/dashboard/i18n/locale/no/conversation.json +++ b/app/javascript/dashboard/i18n/locale/no/conversation.json @@ -166,7 +166,15 @@ "COPY": "Kopier", "DELETE": "Slett", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Slett", + "CANCEL": "Avbryt" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json index dd8bd0f07..81e311950 100644 --- a/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Funksjoner", "DISPLAY_FILE_PICKER": "Vis filvelger i widget", "DISPLAY_EMOJI_PICKER": "Vis emoji-velger i widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Kopi av samtale", diff --git a/app/javascript/dashboard/i18n/locale/no/settings.json b/app/javascript/dashboard/i18n/locale/no/settings.json index 3e017b17e..655b820ff 100644 --- a/app/javascript/dashboard/i18n/locale/no/settings.json +++ b/app/javascript/dashboard/i18n/locale/no/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Kopier", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Koden er kopiert til utklippstavlen" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/pl/advancedFilters.json b/app/javascript/dashboard/i18n/locale/pl/advancedFilters.json index d4f3228f3..8be415413 100644 --- a/app/javascript/dashboard/i18n/locale/pl/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/pl/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Nie istnieje", "is_greater_than": "Jest większe niż", "is_less_than": "Jest mniejsze niż", - "days_before": "Jest x dni przed" + "days_before": "Jest x dni przed", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "Prawda", diff --git a/app/javascript/dashboard/i18n/locale/pl/agentMgmt.json b/app/javascript/dashboard/i18n/locale/pl/agentMgmt.json index 2d9c8ff84..8e9546501 100644 --- a/app/javascript/dashboard/i18n/locale/pl/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pl/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Adres e-mail", "PLACEHOLDER": "Wprowadź adres e-mail agenta" }, + "AGENT_AVAILABILITY": { + "LABEL": "Dostępność", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Edytuj agenta" }, "BUTTON_TEXT": "Edytuj", diff --git a/app/javascript/dashboard/i18n/locale/pl/contact.json b/app/javascript/dashboard/i18n/locale/pl/contact.json index 140d611eb..d250ba001 100644 --- a/app/javascript/dashboard/i18n/locale/pl/contact.json +++ b/app/javascript/dashboard/i18n/locale/pl/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Wpisz nazwę firmy", "LABEL": "Nazwa firmy" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Nazwa kraju", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Usuń", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Wprowadź nazwę użytkownika Facebook", diff --git a/app/javascript/dashboard/i18n/locale/pl/conversation.json b/app/javascript/dashboard/i18n/locale/pl/conversation.json index 133fb00a0..61d046abe 100644 --- a/app/javascript/dashboard/i18n/locale/pl/conversation.json +++ b/app/javascript/dashboard/i18n/locale/pl/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copy", "DELETE": "Usuń", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Usuń", + "CANCEL": "Anuluj" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json index 77a65128a..925f3a509 100644 --- a/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Funkcje", "DISPLAY_FILE_PICKER": "Wyświetl selektor plików w widżecie", "DISPLAY_EMOJI_PICKER": "Wyświetl selektor emoji w widżecie", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Skrypt Messengera", diff --git a/app/javascript/dashboard/i18n/locale/pl/settings.json b/app/javascript/dashboard/i18n/locale/pl/settings.json index 298acad69..1b40cc7b8 100644 --- a/app/javascript/dashboard/i18n/locale/pl/settings.json +++ b/app/javascript/dashboard/i18n/locale/pl/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code copied to clipboard successfully" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/pt/advancedFilters.json b/app/javascript/dashboard/i18n/locale/pt/advancedFilters.json index d03741b12..d5f2bcf24 100644 --- a/app/javascript/dashboard/i18n/locale/pt/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/pt/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Não está presente", "is_greater_than": "É maior do que", "is_less_than": "É menor do que", - "days_before": "É x dias antes" + "days_before": "É x dias antes", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "Verdadeiro", diff --git a/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json b/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json index bcdd914d9..54fdb46a2 100644 --- a/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Endereço de e-mail", "PLACEHOLDER": "Por favor insira um endereço de e-mail do agente" }, + "AGENT_AVAILABILITY": { + "LABEL": "Disponibilidade", + "PLACEHOLDER": "Por favor, selecione um status de disponibilidade", + "ERROR": "Disponibilidade é necessária" + }, "SUBMIT": "Editar Agente" }, "BUTTON_TEXT": "Alterar", diff --git a/app/javascript/dashboard/i18n/locale/pt/contact.json b/app/javascript/dashboard/i18n/locale/pt/contact.json index c53a677ea..e77d02e66 100644 --- a/app/javascript/dashboard/i18n/locale/pt/contact.json +++ b/app/javascript/dashboard/i18n/locale/pt/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Digite o nome da empresa", "LABEL": "Nome da empresa" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Nome do País", + "SELECT_PLACEHOLDER": "Selecionar", + "REMOVE": "Excluir", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Digite o utilizador do Facebook", diff --git a/app/javascript/dashboard/i18n/locale/pt/conversation.json b/app/javascript/dashboard/i18n/locale/pt/conversation.json index 5425f1903..d310c3d3e 100644 --- a/app/javascript/dashboard/i18n/locale/pt/conversation.json +++ b/app/javascript/dashboard/i18n/locale/pt/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copiar", "DELETE": "excluir", "CREATE_A_CANNED_RESPONSE": "Adicionar às respostas prontas", - "TRANSLATE": "Traduzir" + "TRANSLATE": "Traduzir", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "excluir", + "CANCEL": "cancelar" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json index 52d68768a..2e3920d43 100644 --- a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Características", "DISPLAY_FILE_PICKER": "Mostrar o selecionador de ficheiros no widget", "DISPLAY_EMOJI_PICKER": "Mostrar seletor de emojis no widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Script do Messenger", diff --git a/app/javascript/dashboard/i18n/locale/pt/login.json b/app/javascript/dashboard/i18n/locale/pt/login.json index 01019109d..0582e5153 100644 --- a/app/javascript/dashboard/i18n/locale/pt/login.json +++ b/app/javascript/dashboard/i18n/locale/pt/login.json @@ -15,9 +15,9 @@ "UNAUTH": "Nome de usuário / senha incorreta. Por favor, tente novamente" }, "OAUTH": { - "GOOGLE_LOGIN": "Login with Google", - "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login", - "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address." + "GOOGLE_LOGIN": "Entrar com o Google", + "BUSINESS_ACCOUNTS_ONLY": "Use o endereço de e-mail da empresa para fazer login", + "NO_ACCOUNT_FOUND": "Não encontramos uma conta para seu endereço de e-mail." }, "FORGOT_PASSWORD": "Esqueceu-se da sua senha?", "CREATE_NEW_ACCOUNT": "Criar nova conta", diff --git a/app/javascript/dashboard/i18n/locale/pt/macros.json b/app/javascript/dashboard/i18n/locale/pt/macros.json index a0b394e20..effe8e768 100644 --- a/app/javascript/dashboard/i18n/locale/pt/macros.json +++ b/app/javascript/dashboard/i18n/locale/pt/macros.json @@ -1,16 +1,16 @@ { "MACROS": { "HEADER": "Macros", - "HEADER_BTN_TXT": "Add a new macro", - "HEADER_BTN_TXT_SAVE": "Save macro", - "LOADING": "Fetching macros", - "SIDEBAR_TXT": "

Macros

A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.

A macro can be helpful in 2 ways.

As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.

As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.

", - "ERROR": "Something went wrong. Please try again", - "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.", + "HEADER_BTN_TXT": "Adicionar uma nova macro", + "HEADER_BTN_TXT_SAVE": "Salvar macro", + "LOADING": "Procurando macros", + "SIDEBAR_TXT": "

Macros

Uma macro é um conjunto de ações salvas que ajudam os agentes concluírem facilmente as tarefas. Os agentes podem definir um conjunto de ações como marcar uma conversa com uma tag, enviar uma transcrição de e-mail, atualizando um atributo personalizado, etc. e eles podem executar essas ações com um único clique. Quando os agentes executam a macro, as ações são executadas sequencialmente na ordem em que foram

definidas. Macros melhoram a produtividade e aumentam a consistência em ações.

Uma macro pode ser útil de 2 maneiras.

Como um assistente do agente: Se um agente executa um conjunto de ações várias vezes, eles podem salvá-lo como uma macro e executar todas as ações juntas usando um único clique.

Como opção para integrar um membro da equipe: Todos os agentes devem realizar verificações/ações diferentes durante cada conversa. Integrar um novo membro da equipe de suporte será fácil se macros predefinidos estiverem disponíveis na conta. Em vez de descrever cada passo em detalhe, o gerente da equipe pode apontar para as macros usadas em diferentes cenários.

", + "ERROR": "Algo deu errado. Tente novamente", + "ORDER_INFO": "As macros serão executadas em ordem. Você pode reorganizá-las arrastando-as.", "ADD": { "FORM": { "NAME": { - "LABEL": "Macro name", + "LABEL": "Nome da macro", "PLACEHOLDER": "Enter a name for your macro", "ERROR": "Name is required for creating a macro" }, diff --git a/app/javascript/dashboard/i18n/locale/pt/settings.json b/app/javascript/dashboard/i18n/locale/pt/settings.json index e87a635ed..11cb7e3fd 100644 --- a/app/javascript/dashboard/i18n/locale/pt/settings.json +++ b/app/javascript/dashboard/i18n/locale/pt/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copiar", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Código copiado com sucesso para área de transferência" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/advancedFilters.json b/app/javascript/dashboard/i18n/locale/pt_BR/advancedFilters.json index f4be4342f..d83fa12e1 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Não está presente", "is_greater_than": "É maior que", "is_less_than": "É menor que", - "days_before": "É X dias antes" + "days_before": "É X dias antes", + "starts_with": "Começa com" }, "ATTRIBUTE_LABELS": { "TRUE": "Verdadeiro", @@ -55,7 +56,7 @@ "CUSTOM_VIEWS": { "ADD": { "TITLE": "Você quer salvar este filtro?", - "LABEL": "Nomear este filtro", + "LABEL": "Nomeie este filtro", "PLACEHOLDER": "Insira um nome para este filtro", "ERROR_MESSAGE": "O nome é obrigatório", "SAVE_BUTTON": "Salvar filtro", @@ -74,7 +75,7 @@ "MODAL": { "CONFIRM": { "TITLE": "Confirmar exclusão", - "MESSAGE": "Tem certeza que deseja excluir o filtro ? ", + "MESSAGE": "Tem certeza que deseja excluir o filtro?", "YES": "Sim, excluir", "NO": "Não, mantenha" } diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json index 021e66539..4ba866b9a 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Endereço de email", "PLACEHOLDER": "Por favor, insira um endereço de e-mail do agente" }, + "AGENT_AVAILABILITY": { + "LABEL": "Disponibilidade", + "PLACEHOLDER": "Por favor selecione a disponibilidade do agente", + "ERROR": "Disponibilidade é obrigatoria" + }, "SUBMIT": "Editar agente" }, "BUTTON_TEXT": "Alterar", diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/automation.json b/app/javascript/dashboard/i18n/locale/pt_BR/automation.json index 9f123f4a4..57d5c2243 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/automation.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/automation.json @@ -34,7 +34,7 @@ "CONDITION_BUTTON_LABEL": "Adicionar condição", "ACTION_BUTTON_LABEL": "Adicionar ação", "API": { - "SUCCESS_MESSAGE": "Automação adicionada com sucesso", + "SUCCESS_MESSAGE": "Regra de automação adicionada com sucesso", "ERROR_MESSAGE": "Não foi possível criar uma regra de automação, por favor, tente novamente mais tarde" } }, diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/contact.json b/app/javascript/dashboard/i18n/locale/pt_BR/contact.json index 5a8c85eba..838293c2c 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/contact.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Digite o nome da empresa", "LABEL": "Nome da empresa" }, + "COUNTRY": { + "PLACEHOLDER": "Digite o nome do país", + "LABEL": "Nome do País", + "SELECT_PLACEHOLDER": "Selecionar", + "REMOVE": "Excluir", + "SELECT_COUNTRY": "Selecione o país" + }, + "CITY": { + "PLACEHOLDER": "Digite o nome da cidade", + "LABEL": "Nome da cidade" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Digite o nome de usuário do Facebook", diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json b/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json index 1bb59f609..d9945f448 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copiar", "DELETE": "Excluir", "CREATE_A_CANNED_RESPONSE": "Adicionar às respostas prontas", - "TRANSLATE": "Traduzir" + "TRANSLATE": "Traduzir", + "COPY_PERMALINK": "Copiar link para a mensagem", + "LINK_COPIED": "URL da mensagem copiada para a área de transferência", + "DELETE_CONFIRMATION": { + "TITLE": "Você tem certeza que deseja excluir esta mensagem?", + "MESSAGE": "Você não pode desfazer essa ação", + "DELETE": "Excluir", + "CANCEL": "Cancelar" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json index b9dfadab4..282135f1b 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Funcionalidades", "DISPLAY_FILE_PICKER": "Exibir seletor de arquivos no widget", "DISPLAY_EMOJI_PICKER": "Exibir seletor de emoji no widget", - "ALLOW_END_CONVERSATION": "Permitir que usuários terminem a conversa a partir do widget" + "ALLOW_END_CONVERSATION": "Permitir que usuários terminem a conversa a partir do widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use o nome da caixa de entrada e avatar do bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Código Menssageiro ", diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/settings.json b/app/javascript/dashboard/i18n/locale/pt_BR/settings.json index 0e093ab26..fba54f79b 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/settings.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copiar", + "CODEPEN": "Abrir em CodePen", "COPY_SUCCESSFUL": "Código copiado para área de transferência com sucesso" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/ro/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ro/advancedFilters.json index b4d5ce726..a0f80f109 100644 --- a/app/javascript/dashboard/i18n/locale/ro/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/ro/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Nu este prezent", "is_greater_than": "Este mai mare decât", "is_less_than": "Este mai mică decât", - "days_before": "Este x zile înainte" + "days_before": "Este x zile înainte", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "Adevărat", diff --git a/app/javascript/dashboard/i18n/locale/ro/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ro/agentMgmt.json index 13b959d6b..b05723001 100644 --- a/app/javascript/dashboard/i18n/locale/ro/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ro/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Adresa Email", "PLACEHOLDER": "Vă rugăm să introduceți o adresă de e-mail a agentului" }, + "AGENT_AVAILABILITY": { + "LABEL": "Disponibilitate", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Editează agent" }, "BUTTON_TEXT": "Editare", diff --git a/app/javascript/dashboard/i18n/locale/ro/contact.json b/app/javascript/dashboard/i18n/locale/ro/contact.json index a9e2e7949..3e90b238b 100644 --- a/app/javascript/dashboard/i18n/locale/ro/contact.json +++ b/app/javascript/dashboard/i18n/locale/ro/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Introduceți numele companiei", "LABEL": "Nume companie" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Numele țării", + "SELECT_PLACEHOLDER": "Selectați", + "REMOVE": "Elimină", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Introdu numele de utilizator Facebook", diff --git a/app/javascript/dashboard/i18n/locale/ro/conversation.json b/app/javascript/dashboard/i18n/locale/ro/conversation.json index 01eb54696..d53702309 100644 --- a/app/javascript/dashboard/i18n/locale/ro/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ro/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copiază", "DELETE": "Şterge", "CREATE_A_CANNED_RESPONSE": "Adaugați la răspunsuri predefinite", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Şterge", + "CANCEL": "Renunță" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json index 7b4c8211b..278020b03 100644 --- a/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Caracteristici", "DISPLAY_FILE_PICKER": "Afișarea selectorului de fișiere pe widget", "DISPLAY_EMOJI_PICKER": "Afișarea selectorului de emoji pe widget", - "ALLOW_END_CONVERSATION": "Permite utilizatorilor să încheie conversația din widget" + "ALLOW_END_CONVERSATION": "Permite utilizatorilor să încheie conversația din widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Script Messenger", diff --git a/app/javascript/dashboard/i18n/locale/ro/settings.json b/app/javascript/dashboard/i18n/locale/ro/settings.json index 1f737b091..d0030add4 100644 --- a/app/javascript/dashboard/i18n/locale/ro/settings.json +++ b/app/javascript/dashboard/i18n/locale/ro/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copiază", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Cod copiat în clipboard cu succes" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/ru/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ru/advancedFilters.json index ba6fcc8bc..c9efd268c 100644 --- a/app/javascript/dashboard/i18n/locale/ru/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/ru/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Отсутствует", "is_greater_than": "Больше чем", "is_less_than": "Меньше чем", - "days_before": "x дней до" + "days_before": "x дней до", + "starts_with": "Начинается с" }, "ATTRIBUTE_LABELS": { "TRUE": "Истина", diff --git a/app/javascript/dashboard/i18n/locale/ru/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ru/agentMgmt.json index b8347e3ef..dc4a0897d 100644 --- a/app/javascript/dashboard/i18n/locale/ru/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ru/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Email", "PLACEHOLDER": "Пожалуйста введите email оператора" }, + "AGENT_AVAILABILITY": { + "LABEL": "Доступность", + "PLACEHOLDER": "Пожалуйста, выберите статус доступности", + "ERROR": "Availability is required" + }, "SUBMIT": "Редактировать оператора" }, "BUTTON_TEXT": "Редактировать", diff --git a/app/javascript/dashboard/i18n/locale/ru/contact.json b/app/javascript/dashboard/i18n/locale/ru/contact.json index 2f663ec1f..a464be292 100644 --- a/app/javascript/dashboard/i18n/locale/ru/contact.json +++ b/app/javascript/dashboard/i18n/locale/ru/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Введите название компании", "LABEL": "Название компании" }, + "COUNTRY": { + "PLACEHOLDER": "Введите страну", + "LABEL": "Страна", + "SELECT_PLACEHOLDER": "Выбрать", + "REMOVE": "Удалить", + "SELECT_COUNTRY": "Выберите страну" + }, + "CITY": { + "PLACEHOLDER": "Введите город", + "LABEL": "Город" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Введите имя пользователя Facebook", diff --git a/app/javascript/dashboard/i18n/locale/ru/conversation.json b/app/javascript/dashboard/i18n/locale/ru/conversation.json index dffe8a047..20322cf50 100644 --- a/app/javascript/dashboard/i18n/locale/ru/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ru/conversation.json @@ -135,8 +135,8 @@ } }, "UNDEFINED_VARIABLES": { - "TITLE": "Undefined variables", - "MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?", + "TITLE": "Неопределенные переменные", + "MESSAGE": "У Вас {undefinedVariablesCount} неопределённых переменных в сообщении: {undefinedVariables}. Вы действительно хотите отправить сообщение?", "CONFIRM": { "YES": "Отправить", "CANCEL": "Отменить" @@ -166,7 +166,15 @@ "COPY": "Копировать", "DELETE": "Удалить", "CREATE_A_CANNED_RESPONSE": "Добавить в шаблонные ответы", - "TRANSLATE": "Translate" + "TRANSLATE": "Перевести", + "COPY_PERMALINK": "Скопировать ссылку на сообщение", + "LINK_COPIED": "Ссылка на сообщение скопирована", + "DELETE_CONFIRMATION": { + "TITLE": "Вы действительно хотите удалить это сообщение?", + "MESSAGE": "Вы не можете отменить это действие", + "DELETE": "Удалить", + "CANCEL": "Отменить" + } } }, "EMAIL_TRANSCRIPT": { @@ -257,26 +265,26 @@ }, "CONVERSATION_PARTICIPANTS": { "SIDEBAR_MENU_TITLE": "Participating", - "SIDEBAR_TITLE": "Conversation participants", + "SIDEBAR_TITLE": "Участники диалога", "NO_RECORDS_FOUND": "Результаты не найдены", - "ADD_PARTICIPANTS": "Select participants", + "ADD_PARTICIPANTS": "Выберите участников", "REMANING_PARTICIPANTS_TEXT": "+%{count} others", "REMANING_PARTICIPANT_TEXT": "+%{count} other", "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.", "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.", "NO_PARTICIPANTS_TEXT": "No one is participating!.", - "WATCH_CONVERSATION": "Join conversation", + "WATCH_CONVERSATION": "Присоединиться к диалогу", "YOU_ARE_WATCHING": "You are participating", "API": { - "ERROR_MESSAGE": "Could not update, try again!", - "SUCCESS_MESSAGE": "Participants updated!" + "ERROR_MESSAGE": "Не удалось обновить, попробуйте снова!", + "SUCCESS_MESSAGE": "Участники обновлены!" } }, "TRANSLATE_MODAL": { - "TITLE": "View translated content", + "TITLE": "Просмотреть перевод", "DESC": "You can view the translated content in each langauge.", - "ORIGINAL_CONTENT": "Original Content", - "TRANSLATED_CONTENT": "Translated Content", + "ORIGINAL_CONTENT": "Оригинальное содержимое", + "TRANSLATED_CONTENT": "Перевод", "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content" } } diff --git a/app/javascript/dashboard/i18n/locale/ru/helpCenter.json b/app/javascript/dashboard/i18n/locale/ru/helpCenter.json index 5309509b2..e662d2e3c 100644 --- a/app/javascript/dashboard/i18n/locale/ru/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ru/helpCenter.json @@ -32,11 +32,11 @@ "IMAGE_UPLOAD": { "TITLE": "Загрузить изображение", "UPLOADING": "Загружаем...", - "SUCCESS": "Image uploaded successfully", - "ERROR": "Error while uploading image", - "ERROR_FILE_SIZE": "Image size should be less than {size}MB", - "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png", - "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000" + "SUCCESS": "Изображение успешно загружено", + "ERROR": "Ошибка при загрузке изображения", + "ERROR_FILE_SIZE": "Размер изображения должен быть меньше, чем {size}MB", + "ERROR_FILE_FORMAT": "Формат изображения должен быть jpg, jpeg или png", + "ERROR_FILE_DIMENSIONS": "Размеры изображения должны быть меньше, чем 2000 x 2000" } }, "ARTICLE_SETTINGS": { diff --git a/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json index 0303404c0..ec8990d26 100644 --- a/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json @@ -350,7 +350,7 @@ "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials." }, "MICROSOFT": { - "TITLE": "Microsoft Email", + "TITLE": "Почта Microsoft", "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.", "EMAIL_PLACEHOLDER": "Введите адрес электронной почты", "HELP": "Чтобы добавить учетную запись Microsoft в качестве канала, вам нужно авторизоваться в учетной записи Майкрософт, нажав на кнопку \"Войти с помощью Microsoft\" ", @@ -439,7 +439,8 @@ "LABEL": "Возможности", "DISPLAY_FILE_PICKER": "Показывать выбор файла на виджете", "DISPLAY_EMOJI_PICKER": "Показывать эмодзи на виджете", - "ALLOW_END_CONVERSATION": "Разрешить пользователям завершать разговор из виджета" + "ALLOW_END_CONVERSATION": "Разрешить пользователям завершать разговор из виджета", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Скрипт", @@ -474,8 +475,8 @@ "WHATSAPP_SECTION_SUBHEADER": "Этот ключ API используется для интеграции с API WhatsApp.", "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.", "WHATSAPP_SECTION_TITLE": "Ключ API", - "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key", - "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here", + "WHATSAPP_SECTION_UPDATE_TITLE": "Обновить ключ API", + "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Введите сюда новый ключ API", "WHATSAPP_SECTION_UPDATE_BUTTON": "Обновить", "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings" }, diff --git a/app/javascript/dashboard/i18n/locale/ru/integrations.json b/app/javascript/dashboard/i18n/locale/ru/integrations.json index 0cb997070..25293495a 100644 --- a/app/javascript/dashboard/i18n/locale/ru/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ru/integrations.json @@ -15,8 +15,8 @@ "MESSAGE_CREATED": "Сообщение создано", "MESSAGE_UPDATED": "Сообщение обновлено", "WEBWIDGET_TRIGGERED": "Виджет онлайн чата, открыт пользователем", - "CONTACT_CREATED": "Contact created", - "CONTACT_UPDATED": "Contact updated" + "CONTACT_CREATED": "Контакт создан", + "CONTACT_UPDATED": "Контакт обновлен" } }, "END_POINT": { diff --git a/app/javascript/dashboard/i18n/locale/ru/login.json b/app/javascript/dashboard/i18n/locale/ru/login.json index e4268bd86..3ec6d96e5 100644 --- a/app/javascript/dashboard/i18n/locale/ru/login.json +++ b/app/javascript/dashboard/i18n/locale/ru/login.json @@ -15,7 +15,7 @@ "UNAUTH": "Неверное имя пользователя / пароль. Пожалуйста, попробуйте еще раз" }, "OAUTH": { - "GOOGLE_LOGIN": "Login with Google", + "GOOGLE_LOGIN": "Войти с помощью Google", "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login", "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address." }, diff --git a/app/javascript/dashboard/i18n/locale/ru/report.json b/app/javascript/dashboard/i18n/locale/ru/report.json index 42d9d013f..10b725d84 100644 --- a/app/javascript/dashboard/i18n/locale/ru/report.json +++ b/app/javascript/dashboard/i18n/locale/ru/report.json @@ -451,12 +451,12 @@ } }, "DAYS_OF_WEEK": { - "SUNDAY": "Sunday", - "MONDAY": "Monday", - "TUESDAY": "Tuesday", - "WEDNESDAY": "Wednesday", - "THURSDAY": "Thursday", - "FRIDAY": "Friday", - "SATURDAY": "Saturday" + "SUNDAY": "Воскресенье", + "MONDAY": "Понедельник", + "TUESDAY": "Вторник", + "WEDNESDAY": "Среда", + "THURSDAY": "Четверг", + "FRIDAY": "Пятница", + "SATURDAY": "Суббота" } } diff --git a/app/javascript/dashboard/i18n/locale/ru/settings.json b/app/javascript/dashboard/i18n/locale/ru/settings.json index ad0e742ba..afe715e21 100644 --- a/app/javascript/dashboard/i18n/locale/ru/settings.json +++ b/app/javascript/dashboard/i18n/locale/ru/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Копировать", + "CODEPEN": "Открыть в CodePen", "COPY_SUCCESSFUL": "Код скопирован в буфер обмена" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/ru/signup.json b/app/javascript/dashboard/i18n/locale/ru/signup.json index f14fc0624..2d3104a4b 100644 --- a/app/javascript/dashboard/i18n/locale/ru/signup.json +++ b/app/javascript/dashboard/i18n/locale/ru/signup.json @@ -6,7 +6,7 @@ "TESTIMONIAL_CONTENT": "Вы находитесь на расстоянии всего одного шага от привлечения своих клиентов, удержав их и находя новые.", "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy", "OAUTH": { - "GOOGLE_SIGNUP": "Sign up with Google" + "GOOGLE_SIGNUP": "Регистрация через Google" }, "COMPANY_NAME": { "LABEL": "Название компании", diff --git a/app/javascript/dashboard/i18n/locale/sh/advancedFilters.json b/app/javascript/dashboard/i18n/locale/sh/advancedFilters.json new file mode 100644 index 000000000..a32c1bd9d --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/advancedFilters.json @@ -0,0 +1,94 @@ +{ + "FILTER": { + "TITLE": "Filter Conversations", + "SUBTITLE": "Add filters below and hit 'Apply filters' to filter conversations.", + "ADD_NEW_FILTER": "Add Filter", + "FILTER_DELETE_ERROR": "You should have atleast one filter to save", + "SUBMIT_BUTTON_LABEL": "Apply filters", + "CANCEL_BUTTON_LABEL": "Cancel", + "CLEAR_BUTTON_LABEL": "Clear Filters", + "EMPTY_VALUE_ERROR": "Value is required", + "TOOLTIP_LABEL": "Filter conversations", + "QUERY_DROPDOWN_LABELS": { + "AND": "AND", + "OR": "OR" + }, + "OPERATOR_LABELS": { + "equal_to": "Equal to", + "not_equal_to": "Not equal to", + "contains": "Contains", + "does_not_contain": "Does not contain", + "is_present": "Is present", + "is_not_present": "Is not present", + "is_greater_than": "Is greater than", + "is_less_than": "Is lesser than", + "days_before": "Is x days before", + "starts_with": "Starts with" + }, + "ATTRIBUTE_LABELS": { + "TRUE": "True", + "FALSE": "False" + }, + "ATTRIBUTES": { + "STATUS": "Status", + "ASSIGNEE_NAME": "Assignee Name", + "INBOX_NAME": "Inbox Name", + "TEAM_NAME": "Team Name", + "CONVERSATION_IDENTIFIER": "Conversation Identifier", + "CAMPAIGN_NAME": "Campaign Name", + "LABELS": "Labels", + "BROWSER_LANGUAGE": "Browser Language", + "COUNTRY_NAME": "Country Name", + "REFERER_LINK": "Referer link", + "CUSTOM_ATTRIBUTE_LIST": "List", + "CUSTOM_ATTRIBUTE_TEXT": "Text", + "CUSTOM_ATTRIBUTE_NUMBER": "Number", + "CUSTOM_ATTRIBUTE_LINK": "Link", + "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox", + "CREATED_AT": "Created At", + "LAST_ACTIVITY": "Last Activity" + }, + "GROUPS": { + "STANDARD_FILTERS": "Standard Filters", + "ADDITIONAL_FILTERS": "Additional Filters", + "CUSTOM_ATTRIBUTES": "Custom Attributes" + }, + "CUSTOM_VIEWS": { + "ADD": { + "TITLE": "Do you want to save this filter?", + "LABEL": "Name this filter", + "PLACEHOLDER": "Enter a name for this filter", + "ERROR_MESSAGE": "Name is required", + "SAVE_BUTTON": "Save filter", + "CANCEL_BUTTON": "Cancel", + "API_FOLDERS": { + "SUCCESS_MESSAGE": "Folder created successfully", + "ERROR_MESSAGE": "Error while creating folder" + }, + "API_SEGMENTS": { + "SUCCESS_MESSAGE": "Segment created successfully", + "ERROR_MESSAGE": "Error while creating segment" + } + }, + "DELETE": { + "DELETE_BUTTON": "Delete filter", + "MODAL": { + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete the filter ", + "YES": "Yes, Delete", + "NO": "No, Keep it" + } + }, + "API_FOLDERS": { + "SUCCESS_MESSAGE": "Folder deleted successfully", + "ERROR_MESSAGE": "Error while deleting folder" + }, + "API_SEGMENTS": { + "SUCCESS_MESSAGE": "Segment deleted successfully", + "ERROR_MESSAGE": "Error while deleting segment" + } + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/agentBots.json b/app/javascript/dashboard/i18n/locale/sh/agentBots.json new file mode 100644 index 000000000..5403bb18c --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/agentBots.json @@ -0,0 +1,73 @@ +{ + "AGENT_BOTS": { + "HEADER": "Bots", + "LOADING_EDITOR": "Loading Editor...", + "HEADER_BTN_TXT": "Add Bot Configuration", + "SIDEBAR_TXT": "

Agent Bots

Agent bots allows you to automate the conversations

", + "CSML_BOT_EDITOR": { + "NAME": { + "LABEL": "Bot Name", + "PLACEHOLDER": "Give your bot a name", + "ERROR": "Bot name is required" + }, + "DESCRIPTION": { + "LABEL": "Bot Description", + "PLACEHOLDER": "What does this bot do?" + }, + "BOT_CONFIG": { + "ERROR": "Please enter your CSML bot configuration above", + "API_ERROR": "Your CSML configuration is invalid, please fix it and try again." + }, + "SUBMIT": "Validate and save" + }, + "BOT_CONFIGURATION": { + "TITLE": "Select an agent bot", + "DESC": "You can set an agent bot from the list to this inbox. The bot can initially handle the conversation and transfer it to an agent when needed.", + "SUBMIT": "Update", + "DISCONNECT": "Disconnect Bot", + "SUCCESS_MESSAGE": "Successfully updated the agent bot", + "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot", + "ERROR_MESSAGE": "Could not update the agent bot, please try again later", + "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot, please try again later", + "SELECT_PLACEHOLDER": "Select Bot" + }, + "ADD": { + "TITLE": "Configure new bot", + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Bot added successfully", + "ERROR_MESSAGE": "Could not add bot, Please try again later" + } + }, + "LIST": { + "404": "No Bots found, you can create a bot by clicking the 'Configure new bot' Button ↗", + "LOADING": "Fetching Bots...", + "TYPE": "Bot Type" + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "TITLE": "Delete Bot", + "SUBMIT": "Delete", + "CANCEL_BUTTON_TEXT": "Cancel", + "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible", + "API": { + "SUCCESS_MESSAGE": "Bot deleted successfully", + "ERROR_MESSAGE": "Could not able to delete bot, Please try again later" + } + }, + "EDIT": { + "BUTTON_TEXT": "Edit", + "LOADING": "Fetching Bots...", + "TITLE": "Edit Bot", + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Bot updated successfully", + "ERROR_MESSAGE": "Could not update bot, Please try again later" + } + }, + "TYPES": { + "WEBHOOK": "Webhook Bot", + "CSML": "CSML Bot" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/agentMgmt.json b/app/javascript/dashboard/i18n/locale/sh/agentMgmt.json new file mode 100644 index 000000000..b44e74542 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/agentMgmt.json @@ -0,0 +1,118 @@ +{ + "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" + }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, + "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 results found." + }, + "MULTI_SELECTOR": { + "PLACEHOLDER": "None", + "TITLE": { + "AGENT": "Select agent", + "TEAM": "Select team" + }, + "SEARCH": { + "NO_RESULTS": { + "AGENT": "No agents found", + "TEAM": "No teams found" + }, + "PLACEHOLDER": { + "AGENT": "Search agents", + "TEAM": "Search teams" + } + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/sh/attributesMgmt.json new file mode 100644 index 000000000..2a9ea7de3 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/attributesMgmt.json @@ -0,0 +1,99 @@ +{ + "ATTRIBUTES_MGMT": { + "HEADER": "Custom Attributes", + "HEADER_BTN_TXT": "Add Custom Attribute", + "LOADING": "Fetching custom attributes", + "SIDEBAR_TXT": "

Custom Attributes

A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.

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

", + "ADD": { + "TITLE": "Add Custom Attribute", + "SUBMIT": "Create", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "NAME": { + "LABEL": "Display Name", + "PLACEHOLDER": "Enter custom attribute display name", + "ERROR": "Name is required" + }, + "DESC": { + "LABEL": "Description", + "PLACEHOLDER": "Enter custom attribute description", + "ERROR": "Description is required" + }, + "MODEL": { + "LABEL": "Applies to", + "PLACEHOLDER": "Please select one", + "ERROR": "Model is required" + }, + "TYPE": { + "LABEL": "Type", + "PLACEHOLDER": "Please select a type", + "ERROR": "Type is required", + "LIST": { + "LABEL": "List Values", + "PLACEHOLDER": "Please enter value and press enter key", + "ERROR": "Must have at least one value" + } + }, + "KEY": { + "LABEL": "Key", + "PLACEHOLDER": "Enter custom attribute key", + "ERROR": "Key is required", + "IN_VALID": "Invalid key" + } + }, + "API": { + "SUCCESS_MESSAGE": "Custom Attribute added successfully!", + "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later." + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Custom Attribute deleted successfully.", + "ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again." + }, + "CONFIRM": { + "TITLE": "Are you sure want to delete - %{attributeName}", + "PLACE_HOLDER": "Please type {attributeName} to confirm", + "MESSAGE": "Deleting will remove the custom attribute", + "YES": "Delete ", + "NO": "Cancel" + } + }, + "EDIT": { + "TITLE": "Edit Custom Attribute", + "UPDATE_BUTTON_TEXT": "Update", + "TYPE": { + "LIST": { + "LABEL": "List Values", + "PLACEHOLDER": "Please enter values and press enter key" + } + }, + "API": { + "SUCCESS_MESSAGE": "Custom Attribute updated successfully", + "ERROR_MESSAGE": "There was an error updating custom attribute, please try again" + } + }, + "TABS": { + "HEADER": "Custom Attributes", + "CONVERSATION": "Conversation", + "CONTACT": "Contact" + }, + "LIST": { + "TABLE_HEADER": [ + "Name", + "Description", + "Type", + "Key" + ], + "BUTTONS": { + "EDIT": "Edit", + "DELETE": "Delete" + }, + "EMPTY_RESULT": { + "404": "There are no custom attributes created", + "NOT_FOUND": "There are no custom attributes configured" + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/automation.json b/app/javascript/dashboard/i18n/locale/sh/automation.json new file mode 100644 index 000000000..469df1c24 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/automation.json @@ -0,0 +1,118 @@ +{ + "AUTOMATION": { + "HEADER": "Automations", + "HEADER_BTN_TXT": "Add Automation Rule", + "LOADING": "Fetching automation rules", + "SIDEBAR_TXT": "

Automation Rules

Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.

", + "ADD": { + "TITLE": "Add Automation Rule", + "SUBMIT": "Create", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "NAME": { + "LABEL": "Rule Name", + "PLACEHOLDER": "Enter rule name", + "ERROR": "Name is required" + }, + "DESC": { + "LABEL": "Description", + "PLACEHOLDER": "Enter rule description", + "ERROR": "Description is required" + }, + "EVENT": { + "LABEL": "Event", + "PLACEHOLDER": "Please select one", + "ERROR": "Event is required" + }, + "CONDITIONS": { + "LABEL": "Conditions" + }, + "ACTIONS": { + "LABEL": "Actions" + } + }, + "CONDITION_BUTTON_LABEL": "Add Condition", + "ACTION_BUTTON_LABEL": "Add Action", + "API": { + "SUCCESS_MESSAGE": "Automation rule added successfully", + "ERROR_MESSAGE": "Could not able to create a automation rule, Please try again later" + } + }, + "LIST": { + "TABLE_HEADER": [ + "Name", + "Description", + "Active", + "Created on" + ], + "404": "No automation rules found" + }, + "DELETE": { + "TITLE": "Delete Automation Rule", + "SUBMIT": "Delete", + "CANCEL_BUTTON_TEXT": "Cancel", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + }, + "API": { + "SUCCESS_MESSAGE": "Automation rule deleted successfully", + "ERROR_MESSAGE": "Could not able to delete a automation rule, Please try again later" + } + }, + "EDIT": { + "TITLE": "Edit Automation Rule", + "SUBMIT": "Update", + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Automation rule updated successfully", + "ERROR_MESSAGE": "Could not update automation rule, Please try again later" + } + }, + "CLONE": { + "TOOLTIP": "Clone", + "API": { + "SUCCESS_MESSAGE": "Automation cloned successfully", + "ERROR_MESSAGE": "Could not clone automation rule, Please try again later" + } + }, + "FORM": { + "EDIT": "Edit", + "CREATE": "Create", + "DELETE": "Delete", + "CANCEL": "Cancel", + "RESET_MESSAGE": "Changing event type will reset the conditions and events you have added below" + }, + "CONDITION": { + "DELETE_MESSAGE": "You need to have atleast one condition to save", + "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes", + "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes" + }, + "ACTION": { + "DELETE_MESSAGE": "You need to have atleast one action to save", + "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here", + "TEAM_DROPDOWN_PLACEHOLDER": "Select teams" + }, + "TOGGLE": { + "ACTIVATION_TITLE": "Activate Automation Rule", + "DEACTIVATION_TITLE": "Deactivate Automation Rule", + "ACTIVATION_DESCRIPTION": "This action will activate the automation rule '{automationName}'. Are you sure you want to proceed?", + "DEACTIVATION_DESCRIPTION": "This action will deactivate the automation rule '{automationName}'. Are you sure you want to proceed?", + "ACTIVATION_SUCCESFUL": "Automation Rule Activated Successfully", + "DEACTIVATION_SUCCESFUL": "Automation Rule Deactivated Successfully", + "ACTIVATION_ERROR": "Could not Activate Automation, Please try again later", + "DEACTIVATION_ERROR": "Could not Deactivate Automation, Please try again later", + "CONFIRMATION_LABEL": "Yes", + "CANCEL_LABEL": "No" + }, + "ATTACHMENT": { + "UPLOAD_ERROR": "Could not upload attachment, Please try again", + "LABEL_IDLE": "Upload Attachment", + "LABEL_UPLOADING": "Uploading...", + "LABEL_UPLOADED": "Successfully Uploaded", + "LABEL_UPLOAD_FAILED": "Upload Failed" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/bulkActions.json b/app/javascript/dashboard/i18n/locale/sh/bulkActions.json new file mode 100644 index 000000000..d5145f1bb --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/bulkActions.json @@ -0,0 +1,40 @@ +{ + "BULK_ACTION": { + "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected", + "AGENT_SELECT_LABEL": "Select Agent", + "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to", + "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?", + "GO_BACK_LABEL": "Go back", + "ASSIGN_LABEL": "Assign", + "YES": "Yes", + "ASSIGN_AGENT_TOOLTIP": "Assign Agent", + "ASSIGN_TEAM_TOOLTIP": "Assign team", + "ASSIGN_SUCCESFUL": "Conversations assigned successfully", + "ASSIGN_FAILED": "Failed to assign conversations, please try again", + "RESOLVE_SUCCESFUL": "Conversations resolved successfully", + "RESOLVE_FAILED": "Failed to resolve conversations, please try again", + "ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.", + "AGENT_LIST_LOADING": "Loading Agents", + "UPDATE": { + "CHANGE_STATUS": "Change status", + "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply", + "UPDATE_SUCCESFUL": "Conversation status updated successfully.", + "UPDATE_FAILED": "Failed to update conversations, please try again" + }, + "LABELS": { + "ASSIGN_LABELS": "Assign Labels", + "NO_LABELS_FOUND": "No labels found for", + "ASSIGN_SELECTED_LABELS": "Assign selected labels", + "ASSIGN_SUCCESFUL": "Labels assigned successfully", + "ASSIGN_FAILED": "Failed to assign labels, please try again" + }, + "TEAMS": { + "TEAM_SELECT_LABEL": "Select Team", + "NONE": "None", + "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", + "ASSIGN_SELECTED_TEAMS": "Assign selected team", + "ASSIGN_SUCCESFUL": "Teams assiged successfully", + "ASSIGN_FAILED": "Failed to assign team, please try again" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/campaign.json b/app/javascript/dashboard/i18n/locale/sh/campaign.json new file mode 100644 index 000000000..bbcc463ee --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/campaign.json @@ -0,0 +1,126 @@ +{ + "CAMPAIGN": { + "HEADER": "Campaigns", + "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.", + "HEADER_BTN_TXT": { + "ONE_OFF": "Create a one off campaign", + "ONGOING": "Create a ongoing campaign" + }, + "ADD": { + "TITLE": "Create a campaign", + "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.", + "CANCEL_BUTTON_TEXT": "Cancel", + "CREATE_BUTTON_TEXT": "Create", + "FORM": { + "TITLE": { + "LABEL": "Title", + "PLACEHOLDER": "Please enter the title of campaign", + "ERROR": "Title is required" + }, + "SCHEDULED_AT": { + "LABEL": "Scheduled time", + "PLACEHOLDER": "Please select the time", + "CONFIRM": "Confirm", + "ERROR": "Scheduled time is required" + }, + "AUDIENCE": { + "LABEL": "Audience", + "PLACEHOLDER": "Select the customer labels", + "ERROR": "Audience is required" + }, + "INBOX": { + "LABEL": "Select Inbox", + "PLACEHOLDER": "Select Inbox", + "ERROR": "Inbox is required" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Please enter the message of campaign", + "ERROR": "Message is required" + }, + "SENT_BY": { + "LABEL": "Sent by", + "PLACEHOLDER": "Please select the the content of campaign", + "ERROR": "Sender is required" + }, + "END_POINT": { + "LABEL": "URL", + "PLACEHOLDER": "Please enter the URL", + "ERROR": "Please enter a valid URL" + }, + "TIME_ON_PAGE": { + "LABEL": "Time on page(Seconds)", + "PLACEHOLDER": "Please enter the time", + "ERROR": "Time on page is required" + }, + "ENABLED": "Enable campaign", + "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours", + "SUBMIT": "Add Campaign" + }, + "API": { + "SUCCESS_MESSAGE": "Campaign created successfully", + "ERROR_MESSAGE": "There was an error. Please try again." + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete?", + "YES": "Yes, Delete ", + "NO": "No, Keep " + }, + "API": { + "SUCCESS_MESSAGE": "Campaign deleted successfully", + "ERROR_MESSAGE": "Could not delete the campaign. Please try again later." + } + }, + "EDIT": { + "TITLE": "Edit campaign", + "UPDATE_BUTTON_TEXT": "Update", + "API": { + "SUCCESS_MESSAGE": "Campaign updated successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + }, + "LIST": { + "LOADING_MESSAGE": "Loading campaigns...", + "404": "There are no campaigns created for this inbox.", + "TABLE_HEADER": { + "TITLE": "Title", + "MESSAGE": "Message", + "INBOX": "Inbox", + "STATUS": "Status", + "SENDER": "Sender", + "URL": "URL", + "SCHEDULED_AT": "Scheduled time", + "TIME_ON_PAGE": "Time(Seconds)", + "CREATED_AT": "Created at" + }, + "BUTTONS": { + "ADD": "Add", + "EDIT": "Edit", + "DELETE": "Delete" + }, + "STATUS": { + "ENABLED": "Enabled", + "DISABLED": "Disabled", + "COMPLETED": "Completed", + "ACTIVE": "Active" + }, + "SENDER": { + "BOT": "Bot" + } + }, + "ONE_OFF": { + "HEADER": "One off campaigns", + "404": "There are no one off campaigns created", + "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns" + }, + "ONGOING": { + "HEADER": "Ongoing campaigns", + "404": "There are no ongoing campaigns created", + "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/sh/cannedMgmt.json new file mode 100644 index 000000000..9c14f5a52 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/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 short code", + "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/sh/chatlist.json b/app/javascript/dashboard/i18n/locale/sh/chatlist.json new file mode 100644 index 000000000..b96cfb976 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/chatlist.json @@ -0,0 +1,71 @@ +{ + "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", + "MENTION_HEADING": "Mentions", + "UNATTENDED_HEADING": "Unattended", + "SEARCH": { + "INPUT": "Search for People, Chats, Saved Replies .." + }, + "FILTER_ALL": "All", + "ASSIGNEE_TYPE_TABS": { + "me": "Mine", + "unassigned": "Unassigned", + "all": "All" + }, + "CHAT_STATUS_FILTER_ITEMS": { + "open": { + "TEXT": "Open" + }, + "resolved": { + "TEXT": "Resolved" + }, + "pending": { + "TEXT": "Pending" + }, + "snoozed": { + "TEXT": "Snoozed" + }, + "all": { + "TEXT": "All" + } + }, + "ATTACHMENTS": { + "image": { + "CONTENT": "Picture message" + }, + "audio": { + "CONTENT": "Audio message" + }, + "video": { + "CONTENT": "Video message" + }, + "file": { + "CONTENT": "File Attachment" + }, + "location": { + "CONTENT": "Location" + }, + "fallback": { + "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", + "LINK_TO_STORY": "Go to instagram story", + "SENT": "Sent successfully", + "READ": "Read successfully", + "DELIVERED": "Delivered successfully", + "NO_MESSAGES": "No Messages", + "NO_CONTENT": "No content available", + "HIDE_QUOTED_TEXT": "Hide Quoted Text", + "SHOW_QUOTED_TEXT": "Show Quoted Text", + "MESSAGE_READ": "Read" + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/contact.json b/app/javascript/dashboard/i18n/locale/sh/contact.json new file mode 100644 index 000000000..9191698d8 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/contact.json @@ -0,0 +1,360 @@ +{ + "CONTACT_PANEL": { + "NOT_AVAILABLE": "Not Available", + "EMAIL_ADDRESS": "Email Address", + "PHONE_NUMBER": "Phone number", + "IDENTIFIER": "Identifier", + "COPY_SUCCESSFUL": "Copied to clipboard successfully", + "COMPANY": "Company", + "LOCATION": "Location", + "BROWSER_LANGUAGE": "Browser Language", + "CONVERSATION_TITLE": "Conversation Details", + "VIEW_PROFILE": "View Profile", + "BROWSER": "Browser", + "OS": "Operating System", + "INITIATED_FROM": "Initiated from", + "INITIATED_AT": "Initiated at", + "IP_ADDRESS": "IP Address", + "CREATED_AT_LABEL": "Created", + "NEW_MESSAGE": "New message", + "CONVERSATIONS": { + "NO_RECORDS_FOUND": "There are no previous conversations associated to this contact.", + "TITLE": "Previous Conversations" + }, + "LABELS": { + "CONTACT": { + "TITLE": "Contact Labels", + "ERROR": "Couldn't update labels" + }, + "CONVERSATION": { + "TITLE": "Conversation Labels", + "ADD_BUTTON": "Add Labels" + }, + "LABEL_SELECT": { + "TITLE": "Add Labels", + "PLACEHOLDER": "Search labels", + "NO_RESULT": "No labels found" + } + }, + "MERGE_CONTACT": "Merge contact", + "CONTACT_ACTIONS": "Contact actions", + "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", + "SIDEBAR_SECTIONS": { + "CUSTOM_ATTRIBUTES": "Custom Attributes", + "CONTACT_LABELS": "Contact Labels", + "PREVIOUS_CONVERSATIONS": "Previous Conversations" + } + }, + "EDIT_CONTACT": { + "BUTTON_LABEL": "Edit Contact", + "TITLE": "Edit contact", + "DESC": "Edit contact details" + }, + "CREATE_CONTACT": { + "BUTTON_LABEL": "New Contact", + "TITLE": "Create new contact", + "DESC": "Add basic information details about the contact." + }, + "IMPORT_CONTACTS": { + "BUTTON_LABEL": "Import", + "TITLE": "Import Contacts", + "DESC": "Import contacts through a CSV file.", + "DOWNLOAD_LABEL": "Download a sample csv.", + "FORM": { + "LABEL": "CSV File", + "SUBMIT": "Import", + "CANCEL": "Cancel" + }, + "SUCCESS_MESSAGE": "Contacts saved successfully", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "DELETE_NOTE": { + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you want sure to delete this note?", + "YES": "Yes, Delete it", + "NO": "No, Keep it" + } + }, + "DELETE_CONTACT": { + "BUTTON_LABEL": "Delete Contact", + "TITLE": "Delete contact", + "DESC": "Delete contact details", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete", + "NO": "No, Keep" + }, + "API": { + "SUCCESS_MESSAGE": "Contact deleted successfully", + "ERROR_MESSAGE": "Could not delete contact. Please try again later." + } + }, + "CONTACT_FORM": { + "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", + "DUPLICATE": "This email address is in use for another contact.", + "ERROR": "Please enter a valid email address." + }, + "PHONE_NUMBER": { + "PLACEHOLDER": "Enter the phone number of the contact", + "LABEL": "Phone Number", + "HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]", + "ERROR": "Phone number should be either empty or of E.164 format", + "DUPLICATE": "This phone number is in use for another contact." + }, + "LOCATION": { + "PLACEHOLDER": "Enter the location of the contact", + "LABEL": "Location" + }, + "COMPANY_NAME": { + "PLACEHOLDER": "Enter the company name", + "LABEL": "Company Name" + }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City 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" + } + } + }, + "DELETE_AVATAR": { + "API": { + "SUCCESS_MESSAGE": "Contact avatar deleted successfully", + "ERROR_MESSAGE": "Could not delete the contact avatar. Please try again later." + } + }, + "SUCCESS_MESSAGE": "Contact saved successfully", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "NEW_CONVERSATION": { + "BUTTON_LABEL": "Start conversation", + "TITLE": "New conversation", + "DESC": "Start a new conversation by sending a new message.", + "NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.", + "FORM": { + "TO": { + "LABEL": "To" + }, + "INBOX": { + "LABEL": "Inbox", + "ERROR": "Select an inbox" + }, + "SUBJECT": { + "LABEL": "Subject", + "PLACEHOLDER": "Subject", + "ERROR": "Subject can't be empty" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Write your message here", + "ERROR": "Message can't be empty" + }, + "SUBMIT": "Send message", + "CANCEL": "Cancel", + "SUCCESS_MESSAGE": "Message sent!", + "GO_TO_CONVERSATION": "View", + "ERROR_MESSAGE": "Couldn't send! try again" + } + }, + "CONTACTS_PAGE": { + "HEADER": "Contacts", + "FIELDS": "Contact fields", + "SEARCH_BUTTON": "Search", + "SEARCH_INPUT_PLACEHOLDER": "Search for contacts", + "FILTER_CONTACTS": "Filter", + "FILTER_CONTACTS_SAVE": "Save filter", + "FILTER_CONTACTS_DELETE": "Delete filter", + "LIST": { + "LOADING_MESSAGE": "Loading contacts...", + "404": "No contacts matches your search 🔍", + "NO_CONTACTS": "There are no available contacts", + "TABLE_HEADER": { + "NAME": "Name", + "PHONE_NUMBER": "Phone Number", + "CONVERSATIONS": "Conversations", + "LAST_ACTIVITY": "Last Activity", + "CREATED_AT": "Created At", + "COUNTRY": "Country", + "CITY": "City", + "SOCIAL_PROFILES": "Social Profiles", + "COMPANY": "Company", + "EMAIL_ADDRESS": "Email Address" + }, + "VIEW_DETAILS": "View details" + } + }, + "CONTACT_PROFILE": { + "BACK_BUTTON": "Contacts", + "LOADING": "Loading contact profile..." + }, + "REMINDER": { + "ADD_BUTTON": { + "BUTTON": "Add", + "TITLE": "Shift + Enter to create a task" + }, + "FOOTER": { + "DUE_DATE": "Due date", + "LABEL_TITLE": "Set type" + } + }, + "NOTES": { + "FETCHING_NOTES": "Fetching notes...", + "NOT_AVAILABLE": "There are no notes created for this contact", + "HEADER": { + "TITLE": "Notes" + }, + "LIST": { + "LABEL": "added a note" + }, + "ADD": { + "BUTTON": "Add", + "PLACEHOLDER": "Add a note", + "TITLE": "Shift + Enter to create a note" + }, + "CONTENT_HEADER": { + "DELETE": "Delete note" + } + }, + "EVENTS": { + "HEADER": { + "TITLE": "Activities" + }, + "BUTTON": { + "PILL_BUTTON_NOTES": "notes", + "PILL_BUTTON_EVENTS": "events", + "PILL_BUTTON_CONVO": "conversations" + } + }, + "CUSTOM_ATTRIBUTES": { + "ADD_BUTTON_TEXT": "Add attributes", + "BUTTON": "Add custom attribute", + "NOT_AVAILABLE": "There are no custom attributes available for this contact.", + "COPY_SUCCESSFUL": "Copied to clipboard successfully", + "ACTIONS": { + "COPY": "Copy attribute", + "DELETE": "Delete attribute", + "EDIT": "Edit attribute" + }, + "ADD": { + "TITLE": "Create custom attribute", + "DESC": "Add custom information to this contact." + }, + "FORM": { + "CREATE": "Add attribute", + "CANCEL": "Cancel", + "NAME": { + "LABEL": "Custom attribute name", + "PLACEHOLDER": "Eg: shopify id", + "ERROR": "Invalid custom attribute name" + }, + "VALUE": { + "LABEL": "Attribute value", + "PLACEHOLDER": "Eg: 11901 " + }, + "ADD": { + "TITLE": "Create new attribute ", + "SUCCESS": "Attribute added successfully", + "ERROR": "Unable to add attribute. Please try again later" + }, + "UPDATE": { + "SUCCESS": "Attribute updated successfully", + "ERROR": "Unable to update attribute. Please try again later" + }, + "DELETE": { + "SUCCESS": "Attribute deleted successfully", + "ERROR": "Unable to delete attribute. Please try again later" + }, + "ATTRIBUTE_SELECT": { + "TITLE": "Add attributes", + "PLACEHOLDER": "Search attributes", + "NO_RESULT": "No attributes found" + }, + "ATTRIBUTE_TYPE": { + "LIST": { + "PLACEHOLDER": "Select value", + "SEARCH_INPUT_PLACEHOLDER": "Search value", + "NO_RESULT": "No result found" + } + } + }, + "VALIDATIONS": { + "REQUIRED": "Valid value is required", + "INVALID_URL": "Invalid URL" + } + }, + "MERGE_CONTACTS": { + "TITLE": "Merge contacts", + "DESCRIPTION": "Merge contacts to combine two profiles into one, including all attributes and conversations. In case of conflict, the Primary contact’ s attributes will take precedence.", + "PRIMARY": { + "TITLE": "Primary contact", + "HELP_LABEL": "To be kept" + }, + "CHILD": { + "TITLE": "Contact to merge", + "PLACEHOLDER": "Search for a contact", + "HELP_LABEL": "To be deleted" + }, + "SUMMARY": { + "TITLE": "Summary", + "DELETE_WARNING": "Contact of %{childContactName} will be deleted.", + "ATTRIBUTE_WARNING": "Contact details of %{childContactName} will be copied to %{primaryContactName}." + }, + "SEARCH": { + "ERROR": "ERROR_MESSAGE" + }, + "FORM": { + "SUBMIT": " Merge contacts", + "CANCEL": "Cancel", + "CHILD_CONTACT": { + "ERROR": "Select a child contact to merge" + }, + "SUCCESS_MESSAGE": "Contact merged successfully", + "ERROR_MESSAGE": "Could not merge contacts, try again!" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/contactFilters.json b/app/javascript/dashboard/i18n/locale/sh/contactFilters.json new file mode 100644 index 000000000..3f84a8476 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/contactFilters.json @@ -0,0 +1,50 @@ +{ + "CONTACTS_FILTER": { + "TITLE": "Filter Contacts", + "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.", + "ADD_NEW_FILTER": "Add Filter", + "CLEAR_ALL_FILTERS": "Clear All Filters", + "FILTER_DELETE_ERROR": "You should have atleast one filter to save", + "SUBMIT_BUTTON_LABEL": "Submit", + "CANCEL_BUTTON_LABEL": "Cancel", + "CLEAR_BUTTON_LABEL": "Clear Filters", + "EMPTY_VALUE_ERROR": "Value is required", + "TOOLTIP_LABEL": "Filter contacts", + "QUERY_DROPDOWN_LABELS": { + "AND": "AND", + "OR": "OR" + }, + "OPERATOR_LABELS": { + "equal_to": "Equal to", + "not_equal_to": "Not equal to", + "contains": "Contains", + "does_not_contain": "Does not contain", + "is_present": "Is present", + "is_not_present": "Is not present", + "is_greater_than": "Is greater than", + "is_lesser_than": "Is lesser than", + "days_before": "Is x days before" + }, + "ATTRIBUTES": { + "NAME": "Name", + "EMAIL": "Email", + "PHONE_NUMBER": "Phone number", + "IDENTIFIER": "Identifier", + "CITY": "City", + "COUNTRY": "Country", + "CUSTOM_ATTRIBUTE_LIST": "List", + "CUSTOM_ATTRIBUTE_TEXT": "Text", + "CUSTOM_ATTRIBUTE_NUMBER": "Number", + "CUSTOM_ATTRIBUTE_LINK": "Link", + "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox", + "CREATED_AT": "Created At", + "LAST_ACTIVITY": "Last Activity", + "REFERER_LINK": "Referrer link" + }, + "GROUPS": { + "STANDARD_FILTERS": "Standard Filters", + "ADDITIONAL_FILTERS": "Additional Filters", + "CUSTOM_ATTRIBUTES": "Custom Attributes" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/conversation.json b/app/javascript/dashboard/i18n/locale/sh/conversation.json new file mode 100644 index 000000000..597799c15 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/conversation.json @@ -0,0 +1,290 @@ +{ + "CONVERSATION": { + "SELECT_A_CONVERSATION": "Please select a conversation from left pane", + "CSAT_REPLY_MESSAGE": "Please rate the conversation", + "404": "Sorry, we cannot find the conversation. Please try again", + "SWITCH_VIEW_LAYOUT": "Switch the layout", + "DASHBOARD_APP_TAB_MESSAGES": "Messages", + "UNVERIFIED_SESSION": "The identity of this user is not verified", + "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", + "RESULT_TITLE": "Search Results", + "LOADING_MESSAGE": "Crunching data...", + "PLACEHOLDER": "Type any text to search messages", + "NO_MATCHING_RESULTS": "No results found." + }, + "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", + "NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?", + "ASSIGN_TO_ME": "Assign to me", + "TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to", + "TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction", + "SELECT_A_TWEET_TO_REPLY": "Please select a tweet to reply to.", + "REPLYING_TO": "You are replying to:", + "REMOVE_SELECTION": "Remove Selection", + "DOWNLOAD": "Download", + "UNKNOWN_FILE_TYPE": "Unknown File", + "SAVE_CONTACT": "Save", + "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "SUCCESS_DELETE_MESSAGE": "Message deleted successfully", + "FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again", + "NO_RESPONSE": "No response", + "RATING_TITLE": "Rating", + "FEEDBACK_TITLE": "Feedback", + "CARD": { + "SHOW_LABELS": "Show labels", + "HIDE_LABELS": "Hide labels" + }, + "HEADER": { + "RESOLVE_ACTION": "Resolve", + "REOPEN_ACTION": "Reopen", + "OPEN_ACTION": "Open", + "OPEN": "More", + "CLOSE": "Close", + "DETAILS": "details", + "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow", + "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week", + "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply" + }, + "RESOLVE_DROPDOWN": { + "MARK_PENDING": "Mark as pending", + "SNOOZE": { + "TITLE": "Snooze until", + "NEXT_REPLY": "Next reply", + "TOMORROW": "Tomorrow", + "NEXT_WEEK": "Next week" + } + }, + "CARD_CONTEXT_MENU": { + "PENDING": "Mark as pending", + "RESOLVED": "Mark as resolved", + "MARK_AS_UNREAD": "Mark as unread", + "REOPEN": "Reopen conversation", + "SNOOZE": { + "TITLE": "Snooze", + "NEXT_REPLY": "Until next reply", + "TOMORROW": "Until tomorrow", + "NEXT_WEEK": "Until next week" + }, + "ASSIGN_AGENT": "Assign agent", + "ASSIGN_LABEL": "Assign label", + "AGENTS_LOADING": "Loading agents...", + "ASSIGN_TEAM": "Assign team", + "API": { + "AGENT_ASSIGNMENT": { + "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"", + "FAILED": "Couldn't assign agent. Please try again." + }, + "LABEL_ASSIGNMENT": { + "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}", + "FAILED": "Couldn't assign label. Please try again." + }, + "TEAM_ASSIGNMENT": { + "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}", + "FAILED": "Couldn't assign team. Please try again." + } + } + }, + "FOOTER": { + "MESSAGE_SIGN_TOOLTIP": "Message signature", + "ENABLE_SIGN_TOOLTIP": "Enable signature", + "DISABLE_SIGN_TOOLTIP": "Disable signature", + "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", + "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.", + "CLICK_HERE": "Click here to update" + }, + "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", + "TIP_AUDIORECORDER_ICON": "Record audio", + "TIP_AUDIORECORDER_PERMISSION": "Allow access to audio", + "TIP_AUDIORECORDER_ERROR": "Could not open the audio", + "DRAG_DROP": "Drag and drop here to attach", + "START_AUDIO_RECORDING": "Start audio recording", + "STOP_AUDIO_RECORDING": "Stop audio recording", + "": "", + "EMAIL_HEAD": { + "ADD_BCC": "Add bcc", + "CC": { + "LABEL": "CC", + "PLACEHOLDER": "Emails separated by commas", + "ERROR": "Please enter valid email addresses" + }, + "BCC": { + "LABEL": "BCC", + "PLACEHOLDER": "Emails separated by commas", + "ERROR": "Please enter valid email addresses" + } + }, + "UNDEFINED_VARIABLES": { + "TITLE": "Undefined variables", + "MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?", + "CONFIRM": { + "YES": "Send", + "CANCEL": "Cancel" + } + } + }, + "VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team", + "CHANGE_STATUS": "Conversation status changed", + "CHANGE_STATUS_FAILED": "Conversation status change failed", + "CHANGE_AGENT": "Conversation Assignee changed", + "CHANGE_AGENT_FAILED": "Assignee change failed", + "ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully", + "ASSIGN_LABEL_FAILED": "Label assignment failed", + "CHANGE_TEAM": "Conversation team changed", + "FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit", + "MESSAGE_ERROR": "Unable to send this message, please try again later", + "SENT_BY": "Sent by:", + "BOT": "Bot", + "SEND_FAILED": "Couldn't send message! Try again", + "TRY_AGAIN": "retry", + "ASSIGNMENT": { + "SELECT_AGENT": "Select Agent", + "REMOVE": "Remove", + "ASSIGN": "Assign" + }, + "CONTEXT_MENU": { + "COPY": "Copy", + "DELETE": "Delete", + "CREATE_A_CANNED_RESPONSE": "Add to canned responses", + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Delete", + "CANCEL": "Cancel" + } + } + }, + "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" + } + } + }, + "ONBOARDING": { + "TITLE": "Hey 👋, Welcome to %{installationName}!", + "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.", + "READ_LATEST_UPDATES": "Read our latest updates", + "ALL_CONVERSATION": { + "TITLE": "All your conversations in one place", + "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status." + }, + "TEAM_MEMBERS": { + "TITLE": "Invite your team members", + "DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.", + "NEW_LINK": "Click here to invite a team member" + }, + "INBOXES": { + "TITLE": "Connect Inboxes", + "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.", + "NEW_LINK": "Click here to create an inbox" + }, + "LABELS": { + "TITLE": "Organize conversations with labels", + "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.", + "NEW_LINK": "Click here to create tags" + } + }, + "CONVERSATION_SIDEBAR": { + "ASSIGNEE_LABEL": "Assigned Agent", + "SELF_ASSIGN": "Assign to me", + "TEAM_LABEL": "Assigned Team", + "SELECT": { + "PLACEHOLDER": "None" + }, + "ACCORDION": { + "CONTACT_DETAILS": "Contact Details", + "CONVERSATION_ACTIONS": "Conversation Actions", + "CONVERSATION_LABELS": "Conversation Labels", + "CONVERSATION_INFO": "Conversation Information", + "CONTACT_ATTRIBUTES": "Contact Attributes", + "PREVIOUS_CONVERSATION": "Previous Conversations", + "MACROS": "Macros" + } + }, + "CONVERSATION_CUSTOM_ATTRIBUTES": { + "ADD_BUTTON_TEXT": "Create attribute", + "UPDATE": { + "SUCCESS": "Attribute updated successfully", + "ERROR": "Unable to update attribute. Please try again later" + }, + "ADD": { + "TITLE": "Add", + "SUCCESS": "Attribute added successfully", + "ERROR": "Unable to add attribute. Please try again later" + }, + "DELETE": { + "SUCCESS": "Attribute deleted successfully", + "ERROR": "Unable to delete attribute. Please try again later" + }, + "ATTRIBUTE_SELECT": { + "TITLE": "Add attributes", + "PLACEHOLDER": "Search attributes", + "NO_RESULT": "No attributes found" + } + }, + "EMAIL_HEADER": { + "FROM": "From", + "TO": "To", + "BCC": "Bcc", + "CC": "Cc", + "SUBJECT": "Subject" + }, + "CONVERSATION_PARTICIPANTS": { + "SIDEBAR_MENU_TITLE": "Participating", + "SIDEBAR_TITLE": "Conversation participants", + "NO_RECORDS_FOUND": "No results found", + "ADD_PARTICIPANTS": "Select participants", + "REMANING_PARTICIPANTS_TEXT": "+%{count} others", + "REMANING_PARTICIPANT_TEXT": "+%{count} other", + "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.", + "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.", + "NO_PARTICIPANTS_TEXT": "No one is participating!.", + "WATCH_CONVERSATION": "Join conversation", + "YOU_ARE_WATCHING": "You are participating", + "API": { + "ERROR_MESSAGE": "Could not update, try again!", + "SUCCESS_MESSAGE": "Participants updated!" + } + }, + "TRANSLATE_MODAL": { + "TITLE": "View translated content", + "DESC": "You can view the translated content in each langauge.", + "ORIGINAL_CONTENT": "Original Content", + "TRANSLATED_CONTENT": "Translated Content", + "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content" + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/csatMgmt.json b/app/javascript/dashboard/i18n/locale/sh/csatMgmt.json new file mode 100644 index 000000000..d7d2efc2a --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/csatMgmt.json @@ -0,0 +1,6 @@ +{ + "CSAT": { + "TITLE": "Rate your conversation", + "PLACEHOLDER": "Tell us more..." + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/emoji.json b/app/javascript/dashboard/i18n/locale/sh/emoji.json new file mode 100644 index 000000000..fd81268fb --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/emoji.json @@ -0,0 +1,6 @@ +{ + "EMOJI": { + "PLACEHOLDER": "Search emojis", + "NOT_FOUND": "No emoji match your search" + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/generalSettings.json b/app/javascript/dashboard/i18n/locale/sh/generalSettings.json new file mode 100644 index 000000000..367b35b1c --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/generalSettings.json @@ -0,0 +1,145 @@ +{ + "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": "" + }, + "ACCOUNT_ID": { + "TITLE": "Account ID", + "NOTE": "This ID is required if you are building an API based integration" + }, + "NAME": { + "LABEL": "Account name", + "PLACEHOLDER": "Your account name", + "ERROR": "Please enter a valid account name" + }, + "LANGUAGE": { + "LABEL": "Site language", + "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 and maximum 999 days)" + }, + "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.", + "LEARN_MORE": "Learn more" + }, + "FORMS": { + "MULTISELECT": { + "ENTER_TO_SELECT": "Press enter to select", + "ENTER_TO_REMOVE": "Press enter to remove", + "SELECT_ONE": "Select one", + "SELECT": "Select" + } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "DELETE_TITLE": "deleted", + "UNREAD_NOTIFICATION": { + "TITLE": "Unread Notifications", + "ALL_NOTIFICATIONS": "View all notifications", + "LOADING_UNREAD_MESSAGE": "Loading unread notifications...", + "EMPTY_MESSAGE": "You have no unread notifications" + }, + "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", + "participating_conversation_new_message": "New Message", + "conversation_mention": "Mention" + } + }, + "NETWORK": { + "NOTIFICATION": { + "TEXT": "Disconnected from Chatwoot" + }, + "BUTTON": { + "REFRESH": "Refresh" + } + }, + "COMMAND_BAR": { + "SEARCH_PLACEHOLDER": "Search or jump to", + "SECTIONS": { + "GENERAL": "General", + "REPORTS": "Reports", + "CONVERSATION": "Conversation", + "CHANGE_ASSIGNEE": "Change Assignee", + "CHANGE_TEAM": "Change Team", + "ADD_LABEL": "Add label to the conversation", + "REMOVE_LABEL": "Remove label from the conversation", + "SETTINGS": "Settings" + }, + "COMMANDS": { + "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard", + "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard", + "GO_TO_REPORTS_OVERVIEW": "Go to Reports Overview", + "GO_TO_CONVERSATION_REPORTS": "Go to Conversation Reports", + "GO_TO_AGENT_REPORTS": "Go to Agent Reports", + "GO_TO_LABEL_REPORTS": "Go to Label Reports", + "GO_TO_INBOX_REPORTS": "Go to Inbox Reports", + "GO_TO_TEAM_REPORTS": "Go to Team Reports", + "GO_TO_SETTINGS_AGENTS": "Go to Agent Settings", + "GO_TO_SETTINGS_TEAMS": "Go to Team Settings", + "GO_TO_SETTINGS_INBOXES": "Go to Inbox Settings", + "GO_TO_SETTINGS_LABELS": "Go to Label Settings", + "GO_TO_SETTINGS_CANNED_RESPONSES": "Go to Canned Response Settings", + "GO_TO_SETTINGS_APPLICATIONS": "Go to Application Settings", + "GO_TO_SETTINGS_ACCOUNT": "Go to Account Settings", + "GO_TO_SETTINGS_PROFILE": "Go to Profile Settings", + "GO_TO_NOTIFICATIONS": "Go to Notifications", + "ADD_LABELS_TO_CONVERSATION": "Add label to the conversation", + "ASSIGN_AN_AGENT": "Assign an agent", + "ASSIGN_A_TEAM": "Assign a team", + "MUTE_CONVERSATION": "Mute conversation", + "UNMUTE_CONVERSATION": "Unmute conversation", + "REMOVE_LABEL_FROM_CONVERSATION": "Remove label from the conversation", + "REOPEN_CONVERSATION": "Reopen conversation", + "RESOLVE_CONVERSATION": "Resolve conversation", + "SEND_TRANSCRIPT": "Send an email transcript", + "SNOOZE_CONVERSATION": "Snooze Conversation", + "UNTIL_NEXT_REPLY": "Until next reply", + "UNTIL_NEXT_WEEK": "Until next week", + "UNTIL_TOMORROW": "Until tomorrow" + } + }, + "DASHBOARD_APPS": { + "LOADING_MESSAGE": "Loading Dashboard App..." + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/helpCenter.json b/app/javascript/dashboard/i18n/locale/sh/helpCenter.json new file mode 100644 index 000000000..621a16ae8 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/helpCenter.json @@ -0,0 +1,422 @@ +{ + "HELP_CENTER": { + "HEADER": { + "FILTER": "Filter by", + "SORT": "Sort by", + "SETTINGS_BUTTON": "Settings", + "NEW_BUTTON": "New Article", + "DROPDOWN_OPTIONS": { + "PUBLISHED": "Published", + "DRAFT": "Draft", + "ARCHIVED": "Archived" + }, + "TITLES": { + "ALL_ARTICLES": "All Articles", + "MINE": "My Articles", + "DRAFT": "Draft Articles", + "ARCHIVED": "Archived Articles" + } + }, + "EDIT_HEADER": { + "ALL_ARTICLES": "All Articles", + "PUBLISH_BUTTON": "Publish", + "MOVE_TO_ARCHIVE_BUTTON": "Move to archived", + "PREVIEW": "Preview", + "ADD_TRANSLATION": "Add translation", + "OPEN_SIDEBAR": "Open sidebar", + "CLOSE_SIDEBAR": "Close sidebar", + "SAVING": "Saving...", + "SAVED": "Saved" + }, + "ARTICLE_EDITOR": { + "IMAGE_UPLOAD": { + "TITLE": "Upload image", + "UPLOADING": "Uploading...", + "SUCCESS": "Image uploaded successfully", + "ERROR": "Error while uploading image", + "ERROR_FILE_SIZE": "Image size should be less than {size}MB", + "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png", + "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000" + } + }, + "ARTICLE_SETTINGS": { + "TITLE": "Article Settings", + "FORM": { + "CATEGORY": { + "LABEL": "Category", + "TITLE": "Select category", + "PLACEHOLDER": "Select category", + "NO_RESULT": "No category found", + "SEARCH_PLACEHOLDER": "Search category" + }, + "AUTHOR": { + "LABEL": "Author", + "TITLE": "Select author", + "PLACEHOLDER": "Select author", + "NO_RESULT": "No authors found", + "SEARCH_PLACEHOLDER": "Search author" + }, + "META_TITLE": { + "LABEL": "Meta title", + "PLACEHOLDER": "Add a meta title" + }, + "META_DESCRIPTION": { + "LABEL": "Meta description", + "PLACEHOLDER": "Add your meta description for better SEO results..." + }, + "META_TAGS": { + "LABEL": "Meta tags", + "PLACEHOLDER": "Add meta tags separated by comma..." + } + }, + "BUTTONS": { + "ARCHIVE": "Archive article", + "DELETE": "Delete article" + } + }, + "PORTAL": { + "HEADER": "Portals", + "DEFAULT": "Default", + "NEW_BUTTON": "New Portal", + "ACTIVE_BADGE": "active", + "CHOOSE_LOCALE_LABEL": "Choose a locale", + "LOADING_MESSAGE": "Loading portals...", + "ARTICLES_LABEL": "articles", + "NO_PORTALS_MESSAGE": "There are no available portals", + "ADD_NEW_LOCALE": "Add a new locale", + "POPOVER": { + "TITLE": "Portals", + "PORTAL_SETTINGS": "Portal settings", + "SUBTITLE": "You have multiple portals and can have different locales for each portal.", + "CANCEL_BUTTON_LABEL": "Cancel", + "CHOOSE_LOCALE_BUTTON": "Choose Locale" + }, + "PORTAL_SETTINGS": { + "LIST_ITEM": { + "HEADER": { + "COUNT_LABEL": "articles", + "ADD": "Add locale", + "VISIT": "Visit site", + "SETTINGS": "Settings", + "DELETE": "Delete" + }, + "PORTAL_CONFIG": { + "TITLE": "Portal Configurations", + "ITEMS": { + "NAME": "Name", + "DOMAIN": "Custom domain", + "SLUG": "Slug", + "TITLE": "Portal title", + "THEME": "Theme color", + "SUB_TEXT": "Portal sub text" + } + }, + "AVAILABLE_LOCALES": { + "TITLE": "Available locales", + "TABLE": { + "NAME": "Locale name", + "CODE": "Locale code", + "ARTICLE_COUNT": "No. of articles", + "CATEGORIES": "No. of categories", + "SWAP": "Swap", + "DELETE": "Delete", + "DEFAULT_LOCALE": "Default" + } + } + }, + "DELETE_PORTAL": { + "TITLE": "Delete portal", + "MESSAGE": "Are you sure you want to delete this portal", + "YES": "Yes, delete portal", + "NO": "No, keep portal", + "API": { + "DELETE_SUCCESS": "Portal deleted successfully", + "DELETE_ERROR": "Error while deleting portal" + } + } + }, + "EDIT": { + "HEADER_TEXT": "Edit portal", + "TABS": { + "BASIC_SETTINGS": { + "TITLE": "Basic information" + }, + "CUSTOMIZATION_SETTINGS": { + "TITLE": "Portal customization" + }, + "CATEGORY_SETTINGS": { + "TITLE": "Categories" + }, + "LOCALE_SETTINGS": { + "TITLE": "Locales" + } + }, + "CATEGORIES": { + "TITLE": "Categories in", + "NEW_CATEGORY": "New category", + "TABLE": { + "NAME": "Name", + "DESCRIPTION": "Description", + "LOCALE": "Locale", + "ARTICLE_COUNT": "No. of articles", + "ACTION_BUTTON": { + "EDIT": "Edit category", + "DELETE": "Delete category" + }, + "EMPTY_TEXT": "No categories found" + } + }, + "EDIT_BASIC_INFO": { + "BUTTON_TEXT": "Update basic settings" + } + }, + "ADD": { + "CREATE_FLOW": [ + { + "title": "Help center information", + "route": "new_portal_information", + "body": "Basic information about portal", + "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings" + }, + { + "title": "Help center customization", + "route": "portal_customization", + "body": "Customize portal", + "UPDATE_PORTAL_BUTTON": "Update portal settings" + }, + { + "title": "Voila! 🎉", + "route": "portal_finish", + "body": "You're all set!", + "FINISH": "Finish" + } + ], + "CREATE_FLOW_PAGE": { + "BACK_BUTTON": "Back", + "BASIC_SETTINGS_PAGE": { + "HEADER": "Create Portal", + "TITLE": "Help center information", + "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings" + }, + "CUSTOMIZATION_PAGE": { + "HEADER": "Portal customisation", + "TITLE": "Help center customization", + "UPDATE_PORTAL_BUTTON": "Update portal settings" + }, + "FINISH_PAGE": { + "TITLE": "Voila!🎉 You're all set up!", + "MESSAGE": "You can now see this created portal on your all portals page.", + "FINISH": "Go to all portals page" + } + }, + "LOGO": { + "LABEL": "Logo", + "UPLOAD_BUTTON": "Upload logo", + "HELP_TEXT": "This logo will be displayed on the portal header." + }, + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Portal name", + "HELP_TEXT": "The name will be used in the public facing portal internally.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Portal slug for urls", + "ERROR": "Slug is required" + }, + "DOMAIN": { + "LABEL": "Custom Domain", + "PLACEHOLDER": "Portal custom domain", + "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com", + "ERROR": "Enter a valid domain URL" + }, + "HOME_PAGE_LINK": { + "LABEL": "Home Page Link", + "PLACEHOLDER": "Portal home page link", + "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com", + "ERROR": "Enter a valid home page URL" + }, + "THEME_COLOR": { + "LABEL": "Portal theme color", + "HELP_TEXT": "This color will show as the theme color for the portal." + }, + "PAGE_TITLE": { + "LABEL": "Page Title", + "PLACEHOLDER": "Portal page title", + "HELP_TEXT": "The page title will be used in the public facing portal.", + "ERROR": "Page title is required" + }, + "HEADER_TEXT": { + "LABEL": "Header Text", + "PLACEHOLDER": "Portal header text", + "HELP_TEXT": "The Portal header text will be used in the public facing portal.", + "ERROR": "Portal header text is required" + }, + "API": { + "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.", + "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.", + "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.", + "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again." + } + }, + "ADD_LOCALE": { + "TITLE": "Add a new locale", + "SUB_TITLE": "This adds a new locale to your available translation list.", + "PORTAL": "Portal", + "LOCALE": { + "LABEL": "Locale", + "PLACEHOLDER": "Choose a locale", + "ERROR": "Locale is required" + }, + "BUTTONS": { + "CREATE": "Create locale", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Locale added successfully", + "ERROR_MESSAGE": "Unable to add locale. Try again." + } + }, + "CHANGE_DEFAULT_LOCALE": { + "API": { + "SUCCESS_MESSAGE": "Default locale updated successfully", + "ERROR_MESSAGE": "Unable to update default locale. Try again." + } + }, + "DELETE_LOCALE": { + "API": { + "SUCCESS_MESSAGE": "Locale removed from portal successfully", + "ERROR_MESSAGE": "Unable to remove locale from portal. Try again." + } + } + }, + "TABLE": { + "LOADING_MESSAGE": "Loading articles...", + "404": "No articles matches your search 🔍", + "NO_ARTICLES": "There are no available articles", + "HEADERS": { + "TITLE": "Title", + "CATEGORY": "Category", + "READ_COUNT": "Read count", + "STATUS": "Status", + "LAST_EDITED": "Last edited" + }, + "COLUMNS": { + "BY": "by" + } + }, + "EDIT_ARTICLE": { + "LOADING": "Loading article...", + "TITLE_PLACEHOLDER": "Article title goes here", + "CONTENT_PLACEHOLDER": "Write your article here", + "API": { + "ERROR": "Error while saving article" + } + }, + "PUBLISH_ARTICLE": { + "API": { + "ERROR": "Error while publishing article", + "SUCCESS": "Article published successfully" + } + }, + "ARCHIVE_ARTICLE": { + "API": { + "ERROR": "Error while archiving article", + "SUCCESS": "Article archived successfully" + } + }, + "DELETE_ARTICLE": { + "MODAL": { + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete the article?", + "YES": "Yes, Delete", + "NO": "No, Keep it" + } + }, + "API": { + "SUCCESS_MESSAGE": "Article deleted successfully", + "ERROR_MESSAGE": "Error while deleting article" + } + }, + "CREATE_ARTICLE": { + "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings" + }, + "SIDEBAR": { + "SEARCH": { + "PLACEHOLDER": "Search for articles" + } + }, + "CATEGORY": { + "ADD": { + "TITLE": "Create a category", + "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.", + "PORTAL": "Portal", + "LOCALE": "Locale", + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Category name", + "HELP_TEXT": "The category name will be used in the public facing portal to categorize articles.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Category slug for urls", + "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug", + "ERROR": "Slug is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Give a short description about the category.", + "ERROR": "Description is required" + }, + "BUTTONS": { + "CREATE": "Create category", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Category created successfully", + "ERROR_MESSAGE": "Unable to create category" + } + }, + "EDIT": { + "TITLE": "Edit a category", + "SUB_TITLE": "Editing a category will update the category in the public facing portal.", + "PORTAL": "Portal", + "LOCALE": "Locale", + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Category name", + "HELP_TEXT": "The category name will be used in the public facing portal to categorize articles.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Category slug for urls", + "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug", + "ERROR": "Slug is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Give a short description about the category.", + "ERROR": "Description is required" + }, + "BUTTONS": { + "CREATE": "Update category", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Category updated successfully", + "ERROR_MESSAGE": "Unable to update category" + } + }, + "DELETE": { + "API": { + "SUCCESS_MESSAGE": "Category deleted successfully", + "ERROR_MESSAGE": "Unable to delete category" + } + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json new file mode 100644 index 000000000..8b28d2a3f --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json @@ -0,0 +1,696 @@ +{ + "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": { + "CHANNEL_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)", + "ERROR": "Please enter a valid inbox name" + }, + "WEBSITE_NAME": { + "LABEL": "Website Name", + "PLACEHOLDER": "Enter your website name (eg: Acme Inc)" + }, + "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' ", + "ERROR_MESSAGE": "There was an error connecting to Twitter, please try again", + "TWEETS": { + "ENABLE": "Create conversations from mentioned Tweets" + } + }, + "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_WEBHOOK_URL": { + "LABEL": "Webhook URL", + "PLACEHOLDER": "Enter your Webhook URL", + "ERROR": "Please enter a valid URL" + }, + "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": "Automatically send a greeting message when a new conversation is created.", + "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", + "API": { + "ERROR_MESSAGE": "We were not able to create a website channel, please try again" + } + }, + "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" + }, + "MESSAGING_SERVICE_SID": { + "LABEL": "Messaging Service SID", + "PLACEHOLDER": "Please enter your Twilio Messaging Service SID", + "ERROR": "This field is required", + "USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service" + }, + "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": "Inbox Name", + "PLACEHOLDER": "Please enter a inbox 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 provide a valid phone number that starts with a `+` sign and does not contain any spaces." + }, + "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" + } + }, + "SMS": { + "TITLE": "SMS Channel", + "DESC": "Start supporting your customers via SMS.", + "PROVIDERS": { + "LABEL": "API Provider", + "TWILIO": "Twilio", + "BANDWIDTH": "Bandwidth" + }, + "API": { + "ERROR_MESSAGE": "We were not able to save the SMS channel" + }, + "BANDWIDTH": { + "ACCOUNT_ID": { + "LABEL": "Account ID", + "PLACEHOLDER": "Please enter your Bandwidth Account ID", + "ERROR": "This field is required" + }, + "API_KEY": { + "LABEL": "API Key", + "PLACEHOLDER": "Please enter your Bandwith API Key", + "ERROR": "This field is required" + }, + "API_SECRET": { + "LABEL": "API Secret", + "PLACEHOLDER": "Please enter your Bandwith API Secret", + "ERROR": "This field is required" + }, + "APPLICATION_ID": { + "LABEL": "Application ID", + "PLACEHOLDER": "Please enter your Bandwidth Application ID", + "ERROR": "This field is required" + }, + "INBOX_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Please enter a inbox 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 provide a valid phone number that starts with a `+` sign and does not contain any spaces." + }, + "SUBMIT_BUTTON": "Create Bandwidth Channel", + "API": { + "ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again" + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here." + } + } + }, + "WHATSAPP": { + "TITLE": "WhatsApp Channel", + "DESC": "Start supporting your customers via WhatsApp.", + "PROVIDERS": { + "LABEL": "API Provider", + "TWILIO": "Twilio", + "WHATSAPP_CLOUD": "WhatsApp Cloud", + "360_DIALOG": "360Dialog" + }, + "INBOX_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Please enter an inbox 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 provide a valid phone number that starts with a `+` sign and does not contain any spaces." + }, + "PHONE_NUMBER_ID": { + "LABEL": "Phone number ID", + "PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.", + "ERROR": "Please enter a valid value." + }, + "BUSINESS_ACCOUNT_ID": { + "LABEL": "Business Account ID", + "PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.", + "ERROR": "Please enter a valid value." + }, + "WEBHOOK_VERIFY_TOKEN": { + "LABEL": "Webhook Verify Token", + "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.", + "ERROR": "Please enter a valid value." + }, + "API_KEY": { + "LABEL": "API key", + "SUBTITLE": "Configure the WhatsApp API key.", + "PLACEHOLDER": "API key", + "ERROR": "Please enter a valid value." + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.", + "WEBHOOK_URL": "Webhook URL", + "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token" + }, + "SUBMIT_BUTTON": "Create WhatsApp Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the WhatsApp channel" + } + }, + "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": "Provide the email address where your customers send support requests.", + "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." + }, + "LINE_CHANNEL": { + "TITLE": "LINE Channel", + "DESC": "Integrate with LINE channel and start supporting your customers.", + "CHANNEL_NAME": { + "LABEL": "Channel Name", + "PLACEHOLDER": "Please enter a channel name", + "ERROR": "This field is required" + }, + "LINE_CHANNEL_ID": { + "LABEL": "LINE Channel ID", + "PLACEHOLDER": "LINE Channel ID" + }, + "LINE_CHANNEL_SECRET": { + "LABEL": "LINE Channel Secret", + "PLACEHOLDER": "LINE Channel Secret" + }, + "LINE_CHANNEL_TOKEN": { + "LABEL": "LINE Channel Token", + "PLACEHOLDER": "LINE Channel Token" + }, + "SUBMIT_BUTTON": "Create LINE Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the LINE channel" + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here." + } + }, + "TELEGRAM_CHANNEL": { + "TITLE": "Telegram Channel", + "DESC": "Integrate with Telegram channel and start supporting your customers.", + "BOT_TOKEN": { + "LABEL": "Bot Token", + "SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.", + "PLACEHOLDER": "Bot Token" + }, + "SUBMIT_BUTTON": "Create Telegram Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the telegram channel" + } + }, + "AUTH": { + "TITLE": "Choose a channel", + "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below." + }, + "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 :)" + }, + "EMAIL_PROVIDER": { + "TITLE": "Select your email provider", + "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials." + }, + "MICROSOFT": { + "TITLE": "Microsoft Email", + "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.", + "EMAIL_PLACEHOLDER": "Enter email address", + "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ", + "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again" + } + }, + "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", + "MORE_SETTINGS": "More settings", + "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": "We couldn't update inbox settings. Please try again later." + }, + "EMAIL_COLLECT_BOX": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ENABLE_CSAT": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ALLOW_MESSAGES_AFTER_RESOLVED": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ENABLE_CONTINUITY_VIA_EMAIL": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "LOCK_TO_SINGLE_CONVERSATION": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ENABLE_HMAC": { + "LABEL": "Enable" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "PLACE_HOLDER": "Please type {inboxName} to confirm", + "YES": "Yes, Delete ", + "NO": "No, Keep " + }, + "API": { + "SUCCESS_MESSAGE": "Inbox deleted successfully", + "ERROR_MESSAGE": "Could not delete inbox. Please try again later.", + "AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully", + "AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later." + } + }, + "TABS": { + "SETTINGS": "Settings", + "COLLABORATORS": "Collaborators", + "CONFIGURATION": "Configuration", + "CAMPAIGN": "Campaigns", + "PRE_CHAT_FORM": "Pre Chat Form", + "BUSINESS_HOURS": "Business Hours", + "WIDGET_BUILDER": "Widget Builder", + "BOT_CONFIGURATION": "Bot Configuration" + }, + "SETTINGS": "Settings", + "FEATURES": { + "LABEL": "Features", + "DISPLAY_FILE_PICKER": "Display file picker on the widget", + "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" + }, + "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", + "AGENT_ASSIGNMENT": "Conversation Assignment", + "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings", + "UPDATE": "Update", + "ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box", + "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation", + "AUTO_ASSIGNMENT": "Enable auto assignment", + "ENABLE_CSAT": "Enable CSAT", + "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation", + "ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email", + "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.", + "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation", + "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox", + "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": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.", + "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation", + "HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.", + "INBOX_IDENTIFIER": "Inbox Identifier", + "INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.", + "FORWARD_EMAIL_TITLE": "Forward to Email", + "FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.", + "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved", + "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.", + "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.", + "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.", + "WHATSAPP_SECTION_TITLE": "API Key", + "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key", + "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here", + "WHATSAPP_SECTION_UPDATE_BUTTON": "Update", + "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings" + }, + "AUTO_ASSIGNMENT": { + "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit", + "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0", + "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent" + }, + "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" + }, + "PRE_CHAT_FORM": { + "DESCRIPTION": "Pre chat forms enable you to capture user information before they start conversation with you.", + "SET_FIELDS": "Pre chat form fields", + "SET_FIELDS_HEADER": { + "FIELDS": "Fields", + "LABEL": "Label", + "PLACE_HOLDER": "Placeholder", + "KEY": "Key", + "TYPE": "Type", + "REQUIRED": "Required" + }, + "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" + } + }, + "BUSINESS_HOURS": { + "TITLE": "Set your availability", + "SUBTITLE": "Set your availability on your livechat widget", + "WEEKLY_TITLE": "Set your weekly hours", + "TIMEZONE_LABEL": "Select timezone", + "UPDATE": "Update business hours settings", + "TOGGLE_AVAILABILITY": "Enable business availability for this inbox", + "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors", + "UNAVAILABLE_MESSAGE_DEFAULT": "We are unavailable at the moment. Leave a message we will respond once we are back.", + "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours vistors can be warned with a message and a pre-chat form.", + "DAY": { + "ENABLE": "Enable availability for this day", + "UNAVAILABLE": "Unavailable", + "HOURS": "hours", + "VALIDATION_ERROR": "Starting time should be before closing time.", + "CHOOSE": "Choose" + }, + "ALL_DAY": "All-Day" + }, + "IMAP": { + "TITLE": "IMAP", + "SUBTITLE": "Set your IMAP details", + "NOTE_TEXT": "To enable SMTP, please configure IMAP.", + "UPDATE": "Update IMAP settings", + "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox", + "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email", + "EDIT": { + "SUCCESS_MESSAGE": "IMAP settings updated successfully", + "ERROR_MESSAGE": "Unable to update IMAP settings" + }, + "ADDRESS": { + "LABEL": "Address", + "PLACE_HOLDER": "Address (Eg: imap.gmail.com)" + }, + "PORT": { + "LABEL": "Port", + "PLACE_HOLDER": "Port" + }, + "LOGIN": { + "LABEL": "Login", + "PLACE_HOLDER": "Login" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACE_HOLDER": "Password" + }, + "ENABLE_SSL": "Enable SSL" + }, + "MICROSOFT": { + "TITLE": "Microsoft", + "SUBTITLE": "Reauthorize your MICROSOFT account" + }, + "SMTP": { + "TITLE": "SMTP", + "SUBTITLE": "Set your SMTP details", + "UPDATE": "Update SMTP settings", + "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox", + "TOGGLE_HELP": "Enabling SMTP will help the user to send email", + "EDIT": { + "SUCCESS_MESSAGE": "SMTP settings updated successfully", + "ERROR_MESSAGE": "Unable to update SMTP settings" + }, + "ADDRESS": { + "LABEL": "Address", + "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)" + }, + "PORT": { + "LABEL": "Port", + "PLACE_HOLDER": "Port" + }, + "LOGIN": { + "LABEL": "Login", + "PLACE_HOLDER": "Login" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACE_HOLDER": "Password" + }, + "DOMAIN": { + "LABEL": "Domain", + "PLACE_HOLDER": "Domain" + }, + "ENCRYPTION": "Encryption", + "SSL_TLS": "SSL/TLS", + "START_TLS": "STARTTLS", + "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode", + "AUTH_MECHANISM": "Authentication" + }, + "NOTE": "Note: ", + "WIDGET_BUILDER": { + "WIDGET_OPTIONS": { + "AVATAR": { + "LABEL": "Website Avatar", + "DELETE": { + "API": { + "SUCCESS_MESSAGE": "Avatar deleted successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + } + }, + "WEBSITE_NAME": { + "LABEL": "Website Name", + "PLACE_HOLDER": "Enter your website name (eg: Acme Inc)", + "ERROR": "Please enter a valid website name" + }, + "WELCOME_HEADING": { + "LABEL": "Welcome Heading", + "PLACE_HOLDER": "Hi there!" + }, + "WELCOME_TAGLINE": { + "LABEL": "Welcome Tagline", + "PLACE_HOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback." + }, + "REPLY_TIME": { + "LABEL": "Reply Time", + "IN_A_FEW_MINUTES": "In a few minutes", + "IN_A_FEW_HOURS": "In a few hours", + "IN_A_DAY": "In a day" + }, + "WIDGET_COLOR_LABEL": "Widget Color", + "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position", + "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type", + "WIDGET_BUBBLE_LAUNCHER_TITLE": { + "DEFAULT": "Chat with us", + "LABEL": "Widget Bubble Launcher Title", + "PLACE_HOLDER": "Chat with us" + }, + "UPDATE": { + "BUTTON_TEXT": "Update Widget Settings", + "API": { + "SUCCESS_MESSAGE": "Widget settings updated successfully", + "ERROR_MESSAGE": "Unable to update widget settings" + } + }, + "WIDGET_VIEW_OPTION": { + "PREVIEW": "Preview", + "SCRIPT": "Script" + }, + "WIDGET_BUBBLE_POSITION": { + "LEFT": "Left", + "RIGHT": "Right" + }, + "WIDGET_BUBBLE_TYPE": { + "STANDARD": "Standard", + "EXPANDED_BUBBLE": "Expanded Bubble" + } + }, + "WIDGET_SCREEN": { + "DEFAULT": "Default", + "CHAT": "Chat" + }, + "REPLY_TIME": { + "IN_A_FEW_MINUTES": "Typically replies in a few minutes", + "IN_A_FEW_HOURS": "Typically replies in a few hours", + "IN_A_DAY": "Typically replies in a day" + }, + "FOOTER": { + "START_CONVERSATION_BUTTON_TEXT": "Start Conversation", + "CHAT_INPUT_PLACEHOLDER": "Type your message" + }, + "BODY": { + "TEAM_AVAILABILITY": { + "ONLINE": "We are Online", + "OFFLINE": "We are away at the moment" + }, + "USER_MESSAGE": "Hi", + "AGENT_MESSAGE": "Hello" + }, + "BRANDING_TEXT": "Powered by Chatwoot", + "SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};" + }, + "EMAIL_PROVIDERS": { + "MICROSOFT": "Microsoft", + "OTHER_PROVIDERS": "Other Providers" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/integrationApps.json b/app/javascript/dashboard/i18n/locale/sh/integrationApps.json new file mode 100644 index 000000000..a80ecb837 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/integrationApps.json @@ -0,0 +1,62 @@ +{ + "INTEGRATION_APPS": { + "FETCHING": "Fetching Integrations", + "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.", + "HEADER": "Applications", + "STATUS": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "CONFIGURE": "Configure", + "ADD_BUTTON": "Add a new hook", + "DELETE": { + "TITLE": { + "INBOX": "Confirm deletion", + "ACCOUNT": "Disconnect" + }, + "MESSAGE": { + "INBOX": "Are you sure to delete?", + "ACCOUNT": "Are you sure to disconnect?" + }, + "CONFIRM_BUTTON_TEXT": { + "INBOX": "Yes, Delete", + "ACCOUNT": "Yes, Disconnect" + }, + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Hook deleted successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "LIST": { + "FETCHING": "Fetching integration hooks", + "INBOX": "Inbox", + "DELETE": { + "BUTTON_TEXT": "Delete" + } + }, + "ADD": { + "FORM": { + "INBOX": { + "LABEL": "Select Inbox", + "PLACEHOLDER": "Select Inbox" + }, + "SUBMIT": "Create", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Integration hook added successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "CONNECT": { + "BUTTON_TEXT": "Connect" + }, + "DISCONNECT": { + "BUTTON_TEXT": "Disconnect" + }, + "SIDEBAR_DESCRIPTION": { + "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.

Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.

To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information." + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/integrations.json b/app/javascript/dashboard/i18n/locale/sh/integrations.json new file mode 100644 index 000000000..00d92f297 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/integrations.json @@ -0,0 +1,144 @@ +{ + "INTEGRATION_SETTINGS": { + "HEADER": "Integrations", + "WEBHOOK": { + "SUBSCRIBED_EVENTS": "Subscribed Events", + "FORM": { + "CANCEL": "Cancel", + "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.", + "SUBSCRIPTIONS": { + "LABEL": "Events", + "EVENTS": { + "CONVERSATION_CREATED": "Conversation Created", + "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed", + "CONVERSATION_UPDATED": "Conversation Updated", + "MESSAGE_CREATED": "Message created", + "MESSAGE_UPDATED": "Message updated", + "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user", + "CONTACT_CREATED": "Contact created", + "CONTACT_UPDATED": "Contact updated" + } + }, + "END_POINT": { + "LABEL": "Webhook URL", + "PLACEHOLDER": "Example: https://example/api/webhook", + "ERROR": "Please enter a valid URL" + }, + "EDIT_SUBMIT": "Update webhook", + "ADD_SUBMIT": "Create 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" + ] + }, + "EDIT": { + "BUTTON_TEXT": "Edit", + "TITLE": "Edit webhook", + "API": { + "SUCCESS_MESSAGE": "Webhook configuration updated successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "ADD": { + "CANCEL": "Cancel", + "TITLE": "Add new webhook", + "API": { + "SUCCESS_MESSAGE": "Webhook configuration 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 the webhook? (%{webhookURL})", + "YES": "Yes, Delete ", + "NO": "No, Keep it" + } + } + }, + "SLACK": { + "HELP_TEXT": { + "TITLE": "Using Slack Integration", + "BODY": "

Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.

Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.

Start the replies with note: to create private notes instead of replies.

If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.

When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.

" + } + }, + "DYTE": { + "CLICK_HERE_TO_JOIN": "Click here to join", + "LEAVE_THE_ROOM": "Leave the room", + "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer", + "JOIN_ERROR": "There was an error joining the call, please try again", + "CREATE_ERROR": "There was an error creating a meeting link, please try again" + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Integration deleted successfully" + } + }, + "CONNECT": { + "BUTTON_TEXT": "Connect" + }, + "DASHBOARD_APPS": { + "TITLE": "Dashboard Apps", + "HEADER_BTN_TXT": "Add a new dashboard app", + "SIDEBAR_TXT": "

Dashboard Apps

Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.

When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.

To add a new dashboard app, click on the button 'Add a new dashboard app'.

", + "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.", + "LIST": { + "404": "There are no dashboard apps configured on this account yet", + "LOADING": "Fetching dashboard apps...", + "TABLE_HEADER": [ + "Name", + "Endpoint" + ], + "EDIT_TOOLTIP": "Edit app", + "DELETE_TOOLTIP": "Delete app" + }, + "FORM": { + "TITLE_LABEL": "Name", + "TITLE_PLACEHOLDER": "Enter a name for your dashboard app", + "TITLE_ERROR": "A name for the dashboard app is required", + "URL_LABEL": "Endpoint", + "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted", + "URL_ERROR": "A valid URL is required" + }, + "CREATE": { + "HEADER": "Add a new dashboard app", + "FORM_SUBMIT": "Submit", + "FORM_CANCEL": "Cancel", + "API_SUCCESS": "Dashboard app configured successfully", + "API_ERROR": "We couldn't create an app. Please try again later" + }, + "UPDATE": { + "HEADER": "Edit dashboard app", + "FORM_SUBMIT": "Update", + "FORM_CANCEL": "Cancel", + "API_SUCCESS": "Dashboard app updated successfully", + "API_ERROR": "We couldn't update the app. Please try again later" + }, + "DELETE": { + "CONFIRM_YES": "Yes, delete it", + "CONFIRM_NO": "No, keep it", + "TITLE": "Confirm deletion", + "MESSAGE": "Are you sure to delete the app - %{appName}?", + "API_SUCCESS": "Dashboard app deleted successfully", + "API_ERROR": "We couldn't delete the app. Please try again later" + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/sh/labelsMgmt.json new file mode 100644 index 000000000..db12fa32a --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/labelsMgmt.json @@ -0,0 +1,70 @@ +{ + "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", + "REQUIRED_ERROR": "Label name is required", + "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required", + "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed" + }, + "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/sh/login.json b/app/javascript/dashboard/i18n/locale/sh/login.json new file mode 100644 index 000000000..25c956a81 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/login.json @@ -0,0 +1,26 @@ +{ + "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" + }, + "OAUTH": { + "GOOGLE_LOGIN": "Login with Google", + "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login", + "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address." + }, + "FORGOT_PASSWORD": "Forgot your password?", + "CREATE_NEW_ACCOUNT": "Create new account", + "SUBMIT": "Login" + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/macros.json b/app/javascript/dashboard/i18n/locale/sh/macros.json new file mode 100644 index 000000000..3a59d4f26 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/macros.json @@ -0,0 +1,78 @@ +{ + "MACROS": { + "HEADER": "Macros", + "HEADER_BTN_TXT": "Add a new macro", + "HEADER_BTN_TXT_SAVE": "Save macro", + "LOADING": "Fetching macros", + "SIDEBAR_TXT": "

Macros

A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.

A macro can be helpful in 2 ways.

As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.

As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.

", + "ERROR": "Something went wrong. Please try again", + "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.", + "ADD": { + "FORM": { + "NAME": { + "LABEL": "Macro name", + "PLACEHOLDER": "Enter a name for your macro", + "ERROR": "Name is required for creating a macro" + }, + "ACTIONS": { + "LABEL": "Actions" + } + }, + "API": { + "SUCCESS_MESSAGE": "Macro added successfully", + "ERROR_MESSAGE": "Unable to create macro, Please try again later" + } + }, + "LIST": { + "TABLE_HEADER": [ + "Name", + "Created by", + "Last updated by", + "Visibility" + ], + "404": "No macros found" + }, + "DELETE": { + "TOOLTIP": "Delete macro", + "CONFIRM": { + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete", + "NO": "No" + }, + "API": { + "SUCCESS_MESSAGE": "Macro deleted successfully", + "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later" + } + }, + "EDIT": { + "TOOLTIP": "Edit macro", + "API": { + "SUCCESS_MESSAGE": "Macro updated successfully", + "ERROR_MESSAGE": "Could not update Macro, Please try again later" + } + }, + "EDITOR": { + "START_FLOW": "Start Flow", + "END_FLOW": "End Flow", + "LOADING": "Fetching macro", + "ADD_BTN_TOOLTIP": "Add new action", + "DELETE_BTN_TOOLTIP": "Delete Action", + "VISIBILITY": { + "LABEL": "Macro Visibility", + "GLOBAL": { + "LABEL": "Public", + "DESCRIPTION": "This macro is available publicly for all agents in this account." + }, + "PERSONAL": { + "LABEL": "Private", + "DESCRIPTION": "This macro will be private to you and not be available to others." + } + } + }, + "EXECUTE": { + "BUTTON_TOOLTIP": "Execute", + "PREVIEW": "Preview Macro", + "EXECUTED_SUCCESSFULLY": "Macro executed successfully" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/report.json b/app/javascript/dashboard/i18n/locale/sh/report.json new file mode 100644 index 000000000..48dcccc2b --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/report.json @@ -0,0 +1,462 @@ +{ + "REPORT": { + "HEADER": "Conversations", + "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 )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + }, + "GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By", + "DURATION_FILTER_LABEL": "Duration", + "GROUP_BY_DAY_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + } + ], + "GROUP_BY_WEEK_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + }, + { + "id": 2, + "groupBy": "Week" + } + ], + "GROUP_BY_MONTH_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + }, + { + "id": 2, + "groupBy": "Week" + }, + { + "id": 3, + "groupBy": "Month" + } + ], + "GROUP_BY_YEAR_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + }, + { + "id": 2, + "groupBy": "Week" + }, + { + "id": 3, + "groupBy": "Month" + }, + { + "id": 4, + "groupBy": "Year" + } + ], + "BUSINESS_HOURS": "Business Hours" + }, + "AGENT_REPORTS": { + "HEADER": "Agents Overview", + "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", + "FILTER_DROPDOWN_LABEL": "Select Agent", + "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 )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "LABEL_REPORTS": { + "HEADER": "Labels Overview", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_LABEL_REPORTS": "Download label reports", + "FILTER_DROPDOWN_LABEL": "Select Label", + "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 )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "INBOX_REPORTS": { + "HEADER": "Inbox Overview", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_INBOX_REPORTS": "Download inbox reports", + "FILTER_DROPDOWN_LABEL": "Select Inbox", + "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 )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "TEAM_REPORTS": { + "HEADER": "Team Overview", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_TEAM_REPORTS": "Download team reports", + "FILTER_DROPDOWN_LABEL": "Select Team", + "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 )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "CSAT_REPORTS": { + "HEADER": "CSAT Reports", + "NO_RECORDS": "There are no CSAT survey responses available.", + "DOWNLOAD": "Download CSAT Reports", + "FILTERS": { + "AGENTS": { + "PLACEHOLDER": "Choose Agents" + } + }, + "TABLE": { + "HEADER": { + "CONTACT_NAME": "Contact", + "AGENT_NAME": "Assigned agent", + "RATING": "Rating", + "FEEDBACK_TEXT": "Feedback comment" + } + }, + "METRIC": { + "TOTAL_RESPONSES": { + "LABEL": "Total responses", + "TOOLTIP": "Total number of responses collected" + }, + "SATISFACTION_SCORE": { + "LABEL": "Satisfaction score", + "TOOLTIP": "Total number of positive responses / Total number of responses * 100" + }, + "RESPONSE_RATE": { + "LABEL": "Response rate", + "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100" + } + } + }, + "OVERVIEW_REPORTS": { + "HEADER": "Overview", + "LIVE": "Live", + "ACCOUNT_CONVERSATIONS": { + "HEADER": "Open Conversations", + "LOADING_MESSAGE": "Loading conversation metrics...", + "OPEN": "Open", + "UNATTENDED": "Unattended", + "UNASSIGNED": "Unassigned" + }, + "CONVERSATION_HEATMAP": { + "HEADER": "Conversation Traffic", + "NO_CONVERSATIONS": "No conversations", + "CONVERSATION": "%{count} conversation", + "CONVERSATIONS": "%{count} conversations" + }, + "AGENT_CONVERSATIONS": { + "HEADER": "Conversations by agents", + "LOADING_MESSAGE": "Loading agent metrics...", + "NO_AGENTS": "There are no conversations by agents", + "TABLE_HEADER": { + "AGENT": "Agent", + "OPEN": "OPEN", + "UNATTENDED": "Unattended", + "STATUS": "Status" + } + }, + "AGENT_STATUS": { + "HEADER": "Agent status", + "ONLINE": "Online", + "BUSY": "Busy", + "OFFLINE": "Offline" + } + }, + "DAYS_OF_WEEK": { + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday" + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/resetPassword.json b/app/javascript/dashboard/i18n/locale/sh/resetPassword.json new file mode 100644 index 000000000..bb678e809 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/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/sh/search.json b/app/javascript/dashboard/i18n/locale/sh/search.json new file mode 100644 index 000000000..418572c0c --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/search.json @@ -0,0 +1,23 @@ +{ + "SEARCH": { + "TABS": { + "ALL": "All", + "CONTACTS": "Contacts", + "CONVERSATIONS": "Conversations", + "MESSAGES": "Messages" + }, + "SECTION": { + "CONTACTS": "Contacts", + "CONVERSATIONS": "Conversations", + "MESSAGES": "Messages" + }, + "EMPTY_STATE": "No %{item} found for query '%{query}'", + "EMPTY_STATE_FULL": "No results found for query '%{query}'", + "PLACEHOLDER_KEYBINDING": "/ to focus", + "INPUT_PLACEHOLDER": "Search messages, contacts or conversations", + "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.", + "BOT_LABEL": "Bot", + "READ_MORE": "Read more", + "WROTE": "wrote:" + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/setNewPassword.json b/app/javascript/dashboard/i18n/locale/sh/setNewPassword.json new file mode 100644 index 000000000..ec2d94744 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/setNewPassword.json @@ -0,0 +1,23 @@ +{ + "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" + }, + "CAPTCHA": { + "ERROR": "Verification expired. Please solve captcha again." + }, + "SUBMIT": "Submit" + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/settings.json b/app/javascript/dashboard/i18n/locale/sh/settings.json new file mode 100644 index 000000000..f670fc360 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/settings.json @@ -0,0 +1,315 @@ +{ + "PROFILE_SETTINGS": { + "LINK": "Profile Settings", + "TITLE": "Profile Settings", + "BTN_TEXT": "Update Profile", + "DELETE_AVATAR": "Delete Avatar", + "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully", + "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again", + "UPDATE_SUCCESS": "Your profile has been updated successfully", + "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully", + "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." + }, + "SEND_MESSAGE": { + "TITLE": "Hotkey to send messages", + "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.", + "UPDATE_SUCCESS": "Your settings have been updated successfully", + "CARD": { + "ENTER_KEY": { + "HEADING": "Enter (↵)", + "CONTENT": "Send messages by pressing Enter key instead of clicking the send button." + }, + "CMD_ENTER_KEY": { + "HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)", + "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button." + } + } + }, + "MESSAGE_SIGNATURE_SECTION": { + "TITLE": "Personal message signature", + "NOTE": "Create a personal message signature that would be added to all the messages you send from your email inbox. Use the rich content editor to create a highly personalised signature.", + "BTN_TEXT": "Save message signature", + "API_ERROR": "Couldn't save signature! Try again", + "API_SUCCESS": "Signature saved successfully" + }, + "MESSAGE_SIGNATURE": { + "LABEL": "Message Signature", + "ERROR": "Message Signature cannot be empty", + "PLACEHOLDER": "Insert your personal message signature here." + }, + "PASSWORD_SECTION": { + "TITLE": "Password", + "NOTE": "Updating your password would reset your logins in multiple devices.", + "BTN_TEXT": "Change password" + }, + "ACCESS_TOKEN": { + "TITLE": "Access Token", + "NOTE": "This token can be used if you are building an API based integration" + }, + "AUDIO_NOTIFICATIONS_SECTION": { + "TITLE": "Audio Notifications", + "NOTE": "Enable audio notifications in dashboard for new messages and conversations.", + "ALERT_TYPE": { + "TITLE": "Alert events:", + "NONE": "None", + "ASSIGNED": "Assigned Conversations", + "ALL_CONVERSATIONS": "All Conversations" + }, + "DEFAULT_TONE": { + "TITLE": "Alert tone:" + }, + "CONDITIONS": { + "TITLE": "Alert conditions:", + "CONDITION_ONE": "Send audio alerts only if the browser window is not active", + "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read" + } + }, + "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", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating 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", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating 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" + ], + "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully", + "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again" + }, + "EMAIL": { + "LABEL": "Your email address", + "ERROR": "Please enter a valid email address", + "PLACEHOLDER": "Please enter your email address, this would be displayed in conversations" + }, + "CURRENT_PASSWORD": { + "LABEL": "Current password", + "ERROR": "Please enter the current password", + "PLACEHOLDER": "Please enter the current password" + }, + "PASSWORD": { + "LABEL": "New 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 new password" + } + } + }, + "SIDEBAR_ITEMS": { + "CHANGE_AVAILABILITY_STATUS": "Change", + "CHANGE_ACCOUNTS": "Switch Account", + "CONTACT_SUPPORT": "Contact Support", + "SELECTOR_SUBTITLE": "Select an account from the following list", + "PROFILE_SETTINGS": "Profile Settings", + "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts", + "SUPER_ADMIN_CONSOLE": "Super Admin Console", + "LOGOUT": "Logout" + }, + "APP_GLOBAL": { + "TRIAL_MESSAGE": "days trial remaining.", + "TRAIL_BUTTON": "Buy Now", + "DELETED_USER": "Deleted User", + "ACCOUNT_SUSPENDED": { + "TITLE": "Account Suspended", + "MESSAGE": "Your account is suspended. Please reach out to the support team for more information." + } + }, + "COMPONENTS": { + "CODE": { + "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", + "COPY_SUCCESSFUL": "Copied to clipboard" + }, + "SHOW_MORE_BLOCK": { + "SHOW_MORE": "Show More", + "SHOW_LESS": "Show Less" + }, + "FILE_BUBBLE": { + "DOWNLOAD": "Download", + "UPLOADING": "Uploading...", + "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available." + }, + "LOCATION_BUBBLE": { + "SEE_ON_MAP": "See on map" + }, + "FORM_BUBBLE": { + "SUBMIT": "Submit" + } + }, + "CONFIRM_EMAIL": "Verifying...", + "SETTINGS": { + "INBOXES": { + "NEW_INBOX": "Add Inbox" + } + }, + "SIDEBAR": { + "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:", + "SWITCH": "Switch", + "CONVERSATIONS": "Conversations", + "ALL_CONVERSATIONS": "All Conversations", + "MENTIONED_CONVERSATIONS": "Mentions", + "PARTICIPATING_CONVERSATIONS": "Participating", + "UNATTENDED_CONVERSATIONS": "Unattended", + "REPORTS": "Reports", + "SETTINGS": "Settings", + "CONTACTS": "Contacts", + "HOME": "Home", + "AGENTS": "Agents", + "AGENT_BOTS": "Bots", + "INBOXES": "Inboxes", + "NOTIFICATIONS": "Notifications", + "CANNED_RESPONSES": "Canned Responses", + "INTEGRATIONS": "Integrations", + "PROFILE_SETTINGS": "Profile Settings", + "ACCOUNT_SETTINGS": "Account Settings", + "APPLICATIONS": "Applications", + "LABELS": "Labels", + "CUSTOM_ATTRIBUTES": "Custom Attributes", + "AUTOMATION": "Automation", + "MACROS": "Macros", + "TEAMS": "Teams", + "BILLING": "Billing", + "CUSTOM_VIEWS_FOLDER": "Folders", + "CUSTOM_VIEWS_SEGMENTS": "Segments", + "ALL_CONTACTS": "All Contacts", + "TAGGED_WITH": "Tagged with", + "NEW_LABEL": "New label", + "NEW_TEAM": "New team", + "NEW_INBOX": "New inbox", + "REPORTS_CONVERSATION": "Conversations", + "CSAT": "CSAT", + "CAMPAIGNS": "Campaigns", + "ONGOING": "Ongoing", + "ONE_OFF": "One off", + "REPORTS_AGENT": "Agents", + "REPORTS_LABEL": "Labels", + "REPORTS_INBOX": "Inbox", + "REPORTS_TEAM": "Team", + "SET_AVAILABILITY_TITLE": "Set yourself as", + "BETA": "Beta", + "REPORTS_OVERVIEW": "Overview", + "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services", + "HELP_CENTER": { + "TITLE": "Help Center (Beta)", + "ALL_ARTICLES": "All Articles", + "MY_ARTICLES": "My Articles", + "DRAFT": "Draft", + "ARCHIVED": "Archived", + "CATEGORY": "Category", + "SETTINGS": "Settings", + "CATEGORY_EMPTY_MESSAGE": "No categories found" + }, + "SET_AUTO_OFFLINE": { + "TEXT": "Mark offline automatically", + "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard." + }, + "DOCS": "Read docs" + }, + "BILLING_SETTINGS": { + "TITLE": "Billing", + "CURRENT_PLAN": { + "TITLE": "Current Plan", + "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses" + }, + "MANAGE_SUBSCRIPTION": { + "TITLE": "Manage your subscription", + "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.", + "BUTTON_TXT": "Go to the billing portal" + }, + "CHAT_WITH_US": { + "TITLE": "Need help?", + "DESCRIPTION": "Do you face any issues in billing? We are here to help.", + "BUTTON_TXT": "Chat with us" + }, + "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again." + }, + "CREATE_ACCOUNT": { + "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.", + "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": "Company Name", + "PLACEHOLDER": "Wayne Enterprises" + }, + "SUBMIT": "Submit" + } + }, + "KEYBOARD_SHORTCUTS": { + "TOGGLE_MODAL": "View all shortcuts", + "TITLE": { + "OPEN_CONVERSATION": "Open conversation", + "RESOLVE_AND_NEXT": "Resolve and move to next", + "NAVIGATE_DROPDOWN": "Navigate dropdown items", + "RESOLVE_CONVERSATION": "Resolve Conversation", + "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard", + "ADD_ATTACHMENT": "Add Attachment", + "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard", + "TOGGLE_SIDEBAR": "Toggle Sidebar", + "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar", + "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list", + "GO_TO_SETTINGS": "Go to Settings", + "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status", + "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note", + "SWITCH_TO_REPLY": "Switch to Reply", + "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown" + }, + "KEYS": { + "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘", + "ALT_OR_OPTION_KEY": "Alt / ⌥", + "FORWARD_SLASH_KEY": "/" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/signup.json b/app/javascript/dashboard/i18n/locale/sh/signup.json new file mode 100644 index 000000000..10ddc5b86 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/signup.json @@ -0,0 +1,44 @@ +{ + "REGISTER": { + "TRY_WOOT": "Create an account", + "TITLE": "Register", + "TESTIMONIAL_HEADER": "All it takes is one step to move forward", + "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.", + "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy", + "OAUTH": { + "GOOGLE_SIGNUP": "Sign up with Google" + }, + "COMPANY_NAME": { + "LABEL": "Company name", + "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises", + "ERROR": "Company 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": "Please enter a valid work email address" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACEHOLDER": "Password", + "ERROR": "Password is too short", + "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character" + }, + "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": "Create account", + "HAVE_AN_ACCOUNT": "Already have an account?" + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/teamsSettings.json b/app/javascript/dashboard/i18n/locale/sh/teamsSettings.json new file mode 100644 index 000000000..f9ecaaaae --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/teamsSettings.json @@ -0,0 +1,125 @@ +{ + "TEAMS_SETTINGS": { + "NEW_TEAM": "Create new team", + "HEADER": "Teams", + "SIDEBAR_TXT": "

Teams

Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.

", + "LIST": { + "404": "There are no teams created on this account.", + "EDIT_TEAM": "Edit team" + }, + "CREATE_FLOW": { + "CREATE": { + "TITLE": "Create a new team", + "DESC": "Add a title and description to your new team." + }, + "AGENTS": { + "BUTTON_TEXT": "Add agents to team", + "TITLE": "Add agents to team - %{teamName}", + "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation." + }, + "WIZARD": [ + { + "title": "Create", + "route": "settings_teams_new", + "body": "Create a new team of agents." + }, + { + "title": "Add Agents", + "route": "settings_teams_add_agents", + "body": "Add agents to the team." + }, + { + "title": "Finish", + "route": "settings_teams_finish", + "body": "You are all set to go!" + } + ] + }, + "EDIT_FLOW": { + "CREATE": { + "TITLE": "Edit your team details", + "DESC": "Edit title and description to your team.", + "BUTTON_TEXT": "Update team" + }, + "AGENTS": { + "BUTTON_TEXT": "Update agents in team", + "TITLE": "Add agents to team - %{teamName}", + "DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team." + }, + "WIZARD": [ + { + "title": "Team details", + "route": "settings_teams_edit", + "body": "Change name, description and other details." + }, + { + "title": "Edit Agents", + "route": "settings_teams_edit_members", + "body": "Edit agents in your team." + }, + { + "title": "Finish", + "route": "settings_teams_edit_finish", + "body": "You are all set to go!" + } + ] + }, + "TEAM_FORM": { + "ERROR_MESSAGE": "Couldn't save the team details. Try again." + }, + "AGENTS": { + "AGENT": "AGENT", + "EMAIL": "EMAIL", + "BUTTON_TEXT": "Add agents", + "ADD_AGENTS": "Adding Agents to your Team...", + "SELECT": "select", + "SELECT_ALL": "select all agents", + "SELECTED_COUNT": "%{selected} out of %{total} agents selected." + }, + "ADD": { + "TITLE": "Add agents to team - %{teamName}", + "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.", + "SELECT": "select", + "SELECT_ALL": "select all agents", + "SELECTED_COUNT": "%{selected} out of %{total} agents selected.", + "BUTTON_TEXT": "Add agents", + "AGENT_VALIDATION_ERROR": "Select at least one agent." + }, + "FINISH": { + "TITLE": "Your team is ready!", + "MESSAGE": "You can now collaborate as a team on conversations. Happy supporting ", + "BUTTON_TEXT": "Finish" + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Team deleted successfully.", + "ERROR_MESSAGE": "Couldn't delete the team. Try again." + }, + "CONFIRM": { + "TITLE": "Are you sure want to delete - %{teamName}", + "PLACE_HOLDER": "Please type {teamName} to confirm", + "MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.", + "YES": "Delete ", + "NO": "Cancel" + } + }, + "SETTINGS": "Settings", + "FORM": { + "UPDATE": "Update team", + "CREATE": "Create team", + "NAME": { + "LABEL": "Team name", + "PLACEHOLDER": "Example: Sales, Customer Support" + }, + "DESCRIPTION": { + "LABEL": "Team Description", + "PLACEHOLDER": "Short description about this team." + }, + "AUTO_ASSIGN": { + "LABEL": "Allow auto assign for this team." + }, + "SUBMIT_CREATE": "Create team" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/webhooks.json b/app/javascript/dashboard/i18n/locale/sh/webhooks.json new file mode 100644 index 000000000..347c96893 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/webhooks.json @@ -0,0 +1,5 @@ +{ + "WEBHOOKS_SETTINGS": { + "HEADER": "Webhook Settings" + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/sh/whatsappTemplates.json new file mode 100644 index 000000000..bbcf28156 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/whatsappTemplates.json @@ -0,0 +1,25 @@ +{ + "WHATSAPP_TEMPLATES": { + "MODAL": { + "TITLE": "Whatsapp Templates", + "SUBTITLE": "Select the whatsapp template you want to send", + "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}" + }, + "PICKER": { + "SEARCH_PLACEHOLDER": "Search Templates", + "NO_TEMPLATES_FOUND": "No templates found for", + "LABELS": { + "LANGUAGE": "Language", + "TEMPLATE_BODY": "Template Body", + "CATEGORY": "Category" + } + }, + "PARSER": { + "VARIABLES_LABEL": "Variables", + "VARIABLE_PLACEHOLDER": "Enter %{variable} value", + "GO_BACK_LABEL": "Go Back", + "SEND_MESSAGE_LABEL": "Send Message", + "FORM_ERROR_MESSAGE": "Please fill all variables before sending" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/sk/advancedFilters.json b/app/javascript/dashboard/i18n/locale/sk/advancedFilters.json index 300c7a167..f6b1099ed 100644 --- a/app/javascript/dashboard/i18n/locale/sk/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/sk/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/sk/agentMgmt.json b/app/javascript/dashboard/i18n/locale/sk/agentMgmt.json index 7ffaa9222..14b18ca4d 100644 --- a/app/javascript/dashboard/i18n/locale/sk/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sk/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "E-mailová adresa", "PLACEHOLDER": "Zadajte e-mailovú adresu agenta" }, + "AGENT_AVAILABILITY": { + "LABEL": "Dostupnosť", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Upraviť agenta" }, "BUTTON_TEXT": "Upraviť", diff --git a/app/javascript/dashboard/i18n/locale/sk/contact.json b/app/javascript/dashboard/i18n/locale/sk/contact.json index c340e42bf..182c12173 100644 --- a/app/javascript/dashboard/i18n/locale/sk/contact.json +++ b/app/javascript/dashboard/i18n/locale/sk/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Zadajte názov spoločnosti", "LABEL": "Názov spoločnosti" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Zadajte používateľské meno na Facebooku", diff --git a/app/javascript/dashboard/i18n/locale/sk/conversation.json b/app/javascript/dashboard/i18n/locale/sk/conversation.json index dfd40de26..324b49c44 100644 --- a/app/javascript/dashboard/i18n/locale/sk/conversation.json +++ b/app/javascript/dashboard/i18n/locale/sk/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copy", "DELETE": "Vymazať", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Vymazať", + "CANCEL": "Zrušiť" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json index 36e05ca72..565133aee 100644 --- a/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/sk/settings.json b/app/javascript/dashboard/i18n/locale/sk/settings.json index 0dc467b6b..a0cedbd63 100644 --- a/app/javascript/dashboard/i18n/locale/sk/settings.json +++ b/app/javascript/dashboard/i18n/locale/sk/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code copied to clipboard successfully" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/sr/advancedFilters.json b/app/javascript/dashboard/i18n/locale/sr/advancedFilters.json index 41c1d1793..4f629339b 100644 --- a/app/javascript/dashboard/i18n/locale/sr/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/sr/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Ne postoji", "is_greater_than": "Veće je od", "is_less_than": "Manje je od", - "days_before": "Je x dana pre" + "days_before": "Je x dana pre", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "Istinito", diff --git a/app/javascript/dashboard/i18n/locale/sr/agentMgmt.json b/app/javascript/dashboard/i18n/locale/sr/agentMgmt.json index aef71c796..bf48b8bc0 100644 --- a/app/javascript/dashboard/i18n/locale/sr/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sr/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "E-mail adresa", "PLACEHOLDER": "Unesite e-mail adresu agenta" }, + "AGENT_AVAILABILITY": { + "LABEL": "Dostupnost", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Uredi agenta" }, "BUTTON_TEXT": "Uredi", diff --git a/app/javascript/dashboard/i18n/locale/sr/contact.json b/app/javascript/dashboard/i18n/locale/sr/contact.json index bf055b687..9d7eb244f 100644 --- a/app/javascript/dashboard/i18n/locale/sr/contact.json +++ b/app/javascript/dashboard/i18n/locale/sr/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Unesite ime kompanije", "LABEL": "Ime firme" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Naziv zemlje", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Ukloni", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Unesite Fejsbuk korisničko ime", diff --git a/app/javascript/dashboard/i18n/locale/sr/conversation.json b/app/javascript/dashboard/i18n/locale/sr/conversation.json index a4f61acf3..1071a1e5b 100644 --- a/app/javascript/dashboard/i18n/locale/sr/conversation.json +++ b/app/javascript/dashboard/i18n/locale/sr/conversation.json @@ -166,7 +166,15 @@ "COPY": "Kopiraj", "DELETE": "Izbriši", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Izbriši", + "CANCEL": "Otkaži" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json index af8e576d3..fe4882876 100644 --- a/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Mogućnosti", "DISPLAY_FILE_PICKER": "Prikaži izbornik datoteke na vidžetu", "DISPLAY_EMOJI_PICKER": "Prikaži izbornik emotikona u vidžetu", - "ALLOW_END_CONVERSATION": "Dozvoli korisnicima da završe razgovor iz vidžeta" + "ALLOW_END_CONVERSATION": "Dozvoli korisnicima da završe razgovor iz vidžeta", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Mesindžer skripta", diff --git a/app/javascript/dashboard/i18n/locale/sr/settings.json b/app/javascript/dashboard/i18n/locale/sr/settings.json index 637e25815..7fe457538 100644 --- a/app/javascript/dashboard/i18n/locale/sr/settings.json +++ b/app/javascript/dashboard/i18n/locale/sr/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Kopiraj", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Kod je uspešno kopiran na beležnicu" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/sv/advancedFilters.json b/app/javascript/dashboard/i18n/locale/sv/advancedFilters.json index d9ca47ae5..a34e2aac9 100644 --- a/app/javascript/dashboard/i18n/locale/sv/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/sv/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/sv/agentMgmt.json b/app/javascript/dashboard/i18n/locale/sv/agentMgmt.json index 8ddcf1245..f576559b7 100644 --- a/app/javascript/dashboard/i18n/locale/sv/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sv/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "E-postadress", "PLACEHOLDER": "Ange en e-postadress till agenten" }, + "AGENT_AVAILABILITY": { + "LABEL": "Tillgänglighet", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Redigera agent" }, "BUTTON_TEXT": "Redigera", diff --git a/app/javascript/dashboard/i18n/locale/sv/contact.json b/app/javascript/dashboard/i18n/locale/sv/contact.json index 3a6a1530b..a301604cc 100644 --- a/app/javascript/dashboard/i18n/locale/sv/contact.json +++ b/app/javascript/dashboard/i18n/locale/sv/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Ange företagets namn", "LABEL": "Företagsnamn" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Radera", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Ange Facebook-användarnamn", diff --git a/app/javascript/dashboard/i18n/locale/sv/conversation.json b/app/javascript/dashboard/i18n/locale/sv/conversation.json index e9bb96e8e..a4cadd9f3 100644 --- a/app/javascript/dashboard/i18n/locale/sv/conversation.json +++ b/app/javascript/dashboard/i18n/locale/sv/conversation.json @@ -166,7 +166,15 @@ "COPY": "Kopiera", "DELETE": "Radera", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Radera", + "CANCEL": "Avbryt" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json index 53d00bc74..bcfed5b9e 100644 --- a/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Funktioner", "DISPLAY_FILE_PICKER": "Visa filväljare på widgeten", "DISPLAY_EMOJI_PICKER": "Visa emoji-väljare på widgeten", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Skript för Messenger", diff --git a/app/javascript/dashboard/i18n/locale/sv/settings.json b/app/javascript/dashboard/i18n/locale/sv/settings.json index 747bc9b72..da795302b 100644 --- a/app/javascript/dashboard/i18n/locale/sv/settings.json +++ b/app/javascript/dashboard/i18n/locale/sv/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Kopiera", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Koden har kopierats till urklipp" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/ta/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ta/advancedFilters.json index c113617d6..a0ae9eec3 100644 --- a/app/javascript/dashboard/i18n/locale/ta/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/ta/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/ta/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ta/agentMgmt.json index df8253677..1526b5a9d 100644 --- a/app/javascript/dashboard/i18n/locale/ta/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ta/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "ஈ-மெயில் முகவரி", "PLACEHOLDER": "ஏஜெண்டின் ஈ-மெயில் முகவரியை உள்ளிடவும்" }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "ஏஜெண்டில் திருத்து" }, "BUTTON_TEXT": "திருத்து", diff --git a/app/javascript/dashboard/i18n/locale/ta/contact.json b/app/javascript/dashboard/i18n/locale/ta/contact.json index 6d85a1a89..c6d848057 100644 --- a/app/javascript/dashboard/i18n/locale/ta/contact.json +++ b/app/javascript/dashboard/i18n/locale/ta/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Enter the company name", "LABEL": "Company Name" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "நீக்கு", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Enter the Facebook username", diff --git a/app/javascript/dashboard/i18n/locale/ta/conversation.json b/app/javascript/dashboard/i18n/locale/ta/conversation.json index 682b9fffb..1aaf78bab 100644 --- a/app/javascript/dashboard/i18n/locale/ta/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ta/conversation.json @@ -166,7 +166,15 @@ "COPY": "நகல்", "DELETE": "Delete", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Delete", + "CANCEL": "ரத்துசெய்" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json index e8562943b..a85fdfc07 100644 --- a/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "மெசஞ்சர் ஸ்கிரிப்ட்", diff --git a/app/javascript/dashboard/i18n/locale/ta/settings.json b/app/javascript/dashboard/i18n/locale/ta/settings.json index 61be20dc7..dd882ecd5 100644 --- a/app/javascript/dashboard/i18n/locale/ta/settings.json +++ b/app/javascript/dashboard/i18n/locale/ta/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "நகல்", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "குறியீடு கிளிப்போர்டில் வெற்றிகரமாக காப்பி செய்யப்பட்டது" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/th/advancedFilters.json b/app/javascript/dashboard/i18n/locale/th/advancedFilters.json index c44c34f89..d15bae9b5 100644 --- a/app/javascript/dashboard/i18n/locale/th/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/th/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "ไม่แสดงอยู่", "is_greater_than": "หลังจาก", "is_less_than": "ก่อนหน้า", - "days_before": "x วันก่อน" + "days_before": "x วันก่อน", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "จริง", diff --git a/app/javascript/dashboard/i18n/locale/th/agentMgmt.json b/app/javascript/dashboard/i18n/locale/th/agentMgmt.json index 78d268e4a..959a73bc9 100644 --- a/app/javascript/dashboard/i18n/locale/th/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/th/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "ที่อยู่อีเมล์", "PLACEHOLDER": "กรุณาระบุที่อยู่อีเมล์ของพนักงาน" }, + "AGENT_AVAILABILITY": { + "LABEL": "สถานะ", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "เเก้ไขพนักงาน" }, "BUTTON_TEXT": "เเก้ไข", diff --git a/app/javascript/dashboard/i18n/locale/th/contact.json b/app/javascript/dashboard/i18n/locale/th/contact.json index e7e2d32fa..bde9e6b31 100644 --- a/app/javascript/dashboard/i18n/locale/th/contact.json +++ b/app/javascript/dashboard/i18n/locale/th/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "กรอกชื่อบริษัท", "LABEL": "ชื่อบริษัท" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "ชื่อประเทศ", + "SELECT_PLACEHOLDER": "เลือก", + "REMOVE": "ลบรูปภาพ", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "กรอกชื่อเฟสบุ๊ค", diff --git a/app/javascript/dashboard/i18n/locale/th/conversation.json b/app/javascript/dashboard/i18n/locale/th/conversation.json index e3f3773a3..c38f8b32f 100644 --- a/app/javascript/dashboard/i18n/locale/th/conversation.json +++ b/app/javascript/dashboard/i18n/locale/th/conversation.json @@ -166,7 +166,15 @@ "COPY": "คัดลอก", "DELETE": "ลบ", "CREATE_A_CANNED_RESPONSE": "เพิ่มไปยังชุดคำตอบสำเร็จรูป", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "ลบ", + "CANCEL": "ยกเลิก" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json index 850e54f55..5ac450b0f 100644 --- a/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "ฟีเจอร์", "DISPLAY_FILE_PICKER": "แสดงตัวเลือกไฟล์ใน widget", "DISPLAY_EMOJI_PICKER": "แสดงตัวเลือกอีโมจิใน widget", - "ALLOW_END_CONVERSATION": "อนุญาตให้ลูกค้าปิดการสนทนาจาก widget" + "ALLOW_END_CONVERSATION": "อนุญาตให้ลูกค้าปิดการสนทนาจาก widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/th/settings.json b/app/javascript/dashboard/i18n/locale/th/settings.json index 84a1f6eb2..8d3af9ee8 100644 --- a/app/javascript/dashboard/i18n/locale/th/settings.json +++ b/app/javascript/dashboard/i18n/locale/th/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "คัดลอก", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "คัดลอกไปยังคลิปบอร์ดเเล้ว" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/tr/advancedFilters.json b/app/javascript/dashboard/i18n/locale/tr/advancedFilters.json index c22657884..f9ba216cd 100644 --- a/app/javascript/dashboard/i18n/locale/tr/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/tr/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Şu an değil", "is_greater_than": "Şundan büyük", "is_less_than": "Şundan daha az", - "days_before": "x gün önce" + "days_before": "x gün önce", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "Doğru", diff --git a/app/javascript/dashboard/i18n/locale/tr/agentMgmt.json b/app/javascript/dashboard/i18n/locale/tr/agentMgmt.json index c52d80c72..a108e09f0 100644 --- a/app/javascript/dashboard/i18n/locale/tr/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/tr/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "E-posta adresi", "PLACEHOLDER": "Lütfen temsilcinin e-posta adresini girin" }, + "AGENT_AVAILABILITY": { + "LABEL": "Uygun", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Temsilciyi düzenle" }, "BUTTON_TEXT": "Düzenle", diff --git a/app/javascript/dashboard/i18n/locale/tr/contact.json b/app/javascript/dashboard/i18n/locale/tr/contact.json index a02ef9db1..d345c9bcf 100644 --- a/app/javascript/dashboard/i18n/locale/tr/contact.json +++ b/app/javascript/dashboard/i18n/locale/tr/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Şirket adını girin", "LABEL": "Şirket Adı" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Ülke Adı", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Kaldır", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Facebook kullanıcı adını girin", diff --git a/app/javascript/dashboard/i18n/locale/tr/conversation.json b/app/javascript/dashboard/i18n/locale/tr/conversation.json index a9b72dc5b..06a9a5cde 100644 --- a/app/javascript/dashboard/i18n/locale/tr/conversation.json +++ b/app/javascript/dashboard/i18n/locale/tr/conversation.json @@ -166,7 +166,15 @@ "COPY": "Kopyala", "DELETE": "Sil", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Sil", + "CANCEL": "İptal Et" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json index c1741e1f5..f463e896b 100644 --- a/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Özellikleri", "DISPLAY_FILE_PICKER": "Widget'ta dosya seçiciyi görüntüle", "DISPLAY_EMOJI_PICKER": "Widget'ta emoji seçiciyi görüntüleyin", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Komut Dosyası", diff --git a/app/javascript/dashboard/i18n/locale/tr/settings.json b/app/javascript/dashboard/i18n/locale/tr/settings.json index 0e4d8bc64..9d55a415e 100644 --- a/app/javascript/dashboard/i18n/locale/tr/settings.json +++ b/app/javascript/dashboard/i18n/locale/tr/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Kopyala", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Kod panoya başarıyla kopyalandı" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/uk/advancedFilters.json b/app/javascript/dashboard/i18n/locale/uk/advancedFilters.json index e9a7694d4..ed94affd6 100644 --- a/app/javascript/dashboard/i18n/locale/uk/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/uk/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Немає", "is_greater_than": "Більше ніж", "is_less_than": "Менше ніж", - "days_before": "X днів до" + "days_before": "X днів до", + "starts_with": "Починається з" }, "ATTRIBUTE_LABELS": { "TRUE": "Так", diff --git a/app/javascript/dashboard/i18n/locale/uk/agentMgmt.json b/app/javascript/dashboard/i18n/locale/uk/agentMgmt.json index 47badb632..ec17116db 100644 --- a/app/javascript/dashboard/i18n/locale/uk/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/uk/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Адреса електронної пошти", "PLACEHOLDER": "Будь ласка, введіть адресу електронної пошти агента" }, + "AGENT_AVAILABILITY": { + "LABEL": "Присутність", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Редагувати агента" }, "BUTTON_TEXT": "Редагувати", diff --git a/app/javascript/dashboard/i18n/locale/uk/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/uk/attributesMgmt.json index c5c188c49..897f71846 100644 --- a/app/javascript/dashboard/i18n/locale/uk/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/uk/attributesMgmt.json @@ -43,7 +43,7 @@ }, "API": { "SUCCESS_MESSAGE": "Користувацький атрибут успішно додано!", - "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later." + "ERROR_MESSAGE": "Не вдалося створити атрибут, спробуйте пізніше." } }, "DELETE": { diff --git a/app/javascript/dashboard/i18n/locale/uk/automation.json b/app/javascript/dashboard/i18n/locale/uk/automation.json index 787ed73a3..66bac58aa 100644 --- a/app/javascript/dashboard/i18n/locale/uk/automation.json +++ b/app/javascript/dashboard/i18n/locale/uk/automation.json @@ -87,8 +87,8 @@ }, "CONDITION": { "DELETE_MESSAGE": "Ви повинні мати принаймні одну умову для збереження", - "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes", - "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes" + "CONTACT_CUSTOM_ATTR_LABEL": "Атрибути контакту", + "CONVERSATION_CUSTOM_ATTR_LABEL": "Атрибути бесіди" }, "ACTION": { "DELETE_MESSAGE": "Ви повинні мати принаймні одну дію для збереження", @@ -111,7 +111,7 @@ "UPLOAD_ERROR": "Не вдалося завантажити вкладення, будь ласка, спробуйте ще раз", "LABEL_IDLE": "Завантажити вкладення", "LABEL_UPLOADING": "Завантажується...", - "LABEL_UPLOADED": "Successfully Uploaded", + "LABEL_UPLOADED": "Успішно завантажено", "LABEL_UPLOAD_FAILED": "Не вдалося завантажити" } } diff --git a/app/javascript/dashboard/i18n/locale/uk/bulkActions.json b/app/javascript/dashboard/i18n/locale/uk/bulkActions.json index 056323a61..455481faa 100644 --- a/app/javascript/dashboard/i18n/locale/uk/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/uk/bulkActions.json @@ -2,8 +2,8 @@ "BULK_ACTION": { "CONVERSATIONS_SELECTED": "Обрано %{conversationCount} розмов", "AGENT_SELECT_LABEL": "Виберіть агента", - "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to", - "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?", + "ASSIGN_CONFIRMATION_LABEL": "Ви впевнені, що хочете призначити %{conversationCount} %{conversationLabel} до", + "UNASSIGN_CONFIRMATION_LABEL": "Ви впевнені, що хочете скасувати призначення %{conversationCount} %{conversationLabel}?", "GO_BACK_LABEL": "Повернутися назад", "ASSIGN_LABEL": "Призначити", "YES": "Так", @@ -31,10 +31,10 @@ "TEAMS": { "TEAM_SELECT_LABEL": "Оберіть команду", "NONE": "Нiчого", - "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", - "ASSIGN_SELECTED_TEAMS": "Assign selected team", - "ASSIGN_SUCCESFUL": "Teams assiged successfully", - "ASSIGN_FAILED": "Failed to assign team, please try again" + "NO_TEAMS_AVAILABLE": "Цей акаунт ще не доданий до жодної команди.", + "ASSIGN_SELECTED_TEAMS": "Призначити обрану команду", + "ASSIGN_SUCCESFUL": "Команди успішно призначені", + "ASSIGN_FAILED": "Не вдалося призначити команду, будь ласка, спробуйте ще раз" } } } diff --git a/app/javascript/dashboard/i18n/locale/uk/contact.json b/app/javascript/dashboard/i18n/locale/uk/contact.json index 3f33f6507..26880acc8 100644 --- a/app/javascript/dashboard/i18n/locale/uk/contact.json +++ b/app/javascript/dashboard/i18n/locale/uk/contact.json @@ -15,7 +15,7 @@ "INITIATED_FROM": "Почалося з", "INITIATED_AT": "Час початку", "IP_ADDRESS": "IP-адреса", - "CREATED_AT_LABEL": "Created", + "CREATED_AT_LABEL": "Створено", "NEW_MESSAGE": "Нове повідомлення", "CONVERSATIONS": { "NO_RECORDS_FOUND": "Не було попередніх бесід, пов'язаних з цим контактом.", @@ -132,6 +132,17 @@ "PLACEHOLDER": "Введіть назву компанії", "LABEL": "Назва компанії" }, + "COUNTRY": { + "PLACEHOLDER": "Введіть назву країни", + "LABEL": "Назва країни", + "SELECT_PLACEHOLDER": "Обрати", + "REMOVE": "Видалити", + "SELECT_COUNTRY": "Оберіть країну" + }, + "CITY": { + "PLACEHOLDER": "Введіть назву міста", + "LABEL": "Назва міста" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Введіть ім'я користувача Facebook", diff --git a/app/javascript/dashboard/i18n/locale/uk/conversation.json b/app/javascript/dashboard/i18n/locale/uk/conversation.json index 6245bfbab..87e57bf59 100644 --- a/app/javascript/dashboard/i18n/locale/uk/conversation.json +++ b/app/javascript/dashboard/i18n/locale/uk/conversation.json @@ -35,7 +35,7 @@ "REMOVE_SELECTION": "Видалити вибране", "DOWNLOAD": "Звантажити", "UNKNOWN_FILE_TYPE": "Невідомий файл", - "SAVE_CONTACT": "Save", + "SAVE_CONTACT": "Зберегти", "UPLOADING_ATTACHMENTS": "Завантаження вкладень...", "SUCCESS_DELETE_MESSAGE": "Повідомлення успішно видалено", "FAIL_DELETE_MESSSAGE": "Не вдалося видалити повідомлення! Спробуйте ще раз", @@ -43,8 +43,8 @@ "RATING_TITLE": "Оцінка", "FEEDBACK_TITLE": "Зворотній зв'язок", "CARD": { - "SHOW_LABELS": "Show labels", - "HIDE_LABELS": "Hide labels" + "SHOW_LABELS": "Показати мітки", + "HIDE_LABELS": "Сховати мітки" }, "HEADER": { "RESOLVE_ACTION": "Вирішити", @@ -69,7 +69,7 @@ "CARD_CONTEXT_MENU": { "PENDING": "Позначити як \"В очікуванні\"", "RESOLVED": "Позначити як вирішене", - "MARK_AS_UNREAD": "Mark as unread", + "MARK_AS_UNREAD": "Позначити як непрочитане", "REOPEN": "Повторно відкрити розмову", "SNOOZE": { "TITLE": "Відкласти", @@ -135,8 +135,8 @@ } }, "UNDEFINED_VARIABLES": { - "TITLE": "Undefined variables", - "MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?", + "TITLE": "Невизначені змінні", + "MESSAGE": "У вас є {undefinedVariablesCount} невизначених змінних у вашому повідомленні: {undefinedVariables}. Бажаєте надіслати повідомлення в будь-якому випадку?", "CONFIRM": { "YES": "Надіслати", "CANCEL": "Скасувати" @@ -165,8 +165,16 @@ "CONTEXT_MENU": { "COPY": "Копіювати", "DELETE": "Видалити", - "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "CREATE_A_CANNED_RESPONSE": "Додати швидку відповідь", + "TRANSLATE": "Перекласти", + "COPY_PERMALINK": "Копіювати посилання на повідомлення", + "LINK_COPIED": "URL повідомлення скопійовано до буфера обміну", + "DELETE_CONFIRMATION": { + "TITLE": "Ви справді бажаєте вилучити це повідомлення?", + "MESSAGE": "Ви не зможете скасувати цю дію", + "DELETE": "Видалити", + "CANCEL": "Скасувати" + } } }, "EMAIL_TRANSCRIPT": { @@ -224,7 +232,7 @@ "CONVERSATION_INFO": "Інформація про бесіду", "CONTACT_ATTRIBUTES": "Атрибути контакту", "PREVIOUS_CONVERSATION": "Попередні бесіди", - "MACROS": "Macros" + "MACROS": "Макрос" } }, "CONVERSATION_CUSTOM_ATTRIBUTES": { @@ -256,27 +264,27 @@ "SUBJECT": "Тема" }, "CONVERSATION_PARTICIPANTS": { - "SIDEBAR_MENU_TITLE": "Participating", - "SIDEBAR_TITLE": "Conversation participants", + "SIDEBAR_MENU_TITLE": "Підключені агенти", + "SIDEBAR_TITLE": "Учасники бесіди", "NO_RECORDS_FOUND": "Результатів не знайдено", - "ADD_PARTICIPANTS": "Select participants", - "REMANING_PARTICIPANTS_TEXT": "+%{count} others", - "REMANING_PARTICIPANT_TEXT": "+%{count} other", - "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.", - "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.", - "NO_PARTICIPANTS_TEXT": "No one is participating!.", - "WATCH_CONVERSATION": "Join conversation", - "YOU_ARE_WATCHING": "You are participating", + "ADD_PARTICIPANTS": "Виберіть учасників", + "REMANING_PARTICIPANTS_TEXT": "+%{count} інших", + "REMANING_PARTICIPANT_TEXT": "+%{count} інших", + "TOTAL_PARTICIPANTS_TEXT": "%{count} людей беруть участь.", + "TOTAL_PARTICIPANT_TEXT": "%{count} людей беруть участь.", + "NO_PARTICIPANTS_TEXT": "Нікого немає!.", + "WATCH_CONVERSATION": "Підключитись до бесіди", + "YOU_ARE_WATCHING": "Ви підключились", "API": { - "ERROR_MESSAGE": "Could not update, try again!", - "SUCCESS_MESSAGE": "Participants updated!" + "ERROR_MESSAGE": "Не вдалося оновити, спробуйте ще раз!", + "SUCCESS_MESSAGE": "Учасники оновлені!" } }, "TRANSLATE_MODAL": { - "TITLE": "View translated content", - "DESC": "You can view the translated content in each langauge.", - "ORIGINAL_CONTENT": "Original Content", - "TRANSLATED_CONTENT": "Translated Content", - "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content" + "TITLE": "Переглянути переклад", + "DESC": "Ви можете переглянути переклад контент в кожній мові.", + "ORIGINAL_CONTENT": "Оригінальний текст", + "TRANSLATED_CONTENT": "Переклад", + "NO_TRANSLATIONS_AVAILABLE": "Немає доступних перекладів" } } diff --git a/app/javascript/dashboard/i18n/locale/uk/emoji.json b/app/javascript/dashboard/i18n/locale/uk/emoji.json index fd81268fb..f5c2297d8 100644 --- a/app/javascript/dashboard/i18n/locale/uk/emoji.json +++ b/app/javascript/dashboard/i18n/locale/uk/emoji.json @@ -1,6 +1,6 @@ { "EMOJI": { - "PLACEHOLDER": "Search emojis", - "NOT_FOUND": "No emoji match your search" + "PLACEHOLDER": "Пошук смайлів", + "NOT_FOUND": "Немає смайликів, які відповідають вашому запиту" } } diff --git a/app/javascript/dashboard/i18n/locale/uk/generalSettings.json b/app/javascript/dashboard/i18n/locale/uk/generalSettings.json index 3b506a51f..ad3583826 100644 --- a/app/javascript/dashboard/i18n/locale/uk/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/uk/generalSettings.json @@ -23,7 +23,7 @@ "ERROR": "Будь ласка, введіть правильне ім'я облікового запису" }, "LANGUAGE": { - "LABEL": "Site language", + "LABEL": "Мова сайту", "PLACEHOLDER": "Ім'я вашого облікового запису", "ERROR": "" }, @@ -55,7 +55,7 @@ "ENTER_TO_SELECT": "Натисніть Enter, щоб обрати", "ENTER_TO_REMOVE": "Натисніть Enter, щоб видалити", "SELECT_ONE": "Виберіть", - "SELECT": "Select" + "SELECT": "Обрати" } }, "NOTIFICATIONS_PAGE": { @@ -140,6 +140,6 @@ } }, "DASHBOARD_APPS": { - "LOADING_MESSAGE": "Loading Dashboard App..." + "LOADING_MESSAGE": "Завантаження дашборду..." } } diff --git a/app/javascript/dashboard/i18n/locale/uk/helpCenter.json b/app/javascript/dashboard/i18n/locale/uk/helpCenter.json index 7ec96a34f..33d1b6763 100644 --- a/app/javascript/dashboard/i18n/locale/uk/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/uk/helpCenter.json @@ -32,11 +32,11 @@ "IMAGE_UPLOAD": { "TITLE": "Завантажити зображення", "UPLOADING": "Завантажується...", - "SUCCESS": "Image uploaded successfully", - "ERROR": "Error while uploading image", - "ERROR_FILE_SIZE": "Image size should be less than {size}MB", - "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png", - "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000" + "SUCCESS": "Зображення успішно завантажено", + "ERROR": "Помилка при завантаженні зображення", + "ERROR_FILE_SIZE": "Зображення має бути менше {size}Мб", + "ERROR_FILE_FORMAT": "Формат зображення повинен бути jpg, jpeg або png", + "ERROR_FILE_DIMENSIONS": "Розміри зображення повинні бути менші ніж 2000 х 2000" } }, "ARTICLE_SETTINGS": { @@ -228,14 +228,14 @@ "DOMAIN": { "LABEL": "Домен для користувача", "PLACEHOLDER": "Власний домен порталу", - "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com", - "ERROR": "Enter a valid domain URL" + "HELP_TEXT": "Додайте лише якщо ви хочете використовувати власний домен для своїх порталів. Наприклад: https://example.com", + "ERROR": "Введіть дійсну URL-адресу домену" }, "HOME_PAGE_LINK": { "LABEL": "Посилання на головну сторінку", "PLACEHOLDER": "Посилання на головну сторінку порталу", - "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com", - "ERROR": "Enter a valid home page URL" + "HELP_TEXT": "Посилання буде використане для повернення з порталу на домашню сторінку. Наприклад: https://example.com", + "ERROR": "Введіть дійсний URL домашньої сторінки" }, "THEME_COLOR": { "LABEL": "Колір теми порталу", @@ -317,7 +317,7 @@ "PUBLISH_ARTICLE": { "API": { "ERROR": "Помилка під час публікації статті", - "SUCCESS": "Article published successfully" + "SUCCESS": "Стаття успішно опублікована" } }, "ARCHIVE_ARTICLE": { diff --git a/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json index 54f5012be..59f847070 100644 --- a/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json @@ -239,9 +239,9 @@ }, "API_CALLBACK": { "TITLE": "Callback URL", - "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.", + "SUBTITLE": "Ви повинні налаштувати URL вебхука і токен перевірки на порталі розробників Facebook зі значеннями, що вказані нижче.", "WEBHOOK_URL": "URL вебхука", - "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token" + "WEBHOOK_VERIFICATION_TOKEN": "Токен вебхука" }, "SUBMIT_BUTTON": "Створити канал WhatsApp", "API": { @@ -346,15 +346,15 @@ "DESC": "Ви успішно закінчили інтеграцію вашої сторінки у Facebook з Chatwoot. Наступного разу, коли з’явиться клієнтська сторінка, розмова автоматично з'явиться у вашій поштовій скриньці.
Ми також надаємо вам сценарій роботи віджетів, який можна легко додати на ваш сайт. Як тільки це буде опубліковане на вашому сайті, клієнти можуть надсилати вам повідомлення прямо з вашого сайту без допомоги будь-якого зовнішнього інструменту, і розмова з'явиться тут, на Chatwoot.
Круто, так? Ну, ми дійсно намагаємося бути :)" }, "EMAIL_PROVIDER": { - "TITLE": "Select your email provider", - "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials." + "TITLE": "Виберіть email провайдера", + "DESCRIPTION": "Виберіть зі списку провайдера. Якщо Ви не бачите e-mail провайдера в списку, ви можете обрати іншого постачальника і надати IMAP та SMTP дані." }, "MICROSOFT": { "TITLE": "Microsoft Email", - "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.", - "EMAIL_PLACEHOLDER": "Enter email address", - "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ", - "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again" + "DESCRIPTION": "Натисніть на кнопку входу через Microsoft для початку. Ви будете перенаправлені на сторінку входу в систему. Як тільки ви приймете запитані дозволи, ви будете перенаправлені на сторінку створення вхідних повідомлень.", + "EMAIL_PLACEHOLDER": "Некоректна адреса ел. пошти", + "HELP": "Щоб додати свій обліковий запис Microsoft у якості каналу, вам потрібно автентифікувати свій обліковий запис Microsoft, натиснувши \"Увійти через Microsoft\" ", + "ERROR_MESSAGE": "Сталася помилка підключення до Microsoft, будь ласка, спробуйте ще раз" } }, "DETAILS": { @@ -432,14 +432,15 @@ "PRE_CHAT_FORM": "Форма, що показується перед стартом діалогу", "BUSINESS_HOURS": "Робочий час", "WIDGET_BUILDER": "Конструктор віджетів", - "BOT_CONFIGURATION": "Bot Configuration" + "BOT_CONFIGURATION": "Налаштування бота" }, "SETTINGS": "Налаштування", "FEATURES": { "LABEL": "Особливості", "DISPLAY_FILE_PICKER": "Показувати вибір файлу на віджеті", "DISPLAY_EMOJI_PICKER": "Відображати емодзі на віджеті", - "ALLOW_END_CONVERSATION": "Дозволити користувачам завершити розмову з віджета" + "ALLOW_END_CONVERSATION": "Дозволити користувачам завершити розмову з віджета", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Скрипт месенджера", @@ -456,8 +457,8 @@ "ENABLE_CSAT_SUB_TEXT": "Увімкнути/Вимкнути опитування CSAT(Задоволення клієнтів) після вирішення розмови", "ENABLE_CONTINUITY_VIA_EMAIL": "Увімкнути безперервність розмови через електронну пошту", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Розмови продовжуватимуться через електронну пошту, якщо доступна контактна адреса.", - "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation", - "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox", + "LOCK_TO_SINGLE_CONVERSATION": "Заблокувати бесіду", + "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Увімкнути або вимкнути кілька бесід для одного контакту в цій папці Вхідні", "INBOX_UPDATE_TITLE": "Налаштування каналу", "INBOX_UPDATE_SUB_TEXT": "Оновіть параметри каналу", "AUTO_ASSIGNMENT_SUB_TEXT": "Увімкнення або вимкнення автоматичного призначення нових розмов до агентів, доданих до цього каналу.", @@ -472,12 +473,12 @@ "ALLOW_MESSAGES_AFTER_RESOLVED": "Дозволити повідомлення після закінчення розмови", "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Дозволити кінцевим користувачам надсилати повідомлення навіть після закриття розмови.", "WHATSAPP_SECTION_SUBHEADER": "Цей ключ API використовується для інтеграції з API WhatsApp.", - "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.", + "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Цей ключ API використовується для інтеграції з API WhatsApp.", "WHATSAPP_SECTION_TITLE": "API ключ", - "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key", - "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here", + "WHATSAPP_SECTION_UPDATE_TITLE": "Оновити ключ API", + "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Введіть тут новий ключ API", "WHATSAPP_SECTION_UPDATE_BUTTON": "Оновити", - "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings" + "UPDATE_PRE_CHAT_FORM_SETTINGS": "Оновити параметри форми чату" }, "AUTO_ASSIGNMENT": { "MAX_ASSIGNMENT_LIMIT": "Ліміт автопризначення", @@ -566,7 +567,7 @@ }, "MICROSOFT": { "TITLE": "Microsoft", - "SUBTITLE": "Reauthorize your MICROSOFT account" + "SUBTITLE": "Повторно авторизувати Ваш обліковий запис MICROSOFT" }, "SMTP": { "TITLE": "SMTP", @@ -689,7 +690,7 @@ }, "EMAIL_PROVIDERS": { "MICROSOFT": "Microsoft", - "OTHER_PROVIDERS": "Other Providers" + "OTHER_PROVIDERS": "Інші постачальники" } } } diff --git a/app/javascript/dashboard/i18n/locale/uk/integrations.json b/app/javascript/dashboard/i18n/locale/uk/integrations.json index 49decd575..786608c81 100644 --- a/app/javascript/dashboard/i18n/locale/uk/integrations.json +++ b/app/javascript/dashboard/i18n/locale/uk/integrations.json @@ -15,8 +15,8 @@ "MESSAGE_CREATED": "Повідомлення створено", "MESSAGE_UPDATED": "Повідомлення оновлено", "WEBWIDGET_TRIGGERED": "Віджет онлайн чату відкрий користувачем", - "CONTACT_CREATED": "Contact created", - "CONTACT_UPDATED": "Contact updated" + "CONTACT_CREATED": "Контакт створено", + "CONTACT_UPDATED": "Контакт оновлено" } }, "END_POINT": { @@ -79,11 +79,11 @@ } }, "DYTE": { - "CLICK_HERE_TO_JOIN": "Click here to join", - "LEAVE_THE_ROOM": "Leave the room", - "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer", - "JOIN_ERROR": "There was an error joining the call, please try again", - "CREATE_ERROR": "There was an error creating a meeting link, please try again" + "CLICK_HERE_TO_JOIN": "Натисніть тут, щоб приєднатися", + "LEAVE_THE_ROOM": "Залишити дзвінок", + "START_VIDEO_CALL_HELP_TEXT": "Почати новий відеодзвінок із клієнтом", + "JOIN_ERROR": "Помилка при підключенні до дзвінка. Будь ласка, спробуйте ще раз", + "CREATE_ERROR": "Помилка при створенні посилання на зустріч, будь ласка, спробуйте знову" }, "DELETE": { "BUTTON_TEXT": "Видалити", diff --git a/app/javascript/dashboard/i18n/locale/uk/login.json b/app/javascript/dashboard/i18n/locale/uk/login.json index be309e538..9a6a2febc 100644 --- a/app/javascript/dashboard/i18n/locale/uk/login.json +++ b/app/javascript/dashboard/i18n/locale/uk/login.json @@ -15,9 +15,9 @@ "UNAUTH": "Неправильне ім'я користувача / пароль. Будь ласка, спробуйте ще раз" }, "OAUTH": { - "GOOGLE_LOGIN": "Login with Google", - "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login", - "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address." + "GOOGLE_LOGIN": "Увійти через Google", + "BUSINESS_ACCOUNTS_ONLY": "Будь ласка, використовуйте робочу адресу електронної пошти для входу", + "NO_ACCOUNT_FOUND": "Ми не змогли знайти аккаунт для вашої адреси електронної пошти." }, "FORGOT_PASSWORD": "Забули пароль?", "CREATE_NEW_ACCOUNT": "Створити новий обліковий запис", diff --git a/app/javascript/dashboard/i18n/locale/uk/macros.json b/app/javascript/dashboard/i18n/locale/uk/macros.json index 091db9346..84458f212 100644 --- a/app/javascript/dashboard/i18n/locale/uk/macros.json +++ b/app/javascript/dashboard/i18n/locale/uk/macros.json @@ -1,78 +1,78 @@ { "MACROS": { - "HEADER": "Macros", - "HEADER_BTN_TXT": "Add a new macro", - "HEADER_BTN_TXT_SAVE": "Save macro", - "LOADING": "Fetching macros", - "SIDEBAR_TXT": "

Macros

A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.

A macro can be helpful in 2 ways.

As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.

As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.

", - "ERROR": "Something went wrong. Please try again", - "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.", + "HEADER": "Макрос", + "HEADER_BTN_TXT": "Додати новий макрос", + "HEADER_BTN_TXT_SAVE": "Зберегти макрос", + "LOADING": "Завантаження макросів", + "SIDEBAR_TXT": "

Макроси

Це набір збережених дій, що допомагають агентам служби обслуговування клієнтів легко виконувати завдання. Агенти можуть визначити набір дій, таких як позначення розмови якоюь міткою, відправленням розмови на пошту, оновлення користувацького атрибуту тощо. Коли агенти створюють макрос, дії виконуватимуться послідовно, в порядку, якому вони визначені. Макрос поліпшує продуктивність та підвищує ефективність в діях.

Макрос може бути корисним двома способами.

Повторювати дії агента: Якщо агент виконує набір дій кілька разів, вони можуть зберегти їх як макрос і виконати всі дії разом використовуючи один клік.

Для учасників команди: кожен агент повинен виконувати багато різних перевірок/дій під час кожної розмови. Додавання нового члена служби підтримки буде легким, якщо спеціалізовані макроси доступні на аккаунті. Замість того, щоб описувати кожен крок детально, менеджер / командний лідер може вказувати на макроси, використані в різних сценаріях.

", + "ERROR": "Щось пішло не так. Будь ласка, оновіть сторінку", + "ORDER_INFO": "Макроси запускається у порядку додавання ваших дій. Ви можете переставити їх шляхом перетягування.", "ADD": { "FORM": { "NAME": { - "LABEL": "Macro name", - "PLACEHOLDER": "Enter a name for your macro", - "ERROR": "Name is required for creating a macro" + "LABEL": "Назва макросу", + "PLACEHOLDER": "Введіть ім'я для макросу", + "ERROR": "Ім'я макросу обов'язкове" }, "ACTIONS": { "LABEL": "Дії" } }, "API": { - "SUCCESS_MESSAGE": "Macro added successfully", - "ERROR_MESSAGE": "Unable to create macro, Please try again later" + "SUCCESS_MESSAGE": "Макрос успішно доданий", + "ERROR_MESSAGE": "Не вдалося створити макрос, будь ласка, спробуйте ще раз пізніше" } }, "LIST": { "TABLE_HEADER": [ "Ім'я", - "Created by", - "Last updated by", - "Visibility" + "Створено", + "Оновлено", + "Видимість" ], - "404": "No macros found" + "404": "Макросів не знайдено" }, "DELETE": { - "TOOLTIP": "Delete macro", + "TOOLTIP": "Видалити макрос", "CONFIRM": { "MESSAGE": "Справді бажаєте видалити ", "YES": "Так, видалити", "NO": "Ні" }, "API": { - "SUCCESS_MESSAGE": "Macro deleted successfully", - "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later" + "SUCCESS_MESSAGE": "Макрос успішно видалений", + "ERROR_MESSAGE": "Виникла помилка при видаленні макросу. Будь ласка, спробуйте пізніше" } }, "EDIT": { - "TOOLTIP": "Edit macro", + "TOOLTIP": "Редагувати макрос", "API": { - "SUCCESS_MESSAGE": "Macro updated successfully", - "ERROR_MESSAGE": "Could not update Macro, Please try again later" + "SUCCESS_MESSAGE": "Макрос успішно доданий", + "ERROR_MESSAGE": "Не вдалося оновити макрос, спробуйте ще раз пізніше" } }, "EDITOR": { - "START_FLOW": "Start Flow", - "END_FLOW": "End Flow", - "LOADING": "Fetching macro", - "ADD_BTN_TOOLTIP": "Add new action", - "DELETE_BTN_TOOLTIP": "Delete Action", + "START_FLOW": "Початок дій", + "END_FLOW": "Закінчення", + "LOADING": "Отримання макросу", + "ADD_BTN_TOOLTIP": "Додати нову дію", + "DELETE_BTN_TOOLTIP": "Вилучити дію", "VISIBILITY": { - "LABEL": "Macro Visibility", + "LABEL": "Видимість макросу", "GLOBAL": { - "LABEL": "Public", - "DESCRIPTION": "This macro is available publicly for all agents in this account." + "LABEL": "Публічний", + "DESCRIPTION": "Цей макрос є публічним для всіх агентів." }, "PERSONAL": { - "LABEL": "Private", - "DESCRIPTION": "This macro will be private to you and not be available to others." + "LABEL": "Приватний", + "DESCRIPTION": "Цей макрос буде вам приватним і не буде доступним іншим." } } }, "EXECUTE": { - "BUTTON_TOOLTIP": "Execute", - "PREVIEW": "Preview Macro", - "EXECUTED_SUCCESSFULLY": "Macro executed successfully" + "BUTTON_TOOLTIP": "Виконати", + "PREVIEW": "Перегляд макросу", + "EXECUTED_SUCCESSFULLY": "Макрос успішно виконано" } } } diff --git a/app/javascript/dashboard/i18n/locale/uk/report.json b/app/javascript/dashboard/i18n/locale/uk/report.json index 831160a12..0494fcf83 100644 --- a/app/javascript/dashboard/i18n/locale/uk/report.json +++ b/app/javascript/dashboard/i18n/locale/uk/report.json @@ -427,10 +427,10 @@ "UNASSIGNED": "Непризначені" }, "CONVERSATION_HEATMAP": { - "HEADER": "Conversation Traffic", - "NO_CONVERSATIONS": "No conversations", - "CONVERSATION": "%{count} conversation", - "CONVERSATIONS": "%{count} conversations" + "HEADER": "Бесіди", + "NO_CONVERSATIONS": "Немає бесід", + "CONVERSATION": "%{count} бесід", + "CONVERSATIONS": "%{count} бесід" }, "AGENT_CONVERSATIONS": { "HEADER": "Розмови агентів", @@ -451,12 +451,12 @@ } }, "DAYS_OF_WEEK": { - "SUNDAY": "Sunday", - "MONDAY": "Monday", - "TUESDAY": "Tuesday", - "WEDNESDAY": "Wednesday", - "THURSDAY": "Thursday", - "FRIDAY": "Friday", - "SATURDAY": "Saturday" + "SUNDAY": "Неділя", + "MONDAY": "Понеділок", + "TUESDAY": "Вівторок", + "WEDNESDAY": "Середа", + "THURSDAY": "Четвер", + "FRIDAY": "П'ятниця", + "SATURDAY": "Субота" } } diff --git a/app/javascript/dashboard/i18n/locale/uk/search.json b/app/javascript/dashboard/i18n/locale/uk/search.json index a60da2440..b9255eed9 100644 --- a/app/javascript/dashboard/i18n/locale/uk/search.json +++ b/app/javascript/dashboard/i18n/locale/uk/search.json @@ -11,13 +11,13 @@ "CONVERSATIONS": "Бесіди", "MESSAGES": "Текст повідомлень" }, - "EMPTY_STATE": "No %{item} found for query '%{query}'", - "EMPTY_STATE_FULL": "No results found for query '%{query}'", - "PLACEHOLDER_KEYBINDING": "/ to focus", - "INPUT_PLACEHOLDER": "Search messages, contacts or conversations", - "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.", + "EMPTY_STATE": "На запит '%{query} не знайдено %{item}", + "EMPTY_STATE_FULL": "Немає результатів за запитом '%{query}", + "PLACEHOLDER_KEYBINDING": "/ фокус", + "INPUT_PLACEHOLDER": "Пошук повідомлень, контактів або бесід", + "EMPTY_STATE_DEFAULT": "Пошук бесід по id, email, тел. номеру, повідомлень для кращого пошуку результатів.", "BOT_LABEL": "Бот", - "READ_MORE": "Read more", - "WROTE": "wrote:" + "READ_MORE": "Детальніше", + "WROTE": "написав(ла):" } } diff --git a/app/javascript/dashboard/i18n/locale/uk/settings.json b/app/javascript/dashboard/i18n/locale/uk/settings.json index d16514c5c..ba46569ab 100644 --- a/app/javascript/dashboard/i18n/locale/uk/settings.json +++ b/app/javascript/dashboard/i18n/locale/uk/settings.json @@ -59,18 +59,18 @@ "TITLE": "Звукові сповіщення", "NOTE": "Увімкніть звукові сповіщення в інформаційній панелі для нових повідомлень і розмов.", "ALERT_TYPE": { - "TITLE": "Alert events:", + "TITLE": "Події оповіщення:", "NONE": "Нiчого", "ASSIGNED": "Призначені розмови", "ALL_CONVERSATIONS": "Всі розмови" }, "DEFAULT_TONE": { - "TITLE": "Alert tone:" + "TITLE": "Тон сигналу:" }, "CONDITIONS": { - "TITLE": "Alert conditions:", - "CONDITION_ONE": "Send audio alerts only if the browser window is not active", - "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read" + "TITLE": "Умови оповіщення:", + "CONDITION_ONE": "Надсилати аудіосповіщення тільки якщо вікно браузера не активне", + "CONDITION_TWO": "Надсилати сповіщення кожні 30 секунд, поки всі призначені розмови не будуть переглянуті" } }, "EMAIL_NOTIFICATIONS_SECTION": { @@ -80,7 +80,7 @@ "CONVERSATION_CREATION": "Надсилати сповіщення при створенні нової бесіди", "CONVERSATION_MENTION": "Надсилати сповіщення електронною поштою, коли вас згадують в розмові", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Надсилати сповіщення при створенні нового повідомлення у призначеній розмові", - "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation" + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Надсилати поштові листи, коли нове повідомлення створюється в призначеній розмові" }, "API": { "UPDATE_SUCCESS": "Налаштування сповіщень для вашого акаунту оновлено успішно", @@ -93,7 +93,7 @@ "CONVERSATION_CREATION": "Надсилати push-повідомлення, коли створюється нова розмова", "CONVERSATION_MENTION": "Надсилати push-повідомлення, коли вас згадують в розмові", "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Надсилати push-повідомлення, коли нове повідомлення створюється в призначеній розмові", - "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Надсилати push-повідомлення, коли нове повідомлення створюється в призначеній розмові", "HAS_ENABLED_PUSH": "Ви увімкнули push для цього браузера.", "REQUEST_PUSH": "Увімкнути push-сповіщення" }, @@ -117,8 +117,8 @@ "Зайнятий", "Не в мережі" ], - "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully", - "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again" + "SET_AVAILABILITY_SUCCESS": "Доступу успішно встановлено", + "SET_AVAILABILITY_ERROR": "Не вдалося налаштувати доступність, будь ласка, спробуйте ще раз" }, "EMAIL": { "LABEL": "Ваша адреса електронної пошти", @@ -149,7 +149,7 @@ "SELECTOR_SUBTITLE": "Виберіть обліковий запис із наступного списку", "PROFILE_SETTINGS": "Налаштування облікового запису", "KEYBOARD_SHORTCUTS": "Комбінації клавіш", - "SUPER_ADMIN_CONSOLE": "Super Admin Console", + "SUPER_ADMIN_CONSOLE": "Консоль адміна", "LOGOUT": "Вийти" }, "APP_GLOBAL": { @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Копіювати", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Код скопійований в буфер обміну" }, "SHOW_MORE_BLOCK": { @@ -176,7 +177,7 @@ "INSTAGRAM_STORY_UNAVAILABLE": "Ця історія більше не доступна." }, "LOCATION_BUBBLE": { - "SEE_ON_MAP": "See on map" + "SEE_ON_MAP": "Дивитись на карті" }, "FORM_BUBBLE": { "SUBMIT": "Додати" @@ -194,7 +195,7 @@ "CONVERSATIONS": "Бесіди", "ALL_CONVERSATIONS": "Всі розмови", "MENTIONED_CONVERSATIONS": "Згадування", - "PARTICIPATING_CONVERSATIONS": "Participating", + "PARTICIPATING_CONVERSATIONS": "Підключені агенти", "UNATTENDED_CONVERSATIONS": "Не зв'язаний", "REPORTS": "Звіти", "SETTINGS": "Налаштування", @@ -212,7 +213,7 @@ "LABELS": "Мітки", "CUSTOM_ATTRIBUTES": "Свої атрибути", "AUTOMATION": "Автоматизація", - "MACROS": "Macros", + "MACROS": "Макроси", "TEAMS": "Команди", "BILLING": "Біллінг", "CUSTOM_VIEWS_FOLDER": "Папки", @@ -236,7 +237,7 @@ "REPORTS_OVERVIEW": "Огляд", "FACEBOOK_REAUTHORIZE": "Підключення до Facebook закінчилося, будь ласка, поновіть сторінку Facebook, щоб продовжити роботу служб", "HELP_CENTER": { - "TITLE": "Help Center (Beta)", + "TITLE": "Довідковий центр (Beta)", "ALL_ARTICLES": "Всі статті", "MY_ARTICLES": "Мої статті", "DRAFT": "Чернетка", @@ -246,8 +247,8 @@ "CATEGORY_EMPTY_MESSAGE": "Категорій не знайдено" }, "SET_AUTO_OFFLINE": { - "TEXT": "Mark offline automatically", - "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard." + "TEXT": "Позначити не в мережі (auto)", + "INFO_TEXT": "Дозволити системі автоматично позначати як не в мережі коли ви не використовуєте програму або панель управління." }, "DOCS": "Читати документи" }, @@ -287,7 +288,7 @@ } }, "KEYBOARD_SHORTCUTS": { - "TOGGLE_MODAL": "View all shortcuts", + "TOGGLE_MODAL": "Переглянути всі шорткоди", "TITLE": { "OPEN_CONVERSATION": "Відкрити розмову", "RESOLVE_AND_NEXT": "Вирішити і перейти до наступного", diff --git a/app/javascript/dashboard/i18n/locale/uk/signup.json b/app/javascript/dashboard/i18n/locale/uk/signup.json index f3482eb4a..816d89309 100644 --- a/app/javascript/dashboard/i18n/locale/uk/signup.json +++ b/app/javascript/dashboard/i18n/locale/uk/signup.json @@ -1,17 +1,17 @@ { "REGISTER": { - "TRY_WOOT": "Create an account", + "TRY_WOOT": "Створити акаунт", "TITLE": "Реєстрація", - "TESTIMONIAL_HEADER": "All it takes is one step to move forward", - "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.", - "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy", + "TESTIMONIAL_HEADER": "Один крок і вперед", + "TESTIMONIAL_CONTENT": "Ви за один крок від залучення своїх клієнтів, утримання їх та пошуку нових.", + "TERMS_ACCEPT": "Зареєструвавшись, ви погоджуєтеся з нашими Умовами Користування та Політикою конфіденційності", "OAUTH": { - "GOOGLE_SIGNUP": "Sign up with Google" + "GOOGLE_SIGNUP": "Зареєструватися через Google" }, "COMPANY_NAME": { - "LABEL": "Company name", - "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises", - "ERROR": "Company name is too short" + "LABEL": "Назва компанії", + "PLACEHOLDER": "Введіть назву вашої компанії; наприклад: Уейн Enterprises", + "ERROR": "Назва компанії закоротка" }, "FULL_NAME": { "LABEL": "Повне ім'я", @@ -21,7 +21,7 @@ "EMAIL": { "LABEL": "Робоча електронна пошта", "PLACEHOLDER": "Введіть робочу адресу електронної пошти; наприклад: bruce@wayne.enterprises", - "ERROR": "Please enter a valid work email address" + "ERROR": "Будь ласка, введіть робочу адресу електронної пошти" }, "PASSWORD": { "LABEL": "Пароль", @@ -38,7 +38,7 @@ "SUCCESS_MESSAGE": "Реєстрація пройшла успішно", "ERROR_MESSAGE": "Не вдалося підключитися до Woot Server, спробуйте ще раз пізніше" }, - "SUBMIT": "Create account", + "SUBMIT": "Створити акаунт", "HAVE_AN_ACCOUNT": "Вже маєте обліковий запис?" } } diff --git a/app/javascript/dashboard/i18n/locale/ur/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ur/advancedFilters.json index 5a6f8cc35..404764cf8 100644 --- a/app/javascript/dashboard/i18n/locale/ur/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/ur/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/ur/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ur/agentMgmt.json index 72020b810..058b472f1 100644 --- a/app/javascript/dashboard/i18n/locale/ur/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ur/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "ای میل اڈریس", "PLACEHOLDER": "براہ کرم ایجنٹ کا ای میل ایڈریس درج کریں۔" }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "ایجنٹ میں ترمیم کریں۔" }, "BUTTON_TEXT": "ترمیم", diff --git a/app/javascript/dashboard/i18n/locale/ur/contact.json b/app/javascript/dashboard/i18n/locale/ur/contact.json index d9746feb8..a3c0d1e2c 100644 --- a/app/javascript/dashboard/i18n/locale/ur/contact.json +++ b/app/javascript/dashboard/i18n/locale/ur/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "کمپنی کا نام درج کریں۔", "LABEL": "کمپنی کا نام" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "فیس بک صارف کا مخصوص نام درج کریں", diff --git a/app/javascript/dashboard/i18n/locale/ur/conversation.json b/app/javascript/dashboard/i18n/locale/ur/conversation.json index dd77c4d5a..936527366 100644 --- a/app/javascript/dashboard/i18n/locale/ur/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ur/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copy", "DELETE": "حذف کریں۔", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "حذف کریں۔", + "CANCEL": "منسوخ کریں۔" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json index 9d005178b..8b0b4df9b 100644 --- a/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/ur/settings.json b/app/javascript/dashboard/i18n/locale/ur/settings.json index 8ea0880d0..05931108f 100644 --- a/app/javascript/dashboard/i18n/locale/ur/settings.json +++ b/app/javascript/dashboard/i18n/locale/ur/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code copied to clipboard successfully" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ur_IN/advancedFilters.json index 46a573c42..a32c1bd9d 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Is not present", "is_greater_than": "Is greater than", "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "Is x days before", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ur_IN/agentMgmt.json index 0f965c717..b44e74542 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Email Address", "PLACEHOLDER": "Please enter an email address of the agent" }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Edit Agent" }, "BUTTON_TEXT": "Edit", diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/contact.json b/app/javascript/dashboard/i18n/locale/ur_IN/contact.json index 14ab0032d..9191698d8 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/contact.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Enter the company name", "LABEL": "Company Name" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Enter the Facebook username", diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json b/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json index f98a3cdc0..597799c15 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json @@ -166,7 +166,15 @@ "COPY": "Copy", "DELETE": "Delete", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Delete", + "CANCEL": "Cancel" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json index fa12859ec..60454261d 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/settings.json b/app/javascript/dashboard/i18n/locale/ur_IN/settings.json index 6e6a8b675..112ac79bd 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/settings.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Code copied to clipboard successfully" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/vi/advancedFilters.json b/app/javascript/dashboard/i18n/locale/vi/advancedFilters.json index 8e16e0052..3a84d1e7a 100644 --- a/app/javascript/dashboard/i18n/locale/vi/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/vi/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "Không có", "is_greater_than": "Lớn hơn", "is_less_than": "Nhỏ hơn", - "days_before": "Khoảng x ngày trước" + "days_before": "Khoảng x ngày trước", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "Đúng", diff --git a/app/javascript/dashboard/i18n/locale/vi/agentMgmt.json b/app/javascript/dashboard/i18n/locale/vi/agentMgmt.json index 0e59f56a1..9d0c79a9f 100644 --- a/app/javascript/dashboard/i18n/locale/vi/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/vi/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "Emails", "PLACEHOLDER": "Vui lòng nhập email" }, + "AGENT_AVAILABILITY": { + "LABEL": "Khả dụng", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "Chỉnh sửa nhà cung cấp" }, "BUTTON_TEXT": "Chỉnh sửa", diff --git a/app/javascript/dashboard/i18n/locale/vi/contact.json b/app/javascript/dashboard/i18n/locale/vi/contact.json index 283746ce2..99ac8306c 100644 --- a/app/javascript/dashboard/i18n/locale/vi/contact.json +++ b/app/javascript/dashboard/i18n/locale/vi/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "Nhập tên công ty", "LABEL": "Tên công ty" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Tên Nước", + "SELECT_PLACEHOLDER": "Chọn", + "REMOVE": "Xoá", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "Nhập tên người dùng Facebook", diff --git a/app/javascript/dashboard/i18n/locale/vi/conversation.json b/app/javascript/dashboard/i18n/locale/vi/conversation.json index 845c6b5ec..d7422eb2c 100644 --- a/app/javascript/dashboard/i18n/locale/vi/conversation.json +++ b/app/javascript/dashboard/i18n/locale/vi/conversation.json @@ -166,7 +166,15 @@ "COPY": "Sao Chép", "DELETE": "Xoá", "CREATE_A_CANNED_RESPONSE": "Thêm vào câu trả lời soạn sẵn", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Xoá", + "CANCEL": "Huỷ" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json index 4cf0a3a30..3c340554c 100644 --- a/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Các tính năng", "DISPLAY_FILE_PICKER": "Hiển thị bộ chọn tệp trên tiện ích con", "DISPLAY_EMOJI_PICKER": "Hiển thị bộ chọn biểu tượng cảm xúc trên tiện ích con", - "ALLOW_END_CONVERSATION": "Cho phép người dùng kết thúc cuộc trò chuyện từ công cụ chat" + "ALLOW_END_CONVERSATION": "Cho phép người dùng kết thúc cuộc trò chuyện từ công cụ chat", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Tập lệnh Messenger", diff --git a/app/javascript/dashboard/i18n/locale/vi/settings.json b/app/javascript/dashboard/i18n/locale/vi/settings.json index 9839e5a2f..ed58bf900 100644 --- a/app/javascript/dashboard/i18n/locale/vi/settings.json +++ b/app/javascript/dashboard/i18n/locale/vi/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "Sao Chép", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Copied to clipboard" }, "SHOW_MORE_BLOCK": { diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/advancedFilters.json b/app/javascript/dashboard/i18n/locale/zh_CN/advancedFilters.json index b0ca59fde..9c94990fb 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/advancedFilters.json @@ -22,7 +22,8 @@ "is_not_present": "不存在", "is_greater_than": "大于", "is_less_than": "小于:", - "days_before": "是 x 天前" + "days_before": "是 x 天前", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "真的", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/agentBots.json b/app/javascript/dashboard/i18n/locale/zh_CN/agentBots.json index c18c8ac08..5f16f8222 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/agentBots.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/agentBots.json @@ -1,8 +1,8 @@ { "AGENT_BOTS": { - "HEADER": "Bots", - "LOADING_EDITOR": "Loading Editor...", - "HEADER_BTN_TXT": "Add Bot Configuration", + "HEADER": "机器人", + "LOADING_EDITOR": "正在加载编辑器...", + "HEADER_BTN_TXT": "添加机器人配置", "SIDEBAR_TXT": "

Agent Bots

Agent bots allows you to automate the conversations

", "CSML_BOT_EDITOR": { "NAME": { diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/agentMgmt.json b/app/javascript/dashboard/i18n/locale/zh_CN/agentMgmt.json index 043f0a6cb..39d65f29f 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "电子邮件地址", "PLACEHOLDER": "请输入客服的邮箱地址" }, + "AGENT_AVAILABILITY": { + "LABEL": "有效的", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "编辑客服" }, "BUTTON_TEXT": "编辑", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/contact.json b/app/javascript/dashboard/i18n/locale/zh_CN/contact.json index 54d5726f6..01eca1da1 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/contact.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/contact.json @@ -132,6 +132,17 @@ "PLACEHOLDER": "输入公司名称", "LABEL": "公司名称" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "国家", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "删除", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "输入 Facebook 用户名", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json b/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json index 53743d80f..fafde9bd9 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json @@ -166,7 +166,15 @@ "COPY": "复制", "DELETE": "删除", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "删除", + "CANCEL": "取消" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json index 6278673cf..0a074a5ac 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger 脚本", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/settings.json b/app/javascript/dashboard/i18n/locale/zh_CN/settings.json index 57b752f34..803826f3e 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/settings.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "复制", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Copied to clipboard" }, "SHOW_MORE_BLOCK": { @@ -201,7 +202,7 @@ "CONTACTS": "联系人", "HOME": "首页", "AGENTS": "客服代理们", - "AGENT_BOTS": "Bots", + "AGENT_BOTS": "机器人", "INBOXES": "收件箱", "NOTIFICATIONS": "消息通知", "CANNED_RESPONSES": "预设回复", diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/advancedFilters.json b/app/javascript/dashboard/i18n/locale/zh_TW/advancedFilters.json index 10e4ee44a..b510ad238 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/advancedFilters.json @@ -1,28 +1,29 @@ { "FILTER": { "TITLE": "篩選對話", - "SUBTITLE": "Add filters below and hit 'Apply filters' to filter conversations.", - "ADD_NEW_FILTER": "Add Filter", - "FILTER_DELETE_ERROR": "You should have atleast one filter to save", - "SUBMIT_BUTTON_LABEL": "Apply filters", + "SUBTITLE": "在下方新增篩選條件並點擊「篩選」來篩選對話", + "ADD_NEW_FILTER": "新增篩選條件", + "FILTER_DELETE_ERROR": "你必須有至少一個篩選條件才能儲存", + "SUBMIT_BUTTON_LABEL": "篩選", "CANCEL_BUTTON_LABEL": "取消", - "CLEAR_BUTTON_LABEL": "Clear Filters", - "EMPTY_VALUE_ERROR": "Value is required", - "TOOLTIP_LABEL": "Filter conversations", + "CLEAR_BUTTON_LABEL": "清除篩選條件", + "EMPTY_VALUE_ERROR": "此欄位為必填項目", + "TOOLTIP_LABEL": "篩選對話", "QUERY_DROPDOWN_LABELS": { - "AND": "AND", - "OR": "OR" + "AND": "且", + "OR": "或" }, "OPERATOR_LABELS": { - "equal_to": "Equal to", - "not_equal_to": "Not equal to", - "contains": "Contains", - "does_not_contain": "Does not contain", - "is_present": "Is present", - "is_not_present": "Is not present", - "is_greater_than": "Is greater than", - "is_less_than": "Is lesser than", - "days_before": "Is x days before" + "equal_to": "等於", + "not_equal_to": "不等於", + "contains": "包含", + "does_not_contain": "不包含", + "is_present": "存在", + "is_not_present": "不存在", + "is_greater_than": "大於", + "is_less_than": "小於", + "days_before": "x 天前", + "starts_with": "Starts with" }, "ATTRIBUTE_LABELS": { "TRUE": "True", @@ -30,39 +31,39 @@ }, "ATTRIBUTES": { "STATUS": "狀態", - "ASSIGNEE_NAME": "Assignee Name", + "ASSIGNEE_NAME": "受指派人", "INBOX_NAME": "收件匣名稱", - "TEAM_NAME": "Team Name", - "CONVERSATION_IDENTIFIER": "Conversation Identifier", + "TEAM_NAME": "團對名稱", + "CONVERSATION_IDENTIFIER": "對話 ID", "CAMPAIGN_NAME": "Campaign Name", "LABELS": "標籤", - "BROWSER_LANGUAGE": "Browser Language", - "COUNTRY_NAME": "Country Name", - "REFERER_LINK": "Referer link", - "CUSTOM_ATTRIBUTE_LIST": "List", - "CUSTOM_ATTRIBUTE_TEXT": "Text", - "CUSTOM_ATTRIBUTE_NUMBER": "Number", - "CUSTOM_ATTRIBUTE_LINK": "Link", - "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox", - "CREATED_AT": "Created At", + "BROWSER_LANGUAGE": "瀏覽器語言", + "COUNTRY_NAME": "國家名稱", + "REFERER_LINK": "推薦人連結", + "CUSTOM_ATTRIBUTE_LIST": "列表", + "CUSTOM_ATTRIBUTE_TEXT": "文字", + "CUSTOM_ATTRIBUTE_NUMBER": "數字", + "CUSTOM_ATTRIBUTE_LINK": "連結", + "CUSTOM_ATTRIBUTE_CHECKBOX": "勾選框", + "CREATED_AT": "建立於", "LAST_ACTIVITY": "最後活動" }, "GROUPS": { - "STANDARD_FILTERS": "Standard Filters", - "ADDITIONAL_FILTERS": "Additional Filters", + "STANDARD_FILTERS": "一般篩選條件", + "ADDITIONAL_FILTERS": "進階篩選條件", "CUSTOM_ATTRIBUTES": "自訂屬性" }, "CUSTOM_VIEWS": { "ADD": { - "TITLE": "Do you want to save this filter?", - "LABEL": "Name this filter", - "PLACEHOLDER": "Enter a name for this filter", + "TITLE": "你要儲存這個篩選條件嗎?", + "LABEL": "為這個篩選條件命名", + "PLACEHOLDER": "輸入此篩選條件的名稱", "ERROR_MESSAGE": "名稱為必填", - "SAVE_BUTTON": "Save filter", + "SAVE_BUTTON": "儲存篩選條件", "CANCEL_BUTTON": "取消", "API_FOLDERS": { - "SUCCESS_MESSAGE": "Folder created successfully", - "ERROR_MESSAGE": "Error while creating folder" + "SUCCESS_MESSAGE": "成功建立資料夾", + "ERROR_MESSAGE": "建立資料夾時出現錯誤" }, "API_SEGMENTS": { "SUCCESS_MESSAGE": "Segment created successfully", @@ -70,18 +71,18 @@ } }, "DELETE": { - "DELETE_BUTTON": "Delete filter", + "DELETE_BUTTON": "刪除篩選條件", "MODAL": { "CONFIRM": { "TITLE": "確認刪除", - "MESSAGE": "Are you sure to delete the filter ", + "MESSAGE": "你確定要刪除此篩選條件嗎", "YES": "是,刪除", "NO": "否,保留它" } }, "API_FOLDERS": { - "SUCCESS_MESSAGE": "Folder deleted successfully", - "ERROR_MESSAGE": "Error while deleting folder" + "SUCCESS_MESSAGE": "成功刪除資料夾", + "ERROR_MESSAGE": "刪除資料夾時出現錯誤" }, "API_SEGMENTS": { "SUCCESS_MESSAGE": "Segment deleted successfully", diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/agentBots.json b/app/javascript/dashboard/i18n/locale/zh_TW/agentBots.json index d98494c64..6d426de09 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/agentBots.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/agentBots.json @@ -1,18 +1,18 @@ { "AGENT_BOTS": { - "HEADER": "Bots", - "LOADING_EDITOR": "Loading Editor...", - "HEADER_BTN_TXT": "Add Bot Configuration", - "SIDEBAR_TXT": "

Agent Bots

Agent bots allows you to automate the conversations

", + "HEADER": "機器人", + "LOADING_EDITOR": "正在載入編輯器...", + "HEADER_BTN_TXT": "新增機器人設定", + "SIDEBAR_TXT": "

客服機器人

可服機器人可以讓你將對話自動化

", "CSML_BOT_EDITOR": { "NAME": { - "LABEL": "Bot Name", - "PLACEHOLDER": "Give your bot a name", - "ERROR": "Bot name is required" + "LABEL": "機器人名稱", + "PLACEHOLDER": "給你的機器人一個名字", + "ERROR": "機器人名稱為必填" }, "DESCRIPTION": { - "LABEL": "Bot Description", - "PLACEHOLDER": "What does this bot do?" + "LABEL": "機器人描述", + "PLACEHOLDER": "這個機器人的作用是什麼" }, "BOT_CONFIG": { "ERROR": "Please enter your CSML bot configuration above", @@ -21,53 +21,53 @@ "SUBMIT": "Validate and save" }, "BOT_CONFIGURATION": { - "TITLE": "Select an agent bot", + "TITLE": "選擇一個客服機器人", "DESC": "You can set an agent bot from the list to this inbox. The bot can initially handle the conversation and transfer it to an agent when needed.", "SUBMIT": "更新", - "DISCONNECT": "Disconnect Bot", - "SUCCESS_MESSAGE": "Successfully updated the agent bot", - "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot", + "DISCONNECT": "取消機器人連結", + "SUCCESS_MESSAGE": "成功更新客服機器人", + "DISCONNECTED_SUCCESS_MESSAGE": "成功解除客服機器人連結", "ERROR_MESSAGE": "Could not update the agent bot, please try again later", "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot, please try again later", - "SELECT_PLACEHOLDER": "Select Bot" + "SELECT_PLACEHOLDER": "選擇機器人" }, "ADD": { - "TITLE": "Configure new bot", + "TITLE": "設定新的機器人", "CANCEL_BUTTON_TEXT": "取消", "API": { - "SUCCESS_MESSAGE": "Bot added successfully", - "ERROR_MESSAGE": "Could not add bot, Please try again later" + "SUCCESS_MESSAGE": "機器人新增成功", + "ERROR_MESSAGE": "無法新增機器人,請稍後再試" } }, "LIST": { - "404": "No Bots found, you can create a bot by clicking the 'Configure new bot' Button ↗", - "LOADING": "Fetching Bots...", + "404": "查無機器人,你可以點擊「設定新的機器人」按鈕設定一個機器人", + "LOADING": "正在取得機器人", "TYPE": "Bot Type" }, "DELETE": { "BUTTON_TEXT": "刪除", - "TITLE": "Delete Bot", + "TITLE": "刪除機器人", "SUBMIT": "刪除", "CANCEL_BUTTON_TEXT": "取消", "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible", "API": { - "SUCCESS_MESSAGE": "Bot deleted successfully", + "SUCCESS_MESSAGE": "機器人刪除成功", "ERROR_MESSAGE": "Could not able to delete bot, Please try again later" } }, "EDIT": { "BUTTON_TEXT": "編輯", - "LOADING": "Fetching Bots...", - "TITLE": "Edit Bot", + "LOADING": "正在取得機器人", + "TITLE": "編輯機器人", "CANCEL_BUTTON_TEXT": "取消", "API": { - "SUCCESS_MESSAGE": "Bot updated successfully", - "ERROR_MESSAGE": "Could not update bot, Please try again later" + "SUCCESS_MESSAGE": "機器人更新成功", + "ERROR_MESSAGE": "無法更新機器人,請稍後再試" } }, "TYPES": { - "WEBHOOK": "Webhook Bot", - "CSML": "CSML Bot" + "WEBHOOK": "Webhook 機器人", + "CSML": "CSML 機器人" } } } diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/agentMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/agentMgmt.json index ccec9b975..d32b0e9a8 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/agentMgmt.json @@ -74,6 +74,11 @@ "LABEL": "電子信箱地址", "PLACEHOLDER": "請輸入客服的電子郵件" }, + "AGENT_AVAILABILITY": { + "LABEL": "有效的", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, "SUBMIT": "編輯客服" }, "BUTTON_TEXT": "編輯", diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/attributesMgmt.json index c34eaf48b..4fd58ac97 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/attributesMgmt.json @@ -1,11 +1,11 @@ { "ATTRIBUTES_MGMT": { "HEADER": "自訂屬性", - "HEADER_BTN_TXT": "Add Custom Attribute", - "LOADING": "Fetching custom attributes", + "HEADER_BTN_TXT": "新增自訂屬性", + "LOADING": "正在取得自訂屬性", "SIDEBAR_TXT": "

Custom Attributes

A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.

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

", "ADD": { - "TITLE": "Add Custom Attribute", + "TITLE": "新增自訂屬性", "SUBMIT": "建立", "CANCEL_BUTTON_TEXT": "取消", "FORM": { @@ -21,7 +21,7 @@ }, "MODEL": { "LABEL": "Applies to", - "PLACEHOLDER": "Please select one", + "PLACEHOLDER": "請選擇其中一個", "ERROR": "Model is required" }, "TYPE": { diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/automation.json b/app/javascript/dashboard/i18n/locale/zh_TW/automation.json index 8e0db210e..b6f4ae9a9 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/automation.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/automation.json @@ -21,7 +21,7 @@ }, "EVENT": { "LABEL": "Event", - "PLACEHOLDER": "Please select one", + "PLACEHOLDER": "請選擇其中一個", "ERROR": "Event is required" }, "CONDITIONS": { diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/contact.json b/app/javascript/dashboard/i18n/locale/zh_TW/contact.json index eb1ef9491..20cb25b42 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/contact.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/contact.json @@ -7,7 +7,7 @@ "COPY_SUCCESSFUL": "成功複製到剪貼簿", "COMPANY": "公司", "LOCATION": "位置", - "BROWSER_LANGUAGE": "Browser Language", + "BROWSER_LANGUAGE": "瀏覽器語言", "CONVERSATION_TITLE": "對話詳細資訊", "VIEW_PROFILE": "查看個人檔案", "BROWSER": "瀏覽器", @@ -132,6 +132,17 @@ "PLACEHOLDER": "請輸入公司名稱", "LABEL": "公司名稱" }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "國家名稱", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "刪除", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, "SOCIAL_PROFILES": { "FACEBOOK": { "PLACEHOLDER": "請輸入 Facebook 使用者名稱", @@ -196,8 +207,8 @@ "SEARCH_BUTTON": "搜尋", "SEARCH_INPUT_PLACEHOLDER": "搜尋聯絡人", "FILTER_CONTACTS": "Filter", - "FILTER_CONTACTS_SAVE": "Save filter", - "FILTER_CONTACTS_DELETE": "Delete filter", + "FILTER_CONTACTS_SAVE": "儲存篩選條件", + "FILTER_CONTACTS_DELETE": "刪除篩選條件", "LIST": { "LOADING_MESSAGE": "聯絡人載入中...", "404": "找不到符合條件的聯絡人 🔍", @@ -207,7 +218,7 @@ "PHONE_NUMBER": "聯絡人電話", "CONVERSATIONS": "對話", "LAST_ACTIVITY": "最後活動", - "CREATED_AT": "Created At", + "CREATED_AT": "建立於", "COUNTRY": "國家", "CITY": "城市", "SOCIAL_PROFILES": "社群檔案", diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/contactFilters.json b/app/javascript/dashboard/i18n/locale/zh_TW/contactFilters.json index 79c3550a7..f0c8655fc 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/contactFilters.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/contactFilters.json @@ -2,28 +2,28 @@ "CONTACTS_FILTER": { "TITLE": "Filter Contacts", "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.", - "ADD_NEW_FILTER": "Add Filter", + "ADD_NEW_FILTER": "新增篩選條件", "CLEAR_ALL_FILTERS": "Clear All Filters", - "FILTER_DELETE_ERROR": "You should have atleast one filter to save", + "FILTER_DELETE_ERROR": "你必須有至少一個篩選條件才能儲存", "SUBMIT_BUTTON_LABEL": "送出", "CANCEL_BUTTON_LABEL": "取消", - "CLEAR_BUTTON_LABEL": "Clear Filters", - "EMPTY_VALUE_ERROR": "Value is required", + "CLEAR_BUTTON_LABEL": "清除篩選條件", + "EMPTY_VALUE_ERROR": "此欄位為必填項目", "TOOLTIP_LABEL": "Filter contacts", "QUERY_DROPDOWN_LABELS": { - "AND": "AND", - "OR": "OR" + "AND": "且", + "OR": "或" }, "OPERATOR_LABELS": { - "equal_to": "Equal to", - "not_equal_to": "Not equal to", - "contains": "Contains", - "does_not_contain": "Does not contain", - "is_present": "Is present", - "is_not_present": "Is not present", - "is_greater_than": "Is greater than", + "equal_to": "等於", + "not_equal_to": "不等於", + "contains": "包含", + "does_not_contain": "不包含", + "is_present": "存在", + "is_not_present": "不存在", + "is_greater_than": "大於", "is_lesser_than": "Is lesser than", - "days_before": "Is x days before" + "days_before": "x 天前" }, "ATTRIBUTES": { "NAME": "姓名", @@ -32,18 +32,18 @@ "IDENTIFIER": "Identifier", "CITY": "城市", "COUNTRY": "國家", - "CUSTOM_ATTRIBUTE_LIST": "List", - "CUSTOM_ATTRIBUTE_TEXT": "Text", - "CUSTOM_ATTRIBUTE_NUMBER": "Number", - "CUSTOM_ATTRIBUTE_LINK": "Link", - "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox", - "CREATED_AT": "Created At", + "CUSTOM_ATTRIBUTE_LIST": "列表", + "CUSTOM_ATTRIBUTE_TEXT": "文字", + "CUSTOM_ATTRIBUTE_NUMBER": "數字", + "CUSTOM_ATTRIBUTE_LINK": "連結", + "CUSTOM_ATTRIBUTE_CHECKBOX": "勾選框", + "CREATED_AT": "建立於", "LAST_ACTIVITY": "最後活動", "REFERER_LINK": "Referrer link" }, "GROUPS": { - "STANDARD_FILTERS": "Standard Filters", - "ADDITIONAL_FILTERS": "Additional Filters", + "STANDARD_FILTERS": "一般篩選條件", + "ADDITIONAL_FILTERS": "進階篩選條件", "CUSTOM_ATTRIBUTES": "自訂屬性" } } diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json b/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json index 760b8e12b..3d1158182 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json @@ -166,7 +166,15 @@ "COPY": "複製", "DELETE": "刪除", "CREATE_A_CANNED_RESPONSE": "Add to canned responses", - "TRANSLATE": "Translate" + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "刪除", + "CANCEL": "取消" + } } }, "EMAIL_TRANSCRIPT": { diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json index 9053928e4..9717cc6fe 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json @@ -22,7 +22,7 @@ "body": "將客服增加到建立的收件匣。" }, { - "title": "瞧!", + "title": "Voila!", "route": "settings_inbox_finish", "body": "您已設定狀態為離開" } @@ -30,7 +30,7 @@ "ADD": { "CHANNEL_NAME": { "LABEL": "收件匣名稱", - "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)", + "PLACEHOLDER": "輸入你的收件匣名稱 (e. g: Acme Inc)", "ERROR": "Please enter a valid inbox name" }, "WEBSITE_NAME": { @@ -62,7 +62,7 @@ }, "CHANNEL_WEBHOOK_URL": { "LABEL": "Webhook 網址", - "PLACEHOLDER": "Enter your Webhook URL", + "PLACEHOLDER": "輸入你的 Webhook URL", "ERROR": "請輸入一個有效的 URL" }, "CHANNEL_DOMAIN": { @@ -128,7 +128,7 @@ }, "CHANNEL_NAME": { "LABEL": "收件匣名稱", - "PLACEHOLDER": "Please enter a inbox name", + "PLACEHOLDER": "請輸入收件匣名稱", "ERROR": "此欄位是必填項目" }, "PHONE_NUMBER": { @@ -179,7 +179,7 @@ }, "INBOX_NAME": { "LABEL": "收件匣名稱", - "PLACEHOLDER": "Please enter a inbox name", + "PLACEHOLDER": "請輸入收件匣名稱", "ERROR": "此欄位是必填項目" }, "PHONE_NUMBER": { @@ -439,7 +439,8 @@ "LABEL": "Features", "DISPLAY_FILE_PICKER": "在小工具上顯示檔案選擇器", "DISPLAY_EMOJI_PICKER": "在小工具上顯示 emoji 選擇器", - "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger 脚本", diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/search.json b/app/javascript/dashboard/i18n/locale/zh_TW/search.json index fe2171e56..5c9371aa9 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/search.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/search.json @@ -12,9 +12,9 @@ "MESSAGES": "訊息" }, "EMPTY_STATE": "No %{item} found for query '%{query}'", - "EMPTY_STATE_FULL": "No results found for query '%{query}'", + "EMPTY_STATE_FULL": "查無 %{query} 條件的結果", "PLACEHOLDER_KEYBINDING": "/ to focus", - "INPUT_PLACEHOLDER": "Search messages, contacts or conversations", + "INPUT_PLACEHOLDER": "根據訊息、聯絡人或是對話搜尋", "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.", "BOT_LABEL": "機器人", "READ_MORE": "Read more", diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/settings.json b/app/javascript/dashboard/i18n/locale/zh_TW/settings.json index 5d950c513..06462f6bb 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/settings.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/settings.json @@ -164,6 +164,7 @@ "COMPONENTS": { "CODE": { "BUTTON_TEXT": "複製", + "CODEPEN": "Open in CodePen", "COPY_SUCCESSFUL": "Copied to clipboard" }, "SHOW_MORE_BLOCK": { @@ -201,7 +202,7 @@ "CONTACTS": "聯絡人", "HOME": "首頁", "AGENTS": "客服", - "AGENT_BOTS": "Bots", + "AGENT_BOTS": "機器人", "INBOXES": "收件匣", "NOTIFICATIONS": "通知", "CANNED_RESPONSES": "預設回覆", diff --git a/app/javascript/dashboard/mixins/automations/methodsMixin.js b/app/javascript/dashboard/mixins/automations/methodsMixin.js index bbdb3dfd6..611d5ad38 100644 --- a/app/javascript/dashboard/mixins/automations/methodsMixin.js +++ b/app/javascript/dashboard/mixins/automations/methodsMixin.js @@ -251,7 +251,7 @@ export default { }, getActionDropdownValues(type) { const { agents, labels, teams } = this; - return getActionOptions({ agents, labels, teams, type }); + return getActionOptions({ agents, labels, teams, languages, type }); }, manifestCustomAttributes() { const conversationCustomAttributesRaw = this.$store.getters[ diff --git a/app/javascript/dashboard/mixins/specs/time.spec.js b/app/javascript/dashboard/mixins/specs/time.spec.js index f185a0a66..56b70ec8a 100644 --- a/app/javascript/dashboard/mixins/specs/time.spec.js +++ b/app/javascript/dashboard/mixins/specs/time.spec.js @@ -9,6 +9,19 @@ describe('#messageStamp', () => { }); }); +describe('#messageTimestamp', () => { + it('should return the message date in the specified format if the message was sent in the current year', () => { + expect(TimeMixin.methods.messageTimestamp(1680777464)).toEqual( + 'Apr 6, 2023' + ); + }); + it('should return the message date and time in a different format if the message was sent in a different year', () => { + expect(TimeMixin.methods.messageTimestamp(1612971343)).toEqual( + 'Feb 10 2021, 3:35 PM' + ); + }); +}); + describe('#dynamicTime', () => { it('returns correct value', () => { expect(TimeMixin.methods.dynamicTime(1612971343)).toEqual( diff --git a/app/javascript/dashboard/mixins/time.js b/app/javascript/dashboard/mixins/time.js index eec357b88..6b63f97f9 100644 --- a/app/javascript/dashboard/mixins/time.js +++ b/app/javascript/dashboard/mixins/time.js @@ -1,6 +1,9 @@ -import fromUnixTime from 'date-fns/fromUnixTime'; -import format from 'date-fns/format'; -import formatDistanceToNow from 'date-fns/formatDistanceToNow'; +import { + format, + isSameYear, + fromUnixTime, + formatDistanceToNow, +} from 'date-fns'; export default { methods: { @@ -8,6 +11,15 @@ export default { const unixTime = fromUnixTime(time); return format(unixTime, dateFormat); }, + messageTimestamp(time, dateFormat = 'MMM d, yyyy') { + const messageTime = fromUnixTime(time); + const now = new Date(); + const messageDate = format(messageTime, dateFormat); + if (!isSameYear(messageTime, now)) { + return format(messageTime, 'LLL d y, h:mm a'); + } + return messageDate; + }, dynamicTime(time) { const unixTime = fromUnixTime(time); return formatDistanceToNow(unixTime, { addSuffix: true }); diff --git a/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue b/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue index d3b98bcac..1248dc308 100644 --- a/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue +++ b/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue @@ -1,7 +1,8 @@ diff --git a/app/javascript/dashboard/modules/search/components/SearchHeader.vue b/app/javascript/dashboard/modules/search/components/SearchHeader.vue index aa85eddab..107cfbc2a 100644 --- a/app/javascript/dashboard/modules/search/components/SearchHeader.vue +++ b/app/javascript/dashboard/modules/search/components/SearchHeader.vue @@ -76,7 +76,8 @@ export default { display: flex; align-items: center; padding: var(--space-small) var(--space-normal); - border-bottom: 1px solid var(--s-100); + border: 1px solid var(--s-100); + border-radius: var(--border-radius-small); transition: border-bottom 0.2s ease-in-out; input[type='search'] { @@ -86,7 +87,7 @@ export default { } &.is-focused { - border-bottom: 1px solid var(--w-100); + border-color: var(--w-100); .icon { color: var(--w-400); diff --git a/app/javascript/dashboard/modules/search/components/SearchResultConversationItem.vue b/app/javascript/dashboard/modules/search/components/SearchResultConversationItem.vue index 8341f69bd..2e176f76e 100644 --- a/app/javascript/dashboard/modules/search/components/SearchResultConversationItem.vue +++ b/app/javascript/dashboard/modules/search/components/SearchResultConversationItem.vue @@ -60,10 +60,21 @@ export default { type: [String, Date, Number], default: '', }, + messageId: { + type: Number, + default: 0, + }, }, computed: { navigateTo() { - return frontendURL(`accounts/${this.accountId}/conversations/${this.id}`); + const params = {}; + if (this.messageId) { + params.messageId = this.messageId; + } + return frontendURL( + `accounts/${this.accountId}/conversations/${this.id}`, + params + ); }, createdAtTime() { return this.dynamicTime(this.createdAt); diff --git a/app/javascript/dashboard/modules/search/components/SearchResultMessagesList.vue b/app/javascript/dashboard/modules/search/components/SearchResultMessagesList.vue index 4dbbb3bcd..53846cf89 100644 --- a/app/javascript/dashboard/modules/search/components/SearchResultMessagesList.vue +++ b/app/javascript/dashboard/modules/search/components/SearchResultMessagesList.vue @@ -11,6 +11,7 @@ :account-id="accountId" :inbox="message.inbox" :created-at="message.created_at" + :message-id="message.id" > .tab-container { margin-top: var(--space-smaller); - border-bottom: 1px solid var(--s-50); + border-bottom: 1px solid var(--s-100); } diff --git a/app/javascript/dashboard/modules/search/components/SearchView.vue b/app/javascript/dashboard/modules/search/components/SearchView.vue index c079b46ae..819f4acec 100644 --- a/app/javascript/dashboard/modules/search/components/SearchView.vue +++ b/app/javascript/dashboard/modules/search/components/SearchView.vue @@ -1,5 +1,5 @@