Compare commits

..

17 commits

Author SHA1 Message Date
Sivin Varghese
98c289dc3e
chore: Fixes issue showing the CSAT error message (#6136)
Approved by Muhsin
2022-12-28 12:49:11 +05:30
Nithin David Thomas
3e91765472
fix: Expand title height of textarea on load (#6103) 2022-12-22 14:14:30 -08:00
Sojan Jose
1bf23055df
chore: Update translations (#6113) 2022-12-22 14:08:08 -08:00
Sivin Varghese
2af337be10
feat: Add the ability to toggle the secondary sidebar in all display breakpoints (#6118)
Co-authored-by: Nithin David <1277421+nithindavid@users.noreply.github.com>
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-12-22 14:07:11 -08:00
Muhsin Keloth
dbb6c0a074
chore: Increase the max concurrent number of devices (#6121) 2022-12-22 19:13:54 +05:30
Sivin Varghese
8c88344170
chore: Helpcenter improvements (#6098) 2022-12-22 18:51:24 +05:30
giquieu
6a78254701
feat: Send audio longer than 10 seconds and Add Prop audio-record-format (#6108)
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2022-12-22 13:36:03 +05:30
Pranav Raj S
26ada8b342
fix: Update the logic to show read status for web (#6107) 2022-12-21 09:58:56 -08:00
Sivin Varghese
3c6bd2c8fd
fix: Use canned response menu from the editor in contact messages (#6109) 2022-12-21 16:01:50 +05:30
Sivin Varghese
2c2c47d7fd
chore: Hide inbox name only has one inbox (#6115) 2022-12-21 13:31:53 +05:30
Sojan
34f7405689 Merge branch 'release/2.12.0' into develop 2022-12-19 22:48:01 +05:30
Sojan
3ebfb3a140 Bump version to 2.12.0 2022-12-19 22:44:43 +05:30
Pranav Raj S
2dfe38ae4d
chore: Cleanup feature flags (#6096)
- Add more feature flags for CRM, auto_resolution, and reports
- Add a SuperAdmin link in the sidebar if the user is a super-admin
- SuperAdmin could view all the features on an account irrespective of whether the feature is enabled.
2022-12-19 22:38:30 +05:30
Sojan Jose
ca88eb55f4
chore: Update translations from Crowdin 2022-12-19 22:34:49 +05:30
Nithin David Thomas
d1a26e80f4
fix: Hide show more labels button when there's no overflow (#6097) 2022-12-19 08:54:20 -08:00
Nithin David Thomas
022d0b0ea3
chore: Enable prototyping classes for foundation (#5945)
* chore: Enable prototyping classes for foundation

* Marcros css clean up

* Imports utilities separately

* Fix macro position

* Changes global margin

Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
2022-12-19 14:11:11 +05:30
Tejaswini Chile
5541d9e00b
Fix: automation email improvement (#6061) 2022-12-19 13:21:33 +05:30
184 changed files with 1246 additions and 1194 deletions

View file

@ -1,35 +0,0 @@
class Api::V1::Accounts::Integrations::DyteController < Api::V1::Accounts::BaseController
before_action :fetch_conversation, only: [:create_a_meeting]
before_action :fetch_message, only: [:add_participant_to_meeting]
def create_a_meeting
dyte_processor_service.create_a_meeting(Current.user)
head :ok
end
def add_participant_to_meeting
return render json: { error: 'Invalid Data' }, status: :unprocessable_entity if @message.content_type == 'integations'
response = dyte_processor_service.add_participant_to_meeting(@message.content_attributes['data']['meeting_id'], Current.user)
render json: response
end
private
def dyte_processor_service
Integrations::Dyte::ProcessorService.new(account: Current.account, conversation: @conversation)
end
def permitted_params
params.permit(:conversation_id, :message_id)
end
def fetch_conversation
@conversation = Current.account.conversations.find_by!(display_id: permitted_params[:conversation_id])
end
def fetch_message
@message = Current.account.messages.find(permitted_params[:message_id])
@conversation = @message.conversation
end
end

View file

@ -1,6 +1,6 @@
class Api::V1::Widget::MessagesController < Api::V1::Widget::BaseController
before_action :set_conversation, only: [:create]
before_action :set_message, only: [:update, :add_participant_to_meeting]
before_action :set_message, only: [:update]
def index
@messages = conversation.nil? ? [] : message_finder.perform
@ -26,19 +26,8 @@ class Api::V1::Widget::MessagesController < Api::V1::Widget::BaseController
render json: { error: @contact.errors, message: e.message }.to_json, status: :internal_server_error
end
def add_participant_to_meeting
return render json: { error: 'Invalid Data' }, status: :unprocessable_entity if @message.content_type == 'integations'
response = dyte_processor_service.add_participant_to_meeting(@message.content_attributes['data']['meeting_id'], @message.conversation.contact)
render json: response
end
private
def dyte_processor_service
Integrations::Dyte::ProcessorService.new(account: @web_widget.inbox.account, conversation: @message)
end
def build_attachment
return if params[:message][:attachments].blank?

View file

@ -1,23 +0,0 @@
/* global axios */
import ApiClient from '../ApiClient';
class DyteAPI extends ApiClient {
constructor() {
super('integrations/dyte', { accountScoped: true });
}
createAMeeting(conversationId) {
return axios.post(`${this.url}/create_a_meeting`, {
conversation_id: conversationId,
});
}
addParticipantToMeeting(messageId) {
return axios.post(`${this.url}/add_participant_to_meeting`, {
message_id: messageId,
});
}
}
export default new DyteAPI();

View file

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

View file

@ -20,6 +20,24 @@
@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 'layout';
@import 'animations';

View file

@ -155,12 +155,20 @@ $default-button-height: 4.0rem;
// Sizes
&.tiny {
height: var(--space-medium);
.icon+.button__content {
padding-left: var(--space-micro);
}
}
&.small {
height: var(--space-large);
padding-bottom: var(--space-smaller);
padding-top: var(--space-smaller);
.icon+.button__content {
padding-left: var(--space-smaller);
}
}
&.large {
@ -190,6 +198,10 @@ $default-button-height: 4.0rem;
height: auto;
margin: 0;
padding: 0;
&:hover {
text-decoration: underline;
}
}
}

View file

@ -59,12 +59,8 @@
.hamburger--menu {
cursor: pointer;
display: none;
display: block;
margin-right: $space-normal;
@media screen and (max-width: 1200px) {
display: block;
}
}
.header--icon {

View file

@ -1,7 +1,12 @@
<template>
<button @click="onMenuItemClick">
<fluent-icon class="hamburger--menu" icon="list" />
</button>
<woot-button
size="small"
variant="clear"
color-scheme="secondary"
icon="list"
class="toggle-sidebar"
@click="onMenuItemClick"
/>
</template>
<script>
@ -16,13 +21,8 @@ export default {
};
</script>
<style scoped lang="scss">
.hamburger--menu {
cursor: pointer;
display: none;
margin-right: var(--space-normal);
@media screen and (max-width: 1200px) {
display: block;
}
.toggle-sidebar {
margin-right: var(--space-small);
margin-left: var(--space-minus-small);
}
</style>

View file

@ -1,3 +1,4 @@
import { FEATURE_FLAGS } from '../../../../featureFlags';
import { frontendURL } from '../../../../helper/URLHelper';
const primaryMenuItems = accountId => [
@ -13,6 +14,7 @@ const primaryMenuItems = accountId => [
icon: 'book-contacts',
key: 'contacts',
label: 'CONTACTS',
featureFlag: FEATURE_FLAGS.CRM,
toState: frontendURL(`accounts/${accountId}/contacts`),
toStateName: 'contacts_dashboard',
roles: ['administrator', 'agent'],
@ -21,6 +23,7 @@ const primaryMenuItems = accountId => [
icon: 'arrow-trending-lines',
key: 'reports',
label: 'REPORTS',
featureFlag: FEATURE_FLAGS.REPORTS,
toState: frontendURL(`accounts/${accountId}/reports`),
toStateName: 'settings_account_reports',
roles: ['administrator'],
@ -29,7 +32,7 @@ const primaryMenuItems = accountId => [
icon: 'megaphone',
key: 'campaigns',
label: 'CAMPAIGNS',
featureFlag: 'campaigns',
featureFlag: FEATURE_FLAGS.CAMPAIGNS,
toState: frontendURL(`accounts/${accountId}/campaigns`),
toStateName: 'settings_account_campaigns',
roles: ['administrator'],
@ -38,7 +41,7 @@ const primaryMenuItems = accountId => [
icon: 'library',
key: 'helpcenter',
label: 'HELP_CENTER.TITLE',
featureFlag: 'help_center',
featureFlag: FEATURE_FLAGS.HELP_CENTER,
toState: frontendURL(`accounts/${accountId}/portals`),
toStateName: 'default_portal_articles',
roles: ['administrator'],

View file

@ -102,6 +102,7 @@ const settings = accountId => ({
label: 'AGENT_BOTS',
beta: true,
hasSubMenu: false,
globalConfigFlag: 'csmlEditorHost',
toState: frontendURL(`accounts/${accountId}/settings/agent-bots`),
toStateName: 'agent_bots',
featureFlag: FEATURE_FLAGS.AGENT_BOTS,

View file

@ -61,6 +61,24 @@
</a>
</router-link>
</woot-dropdown-item>
<woot-dropdown-item v-if="currentUser.type === 'SuperAdmin'">
<a
href="/super_admin"
class="button small clear secondary"
target="_blank"
rel="noopener nofollow noreferrer"
@click="$emit('close')"
>
<fluent-icon
icon="content-settings"
size="14"
class="icon icon--font"
/>
<span class="button__content">
{{ $t('SIDEBAR_ITEMS.SUPER_ADMIN_CONSOLE') }}
</span>
</a>
</woot-dropdown-item>
<woot-dropdown-item>
<woot-button
variant="clear"

View file

@ -261,14 +261,7 @@ export default {
width: 20rem;
flex-shrink: 0;
overflow-y: hidden;
@include breakpoint(xlarge down) {
position: absolute;
}
@include breakpoint(xlarge up) {
position: unset;
}
position: unset;
&:hover {
overflow-y: hidden;

View file

@ -106,18 +106,22 @@ export default {
activeInbox: 'getSelectedInbox',
accountId: 'getCurrentAccountId',
isFeatureEnabledonAccount: 'accounts/isFeatureEnabledonAccount',
globalConfig: 'globalConfig/get',
}),
hasSubMenu() {
return !!this.menuItem.children;
},
isMenuItemVisible() {
if (!this.menuItem.featureFlag) {
return true;
if (this.menuItem.globalConfigFlag) {
return !!this.globalConfig[this.menuItem.globalConfigFlag];
}
return this.isFeatureEnabledonAccount(
this.accountId,
this.menuItem.featureFlag
);
if (this.menuItem.featureFlag) {
return this.isFeatureEnabledonAccount(
this.accountId,
this.menuItem.featureFlag
);
}
return true;
},
isAllConversations() {
return (

View file

@ -1,10 +1,11 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`SidemenuIcon matches snapshot 1`] = `
<button>
<fluent-icon
class="hamburger--menu"
icon="list"
/>
</button>
<woot-button
class="toggle-sidebar"
color-scheme="secondary"
icon="list"
size="small"
variant="clear"
/>
`;

View file

@ -4,7 +4,7 @@
<fluent-icon :icon="icon" size="12" class="label--icon" />
</span>
<span
v-if="variant === 'smooth'"
v-if="variant === 'smooth' && title && !icon"
:style="{ background: color }"
class="label-color-dot"
/>
@ -117,14 +117,16 @@ export default {
height: var(--space-medium);
&.small {
font-size: var(--font-size-micro);
font-size: var(--font-size-mini);
padding: var(--space-micro) var(--space-smaller);
line-height: 1.2;
letter-spacing: 0.15px;
height: var(--space-two);
}
.label--icon {
cursor: pointer;
}
.label-color-dot {
margin-right: var(--space-smaller);
}
@ -221,14 +223,22 @@ export default {
}
.label-action--button {
margin-bottom: var(--space-minus-micro);
display: flex;
margin-right: var(--space-smaller);
}
.label-color-dot {
display: inline-block;
width: var(--space-one);
height: var(--space-one);
width: var(--space-slab);
height: var(--space-slab);
border-radius: var(--border-radius-small);
margin-right: var(--space-smaller);
box-shadow: var(--shadow-small);
}
.label.small .label-color-dot {
width: var(--space-small);
height: var(--space-small);
border-radius: var(--border-radius-small);
box-shadow: var(--shadow-small);
}
</style>

View file

@ -10,11 +10,11 @@ import 'videojs-record/dist/css/videojs.record.css';
import videojs from 'video.js';
import inboxMixin from '../../../../shared/mixins/inboxMixin';
import alertMixin from '../../../../shared/mixins/alertMixin';
import Recorder from 'opus-recorder';
import encoderWorker from 'opus-recorder/dist/encoderWorker.min';
import waveWorker from 'opus-recorder/dist/waveWorker.min';
import WaveSurfer from 'wavesurfer.js';
import MicrophonePlugin from 'wavesurfer.js/dist/plugin/wavesurfer.microphone.js';
@ -29,14 +29,19 @@ WaveSurfer.microphone = MicrophonePlugin;
export default {
name: 'WootAudioRecorder',
mixins: [inboxMixin, alertMixin],
mixins: [alertMixin],
props: {
audioRecordFormat: {
type: String,
default: AUDIO_FORMATS.WEBM,
},
},
data() {
return {
player: false,
recordingDateStarted: new Date(0),
initialTimeDuration: '00:00',
recorderOptions: {
debug: true,
controls: true,
bigPlayButton: false,
fluid: false,
@ -71,6 +76,9 @@ export default {
record: {
audio: true,
video: false,
maxLength: 900,
timeSlice: 1000,
maxFileSize: 15 * 1024 * 1024,
...(this.audioRecordFormat === AUDIO_FORMATS.WEBM && {
monitorGain: 0,
recordingGain: 1,
@ -80,11 +88,10 @@ export default {
streamPages: true,
maxFramesPerPage: 1,
encoderFrameSize: 1,
encoderPath: 'opus-recorder/dist/waveWorker.min.js',
encoderPath: waveWorker,
}),
...(this.audioRecordFormat === AUDIO_FORMATS.OGG && {
displayMilliseconds: false,
maxLength: 300,
audioEngine: 'opus-recorder',
audioWorkerURL: encoderWorker,
audioChannels: 1,
@ -100,12 +107,6 @@ export default {
isRecording() {
return this.player && this.player.record().isRecording();
},
audioRecordFormat() {
if (this.isAWebWidgetInbox) {
return AUDIO_FORMATS.WEBM;
}
return AUDIO_FORMATS.OGG;
},
},
mounted() {
window.Recorder = Recorder;

View file

@ -87,7 +87,6 @@
:title="'Whatsapp Templates'"
@click="$emit('selectWhatsappTemplate')"
/>
<video-call :conversation-id="conversationId" />
<transition name="modal-fade">
<div
v-show="$refs.upload && $refs.upload.dropActive"
@ -125,13 +124,13 @@ import {
ALLOWED_FILE_TYPES,
ALLOWED_FILE_TYPES_FOR_TWILIO_WHATSAPP,
} from 'shared/constants/messages';
import VideoCall from './VideoCall.vue';
import { REPLY_EDITOR_MODES } from './constants';
import { mapGetters } from 'vuex';
export default {
name: 'ReplyBottomPanel',
components: { FileUpload, VideoCall },
components: { FileUpload },
mixins: [eventListenerMixins, uiSettingsMixin, inboxMixin],
props: {
mode: {
@ -170,10 +169,6 @@ export default {
type: Boolean,
default: false,
},
conversationId: {
type: Number,
default: 0,
},
toggleEmojiPicker: {
type: Function,
default: () => {},

View file

@ -1,57 +0,0 @@
<template>
<woot-button
v-if="isVideoIntegrationEnabled"
v-tooltip.top-end="'Start a new video call with the customer'"
icon="video"
:is-loading="isLoading"
color-scheme="secondary"
variant="smooth"
size="small"
:title="'Whatsapp Templates'"
@click="onClick"
/>
</template>
<script>
import { mapGetters } from 'vuex';
import DyteAPI from '../../../api/integrations/dyte';
export default {
props: {
conversationId: {
type: Number,
default: 0,
},
},
data() {
return { isLoading: false };
},
computed: {
...mapGetters({
appIntegrations: 'integrations/getAppIntegrations',
}),
isVideoIntegrationEnabled() {
return this.appIntegrations.find(integration => {
return integration.id === 'dyte' && !!integration.hooks.length;
});
},
},
mounted() {
if (!this.appIntegrations.length) {
this.$store.dispatch('integrations/get');
}
},
methods: {
async onClick() {
this.isLoading = true;
try {
await DyteAPI.createAMeeting(this.conversationId);
} catch (error) {
// Ignore Error
} finally {
this.isLoading = false;
}
},
},
};
</script>

View file

@ -21,7 +21,11 @@
/>
</h3>
<div class="conversation--header--actions">
<inbox-name :inbox="inbox" class="margin-right-small" />
<inbox-name
v-if="hasMultipleInboxes"
:inbox="inbox"
class="margin-right-small"
/>
<span
v-if="isSnoozed"
class="snoozed--display-text margin-right-small"
@ -145,6 +149,9 @@ export default {
const { inbox_id: inboxId } = this.chat;
return this.$store.getters['inboxes/getInbox'](inboxId);
},
hasMultipleInboxes() {
return this.$store.getters['inboxes/getInboxes'].length > 1;
},
},
methods: {

View file

@ -1,5 +1,8 @@
<template>
<li v-if="shouldRenderMessage" :class="alignBubble">
<li
v-if="hasAttachments || data.content || isEmailContentType"
:class="alignBubble"
>
<div :class="wrapClass">
<div v-tooltip.top-start="messageToolTip" :class="bubbleClass">
<bubble-mail-head
@ -12,13 +15,8 @@
v-if="data.content"
:message="message"
:is-email="isEmailContentType"
:readable-time="readableTime"
:display-quoted-button="displayQuotedButton"
/>
<integration-message
:message-id="data.id"
:content-attributes="contentAttributes"
/>
<span
v-if="isPending && hasAttachments"
class="chat-bubble has-attachment agent"
@ -30,7 +28,6 @@
<bubble-image
v-if="attachment.file_type === 'image' && !hasImageError"
:url="attachment.data_url"
:readable-time="readableTime"
@error="onImageLoadError"
/>
<audio v-else-if="attachment.file_type === 'audio'" controls>
@ -39,7 +36,6 @@
<bubble-video
v-else-if="attachment.file_type === 'video'"
:url="attachment.data_url"
:readable-time="readableTime"
/>
<bubble-location
v-else-if="attachment.file_type === 'location'"
@ -47,11 +43,7 @@
:longitude="attachment.coordinates_long"
:name="attachment.fallback_title"
/>
<bubble-file
v-else
:url="attachment.data_url"
:readable-time="readableTime"
/>
<bubble-file v-else :url="attachment.data_url" />
</div>
</div>
<bubble-actions
@ -66,10 +58,9 @@
:is-private="data.private"
:message-type="data.message_type"
:message-status="status"
:readable-time="readableTime"
:source-id="data.source_id"
:inbox-id="data.inbox_id"
:message-read="showReadTicks"
:created-at="createdAt"
/>
</div>
<spinner v-if="isPending" size="tiny" />
@ -120,8 +111,6 @@
</template>
<script>
import messageFormatterMixin from 'shared/mixins/messageFormatterMixin';
import timeMixin from '../../../mixins/time';
import BubbleMailHead from './bubble/MailHead';
import BubbleText from './bubble/Text';
import BubbleImage from './bubble/Image';
@ -137,7 +126,7 @@ import alertMixin from 'shared/mixins/alertMixin';
import contentTypeMixin from 'shared/mixins/contentTypeMixin';
import { MESSAGE_TYPE, MESSAGE_STATUS } from 'shared/constants/messages';
import { generateBotMessageContent } from './helpers/botMessageContentHelper';
import IntegrationMessage from './messageTypes/IntegrationMessage.vue';
export default {
components: {
BubbleActions,
@ -148,10 +137,9 @@ export default {
BubbleMailHead,
BubbleLocation,
ContextMenu,
IntegrationMessage,
Spinner,
},
mixins: [alertMixin, timeMixin, messageFormatterMixin, contentTypeMixin],
mixins: [alertMixin, messageFormatterMixin, contentTypeMixin],
props: {
data: {
type: Object,
@ -169,10 +157,6 @@ export default {
type: Boolean,
default: false,
},
hasUserReadMessage: {
type: Boolean,
default: false,
},
isWebWidgetInbox: {
type: Boolean,
default: false,
@ -185,17 +169,6 @@ export default {
};
},
computed: {
shouldRenderMessage() {
return (
this.hasAttachments ||
this.data.content ||
this.isEmailContentType ||
this.isAnIntegrationMessage
);
},
isAnIntegrationMessage() {
return this.contentType === 'integrations';
},
emailMessageContent() {
const {
html_content: { full: fullHTMLContent } = {},
@ -286,11 +259,8 @@ export default {
'has-tweet-menu': this.isATweet,
};
},
readableTime() {
return this.messageStamp(
this.contentAttributes.external_created_at || this.data.created_at,
'LLL d, h:mm a'
);
createdAt() {
return this.contentAttributes.external_created_at || this.data.created_at;
},
isBubble() {
return [0, 1, 3].includes(this.data.message_type);
@ -301,14 +271,6 @@ export default {
isOutgoing() {
return this.data.message_type === MESSAGE_TYPE.OUTGOING;
},
showReadTicks() {
return (
(this.isOutgoing || this.isTemplate) &&
this.hasUserReadMessage &&
this.isWebWidgetInbox &&
!this.data.private
);
},
isTemplate() {
return this.data.message_type === MESSAGE_TYPE.TEMPLATE;
},

View file

@ -40,9 +40,6 @@
:is-a-tweet="isATweet"
:is-a-whatsapp-channel="isAWhatsAppChannel"
:has-instagram-story="hasInstagramStory"
:has-user-read-message="
hasUserReadMessage(message.created_at, getLastSeenAt)
"
:is-web-widget-inbox="isAWebWidgetInbox"
/>
<li v-show="unreadMessageCount != 0" class="unread--toast">
@ -63,9 +60,6 @@
:is-a-tweet="isATweet"
:is-a-whatsapp-channel="isAWhatsAppChannel"
:has-instagram-story="hasInstagramStory"
:has-user-read-message="
hasUserReadMessage(message.created_at, getLastSeenAt)
"
:is-web-widget-inbox="isAWebWidgetInbox"
/>
</ul>

View file

@ -37,6 +37,7 @@
<woot-audio-recorder
v-if="showAudioRecorderEditor"
ref="audioRecorderInput"
:audio-record-format="audioRecordFormat"
@state-recorder-progress-changed="onStateProgressRecorderChanged"
@state-recorder-changed="onStateRecorderChanged"
@finish-record="onFinishRecorder"
@ -114,7 +115,6 @@
:show-editor-toggle="isAPIInbox && !isOnPrivateNote"
:enable-multiple-file-upload="enableMultipleFileUpload"
:has-whatsapp-templates="hasWhatsappTemplates"
:conversation-id="conversationId"
@selectWhatsappTemplate="openWhatsappTemplateModal"
@toggle-editor="toggleRichContentEditor"
/>
@ -148,6 +148,7 @@ import { checkFileSizeLimit } from 'shared/helpers/FileHelper';
import {
MAXIMUM_FILE_UPLOAD_SIZE,
MAXIMUM_FILE_UPLOAD_SIZE_TWILIO_SMS_CHANNEL,
AUDIO_FORMATS,
} from 'shared/constants/messages';
import { BUS_EVENTS } from 'shared/constants/busEvents';
@ -463,6 +464,12 @@ export default {
editorStateId() {
return `draft-${this.conversationIdByRoute}-${this.replyType}`;
},
audioRecordFormat() {
if (this.isAWebWidgetInbox) {
return AUDIO_FORMATS.WEBM;
}
return AUDIO_FORMATS.OGG;
},
},
watch: {
currentChat(conversation) {

View file

@ -1,8 +1,14 @@
<template>
<div class="message-text--metadata">
<span class="time" :class="{ delivered: messageRead }">{{
readableTime
}}</span>
<span
class="time"
:class="{
'has-status-icon':
showSentIndicator || showDeliveredIndicator || showReadIndicator,
}"
>
{{ readableTime }}
</span>
<span v-if="showReadIndicator" class="read-indicator-wrap">
<fluent-icon
v-tooltip.top-start="$t('CHAT_LIST.MESSAGE_READ')"
@ -11,7 +17,7 @@
size="14"
/>
</span>
<span v-if="showDeliveredIndicator" class="read-indicator-wrap">
<span v-else-if="showDeliveredIndicator" class="read-indicator-wrap">
<fluent-icon
v-tooltip.top-start="$t('CHAT_LIST.DELIVERED')"
icon="checkmark-double"
@ -19,7 +25,7 @@
size="14"
/>
</span>
<span v-if="showSentIndicator" class="read-indicator-wrap">
<span v-else-if="showSentIndicator" class="read-indicator-wrap">
<fluent-icon
v-tooltip.top-start="$t('CHAT_LIST.SENT')"
icon="checkmark"
@ -74,17 +80,19 @@
import { MESSAGE_TYPE, MESSAGE_STATUS } from 'shared/constants/messages';
import { BUS_EVENTS } from 'shared/constants/busEvents';
import inboxMixin from 'shared/mixins/inboxMixin';
import { mapGetters } from 'vuex';
import timeMixin from '../../../../mixins/time';
export default {
mixins: [inboxMixin],
mixins: [inboxMixin, timeMixin],
props: {
sender: {
type: Object,
default: () => ({}),
},
readableTime: {
type: String,
default: '',
createdAt: {
type: Number,
default: 0,
},
storySender: {
type: String,
@ -130,12 +138,9 @@ export default {
type: [String, Number],
default: 0,
},
messageRead: {
type: Boolean,
default: false,
},
},
computed: {
...mapGetters({ currentChat: 'getSelectedChat' }),
inbox() {
return this.$store.getters['inboxes/getInbox'](this.inboxId);
},
@ -145,6 +150,9 @@ export default {
isOutgoing() {
return MESSAGE_TYPE.OUTGOING === this.messageType;
},
isTemplate() {
return MESSAGE_TYPE.TEMPLATE === this.messageType;
},
isDelivered() {
return MESSAGE_STATUS.DELIVERED === this.messageStatus;
},
@ -154,6 +162,9 @@ export default {
isSent() {
return MESSAGE_STATUS.SENT === this.messageStatus;
},
readableTime() {
return this.messageStamp(this.createdAt, 'LLL d, h:mm a');
},
screenName() {
const { additional_attributes: additionalAttributes = {} } =
this.sender || {};
@ -174,28 +185,52 @@ export default {
const { storySender, storyId } = this;
return `https://www.instagram.com/stories/${storySender}/${storyId}`;
},
showStatusIndicators() {
if ((this.isOutgoing || this.isTemplate) && !this.private) {
return true;
}
return false;
},
showSentIndicator() {
return (
this.isOutgoing &&
this.sourceId &&
(this.isAnEmailChannel || (this.isAWhatsAppChannel && this.isSent))
);
if (!this.showStatusIndicators) {
return false;
}
if (this.isAnEmailChannel) {
return !!this.sourceId;
}
if (this.isAWhatsAppChannel) {
return this.sourceId && this.isSent;
}
return false;
},
showDeliveredIndicator() {
return (
this.isOutgoing &&
this.sourceId &&
this.isAWhatsAppChannel &&
this.isDelivered
);
if (!this.showStatusIndicators) {
return false;
}
if (this.isAWhatsAppChannel) {
return this.sourceId && this.isDelivered;
}
return false;
},
showReadIndicator() {
return (
this.isOutgoing &&
this.sourceId &&
this.isAWhatsAppChannel &&
this.isRead
);
if (!this.showStatusIndicators) {
return false;
}
if (this.isAWebWidgetInbox) {
const { contact_last_seen_at: contactLastSeenAt } = this.currentChat;
return contactLastSeenAt >= this.createdAt;
}
if (this.isAWhatsAppChannel) {
return this.sourceId && this.isRead;
}
return false;
},
},
methods: {
@ -218,12 +253,13 @@ export default {
.action--icon {
color: var(--white);
&.read-tick {
color: var(--v-100);
}
&.read-indicator {
color: var(--g-300);
color: var(--g-200);
}
}
@ -288,8 +324,9 @@ export default {
position: absolute;
right: var(--space-small);
white-space: nowrap;
&.delivered {
right: var(--space-medium);
&.has-status-icon {
right: var(--space-large);
line-height: 2;
}
}

View file

@ -35,10 +35,6 @@ export default {
type: String,
default: '',
},
readableTime: {
type: String,
default: '',
},
isEmail: {
type: Boolean,
default: true,

View file

@ -66,6 +66,8 @@ export default {
const labelContainer = this.$refs.labelContainer;
const labels = this.$refs.labelContainer.querySelectorAll('.label');
let labelOffset = 0;
this.showExpandLabelButton = false;
Array.from(labels).forEach((label, index) => {
labelOffset += label.offsetWidth + 8;
@ -82,9 +84,10 @@ export default {
<style lang="scss" scoped>
.show-more--button {
height: var(--space-medium);
height: var(--space-two);
position: sticky;
flex-shrink: 0;
right: 0;
margin-right: var(--space-medium);
&.secondary:focus {

View file

@ -1,96 +0,0 @@
<template>
<div>
<woot-button
size="small"
variant="smooth"
color-scheme="secondary"
icon="video-add"
class="join-call-button"
:is-loading="isLoading"
@click="joinTheCall"
>
{{ $t('INTEGRATION_SETTINGS.DYTE.CLICK_HERE_TO_JOIN') }}
</woot-button>
<div v-if="dyteAuthToken" class="video-call--container" draggable>
<iframe
:src="
`https://app.dyte.in/meeting/stage/${meetingData.room_name}?authToken=${dyteAuthToken}&showSetupScreen=true&disableVideoBackground=true`
"
allow="camera;microphone;fullscreen;display-capture;picture-in-picture;clipboard-write;"
/>
<woot-button
size="small"
variant="smooth"
color-scheme="secondary"
class="join-call-button"
:is-loading="isLoading"
@click="leaveTheRoom"
>
{{ $t('INTEGRATION_SETTINGS.DYTE.LEAVE_THE_ROOM') }}
</woot-button>
</div>
</div>
</template>
<script>
import DyteAPI from '../../../../api/integrations/dyte';
export default {
props: {
messageId: {
type: Number,
required: true,
},
meetingData: {
type: Object,
default: () => ({}),
},
},
data() {
return { isLoading: false, dyteAuthToken: '', isSDKMounted: false };
},
mounted() {
window.addEventListener('message', this.receiveMessage, false);
},
beforeDestroy() {
window.removeEventListener('message', this.receiveMessage, false);
},
methods: {
async joinTheCall() {
const {
data: { success, data },
} = await DyteAPI.addParticipantToMeeting(this.messageId);
if (success) {
this.dyteAuthToken = data.authResponse.authToken;
}
},
leaveTheRoom() {
this.dyteAuthToken = '';
},
},
};
</script>
<style lang="scss">
.join-call-button {
margin: var(--space-small) 0;
}
.video-call--container {
position: fixed;
bottom: var(--space-normal);
right: 0;
z-index: 10000;
padding: var(--space-smaller);
background: var(--b-800);
border-radius: var(--border-radius-normal);
iframe {
width: 600px;
height: 600px;
border: 0;
}
button {
position: absolute;
top: var(--space-normal);
right: var(--space-normal);
}
}
</style>

View file

@ -1,23 +0,0 @@
<template>
<dyte-video-call
v-if="contentAttributes.type === 'dyte'"
:message-id="messageId"
:meeting-data="contentAttributes.data"
/>
</template>
<script>
import DyteVideoCall from './DyteVideoCall.vue';
export default {
components: { DyteVideoCall },
props: {
messageId: {
type: Number,
required: true,
},
contentAttributes: {
type: Object,
default: () => ({}),
},
},
};
</script>

View file

@ -1,13 +1,18 @@
export const FEATURE_FLAGS = {
AGENT_BOTS: 'agent_bots',
AGENT_MANAGEMENT: 'agent_management',
AUTO_RESOLVE_CONVERSATIONS: 'auto_resolve_conversations',
AUTOMATIONS: 'automations',
CAMPAIGNS: 'campaigns',
CANNED_RESPONSES: 'canned_responses',
CRM: 'crm',
CUSTOM_ATTRIBUTES: 'custom_attributes',
INBOX_MANAGEMENT: 'inbox_management',
INTEGRATIONS: 'integrations',
LABELS: 'labels',
MACROS: 'macros',
HELP_CENTER: 'help_center',
REPORTS: 'reports',
TEAM_MANAGEMENT: 'team_management',
VOICE_RECORDER: 'voice_recorder',
};

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "لا توجد استجابة",
"RATING_TITLE": "التقييم",
"FEEDBACK_TITLE": "الملاحظات",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "إغلاق المحادثة",
"REOPEN_ACTION": "إعادة فتح",

View file

@ -103,7 +103,9 @@
"متصل",
"مشغول",
"غير متصل"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "عنوان البريد الإلكتروني الخاص بك",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "اختر حساباً من القائمة التالية",
"PROFILE_SETTINGS": "إعدادات الملف الشخصي",
"KEYBOARD_SHORTCUTS": "اختصارات لوحة المفاتيح",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "تسجيل الخروج"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "الفئة",
"CATEGORY_EMPTY_MESSAGE": "لم يتم العثور على فئات"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "قراءة المستندات"
},
"BILLING_SETTINGS": {

View file

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

View file

@ -103,7 +103,9 @@
"Online",
"Busy",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Your email address",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Select an account from the following list",
"PROFILE_SETTINGS": "Profile Settings",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Logout"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Sense resposta",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Resoldre",
"REOPEN_ACTION": "Tornar a obrir",

View file

@ -103,7 +103,9 @@
"En línia",
"Ocupat",
"Fora de línia"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "La teva adreça de correu electrònic",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Selecciona un compte de la llista següent",
"PROFILE_SETTINGS": "Configuració del Perfil",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Sortir"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Bez odpovědi",
"RATING_TITLE": "Hodnocení",
"FEEDBACK_TITLE": "Zpětná vazba",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Vyřešit",
"REOPEN_ACTION": "Znovu otevřít",

View file

@ -103,7 +103,9 @@
"Online",
"Zaneprázdněn",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Vaše e-mailová adresa",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Vyberte účet z následujícího seznamu",
"PROFILE_SETTINGS": "Nastavení profilu",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Odhlásit se"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Intet svar",
"RATING_TITLE": "Bedømmelse",
"FEEDBACK_TITLE": "Tilbagemelding",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Løs",
"REOPEN_ACTION": "Genåben",

View file

@ -103,7 +103,9 @@
"Online",
"Optaget",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Din e-mail adresse",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Vælg en konto fra følgende liste",
"PROFILE_SETTINGS": "Profilindstillinger",
"KEYBOARD_SHORTCUTS": "Tastaturgenveje",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Log Ud"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Kategori",
"CATEGORY_EMPTY_MESSAGE": "Ingen kategorier fundet"
},
"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": "Læs dokumenter"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Keine Antwort",
"RATING_TITLE": "Bewertung",
"FEEDBACK_TITLE": "Feedback",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Fall schließen",
"REOPEN_ACTION": "Wieder öffnen",

View file

@ -103,7 +103,9 @@
"Online",
"Beschäftigt",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Deine Emailadresse",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Wählen Sie ein Benutzerkonto aus der folgenden Liste",
"PROFILE_SETTINGS": "Profileinstellungen",
"KEYBOARD_SHORTCUTS": "Tastenkombinationen",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Ausloggen"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Kategorie",
"CATEGORY_EMPTY_MESSAGE": "Keine Kategorien gefunden"
},
"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": "Dokumente lesen"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Καμία ανταπόκριση",
"RATING_TITLE": "Αξιολόγηση",
"FEEDBACK_TITLE": "Ανατροφοδότηση",
"CARD": {
"SHOW_LABELS": "Προβολή ετικετών",
"HIDE_LABELS": "Απόκρυψη ετικετών"
},
"HEADER": {
"RESOLVE_ACTION": "Επίλυση",
"REOPEN_ACTION": "Επαναφορά",

View file

@ -134,7 +134,7 @@
"PHONE_NUMBER": {
"LABEL": "Αριθμός τηλεφώνου",
"PLACEHOLDER": "Παρακαλώ εισάγετε έναν αριθμό τηλεφώνου από τον οποίο θα σταλεί το μήνυμα.",
"ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
"ERROR": "Παρακαλώ δώστε έναν έγκυρο αριθμό τηλεφώνου που ξεκινά με ένα σύμβολο `+` και δεν περιέχει κενά."
},
"API_CALLBACK": {
"TITLE": "URL επανάκλησης",
@ -185,7 +185,7 @@
"PHONE_NUMBER": {
"LABEL": "Αριθμός τηλεφώνου",
"PLACEHOLDER": "Παρακαλώ εισάγετε έναν αριθμό τηλεφώνου από τον οποίο θα σταλεί το μήνυμα.",
"ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
"ERROR": "Παρακαλώ δώστε έναν έγκυρο αριθμό τηλεφώνου που ξεκινά με ένα σύμβολο `+` και δεν περιέχει κενά."
},
"SUBMIT_BUTTON": "Δημιουργήστε Bandwidth",
"API": {
@ -214,7 +214,7 @@
"PHONE_NUMBER": {
"LABEL": "Αριθμός τηλεφώνου",
"PLACEHOLDER": "Παρακαλώ εισάγετε έναν αριθμό τηλεφώνου από τον οποίο θα σταλεί το μήνυμα.",
"ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
"ERROR": "Παρακαλώ δώστε έναν έγκυρο αριθμό τηλεφώνου που ξεκινά με ένα σύμβολο `+` και δεν περιέχει κενά."
},
"PHONE_NUMBER_ID": {
"LABEL": "Αριθμός Τηλεφώνου",

View file

@ -103,7 +103,9 @@
"Στην Γραμμή",
"Απασχολημένος",
"Εκτός"
]
],
"SET_AVAILABILITY_SUCCESS": "Η διαθεσιμότητα ορίστηκε με επιτυχία",
"SET_AVAILABILITY_ERROR": "Αδυναμία ορισμού διαθεσιμότητας, παρακαλώ προσπαθήστε ξανά"
},
"EMAIL": {
"LABEL": "Η διεύθυνση email",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Επιλέξτε ένα λογαριασμό από την Λίστα",
"PROFILE_SETTINGS": "Ρυθμίσεις Προφίλ",
"KEYBOARD_SHORTCUTS": "Συντομεύσεις Πληκτρολογίου",
"SUPER_ADMIN_CONSOLE": "Super Admin Κονσόλα",
"LOGOUT": "Έξοδος (Logout)"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Κατηγορία",
"CATEGORY_EMPTY_MESSAGE": "Δεν βρέθηκαν κατηγορίες"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Αυτόματη σήμανση εκτός σύνδεσης",
"INFO_TEXT": "Αφήστε το σύστημα να σας σηματοδοτήσει αυτόματα εκτός σύνδεσης, όταν δεν χρησιμοποιείτε την εφαρμογή ή τον πίνακα ελέγχου."
},
"DOCS": "Ανάγνωση εγγράφων"
},
"BILLING_SETTINGS": {

View file

@ -35,7 +35,10 @@
"LIST": {
"404": "There are no webhooks configured for this account.",
"TITLE": "Manage webhooks",
"TABLE_HEADER": ["Webhook endpoint", "Actions"]
"TABLE_HEADER": [
"Webhook endpoint",
"Actions"
]
},
"EDIT": {
"BUTTON_TEXT": "Edit",
@ -73,10 +76,6 @@
"BODY": "<br/><p>Chatwoot will now sync all the incoming conversations into the <b><i>customer-conversations</i></b> channel inside your slack workplace.</p><p>Replying to a conversation thread in <b><i>customer-conversations</i></b> slack channel will create a response back to the customer through chatwoot.</p><p>Start the replies with <b><i>note:</i></b> to create private notes instead of replies.</p><p>If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.</p><p>When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.</p>"
}
},
"DYTE": {
"CLICK_HERE_TO_JOIN": "Click here to join",
"LEAVE_THE_ROOM": "Leave the room"
},
"DELETE": {
"BUTTON_TEXT": "Delete",
"API": {
@ -94,7 +93,10 @@
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": ["Name", "Endpoint"],
"TABLE_HEADER": [
"Name",
"Endpoint"
],
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
},

View file

@ -132,6 +132,7 @@
"SELECTOR_SUBTITLE": "Select an account from the following list",
"PROFILE_SETTINGS": "Profile Settings",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Logout"
},
"APP_GLOBAL": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "No hay respuesta",
"RATING_TITLE": "Calificación",
"FEEDBACK_TITLE": "Comentarios",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Resolver",
"REOPEN_ACTION": "Reabrir",

View file

@ -103,7 +103,9 @@
"En línea",
"Ocupado",
"Fuera de línea"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Tu dirección de correo",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Seleccione una cuenta de la siguiente lista",
"PROFILE_SETTINGS": "Ajustes del perfil",
"KEYBOARD_SHORTCUTS": "Atajos de teclado",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Cerrar sesión"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Categoría",
"CATEGORY_EMPTY_MESSAGE": "No se encontraron categorías"
},
"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": "Leer documentos"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "بدون پاسخ",
"RATING_TITLE": "رتبه",
"FEEDBACK_TITLE": "بازخورد",
"CARD": {
"SHOW_LABELS": "مشاهده کردن برچسب‌ها",
"HIDE_LABELS": "پنهان کردن برچسب‌ها"
},
"HEADER": {
"RESOLVE_ACTION": "حل شد",
"REOPEN_ACTION": "دوباره باز کنید",

View file

@ -445,8 +445,8 @@
"ENABLE_CSAT_SUB_TEXT": "پس از پایان گفتگو ، نظرسنجی CSAT (رضایت مشتری) را فعال/غیرفعال کنید",
"ENABLE_CONTINUITY_VIA_EMAIL": "ادامه مکالمه را از طریق ایمیل فعال کنید",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "اگر آدرس ایمیل تماس در دسترس باشد، مکالمات از طریق ایمیل ادامه خواهد یافت.",
"LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
"LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
"LOCK_TO_SINGLE_CONVERSATION": "قفل کردن مکالمه تکی",
"LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "چند مکالمه را برای یک مخاطب در این صندوق ورودی فعال یا غیرفعال کنید",
"INBOX_UPDATE_TITLE": "تنظیمات صندوق ورودی",
"INBOX_UPDATE_SUB_TEXT": "تغییر پارامترهای صندوق ورودی",
"AUTO_ASSIGNMENT_SUB_TEXT": "فعال کردن یا غیرفعال کردن واگذاری خودکار گفتگوها به ایجنت های عضو این صندوق ورودی.",

View file

@ -103,7 +103,9 @@
"آنلاین",
"مشغول",
"آفلاین"
]
],
"SET_AVAILABILITY_SUCCESS": "در دسترس بودن با موفقیت تنظیم شد",
"SET_AVAILABILITY_ERROR": "در دسترس بودن تنظیم نشد، لطفا دوباره امتحان کنید"
},
"EMAIL": {
"LABEL": "ایمیل شما",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "از لیست یکی از حساب‌ها را انتخاب کنید",
"PROFILE_SETTINGS": "تنظیمات پروفایل",
"KEYBOARD_SHORTCUTS": "میانبرهای صفحه‌کلید",
"SUPER_ADMIN_CONSOLE": "کنسول سوپر مدیر",
"LOGOUT": "خروج از حساب‌کاربری"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "دسته‌بندی",
"CATEGORY_EMPTY_MESSAGE": "هیچ دسته‌بندی‌ای یافت نشد"
},
"SET_AUTO_OFFLINE": {
"TEXT": "علامت گذاری خودکار به صورت آفلاین",
"INFO_TEXT": "هنگامی که از برنامه یا پیشخوان استفاده نمی‌کنید، به سیستم اجازه دهید به طور خودکار شما را به صورت آفلاین علامت گذاری کند."
},
"DOCS": "اسناد را بخوانید"
},
"BILLING_SETTINGS": {

View file

@ -2,8 +2,8 @@
"REGISTER": {
"TRY_WOOT": "ثبت‌نام حساب‌کاربری",
"TITLE": "ثبت نام",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
"TESTIMONIAL_HEADER": "تنها چیزی که لازم است یک قدم برای حرکت به جلو است",
"TESTIMONIAL_CONTENT": "شما یک قدم تا جذب مشتریان خود، حفظ آنها و یافتن مشتریان جدید فاصله دارید.",
"TERMS_ACCEPT": "با ثبت نام، اعلام می‌دارید که <a href=\"https://www.chatwoot.com/terms\">قوانین</a> و <a href=\"https://www.chatwoot.com/privacy-policy\">شرایط استفاده</a> از این نرم افزار را تایید کرده و می‌پذیرید",
"COMPANY_NAME": {
"LABEL": "نام شرکت",

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "No response",
"RATING_TITLE": "Arvio",
"FEEDBACK_TITLE": "Palaute",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Ratkaise",
"REOPEN_ACTION": "Uudelleenavaa",

View file

@ -103,7 +103,9 @@
"Paikalla",
"Kiireinen",
"Poissa"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Sinun sähköpostiosoitteesi",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Valitse tili tästä luettelosta",
"PROFILE_SETTINGS": "Profiilin asetukset",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Kirjaudu ulos"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -1,28 +1,28 @@
{
"FILTER": {
"TITLE": "Filtrer les conversations",
"SUBTITLE": "Add filters below and hit 'Apply filters' to filter conversations.",
"SUBTITLE": "Ajoutez des filtres ci-dessous et appuyez sur 'Appliquer des filtres' pour filtrer les conversations.",
"ADD_NEW_FILTER": "Ajouter un filtre",
"FILTER_DELETE_ERROR": "Vous devriez avoir au moins un filtre afin d'enregistrer",
"SUBMIT_BUTTON_LABEL": "Appliquer les filtres",
"CANCEL_BUTTON_LABEL": "Annuler",
"CLEAR_BUTTON_LABEL": "Clear Filters",
"CLEAR_BUTTON_LABEL": "Effacer les filtres",
"EMPTY_VALUE_ERROR": "Value is required",
"TOOLTIP_LABEL": "Filter conversations",
"TOOLTIP_LABEL": "Filtrer les conversations",
"QUERY_DROPDOWN_LABELS": {
"AND": "ET",
"OR": "OU"
},
"OPERATOR_LABELS": {
"equal_to": "Equal to",
"not_equal_to": "Not equal to",
"contains": "Contains",
"does_not_contain": "Does not contain",
"is_present": "Is present",
"is_not_present": "Is not present",
"is_greater_than": "Is greater than",
"is_less_than": "Is lesser than",
"days_before": "Is x days before"
"equal_to": "Égal à",
"not_equal_to": "Pas égal à",
"contains": "Contient",
"does_not_contain": "Ne contient pas",
"is_present": "Est présent",
"is_not_present": "N'est pas présent",
"is_greater_than": "Est plus grand que",
"is_less_than": "Est inférieur à",
"days_before": "Est x jours avant"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Vrai",
@ -32,19 +32,19 @@
"STATUS": "État",
"ASSIGNEE_NAME": "Assignee Name",
"INBOX_NAME": "Nom de la boîte de réception",
"TEAM_NAME": "Team Name",
"TEAM_NAME": "Nom de l'équipe",
"CONVERSATION_IDENTIFIER": "Conversation Identifier",
"CAMPAIGN_NAME": "Campaign Name",
"LABELS": "Étiquettes",
"BROWSER_LANGUAGE": "Browser Language",
"COUNTRY_NAME": "Country Name",
"BROWSER_LANGUAGE": "Langue du navigateur",
"COUNTRY_NAME": "Nom du pays",
"REFERER_LINK": "Referer link",
"CUSTOM_ATTRIBUTE_LIST": "List",
"CUSTOM_ATTRIBUTE_TEXT": "Text",
"CUSTOM_ATTRIBUTE_NUMBER": "Number",
"CUSTOM_ATTRIBUTE_LINK": "Link",
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Created At",
"CUSTOM_ATTRIBUTE_LIST": "Liste",
"CUSTOM_ATTRIBUTE_TEXT": "Texte",
"CUSTOM_ATTRIBUTE_NUMBER": "Nombre",
"CUSTOM_ATTRIBUTE_LINK": "Lien",
"CUSTOM_ATTRIBUTE_CHECKBOX": "Case à cocher",
"CREATED_AT": "Créé le",
"LAST_ACTIVITY": "Dernière activité"
},
"GROUPS": {
@ -70,7 +70,7 @@
}
},
"DELETE": {
"DELETE_BUTTON": "Delete filter",
"DELETE_BUTTON": "Supprimer le filtre",
"MODAL": {
"CONFIRM": {
"TITLE": "Confirmer la suppression",

View file

@ -8,7 +8,7 @@
},
"TAB_HEADING": "Conversations",
"MENTION_HEADING": "Mentions",
"UNATTENDED_HEADING": "Unattended",
"UNATTENDED_HEADING": "Sans suivi",
"SEARCH": {
"INPUT": "Rechercher des personnes, des conversations, des réponses standardisées ..."
},
@ -57,12 +57,12 @@
"REPLY_TO_TWEET": "Répondre à ce tweet",
"LINK_TO_STORY": "Aller à l'histoire instagram",
"SENT": "Envoyé avec succès",
"READ": "Read successfully",
"DELIVERED": "Delivered successfully",
"READ": "Lu",
"DELIVERED": "Reçu",
"NO_MESSAGES": "Pas de messages",
"NO_CONTENT": "Aucun contenu disponible",
"HIDE_QUOTED_TEXT": "Masquer le texte cité",
"SHOW_QUOTED_TEXT": "Afficher le texte cité",
"MESSAGE_READ": "Read"
"MESSAGE_READ": "Lu"
}
}

View file

@ -7,7 +7,7 @@
"COPY_SUCCESSFUL": "Copié dans le presse-papiers avec succès",
"COMPANY": "Société",
"LOCATION": "Localisation",
"BROWSER_LANGUAGE": "Browser Language",
"BROWSER_LANGUAGE": "Langue du navigateur",
"CONVERSATION_TITLE": "Détails de la conversation",
"VIEW_PROFILE": "Voir le profil",
"BROWSER": "Navigateur",

View file

@ -7,7 +7,7 @@
"FILTER_DELETE_ERROR": "Vous devriez avoir au moins un filtre afin d'enregistrer",
"SUBMIT_BUTTON_LABEL": "Envoyer",
"CANCEL_BUTTON_LABEL": "Annuler",
"CLEAR_BUTTON_LABEL": "Clear Filters",
"CLEAR_BUTTON_LABEL": "Effacer les filtres",
"EMPTY_VALUE_ERROR": "Value is required",
"TOOLTIP_LABEL": "Filter contacts",
"QUERY_DROPDOWN_LABELS": {
@ -15,15 +15,15 @@
"OR": "OU"
},
"OPERATOR_LABELS": {
"equal_to": "Equal to",
"not_equal_to": "Not equal to",
"contains": "Contains",
"does_not_contain": "Does not contain",
"is_present": "Is present",
"is_not_present": "Is not present",
"is_greater_than": "Is greater than",
"equal_to": "Égal à",
"not_equal_to": "Pas égal à",
"contains": "Contient",
"does_not_contain": "Ne contient pas",
"is_present": "Est présent",
"is_not_present": "N'est pas présent",
"is_greater_than": "Est plus grand que",
"is_lesser_than": "Is lesser than",
"days_before": "Is x days before"
"days_before": "Est x jours avant"
},
"ATTRIBUTES": {
"NAME": "Nom",
@ -32,12 +32,12 @@
"IDENTIFIER": "Identifier",
"CITY": "Ville",
"COUNTRY": "Pays",
"CUSTOM_ATTRIBUTE_LIST": "List",
"CUSTOM_ATTRIBUTE_TEXT": "Text",
"CUSTOM_ATTRIBUTE_NUMBER": "Number",
"CUSTOM_ATTRIBUTE_LINK": "Link",
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Created At",
"CUSTOM_ATTRIBUTE_LIST": "Liste",
"CUSTOM_ATTRIBUTE_TEXT": "Texte",
"CUSTOM_ATTRIBUTE_NUMBER": "Nombre",
"CUSTOM_ATTRIBUTE_LINK": "Lien",
"CUSTOM_ATTRIBUTE_CHECKBOX": "Case à cocher",
"CREATED_AT": "Créé le",
"LAST_ACTIVITY": "Dernière activité",
"REFERER_LINK": "Referrer link"
},

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Pas de réponse",
"RATING_TITLE": "Note",
"FEEDBACK_TITLE": "Commentaires",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Résoudre",
"REOPEN_ACTION": "Ré-ouvrir",

View file

@ -103,7 +103,9 @@
"En ligne",
"Occupé(e)",
"Hors-ligne"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Votre adresse de courriel",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Sélectionnez un compte dans la liste suivante",
"PROFILE_SETTINGS": "Paramètres de profil",
"KEYBOARD_SHORTCUTS": "Raccourcis clavier",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Se déconnecter"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -2,13 +2,13 @@
"REGISTER": {
"TRY_WOOT": "Créer un compte",
"TITLE": "Inscription",
"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.",
"TESTIMONIAL_HEADER": "Il suffit d'une étape pour avancer",
"TESTIMONIAL_CONTENT": "Vous n'êtes plus qu'à un pas d'engager vos clients, de les fidéliser et d'en trouver de nouveaux.",
"TERMS_ACCEPT": "En vous inscrivant, vous acceptez nos <a href=\"https://www.chatwoot.com/terms\">CGU</a> et notre <a href=\"https://www.chatwoot.com/privacy-policy\">politique de confidentialité</a>",
"COMPANY_NAME": {
"LABEL": "Company name",
"PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
"ERROR": "Company name is too short"
"LABEL": "Nom de la société",
"PLACEHOLDER": "Entrez le nom de votre entreprise. Ex : Wayne Enterprises",
"ERROR": "Le nom de la société est trop court"
},
"FULL_NAME": {
"LABEL": "Nom complet",
@ -18,13 +18,13 @@
"EMAIL": {
"LABEL": "E-mail professionnel",
"PLACEHOLDER": "Entrez votre adresse e-mail professionnelle. Ex. : bruce@wayne.enterprises",
"ERROR": "Please enter a valid work email address"
"ERROR": "Veuillez entrer une adresse e-mail professionnelle valide"
},
"PASSWORD": {
"LABEL": "Mot de passe",
"PLACEHOLDER": "Mot de passe",
"ERROR": "Le mot de passe est trop court",
"IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
"IS_INVALID_PASSWORD": "Le mot de passe doit contenir au moins 1 lettre majuscule, 1 lettre minuscule, 1 chiffre et 1 caractère spécial"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirmer le mot de passe",

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "אין תגובה",
"RATING_TITLE": "דירוג",
"FEEDBACK_TITLE": "משוב",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "פתרון",
"REOPEN_ACTION": "פתח מחדש",

View file

@ -103,7 +103,9 @@
"מחובר",
"עסוק",
"לא מחובר"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Your email address",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Select an account from the following list",
"PROFILE_SETTINGS": "Profile Settings",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "התנתק"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

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

View file

@ -103,7 +103,9 @@
"Online",
"Busy",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Your email address",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Select an account from the following list",
"PROFILE_SETTINGS": "Profile Settings",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Logout"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Nincs válasz",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Megoldva",
"REOPEN_ACTION": "Újranyitás",

View file

@ -103,7 +103,9 @@
"Online",
"Foglalt",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Az e-mailcímed",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Fiók kiválasztása az alábbi listából",
"PROFILE_SETTINGS": "Profilbeállítások",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Kilépés"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Tidak ada respon",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Menyelesaikan",
"REOPEN_ACTION": "Buka Kembali",

View file

@ -103,7 +103,9 @@
"Online",
"Sibuk",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Alamat email Anda",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Pilih akun dari daftar berikut",
"PROFILE_SETTINGS": "Pengaturan Profil",
"KEYBOARD_SHORTCUTS": "Shortcut Keyboard",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Keluar"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Ekkert svar",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Endurgjöf",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",

View file

@ -103,7 +103,9 @@
"Online",
"Busy",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Your email address",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Veldu reikning úr eftirfarandi lista",
"PROFILE_SETTINGS": "Profile Settings",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Logout"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Nessuna risposta",
"RATING_TITLE": "Valutazione",
"FEEDBACK_TITLE": "Feedback",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Risolvi",
"REOPEN_ACTION": "Riapri",

View file

@ -103,7 +103,9 @@
"Online",
"Occupato",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Il tuo indirizzo email",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Seleziona un account dal seguente elenco",
"PROFILE_SETTINGS": "Impostazioni profilo",
"KEYBOARD_SHORTCUTS": "Scorciatoie da tastiera",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Disconnettiti"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Categoria",
"CATEGORY_EMPTY_MESSAGE": "Nessuna categoria trovata"
},
"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": "Leggi i documenti"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "No response",
"RATING_TITLE": "評価",
"FEEDBACK_TITLE": "フィードバック",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "解決する",
"REOPEN_ACTION": "再開する",

View file

@ -103,7 +103,9 @@
"オンライン",
"取り込み中",
"オフライン"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "あなたのメールアドレス",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "次のリストからアカウントを選択してください",
"PROFILE_SETTINGS": "プロフィール設定",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "ログアウト"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

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

View file

@ -103,7 +103,9 @@
"Online",
"Busy",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Your email address",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Select an account from the following list",
"PROFILE_SETTINGS": "Profile Settings",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Logout"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "응답없음",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "해결함",
"REOPEN_ACTION": "다시 열기",

View file

@ -103,7 +103,9 @@
"온라인",
"바쁨",
"오프라인"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "이메일 주소",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "다음 목록에서 계정 선택",
"PROFILE_SETTINGS": "프로필 설정",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "로그아웃"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

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

View file

@ -103,7 +103,9 @@
"Online",
"Busy",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Your email address",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Select an account from the following list",
"PROFILE_SETTINGS": "Profile Settings",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Logout"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Nav atbildes",
"RATING_TITLE": "Vērtējums",
"FEEDBACK_TITLE": "Atsauksmes",
"CARD": {
"SHOW_LABELS": "Rādīt etiķetes",
"HIDE_LABELS": "Slēpt etiķetes"
},
"HEADER": {
"RESOLVE_ACTION": "Atrisināt",
"REOPEN_ACTION": "Atkārtoti atvērt",

View file

@ -103,7 +103,9 @@
"Tiešsaistē",
"Aizņemts",
"Bezsaistē"
]
],
"SET_AVAILABILITY_SUCCESS": "Pieejamība ir veiksmīgi iestatīta",
"SET_AVAILABILITY_ERROR": "Nevarēja iestatīt pieejamību. Lūdzu, mēģiniet vēlreiz"
},
"EMAIL": {
"LABEL": "Jūsu e-pasta adrese",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Izvēlieties kontu no šī saraksta",
"PROFILE_SETTINGS": "Profila Iestatījumi",
"KEYBOARD_SHORTCUTS": "Tastatūras Īsinājumtaustiņi",
"SUPER_ADMIN_CONSOLE": "Superadministratora Konsole",
"LOGOUT": "Izrakstīties"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Kategorija",
"CATEGORY_EMPTY_MESSAGE": "Kategorijas nav atrastas"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Automātiski atzīmēt bezsaistē",
"INFO_TEXT": "Ļaut sistēmai, kad neizmantojat lietotni vai informācijas paneli, automātiski atzīmēt Jūs bezsaistē."
},
"DOCS": "Lasīt dokumentus"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "No response",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "പരിഹരിക്കുക",
"REOPEN_ACTION": "വീണ്ടും തുറക്കുക",

View file

@ -103,7 +103,9 @@
"ഓൺ‌ലൈൻ",
"തിരക്ക്",
"ഓഫ്‌ലൈൻ"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "നിങ്ങളുടെ ഇമെയിൽ വിലാസം",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "ഇനിപ്പറയുന്ന ലിസ്റ്റിൽ നിന്ന് ഒരു അക്കൗണ്ട് തിരഞ്ഞെടുക്കുക",
"PROFILE_SETTINGS": "പ്രൊഫൈൽ ക്രമീകരണങ്ങൾ",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "ലോഗൗട്ട്"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

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

View file

@ -103,7 +103,9 @@
"Online",
"Busy",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Your email address",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Select an account from the following list",
"PROFILE_SETTINGS": "Profile Settings",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Logout"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

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

View file

@ -103,7 +103,9 @@
"Online",
"Busy",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Your email address",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Select an account from the following list",
"PROFILE_SETTINGS": "Profile Settings",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Logout"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

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

View file

@ -103,7 +103,9 @@
"Online",
"Busy",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Uw e-mailadres",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Select an account from the following list",
"PROFILE_SETTINGS": "Profiel instellingen",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Afmelden"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "No response",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Løs",
"REOPEN_ACTION": "Gjenåpne",

View file

@ -103,7 +103,9 @@
"Pålogget",
"Opptatt",
"Frakoblet"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Din e-postadresse",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Velg en konto fra følgende liste",
"PROFILE_SETTINGS": "Brukerinnstillinger",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Logg ut"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Brak odpowiedzi",
"RATING_TITLE": "Ocena",
"FEEDBACK_TITLE": "Opinia",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Rozwiąż",
"REOPEN_ACTION": "Otwórz ponownie",

View file

@ -103,7 +103,9 @@
"Online",
"Zajęty",
"Offline"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Twój adres e-mail",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Select an account from the following list",
"PROFILE_SETTINGS": "Ustawienia profilu",
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Wyloguj się"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Sem resposta",
"RATING_TITLE": "Avaliar",
"FEEDBACK_TITLE": "Opiniões",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Resolver",
"REOPEN_ACTION": "Reabrir",

View file

@ -103,7 +103,9 @@
"Disponível",
"Ocupado",
"Ausente"
]
],
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
},
"EMAIL": {
"LABEL": "Seu endereço de e-mail",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Escolha uma conta da lista a seguir",
"PROFILE_SETTINGS": "Configurações do perfil",
"KEYBOARD_SHORTCUTS": "Atalhos do teclado",
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
"LOGOUT": "Desconectar"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Category",
"CATEGORY_EMPTY_MESSAGE": "No categories found"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
},
"DOCS": "Read docs"
},
"BILLING_SETTINGS": {

View file

@ -41,6 +41,10 @@
"NO_RESPONSE": "Sem resposta",
"RATING_TITLE": "Classificação",
"FEEDBACK_TITLE": "Feedback",
"CARD": {
"SHOW_LABELS": "Show labels",
"HIDE_LABELS": "Hide labels"
},
"HEADER": {
"RESOLVE_ACTION": "Resolver",
"REOPEN_ACTION": "Reabrir",

View file

@ -134,7 +134,7 @@
"PHONE_NUMBER": {
"LABEL": "Número de telefone",
"PLACEHOLDER": "Por favor, insira o número de telefone do qual a mensagem será enviada.",
"ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
"ERROR": "Por favor, forneça um número de telefone válido que começa com uma placa `+` e não contém quaisquer espaços."
},
"API_CALLBACK": {
"TITLE": "URL de retorno",
@ -185,7 +185,7 @@
"PHONE_NUMBER": {
"LABEL": "Número de telefone",
"PLACEHOLDER": "Por favor, insira o número de telefone do qual a mensagem será enviada.",
"ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
"ERROR": "Por favor, forneça um número de telefone válido que começa com uma placa `+` e não contém quaisquer espaços."
},
"SUBMIT_BUTTON": "Criar canal de banda",
"API": {
@ -214,7 +214,7 @@
"PHONE_NUMBER": {
"LABEL": "Número de telefone",
"PLACEHOLDER": "Por favor, insira o número de telefone do qual a mensagem será enviada.",
"ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
"ERROR": "Por favor, forneça um número de telefone válido que começa com uma placa `+` e não contém quaisquer espaços."
},
"PHONE_NUMBER_ID": {
"LABEL": "ID do número de telefone",

View file

@ -103,7 +103,9 @@
"Disponível",
"Ocupado",
"Desconectado"
]
],
"SET_AVAILABILITY_SUCCESS": "Disponibilidade foi definida com sucesso",
"SET_AVAILABILITY_ERROR": "Não foi possível definir a disponibilidade, por favor tente novamente"
},
"EMAIL": {
"LABEL": "Seu e-mail",
@ -134,6 +136,7 @@
"SELECTOR_SUBTITLE": "Selecione uma conta da lista a seguir",
"PROFILE_SETTINGS": "Configurações do Perfil",
"KEYBOARD_SHORTCUTS": "Atalhos do teclado",
"SUPER_ADMIN_CONSOLE": "Console de Super Admin",
"LOGOUT": "Sair"
},
"APP_GLOBAL": {
@ -226,6 +229,10 @@
"CATEGORY": "Categoria",
"CATEGORY_EMPTY_MESSAGE": "Nenhuma categoria encontrada"
},
"SET_AUTO_OFFLINE": {
"TEXT": "Marcar offline automaticamente",
"INFO_TEXT": "Deixe o sistema marcar você automaticamente quando você não estiver usando o app ou o painel de controle."
},
"DOCS": "Ler documentos"
},
"BILLING_SETTINGS": {

View file

@ -2,13 +2,13 @@
"REGISTER": {
"TRY_WOOT": "Registre uma conta",
"TITLE": "Registrar",
"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.",
"TESTIMONIAL_HEADER": "Tudo o que ele leva é um passo para avançar",
"TESTIMONIAL_CONTENT": "Você está a um passo de engajar seus clientes, mantê-los e encontrar novos.",
"TERMS_ACCEPT": "Ao se inscrever, você concorda com nossa <a href=\"https://www.chatwoot.com/terms\">T & C</a> e <a href=\"https://www.chatwoot.com/privacy-policy\">Política de privacidade</a>",
"COMPANY_NAME": {
"LABEL": "Company name",
"PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
"ERROR": "Company name is too short"
"LABEL": "Nome Empresa",
"PLACEHOLDER": "Digite seu nome da empresa. por exemplo: Wayne Enterprises",
"ERROR": "O nome da empresa é muito curto"
},
"FULL_NAME": {
"LABEL": "Nome Completo",
@ -18,7 +18,7 @@
"EMAIL": {
"LABEL": "E-mail comercial",
"PLACEHOLDER": "Digite seu endereço de e-mail de trabalho. por exemplo: bruce@wayne.Business",
"ERROR": "Please enter a valid work email address"
"ERROR": "Por favor, insira um endereço de e-mail de trabalho válido"
},
"PASSWORD": {
"LABEL": "Senha",

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