Merge branch 'develop' into chore/conversation-participants

This commit is contained in:
Sojan Jose 2022-12-19 15:50:56 +05:30 committed by GitHub
commit 4f75175ce6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
514 changed files with 14214 additions and 1389 deletions

View file

@ -4,7 +4,7 @@ ruby '3.0.4'
##-- base gems for rails --## ##-- base gems for rails --##
gem 'rack-cors', require: 'rack/cors' gem 'rack-cors', require: 'rack/cors'
gem 'rails', '~>6.1' gem 'rails', '~> 6.1', '>= 6.1.6.1'
# Reduces boot times through caching; required in config/boot.rb # Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', require: false gem 'bootsnap', require: false
@ -56,7 +56,7 @@ gem 'activerecord-import'
gem 'dotenv-rails' gem 'dotenv-rails'
gem 'foreman' gem 'foreman'
gem 'puma' gem 'puma'
gem 'webpacker', '~> 5.x' gem 'webpacker', '~> 5.4', '>= 5.4.3'
# metrics on heroku # metrics on heroku
gem 'barnes' gem 'barnes'
@ -94,7 +94,7 @@ gem 'ddtrace'
gem 'elastic-apm' gem 'elastic-apm'
gem 'newrelic_rpm' gem 'newrelic_rpm'
gem 'scout_apm' gem 'scout_apm'
gem 'sentry-rails', '~> 5.3' gem 'sentry-rails', '~> 5.3', '>= 5.3.1'
gem 'sentry-ruby', '~> 5.3' gem 'sentry-ruby', '~> 5.3'
gem 'sentry-sidekiq', '~> 5.3' gem 'sentry-sidekiq', '~> 5.3'
@ -175,7 +175,7 @@ group :development, :test do
gem 'mock_redis' gem 'mock_redis'
gem 'pry-rails' gem 'pry-rails'
gem 'rspec_junit_formatter' gem 'rspec_junit_formatter'
gem 'rspec-rails', '~> 5.0.0' gem 'rspec-rails', '~> 5.0.3'
gem 'rubocop', require: false gem 'rubocop', require: false
gem 'rubocop-performance', require: false gem 'rubocop-performance', require: false
gem 'rubocop-rails', require: false gem 'rubocop-rails', require: false

View file

@ -398,7 +398,7 @@ GEM
llhttp-ffi (0.4.0) llhttp-ffi (0.4.0)
ffi-compiler (~> 1.0) ffi-compiler (~> 1.0)
rake (~> 13.0) rake (~> 13.0)
loofah (2.18.0) loofah (2.19.1)
crass (~> 1.0.2) crass (~> 1.0.2)
nokogiri (>= 1.5.9) nokogiri (>= 1.5.9)
mail (2.7.1) mail (2.7.1)
@ -427,14 +427,14 @@ GEM
netrc (0.11.0) netrc (0.11.0)
newrelic_rpm (8.9.0) newrelic_rpm (8.9.0)
nio4r (2.5.8) nio4r (2.5.8)
nokogiri (1.13.9) nokogiri (1.13.10)
mini_portile2 (~> 2.8.0) mini_portile2 (~> 2.8.0)
racc (~> 1.4) racc (~> 1.4)
nokogiri (1.13.9-arm64-darwin) nokogiri (1.13.10-arm64-darwin)
racc (~> 1.4) racc (~> 1.4)
nokogiri (1.13.9-x86_64-darwin) nokogiri (1.13.10-x86_64-darwin)
racc (~> 1.4) racc (~> 1.4)
nokogiri (1.13.9-x86_64-linux) nokogiri (1.13.10-x86_64-linux)
racc (~> 1.4) racc (~> 1.4)
oauth (0.5.10) oauth (0.5.10)
orm_adapter (0.5.0) orm_adapter (0.5.0)
@ -459,7 +459,7 @@ GEM
pundit (2.2.0) pundit (2.2.0)
activesupport (>= 3.0.0) activesupport (>= 3.0.0)
raabro (1.4.0) raabro (1.4.0)
racc (1.6.0) racc (1.6.1)
rack (2.2.4) rack (2.2.4)
rack-attack (6.6.1) rack-attack (6.6.1)
rack (>= 1.0, < 3) rack (>= 1.0, < 3)
@ -488,8 +488,8 @@ GEM
rails-dom-testing (2.0.3) rails-dom-testing (2.0.3)
activesupport (>= 4.2.0) activesupport (>= 4.2.0)
nokogiri (>= 1.6) nokogiri (>= 1.6)
rails-html-sanitizer (1.4.3) rails-html-sanitizer (1.4.4)
loofah (~> 2.3) loofah (~> 2.19, >= 2.19.1)
railties (6.1.6.1) railties (6.1.6.1)
actionpack (= 6.1.6.1) actionpack (= 6.1.6.1)
activesupport (= 6.1.6.1) activesupport (= 6.1.6.1)
@ -765,12 +765,12 @@ DEPENDENCIES
rack-attack rack-attack
rack-cors rack-cors
rack-timeout rack-timeout
rails (~> 6.1) rails (~> 6.1, >= 6.1.6.1)
redis redis
redis-namespace redis-namespace
responders responders
rest-client rest-client
rspec-rails (~> 5.0.0) rspec-rails (~> 5.0.3)
rspec_junit_formatter rspec_junit_formatter
rubocop rubocop
rubocop-performance rubocop-performance
@ -778,7 +778,7 @@ DEPENDENCIES
rubocop-rspec rubocop-rspec
scout_apm scout_apm
seed_dump seed_dump
sentry-rails (~> 5.3) sentry-rails (~> 5.3, >= 5.3.1)
sentry-ruby (~> 5.3) sentry-ruby (~> 5.3)
sentry-sidekiq (~> 5.3) sentry-sidekiq (~> 5.3)
shoulda-matchers shoulda-matchers
@ -799,7 +799,7 @@ DEPENDENCIES
valid_email2 valid_email2
web-console web-console
webmock webmock
webpacker (~> 5.x) webpacker (~> 5.4, >= 5.4.3)
webpush webpush
wisper (= 2.0.0) wisper (= 2.0.0)
working_hours working_hours

View file

@ -46,6 +46,7 @@ class Messages::Messenger::MessageBuilder
end end
def update_attachment_file_type(attachment) def update_attachment_file_type(attachment)
return if @message.reload.attachments.blank?
return unless attachment.file_type == 'share' || attachment.file_type == 'story_mention' return unless attachment.file_type == 'share' || attachment.file_type == 'story_mention'
attachment.file_type = file_type(attachment.file&.content_type) attachment.file_type = file_type(attachment.file&.content_type)
@ -62,6 +63,7 @@ class Messages::Messenger::MessageBuilder
story_sender = result['from']['username'] story_sender = result['from']['username']
message.content_attributes[:story_sender] = story_sender message.content_attributes[:story_sender] = story_sender
message.content_attributes[:story_id] = story_id message.content_attributes[:story_id] = story_id
message.content_attributes[:image_type] = 'story_mention'
message.content = I18n.t('conversations.messages.instagram_story_content', story_sender: story_sender) message.content = I18n.t('conversations.messages.instagram_story_content', story_sender: story_sender)
message.save! message.save!
end end
@ -74,6 +76,7 @@ class Messages::Messenger::MessageBuilder
raise raise
rescue Koala::Facebook::ClientError => e rescue Koala::Facebook::ClientError => e
# The exception occurs when we are trying fetch the deleted story or blocked story. # The exception occurs when we are trying fetch the deleted story or blocked story.
@message.attachments.destroy_all
@message.update(content: I18n.t('conversations.messages.instagram_deleted_story_content')) @message.update(content: I18n.t('conversations.messages.instagram_deleted_story_content'))
Rails.logger.error e Rails.logger.error e
{} {}

View file

@ -18,6 +18,10 @@ class Api::V1::ProfilesController < Api::BaseController
head :ok head :ok
end end
def auto_offline
@user.account_users.find_by!(account_id: auto_offline_params[:account_id]).update!(auto_offline: auto_offline_params[:auto_offline] || false)
end
def availability def availability
@user.account_users.find_by!(account_id: availability_params[:account_id]).update!(availability: availability_params[:availability]) @user.account_users.find_by!(account_id: availability_params[:account_id]).update!(availability: availability_params[:availability])
end end
@ -37,6 +41,10 @@ class Api::V1::ProfilesController < Api::BaseController
params.require(:profile).permit(:account_id, :availability) params.require(:profile).permit(:account_id, :availability)
end end
def auto_offline_params
params.require(:profile).permit(:account_id, :auto_offline)
end
def profile_params def profile_params
params.require(:profile).permit( params.require(:profile).permit(
:email, :email,

View file

@ -24,7 +24,6 @@ class DashboardController < ActionController::Base
'API_CHANNEL_NAME', 'API_CHANNEL_NAME',
'API_CHANNEL_THUMBNAIL', 'API_CHANNEL_THUMBNAIL',
'ANALYTICS_TOKEN', 'ANALYTICS_TOKEN',
'ANALYTICS_HOST',
'DIRECT_UPLOADS_ENABLED', 'DIRECT_UPLOADS_ENABLED',
'HCAPTCHA_SITE_KEY', 'HCAPTCHA_SITE_KEY',
'LOGOUT_REDIRECT_LINK', 'LOGOUT_REDIRECT_LINK',

View file

@ -1,8 +1,7 @@
class Platform::Api::V1::AccountsController < PlatformController class Platform::Api::V1::AccountsController < PlatformController
def create def create
@resource = Account.new(account_params) @resource = Account.create!(account_params)
update_resource_features update_resource_features
@resource.save!
@platform_app.platform_app_permissibles.find_or_create_by(permissible: @resource) @platform_app.platform_app_permissibles.find_or_create_by(permissible: @resource)
end end

View file

@ -144,6 +144,12 @@ export default {
}); });
}, },
updateAutoOffline(accountId, autoOffline = false) {
return axios.post(endPoints('autoOffline').url, {
profile: { account_id: accountId, auto_offline: autoOffline },
});
},
deleteAvatar() { deleteAvatar() {
return axios.delete(endPoints('deleteAvatar').url); return axios.delete(endPoints('deleteAvatar').url);
}, },

View file

