Merge branch 'develop' of github.com:chatwoot/chatwoot into feature/cw-1605

This commit is contained in:
Shivam Mishra
2023-05-09 13:30:38 +05:30
359 changed files with 5192 additions and 2278 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ defaults: &defaults
working_directory: ~/build
docker:
# specify the version you desire here
- image: cimg/ruby:3.1.3-browsers
- image: cimg/ruby:3.2.2-browsers
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
+1 -1
View File
@@ -30,7 +30,7 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
npm
# Install rbenv and ruby
ARG RUBY_VERSION="3.1.3"
ARG RUBY_VERSION="3.2.2"
RUN git clone https://github.com/rbenv/rbenv.git ~/.rbenv \
&& echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc \
&& echo 'eval "$(rbenv init -)"' >> ~/.bashrc
+7
View File
@@ -67,3 +67,10 @@ test/cypress/videos/*
# yalc for local testing
.yalc
yalc.lock
/public/packs
/public/packs-test
/node_modules
/yarn-error.log
yarn-debug.log*
.yarn-integrity
+33
View File
@@ -164,6 +164,39 @@ Performance/CollectionLiteralInLoop:
- 'db/migrate/20210315101919_enable_email_channel.rb'
RSpec/NamedSubject:
Enabled: false
Style/RedundantConstantBase:
Enabled: false
Rails/RootPathnameMethods:
Enabled: false
RSpec/Rails/MinitestAssertions:
Enabled: false
RSpec/Rails/InferredSpecType:
Enabled: false
RSpec/IndexedLet:
Enabled: false
RSpec/MatchArray:
Enabled: false
Rails/ResponseParsedBody:
Enabled: false
RSpec/FactoryBot/ConsistentParenthesesStyle:
Enabled: false
Rails/ThreeStateBooleanColumn:
Enabled: false
Rails/Pluck:
Enabled: false
Rails/TopLevelHashWithIndifferentAccess:
Enabled: false
Rails/ActionOrder:
Enabled: false
Style/ArrayIntersect:
Enabled: false
RSpec/NoExpectationExample:
Enabled: false
Style/RedundantReturn:
Enabled: false
Rails/I18nLocaleTexts:
Enabled: false
# we should bring this down
RSpec/MultipleMemoizedHelpers:
Max: 14
+1 -1
View File
@@ -1 +1 @@
3.1.3
3.2.2
+1
View File
@@ -0,0 +1 @@
/spec
+25 -22
View File
@@ -1,10 +1,10 @@
source 'https://rubygems.org'
ruby '3.1.3'
ruby '3.2.2'
##-- base gems for rails --##
gem 'rack-cors', require: 'rack/cors'
gem 'rails', '~> 6.1', '>= 6.1.7.3'
gem 'rails', '~> 7'
# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', require: false
@@ -36,19 +36,19 @@ gem 'json_schemer'
# Rack middleware for blocking & throttling abusive requests
gem 'rack-attack'
# a utility tool for streaming, flexible and safe downloading of remote files
gem 'down', '~> 5.0'
gem 'down'
# authentication type to fetch and send mail over oauth2.0
gem 'gmail_xoauth'
# Prevent CSV injection
gem 'csv-safe'
# Support message translation
gem 'google-cloud-translate'
##-- for active storage --##
gem 'aws-sdk-s3', require: false
gem 'azure-storage-blob', require: false
# original gem isn't maintained actively
# we wanted updated version of faraday which is a dependency for slack-ruby-client
gem 'azure-storage-blob', git: 'https://github.com/chatwoot/azure-storage-ruby', branch: 'chatwoot', require: false
gem 'google-cloud-storage', require: false
gem 'image_processing', '~> 1.12.2'
gem 'image_processing'
##-- gems for database --#
gem 'groupdate'
@@ -62,13 +62,13 @@ gem 'activerecord-import'
gem 'dotenv-rails'
gem 'foreman'
gem 'puma'
gem 'webpacker', '~> 5.4', '>= 5.4.3'
gem 'webpacker'
# metrics on heroku
gem 'barnes'
##--- gems for authentication & authorization ---##
gem 'devise'
gem 'devise-secure_password', '~> 2.0', git: 'https://github.com/chatwoot/devise-secure_password'
gem 'devise-secure_password', git: 'https://github.com/chatwoot/devise-secure_password', branch: 'chatwoot'
gem 'devise_token_auth'
# authorization
gem 'jwt'
@@ -81,7 +81,6 @@ gem 'administrate'
gem 'wisper', '2.0.0'
##--- gems for channels ---##
# TODO: bump up gem to 2.0
gem 'facebook-messenger'
gem 'line-bot-api'
gem 'twilio-ruby', '~> 5.66'
@@ -91,9 +90,14 @@ gem 'twitty', '~> 0.1.5'
# facebook client
gem 'koala'
# slack client
gem 'slack-ruby-client'
gem 'slack-ruby-client', '~> 2.0.0'
# for dialogflow integrations
gem 'google-cloud-dialogflow'
gem 'google-cloud-dialogflow-v2'
gem 'grpc'
# Translate integrations
# 'google-cloud-translate' gem depends on faraday 2.0 version
# this dependency breaks the slack-ruby-client gem
gem 'google-cloud-translate-v3'
##-- apm and error monitoring ---#
# loaded only when environment variables are set.
@@ -108,9 +112,9 @@ gem 'sentry-ruby', require: false
gem 'sentry-sidekiq', require: false
##-- background job processing --##
gem 'sidekiq', '~> 6.4.2'
gem 'sidekiq'
# We want cron jobs
gem 'sidekiq-cron', '~> 1.6', '>= 1.6.0'
gem 'sidekiq-cron'
##-- Push notification service --##
gem 'fcm'
@@ -129,7 +133,10 @@ gem 'procore-sift'
# parse email
gem 'email_reply_trimmer'
gem 'html2text'
# TODO: we might have to fork this gem since 0.3.1 has hard depency on nokogir 1.10.
# and this gem hasn't been updated for a while.
gem 'html2text', git: 'https://github.com/chatwoot/html2text_ruby', branch: 'chatwoot'
# to calculate working hours
gem 'working_hours'
@@ -144,11 +151,6 @@ gem 'stripe'
## to populate db with sample data
gem 'faker'
# Can remove this in rails 7
gem 'net-imap', require: false
gem 'net-pop', require: false
gem 'net-smtp', require: false
# Include logrange conditionally in intializer using env variable
gem 'lograge', '~> 0.12.0', require: false
@@ -174,6 +176,7 @@ group :development do
gem 'annotate'
gem 'bullet'
gem 'letter_opener'
gem 'scss_lint', require: false
gem 'web-console'
# used in swagger build
@@ -189,7 +192,7 @@ end
group :test do
# Cypress in rails.
gem 'cypress-on-rails', '~> 1.13', '>= 1.13.1'
gem 'cypress-on-rails'
# fast cleaning of database
gem 'database_cleaner'
# mock http calls
@@ -211,7 +214,7 @@ group :development, :test do
gem 'mock_redis'
gem 'pry-rails'
gem 'rspec_junit_formatter'
gem 'rspec-rails', '~> 5.0.3'
gem 'rspec-rails'
gem 'rubocop', require: false
gem 'rubocop-performance', require: false
gem 'rubocop-rails', require: false
+335 -319
View File
File diff suppressed because it is too large Load Diff
@@ -30,7 +30,7 @@ class Api::V1::Accounts::PortalsController < Api::V1::Accounts::BaseController
ActiveRecord::Base.transaction do
@portal.update!(portal_params) if params[:portal].present?
# @portal.custom_domain = parsed_custom_domain
process_attached_logo
process_attached_logo if params[:blob_id].present?
rescue StandardError => e
Rails.logger.error e
render json: { error: @portal.errors.messages }.to_json, status: :unprocessable_entity
+1 -1
View File
@@ -3,7 +3,7 @@ class ApiController < ApplicationController
def index
render json: { version: Chatwoot.config[:version],
timestamp: Time.now.utc.to_formatted_s(:db),
timestamp: Time.now.utc.to_fs(:db),
queue_services: redis_status,
data_services: postgres_status }
end
+1 -1
View File
@@ -41,7 +41,7 @@ class WidgetsController < ActionController::Base
source_id: @auth_token_params[:source_id]
)
@contact = @contact_inbox ? @contact_inbox.contact : nil
@contact = @contact_inbox&.contact
end
def build_contact
@@ -14,6 +14,7 @@ class ConversationApi extends ApiClient {
labels,
teamId,
conversationType,
sortBy,
}) {
return axios.get(this.url, {
params: {
@@ -24,6 +25,7 @@ class ConversationApi extends ApiClient {
page,
labels,
conversation_type: conversationType,
sort_by: sortBy,
},
});
}
@@ -95,10 +95,6 @@
align-items: center;
justify-content: space-between;
padding: 0 var(--space-normal);
.page-title {
margin-bottom: 0;
}
}
.content-box {
@@ -11,15 +11,23 @@
class="chat-list__top"
:class="{ filter__applied: hasAppliedFiltersOrActiveFolders }"
>
<h1 class="page-title text-truncate" :title="pageTitle">
{{ pageTitle }}
</h1>
<div class="filter--actions">
<chat-filter
<div class="flex-center chat-list__title">
<h1
class="page-sub-title text-truncate margin-bottom-0"
:title="pageTitle"
>
{{ pageTitle }}
</h1>
<span
v-if="!hasAppliedFiltersOrActiveFolders"
@statusFilterChange="updateStatusType"
/>
class="conversation--status-pill"
>
{{
this.$t(`CHAT_LIST.CHAT_STATUS_FILTER_ITEMS.${activeStatus}.TEXT`)
}}
</span>
</div>
<div class="filter--actions">
<div v-if="hasAppliedFilters && !hasActiveFolders">
<woot-button
v-tooltip.top-end="$t('FILTER.CUSTOM_VIEWS.ADD.SAVE_BUTTON')"
@@ -48,7 +56,6 @@
@click="onClickOpenDeleteFoldersModal"
/>
</div>
<woot-button
v-else
v-tooltip.right="$t('FILTER.TOOLTIP_LABEL')"
@@ -58,6 +65,10 @@
size="tiny"
@click="onToggleAdvanceFiltersModal"
/>
<conversation-basic-filter
v-if="!hasAppliedFiltersOrActiveFolders"
@changeFilter="onBasicFilterChange"
/>
</div>
</div>
@@ -167,8 +178,8 @@
<script>
import { mapGetters } from 'vuex';
import ChatFilter from './widgets/conversation/ChatFilter';
import ConversationAdvancedFilter from './widgets/conversation/ConversationAdvancedFilter';
import ConversationBasicFilter from './widgets/conversation/ConversationBasicFilter';
import ChatTypeTabs from './widgets/ChatTypeTabs';
import ConversationCard from './widgets/conversation/ConversationCard';
import timeMixin from '../mixins/time';
@@ -199,10 +210,10 @@ export default {
AddCustomViews,
ChatTypeTabs,
ConversationCard,
ChatFilter,
ConversationAdvancedFilter,
DeleteCustomViews,
ConversationBulkActions,
ConversationBasicFilter,
},
mixins: [
timeMixin,
@@ -245,6 +256,7 @@ export default {
return {
activeAssigneeTab: wootConstants.ASSIGNEE_TYPE.ME,
activeStatus: wootConstants.STATUS_TYPE.OPEN,
activeSortBy: wootConstants.SORT_BY_TYPE.LATEST,
showAdvancedFilters: false,
advancedFilterTypes: advancedFilterTypes.map(filter => ({
...filter,
@@ -364,6 +376,7 @@ export default {
inboxId: this.conversationInbox ? this.conversationInbox : undefined,
assigneeType: this.activeAssigneeTab,
status: this.activeStatus,
sortBy: this.activeSortBy,
page: this.conversationListPagination,
labels: this.label ? [this.label] : undefined,
teamId: this.teamId || undefined,
@@ -479,7 +492,8 @@ export default {
},
},
mounted() {
this.$store.dispatch('setChatFilter', this.activeStatus);
this.$store.dispatch('setChatStatusFilter', this.activeStatus);
this.$store.dispatch('setChatSortFilter', this.activeSortBy);
this.resetAndFetchData();
bus.$on('fetch_conversation_stats', () => {
@@ -625,11 +639,13 @@ export default {
this.selectedConversations = [];
this.selectedInboxes = [];
},
updateStatusType(index) {
if (this.activeStatus !== index) {
this.activeStatus = index;
this.resetAndFetchData();
onBasicFilterChange(value, type) {
if (type === 'status') {
this.activeStatus = value;
} else {
this.activeSortBy = value;
}
this.resetAndFetchData();
},
openLastSavedItemInFolder() {
const lastItemOfFolder = this.folders[this.folders.length - 1];
@@ -878,11 +894,15 @@ export default {
&.list--full-width {
flex-basis: 100%;
}
.page-sub-title {
font-size: var(--font-size-two);
}
}
.filter--actions {
display: flex;
align-items: center;
gap: var(--space-micro);
gap: var(--space-smaller);
}
.filter__applied {
@@ -899,4 +919,19 @@ export default {
}
}
}
.conversation--status-pill {
background: var(--color-background);
border-radius: var(--border-radius-small);
color: var(--color-medium-gray);
font-size: var(--font-size-micro);
font-weight: var(--font-weight-medium);
margin: var(--space-micro) var(--space-small) 0;
padding: var(--space-smaller);
text-transform: capitalize;
}
.chat-list__title {
max-width: 85%;
}
</style>
@@ -157,6 +157,7 @@ const settings = accountId => ({
hasSubMenu: false,
toState: frontendURL(`accounts/${accountId}/settings/audit-log/list`),
toStateName: 'auditlogs_list',
featureFlag: FEATURE_FLAGS.AUDIT_LOGS,
beta: true,
},
],
@@ -38,8 +38,8 @@ export default {
this.onTabChange();
},
onTabChange() {
this.$store.dispatch('setChatFilter', this.activeStatus);
this.$emit('statusFilterChange', this.activeStatus);
this.$store.dispatch('setChatStatusFilter', this.activeStatus);
this.$emit('onChangeFilter', this.activeStatus);
},
},
};
@@ -0,0 +1,122 @@
<template>
<div class="position-relative">
<woot-button
v-tooltip.right="$t('CHAT_LIST.SORT_TOOLTIP_LABEL')"
variant="smooth"
size="tiny"
color-scheme="secondary"
class="selector-button"
icon="sort-icon"
@click="toggleDropdown"
/>
<div
v-if="showActionsDropdown"
v-on-clickaway="closeDropdown"
class="dropdown-pane dropdown-pane--open basic-filter"
>
<div class="filter__item">
<span>{{ this.$t('CHAT_LIST.CHAT_SORT.STATUS') }}</span>
<filter-item
type="status"
:selected-value="chatStatus"
:items="chatStatusItems"
path-prefix="CHAT_LIST.CHAT_STATUS_FILTER_ITEMS"
@onChangeFilter="onChangeFilter"
/>
</div>
<div class="filter__item">
<span>{{ this.$t('CHAT_LIST.CHAT_SORT.ORDER_BY') }}</span>
<filter-item
type="sort"
:selected-value="chatSortFilter"
:items="chatSortItems"
path-prefix="CHAT_LIST.CHAT_SORT_FILTER_ITEMS"
@onChangeFilter="onChangeFilter"
/>
</div>
</div>
</div>
</template>
<script>
import wootConstants from 'dashboard/constants/globals';
import { mapGetters } from 'vuex';
import { mixin as clickaway } from 'vue-clickaway';
import FilterItem from './FilterItem';
export default {
components: {
FilterItem,
},
mixins: [clickaway],
data() {
return {
showActionsDropdown: false,
chatStatusItems: this.$t('CHAT_LIST.CHAT_STATUS_FILTER_ITEMS'),
chatSortItems: this.$t('CHAT_LIST.CHAT_SORT_FILTER_ITEMS'),
};
},
computed: {
...mapGetters({
chatStatusFilter: 'getChatStatusFilter',
chatSortFilter: 'getChatSortFilter',
}),
chatStatus() {
return this.chatStatusFilter || wootConstants.STATUS_TYPE.OPEN;
},
sortFilter() {
return this.chatSortFilter || wootConstants.SORT_BY_TYPE.LATEST;
},
},
methods: {
onTabChange(value) {
this.$emit('changeFilter', value);
this.closeDropdown();
},
toggleDropdown() {
this.showActionsDropdown = !this.showActionsDropdown;
},
closeDropdown() {
this.showActionsDropdown = false;
},
onChangeFilter(type, value) {
this.$emit('changeFilter', type, value);
},
},
};
</script>
<style lang="scss" scoped>
.basic-filter {
margin-top: var(--space-smaller);
padding: var(--space-normal);
right: 0;
width: 21rem;
span {
font-size: var(--font-size-small);
font-weight: var(--font-weight-medium);
}
.filter__item {
align-items: center;
display: flex;
justify-content: space-between;
&:last-child {
margin-top: var(--space-normal);
}
span {
font-size: var(--font-size-mini);
}
}
}
.icon {
margin-right: var(--space-smaller);
}
.dropdown-icon {
margin-left: var(--space-smaller);
}
</style>
@@ -0,0 +1,55 @@
<template>
<select v-model="activeValue" class="status--filter" @change="onTabChange()">
<option v-for="(value, status) in items" :key="status" :value="status">
{{ $t(`${pathPrefix}.${status}.TEXT`) }}
</option>
</select>
</template>
<script>
export default {
props: {
selectedValue: {
type: String,
required: true,
},
items: {
type: Object,
required: true,
},
type: {
type: String,
required: true,
},
pathPrefix: {
type: String,
required: true,
},
},
data() {
return {
activeValue: this.selectedValue,
};
},
methods: {
onTabChange() {
if (this.type === 'status') {
this.$store.dispatch('setChatStatusFilter', this.activeValue);
} else {
this.$store.dispatch('setChatSortFilter', this.activeValue);
}
this.$emit('onChangeFilter', this.activeValue, this.type);
},
},
};
</script>
<style lang="scss" scoped>
.status--filter {
background-color: var(--color-background-light);
border: 1px solid var(--color-border);
font-size: var(--font-size-mini);
height: var(--space-medium);
margin: 0 var(--space-smaller);
padding: 0 var(--space-medium) 0 var(--space-small);
width: 126px;
}
</style>
@@ -1,6 +1,6 @@
<template>
<div v-on-clickaway="onCloseAgentList" class="bulk-action__agents">
<div class="triangle" :style="cssVars">
<div class="triangle">
<svg height="12" viewBox="0 0 24 12" width="24">
<path
d="M20 12l-8-8-12 12"
@@ -104,14 +104,13 @@ import { mapGetters } from 'vuex';
import Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';
import Spinner from 'shared/components/Spinner';
import { mixin as clickaway } from 'vue-clickaway';
import bulkActionsMixin from 'dashboard/mixins/bulkActionsMixin.js';
export default {
components: {
Thumbnail,
Spinner,
},
mixins: [clickaway, bulkActionsMixin],
mixins: [clickaway],
props: {
selectedInboxes: {
type: Array,
@@ -240,7 +239,7 @@ export default {
display: block;
z-index: var(--z-index-one);
position: absolute;
top: calc(var(--space-slab) * -1);
top: var(--space-minus-slab);
right: var(--triangle-position);
text-align: left;
}
@@ -58,7 +58,7 @@
<transition name="popover-animation">
<label-actions
v-if="showLabelActions"
triangle-position="8.5"
class="label-actions-box"
@assign="assignLabels"
@close="showLabelActions = false"
/>
@@ -66,12 +66,12 @@
<transition name="popover-animation">
<update-actions
v-if="showUpdateActions"
class="update-actions-box"
:selected-inboxes="selectedInboxes"
:conversation-count="conversations.length"
:show-resolve="!showResolvedAction"
:show-reopen="!showOpenAction"
:show-snooze="!showSnoozedAction"
triangle-position="5.6"
@update="updateConversations"
@close="showUpdateActions = false"
/>
@@ -79,9 +79,9 @@
<transition name="popover-animation">
<agent-selector
v-if="showAgentsList"
class="agent-actions-box"
:selected-inboxes="selectedInboxes"
:conversation-count="conversations.length"
triangle-position="2.8"
@select="submit"
@close="showAgentsList = false"
/>
@@ -89,7 +89,7 @@
<transition name="popover-animation">
<team-actions
v-if="showTeamsList"
triangle-position="0.2"
class="team-actions-box"
@assign-team="assignTeam"
@close="showTeamsList = false"
/>
@@ -247,4 +247,17 @@ export default {
opacity: 0;
transform: scale(0.95);
}
.label-actions-box {
--triangle-position: 8.5rem;
}
.update-actions-box {
--triangle-position: 5.6rem;
}
.agent-actions-box {
--triangle-position: 2.8rem;
}
.team-actions-box {
--triangle-position: 0.2rem;
}
</style>
@@ -1,6 +1,6 @@
<template>
<div v-on-clickaway="onClose" class="labels-container">
<div class="triangle" :style="cssVars">
<div class="triangle">
<svg height="12" viewBox="0 0 24 12" width="24">
<path
d="M20 12l-8-8-12 12"
@@ -75,10 +75,9 @@
<script>
import { mixin as clickaway } from 'vue-clickaway';
import { mapGetters } from 'vuex';
import bulkActionsMixin from 'dashboard/mixins/bulkActionsMixin.js';
export default {
mixins: [clickaway, bulkActionsMixin],
mixins: [clickaway],
data() {
return {
query: '',
@@ -207,7 +206,7 @@ export default {
position: absolute;
right: var(--triangle-position);
text-align: left;
top: calc(var(--space-slab) * -1);
top: var(--space-minus-slab);
z-index: var(--z-index-one);
}
}
@@ -1,6 +1,6 @@
<template>
<div v-on-clickaway="onClose" class="bulk-action__teams">
<div class="triangle" :style="cssVars">
<div class="triangle">
<svg height="12" viewBox="0 0 24 12" width="24">
<path
d="M20 12l-8-8-12 12"
@@ -59,9 +59,8 @@
<script>
import { mixin as clickaway } from 'vue-clickaway';
import { mapGetters } from 'vuex';
import bulkActionsMixin from 'dashboard/mixins/bulkActionsMixin.js';
export default {
mixins: [clickaway, bulkActionsMixin],
mixins: [clickaway],
data() {
return {
query: '',
@@ -141,7 +140,7 @@ export default {
display: block;
z-index: var(--z-index-one);
position: absolute;
top: calc(var(--space-slab) * -1);
top: var(--space-minus-slab);
right: var(--triangle-position);
text-align: left;
}
@@ -1,6 +1,6 @@
<template>
<div v-on-clickaway="onClose" class="actions-container">
<div class="triangle" :style="cssVars">
<div class="triangle">
<svg height="12" viewBox="0 0 24 12" width="24">
<path
d="M20 12l-8-8-12 12"
@@ -45,14 +45,13 @@
import { mixin as clickaway } from 'vue-clickaway';
import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem.vue';
import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu.vue';
import bulkActionsMixin from 'dashboard/mixins/bulkActionsMixin.js';
export default {
components: {
WootDropdownItem,
WootDropdownMenu,
},
mixins: [clickaway, bulkActionsMixin],
mixins: [clickaway],
props: {
selectedInboxes: {
type: Array,
@@ -156,7 +155,7 @@ export default {
position: absolute;
right: var(--triangle-position);
text-align: left;
top: calc(var(--space-slab) * -1);
top: var(--space-minus-slab);
z-index: var(--z-index-one);
}
}
@@ -12,6 +12,10 @@ export default {
SNOOZED: 'snoozed',
ALL: 'all',
},
SORT_BY_TYPE: {
LATEST: 'latest',
CREATED_AT: 'sort_on_created_at',
},
ARTICLE_STATUS_TYPES: {
DRAFT: 0,
PUBLISH: 1,
+1
View File
@@ -15,4 +15,5 @@ export const FEATURE_FLAGS = {
REPORTS: 'reports',
TEAM_MANAGEMENT: 'team_management',
VOICE_RECORDER: 'voice_recorder',
AUDIT_LOGS: 'audit_logs',
};
@@ -105,8 +105,16 @@ class ActionCableConnector extends BaseActionCableConnector {
onLogout = () => AuthAPI.logout();
onMessageCreated = data => {
const {
conversation: { last_activity_at: lastActivityAt },
conversation_id: conversationId,
} = data;
DashboardAudioNotificationHelper.onNewMessage(data);
this.app.$store.dispatch('addMessage', data);
this.app.$store.dispatch('updateConversationLastActivity', {
lastActivityAt,
conversationId,
});
};
onReload = () => window.location.reload();
@@ -35,6 +35,20 @@
"TEXT": "الكل"
}
},
"VIEW_FILTER": "عرض",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "الحالة",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "تم إنشاؤها في"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "رسالة صورة"
@@ -55,6 +69,24 @@
"CONTENT": "قام بمشاركة رابط"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "ترتيب حسب",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "تم إنشاؤها في",
"LABEL": "تم إنشاؤها في"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "تم تلقيه عبر البريد الإلكتروني",
"VIEW_TWEET_IN_TWITTER": "عرض التغريدة في تويتر",
"REPLY_TO_TWEET": "الرد على هذه التغريدة",
@@ -464,6 +464,7 @@
"AUTO_ASSIGNMENT_SUB_TEXT": "تمكين أو تعطيل الإسناد التلقائي للمحادثات الجديدة إلى الموظفين المضافين إلى قناة التواصل هذه.",
"HMAC_VERIFICATION": "التحقق من هوية المستخدم",
"HMAC_DESCRIPTION": "من أجل التحقق من هوية المستخدم، يمكنك تمرير 'IDer_hash` لكل مستخدم. يمكنك إنشاء تجزئة HMAC sha256 باستخدام \"المعرف\" مع المفتاح المعروض هنا.",
"HMAC_LINK_TO_DOCS": "You can read more here.",
"HMAC_MANDATORY_VERIFICATION": "فرض التحقق من هوية المستخدم",
"HMAC_MANDATORY_DESCRIPTION": "في حالة التمكين، سيتم رفض الطلبات المفقودة 'IDer_hash'.",
"INBOX_IDENTIFIER": "معرف صندوق الوارد",
@@ -35,6 +35,20 @@
"TEXT": "Всички"
}
},
"VIEW_FILTER": "View",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "Статус",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "Създаден в"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "Съобщение със снимка"
@@ -55,6 +69,24 @@
"CONTENT": "сподели линк"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "Sort by",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "Създаден в",
"LABEL": "Създаден в"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "Получено чрез имейл",
"VIEW_TWEET_IN_TWITTER": "Виж туита в Twitter",
"REPLY_TO_TWEET": "Отговори на този туит",
@@ -464,6 +464,7 @@
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
"HMAC_VERIFICATION": "User Identity Validation",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
"HMAC_LINK_TO_DOCS": "You can read more here.",
"HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
"INBOX_IDENTIFIER": "Inbox Identifier",
@@ -35,6 +35,20 @@
"TEXT": "Totes"
}
},
"VIEW_FILTER": "Veure",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "Estat",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "Created at"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "Missatge d'imatge"
@@ -55,6 +69,24 @@
"CONTENT": "ha compartit una URL"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "Sort by",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "Created at",
"LABEL": "Created at"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "Rebut per correu electrònic",
"VIEW_TWEET_IN_TWITTER": "Veure el tuit a Twitter",
"REPLY_TO_TWEET": "Respon a aquest tuit",
@@ -464,6 +464,7 @@
"AUTO_ASSIGNMENT_SUB_TEXT": "Activa o desactiva l'assignació automàtica d'agents disponibles a les noves converses",
"HMAC_VERIFICATION": "Validació de la Identitat del Usuari",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
"HMAC_LINK_TO_DOCS": "You can read more here.",
"HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
"INBOX_IDENTIFIER": "Inbox Identifier",
@@ -35,6 +35,20 @@
"TEXT": "Vše"
}
},
"VIEW_FILTER": "Zobrazit",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "Stav",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "Created at"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "Zpráva obrázku"
@@ -55,6 +69,24 @@
"CONTENT": "sdílel URL"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "Seřadit podle",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "Created at",
"LABEL": "Created at"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "Obdrženo e-mailem",
"VIEW_TWEET_IN_TWITTER": "Zobrazit tweet na Twitteru",
"REPLY_TO_TWEET": "Odpovědět na tento tweet",
@@ -464,6 +464,7 @@
"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.",
"HMAC_VERIFICATION": "User Identity Validation",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
"HMAC_LINK_TO_DOCS": "You can read more here.",
"HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
"INBOX_IDENTIFIER": "Inbox Identifier",
@@ -35,6 +35,20 @@
"TEXT": "Alle"
}
},
"VIEW_FILTER": "Vis",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "Status",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "Oprettet den"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "Billedbesked"
@@ -55,6 +69,24 @@
"CONTENT": "har delt en URL"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "Sorter efter",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "Oprettet den",
"LABEL": "Oprettet den"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "Modtaget via e-mail",
"VIEW_TWEET_IN_TWITTER": "Se tweet på Twitter",
"REPLY_TO_TWEET": "Svar på dette tweet",
@@ -120,7 +120,7 @@
"PHONE_NUMBER": {
"PLACEHOLDER": "Indtast telefonnummeret på kontaktpersonen",
"LABEL": "Telefonnummer",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]. You can select the dial code from the dropdown.",
"HELP": "Telefonnummer skal være af E.164 format fx: +1415555555 [+] [landekode] [områdekode] [lokalt telefonnummer]",
"ERROR": "Telefonnummer skal være enten tomt eller i E.164-format",
"DIAL_CODE_ERROR": "Please select a dial code from the list",
"DUPLICATE": "Dette telefonnummer er i brug for en anden kontakt."
@@ -182,7 +182,7 @@
"LABEL": "Til"
},
"INBOX": {
"LABEL": "Via Inbox",
"LABEL": "Indbakke",
"PLACEHOLDER": "Choose source inbox",
"ERROR": "Vælg en indbakke"
},
@@ -464,6 +464,7 @@
"AUTO_ASSIGNMENT_SUB_TEXT": "Aktiver eller deaktiver automatisk tildeling af nye samtaler til agenter tilføjet til denne indbakke.",
"HMAC_VERIFICATION": "Bruger Identitetsvalidering",
"HMAC_DESCRIPTION": "For at validere brugerens identitet, kan du passere en `identifier_hash` for hver bruger. Du kan generere en HMAC sha256 hash ved hjælp af 'identifier' med nøglen vist her.",
"HMAC_LINK_TO_DOCS": "You can read more here.",
"HMAC_MANDATORY_VERIFICATION": "Gennemtving Validering Af Bruger Identitet",
"HMAC_MANDATORY_DESCRIPTION": "Hvis aktiveret, vil forespørgsler der mangler 'identifier_hash' blive afvist.",
"INBOX_IDENTIFIER": "Identifikator For Indbakke",
@@ -3,16 +3,16 @@
"TITLE": "Log ind på Chatwoot",
"EMAIL": {
"LABEL": "E-mail",
"PLACEHOLDER": "example@companyname.com"
"PLACEHOLDER": "E-mail, fx: navn@eksempel.dk"
},
"PASSWORD": {
"LABEL": "Adgangskode",
"PLACEHOLDER": "Adgangskode"
},
"API": {
"SUCCESS_MESSAGE": "Login successful",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again.",
"UNAUTH": "Username or password is incorrect. Please try again."
"SUCCESS_MESSAGE": "Login Lykkedes",
"ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere",
"UNAUTH": "Brugernavn / adgangskode forkert. Prøv igen"
},
"OAUTH": {
"GOOGLE_LOGIN": "Login with Google",
@@ -8,7 +8,7 @@
},
"API": {
"SUCCESS_MESSAGE": "Link til nulstilling af adgangskode er blevet sendt til din e-mail.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere"
},
"SUBMIT": "Send"
}
@@ -14,8 +14,8 @@
"EMPTY_STATE": "No %{item} found for query '%{query}'",
"EMPTY_STATE_FULL": "No results found for query '%{query}'",
"PLACEHOLDER_KEYBINDING": "/ to focus",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
"WROTE": "wrote:"
@@ -13,7 +13,7 @@
},
"API": {
"SUCCESS_MESSAGE": "Adgangskoden blev ændret.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere"
},
"CAPTCHA": {
"ERROR": "Bekræftelse er udløbet. Løs captcha igen."
@@ -10,33 +10,33 @@
},
"COMPANY_NAME": {
"LABEL": "Firmanavn",
"PLACEHOLDER": "Enter your company name. E.g., Wayne Enterprises",
"ERROR": "Firmanavn er for kort."
"PLACEHOLDER": "Indtast dit firmanavn, fx: Wayne Enterprises",
"ERROR": "Firmanavn er for kort"
},
"FULL_NAME": {
"LABEL": "Fulde navn",
"PLACEHOLDER": "Enter your full name. E.g., Bruce Wayne",
"ERROR": "Fulde navn er for kort."
"PLACEHOLDER": "Indtast dit fulde navn. fx: Bruce Wayne",
"ERROR": "Fulde navn er for kort"
},
"EMAIL": {
"LABEL": "Arbejde e-mail",
"PLACEHOLDER": "Enter your work email address. E.g., bruce@wayne.enterprises",
"ERROR": "Indtast venligst en gyldig arbejdsmail."
"PLACEHOLDER": "Indtast din arbejdsmailadresse fx: bruce@wayne.enterprises",
"ERROR": "Indtast venligst en gyldig arbejdsmail"
},
"PASSWORD": {
"LABEL": "Adgangskode",
"PLACEHOLDER": "Adgangskode",
"ERROR": "Adgangskoden er for kort.",
"IS_INVALID_PASSWORD": "Adgangskoden skal indeholde mindst 1 stort bogstav, 1 lille bogstav, 1 nummer og 1 specialtegn."
"ERROR": "Adgangskoden er for kort",
"IS_INVALID_PASSWORD": "Adgangskoden skal indeholde mindst 1 stort bogstav, 1 lille bogstav, 1 nummer og 1 specialtegn"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm password",
"PLACEHOLDER": "Confirm password",
"ERROR": "Adgangskode stemmer ikke overens."
"LABEL": "Bekræft Adgangskode",
"PLACEHOLDER": "Bekræft Adgangskode",
"ERROR": "Adgangskode stemmer ikke overens"
},
"API": {
"SUCCESS_MESSAGE": "Registrering Succesfuld",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere"
},
"SUBMIT": "Create account",
"HAVE_AN_ACCOUNT": "Har du allerede en konto?"
@@ -35,6 +35,20 @@
"TEXT": "Alle"
}
},
"VIEW_FILTER": "Aussicht",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "Status",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "Erstellt am"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "Bildnachricht"
@@ -55,6 +69,24 @@
"CONTENT": "hat eine URL geteilt"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "Sortieren nach",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "Erstellt am",
"LABEL": "Erstellt am"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "Per E-Mail empfangen",
"VIEW_TWEET_IN_TWITTER": "Tweet auf Twitter anzeigen",
"REPLY_TO_TWEET": "Auf diesen Tweet antworten",
@@ -120,7 +120,7 @@
"PHONE_NUMBER": {
"PLACEHOLDER": "Geben Sie die Telefonnummer des Kontakts ein",
"LABEL": "Telefonnummer",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]. You can select the dial code from the dropdown.",
"HELP": "Telefonnummer sollte im E.164-Format sein, z. B.: +1415555555 [+][Landesvorwahl][Landesvorwahl][Ortsvorwahl]",
"ERROR": "Telefonnummer muss leer sein oder im E.164-Format",
"DIAL_CODE_ERROR": "Please select a dial code from the list",
"DUPLICATE": "Diese Telefonnummer wird für einen anderen Kontakt verwendet."
@@ -182,7 +182,7 @@
"LABEL": "An"
},
"INBOX": {
"LABEL": "Via Inbox",
"LABEL": "Posteingang",
"PLACEHOLDER": "Choose source inbox",
"ERROR": "Posteingang auswählen"
},
@@ -464,6 +464,7 @@
"AUTO_ASSIGNMENT_SUB_TEXT": "Aktivieren oder deaktivieren Sie die automatische Zuweisung verfügbarer Agenten für neue Konversationen",
"HMAC_VERIFICATION": "Benutzeridentitätsüberprüfung",
"HMAC_DESCRIPTION": "Um die Identität des Benutzers zu validieren, können Sie für jeden Benutzer einen `identifier_hash` übergeben. Sie können einen HMAC sha256-Hash generieren, indem Sie den 'Bezeichner' mit dem hier gezeigten Schlüssel verwenden.",
"HMAC_LINK_TO_DOCS": "You can read more here.",
"HMAC_MANDATORY_VERIFICATION": "Erzwinge Benutzer-Identitätsüberprüfung",
"HMAC_MANDATORY_DESCRIPTION": "Wenn aktiviert, werden Anfragen, denen der `identifier_hash` fehlt, abgelehnt.",
"INBOX_IDENTIFIER": "Identifizierung für Posteingang",
@@ -3,16 +3,16 @@
"TITLE": "Melden Sie sich bei Chatwoot an",
"EMAIL": {
"LABEL": "E-Mail",
"PLACEHOLDER": "example@companyname.com"
"PLACEHOLDER": "E-Mail zB: jemand@example.com"
},
"PASSWORD": {
"LABEL": "Passwort",
"PLACEHOLDER": "Passwort"
},
"API": {
"SUCCESS_MESSAGE": "Login successful",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again.",
"UNAUTH": "Username or password is incorrect. Please try again."
"SUCCESS_MESSAGE": "Anmeldung erfolgreich",
"ERROR_MESSAGE": "Es konnte keine Verbindung zum Woot Server hergestellt werden. Bitte versuchen Sie es später erneut",
"UNAUTH": "Benutzername / Passwort falsch. Bitte versuche es erneut"
},
"OAUTH": {
"GOOGLE_LOGIN": "Login with Google",
@@ -8,7 +8,7 @@
},
"API": {
"SUCCESS_MESSAGE": "Der Link zum Zurücksetzen des Passworts wurde an Ihre E-Mail gesendet.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Es konnte keine Verbindung zum Woot Server hergestellt werden. Bitte versuchen Sie es später erneut"
},
"SUBMIT": "Einreichen"
}
@@ -14,8 +14,8 @@
"EMPTY_STATE": "No %{item} found for query '%{query}'",
"EMPTY_STATE_FULL": "No results found for query '%{query}'",
"PLACEHOLDER_KEYBINDING": "/ to focus",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
"WROTE": "wrote:"
@@ -13,7 +13,7 @@
},
"API": {
"SUCCESS_MESSAGE": "Das Passwort wurde erfolgreich geändert.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Es konnte keine Verbindung zum Woot Server hergestellt werden. Bitte versuchen Sie es später erneut"
},
"CAPTCHA": {
"ERROR": "Verifizierung abgelaufen. Bitte Captcha erneut lösen."
@@ -10,33 +10,33 @@
},
"COMPANY_NAME": {
"LABEL": "Firmenname",
"PLACEHOLDER": "Enter your company name. E.g., Wayne Enterprises",
"ERROR": "Firmenname ist zu kurz."
"PLACEHOLDER": "Geben Sie Ihren Firmennamen ein, z. B.: Wayne Enterprises",
"ERROR": "Firmenname ist zu kurz"
},
"FULL_NAME": {
"LABEL": "Vollständiger Name",
"PLACEHOLDER": "Enter your full name. E.g., Bruce Wayne",
"ERROR": "Vollständiger Name ist zu kurz."
"PLACEHOLDER": "Geben Sie Ihren vollständigen Namen ein, z. B.: Bruce Wayne",
"ERROR": "Vollständiger Name ist zu kurz"
},
"EMAIL": {
"LABEL": "Geschäftliche E-Mail-Adresse",
"PLACEHOLDER": "Enter your work email address. E.g., bruce@wayne.enterprises",
"ERROR": "Bitte geben Sie eine gültige Arbeits-E-Mail-Adresse ein."
"PLACEHOLDER": "Geben Sie Ihre geschäftliche E-Mail-Adresse ein, z. B.: bruce@wayne.enterprises",
"ERROR": "Bitte geben Sie eine gültige Arbeits-E-Mail-Adresse ein"
},
"PASSWORD": {
"LABEL": "Passwort",
"PLACEHOLDER": "Passwort",
"ERROR": "Das Passwort ist zu kurz.",
"IS_INVALID_PASSWORD": "Das Passwort sollte mindestens 1 Großbuchstaben, 1 Kleinbuchstaben, 1 Ziffer und 1 Sonderzeichen enthalten."
"ERROR": "Das Passwort ist zu kurz",
"IS_INVALID_PASSWORD": "Das Passwort sollte mindestens 1 Großbuchstaben, 1 Kleinbuchstaben, 1 Ziffer und 1 Sonderzeichen enthalten"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm password",
"PLACEHOLDER": "Confirm password",
"ERROR": "Passwort stimmt nicht überein."
"LABEL": "Bestätige das Passwort",
"PLACEHOLDER": "Bestätige das Passwort",
"ERROR": "Passwort stimmt nicht überein"
},
"API": {
"SUCCESS_MESSAGE": "Registrierung erfolgreich",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Es konnte keine Verbindung zum Woot Server hergestellt werden. Bitte versuchen Sie es später erneut"
},
"SUBMIT": "Konto erstellen",
"HAVE_AN_ACCOUNT": "Haben Sie bereits ein Konto?"
@@ -35,6 +35,20 @@
"TEXT": "Όλες"
}
},
"VIEW_FILTER": "Προβολή",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "Κατάσταση",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "Δημιουργήθηκε στις"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "Μήνυμα εικόνας"
@@ -55,6 +69,24 @@
"CONTENT": "έχει μοιράσει ένα σύνδεσμο"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "Ταξινόμηση κατά",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "Δημιουργήθηκε στις",
"LABEL": "Δημιουργήθηκε στις"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "Παραλήφθηκε από email",
"VIEW_TWEET_IN_TWITTER": "Προβολή του tweet στο Twitter",
"REPLY_TO_TWEET": "Απάντηση στο tweet",
@@ -120,7 +120,7 @@
"PHONE_NUMBER": {
"PLACEHOLDER": "Εισάγετε τον αριθμό τηλεφώνου της επαφής",
"LABEL": "Αριθμός Τηλεφώνου",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]. You can select the dial code from the dropdown.",
"HELP": "Ο αριθμός τηλεφώνου πρέπει να έχει μορφή E.164 π.χ.: +14155555 [+][κωδικός χώρας][κωδικός περιοχής][αριθμός τοπικού τηλεφώνου]",
"ERROR": "Ο αριθμός τηλεφώνου πρέπει να είναι είτε άδειος είτε με μορφή E.164",
"DIAL_CODE_ERROR": "Please select a dial code from the list",
"DUPLICATE": "Αυτός ο αριθμός τηλεφώνου χρησιμοποιείται σε άλλη επαφή."
@@ -182,7 +182,7 @@
"LABEL": "Προς"
},
"INBOX": {
"LABEL": "Via Inbox",
"LABEL": "Εισερχόμενα",
"PLACEHOLDER": "Choose source inbox",
"ERROR": "Επιλέξτε ένα κιβώτιο εισερχόμενων"
},
@@ -464,6 +464,7 @@
"AUTO_ASSIGNMENT_SUB_TEXT": "Ενεργοποιήστε ή απενεργοποιήστε την αυτόματη αντιστοίχιση των νέων συζητήσεων στους πράκτορες αυτού του κιβωτίου.",
"HMAC_VERIFICATION": "Επικύρωση Ταυτότητας Χρήστη",
"HMAC_DESCRIPTION": "Για λόγους επικύρωσης της ταυτότητας των χρηστών, το SDK σας επιτρέπει να περάσετε ένα `identity_hash` για κάθε χρήστη. Μπορείτε να δημιουργήσετε HMAC χρησιμοποιώντας το 'sha256' με το κλειδί που εμφανίζεται εδώ.",
"HMAC_LINK_TO_DOCS": "You can read more here.",
"HMAC_MANDATORY_VERIFICATION": "Επιβολή Επαλήθευσης Ταυτότητας Χρήστη",
"HMAC_MANDATORY_DESCRIPTION": "Αν ενεργοποιηθεί, τα αιτήματα που χωρίς το `identifier_hash` θα απορριφθούν.",
"INBOX_IDENTIFIER": "Αναγνωριστικό Εισερχόμενων",
@@ -3,16 +3,16 @@
"TITLE": "Είσοδος στο Chatwoot",
"EMAIL": {
"LABEL": "Email",
"PLACEHOLDER": "example@companyname.com"
"PLACEHOLDER": "Email π.χ.: someone@example.com"
},
"PASSWORD": {
"LABEL": "Κωδικός",
"PLACEHOLDER": "Κωδικός"
},
"API": {
"SUCCESS_MESSAGE": "Login successful",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again.",
"UNAUTH": "Username or password is incorrect. Please try again."
"SUCCESS_MESSAGE": "Επιτυχής είσοδος",
"ERROR_MESSAGE": "Αδυναμία σύνδεσης με τον Woot Server, Παρακαλώ προσπαθήστε αργότερα",
"UNAUTH": "Το όνομα χρήστη ή ο κωδικός δεν είναι σωστός. Παρακαλώ ξαναπροσπαθήστε"
},
"OAUTH": {
"GOOGLE_LOGIN": "Login with Google",
@@ -8,7 +8,7 @@
},
"API": {
"SUCCESS_MESSAGE": "Σύνδεσμος για την επαναφορά του κωδικού έχει αποσταλεί στο email σας.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Αδυναμία σύνδεσης με τον Woot Server, Παρακαλώ προσπαθήστε αργότερα"
},
"SUBMIT": "Καταχώρηση"
}
@@ -14,8 +14,8 @@
"EMPTY_STATE": "No %{item} found for query '%{query}'",
"EMPTY_STATE_FULL": "No results found for query '%{query}'",
"PLACEHOLDER_KEYBINDING": "/ to focus",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
"WROTE": "wrote:"
@@ -13,7 +13,7 @@
},
"API": {
"SUCCESS_MESSAGE": "Ο κωδικός άλλαξε με επιτυχία.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Αδυναμία σύνδεσης με τον Woot Server, Παρακαλώ προσπαθήστε αργότερα"
},
"CAPTCHA": {
"ERROR": "Η επαλήθευση έληξε. Παρακαλώ λύστε ξανά captcha."
@@ -10,33 +10,33 @@
},
"COMPANY_NAME": {
"LABEL": "Επωνυμία εταιρείας",
"PLACEHOLDER": "Enter your company name. E.g., Wayne Enterprises",
"ERROR": "Το όνομα της εταιρείας είναι πολύ σύντομο."
"PLACEHOLDER": "Εισάγετε το όνομα της εταιρείας σας. π. χ.: Wayne Enterprises",
"ERROR": "Το όνομα της εταιρείας είναι πολύ σύντομο"
},
"FULL_NAME": {
"LABEL": "Πλήρες όνομα",
"PLACEHOLDER": "Enter your full name. E.g., Bruce Wayne",
"ERROR": "Το πλήρες όνομα είναι πολύ σύντομο."
"PLACEHOLDER": "Συμπληρώστε το πλήρες σας όνομα: πχ: Χρήστος Παπαδόπουλος",
"ERROR": "Το πλήρες όνομα είναι πολύ σύντομο"
},
"EMAIL": {
"LABEL": "email εργασίας",
"PLACEHOLDER": "Enter your work email address. E.g., bruce@wayne.enterprises",
"ERROR": "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email."
"PLACEHOLDER": "συμπληρώστε το email εργασίας πχ: papadopoulos@wyane.com",
"ERROR": "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email"
},
"PASSWORD": {
"LABEL": "Κωδικός",
"PLACEHOLDER": "Κωδικός",
"ERROR": "Ο κωδικός είναι πολύ σύντομος.",
"IS_INVALID_PASSWORD": "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον 1 κεφαλαίο γράμμα, 1 πεζό γράμμα, 1 αριθμό και 1 ειδικό χαρακτήρα."
"ERROR": "Ο κωδικός είναι πολύ σύντομος",
"IS_INVALID_PASSWORD": "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον 1 κεφαλαίο γράμμα, 1 πεζό γράμμα, 1 αριθμό και 1 ειδικό χαρακτήρα"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm password",
"PLACEHOLDER": "Confirm password",
"ERROR": "Οι κωδικοί δεν συμφωνούν."
"LABEL": "Επιβεβαίωση κωδικού",
"PLACEHOLDER": "Επιβεβαίωση κωδικού",
"ERROR": "Οι κωδικοί δεν συμφωνούν"
},
"API": {
"SUCCESS_MESSAGE": "Επιτυχής καταχώρηση",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Αδυναμία σύνδεσης με τον Woot Server, Παρακαλώ προσπαθήστε αργότερα"
},
"SUBMIT": "Create account",
"HAVE_AN_ACCOUNT": "Έχετε ήδη ένα λογαριασμό?"
@@ -35,6 +35,20 @@
"TEXT": "All"
}
},
"VIEW_FILTER": "View",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "Status",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "Created at"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "Picture message"
@@ -55,6 +69,24 @@
"CONTENT": "has shared a url"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "Sort by",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "Created at",
"LABEL": "Created at"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "Received via email",
"VIEW_TWEET_IN_TWITTER": "View tweet in Twitter",
"REPLY_TO_TWEET": "Reply to this tweet",
@@ -35,6 +35,20 @@
"TEXT": "Todos"
}
},
"VIEW_FILTER": "Ver",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "Estado",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "Creado el"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "Mensaje de imagen"
@@ -55,6 +69,24 @@
"CONTENT": "ha compartido una url"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "Ordenar por",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "Creado el",
"LABEL": "Creado el"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "Recibido por correo electrónico",
"VIEW_TWEET_IN_TWITTER": "Ver trino en Twitter",
"REPLY_TO_TWEET": "Responder a éste trino",
@@ -464,6 +464,7 @@
"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.",
"HMAC_VERIFICATION": "Validación de identidad de usuario",
"HMAC_DESCRIPTION": "Para validar la identidad del usuario, puede pasar un `identifier_hash` para cada usuario. Puedes generar un hash HMAC sha256 usando el `identifier` con la clave que se muestra aquí.",
"HMAC_LINK_TO_DOCS": "You can read more here.",
"HMAC_MANDATORY_VERIFICATION": "Forzar validación de identidad de usuario",
"HMAC_MANDATORY_DESCRIPTION": "Si está activado, las peticiones que no tengan el `identifier_hash` serán rechazadas.",
"INBOX_IDENTIFIER": "Identificador de bandeja de entrada",
@@ -35,6 +35,20 @@
"TEXT": "همه"
}
},
"VIEW_FILTER": "نمایش",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "وضعیت",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "ایجاد شده در"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "پیام تصویری"
@@ -55,6 +69,24 @@
"CONTENT": "یک آدرس URL به اشتراک گذاشته شده"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "مرتب‌سازی براساس",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "ایجاد شده در",
"LABEL": "ایجاد شده در"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "از طریق ایمیل دریافت شد",
"VIEW_TWEET_IN_TWITTER": "مشاهده توییت در توییتر",
"REPLY_TO_TWEET": "پاسخ به این توییت",
@@ -120,7 +120,7 @@
"PHONE_NUMBER": {
"PLACEHOLDER": "شماره تلفن مخاطب را وارد کنید",
"LABEL": "شماره تلفن",
"HELP": "شماره تلفن باید از قالب E.164 باشد، به عنوان مثال: +1415555555 [+][کد کشور][کد منطقه][شماره تلفن محلی]. می توانید کد شماره گیری را از منوی بازشو انتخاب کنید.",
"HELP": "شماره تلفن باید با فرمت E.164 باشد به عنوان مثال: +98415555555 [+] [کد کشور] [کد منطقه] [شماره تلفن محلی]",
"ERROR": "شماره تلفن باید یا خالی باشد و یا با فرمت E.164",
"DIAL_CODE_ERROR": "لطفاً یک کد شماره گیری را از لیست انتخاب کنید",
"DUPLICATE": "این شماره تلفن برای مخاطب دیگری در حال استفاده است."
@@ -182,7 +182,7 @@
"LABEL": "به"
},
"INBOX": {
"LABEL": "از طریق صندوق ورودی",
"LABEL": "صندوق ورودی",
"PLACEHOLDER": "صندوق ورودی منبع را انتخاب کنید",
"ERROR": "انتخاب صندوق ورودی"
},
@@ -464,6 +464,7 @@
"AUTO_ASSIGNMENT_SUB_TEXT": "فعال کردن یا غیرفعال کردن واگذاری خودکار گفتگوها به ایجنت های عضو این صندوق ورودی.",
"HMAC_VERIFICATION": "اعتبار سنجی کاربر",
"HMAC_DESCRIPTION": "به منظور اعتبارسنجی هویت کاربر، می‌توانید یک «شناسه_هش» برای هر کاربر ارسال کنید. می‌توانید با استفاده از «شناسه» با کلید نشان داده شده در اینجا یک هش HMAC sha256 ایجاد کنید.",
"HMAC_LINK_TO_DOCS": "You can read more here.",
"HMAC_MANDATORY_VERIFICATION": "مجبور کردن تأیید اعتبار هویت کاربر",
"HMAC_MANDATORY_DESCRIPTION": "اگر فعال باشد، درخواست‌هایی که «identifier_hash» را ندارند رد می‌شوند.",
"INBOX_IDENTIFIER": "شناسه صندوق ورودی",
@@ -3,16 +3,16 @@
"TITLE": "ورود به چت ووت",
"EMAIL": {
"LABEL": "ایمیل",
"PLACEHOLDER": "example@companyname.com"
"PLACEHOLDER": "ایمیل به عنوان مثال: someone@example.com"
},
"PASSWORD": {
"LABEL": "رمز عبور",
"PLACEHOLDER": "رمز عبور"
},
"API": {
"SUCCESS_MESSAGE": "Login successful",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again.",
"UNAUTH": "Username or password is incorrect. Please try again."
"SUCCESS_MESSAGE": "ورود موفق",
"ERROR_MESSAGE": "متاسفانه ارتباط با سرور برقرار نشد، مجددا امتحان کنید",
"UNAUTH": "این نام کاربری و رمز عبور صحیح نیست"
},
"OAUTH": {
"GOOGLE_LOGIN": "با گوگل وارد شوید",
@@ -8,7 +8,7 @@
},
"API": {
"SUCCESS_MESSAGE": "لینک ریست کردن رمز عبور به ایمیلتان ارسال شد.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "متاسفانه ارتباط با سرور برقرار نشد، مجددا امتحان کنید"
},
"SUBMIT": "ثبت"
}
@@ -14,8 +14,8 @@
"EMPTY_STATE": "هیچ %{item} برای درخواست '%{query}' یافت نشد",
"EMPTY_STATE_FULL": "هیچ نتیجه ای برای پرس و جو «%{query}» یافت نشد",
"PLACEHOLDER_KEYBINDING": "/ برای تمرکز",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
"EMPTY_STATE_DEFAULT": "جستجو بر اساس شناسه گفتگو، ایمیل، شماره تلفن، پیام‌ها برای نتایج جستجوی بهتر. ",
"INPUT_PLACEHOLDER": "جستجوی پیام‌ها، مخاطبین یا گفتگوها",
"EMPTY_STATE_DEFAULT": "جستجو بر اساس شناسه گفتگو، ایمیل، شماره تلفن، پیام‌ها برای نتایج جستجوی بهتر.",
"BOT_LABEL": "ربات",
"READ_MORE": "ادامه مطلب",
"WROTE": "نوشت:"
@@ -13,7 +13,7 @@
},
"API": {
"SUCCESS_MESSAGE": "رمز عوض شد.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "متاسفانه ارتباط با سرور برقرار نشد، مجددا امتحان کنید"
},
"CAPTCHA": {
"ERROR": "تأیید اعتبار منقضی شد. لطفا دوباره کپچا را حل کنید."
@@ -10,33 +10,33 @@
},
"COMPANY_NAME": {
"LABEL": "نام شرکت",
"PLACEHOLDER": "Enter your company name. E.g., Wayne Enterprises",
"ERROR": "نام شرکت خیلی کوتاه است."
"PLACEHOLDER": "نام شرکت خود را وارد کنید. به عنوان مثال: شرکت وین",
"ERROR": "نام شرکت خیلی کوتاه است"
},
"FULL_NAME": {
"LABEL": "نام کامل",
"PLACEHOLDER": "Enter your full name. E.g., Bruce Wayne",
"ERROR": "نام کامل خیلی کوتاه است."
"PLACEHOLDER": "نام کامل خود را وارد کنید به عنوان مثال: گودرز جعفری",
"ERROR": "نام کامل خیلی کوتاه است"
},
"EMAIL": {
"LABEL": "ایمیل کاری",
"PLACEHOLDER": "Enter your work email address. E.g., bruce@wayne.enterprises",
"ERROR": "لطفا یک آدرس ایمیل کاری معتبر وارد کنید."
"PLACEHOLDER": "ایمیل کاری خود را وارد کنید به عنوان مثال: jafari@wayne.enterprises",
"ERROR": "لطفا یک آدرس ایمیل کاری معتبر وارد کنید"
},
"PASSWORD": {
"LABEL": "رمز عبور",
"PLACEHOLDER": "رمز عبور",
"ERROR": "رمز عبور خیلی کوتاه است.",
"IS_INVALID_PASSWORD": "رمز عبور باید شامل حداقل ۱ حرف بزرگ، ۱ حرف کوچک، ۱ عدد و ۱ کاراکتر خاص باشد."
"ERROR": "رمز عبور خیلی کوتاه است",
"IS_INVALID_PASSWORD": "رمز عبور باید شامل حداقل ۱ حرف بزرگ، ۱ حرف کوچک، ۱ عدد و ۱ کاراکتر خاص باشد"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm password",
"PLACEHOLDER": "Confirm password",
"ERROR": "رمز عبور و تکرار رمز عبور یکسان نیستند."
"LABEL": "تکرار رمز عبور",
"PLACEHOLDER": "تکرار رمز عبور",
"ERROR": "رمز عبور و تکرار رمز عبور یکسان نیستند"
},
"API": {
"SUCCESS_MESSAGE": "ثبت نام با موفقیت انجام شد",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "ارتباط با سرور برقرار نشد، لطفا بعدا امتحان کنید"
},
"SUBMIT": "ایجاد حساب کاربری",
"HAVE_AN_ACCOUNT": "از قبل حساب‌کاربری دارید؟"
@@ -35,6 +35,20 @@
"TEXT": "Kaikki"
}
},
"VIEW_FILTER": "Näytä",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "Tila",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "Created at"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "Kuvaviesti"
@@ -55,6 +69,24 @@
"CONTENT": "on jakanut URL-osoitteen"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "Sort by",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "Created at",
"LABEL": "Created at"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "Vastaanotettu sähköpostitse",
"VIEW_TWEET_IN_TWITTER": "Näytä twiitti Twitterissä",
"REPLY_TO_TWEET": "Vastaa tähän twiittiin",
@@ -120,7 +120,7 @@
"PHONE_NUMBER": {
"PLACEHOLDER": "Anna yhteystiedon puhelinnumero",
"LABEL": "Puhelinnumero",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]. You can select the dial code from the dropdown.",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]",
"ERROR": "Phone number should be either empty or of E.164 format",
"DIAL_CODE_ERROR": "Please select a dial code from the list",
"DUPLICATE": "This phone number is in use for another contact."
@@ -182,7 +182,7 @@
"LABEL": "To"
},
"INBOX": {
"LABEL": "Via Inbox",
"LABEL": "Inbox",
"PLACEHOLDER": "Choose source inbox",
"ERROR": "Select an inbox"
},
@@ -464,6 +464,7 @@
"AUTO_ASSIGNMENT_SUB_TEXT": "Ota käyttöön tai poista käytöstä automaattinen keskusteluiden delegointi edustajille.",
"HMAC_VERIFICATION": "User Identity Validation",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
"HMAC_LINK_TO_DOCS": "You can read more here.",
"HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
"INBOX_IDENTIFIER": "Inbox Identifier",
@@ -3,16 +3,16 @@
"TITLE": "Kirjaudu sisään Chatwootiin",
"EMAIL": {
"LABEL": "Sähköposti",
"PLACEHOLDER": "example@companyname.com"
"PLACEHOLDER": "Sähköposti, esim: someone@example.fi"
},
"PASSWORD": {
"LABEL": "Salasana",
"PLACEHOLDER": "Salasana"
},
"API": {
"SUCCESS_MESSAGE": "Login successful",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again.",
"UNAUTH": "Username or password is incorrect. Please try again."
"SUCCESS_MESSAGE": "Kirjautuminen Onnistui",
"ERROR_MESSAGE": "Yhteyden muodostaminen Woot-palvelimelle ei onnistunut, yritä myöhemmin uudelleen",
"UNAUTH": "Käyttäjätunnus / salasana virheellinen. Yritä uudelleen"
},
"OAUTH": {
"GOOGLE_LOGIN": "Login with Google",
@@ -8,7 +8,7 @@
},
"API": {
"SUCCESS_MESSAGE": "Salasanan palautuslinkki on lähetetty sähköpostiisi.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Yhteyden muodostaminen Woot-palvelimelle ei onnistunut, yritä myöhemmin uudelleen"
},
"SUBMIT": "Lähetä"
}
@@ -14,8 +14,8 @@
"EMPTY_STATE": "No %{item} found for query '%{query}'",
"EMPTY_STATE_FULL": "No results found for query '%{query}'",
"PLACEHOLDER_KEYBINDING": "/ to focus",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Botti",
"READ_MORE": "Read more",
"WROTE": "wrote:"
@@ -13,7 +13,7 @@
},
"API": {
"SUCCESS_MESSAGE": "Salasanan vaihtaminen onnistui.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Yhteyden muodostaminen Woot-palvelimelle ei onnistunut, yritä myöhemmin uudelleen"
},
"CAPTCHA": {
"ERROR": "Verification expired. Please solve captcha again."
@@ -10,33 +10,33 @@
},
"COMPANY_NAME": {
"LABEL": "Company name",
"PLACEHOLDER": "Enter your company name. E.g., Wayne Enterprises",
"ERROR": "Company name is too short."
"PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
"ERROR": "Company name is too short"
},
"FULL_NAME": {
"LABEL": "Koko nimi",
"PLACEHOLDER": "Enter your full name. E.g., Bruce Wayne",
"ERROR": "Koko nimi on liian lyhyt."
"PLACEHOLDER": "Anna koko nimesi, esim: Bruce Wayne",
"ERROR": "Koko nimi on liian lyhyt"
},
"EMAIL": {
"LABEL": "Työsähköposti",
"PLACEHOLDER": "Enter your work email address. E.g., bruce@wayne.enterprises",
"ERROR": "Please enter a valid work email address."
"PLACEHOLDER": "Anna työsi sähköpostiosoite, esim: bruce@wayne.enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Salasana",
"PLACEHOLDER": "Salasana",
"ERROR": "Salasana on liian lyhyt.",
"IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character."
"ERROR": "Salasana on liian lyhyt",
"IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm password",
"PLACEHOLDER": "Confirm password",
"ERROR": "Salasanat eivät täsmää."
"LABEL": "Vahvista salasana",
"PLACEHOLDER": "Vahvista salasana",
"ERROR": "Salasanat eivät täsmää"
},
"API": {
"SUCCESS_MESSAGE": "Rekisteröinti onnistui",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Yhteyden muodostaminen Woot-palvelimelle ei onnistunut, yritä myöhemmin uudelleen"
},
"SUBMIT": "Create account",
"HAVE_AN_ACCOUNT": "Onko sinulla jo tili?"
@@ -35,6 +35,20 @@
"TEXT": "Tous"
}
},
"VIEW_FILTER": "Voir",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "État",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "Créé le"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "Message image"
@@ -55,6 +69,24 @@
"CONTENT": "a partagé une URL"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "Sort by",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "Créé le",
"LABEL": "Créé le"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "Reçu par courriel",
"VIEW_TWEET_IN_TWITTER": "Voir le tweet sur Twitter",
"REPLY_TO_TWEET": "Répondre à ce tweet",
@@ -464,6 +464,7 @@
"AUTO_ASSIGNMENT_SUB_TEXT": "Activer ou désactiver l'affectation automatique de nouvelles conversations aux agents ajoutés à cette boîte de réception.",
"HMAC_VERIFICATION": "Validation de l'identité de l'utilisateur",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
"HMAC_LINK_TO_DOCS": "You can read more here.",
"HMAC_MANDATORY_VERIFICATION": "Forcer la validation de l'identité de l'utilisateur",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
"INBOX_IDENTIFIER": "Identificateur de la boîte de réception",
@@ -35,6 +35,20 @@
"TEXT": "הכל"
}
},
"VIEW_FILTER": "צפה",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "מצב",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "נוצר בזמן"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "הודעת תמונה"
@@ -55,6 +69,24 @@
"CONTENT": "שיתף קישור"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "מיין לפי",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "נוצר בזמן",
"LABEL": "נוצר בזמן"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "התקבל בדואר אלקטרוני",
"VIEW_TWEET_IN_TWITTER": "צפה בציוץ בטוויטר",
"REPLY_TO_TWEET": "הגב לציוץ זה",
@@ -120,7 +120,7 @@
"PHONE_NUMBER": {
"PLACEHOLDER": "הזן את מספר הטלפון של איש הקשר",
"LABEL": "מספר טלפון",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]. You can select the dial code from the dropdown.",
"HELP": "מספר הטלפון צריך להיות בפורמט E.164, למשל: +1415555555 [+][קוד מדינה][אזור חיוג][מספר טלפון מקומי]",
"ERROR": "מספר הטלפון צריך להיות ריק או בפורמט E.164",
"DIAL_CODE_ERROR": "Please select a dial code from the list",
"DUPLICATE": "מספר טלפון זה נמצאת בשימוש עבור איש קשר אחר."
@@ -182,7 +182,7 @@
"LABEL": "אל"
},
"INBOX": {
"LABEL": "Via Inbox",
"LABEL": "תיבת הדואר הנכנס",
"PLACEHOLDER": "Choose source inbox",
"ERROR": "בחר תיבת דואר נכנס"
},
@@ -463,9 +463,10 @@
"INBOX_UPDATE_SUB_TEXT": "עדכן את הגדרות תיבת הדואר הנכנס שלך",
"AUTO_ASSIGNMENT_SUB_TEXT": "אפשר או השבת את ההקצאה האוטומטית של שיחות חדשות לסוכנים שנוספו לתיבת הדואר הנכנס הזו.",
"HMAC_VERIFICATION": "אימות זהות משתמש",
"HMAC_DESCRIPTION": "על מנת לאמת את זהות המשתמש, אתה יכול להעביר `מזהה_hash` עבור כל משתמש. אתה יכול ליצור hash HMAC sha256 באמצעות `מזהה` עם המפתח המוצג כאן.",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
"HMAC_LINK_TO_DOCS": "You can read more here.",
"HMAC_MANDATORY_VERIFICATION": "אכיפת אימות זהות משתמש",
"HMAC_MANDATORY_DESCRIPTION": "אם מופעל, בקשות חסרות 'מזהה_hash' יידחו.",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
"INBOX_IDENTIFIER": "מזהה תיבת דואר נכנס",
"INBOX_IDENTIFIER_SUB_TEXT": "השתמש ב-'inbox_identifier' המוצג כאן כדי לאמת את לקוחות ה-API שלך.",
"FORWARD_EMAIL_TITLE": "העבר לדואר אלקטרוני",
@@ -3,16 +3,16 @@
"TITLE": "התחבר ל Woot",
"EMAIL": {
"LABEL": "אימייל",
"PLACEHOLDER": "example@companyname.com"
"PLACEHOLDER": "מייל לדוגמא: someone@example.com"
},
"PASSWORD": {
"LABEL": "סיסמה",
"PLACEHOLDER": "סיסמה"
},
"API": {
"SUCCESS_MESSAGE": "Login successful",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again.",
"UNAUTH": "Username or password is incorrect. Please try again."
"SUCCESS_MESSAGE": "נכנסת בהצלחה",
"ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר",
"UNAUTH": "שם משתמש / סיסמה שגויים. נסה שוב"
},
"OAUTH": {
"GOOGLE_LOGIN": "התחבר עם גוגל",
@@ -8,7 +8,7 @@
},
"API": {
"SUCCESS_MESSAGE": "הקישור לאיפוס הסיסמה נשלח לדוא\"ל שלך.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
},
"SUBMIT": "שלח"
}
@@ -14,8 +14,8 @@
"EMPTY_STATE": "לא נמצא %{item} עבור השאילתה '%{query}'",
"EMPTY_STATE_FULL": "לא נמצאו תוצאות עבור השאילתה '%{query}'",
"PLACEHOLDER_KEYBINDING": "/ להתמקד",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
"EMPTY_STATE_DEFAULT": "חפש לפי מזהה שיחה, אימייל, מספר טלפון, הודעות לתוצאות חיפוש טובות יותר. ",
"INPUT_PLACEHOLDER": "חפש הודעות, אנשי קשר או שיחות",
"EMPTY_STATE_DEFAULT": "חפש לפי מזהה שיחה, אימייל, מספר טלפון, הודעות לתוצאות חיפוש טובות יותר.",
"BOT_LABEL": "בוט",
"READ_MORE": "קרא עוד",
"WROTE": "נכתב:"
@@ -1,19 +1,19 @@
{
"SET_NEW_PASSWORD": {
"TITLE": "Set new password",
"TITLE": "הגדר סיסמה חדשה",
"PASSWORD": {
"LABEL": "סיסמה",
"PLACEHOLDER": "סיסמה",
"ERROR": "הסיסמה קצרה מדי."
"ERROR": "הסיסמה קצרה מדי"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm password",
"LABEL": "אמת סיסמה",
"PLACEHOLDER": "אמת סיסמה",
"ERROR": "סיסמאות לא תואמות."
"ERROR": "סיסמאות לא תואמות"
},
"API": {
"SUCCESS_MESSAGE": "שינתה את הסיסמה בהצלחה.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"SUCCESS_MESSAGE": "שינתה את הסיסמה בהצלחה",
"ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
},
"CAPTCHA": {
"ERROR": "פג תוקף האימות. נא לפתור שוב את ה-captcha."
@@ -10,33 +10,33 @@
},
"COMPANY_NAME": {
"LABEL": "שם החברה",
"PLACEHOLDER": "Enter your company name. E.g., Wayne Enterprises",
"ERROR": "שם החברה קצר מדי."
"PLACEHOLDER": "הזן את שם החברה שלך. למשל: Wayne Enterprises",
"ERROR": "שם החברה קצר מדי"
},
"FULL_NAME": {
"LABEL": "שם מלא",
"PLACEHOLDER": "Enter your full name. E.g., Bruce Wayne",
"ERROR": "השם המלא קצר מדי."
"PLACEHOLDER": "הזן את שמך המלא. למשל: ברוס וויין",
"ERROR": "השם המלא קצר מדי"
},
"EMAIL": {
"LABEL": "מייל עבודה",
"PLACEHOLDER": "Enter your work email address. E.g., bruce@wayne.enterprises",
"ERROR": "אנא הזן כתובת דוא\"ל חוקית לעבודה."
"PLACEHOLDER": "הזן את כתובת הדוא\"ל שלך בעבודה. למשל: bruce@wayne.enterprises",
"ERROR": "אנא הזן כתובת דוא\"ל חוקית לעבודה"
},
"PASSWORD": {
"LABEL": "סיסמה",
"PLACEHOLDER": "סיסמה",
"ERROR": "הסיסמה קצרה מדי.",
"IS_INVALID_PASSWORD": "הסיסמה צריכה להכיל לפחות אות אחת גדולה, אות קטנה אחת, מספר אחד ותו מיוחד אחד."
"ERROR": "הסיסמה קצרה מדי",
"IS_INVALID_PASSWORD": "הסיסמה צריכה להכיל לפחות אות אחת גדולה, אות קטנה אחת, מספר אחד ותו מיוחד אחד"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm password",
"PLACEHOLDER": "Confirm password",
"ERROR": "סיסמה לא מתאימה."
"LABEL": "אמת סיסמה",
"PLACEHOLDER": "אמת סיסמה",
"ERROR": "סיסמה לא מתאימה"
},
"API": {
"SUCCESS_MESSAGE": "ההרשמה הצליחה",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
},
"SUBMIT": "צור חשבון",
"HAVE_AN_ACCOUNT": "כבר יש לך חשבון?"
@@ -35,6 +35,20 @@
"TEXT": "All"
}
},
"VIEW_FILTER": "View",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "Status",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "Created at"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "Picture message"
@@ -55,6 +69,24 @@
"CONTENT": "has shared a url"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "Sort by",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "Created at",
"LABEL": "Created at"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "Received via email",
"VIEW_TWEET_IN_TWITTER": "View tweet in Twitter",
"REPLY_TO_TWEET": "Reply to this tweet",
@@ -120,7 +120,7 @@
"PHONE_NUMBER": {
"PLACEHOLDER": "Enter the phone number of the contact",
"LABEL": "Phone Number",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]. You can select the dial code from the dropdown.",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]",
"ERROR": "Phone number should be either empty or of E.164 format",
"DIAL_CODE_ERROR": "Please select a dial code from the list",
"DUPLICATE": "This phone number is in use for another contact."
@@ -182,7 +182,7 @@
"LABEL": "To"
},
"INBOX": {
"LABEL": "Via Inbox",
"LABEL": "Inbox",
"PLACEHOLDER": "Choose source inbox",
"ERROR": "Select an inbox"
},
@@ -464,6 +464,7 @@
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
"HMAC_VERIFICATION": "User Identity Validation",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
"HMAC_LINK_TO_DOCS": "You can read more here.",
"HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
"INBOX_IDENTIFIER": "Inbox Identifier",
@@ -3,16 +3,16 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "Email",
"PLACEHOLDER": "example@companyname.com"
"PLACEHOLDER": "Email eg: someone@example.com"
},
"PASSWORD": {
"LABEL": "Password",
"PLACEHOLDER": "Password"
},
"API": {
"SUCCESS_MESSAGE": "Login successful",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again.",
"UNAUTH": "Username or password is incorrect. Please try again."
"SUCCESS_MESSAGE": "Login Successful",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later",
"UNAUTH": "Username / Password Incorrect. Please try again"
},
"OAUTH": {
"GOOGLE_LOGIN": "Login with Google",
@@ -8,7 +8,7 @@
},
"API": {
"SUCCESS_MESSAGE": "Password reset link has been sent to your email.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"SUBMIT": "Submit"
}
@@ -14,8 +14,8 @@
"EMPTY_STATE": "No %{item} found for query '%{query}'",
"EMPTY_STATE_FULL": "No results found for query '%{query}'",
"PLACEHOLDER_KEYBINDING": "/ to focus",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
"WROTE": "wrote:"
@@ -13,7 +13,7 @@
},
"API": {
"SUCCESS_MESSAGE": "Successfully changed the password.",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"CAPTCHA": {
"ERROR": "Verification expired. Please solve captcha again."
@@ -10,33 +10,33 @@
},
"COMPANY_NAME": {
"LABEL": "Company name",
"PLACEHOLDER": "Enter your company name. E.g., Wayne Enterprises",
"ERROR": "Company name is too short."
"PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
"ERROR": "Company name is too short"
},
"FULL_NAME": {
"LABEL": "Full name",
"PLACEHOLDER": "Enter your full name. E.g., Bruce Wayne",
"ERROR": "Full name is too short."
"PLACEHOLDER": "Enter your full name. eg: Bruce Wayne",
"ERROR": "Full name is too short"
},
"EMAIL": {
"LABEL": "Work email",
"PLACEHOLDER": "Enter your work email address. E.g., bruce@wayne.enterprises",
"ERROR": "Please enter a valid work email address."
"PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Password",
"PLACEHOLDER": "Password",
"ERROR": "Password is too short.",
"IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character."
"ERROR": "Password is too short",
"IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm password",
"PLACEHOLDER": "Confirm password",
"ERROR": "Password doesnot match."
"LABEL": "Confirm Password",
"PLACEHOLDER": "Confirm Password",
"ERROR": "Password doesnot match"
},
"API": {
"SUCCESS_MESSAGE": "Registration Successfull",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"SUBMIT": "Create account",
"HAVE_AN_ACCOUNT": "Already have an account?"
@@ -35,6 +35,20 @@
"TEXT": "All"
}
},
"VIEW_FILTER": "View",
"SORT_TOOLTIP_LABEL": "Sort conversations",
"CHAT_SORT": {
"STATUS": "Status",
"ORDER_BY": "Order by"
},
"CHAT_SORT_FILTER_ITEMS": {
"latest": {
"TEXT": "Last activity"
},
"sort_on_created_at": {
"TEXT": "Created at"
}
},
"ATTACHMENTS": {
"image": {
"CONTENT": "Picture message"
@@ -55,6 +69,24 @@
"CONTENT": "has shared a url"
}
},
"CHAT_SORT_BY_FILTER": {
"TITLE": "Sort conversation",
"DROPDOWN_TITLE": "Sort by",
"ITEMS": {
"LATEST": {
"NAME": "Last activity at",
"LABEL": "Last activity"
},
"CREATED_AT": {
"NAME": "Created at",
"LABEL": "Created at"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
"LABEL": "Last message"
}
}
},
"RECEIVED_VIA_EMAIL": "Received via email",
"VIEW_TWEET_IN_TWITTER": "View tweet in Twitter",
"REPLY_TO_TWEET": "Reply to this tweet",
@@ -120,7 +120,7 @@
"PHONE_NUMBER": {
"PLACEHOLDER": "Enter the phone number of the contact",
"LABEL": "Phone Number",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]. You can select the dial code from the dropdown.",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]",
"ERROR": "Phone number should be either empty or of E.164 format",
"DIAL_CODE_ERROR": "Please select a dial code from the list",
"DUPLICATE": "This phone number is in use for another contact."
@@ -182,7 +182,7 @@
"LABEL": "To"
},
"INBOX": {
"LABEL": "Kroz Inbox",
"LABEL": "Inbox",
"PLACEHOLDER": "Izaberi izvorišni inbox",
"ERROR": "Select an inbox"
},
@@ -464,6 +464,7 @@
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
"HMAC_VERIFICATION": "User Identity Validation",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
"HMAC_LINK_TO_DOCS": "Ovdje možete pročitati više.",
"HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
"INBOX_IDENTIFIER": "Inbox Identifier",
@@ -3,16 +3,16 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "Email",
"PLACEHOLDER": "primjer@imetvrtke.com"
"PLACEHOLDER": "Email eg: someone@example.com"
},
"PASSWORD": {
"LABEL": "Password",
"PLACEHOLDER": "Password"
},
"API": {
"SUCCESS_MESSAGE": "Prijava uspješna",
"ERROR_MESSAGE": "Nije uspjelo spajanje na Woot server. Molimo pokušajte ponovno.",
"UNAUTH": "Korisničko ime ili lozinka je pogrešno. Molimo, pokušajte ponovno."
"SUCCESS_MESSAGE": "Login Successful",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later",
"UNAUTH": "Username / Password Incorrect. Please try again"
},
"OAUTH": {
"GOOGLE_LOGIN": "Login with Google",
@@ -1,14 +1,14 @@
{
"RESET_PASSWORD": {
"TITLE": "Reset lozinke",
"TITLE": "Reset Password",
"EMAIL": {
"LABEL": "Email",
"PLACEHOLDER": "Molimo, unesite e-mail.",
"ERROR": "Molimo, unesite validan e-mail."
"PLACEHOLDER": "Please enter your email",
"ERROR": "Please enter a valid email"
},
"API": {
"SUCCESS_MESSAGE": "Link za reset lozinke je poslan na zadani e-mail.",
"ERROR_MESSAGE": "Nije uspjelo spajanje na Woot server. Molimo pokušajte ponovno."
"SUCCESS_MESSAGE": "Password reset link has been sent to your email",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"SUBMIT": "Submit"
}

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