@ -16,6 +16,9 @@ const endPoints = {
availabilityUpdate: { availabilityUpdate: {
url: '/api/v1/profile/availability', url: '/api/v1/profile/availability',
}, },
autoOffline: {
url: '/api/v1/profile/auto_offline',
},
logout: { logout: {
url: 'auth/sign_out', url: 'auth/sign_out',
}, },

View file

@ -0,0 +1,6 @@
/* global axios */
import wootConstants from 'dashboard/constants';
export const getTestimonialContent = () => {
return axios.get(wootConstants.TESTIMONIAL_URL);
};

View file

@ -74,8 +74,8 @@ Tahoma,
Arial, Arial,
sans-serif; sans-serif;
$body-antialiased: true; $body-antialiased: true;
$global-margin: $space-one; $global-margin: $space-small;
$global-padding: $space-one; $global-padding: $space-micro;
$global-weight-normal: normal; $global-weight-normal: normal;
$global-weight-bold: bold; $global-weight-bold: bold;
$global-radius: 0; $global-radius: 0;

View file

@ -20,6 +20,24 @@
@include foundation-everything($flex: true); @include foundation-everything($flex: true);
@include foundation-prototype-text-utilities;
@include foundation-prototype-text-transformation;
@include foundation-prototype-text-decoration;
@include foundation-prototype-font-styling;
@include foundation-prototype-list-style-type;
@include foundation-prototype-rounded;
@include foundation-prototype-bordered;
@include foundation-prototype-shadow;
@include foundation-prototype-separator;
@include foundation-prototype-overflow;
@include foundation-prototype-display;
@include foundation-prototype-position;
@include foundation-prototype-border-box;
@include foundation-prototype-border-none;
@include foundation-prototype-sizing;
@include foundation-prototype-spacing;
@import 'typography'; @import 'typography';
@import 'layout'; @import 'layout';
@import 'animations'; @import 'animations';

View file

@ -345,6 +345,9 @@ export default {
}; };
}, },
pageTitle() { pageTitle() {
if (this.hasAppliedFilters) {
return this.$t('CHAT_LIST.TAB_HEADING');
}
if (this.inbox.name) { if (this.inbox.name) {
return this.inbox.name; return this.inbox.name;
} }
@ -442,9 +445,6 @@ export default {
}, },
methods: { methods: {
onApplyFilter(payload) { onApplyFilter(payload) {
if (this.$route.name !== 'home') {
this.$router.push({ name: 'home' });
}
this.resetBulkActions(); this.resetBulkActions();
this.foldersQuery = filterQueryGenerator(payload); this.foldersQuery = filterQueryGenerator(payload);
this.$store.dispatch('conversationPage/reset'); this.$store.dispatch('conversationPage/reset');

View file

@ -18,12 +18,35 @@
</woot-button> </woot-button>
</woot-dropdown-item> </woot-dropdown-item>
<woot-dropdown-divider /> <woot-dropdown-divider />
<woot-dropdown-item class="auto-offline--toggle">
<div class="info-wrap">
<fluent-icon
v-tooltip.right-start="$t('SIDEBAR.SET_AUTO_OFFLINE.INFO_TEXT')"
icon="info"
size="14"
class="info-icon"
/>
<span class="auto-offline--text">
{{ $t('SIDEBAR.SET_AUTO_OFFLINE.TEXT') }}
</span>
</div>
<woot-switch
size="small"
class="auto-offline--switch"
:value="currentUserAutoOffline"
@input="updateAutoOffline"
/>
</woot-dropdown-item>
<woot-dropdown-divider />
</woot-dropdown-menu> </woot-dropdown-menu>
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { mixin as clickaway } from 'vue-clickaway'; import { mixin as clickaway } from 'vue-clickaway';
import alertMixin from 'shared/mixins/alertMixin';
import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem'; import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem';
import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu'; import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu';
import WootDropdownHeader from 'shared/components/ui/dropdown/DropdownHeader'; import WootDropdownHeader from 'shared/components/ui/dropdown/DropdownHeader';
@ -41,7 +64,7 @@ export default {
AvailabilityStatusBadge, AvailabilityStatusBadge,
}, },
mixins: [clickaway], mixins: [clickaway, alertMixin],
data() { data() {
return { return {
@ -54,6 +77,7 @@ export default {
...mapGetters({ ...mapGetters({
getCurrentUserAvailability: 'getCurrentUserAvailability', getCurrentUserAvailability: 'getCurrentUserAvailability',
currentAccountId: 'getCurrentAccountId', currentAccountId: 'getCurrentAccountId',
currentUserAutoOffline: 'getCurrentUserAutoOffline',
}), }),
availabilityDisplayLabel() { availabilityDisplayLabel() {
const availabilityIndex = AVAILABILITY_STATUS_KEYS.findIndex( const availabilityIndex = AVAILABILITY_STATUS_KEYS.findIndex(
@ -85,21 +109,30 @@ export default {
closeStatusMenu() { closeStatusMenu() {
this.isStatusMenuOpened = false; this.isStatusMenuOpened = false;
}, },
updateAutoOffline(autoOffline) {
this.$store.dispatch('updateAutoOffline', {
accountId: this.currentAccountId,
autoOffline,
});
},
changeAvailabilityStatus(availability) { changeAvailabilityStatus(availability) {
const accountId = this.currentAccountId;
if (this.isUpdating) { if (this.isUpdating) {
return; return;
} }
this.isUpdating = true; this.isUpdating = true;
this.$store try {
.dispatch('updateAvailability', { this.$store.dispatch('updateAvailability', {
availability: availability, availability,
account_id: accountId, account_id: this.currentAccountId,
})
.finally(() => {
this.isUpdating = false;
}); });
} catch (error) {
this.showAlert(
this.$t('PROFILE_SETTINGS.FORM.AVAILABILITY.SET_AVAILABILITY_ERROR')
);
} finally {
this.isUpdating = false;
}
}, },
}, },
}; };
@ -143,4 +176,32 @@ export default {
align-items: baseline; align-items: baseline;
} }
} }
.auto-offline--toggle {
align-items: center;
display: flex;
justify-content: space-between;
padding: var(--space-smaller) 0 var(--space-smaller) var(--space-small);
margin: 0;
.info-wrap {
display: flex;
align-items: center;
}
.info-icon {
margin-top: -1px;
}
.auto-offline--switch {
margin: -1px var(--space-micro) 0;
}
.auto-offline--text {
margin: 0 var(--space-smaller);
font-size: var(--font-size-mini);
font-weight: var(--font-weight-medium);
color: var(--s-700);
}
}
</style> </style>

View file

@ -29,6 +29,7 @@ const primaryMenuItems = accountId => [
icon: 'megaphone', icon: 'megaphone',
key: 'campaigns', key: 'campaigns',
label: 'CAMPAIGNS', label: 'CAMPAIGNS',
featureFlag: 'campaigns',
toState: frontendURL(`accounts/${accountId}/campaigns`), toState: frontendURL(`accounts/${accountId}/campaigns`),
toStateName: 'settings_account_campaigns', toStateName: 'settings_account_campaigns',
roles: ['administrator'], roles: ['administrator'],

View file

@ -135,7 +135,7 @@ export default {
.dropdown-pane { .dropdown-pane {
left: var(--space-slab); left: var(--space-slab);
bottom: var(--space-larger); bottom: var(--space-larger);
min-width: 16.8rem; min-width: 22rem;
z-index: var(--z-index-much-higher); z-index: var(--z-index-low);
} }
</style> </style>

View file

@ -112,6 +112,7 @@ $label-badge-size: var(--space-slab);
padding: var(--space-smaller) var(--space-smaller); padding: var(--space-smaller) var(--space-smaller);
margin: var(--space-smaller) 0; margin: var(--space-smaller) 0;
text-align: left; text-align: left;
line-height: 1.2;
&:hover { &:hover {
background: var(--s-25); background: var(--s-25);
@ -135,8 +136,6 @@ $label-badge-size: var(--space-slab);
.menu-label { .menu-label {
flex-grow: 1; flex-grow: 1;
display: inline-flex;
align-items: center;
} }
.inbox-icon { .inbox-icon {

View file

@ -199,8 +199,8 @@ export default {
&.smooth { &.smooth {
background: transparent; background: transparent;
border: 1px solid var(--s-75); border: 1px solid var(--s-100);
color: var(--s-800); color: var(--s-700);
} }
} }

View file

@ -2,7 +2,7 @@
<button <button
type="button" type="button"
class="toggle-button" class="toggle-button"
:class="{ active: value }" :class="{ active: value, small: size === 'small' }"
role="switch" role="switch"
:aria-checked="value.toString()" :aria-checked="value.toString()"
@click="onClick" @click="onClick"
@ -15,6 +15,7 @@
export default { export default {
props: { props: {
value: { type: Boolean, default: false }, value: { type: Boolean, default: false },
size: { type: String, default: '' },
}, },
methods: { methods: {
onClick() { onClick() {
@ -45,6 +46,20 @@ export default {
background-color: var(--w-500); background-color: var(--w-500);
} }
&.small {
width: 22px;
height: 14px;
span {
height: var(--space-one);
width: var(--space-one);
&.active {
transform: translate(var(--space-small), var(--space-zero));
}
}
}
span { span {
--space-one-point-five: 1.5rem; --space-one-point-five: 1.5rem;
background-color: var(--white); background-color: var(--white);

View file

@ -67,6 +67,9 @@ export default {
if (Object.keys(this.enabledFeatures).length === 0) { if (Object.keys(this.enabledFeatures).length === 0) {
return false; return false;
} }
if (key === 'website') {
return this.enabledFeatures.channel_website;
}
if (key === 'facebook') { if (key === 'facebook') {
return this.enabledFeatures.channel_facebook; return this.enabledFeatures.channel_facebook;
} }

View file

@ -61,6 +61,7 @@ export default {
} }
.colorpicker--selected { .colorpicker--selected {
border: 1px solid var(--color-border-light);
border-radius: $space-smaller; border-radius: $space-smaller;
cursor: pointer; cursor: pointer;
height: $space-large; height: $space-large;

View file

@ -46,11 +46,16 @@ export default {
return { return {
conversation: this.currentChat, conversation: this.currentChat,
contact: this.$store.getters['contacts/getContact'](this.contactId), contact: this.$store.getters['contacts/getContact'](this.contactId),
currentAgent: this.currentAgent,
}; };
}, },
contactId() { contactId() {
return this.currentChat?.meta?.sender?.id; return this.currentChat?.meta?.sender?.id;
}, },
currentAgent() {
const { id, name, email } = this.$store.getters.getCurrentUser;
return { id, name, email };
},
}, },
mounted() { mounted() {

View file

@ -39,10 +39,17 @@ const TYPING_INDICATOR_IDLE_TIME = 4000;
import '@chatwoot/prosemirror-schema/src/woot-editor.css'; import '@chatwoot/prosemirror-schema/src/woot-editor.css';
import { import {
hasPressedEnterAndNotCmdOrShift,
hasPressedCommandAndEnter,
hasPressedAltAndPKey, hasPressedAltAndPKey,
hasPressedAltAndLKey, hasPressedAltAndLKey,
} from 'shared/helpers/KeyboardHelpers'; } from 'shared/helpers/KeyboardHelpers';
import eventListenerMixins from 'shared/mixins/eventListenerMixins'; import eventListenerMixins from 'shared/mixins/eventListenerMixins';
import uiSettingsMixin from 'dashboard/mixins/uiSettings';
import { isEditorHotKeyEnabled } from 'dashboard/mixins/uiSettings';
import AnalyticsHelper, {
ANALYTICS_EVENTS,
} from '../../../helper/AnalyticsHelper';
const createState = (content, placeholder, plugins = []) => { const createState = (content, placeholder, plugins = []) => {
return EditorState.create({ return EditorState.create({
@ -58,13 +65,14 @@ const createState = (content, placeholder, plugins = []) => {
export default { export default {
name: 'WootMessageEditor', name: 'WootMessageEditor',
components: { TagAgents, CannedResponse }, components: { TagAgents, CannedResponse },
mixins: [eventListenerMixins], mixins: [eventListenerMixins, uiSettingsMixin],
props: { props: {
value: { type: String, default: '' }, value: { type: String, default: '' },
editorId: { type: String, default: '' }, editorId: { type: String, default: '' },
placeholder: { type: String, default: '' }, placeholder: { type: String, default: '' },
isPrivate: { type: Boolean, default: false }, isPrivate: { type: Boolean, default: false },
enableSuggestions: { type: Boolean, default: true }, enableSuggestions: { type: Boolean, default: true },
overrideLineBreaks: { type: Boolean, default: false },
updateSelectionWith: { type: String, default: '' }, updateSelectionWith: { type: String, default: '' },
}, },
data() { data() {
@ -208,6 +216,9 @@ export default {
keyup: () => { keyup: () => {
this.onKeyup(); this.onKeyup();
}, },
keydown: (view, event) => {
this.onKeydown(event);
},
focus: () => { focus: () => {
this.onFocus(); this.onFocus();
}, },
@ -223,6 +234,12 @@ export default {
}, },
}); });
}, },
isEnterToSendEnabled() {
return isEditorHotKeyEnabled(this.uiSettings, 'enter');
},
isCmdPlusEnterToSendEnabled() {
return isEditorHotKeyEnabled(this.uiSettings, 'cmd_enter');
},
handleKeyEvents(e) { handleKeyEvents(e) {
if (hasPressedAltAndPKey(e)) { if (hasPressedAltAndPKey(e)) {
this.focusEditorInputField(); this.focusEditorInputField();
@ -254,6 +271,7 @@ export default {
); );
this.state = this.editorView.state.apply(tr); this.state = this.editorView.state.apply(tr);
this.emitOnChange(); this.emitOnChange();
AnalyticsHelper.track(ANALYTICS_EVENTS.USED_MENTIONS);
return false; return false;
}, },
@ -283,6 +301,7 @@ export default {
this.emitOnChange(); this.emitOnChange();
tr.scrollIntoView(); tr.scrollIntoView();
AnalyticsHelper.track(ANALYTICS_EVENTS.INSERTED_A_CANNED_RESPONSE);
return false; return false;
}, },
@ -304,6 +323,24 @@ export default {
clearTimeout(this.idleTimer); clearTimeout(this.idleTimer);
} }
}, },
handleLineBreakWhenEnterToSendEnabled(event) {
if (
hasPressedEnterAndNotCmdOrShift(event) &&
this.isEnterToSendEnabled() &&
!this.overrideLineBreaks
) {
event.preventDefault();
}
},
handleLineBreakWhenCmdAndEnterToSendEnabled(event) {
if (
hasPressedCommandAndEnter(event) &&
this.isCmdPlusEnterToSendEnabled() &&
!this.overrideLineBreaks
) {
event.preventDefault();
}
},
onKeyup() { onKeyup() {
if (!this.idleTimer) { if (!this.idleTimer) {
this.$emit('typing-on'); this.$emit('typing-on');
@ -314,6 +351,14 @@ export default {
TYPING_INDICATOR_IDLE_TIME TYPING_INDICATOR_IDLE_TIME
); );
}, },
onKeydown(event) {
if (this.isEnterToSendEnabled()) {
this.handleLineBreakWhenEnterToSendEnabled(event);
}
if (this.isCmdPlusEnterToSendEnabled()) {
this.handleLineBreakWhenCmdAndEnterToSendEnabled(event);
}
},
onBlur() { onBlur() {
this.turnOffIdleTimer(); this.turnOffIdleTimer();
this.resetTyping(); this.resetTyping();

View file

@ -91,6 +91,7 @@
</span> </span>
<span class="unread">{{ unreadCount > 9 ? '9+' : unreadCount }}</span> <span class="unread">{{ unreadCount > 9 ? '9+' : unreadCount }}</span>
</div> </div>
<card-labels :conversation-id="chat.id" />
</div> </div>
<woot-context-menu <woot-context-menu
v-if="showContextMenu" v-if="showContextMenu"
@ -125,8 +126,8 @@ import InboxName from '../InboxName';
import inboxMixin from 'shared/mixins/inboxMixin'; import inboxMixin from 'shared/mixins/inboxMixin';
import ConversationContextMenu from './contextMenu/Index.vue'; import ConversationContextMenu from './contextMenu/Index.vue';
import alertMixin from 'shared/mixins/alertMixin'; import alertMixin from 'shared/mixins/alertMixin';
import timeAgo from 'dashboard/components/ui/TimeAgo'; import TimeAgo from 'dashboard/components/ui/TimeAgo';
import CardLabels from './conversationCardComponents/CardLabels.vue';
const ATTACHMENT_ICONS = { const ATTACHMENT_ICONS = {
image: 'image', image: 'image',
audio: 'headphones-sound-wave', audio: 'headphones-sound-wave',
@ -138,10 +139,11 @@ const ATTACHMENT_ICONS = {
export default { export default {
components: { components: {
CardLabels,
InboxName, InboxName,
Thumbnail, Thumbnail,
ConversationContextMenu, ConversationContextMenu,
timeAgo, TimeAgo,
}, },
mixins: [ mixins: [
@ -370,11 +372,15 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.conversation { .conversation {
align-items: center; align-items: flex-start;
&:hover { &:hover {
background: var(--color-background-light); background: var(--color-background-light);
} }
&::v-deep .user-thumbnail-box {
margin-top: var(--space-normal);
}
} }
.conversation-selected { .conversation-selected {
@ -383,8 +389,10 @@ export default {
.has-inbox-name { .has-inbox-name {
&::v-deep .user-thumbnail-box { &::v-deep .user-thumbnail-box {
margin-top: var(--space-normal); margin-top: var(--space-large);
align-items: flex-start; }
.checkbox-wrapper {
margin-top: var(--space-large);
} }
.conversation--meta { .conversation--meta {
margin-top: var(--space-normal); margin-top: var(--space-normal);
@ -429,6 +437,7 @@ export default {
margin-top: var(--space-minus-micro); margin-top: var(--space-minus-micro);
vertical-align: middle; vertical-align: middle;
} }
.checkbox-wrapper { .checkbox-wrapper {
height: 40px; height: 40px;
width: 40px; width: 40px;
@ -438,6 +447,7 @@ export default {
border-radius: 100%; border-radius: 100%;
margin-top: var(--space-normal); margin-top: var(--space-normal);
cursor: pointer; cursor: pointer;
&:hover { &:hover {
background-color: var(--w-100); background-color: var(--w-100);
} }

View file

@ -433,12 +433,7 @@ export default {
position: fixed; position: fixed;
left: unset; left: unset;
position: absolute; position: absolute;
bottom: var(--space-smaller);
&::before {
transform: rotate(0deg);
left: var(--space-smaller);
bottom: var(--space-minus-slab);
}
} }
} }
} }

View file

@ -132,7 +132,6 @@ import { mapGetters } from 'vuex';
import { mixin as clickaway } from 'vue-clickaway'; import { mixin as clickaway } from 'vue-clickaway';
import alertMixin from 'shared/mixins/alertMixin'; import alertMixin from 'shared/mixins/alertMixin';
import EmojiInput from 'shared/components/emoji/EmojiInput';
import CannedResponse from './CannedResponse'; import CannedResponse from './CannedResponse';
import ResizableTextArea from 'shared/components/ResizableTextArea'; import ResizableTextArea from 'shared/components/ResizableTextArea';
import AttachmentPreview from 'dashboard/components/widgets/AttachmentsPreview'; import AttachmentPreview from 'dashboard/components/widgets/AttachmentsPreview';
@ -162,6 +161,11 @@ import { LocalStorage, LOCAL_STORAGE_KEYS } from '../../../helper/localStorage';
import { trimContent, debounce } from '@chatwoot/utils'; import { trimContent, debounce } from '@chatwoot/utils';
import wootConstants from 'dashboard/constants'; import wootConstants from 'dashboard/constants';
import { isEditorHotKeyEnabled } from 'dashboard/mixins/uiSettings'; import { isEditorHotKeyEnabled } from 'dashboard/mixins/uiSettings';
import AnalyticsHelper, {
ANALYTICS_EVENTS,
} from '../../../helper/AnalyticsHelper';
const EmojiInput = () => import('shared/components/emoji/EmojiInput');
export default { export default {
components: { components: {
@ -401,7 +405,7 @@ export default {
return conversationDisplayType !== CONDENSED; return conversationDisplayType !== CONDENSED;
}, },
emojiDialogClassOnExpanedLayout() { emojiDialogClassOnExpanedLayout() {
return this.isOnExpandedLayout && !this.popoutReplyBox return this.isOnExpandedLayout || this.popoutReplyBox
? 'emoji-dialog--expanded' ? 'emoji-dialog--expanded'
: ''; : '';
}, },
@ -589,6 +593,7 @@ export default {
e.preventDefault(); e.preventDefault();
} else if (keyCode === 'enter' && this.isAValidEvent('enter')) { } else if (keyCode === 'enter' && this.isAValidEvent('enter')) {
this.onSendReply(); this.onSendReply();
e.preventDefault();
} else if ( } else if (
['meta+enter', 'ctrl+enter'].includes(keyCode) && ['meta+enter', 'ctrl+enter'].includes(keyCode) &&
this.isAValidEvent('cmd_enter') this.isAValidEvent('cmd_enter')
@ -696,6 +701,7 @@ export default {
}, },
replaceText(message) { replaceText(message) {
setTimeout(() => { setTimeout(() => {
AnalyticsHelper.track(ANALYTICS_EVENTS.INSERTED_A_CANNED_RESPONSE);
this.message = message; this.message = message;
}, 100); }, 100);
}, },
@ -984,13 +990,13 @@ export default {
.emoji-dialog { .emoji-dialog {
top: unset; top: unset;
bottom: 12px; bottom: var(--space-normal);
left: -320px; left: -320px;
right: unset; right: unset;
&::before { &::before {
right: -16px; right: var(--space-minus-normal);
bottom: 10px; bottom: var(--space-small);
transform: rotate(270deg); transform: rotate(270deg);
filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.08)); filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.08));
} }
@ -1004,7 +1010,7 @@ export default {
&::before { &::before {
transform: rotate(0deg); transform: rotate(0deg);
left: var(--space-smaller); left: var(--space-smaller);
bottom: var(--space-minus-slab); bottom: var(--space-minus-small);
} }
} }
.message-signature { .message-signature {

View file

@ -54,19 +54,6 @@
size="16" size="16"
/> />
</button> </button>
<a
v-if="hasInstagramStory && (isIncoming || isOutgoing) && linkToStory"
:href="linkToStory"
target="_blank"
rel="noopener noreferrer nofollow"
>
<fluent-icon
v-tooltip.top-start="$t('CHAT_LIST.LINK_TO_STORY')"
icon="open"
class="action--icon cursor-pointer"
size="16"
/>
</a>
<a <a
v-if="isATweet && (isOutgoing || isIncoming) && linkToTweet" v-if="isATweet && (isOutgoing || isIncoming) && linkToTweet"
:href="linkToTweet" :href="linkToTweet"

View file

@ -0,0 +1,133 @@
<template>
<div
v-show="activeLabels.length"
ref="labelContainer"
class="label-container"
>
<div class="labels-wrap" :class="{ expand: showAllLabels }">
<woot-label
v-for="(label, index) in activeLabels"
:key="label.id"
:title="label.title"
:description="label.description"
:color="label.color"
variant="smooth"
small
:class="{ hidden: !showAllLabels && index > labelPosition }"
/>
<woot-button
v-if="showExpandLabelButton"
:title="
showAllLabels
? $t('CONVERSATION.CARD.HIDE_LABELS')
: $t('CONVERSATION.CARD.SHOW_LABELS')
"
class="show-more--button"
color-scheme="secondary"
variant="hollow"
:icon="showAllLabels ? 'chevron-left' : 'chevron-right'"
size="tiny"
@click="onShowLabels"
/>
</div>
</div>
</template>
<script>
import conversationLabelMixin from 'dashboard/mixins/conversation/labelMixin';
export default {
mixins: [conversationLabelMixin],
props: {
conversationId: {
type: Number,
required: true,
},
},
data() {
return {
showAllLabels: false,
showExpandLabelButton: false,
labelPosition: -1,
};
},
watch: {
activeLabels() {
this.$nextTick(() => this.computeVisibleLabelPosition());
},
},
mounted() {
this.computeVisibleLabelPosition();
},
methods: {
onShowLabels(e) {
e.stopPropagation();
this.showAllLabels = !this.showAllLabels;
},
computeVisibleLabelPosition() {
const labelContainer = this.$refs.labelContainer;
const labels = this.$refs.labelContainer.querySelectorAll('.label');
let labelOffset = 0;
Array.from(labels).forEach((label, index) => {
labelOffset += label.offsetWidth + 8;
if (labelOffset < labelContainer.clientWidth - 16) {
this.labelPosition = index;
} else {
this.showExpandLabelButton = true;
}
});
},
},
};
</script>
<style lang="scss" scoped>
.show-more--button {
height: var(--space-medium);
position: sticky;
flex-shrink: 0;
margin-right: var(--space-medium);
&.secondary:focus {
color: var(--s-700);
border-color: var(--s-300);
}
}
.label-container {
margin-top: var(--space-micro);
}
.labels-wrap {
display: flex;
align-items: center;
min-width: 0;
flex-shrink: 1;
&.expand {
height: auto;
overflow: visible;
flex-flow: row wrap;
.label {
margin-bottom: var(--space-smaller);
}
.show-more--button {
margin-bottom: var(--space-smaller);
}
}
.secondary {
border: 1px solid var(--s-100);
}
.label {
margin-bottom: 0;
}
}
.hidden {
visibility: hidden;
position: absolute;
}
</style>

View file

@ -22,5 +22,6 @@ export default {
EXPANDED: 'expanded', EXPANDED: 'expanded',
}, },
DOCS_URL: '//www.chatwoot.com/docs/product/', DOCS_URL: '//www.chatwoot.com/docs/product/',
TESTIMONIAL_URL: 'https://testimonials.cdn.chatwoot.com/content.json',
}; };
export const DEFAULT_REDIRECT_URL = '/app/'; export const DEFAULT_REDIRECT_URL = '/app/';

View file

@ -0,0 +1,9 @@
export const EXECUTED_A_MACRO = 'Executed a macro';
export const SENT_MESSAGE = 'Sent a message';
export const SENT_PRIVATE_NOTE = 'Sent a private note';
export const INSERTED_A_CANNED_RESPONSE = 'Inserted a canned response';
export const USED_MENTIONS = 'Used mentions';
export const MERGED_CONTACTS = 'Used merge contact option';
export const ADDED_TO_CANNED_RESPONSE = 'Used added to canned response option';
export const ADDED_A_CUSTOM_ATTRIBUTE = 'Added a custom attribute';
export const ADDED_AN_INBOX = 'Added an inbox';

View file

@ -0,0 +1,67 @@
import { AnalyticsBrowser } from '@june-so/analytics-next';
class AnalyticsHelper {
constructor({ token: analyticsToken } = {}) {
this.analyticsToken = analyticsToken;
this.analytics = null;
this.user = {};
}
async init() {
if (!this.analyticsToken) {
return;
}
let [analytics] = await AnalyticsBrowser.load({
writeKey: this.analyticsToken,
});
this.analytics = analytics;
}
identify(user) {
if (!this.analytics) {
return;
}
this.user = user;
this.analytics.identify(this.user.email, {
userId: this.user.id,
email: this.user.email,
name: this.user.name,
avatar: this.user.avatar_url,
});
const { accounts, account_id: accountId } = this.user;
const [currentAccount] = accounts.filter(
account => account.id === accountId
);
if (currentAccount) {
this.analytics.group(currentAccount.id, this.user.id, {
name: currentAccount.name,
});
}
}
track(eventName, properties = {}) {
if (!this.analytics) {
return;
}
this.analytics.track({
userId: this.user.id,
event: eventName,
properties,
});
}
page(params) {
if (!this.analytics) {
return;
}
this.analytics.page(params);
}
}
export * as ANALYTICS_EVENTS from './events';
export default new AnalyticsHelper(window.analyticsConfig);

View file

@ -17,13 +17,22 @@ const formatArray = params => {
return params; return params;
}; };
const generatePayloadForObject = item => {
if (item.action_params.id) {
item.action_params = [item.action_params.id];
} else {
item.action_params = [item.action_params];
}
return item.action_params;
};
const generatePayload = data => { const generatePayload = data => {
const actions = JSON.parse(JSON.stringify(data)); const actions = JSON.parse(JSON.stringify(data));
let payload = actions.map(item => { let payload = actions.map(item => {
if (Array.isArray(item.action_params)) { if (Array.isArray(item.action_params)) {
item.action_params = formatArray(item.action_params); item.action_params = formatArray(item.action_params);
} else if (typeof item.action_params === 'object') { } else if (typeof item.action_params === 'object') {
item.action_params = [item.action_params.id]; item.action_params = generatePayloadForObject(item);
} else if (!item.action_params) { } else if (!item.action_params) {
item.action_params = []; item.action_params = [];
} else { } else {

View file

@ -60,15 +60,11 @@ export const getFormattedPreChatFields = ({ preChatFields }) => {
return { return {
...item, ...item,
label: getLabel({ label: getLabel({
key: standardFieldKeys[item.name] key: item.name,
? standardFieldKeys[item.name].key
: item.name,
label: item.label ? item.label : item.name, label: item.label ? item.label : item.name,
}), }),
placeholder: getPlaceHolder({ placeholder: getPlaceHolder({
key: standardFieldKeys[item.name] key: item.name,
? standardFieldKeys[item.name].key
: item.name,
placeholder: item.placeholder ? item.placeholder : item.name, placeholder: item.placeholder ? item.placeholder : item.name,
}), }),
}; };

View file

@ -1,4 +1,4 @@
import posthog from 'posthog-js'; import AnalyticsHelper from './AnalyticsHelper';
export const CHATWOOT_SET_USER = 'CHATWOOT_SET_USER'; export const CHATWOOT_SET_USER = 'CHATWOOT_SET_USER';
export const CHATWOOT_RESET = 'CHATWOOT_RESET'; export const CHATWOOT_RESET = 'CHATWOOT_RESET';
@ -8,16 +8,9 @@ export const ANALYTICS_RESET = 'ANALYTICS_RESET';
export const initializeAnalyticsEvents = () => { export const initializeAnalyticsEvents = () => {
window.bus.$on(ANALYTICS_IDENTITY, ({ user }) => { window.bus.$on(ANALYTICS_IDENTITY, ({ user }) => {
if (window.analyticsConfig) { AnalyticsHelper.identify(user);
posthog.identify(user.id, { name: user.name, email: user.email });
}
});
window.bus.$on(ANALYTICS_RESET, () => {
if (window.analyticsConfig) {
posthog.reset();
}
}); });
window.bus.$on(ANALYTICS_RESET, () => {});
}; };
export const initializeChatwootEvents = () => { export const initializeChatwootEvents = () => {

View file

@ -8,6 +8,7 @@
}, },
"TAB_HEADING": "المحادثات", "TAB_HEADING": "المحادثات",
"MENTION_HEADING": "الإشارات", "MENTION_HEADING": "الإشارات",
"UNATTENDED_HEADING": "بدون حضور",
"SEARCH": { "SEARCH": {
"INPUT": "البحث عن جهات الاتصال، المحادثات، قوالب الردود الجاهزة .." "INPUT": "البحث عن جهات الاتصال، المحادثات، قوالب الردود الجاهزة .."
}, },
@ -56,6 +57,8 @@
"REPLY_TO_TWEET": "الرد على هذه التغريدة", "REPLY_TO_TWEET": "الرد على هذه التغريدة",
"LINK_TO_STORY": "الذهاب إلى قصة الإنستقرام", "LINK_TO_STORY": "الذهاب إلى قصة الإنستقرام",
"SENT": "Sent successfully", "SENT": "Sent successfully",
"READ": "Read successfully",
"DELIVERED": "Delivered successfully",
"NO_MESSAGES": "لا توجد رسائل", "NO_MESSAGES": "لا توجد رسائل",
"NO_CONTENT": "لم يتم العثور على محتوى", "NO_CONTENT": "لم يتم العثور على محتوى",
"HIDE_QUOTED_TEXT": "Hide Quoted Text", "HIDE_QUOTED_TEXT": "Hide Quoted Text",

View file

@ -64,6 +64,7 @@
"CARD_CONTEXT_MENU": { "CARD_CONTEXT_MENU": {
"PENDING": "تحديد كمعلق", "PENDING": "تحديد كمعلق",
"RESOLVED": "تحديد كمحلولة", "RESOLVED": "تحديد كمحلولة",
"MARK_AS_UNREAD": "Mark as unread",
"REOPEN": "إعادة فتح المحادثة", "REOPEN": "إعادة فتح المحادثة",
"SNOOZE": { "SNOOZE": {
"TITLE": "غفوة", "TITLE": "غفوة",

View file

@ -0,0 +1,6 @@
{
"EMOJI": {
"PLACEHOLDER": "Search emojis",
"NOT_FOUND": "No emoji match your search"
}
}

View file

@ -23,7 +23,7 @@
"ERROR": "الرجاء إدخال اسم حساب صحيح" "ERROR": "الرجاء إدخال اسم حساب صحيح"
}, },
"LANGUAGE": { "LANGUAGE": {
"LABEL": "لغة الموقع (تجريبي)", "LABEL": "Site language",
"PLACEHOLDER": "اسم الحساب الخاص بك", "PLACEHOLDER": "اسم الحساب الخاص بك",
"ERROR": "" "ERROR": ""
}, },

View file

@ -134,7 +134,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "رقم الهاتف", "LABEL": "رقم الهاتف",
"PLACEHOLDER": "الرجاء إدخال رقم الهاتف الذي سيتم إرسال الرسائل منه.", "PLACEHOLDER": "الرجاء إدخال رقم الهاتف الذي سيتم إرسال الرسائل منه.",
"ERROR": "الرجاء إدخال قيمة صحيحة. يجب أن يبدأ رقم الهاتف بعلامة `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"API_CALLBACK": { "API_CALLBACK": {
"TITLE": "عنوان Callback URL", "TITLE": "عنوان Callback URL",
@ -185,7 +185,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "رقم الهاتف", "LABEL": "رقم الهاتف",
"PLACEHOLDER": "الرجاء إدخال رقم الهاتف الذي سيتم إرسال الرسائل منه.", "PLACEHOLDER": "الرجاء إدخال رقم الهاتف الذي سيتم إرسال الرسائل منه.",
"ERROR": "الرجاء إدخال قيمة صحيحة. يجب أن يبدأ رقم الهاتف بعلامة `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"SUBMIT_BUTTON": "إنشاء قناة عرض التردد", "SUBMIT_BUTTON": "إنشاء قناة عرض التردد",
"API": { "API": {
@ -214,7 +214,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "رقم الهاتف", "LABEL": "رقم الهاتف",
"PLACEHOLDER": "الرجاء إدخال رقم الهاتف الذي سيتم إرسال الرسائل منه.", "PLACEHOLDER": "الرجاء إدخال رقم الهاتف الذي سيتم إرسال الرسائل منه.",
"ERROR": "الرجاء إدخال قيمة صحيحة. يجب أن يبدأ رقم الهاتف بعلامة `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"PHONE_NUMBER_ID": { "PHONE_NUMBER_ID": {
"LABEL": "رقم الهاتف", "LABEL": "رقم الهاتف",
@ -388,6 +388,10 @@
"ENABLED": "مفعل", "ENABLED": "مفعل",
"DISABLED": "معطّل" "DISABLED": "معطّل"
}, },
"LOCK_TO_SINGLE_CONVERSATION": {
"ENABLED": "مفعل",
"DISABLED": "معطّل"
},
"ENABLE_HMAC": { "ENABLE_HMAC": {
"LABEL": "تمكين" "LABEL": "تمكين"
} }
@ -441,6 +445,8 @@
"ENABLE_CSAT_SUB_TEXT": "تمكين/تعطيل تقييم خدمة العملاء بعد إنتهاء المحادثة", "ENABLE_CSAT_SUB_TEXT": "تمكين/تعطيل تقييم خدمة العملاء بعد إنتهاء المحادثة",
"ENABLE_CONTINUITY_VIA_EMAIL": "تمكين استمرارية المحادثة عبر البريد الإلكتروني", "ENABLE_CONTINUITY_VIA_EMAIL": "تمكين استمرارية المحادثة عبر البريد الإلكتروني",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "المحادثات ستستمر عبر البريد الإلكتروني إذا كان عنوان البريد الإلكتروني لجهة الاتصال متاحاً.", "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",
"INBOX_UPDATE_TITLE": "إعدادات قناة التواصل", "INBOX_UPDATE_TITLE": "إعدادات قناة التواصل",
"INBOX_UPDATE_SUB_TEXT": "تحديث إعدادات قناة التواصل", "INBOX_UPDATE_SUB_TEXT": "تحديث إعدادات قناة التواصل",
"AUTO_ASSIGNMENT_SUB_TEXT": "تمكين أو تعطيل الإسناد التلقائي للمحادثات الجديدة إلى الموظفين المضافين إلى قناة التواصل هذه.", "AUTO_ASSIGNMENT_SUB_TEXT": "تمكين أو تعطيل الإسناد التلقائي للمحادثات الجديدة إلى الموظفين المضافين إلى قناة التواصل هذه.",

View file

@ -177,6 +177,7 @@
"CONVERSATIONS": "المحادثات", "CONVERSATIONS": "المحادثات",
"ALL_CONVERSATIONS": "كل المحادثات", "ALL_CONVERSATIONS": "كل المحادثات",
"MENTIONED_CONVERSATIONS": "الإشارات", "MENTIONED_CONVERSATIONS": "الإشارات",
"UNATTENDED_CONVERSATIONS": "بدون حضور",
"REPORTS": "التقارير", "REPORTS": "التقارير",
"SETTINGS": "الإعدادات", "SETTINGS": "الإعدادات",
"CONTACTS": "جهات الاتصال", "CONTACTS": "جهات الاتصال",
@ -256,7 +257,7 @@
}, },
"FORM": { "FORM": {
"NAME": { "NAME": {
"LABEL": "اسم الحساب", "LABEL": "اسم الشركة",
"PLACEHOLDER": "مؤسسة Wayne" "PLACEHOLDER": "مؤسسة Wayne"
}, },
"SUBMIT": "إرسال" "SUBMIT": "إرسال"

View file

@ -2,11 +2,13 @@
"REGISTER": { "REGISTER": {
"TRY_WOOT": "تسجيل حساب", "TRY_WOOT": "تسجيل حساب",
"TITLE": "تسجيل", "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": "من خلال التسجيل، فإنك توافق على <a href=\"https://www.chatwoot.com/terms\">شروط الخدمة</a> و <a href=\"https://www.chatwoot.com/privacy-policy\">سياسة الخصوصية</a>", "TERMS_ACCEPT": "من خلال التسجيل، فإنك توافق على <a href=\"https://www.chatwoot.com/terms\">شروط الخدمة</a> و <a href=\"https://www.chatwoot.com/privacy-policy\">سياسة الخصوصية</a>",
"ACCOUNT_NAME": { "COMPANY_NAME": {
"LABEL": "اسم الحساب", "LABEL": "Company name",
"PLACEHOLDER": "أدخل اسم الحساب. مثال: Wayne Enterprises", "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
"ERROR": "اسم الحساب قصير جداً" "ERROR": "Company name is too short"
}, },
"FULL_NAME": { "FULL_NAME": {
"LABEL": "الاسم الكامل", "LABEL": "الاسم الكامل",
@ -16,7 +18,7 @@
"EMAIL": { "EMAIL": {
"LABEL": "البريد الإلكتروني للعمل", "LABEL": "البريد الإلكتروني للعمل",
"PLACEHOLDER": "أدخل عنوان بريدك الإلكتروني للعمل. مثال: bruce@wayne.enterprises", "PLACEHOLDER": "أدخل عنوان بريدك الإلكتروني للعمل. مثال: bruce@wayne.enterprises",
"ERROR": "عنوان البريد الإلكتروني غير صالح" "ERROR": "Please enter a valid work email address"
}, },
"PASSWORD": { "PASSWORD": {
"LABEL": "كلمة المرور", "LABEL": "كلمة المرور",

View file

@ -8,6 +8,7 @@
}, },
"TAB_HEADING": "Разговори", "TAB_HEADING": "Разговори",
"MENTION_HEADING": "Споменавания", "MENTION_HEADING": "Споменавания",
"UNATTENDED_HEADING": "Unattended",
"SEARCH": { "SEARCH": {
"INPUT": "Търсене на хора, чатове, запазени отговори .." "INPUT": "Търсене на хора, чатове, запазени отговори .."
}, },
@ -56,6 +57,8 @@
"REPLY_TO_TWEET": "Отговори на този туит", "REPLY_TO_TWEET": "Отговори на този туит",
"LINK_TO_STORY": "Go to instagram story", "LINK_TO_STORY": "Go to instagram story",
"SENT": "Успено изпратено", "SENT": "Успено изпратено",
"READ": "Read successfully",
"DELIVERED": "Delivered successfully",
"NO_MESSAGES": "Няма съобщения", "NO_MESSAGES": "Няма съобщения",
"NO_CONTENT": "Няма налично съдържание", "NO_CONTENT": "Няма налично съдържание",
"HIDE_QUOTED_TEXT": "Скриване на цитирания текст", "HIDE_QUOTED_TEXT": "Скриване на цитирания текст",

View file

@ -64,6 +64,7 @@
"CARD_CONTEXT_MENU": { "CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending", "PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved", "RESOLVED": "Mark as resolved",
"MARK_AS_UNREAD": "Mark as unread",
"REOPEN": "Reopen conversation", "REOPEN": "Reopen conversation",
"SNOOZE": { "SNOOZE": {
"TITLE": "Snooze", "TITLE": "Snooze",

View file

@ -0,0 +1,6 @@
{
"EMOJI": {
"PLACEHOLDER": "Search emojis",
"NOT_FOUND": "No emoji match your search"
}
}

View file

@ -23,7 +23,7 @@
"ERROR": "Please enter a valid account name" "ERROR": "Please enter a valid account name"
}, },
"LANGUAGE": { "LANGUAGE": {
"LABEL": "Site language (Beta)", "LABEL": "Site language",
"PLACEHOLDER": "Your account name", "PLACEHOLDER": "Your account name",
"ERROR": "" "ERROR": ""
}, },

View file

@ -134,7 +134,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Phone number", "LABEL": "Phone number",
"PLACEHOLDER": "Please enter the phone number from which message will be sent.", "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
"ERROR": "Please enter a valid value. Phone number should start with `+` sign." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"API_CALLBACK": { "API_CALLBACK": {
"TITLE": "Callback URL", "TITLE": "Callback URL",
@ -185,7 +185,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Телефон", "LABEL": "Телефон",
"PLACEHOLDER": "Please enter the phone number from which message will be sent.", "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
"ERROR": "Please enter a valid value. Phone number should start with `+` sign." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"SUBMIT_BUTTON": "Create Bandwidth Channel", "SUBMIT_BUTTON": "Create Bandwidth Channel",
"API": { "API": {
@ -214,7 +214,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Phone number", "LABEL": "Phone number",
"PLACEHOLDER": "Please enter the phone number from which message will be sent.", "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
"ERROR": "Please enter a valid value. Phone number should start with `+` sign." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"PHONE_NUMBER_ID": { "PHONE_NUMBER_ID": {
"LABEL": "Phone number ID", "LABEL": "Phone number ID",
@ -388,6 +388,10 @@
"ENABLED": "Включен", "ENABLED": "Включен",
"DISABLED": "Изключен" "DISABLED": "Изключен"
}, },
"LOCK_TO_SINGLE_CONVERSATION": {
"ENABLED": "Включен",
"DISABLED": "Изключен"
},
"ENABLE_HMAC": { "ENABLE_HMAC": {
"LABEL": "Enable" "LABEL": "Enable"
} }
@ -441,6 +445,8 @@
"ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation", "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": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.", "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_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your 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.", "AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",

View file

@ -177,6 +177,7 @@
"CONVERSATIONS": "Разговори", "CONVERSATIONS": "Разговори",
"ALL_CONVERSATIONS": "All Conversations", "ALL_CONVERSATIONS": "All Conversations",
"MENTIONED_CONVERSATIONS": "Споменавания", "MENTIONED_CONVERSATIONS": "Споменавания",
"UNATTENDED_CONVERSATIONS": "Unattended",
"REPORTS": "Reports", "REPORTS": "Reports",
"SETTINGS": "Settings", "SETTINGS": "Settings",
"CONTACTS": "Контакти", "CONTACTS": "Контакти",
@ -256,7 +257,7 @@
}, },
"FORM": { "FORM": {
"NAME": { "NAME": {
"LABEL": "Account Name", "LABEL": "Име на фирма",
"PLACEHOLDER": "Wayne Enterprises" "PLACEHOLDER": "Wayne Enterprises"
}, },
"SUBMIT": "Изпращане" "SUBMIT": "Изпращане"

View file

@ -2,11 +2,13 @@
"REGISTER": { "REGISTER": {
"TRY_WOOT": "Register an account", "TRY_WOOT": "Register an account",
"TITLE": "Register", "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 signing up, you agree to our <a href=\"https://www.chatwoot.com/terms\">T & C</a> and <a href=\"https://www.chatwoot.com/privacy-policy\">Privacy policy</a>", "TERMS_ACCEPT": "By signing up, you agree to our <a href=\"https://www.chatwoot.com/terms\">T & C</a> and <a href=\"https://www.chatwoot.com/privacy-policy\">Privacy policy</a>",
"ACCOUNT_NAME": { "COMPANY_NAME": {
"LABEL": "Account name", "LABEL": "Company name",
"PLACEHOLDER": "Enter an account name. eg: Wayne Enterprises", "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
"ERROR": "Account name is too short" "ERROR": "Company name is too short"
}, },
"FULL_NAME": { "FULL_NAME": {
"LABEL": "Full name", "LABEL": "Full name",
@ -16,7 +18,7 @@
"EMAIL": { "EMAIL": {
"LABEL": "Work email", "LABEL": "Work email",
"PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises", "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises",
"ERROR": "Email address is invalid" "ERROR": "Please enter a valid work email address"
}, },
"PASSWORD": { "PASSWORD": {
"LABEL": "Password", "LABEL": "Password",

View file

@ -8,6 +8,7 @@
}, },
"TAB_HEADING": "Converses", "TAB_HEADING": "Converses",
"MENTION_HEADING": "Mencions", "MENTION_HEADING": "Mencions",
"UNATTENDED_HEADING": "Unattended",
"SEARCH": { "SEARCH": {
"INPUT": "Cerca persones, xats, respostes desades .." "INPUT": "Cerca persones, xats, respostes desades .."
}, },
@ -56,6 +57,8 @@
"REPLY_TO_TWEET": "Respon a aquest tuit", "REPLY_TO_TWEET": "Respon a aquest tuit",
"LINK_TO_STORY": "Ves a la història d'instagram", "LINK_TO_STORY": "Ves a la història d'instagram",
"SENT": "Enviat correctament", "SENT": "Enviat correctament",
"READ": "Read successfully",
"DELIVERED": "Delivered successfully",
"NO_MESSAGES": "Cap Missatge", "NO_MESSAGES": "Cap Missatge",
"NO_CONTENT": "No hi ha contingut disponible", "NO_CONTENT": "No hi ha contingut disponible",
"HIDE_QUOTED_TEXT": "Amaga text entre cometes", "HIDE_QUOTED_TEXT": "Amaga text entre cometes",

View file

@ -64,6 +64,7 @@
"CARD_CONTEXT_MENU": { "CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending", "PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved", "RESOLVED": "Mark as resolved",
"MARK_AS_UNREAD": "Mark as unread",
"REOPEN": "Torna a obrir la conversa", "REOPEN": "Torna a obrir la conversa",
"SNOOZE": { "SNOOZE": {
"TITLE": "Snooze", "TITLE": "Snooze",

View file

@ -0,0 +1,6 @@
{
"EMOJI": {
"PLACEHOLDER": "Search emojis",
"NOT_FOUND": "No emoji match your search"
}
}

View file

@ -23,7 +23,7 @@
"ERROR": "Introduïu un nom de compte vàlid" "ERROR": "Introduïu un nom de compte vàlid"
}, },
"LANGUAGE": { "LANGUAGE": {
"LABEL": "Idioma del lloc (Beta)", "LABEL": "Site language",
"PLACEHOLDER": "El nom del vostre compte", "PLACEHOLDER": "El nom del vostre compte",
"ERROR": "" "ERROR": ""
}, },

View file

@ -134,7 +134,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Número de telèfon", "LABEL": "Número de telèfon",
"PLACEHOLDER": "Introduïu el número de telèfon des del qual serà enviat el missatge.", "PLACEHOLDER": "Introduïu el número de telèfon des del qual serà enviat el missatge.",
"ERROR": "Introduïu un valor vàlid. El número de telèfon hauria de començar amb el signe `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"API_CALLBACK": { "API_CALLBACK": {
"TITLE": "Callback URL", "TITLE": "Callback URL",
@ -185,7 +185,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Número de telèfon", "LABEL": "Número de telèfon",
"PLACEHOLDER": "Introduïu el número de telèfon des del qual serà enviat el missatge.", "PLACEHOLDER": "Introduïu el número de telèfon des del qual serà enviat el missatge.",
"ERROR": "Introduïu un valor vàlid. El número de telèfon hauria de començar amb el signe `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"SUBMIT_BUTTON": "Create Bandwidth Channel", "SUBMIT_BUTTON": "Create Bandwidth Channel",
"API": { "API": {
@ -214,7 +214,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Número de telèfon", "LABEL": "Número de telèfon",
"PLACEHOLDER": "Introduïu el número de telèfon des del qual serà enviat el missatge.", "PLACEHOLDER": "Introduïu el número de telèfon des del qual serà enviat el missatge.",
"ERROR": "Introduïu un valor vàlid. El número de telèfon hauria de començar amb el signe `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"PHONE_NUMBER_ID": { "PHONE_NUMBER_ID": {
"LABEL": "Phone number ID", "LABEL": "Phone number ID",
@ -388,6 +388,10 @@
"ENABLED": "Habilita", "ENABLED": "Habilita",
"DISABLED": "Inhabilita" "DISABLED": "Inhabilita"
}, },
"LOCK_TO_SINGLE_CONVERSATION": {
"ENABLED": "Habilita",
"DISABLED": "Inhabilita"
},
"ENABLE_HMAC": { "ENABLE_HMAC": {
"LABEL": "Enable" "LABEL": "Enable"
} }
@ -441,6 +445,8 @@
"ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation", "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": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.", "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": "Configuració de la safata d'entrada", "INBOX_UPDATE_TITLE": "Configuració de la safata d'entrada",
"INBOX_UPDATE_SUB_TEXT": "Actualitza la configuració de la safata d'entrada", "INBOX_UPDATE_SUB_TEXT": "Actualitza la configuració de la safata d'entrada",
"AUTO_ASSIGNMENT_SUB_TEXT": "Activa o desactiva l'assignació automàtica d'agents disponibles a les noves converses", "AUTO_ASSIGNMENT_SUB_TEXT": "Activa o desactiva l'assignació automàtica d'agents disponibles a les noves converses",

View file

@ -177,6 +177,7 @@
"CONVERSATIONS": "Converses", "CONVERSATIONS": "Converses",
"ALL_CONVERSATIONS": "All Conversations", "ALL_CONVERSATIONS": "All Conversations",
"MENTIONED_CONVERSATIONS": "Mencions", "MENTIONED_CONVERSATIONS": "Mencions",
"UNATTENDED_CONVERSATIONS": "Unattended",
"REPORTS": "Informes", "REPORTS": "Informes",
"SETTINGS": "Configuracions", "SETTINGS": "Configuracions",
"CONTACTS": "Contactes", "CONTACTS": "Contactes",
@ -256,7 +257,7 @@
}, },
"FORM": { "FORM": {
"NAME": { "NAME": {
"LABEL": "Nom del compte", "LABEL": "Nom de la companyia",
"PLACEHOLDER": "Wayne Enterprises" "PLACEHOLDER": "Wayne Enterprises"
}, },
"SUBMIT": "Envia" "SUBMIT": "Envia"

View file

@ -2,11 +2,13 @@
"REGISTER": { "REGISTER": {
"TRY_WOOT": "Registra un compte", "TRY_WOOT": "Registra un compte",
"TITLE": "Registre", "TITLE": "Registre",
"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": "En registrar-vos, esteu dacord amb el nostre <a href=\"https://www.chatwoot.com/terms\">T & C</a> i <a href=\"https://www.chatwoot.com/privacy-policy\">Polítiques de Privadesa</a>", "TERMS_ACCEPT": "En registrar-vos, esteu dacord amb el nostre <a href=\"https://www.chatwoot.com/terms\">T & C</a> i <a href=\"https://www.chatwoot.com/privacy-policy\">Polítiques de Privadesa</a>",
"ACCOUNT_NAME": { "COMPANY_NAME": {
"LABEL": "Nom del compte", "LABEL": "Company name",
"PLACEHOLDER": "Introdueix el nom del compte. ex: Wayne Enterprises", "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
"ERROR": "El nom del compte és massa curt" "ERROR": "Company name is too short"
}, },
"FULL_NAME": { "FULL_NAME": {
"LABEL": "Nom complet", "LABEL": "Nom complet",
@ -16,7 +18,7 @@
"EMAIL": { "EMAIL": {
"LABEL": "Email de treball", "LABEL": "Email de treball",
"PLACEHOLDER": "Introdueix la teva adreça email de treball. ex: bruce@wayne.enterprises", "PLACEHOLDER": "Introdueix la teva adreça email de treball. ex: bruce@wayne.enterprises",
"ERROR": "Adreça email invàlida" "ERROR": "Please enter a valid work email address"
}, },
"PASSWORD": { "PASSWORD": {
"LABEL": "Contrasenya", "LABEL": "Contrasenya",

View file

@ -8,6 +8,7 @@
}, },
"TAB_HEADING": "Konverzace", "TAB_HEADING": "Konverzace",
"MENTION_HEADING": "Zmínky", "MENTION_HEADING": "Zmínky",
"UNATTENDED_HEADING": "Unattended",
"SEARCH": { "SEARCH": {
"INPUT": "Hledat lidi, chaty, Uložené odpovědi .." "INPUT": "Hledat lidi, chaty, Uložené odpovědi .."
}, },
@ -56,6 +57,8 @@
"REPLY_TO_TWEET": "Odpovědět na tento tweet", "REPLY_TO_TWEET": "Odpovědět na tento tweet",
"LINK_TO_STORY": "Přejít na instagram příběh", "LINK_TO_STORY": "Přejít na instagram příběh",
"SENT": "Úspěšně odesláno", "SENT": "Úspěšně odesláno",
"READ": "Read successfully",
"DELIVERED": "Delivered successfully",
"NO_MESSAGES": "Žádné zprávy", "NO_MESSAGES": "Žádné zprávy",
"NO_CONTENT": "Žádný obsah k dispozici", "NO_CONTENT": "Žádný obsah k dispozici",
"HIDE_QUOTED_TEXT": "Skrýt citovaný text", "HIDE_QUOTED_TEXT": "Skrýt citovaný text",

View file

@ -64,6 +64,7 @@
"CARD_CONTEXT_MENU": { "CARD_CONTEXT_MENU": {
"PENDING": "Označit jako nevyřízené", "PENDING": "Označit jako nevyřízené",
"RESOLVED": "Označit jako vyřešené", "RESOLVED": "Označit jako vyřešené",
"MARK_AS_UNREAD": "Mark as unread",
"REOPEN": "Znovu otevřít konverzaci", "REOPEN": "Znovu otevřít konverzaci",
"SNOOZE": { "SNOOZE": {
"TITLE": "Odložit", "TITLE": "Odložit",

View file

@ -0,0 +1,6 @@
{
"EMOJI": {
"PLACEHOLDER": "Search emojis",
"NOT_FOUND": "No emoji match your search"
}
}

View file

@ -23,7 +23,7 @@
"ERROR": "Zadejte prosím platný název účtu" "ERROR": "Zadejte prosím platný název účtu"
}, },
"LANGUAGE": { "LANGUAGE": {
"LABEL": "Jazyk webu (Beta)", "LABEL": "Site language",
"PLACEHOLDER": "Název vašeho účtu", "PLACEHOLDER": "Název vašeho účtu",
"ERROR": "" "ERROR": ""
}, },

View file

@ -134,7 +134,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Telefonní číslo", "LABEL": "Telefonní číslo",
"PLACEHOLDER": "Zadejte prosím telefonní číslo, ze kterého bude zpráva odeslána.", "PLACEHOLDER": "Zadejte prosím telefonní číslo, ze kterého bude zpráva odeslána.",
"ERROR": "Zadejte platnou hodnotu. Telefonní číslo by mělo začínat znakem `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"API_CALLBACK": { "API_CALLBACK": {
"TITLE": "Callback URL", "TITLE": "Callback URL",
@ -185,7 +185,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Telefonní číslo", "LABEL": "Telefonní číslo",
"PLACEHOLDER": "Zadejte prosím telefonní číslo, ze kterého bude zpráva odeslána.", "PLACEHOLDER": "Zadejte prosím telefonní číslo, ze kterého bude zpráva odeslána.",
"ERROR": "Zadejte platnou hodnotu. Telefonní číslo by mělo začínat znakem `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"SUBMIT_BUTTON": "Create Bandwidth Channel", "SUBMIT_BUTTON": "Create Bandwidth Channel",
"API": { "API": {
@ -214,7 +214,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Telefonní číslo", "LABEL": "Telefonní číslo",
"PLACEHOLDER": "Zadejte prosím telefonní číslo, ze kterého bude zpráva odeslána.", "PLACEHOLDER": "Zadejte prosím telefonní číslo, ze kterého bude zpráva odeslána.",
"ERROR": "Zadejte platnou hodnotu. Telefonní číslo by mělo začínat znakem `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"PHONE_NUMBER_ID": { "PHONE_NUMBER_ID": {
"LABEL": "Phone number ID", "LABEL": "Phone number ID",
@ -388,6 +388,10 @@
"ENABLED": "Povoleno", "ENABLED": "Povoleno",
"DISABLED": "Zakázáno" "DISABLED": "Zakázáno"
}, },
"LOCK_TO_SINGLE_CONVERSATION": {
"ENABLED": "Povoleno",
"DISABLED": "Zakázáno"
},
"ENABLE_HMAC": { "ENABLE_HMAC": {
"LABEL": "Enable" "LABEL": "Enable"
} }
@ -441,6 +445,8 @@
"ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation", "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": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.", "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": "Nastavení doručené pošty", "INBOX_UPDATE_TITLE": "Nastavení doručené pošty",
"INBOX_UPDATE_SUB_TEXT": "Aktualizujte nastavení doručené pošty", "INBOX_UPDATE_SUB_TEXT": "Aktualizujte nastavení doručené pošty",
"AUTO_ASSIGNMENT_SUB_TEXT": "Povolit nebo zakázat automatické přiřazování nových konverzací agentům přidaným do této schránky.", "AUTO_ASSIGNMENT_SUB_TEXT": "Povolit nebo zakázat automatické přiřazování nových konverzací agentům přidaným do této schránky.",

View file

@ -177,6 +177,7 @@
"CONVERSATIONS": "Konverzace", "CONVERSATIONS": "Konverzace",
"ALL_CONVERSATIONS": "All Conversations", "ALL_CONVERSATIONS": "All Conversations",
"MENTIONED_CONVERSATIONS": "Zmínky", "MENTIONED_CONVERSATIONS": "Zmínky",
"UNATTENDED_CONVERSATIONS": "Unattended",
"REPORTS": "Zprávy", "REPORTS": "Zprávy",
"SETTINGS": "Nastavení", "SETTINGS": "Nastavení",
"CONTACTS": "Kontakty", "CONTACTS": "Kontakty",
@ -256,7 +257,7 @@
}, },
"FORM": { "FORM": {
"NAME": { "NAME": {
"LABEL": "Název účtu", "LABEL": "Název společnosti",
"PLACEHOLDER": "Wayne podniky" "PLACEHOLDER": "Wayne podniky"
}, },
"SUBMIT": "Odeslat" "SUBMIT": "Odeslat"

View file

@ -2,11 +2,13 @@
"REGISTER": { "REGISTER": {
"TRY_WOOT": "Registrovat účet", "TRY_WOOT": "Registrovat účet",
"TITLE": "Registrovat se", "TITLE": "Registrovat se",
"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": "Registrací souhlasíte s našimi <a href=\"https://www.chatwoot.com/terms\">T & C</a> a <a href=\"https://www.chatwoot.com/privacy-policy\">Zásadami ochrany osobních údajů</a>", "TERMS_ACCEPT": "Registrací souhlasíte s našimi <a href=\"https://www.chatwoot.com/terms\">T & C</a> a <a href=\"https://www.chatwoot.com/privacy-policy\">Zásadami ochrany osobních údajů</a>",
"ACCOUNT_NAME": { "COMPANY_NAME": {
"LABEL": "Název účtu", "LABEL": "Company name",
"PLACEHOLDER": "Zadejte název účtu. např.: Novákova společnost", "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
"ERROR": "Název účtu je příliš krátký" "ERROR": "Company name is too short"
}, },
"FULL_NAME": { "FULL_NAME": {
"LABEL": "Celé jméno", "LABEL": "Celé jméno",
@ -16,7 +18,7 @@
"EMAIL": { "EMAIL": {
"LABEL": "Pracovní e-mail", "LABEL": "Pracovní e-mail",
"PLACEHOLDER": "Zadejte svou pracovní e-mailovou adresu. např.: jan@novak.spolecnost", "PLACEHOLDER": "Zadejte svou pracovní e-mailovou adresu. např.: jan@novak.spolecnost",
"ERROR": "E-mailová adresa je neplatná" "ERROR": "Please enter a valid work email address"
}, },
"PASSWORD": { "PASSWORD": {
"LABEL": "Heslo", "LABEL": "Heslo",

View file

@ -8,6 +8,7 @@
}, },
"TAB_HEADING": "Samtaler", "TAB_HEADING": "Samtaler",
"MENTION_HEADING": "Omtaler", "MENTION_HEADING": "Omtaler",
"UNATTENDED_HEADING": "Unattet",
"SEARCH": { "SEARCH": {
"INPUT": "Søg efter Mennesker, Chats, Gemte svar .." "INPUT": "Søg efter Mennesker, Chats, Gemte svar .."
}, },
@ -56,6 +57,8 @@
"REPLY_TO_TWEET": "Svar på dette tweet", "REPLY_TO_TWEET": "Svar på dette tweet",
"LINK_TO_STORY": "Gå til instagram historie", "LINK_TO_STORY": "Gå til instagram historie",
"SENT": "Sendt med succes", "SENT": "Sendt med succes",
"READ": "Read successfully",
"DELIVERED": "Delivered successfully",
"NO_MESSAGES": "Ingen Beskeder", "NO_MESSAGES": "Ingen Beskeder",
"NO_CONTENT": "Intet tilgængeligt indhold", "NO_CONTENT": "Intet tilgængeligt indhold",
"HIDE_QUOTED_TEXT": "Skjul Citeret Tekst", "HIDE_QUOTED_TEXT": "Skjul Citeret Tekst",

View file

@ -64,6 +64,7 @@
"CARD_CONTEXT_MENU": { "CARD_CONTEXT_MENU": {
"PENDING": "Markér som afventende", "PENDING": "Markér som afventende",
"RESOLVED": "Marker som løst", "RESOLVED": "Marker som løst",
"MARK_AS_UNREAD": "Mark as unread",
"REOPEN": "Genåbn samtale", "REOPEN": "Genåbn samtale",
"SNOOZE": { "SNOOZE": {
"TITLE": "Udsæt", "TITLE": "Udsæt",

View file

@ -0,0 +1,6 @@
{
"EMOJI": {
"PLACEHOLDER": "Search emojis",
"NOT_FOUND": "No emoji match your search"
}
}

View file

@ -23,7 +23,7 @@
"ERROR": "Angiv et gyldigt kontonavn" "ERROR": "Angiv et gyldigt kontonavn"
}, },
"LANGUAGE": { "LANGUAGE": {
"LABEL": "Websted sprog (Beta)", "LABEL": "Site language",
"PLACEHOLDER": "Dit kontonavn", "PLACEHOLDER": "Dit kontonavn",
"ERROR": "" "ERROR": ""
}, },

View file

@ -134,7 +134,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Telefonnummer", "LABEL": "Telefonnummer",
"PLACEHOLDER": "Indtast venligst det telefonnummer, hvorfra beskeden vil blive sendt.", "PLACEHOLDER": "Indtast venligst det telefonnummer, hvorfra beskeden vil blive sendt.",
"ERROR": "Angiv en gyldig værdi. Telefonnummer skal starte med `+` tegn." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"API_CALLBACK": { "API_CALLBACK": {
"TITLE": "Callback URL", "TITLE": "Callback URL",
@ -185,7 +185,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Telefonnummer", "LABEL": "Telefonnummer",
"PLACEHOLDER": "Indtast venligst det telefonnummer, hvorfra beskeden vil blive sendt.", "PLACEHOLDER": "Indtast venligst det telefonnummer, hvorfra beskeden vil blive sendt.",
"ERROR": "Angiv en gyldig værdi. Telefonnummer skal starte med `+` tegn." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"SUBMIT_BUTTON": "Opret Båndbredde Kanal", "SUBMIT_BUTTON": "Opret Båndbredde Kanal",
"API": { "API": {
@ -214,7 +214,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Telefonnummer", "LABEL": "Telefonnummer",
"PLACEHOLDER": "Indtast venligst det telefonnummer, hvorfra beskeden vil blive sendt.", "PLACEHOLDER": "Indtast venligst det telefonnummer, hvorfra beskeden vil blive sendt.",
"ERROR": "Angiv en gyldig værdi. Telefonnummer skal starte med `+` tegn." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"PHONE_NUMBER_ID": { "PHONE_NUMBER_ID": {
"LABEL": "Telefonnummer ID", "LABEL": "Telefonnummer ID",
@ -388,6 +388,10 @@
"ENABLED": "Aktiveret", "ENABLED": "Aktiveret",
"DISABLED": "Deaktiveret" "DISABLED": "Deaktiveret"
}, },
"LOCK_TO_SINGLE_CONVERSATION": {
"ENABLED": "Aktiveret",
"DISABLED": "Deaktiveret"
},
"ENABLE_HMAC": { "ENABLE_HMAC": {
"LABEL": "Aktiver" "LABEL": "Aktiver"
} }
@ -441,6 +445,8 @@
"ENABLE_CSAT_SUB_TEXT": "Aktiver/deaktivér CSAT(Customer satisfaction) undersøgelse efter at have løst en samtale", "ENABLE_CSAT_SUB_TEXT": "Aktiver/deaktivér CSAT(Customer satisfaction) undersøgelse efter at have løst en samtale",
"ENABLE_CONTINUITY_VIA_EMAIL": "Aktivér konversationskontinuitet via e-mail", "ENABLE_CONTINUITY_VIA_EMAIL": "Aktivér konversationskontinuitet via e-mail",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Samtaler vil fortsætte via e-mail, hvis kontaktpersonens e-mailadresse er tilgængelig.", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Samtaler vil fortsætte via e-mail, hvis kontaktpersonens e-mailadresse er tilgængelig.",
"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": "Indbakke Indstillinger", "INBOX_UPDATE_TITLE": "Indbakke Indstillinger",
"INBOX_UPDATE_SUB_TEXT": "Opdater dine indbakkeindstillinger", "INBOX_UPDATE_SUB_TEXT": "Opdater dine indbakkeindstillinger",
"AUTO_ASSIGNMENT_SUB_TEXT": "Aktiver eller deaktiver automatisk tildeling af nye samtaler til agenter tilføjet til denne indbakke.", "AUTO_ASSIGNMENT_SUB_TEXT": "Aktiver eller deaktiver automatisk tildeling af nye samtaler til agenter tilføjet til denne indbakke.",

View file

@ -177,6 +177,7 @@
"CONVERSATIONS": "Samtaler", "CONVERSATIONS": "Samtaler",
"ALL_CONVERSATIONS": "Alle Samtaler", "ALL_CONVERSATIONS": "Alle Samtaler",
"MENTIONED_CONVERSATIONS": "Omtaler", "MENTIONED_CONVERSATIONS": "Omtaler",
"UNATTENDED_CONVERSATIONS": "Unattet",
"REPORTS": "Rapporter", "REPORTS": "Rapporter",
"SETTINGS": "Indstillinger", "SETTINGS": "Indstillinger",
"CONTACTS": "Kontakter", "CONTACTS": "Kontakter",
@ -256,7 +257,7 @@
}, },
"FORM": { "FORM": {
"NAME": { "NAME": {
"LABEL": "Kontonavn", "LABEL": "Virksomhedens Navn",
"PLACEHOLDER": "Wayne Enterprises" "PLACEHOLDER": "Wayne Enterprises"
}, },
"SUBMIT": "Send" "SUBMIT": "Send"

View file

@ -2,11 +2,13 @@
"REGISTER": { "REGISTER": {
"TRY_WOOT": "Registrer en konto", "TRY_WOOT": "Registrer en konto",
"TITLE": "Registrer", "TITLE": "Registrer",
"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": "Ved at tilmelde dig, accepterer du vores <a href=\"https://www.chatwoot.com/terms\">T & C</a> og <a href=\"https://www.chatwoot.com/privacy-policy\">Privatlivspolitik</a>", "TERMS_ACCEPT": "Ved at tilmelde dig, accepterer du vores <a href=\"https://www.chatwoot.com/terms\">T & C</a> og <a href=\"https://www.chatwoot.com/privacy-policy\">Privatlivspolitik</a>",
"ACCOUNT_NAME": { "COMPANY_NAME": {
"LABEL": "Kontonavn", "LABEL": "Company name",
"PLACEHOLDER": "Indtast et kontonavn, fx: Wayne Enterprises", "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
"ERROR": "Kontonavn er for kort" "ERROR": "Company name is too short"
}, },
"FULL_NAME": { "FULL_NAME": {
"LABEL": "Fulde navn", "LABEL": "Fulde navn",
@ -16,7 +18,7 @@
"EMAIL": { "EMAIL": {
"LABEL": "Arbejde e-mail", "LABEL": "Arbejde e-mail",
"PLACEHOLDER": "Indtast din arbejdsmailadresse fx: bruce@wayne.enterprises", "PLACEHOLDER": "Indtast din arbejdsmailadresse fx: bruce@wayne.enterprises",
"ERROR": "E-mail adresse er ugyldig" "ERROR": "Please enter a valid work email address"
}, },
"PASSWORD": { "PASSWORD": {
"LABEL": "Adgangskode", "LABEL": "Adgangskode",

View file

@ -1,39 +1,39 @@
{ {
"AGENT_BOTS": { "AGENT_BOTS": {
"HEADER": "Bots", "HEADER": "Bots",
"LOADING_EDITOR": "Loading Editor...", "LOADING_EDITOR": "Editor wird geladen...",
"HEADER_BTN_TXT": "Add Bot Configuration", "HEADER_BTN_TXT": "Bot-Konfiguration hinzufügen",
"SIDEBAR_TXT": "<p><b>Agent Bots</b> <p>Agent bots allows you to automate the conversations</p>", "SIDEBAR_TXT": "<p><b>Agenten Bots</b> <p>Agenten Bots erlauben es Ihnen, die Unterhaltungen zu automatisieren</p>",
"CSML_BOT_EDITOR": { "CSML_BOT_EDITOR": {
"NAME": { "NAME": {
"LABEL": "Bot Name", "LABEL": "Bot Name",
"PLACEHOLDER": "Give your bot a name", "PLACEHOLDER": "Geben Sie Ihrem Bot einen Namen",
"ERROR": "Bot name is required" "ERROR": "Bot Name ist erforderlich"
}, },
"DESCRIPTION": { "DESCRIPTION": {
"LABEL": "Bot Description", "LABEL": "Bot Beschreibung",
"PLACEHOLDER": "What does this bot do?" "PLACEHOLDER": "Was macht dieser Bot?"
}, },
"BOT_CONFIG": { "BOT_CONFIG": {
"ERROR": "Please enter your CSML bot configuration above", "ERROR": "Bitte geben Sie Ihre CSML Bot-Konfiguration oben ein",
"API_ERROR": "Your CSML configuration is invalid, please fix it and try again." "API_ERROR": "Ihre CSML-Konfiguration ist ungültig, bitte korrigieren Sie sie und versuchen es erneut."
}, },
"SUBMIT": "Validate and save" "SUBMIT": "Validieren und speichern"
}, },
"BOT_CONFIGURATION": { "BOT_CONFIGURATION": {
"TITLE": "Select an agent bot", "TITLE": "Agenten-Bot auswählen",
"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.", "DESC": "Sie können einen Agenten-Bot aus der Liste in diesen Posteingang setzen. Der Bot kann die Unterhaltung anfangs bearbeiten und bei Bedarf an einen Agenten übertragen.",
"SUBMIT": "Aktualisieren", "SUBMIT": "Aktualisieren",
"SUCCESS_MESSAGE": "Successfully updated the agent bot", "SUCCESS_MESSAGE": "Agenten-Bot erfolgreich aktualisiert",
"ERROR_MESSAGE": "Could not update the agent bot, please try again later", "ERROR_MESSAGE": "Konnte den Agenten-Bot nicht aktualisieren, bitte versuchen Sie es später erneut",
"SELECT_PLACEHOLDER": "Select Bot" "SELECT_PLACEHOLDER": "Bot auswählen"
}, },
"ADD": { "ADD": {
"TITLE": "Configure new bot", "TITLE": "Neuen Bot konfigurieren",
"CANCEL_BUTTON_TEXT": "Stornieren", "CANCEL_BUTTON_TEXT": "Stornieren",
"API": { "API": {
"SUCCESS_MESSAGE": "Bot added successfully", "SUCCESS_MESSAGE": "Bot erfolgreich hinzugefügt",
"ERROR_MESSAGE": "Could not add bot, Please try again later" "ERROR_MESSAGE": "Bot konnte nicht hinzugefügt werden, bitte versuchen Sie es später erneut"
} }
}, },
"LIST": { "LIST": {

View file

@ -8,6 +8,7 @@
}, },
"TAB_HEADING": "Gespräche", "TAB_HEADING": "Gespräche",
"MENTION_HEADING": "Erwähnungen", "MENTION_HEADING": "Erwähnungen",
"UNATTENDED_HEADING": "Unbeaufsichtigt",
"SEARCH": { "SEARCH": {
"INPUT": "Suche nach Personen, Chats, gespeicherten Antworten .." "INPUT": "Suche nach Personen, Chats, gespeicherten Antworten .."
}, },
@ -56,6 +57,8 @@
"REPLY_TO_TWEET": "Auf diesen Tweet antworten", "REPLY_TO_TWEET": "Auf diesen Tweet antworten",
"LINK_TO_STORY": "Zur Instagram-Geschichte", "LINK_TO_STORY": "Zur Instagram-Geschichte",
"SENT": "Erfolgreich gesendet", "SENT": "Erfolgreich gesendet",
"READ": "Read successfully",
"DELIVERED": "Delivered successfully",
"NO_MESSAGES": "Keine Nachrichten", "NO_MESSAGES": "Keine Nachrichten",
"NO_CONTENT": "Kein Inhalt verfügbar", "NO_CONTENT": "Kein Inhalt verfügbar",
"HIDE_QUOTED_TEXT": "Zitierten Text ausblenden", "HIDE_QUOTED_TEXT": "Zitierten Text ausblenden",

View file

@ -64,6 +64,7 @@
"CARD_CONTEXT_MENU": { "CARD_CONTEXT_MENU": {
"PENDING": "Als ausstehend markieren", "PENDING": "Als ausstehend markieren",
"RESOLVED": "Als gelöst markieren", "RESOLVED": "Als gelöst markieren",
"MARK_AS_UNREAD": "Mark as unread",
"REOPEN": "Konversation wieder öffnen", "REOPEN": "Konversation wieder öffnen",
"SNOOZE": { "SNOOZE": {
"TITLE": "Erinnern", "TITLE": "Erinnern",

View file

@ -0,0 +1,6 @@
{
"EMOJI": {
"PLACEHOLDER": "Search emojis",
"NOT_FOUND": "No emoji match your search"
}
}

View file

@ -23,7 +23,7 @@
"ERROR": "Bitte geben Sie einen gültigen Kontonamen ein" "ERROR": "Bitte geben Sie einen gültigen Kontonamen ein"
}, },
"LANGUAGE": { "LANGUAGE": {
"LABEL": "Site-Sprache (Beta)", "LABEL": "Site language",
"PLACEHOLDER": "Ihr Kontoname", "PLACEHOLDER": "Ihr Kontoname",
"ERROR": "" "ERROR": ""
}, },

View file

@ -362,7 +362,7 @@
}, },
"BUTTONS": { "BUTTONS": {
"CREATE": "Kategorie erstellen", "CREATE": "Kategorie erstellen",
"CANCEL": "Stornieren" "CANCEL": "Abbrechen"
}, },
"API": { "API": {
"SUCCESS_MESSAGE": "Kategorie erfolgreich erstellt", "SUCCESS_MESSAGE": "Kategorie erfolgreich erstellt",

View file

@ -134,7 +134,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Telefonnummer", "LABEL": "Telefonnummer",
"PLACEHOLDER": "Bitte geben Sie die Telefonnummer ein, von der die Nachricht gesendet wird.", "PLACEHOLDER": "Bitte geben Sie die Telefonnummer ein, von der die Nachricht gesendet wird.",
"ERROR": "Bitte geben sie einen gültigen Wert ein. Die Telefonnummer sollte mit dem Pluszeichen beginnen." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"API_CALLBACK": { "API_CALLBACK": {
"TITLE": "Callback URL", "TITLE": "Callback URL",
@ -185,7 +185,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Telefonnummer", "LABEL": "Telefonnummer",
"PLACEHOLDER": "Bitte geben Sie die Telefonnummer ein, von der die Nachricht gesendet wird.", "PLACEHOLDER": "Bitte geben Sie die Telefonnummer ein, von der die Nachricht gesendet wird.",
"ERROR": "Bitte geben sie einen gültigen Wert ein. Die Telefonnummer sollte mit dem Pluszeichen beginnen." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"SUBMIT_BUTTON": "Bitte geben Sie Ihre Bandbreitenanwendungs-ID ein", "SUBMIT_BUTTON": "Bitte geben Sie Ihre Bandbreitenanwendungs-ID ein",
"API": { "API": {
@ -214,7 +214,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Telefonnummer", "LABEL": "Telefonnummer",
"PLACEHOLDER": "Bitte geben Sie die Telefonnummer ein, von der die Nachricht gesendet wird.", "PLACEHOLDER": "Bitte geben Sie die Telefonnummer ein, von der die Nachricht gesendet wird.",
"ERROR": "Bitte geben sie einen gültigen Wert ein. Die Telefonnummer sollte mit dem Pluszeichen beginnen." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"PHONE_NUMBER_ID": { "PHONE_NUMBER_ID": {
"LABEL": "Telefonnummer-ID", "LABEL": "Telefonnummer-ID",
@ -388,6 +388,10 @@
"ENABLED": "Aktiviert", "ENABLED": "Aktiviert",
"DISABLED": "Deaktiviert" "DISABLED": "Deaktiviert"
}, },
"LOCK_TO_SINGLE_CONVERSATION": {
"ENABLED": "Aktiviert",
"DISABLED": "Deaktiviert"
},
"ENABLE_HMAC": { "ENABLE_HMAC": {
"LABEL": "Aktivieren" "LABEL": "Aktivieren"
} }
@ -441,6 +445,8 @@
"ENABLE_CSAT_SUB_TEXT": "CSAT(Kundenzufriedenheit) Umfrage aktivieren/deaktivieren nach Abschluss eines Gesprächs", "ENABLE_CSAT_SUB_TEXT": "CSAT(Kundenzufriedenheit) Umfrage aktivieren/deaktivieren nach Abschluss eines Gesprächs",
"ENABLE_CONTINUITY_VIA_EMAIL": "Konversationskontinuität per E-Mail aktivieren", "ENABLE_CONTINUITY_VIA_EMAIL": "Konversationskontinuität per E-Mail aktivieren",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Konversationen werden per E-Mail fortgesetzt, wenn die Kontakt-E-Mail-Adresse verfügbar ist.", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Konversationen werden per E-Mail fortgesetzt, wenn die Kontakt-E-Mail-Adresse verfügbar ist.",
"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": "Posteingangseinstellungen", "INBOX_UPDATE_TITLE": "Posteingangseinstellungen",
"INBOX_UPDATE_SUB_TEXT": "Posteingangseinstellungen aktualisieren", "INBOX_UPDATE_SUB_TEXT": "Posteingangseinstellungen aktualisieren",
"AUTO_ASSIGNMENT_SUB_TEXT": "Aktivieren oder deaktivieren Sie die automatische Zuweisung verfügbarer Agenten für neue Konversationen", "AUTO_ASSIGNMENT_SUB_TEXT": "Aktivieren oder deaktivieren Sie die automatische Zuweisung verfügbarer Agenten für neue Konversationen",

View file

@ -177,6 +177,7 @@
"CONVERSATIONS": "Gespräche", "CONVERSATIONS": "Gespräche",
"ALL_CONVERSATIONS": "Alle Konversationen", "ALL_CONVERSATIONS": "Alle Konversationen",
"MENTIONED_CONVERSATIONS": "Erwähnungen", "MENTIONED_CONVERSATIONS": "Erwähnungen",
"UNATTENDED_CONVERSATIONS": "Unbeaufsichtigt",
"REPORTS": "Berichte", "REPORTS": "Berichte",
"SETTINGS": "Einstellungen", "SETTINGS": "Einstellungen",
"CONTACTS": "Kontakte", "CONTACTS": "Kontakte",
@ -256,7 +257,7 @@
}, },
"FORM": { "FORM": {
"NAME": { "NAME": {
"LABEL": "Kontobezeichnung", "LABEL": "Firmenname",
"PLACEHOLDER": "Wayne Enterprises" "PLACEHOLDER": "Wayne Enterprises"
}, },
"SUBMIT": "Abschicken" "SUBMIT": "Abschicken"

View file

@ -2,11 +2,13 @@
"REGISTER": { "REGISTER": {
"TRY_WOOT": "Einen Account registrieren", "TRY_WOOT": "Einen Account registrieren",
"TITLE": "Registrieren", "TITLE": "Registrieren",
"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": "Mit Ihrer Anmeldung stimmen Sie unseren <a href=\"https://www.chatwoot.com/terms\"> AGB </a> und <a href=\"https://www.chatwoot.com/privacy-policy\"> Datenschutzrichtlinie </a>", "TERMS_ACCEPT": "Mit Ihrer Anmeldung stimmen Sie unseren <a href=\"https://www.chatwoot.com/terms\"> AGB </a> und <a href=\"https://www.chatwoot.com/privacy-policy\"> Datenschutzrichtlinie </a>",
"ACCOUNT_NAME": { "COMPANY_NAME": {
"LABEL": "Kontobezeichnung", "LABEL": "Company name",
"PLACEHOLDER": "Geben Sie einen Kontonamen ein, z. B.: Wayne Enterprises", "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
"ERROR": "Kontoname ist zu kurz" "ERROR": "Company name is too short"
}, },
"FULL_NAME": { "FULL_NAME": {
"LABEL": "Vollständiger Name", "LABEL": "Vollständiger Name",
@ -16,7 +18,7 @@
"EMAIL": { "EMAIL": {
"LABEL": "Geschäftliche E-Mail-Adresse", "LABEL": "Geschäftliche E-Mail-Adresse",
"PLACEHOLDER": "Geben Sie Ihre geschäftliche E-Mail-Adresse ein, z. B.: bruce@wayne.enterprises", "PLACEHOLDER": "Geben Sie Ihre geschäftliche E-Mail-Adresse ein, z. B.: bruce@wayne.enterprises",
"ERROR": "E-Mail-Adresse ist ungültig" "ERROR": "Please enter a valid work email address"
}, },
"PASSWORD": { "PASSWORD": {
"LABEL": "Passwort", "LABEL": "Passwort",

View file

@ -8,6 +8,7 @@
}, },
"TAB_HEADING": "Συζητήσεις", "TAB_HEADING": "Συζητήσεις",
"MENTION_HEADING": "Αναφορές", "MENTION_HEADING": "Αναφορές",
"UNATTENDED_HEADING": "Χωρίς Παρακολούθηση",
"SEARCH": { "SEARCH": {
"INPUT": "Αναζήτηση Ανθρώπων, συνομιλιών, αποθηκευμένων απαντήσεων .." "INPUT": "Αναζήτηση Ανθρώπων, συνομιλιών, αποθηκευμένων απαντήσεων .."
}, },
@ -56,6 +57,8 @@
"REPLY_TO_TWEET": "Απάντηση στο tweet", "REPLY_TO_TWEET": "Απάντηση στο tweet",
"LINK_TO_STORY": "Μετάβαση στην ιστορία instagram", "LINK_TO_STORY": "Μετάβαση στην ιστορία instagram",
"SENT": "Επιτυχής αποστολή", "SENT": "Επιτυχής αποστολή",
"READ": "Διαβάστηκε με επιτυχία",
"DELIVERED": "Παραδόθηκε με επιτυχία",
"NO_MESSAGES": "Κανένα Μήνυμα", "NO_MESSAGES": "Κανένα Μήνυμα",
"NO_CONTENT": "Μη διαθέσιμο περιεχόμενο", "NO_CONTENT": "Μη διαθέσιμο περιεχόμενο",
"HIDE_QUOTED_TEXT": "Απόκρυψη Κειμένου Παράθεσης", "HIDE_QUOTED_TEXT": "Απόκρυψη Κειμένου Παράθεσης",

View file

@ -64,6 +64,7 @@
"CARD_CONTEXT_MENU": { "CARD_CONTEXT_MENU": {
"PENDING": "Σήμανση ως εκκρεμής", "PENDING": "Σήμανση ως εκκρεμής",
"RESOLVED": "Σήμανση ως επιλυμένου", "RESOLVED": "Σήμανση ως επιλυμένου",
"MARK_AS_UNREAD": "Σήμανση ως μη αναγνωσμένο",
"REOPEN": "Άνοιγμα συνομιλίας", "REOPEN": "Άνοιγμα συνομιλίας",
"SNOOZE": { "SNOOZE": {
"TITLE": "Αναβολή", "TITLE": "Αναβολή",

View file

@ -0,0 +1,6 @@
{
"EMOJI": {
"PLACEHOLDER": "Αναζήτηση emojis",
"NOT_FOUND": "Κανένα emoji δεν ταιριάζει με την αναζήτησή σας"
}
}

View file

@ -23,7 +23,7 @@
"ERROR": "Παρακαλώ συμπληρώστε ένα έγκυρο όνομα λογαριασμού" "ERROR": "Παρακαλώ συμπληρώστε ένα έγκυρο όνομα λογαριασμού"
}, },
"LANGUAGE": { "LANGUAGE": {
"LABEL": "Γλώσσα Ιστοσελίδας (Beta)", "LABEL": "Γλώσσα ιστοσελίδας",
"PLACEHOLDER": "Το όνομα του Λογαριασμού", "PLACEHOLDER": "Το όνομα του Λογαριασμού",
"ERROR": "" "ERROR": ""
}, },

View file

@ -134,7 +134,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Αριθμός τηλεφώνου", "LABEL": "Αριθμός τηλεφώνου",
"PLACEHOLDER": "Παρακαλώ εισάγετε έναν αριθμό τηλεφώνου από τον οποίο θα σταλεί το μήνυμα.", "PLACEHOLDER": "Παρακαλώ εισάγετε έναν αριθμό τηλεφώνου από τον οποίο θα σταλεί το μήνυμα.",
"ERROR": "Παρακαλώ καταχωρήστε μια έγκυρη τιμή. Ο αριθμός του τηλεφώνου πρέπει να ξεκινά με το σύμβολο `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"API_CALLBACK": { "API_CALLBACK": {
"TITLE": "URL επανάκλησης", "TITLE": "URL επανάκλησης",
@ -185,7 +185,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Αριθμός τηλεφώνου", "LABEL": "Αριθμός τηλεφώνου",
"PLACEHOLDER": "Παρακαλώ εισάγετε έναν αριθμό τηλεφώνου από τον οποίο θα σταλεί το μήνυμα.", "PLACEHOLDER": "Παρακαλώ εισάγετε έναν αριθμό τηλεφώνου από τον οποίο θα σταλεί το μήνυμα.",
"ERROR": "Παρακαλώ καταχωρήστε μια έγκυρη τιμή. Ο αριθμός του τηλεφώνου πρέπει να ξεκινά με το σύμβολο `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"SUBMIT_BUTTON": "Δημιουργήστε Bandwidth", "SUBMIT_BUTTON": "Δημιουργήστε Bandwidth",
"API": { "API": {
@ -214,7 +214,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Αριθμός τηλεφώνου", "LABEL": "Αριθμός τηλεφώνου",
"PLACEHOLDER": "Παρακαλώ εισάγετε έναν αριθμό τηλεφώνου από τον οποίο θα σταλεί το μήνυμα.", "PLACEHOLDER": "Παρακαλώ εισάγετε έναν αριθμό τηλεφώνου από τον οποίο θα σταλεί το μήνυμα.",
"ERROR": "Παρακαλώ καταχωρήστε μια έγκυρη τιμή. Ο αριθμός του τηλεφώνου πρέπει να ξεκινά με το σύμβολο `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"PHONE_NUMBER_ID": { "PHONE_NUMBER_ID": {
"LABEL": "Αριθμός Τηλεφώνου", "LABEL": "Αριθμός Τηλεφώνου",
@ -388,6 +388,10 @@
"ENABLED": "Ενεργό", "ENABLED": "Ενεργό",
"DISABLED": "Ανενεργό" "DISABLED": "Ανενεργό"
}, },
"LOCK_TO_SINGLE_CONVERSATION": {
"ENABLED": "Ενεργό",
"DISABLED": "Ανενεργό"
},
"ENABLE_HMAC": { "ENABLE_HMAC": {
"LABEL": "Ενεργοποίηση" "LABEL": "Ενεργοποίηση"
} }
@ -441,6 +445,8 @@
"ENABLE_CSAT_SUB_TEXT": "Ενεργοποίηση/Απενεργοποίηση της έρευνας CSAT (ικανοποίηση πελατών) μετά την επίλυση μιας συνομιλίας", "ENABLE_CSAT_SUB_TEXT": "Ενεργοποίηση/Απενεργοποίηση της έρευνας CSAT (ικανοποίηση πελατών) μετά την επίλυση μιας συνομιλίας",
"ENABLE_CONTINUITY_VIA_EMAIL": "Ενεργοποίηση της συνέχειας συνομιλίας μέσω email", "ENABLE_CONTINUITY_VIA_EMAIL": "Ενεργοποίηση της συνέχειας συνομιλίας μέσω email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Οι συζητήσεις θα συνεχίσουν μέσω email αν η διεύθυνση ηλεκτρονικού ταχυδρομείου επαφής είναι διαθέσιμη.", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Οι συζητήσεις θα συνεχίσουν μέσω email αν η διεύθυνση ηλεκτρονικού ταχυδρομείου επαφής είναι διαθέσιμη.",
"LOCK_TO_SINGLE_CONVERSATION": "Κλείδωμα σε μία μόνο συζήτηση",
"LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Ενεργοποίηση ή απενεργοποίηση πολλαπλών συνομιλιών για την ίδια επαφή σε αυτά τα εισερχόμενα",
"INBOX_UPDATE_TITLE": "Ρυθμίσεις Κιβωτίου", "INBOX_UPDATE_TITLE": "Ρυθμίσεις Κιβωτίου",
"INBOX_UPDATE_SUB_TEXT": "Ενημερώστε τις ρυθμίσεις του κιβωτίου σας", "INBOX_UPDATE_SUB_TEXT": "Ενημερώστε τις ρυθμίσεις του κιβωτίου σας",
"AUTO_ASSIGNMENT_SUB_TEXT": "Ενεργοποιήστε ή απενεργοποιήστε την αυτόματη αντιστοίχιση των νέων συζητήσεων στους πράκτορες αυτού του κιβωτίου.", "AUTO_ASSIGNMENT_SUB_TEXT": "Ενεργοποιήστε ή απενεργοποιήστε την αυτόματη αντιστοίχιση των νέων συζητήσεων στους πράκτορες αυτού του κιβωτίου.",

View file

@ -177,6 +177,7 @@
"CONVERSATIONS": "Συζητήσεις", "CONVERSATIONS": "Συζητήσεις",
"ALL_CONVERSATIONS": "Όλες Οι Συνομιλίες", "ALL_CONVERSATIONS": "Όλες Οι Συνομιλίες",
"MENTIONED_CONVERSATIONS": "Αναφορές", "MENTIONED_CONVERSATIONS": "Αναφορές",
"UNATTENDED_CONVERSATIONS": "Χωρίς Παρακολούθηση",
"REPORTS": "Αναφορές", "REPORTS": "Αναφορές",
"SETTINGS": "Ρυθμίσεις", "SETTINGS": "Ρυθμίσεις",
"CONTACTS": "Επαφές", "CONTACTS": "Επαφές",
@ -256,7 +257,7 @@
}, },
"FORM": { "FORM": {
"NAME": { "NAME": {
"LABEL": "Ονομασία Λογαριασμού", "LABEL": "Όνομα Εταιρείας",
"PLACEHOLDER": "Wayne Α. Ε" "PLACEHOLDER": "Wayne Α. Ε"
}, },
"SUBMIT": "Καταχώρηση" "SUBMIT": "Καταχώρηση"

View file

@ -2,11 +2,13 @@
"REGISTER": { "REGISTER": {
"TRY_WOOT": "Καταχωρήστε ένα λογαριασμό", "TRY_WOOT": "Καταχωρήστε ένα λογαριασμό",
"TITLE": "Καταχώρηση", "TITLE": "Καταχώρηση",
"TESTIMONIAL_HEADER": "Το μόνο που χρειάζεται είναι ένα βήμα για να προχωρήσουμε",
"TESTIMONIAL_CONTENT": "Είστε ένα βήμα μακριά από την εμπλοκή των πελατών σας, και την εύρεση νέων.",
"TERMS_ACCEPT": "Με την καταχώρηση, έχετε συμφωνήσει με τους όρους μας <a href=\"https://www.chatwoot.com/terms\">T & C</a> και <a href=\"https://www.chatwoot.com/privacy-policy\">την πολιτική ιδιωτικών δεδομένων</a>", "TERMS_ACCEPT": "Με την καταχώρηση, έχετε συμφωνήσει με τους όρους μας <a href=\"https://www.chatwoot.com/terms\">T & C</a> και <a href=\"https://www.chatwoot.com/privacy-policy\">την πολιτική ιδιωτικών δεδομένων</a>",
"ACCOUNT_NAME": { "COMPANY_NAME": {
"LABEL": "Ονομασία Λογαριασμού", "LABEL": "Επωνυμία εταιρείας",
"PLACEHOLDER": "Συμπληρώστε όνομα λογαριασμού π. χ. Wayne Α. Ε", "PLACEHOLDER": "Εισάγετε το όνομα της εταιρείας σας. π. χ.: Wayne Enterprises",
"ERROR": "Το όνομα του λογαριασμού είναι πολύ σύντομο" "ERROR": "Το όνομα της εταιρείας είναι πολύ σύντομο"
}, },
"FULL_NAME": { "FULL_NAME": {
"LABEL": "Πλήρες όνομα", "LABEL": "Πλήρες όνομα",
@ -16,7 +18,7 @@
"EMAIL": { "EMAIL": {
"LABEL": "email εργασίας", "LABEL": "email εργασίας",
"PLACEHOLDER": "συμπληρώστε το email εργασίας πχ: papadopoulos@wyane.com", "PLACEHOLDER": "συμπληρώστε το email εργασίας πχ: papadopoulos@wyane.com",
"ERROR": "Η διεύθυνση email είναι εσφαλμένη" "ERROR": "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email"
}, },
"PASSWORD": { "PASSWORD": {
"LABEL": "Κωδικός", "LABEL": "Κωδικός",

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "No response", "NO_RESPONSE": "No response",
"RATING_TITLE": "Rating", "RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback", "FEEDBACK_TITLE": "Feedback",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": { "HEADER": {
"RESOLVE_ACTION": "Resolve", "RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen", "REOPEN_ACTION": "Reopen",

View file

@ -0,0 +1,6 @@
{
"EMOJI": {
"PLACEHOLDER": "Search emojis",
"NOT_FOUND": "No emoji match your search"
}
}

View file

@ -134,7 +134,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Phone number", "LABEL": "Phone number",
"PLACEHOLDER": "Please enter the phone number from which message will be sent.", "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
"ERROR": "Please enter a valid value. Phone number should start with `+` sign." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"API_CALLBACK": { "API_CALLBACK": {
"TITLE": "Callback URL", "TITLE": "Callback URL",
@ -185,7 +185,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Phone number", "LABEL": "Phone number",
"PLACEHOLDER": "Please enter the phone number from which message will be sent.", "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
"ERROR": "Please enter a valid value. Phone number should start with `+` sign." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"SUBMIT_BUTTON": "Create Bandwidth Channel", "SUBMIT_BUTTON": "Create Bandwidth Channel",
"API": { "API": {
@ -214,7 +214,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Phone number", "LABEL": "Phone number",
"PLACEHOLDER": "Please enter the phone number from which message will be sent.", "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
"ERROR": "Please enter a valid value. Phone number should start with `+` sign." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"PHONE_NUMBER_ID": { "PHONE_NUMBER_ID": {
"LABEL": "Phone number ID", "LABEL": "Phone number ID",

View file

@ -10,7 +10,8 @@ import chatlist from './chatlist.json';
import contact from './contact.json'; import contact from './contact.json';
import contactFilters from './contactFilters.json'; import contactFilters from './contactFilters.json';
import conversation from './conversation.json'; import conversation from './conversation.json';
import csatMgmtMgmt from './csatMgmt.json'; import csatMgmt from './csatMgmt.json';
import emoji from './emoji.json';
import generalSettings from './generalSettings.json'; import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json'; import helpCenter from './helpCenter.json';
import inboxMgmt from './inboxMgmt.json'; import inboxMgmt from './inboxMgmt.json';
@ -40,7 +41,8 @@ export default {
...contact, ...contact,
...contactFilters, ...contactFilters,
...conversation, ...conversation,
...csatMgmtMgmt, ...csatMgmt,
...emoji,
...generalSettings, ...generalSettings,
...helpCenter, ...helpCenter,
...inboxMgmt, ...inboxMgmt,

View file

@ -99,11 +99,9 @@
}, },
"AVAILABILITY": { "AVAILABILITY": {
"LABEL": "Availability", "LABEL": "Availability",
"STATUSES_LIST": [ "STATUSES_LIST": ["Online", "Busy", "Offline"],
"Online", "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"Busy", "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
"Offline"
]
}, },
"EMAIL": { "EMAIL": {
"LABEL": "Your email address", "LABEL": "Your email address",
@ -227,6 +225,10 @@
"CATEGORY": "Category", "CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found" "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" "DOCS": "Read docs"
}, },
"BILLING_SETTINGS": { "BILLING_SETTINGS": {
@ -258,7 +260,7 @@
}, },
"FORM": { "FORM": {
"NAME": { "NAME": {
"LABEL": "Account Name", "LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises" "PLACEHOLDER": "Wayne Enterprises"
}, },
"SUBMIT": "Submit" "SUBMIT": "Submit"

View file

@ -2,11 +2,13 @@
"REGISTER": { "REGISTER": {
"TRY_WOOT": "Register an account", "TRY_WOOT": "Register an account",
"TITLE": "Register", "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 signing up, you agree to our <a href=\"https://www.chatwoot.com/terms\">T & C</a> and <a href=\"https://www.chatwoot.com/privacy-policy\">Privacy policy</a>", "TERMS_ACCEPT": "By signing up, you agree to our <a href=\"https://www.chatwoot.com/terms\">T & C</a> and <a href=\"https://www.chatwoot.com/privacy-policy\">Privacy policy</a>",
"ACCOUNT_NAME": { "COMPANY_NAME": {
"LABEL": "Account name", "LABEL": "Company name",
"PLACEHOLDER": "Enter an account name. eg: Wayne Enterprises", "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
"ERROR": "Account name is too short" "ERROR": "Company name is too short"
}, },
"FULL_NAME": { "FULL_NAME": {
"LABEL": "Full name", "LABEL": "Full name",
@ -16,7 +18,7 @@
"EMAIL": { "EMAIL": {
"LABEL": "Work email", "LABEL": "Work email",
"PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises", "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises",
"ERROR": "Email address is invalid" "ERROR": "Please enter a valid work email address"
}, },
"PASSWORD": { "PASSWORD": {
"LABEL": "Password", "LABEL": "Password",

View file

@ -8,6 +8,7 @@
}, },
"TAB_HEADING": "Conversaciones", "TAB_HEADING": "Conversaciones",
"MENTION_HEADING": "Menciones", "MENTION_HEADING": "Menciones",
"UNATTENDED_HEADING": "Desatendido",
"SEARCH": { "SEARCH": {
"INPUT": "Búsqueda de Personas, Chats, Respuestas Salvadas .." "INPUT": "Búsqueda de Personas, Chats, Respuestas Salvadas .."
}, },
@ -56,6 +57,8 @@
"REPLY_TO_TWEET": "Responder a éste trino", "REPLY_TO_TWEET": "Responder a éste trino",
"LINK_TO_STORY": "Ir a la historia de Instagram", "LINK_TO_STORY": "Ir a la historia de Instagram",
"SENT": "Enviado con éxito", "SENT": "Enviado con éxito",
"READ": "Read successfully",
"DELIVERED": "Delivered successfully",
"NO_MESSAGES": "No hay mensajes", "NO_MESSAGES": "No hay mensajes",
"NO_CONTENT": "No hay contenido disponible", "NO_CONTENT": "No hay contenido disponible",
"HIDE_QUOTED_TEXT": "Ocultar texto citado", "HIDE_QUOTED_TEXT": "Ocultar texto citado",

View file

@ -64,6 +64,7 @@
"CARD_CONTEXT_MENU": { "CARD_CONTEXT_MENU": {
"PENDING": "Marcar como pendiente", "PENDING": "Marcar como pendiente",
"RESOLVED": "Marcar como resuelto", "RESOLVED": "Marcar como resuelto",
"MARK_AS_UNREAD": "Mark as unread",
"REOPEN": "Resolver conversación", "REOPEN": "Resolver conversación",
"SNOOZE": { "SNOOZE": {
"TITLE": "Posponer", "TITLE": "Posponer",

View file

@ -0,0 +1,6 @@
{
"EMOJI": {
"PLACEHOLDER": "Search emojis",
"NOT_FOUND": "No emoji match your search"
}
}

View file

@ -23,7 +23,7 @@
"ERROR": "Por favor, introduzca un nombre de cuenta válido" "ERROR": "Por favor, introduzca un nombre de cuenta válido"
}, },
"LANGUAGE": { "LANGUAGE": {
"LABEL": "Idioma del sitio (Beta)", "LABEL": "Site language",
"PLACEHOLDER": "Tu nombre de cuenta", "PLACEHOLDER": "Tu nombre de cuenta",
"ERROR": "" "ERROR": ""
}, },

View file

@ -134,7 +134,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Número de teléfono", "LABEL": "Número de teléfono",
"PLACEHOLDER": "Por favor, introduzca el número de teléfono desde el que se enviará el mensaje.", "PLACEHOLDER": "Por favor, introduzca el número de teléfono desde el que se enviará el mensaje.",
"ERROR": "Por favor, introduzca un valor válido. El número de teléfono debe comenzar con la firma `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"API_CALLBACK": { "API_CALLBACK": {
"TITLE": "URL de devolución de llamada", "TITLE": "URL de devolución de llamada",
@ -185,7 +185,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Número de teléfono", "LABEL": "Número de teléfono",
"PLACEHOLDER": "Por favor, introduzca el número de teléfono desde el que se enviará el mensaje.", "PLACEHOLDER": "Por favor, introduzca el número de teléfono desde el que se enviará el mensaje.",
"ERROR": "Por favor, introduzca un valor válido. El número de teléfono debe comenzar con la firma `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"SUBMIT_BUTTON": "Crear Canal de Bandwidth", "SUBMIT_BUTTON": "Crear Canal de Bandwidth",
"API": { "API": {
@ -214,7 +214,7 @@
"PHONE_NUMBER": { "PHONE_NUMBER": {
"LABEL": "Número de teléfono", "LABEL": "Número de teléfono",
"PLACEHOLDER": "Por favor, introduzca el número de teléfono desde el que se enviará el mensaje.", "PLACEHOLDER": "Por favor, introduzca el número de teléfono desde el que se enviará el mensaje.",
"ERROR": "Por favor, introduzca un valor válido. El número de teléfono debe comenzar con la firma `+`." "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
}, },
"PHONE_NUMBER_ID": { "PHONE_NUMBER_ID": {
"LABEL": "ID de número de teléfono", "LABEL": "ID de número de teléfono",
@ -388,6 +388,10 @@
"ENABLED": "Activado", "ENABLED": "Activado",
"DISABLED": "Deshabilitado" "DISABLED": "Deshabilitado"
}, },
"LOCK_TO_SINGLE_CONVERSATION": {
"ENABLED": "Activado",
"DISABLED": "Deshabilitado"
},
"ENABLE_HMAC": { "ENABLE_HMAC": {
"LABEL": "Habilitar" "LABEL": "Habilitar"
} }
@ -441,6 +445,8 @@
"ENABLE_CSAT_SUB_TEXT": "Habilitar/deshabilitar encuesta CSAT(satisfacción del cliente) después de resolver una conversación", "ENABLE_CSAT_SUB_TEXT": "Habilitar/deshabilitar encuesta CSAT(satisfacción del cliente) después de resolver una conversación",
"ENABLE_CONTINUITY_VIA_EMAIL": "Habilitar continuidad de conversación por correo electrónico", "ENABLE_CONTINUITY_VIA_EMAIL": "Habilitar continuidad de conversación por correo electrónico",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Las conversaciones continuarán por correo electrónico si la dirección de correo electrónico de contacto está disponible.", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Las conversaciones continuarán por correo electrónico si la dirección de correo electrónico de contacto está disponible.",
"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": "Ajustes de la Bandeja de Entrada", "INBOX_UPDATE_TITLE": "Ajustes de la Bandeja de Entrada",
"INBOX_UPDATE_SUB_TEXT": "Actualizar la configuración de tu bandeja de entrada", "INBOX_UPDATE_SUB_TEXT": "Actualizar la configuración de tu bandeja de entrada",
"AUTO_ASSIGNMENT_SUB_TEXT": "Activar o desactivar la asignación automática de nuevas conversaciones a los agentes añadidos a esta bandeja de entrada.", "AUTO_ASSIGNMENT_SUB_TEXT": "Activar o desactivar la asignación automática de nuevas conversaciones a los agentes añadidos a esta bandeja de entrada.",

View file

@ -177,6 +177,7 @@
"CONVERSATIONS": "Conversaciones", "CONVERSATIONS": "Conversaciones",
"ALL_CONVERSATIONS": "Todas las conversaciones", "ALL_CONVERSATIONS": "Todas las conversaciones",
"MENTIONED_CONVERSATIONS": "Menciones", "MENTIONED_CONVERSATIONS": "Menciones",
"UNATTENDED_CONVERSATIONS": "Desatendido",
"REPORTS": "Informes", "REPORTS": "Informes",
"SETTINGS": "Ajustes", "SETTINGS": "Ajustes",
"CONTACTS": "Contactos", "CONTACTS": "Contactos",
@ -256,7 +257,7 @@
}, },
"FORM": { "FORM": {
"NAME": { "NAME": {
"LABEL": "Nombre de cuenta", "LABEL": "Empresa",
"PLACEHOLDER": "Empresas de Wayne" "PLACEHOLDER": "Empresas de Wayne"
}, },
"SUBMIT": "Enviar" "SUBMIT": "Enviar"

View file

@ -2,11 +2,13 @@
"REGISTER": { "REGISTER": {
"TRY_WOOT": "Registrar una cuenta", "TRY_WOOT": "Registrar una cuenta",
"TITLE": "Registrarse", "TITLE": "Registrarse",
"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": "Al registrarte, aceptas nuestra <a href=\"https://www.chatwoot.com/terms\">T & C</a> y nuestra <a href=\"https://www.chatwoot.com/privacy-policy\">política de privacidad</a>", "TERMS_ACCEPT": "Al registrarte, aceptas nuestra <a href=\"https://www.chatwoot.com/terms\">T & C</a> y nuestra <a href=\"https://www.chatwoot.com/privacy-policy\">política de privacidad</a>",
"ACCOUNT_NAME": { "COMPANY_NAME": {
"LABEL": "Nombre de cuenta", "LABEL": "Company name",
"PLACEHOLDER": "Empresas de Wayne", "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
"ERROR": "El nombre de la cuenta es demasiado corto" "ERROR": "Company name is too short"
}, },
"FULL_NAME": { "FULL_NAME": {
"LABEL": "Nombre completo", "LABEL": "Nombre completo",
@ -16,7 +18,7 @@
"EMAIL": { "EMAIL": {
"LABEL": "E-mail", "LABEL": "E-mail",
"PLACEHOLDER": "bruce@wayne.empresas", "PLACEHOLDER": "bruce@wayne.empresas",
"ERROR": "El correo no es válido" "ERROR": "Please enter a valid work email address"
}, },
"PASSWORD": { "PASSWORD": {
"LABEL": "Contraseña", "LABEL": "Contraseña",

View file

@ -8,6 +8,7 @@
}, },
"TAB_HEADING": "گفتگوها", "TAB_HEADING": "گفتگوها",
"MENTION_HEADING": "اشاره", "MENTION_HEADING": "اشاره",
"UNATTENDED_HEADING": "بی سرپرست",
"SEARCH": { "SEARCH": {
"INPUT": "پیدا کردن افراد، گفتگوها و پاسخ‌های از پیش نوشته شده..." "INPUT": "پیدا کردن افراد، گفتگوها و پاسخ‌های از پیش نوشته شده..."
}, },
@ -56,6 +57,8 @@
"REPLY_TO_TWEET": "پاسخ به این توییت", "REPLY_TO_TWEET": "پاسخ به این توییت",
"LINK_TO_STORY": "برو به داستان اینستاگرام", "LINK_TO_STORY": "برو به داستان اینستاگرام",
"SENT": "با موفقیت ارسال شد", "SENT": "با موفقیت ارسال شد",
"READ": "با موفقیت خوانده شد",
"DELIVERED": "با موفقیت تحویل داده شد",
"NO_MESSAGES": "هیچ پیامی وجود ندارد", "NO_MESSAGES": "هیچ پیامی وجود ندارد",
"NO_CONTENT": "هیچ محتوایی موجود نیست", "NO_CONTENT": "هیچ محتوایی موجود نیست",
"HIDE_QUOTED_TEXT": "مخفی کردن متن نقل قول شده", "HIDE_QUOTED_TEXT": "مخفی کردن متن نقل قول شده",

View file

@ -64,6 +64,7 @@
"CARD_CONTEXT_MENU": { "CARD_CONTEXT_MENU": {
"PENDING": "علامت گذاری به عنوان در انتظار", "PENDING": "علامت گذاری به عنوان در انتظار",
"RESOLVED": "علامت زدن به عنوان حل شده", "RESOLVED": "علامت زدن به عنوان حل شده",
"MARK_AS_UNREAD": "علامت گذاری به عنوان خوانده نشده",
"REOPEN": "مکالمه را دوباره باز کنید", "REOPEN": "مکالمه را دوباره باز کنید",
"SNOOZE": { "SNOOZE": {
"TITLE": "به تعویق انداختن", "TITLE": "به تعویق انداختن",

View file

@ -0,0 +1,6 @@
{
"EMOJI": {
"PLACEHOLDER": "جستجوی ایموجی",
"NOT_FOUND": "هیچ ایموجی با جستجوی شما مطابقت ندارد"
}
}

Some files were not shown because too many files have changed in this diff Show more