Compare commits
24
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6f99a45837 | ||
|
|
4b849cdd11 | ||
|
|
310590cae3 | ||
|
|
251e9980fd | ||
|
|
2b50909d9b | ||
|
|
290dd3abf5 | ||
|
|
a9123e7d66 | ||
|
|
9967101b48 | ||
|
|
654fcd43f2 | ||
|
|
284977687c | ||
|
|
18dc77aa56 | ||
|
|
8aad8ad38e | ||
|
|
098f7a77b6 | ||
|
|
9c22d791c4 | ||
|
|
4d344a47dc | ||
|
|
38dbda9378 | ||
|
|
a4c3d3d8c0 | ||
|
|
688218de0a | ||
|
|
a8d53a6df4 | ||
|
|
2a90652f05 | ||
|
|
270f3c6a80 | ||
|
|
ad1539c6cf | ||
|
|
349f55b558 | ||
|
|
ef91b8bb42 |
@@ -1,3 +1,4 @@
|
||||
---
|
||||
ignore:
|
||||
- CVE-2021-41098 # https://github.com/chatwoot/chatwoot/issues/3097 (update once azure blob storage is updated)
|
||||
- GHSA-57hq-95w6-v4fc # Devise confirmable race condition — patched locally in User model (remove once on Devise 5+)
|
||||
|
||||
@@ -79,11 +79,11 @@ gem 'vite_rails'
|
||||
gem 'barnes'
|
||||
|
||||
##--- gems for authentication & authorization ---##
|
||||
gem 'devise', '>= 4.9.4'
|
||||
gem 'devise', '>= 5.0.3'
|
||||
gem 'devise-secure_password', git: 'https://github.com/chatwoot/devise-secure_password', branch: 'chatwoot'
|
||||
gem 'devise_token_auth', '>= 1.2.3'
|
||||
gem 'devise_token_auth', '>= 1.2.6'
|
||||
# two-factor authentication
|
||||
gem 'devise-two-factor', '>= 5.0.0'
|
||||
gem 'devise-two-factor', '>= 6.4.0'
|
||||
# authorization
|
||||
gem 'jwt'
|
||||
gem 'pundit'
|
||||
|
||||
+2
-2
@@ -166,7 +166,7 @@ GEM
|
||||
multi_json (~> 1)
|
||||
statsd-ruby (~> 1.1)
|
||||
base64 (0.3.0)
|
||||
bcrypt (3.1.20)
|
||||
bcrypt (3.1.22)
|
||||
benchmark (0.4.1)
|
||||
bigdecimal (3.2.2)
|
||||
bindex (0.8.1)
|
||||
@@ -465,7 +465,7 @@ GEM
|
||||
rails-dom-testing (>= 1, < 3)
|
||||
railties (>= 4.2.0)
|
||||
thor (>= 0.14, < 2.0)
|
||||
json (2.18.1)
|
||||
json (2.19.2)
|
||||
json_refs (0.1.8)
|
||||
hana
|
||||
json_schemer (0.2.24)
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
4.11.2
|
||||
4.12.0
|
||||
|
||||
@@ -126,7 +126,7 @@ class Api::V1::Accounts::Integrations::LinearController < Api::V1::Accounts::Bas
|
||||
return unless @hook&.access_token
|
||||
|
||||
begin
|
||||
linear_client = Linear.new(@hook.access_token)
|
||||
linear_client = Linear.new(@hook.access_token, refresh_token: @hook.settings&.[]('refresh_token'))
|
||||
linear_client.revoke_token
|
||||
rescue StandardError => e
|
||||
Rails.logger.error "Failed to revoke Linear token: #{e.message}"
|
||||
|
||||
@@ -79,7 +79,7 @@ class Api::V1::Accounts::PortalsController < Api::V1::Accounts::BaseController
|
||||
def portal_params
|
||||
params.require(:portal).permit(
|
||||
:id, :color, :custom_domain, :header_text, :homepage_link,
|
||||
:name, :page_title, :slug, :archived, { config: [:default_locale, { allowed_locales: [] }] }
|
||||
:name, :page_title, :slug, :archived, { config: [:default_locale, { allowed_locales: [] }, { draft_locales: [] }] }
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -2,6 +2,8 @@ class Linear::CallbacksController < ApplicationController
|
||||
include Linear::IntegrationHelper
|
||||
|
||||
def show
|
||||
return redirect_to(safe_linear_redirect_uri) if params[:code].blank? || account_id.blank?
|
||||
|
||||
@response = oauth_client.auth_code.get_token(
|
||||
params[:code],
|
||||
redirect_uri: "#{base_url}/linear/callback"
|
||||
@@ -10,7 +12,7 @@ class Linear::CallbacksController < ApplicationController
|
||||
handle_response
|
||||
rescue StandardError => e
|
||||
Rails.logger.error("Linear callback error: #{e.message}")
|
||||
redirect_to linear_redirect_uri
|
||||
redirect_to safe_linear_redirect_uri
|
||||
end
|
||||
|
||||
private
|
||||
@@ -31,22 +33,19 @@ class Linear::CallbacksController < ApplicationController
|
||||
end
|
||||
|
||||
def handle_response
|
||||
hook = account.hooks.new(
|
||||
raise ArgumentError, 'Missing access token in Linear OAuth response' if parsed_body['access_token'].blank?
|
||||
|
||||
hook = account.hooks.find_or_initialize_by(app_id: 'linear')
|
||||
hook.assign_attributes(
|
||||
access_token: parsed_body['access_token'],
|
||||
status: 'enabled',
|
||||
app_id: 'linear',
|
||||
settings: {
|
||||
token_type: parsed_body['token_type'],
|
||||
expires_in: parsed_body['expires_in'],
|
||||
scope: parsed_body['scope']
|
||||
}
|
||||
settings: merged_integration_settings(hook.settings)
|
||||
)
|
||||
# You may wonder why we're not handling the refresh token update, since the token will expire only after 10 years, https://github.com/linear/linear/issues/251
|
||||
hook.save!
|
||||
redirect_to linear_redirect_uri
|
||||
rescue StandardError => e
|
||||
Rails.logger.error("Linear callback error: #{e.message}")
|
||||
redirect_to linear_redirect_uri
|
||||
redirect_to safe_linear_redirect_uri
|
||||
end
|
||||
|
||||
def account
|
||||
@@ -54,19 +53,47 @@ class Linear::CallbacksController < ApplicationController
|
||||
end
|
||||
|
||||
def account_id
|
||||
return unless params[:state]
|
||||
return @account_id if instance_variable_defined?(:@account_id)
|
||||
|
||||
verify_linear_token(params[:state])
|
||||
@account_id = params[:state].present? ? verify_linear_token(params[:state]) : nil
|
||||
end
|
||||
|
||||
def linear_redirect_uri
|
||||
"#{ENV.fetch('FRONTEND_URL', nil)}/app/accounts/#{account.id}/settings/integrations/linear"
|
||||
end
|
||||
|
||||
def safe_linear_redirect_uri
|
||||
return base_url if account_id.blank?
|
||||
|
||||
linear_redirect_uri
|
||||
rescue StandardError
|
||||
base_url
|
||||
end
|
||||
|
||||
def parsed_body
|
||||
@parsed_body ||= @response.response.parsed
|
||||
end
|
||||
|
||||
def integration_settings
|
||||
{
|
||||
token_type: parsed_body['token_type'],
|
||||
expires_in: parsed_body['expires_in'],
|
||||
expires_on: expires_on,
|
||||
scope: parsed_body['scope'],
|
||||
refresh_token: parsed_body['refresh_token']
|
||||
}.compact
|
||||
end
|
||||
|
||||
def merged_integration_settings(existing_settings)
|
||||
existing_settings.to_h.with_indifferent_access.merge(integration_settings)
|
||||
end
|
||||
|
||||
def expires_on
|
||||
return if parsed_body['expires_in'].blank?
|
||||
|
||||
(Time.current.utc + parsed_body['expires_in'].to_i.seconds).to_s
|
||||
end
|
||||
|
||||
def base_url
|
||||
ENV.fetch('FRONTEND_URL', 'http://localhost:3000')
|
||||
end
|
||||
|
||||
@@ -6,6 +6,7 @@ class Public::Api::V1::Portals::ArticlesController < Public::Api::V1::Portals::B
|
||||
layout 'portal'
|
||||
|
||||
def index
|
||||
@search_query = list_params[:query]
|
||||
@articles = @portal.articles.published.includes(:category, :author)
|
||||
|
||||
@articles = @articles.where(locale: permitted_params[:locale]) if permitted_params[:locale].present?
|
||||
@@ -73,7 +74,9 @@ class Public::Api::V1::Portals::ArticlesController < Public::Api::V1::Portals::B
|
||||
end
|
||||
|
||||
def list_params
|
||||
params.permit(:query, :locale, :sort, :status, :page, :per_page)
|
||||
@list_params ||= params.permit(:query, :locale, :sort, :status, :page, :per_page).tap do |permitted|
|
||||
permitted[:query] = permitted[:query].to_s.strip.presence
|
||||
end
|
||||
end
|
||||
|
||||
def permitted_params
|
||||
|
||||
@@ -77,13 +77,23 @@ class WidgetsController < ActionController::Base
|
||||
end
|
||||
|
||||
def allow_iframe_requests
|
||||
if @web_widget.allowed_domains.blank?
|
||||
if @web_widget.allowed_domains.blank? || embedded_from_non_web_origin?
|
||||
response.headers.delete('X-Frame-Options')
|
||||
else
|
||||
domains = @web_widget.allowed_domains.split(',').map(&:strip).join(' ')
|
||||
response.headers['Content-Security-Policy'] = "frame-ancestors #{domains}"
|
||||
end
|
||||
end
|
||||
|
||||
# Mobile WebViews (iOS/Android) load content from file:// or null origins,
|
||||
# which cannot match any domain in frame-ancestors. When the per-inbox flag
|
||||
# is enabled, skip frame-ancestors for these requests.
|
||||
def embedded_from_non_web_origin?
|
||||
return false unless @web_widget.allow_mobile_webview?
|
||||
|
||||
origin = request.headers['Origin']
|
||||
origin.blank? || origin == 'null' || origin&.start_with?('file://')
|
||||
end
|
||||
end
|
||||
|
||||
WidgetsController.prepend_mod_with('WidgetsController')
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
module TimezoneHelper
|
||||
def timezone_name_from_params(timezone, offset)
|
||||
return timezone if timezone.present? && ActiveSupport::TimeZone[timezone].present?
|
||||
|
||||
timezone_name_from_offset(offset)
|
||||
end
|
||||
|
||||
# ActiveSupport TimeZone is not aware of the current time, so ActiveSupport::Timezone[offset]
|
||||
# would return the timezone without considering day light savings. To get the correct timezone,
|
||||
# this method uses zone.now.utc_offset for comparison as referenced in the issues below
|
||||
|
||||
+18
-2
@@ -1,8 +1,22 @@
|
||||
<script setup>
|
||||
import LocaleCard from './LocaleCard.vue';
|
||||
const locales = [
|
||||
{ name: 'English', isDefault: true, articleCount: 29, categoryCount: 5 },
|
||||
{ name: 'Spanish', isDefault: false, articleCount: 29, categoryCount: 5 },
|
||||
{
|
||||
name: 'English',
|
||||
code: 'en',
|
||||
isDefault: true,
|
||||
isDraft: false,
|
||||
articleCount: 29,
|
||||
categoryCount: 5,
|
||||
},
|
||||
{
|
||||
name: 'Spanish',
|
||||
code: 'es',
|
||||
isDefault: false,
|
||||
isDraft: true,
|
||||
articleCount: 29,
|
||||
categoryCount: 5,
|
||||
},
|
||||
];
|
||||
</script>
|
||||
|
||||
@@ -19,6 +33,8 @@ const locales = [
|
||||
<LocaleCard
|
||||
:locale="locale.name"
|
||||
:is-default="locale.isDefault"
|
||||
:is-draft="locale.isDraft"
|
||||
:locale-code="locale.code"
|
||||
:article-count="locale.articleCount"
|
||||
:category-count="locale.categoryCount"
|
||||
/>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import { computed } from 'vue';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useToggle } from '@vueuse/core';
|
||||
import { LOCALE_MENU_ITEMS } from 'dashboard/helper/portalHelper';
|
||||
import { buildLocaleMenuItems } from 'dashboard/helper/portalHelper';
|
||||
|
||||
import CardLayout from 'dashboard/components-next/CardLayout.vue';
|
||||
import Button from 'dashboard/components-next/button/Button.vue';
|
||||
@@ -17,6 +17,10 @@ const props = defineProps({
|
||||
type: Boolean,
|
||||
required: true,
|
||||
},
|
||||
isDraft: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
},
|
||||
localeCode: {
|
||||
type: String,
|
||||
required: true,
|
||||
@@ -37,11 +41,28 @@ const { t } = useI18n();
|
||||
|
||||
const [showDropdownMenu, toggleDropdown] = useToggle();
|
||||
|
||||
const localeLabel = computed(() => `${props.locale} (${props.localeCode})`);
|
||||
|
||||
const localeMenuLabels = computed(() => ({
|
||||
'change-default': t(
|
||||
'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.MAKE_DEFAULT'
|
||||
),
|
||||
'move-to-draft': t(
|
||||
'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.MOVE_TO_DRAFT'
|
||||
),
|
||||
'publish-locale': t(
|
||||
'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.PUBLISH_LOCALE'
|
||||
),
|
||||
delete: t('HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.DELETE'),
|
||||
}));
|
||||
|
||||
const localeMenuItems = computed(() =>
|
||||
LOCALE_MENU_ITEMS.map(item => ({
|
||||
buildLocaleMenuItems({
|
||||
isDefault: props.isDefault,
|
||||
isDraft: props.isDraft,
|
||||
}).map(item => ({
|
||||
...item,
|
||||
label: t(item.label),
|
||||
disabled: props.isDefault,
|
||||
label: localeMenuLabels.value[item.action],
|
||||
}))
|
||||
);
|
||||
|
||||
@@ -56,7 +77,7 @@ const handleAction = ({ action, value }) => {
|
||||
<div class="flex justify-between gap-2">
|
||||
<div class="flex items-center justify-start gap-2">
|
||||
<span class="text-sm font-medium text-n-slate-12 line-clamp-1">
|
||||
{{ locale }} ({{ localeCode }})
|
||||
{{ localeLabel }}
|
||||
</span>
|
||||
<span
|
||||
v-if="isDefault"
|
||||
@@ -64,6 +85,12 @@ const handleAction = ({ action, value }) => {
|
||||
>
|
||||
{{ $t('HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DEFAULT') }}
|
||||
</span>
|
||||
<span
|
||||
v-else-if="isDraft"
|
||||
class="bg-n-alpha-2 h-6 inline-flex items-center justify-center rounded-md text-xs border-px border-transparent text-n-slate-11 px-2 py-0.5"
|
||||
>
|
||||
{{ $t('HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DRAFT') }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="flex items-center justify-end gap-4">
|
||||
<div class="flex items-center gap-4">
|
||||
@@ -86,6 +113,7 @@ const handleAction = ({ action, value }) => {
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="localeMenuItems.length"
|
||||
v-on-clickaway="() => toggleDropdown(false)"
|
||||
class="relative group"
|
||||
>
|
||||
|
||||
+48
-2
@@ -1,5 +1,5 @@
|
||||
<script setup>
|
||||
import { ref, computed } from 'vue';
|
||||
import { ref, computed, watch } from 'vue';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useStore } from 'dashboard/composables/store';
|
||||
import { useAlert, useTrack } from 'dashboard/composables';
|
||||
@@ -24,12 +24,20 @@ const dialogRef = ref(null);
|
||||
const isUpdating = ref(false);
|
||||
|
||||
const selectedLocale = ref('');
|
||||
const localeStatus = ref('published');
|
||||
|
||||
const addedLocales = computed(() => {
|
||||
const { allowed_locales: allowedLocales = [] } = props.portal?.config || {};
|
||||
return allowedLocales.map(locale => locale.code);
|
||||
});
|
||||
|
||||
const draftedLocales = computed(() => {
|
||||
const { allowed_locales: allowedLocales = [] } = props.portal?.config || {};
|
||||
return allowedLocales
|
||||
.filter(locale => locale.draft)
|
||||
.map(locale => locale.code);
|
||||
});
|
||||
|
||||
const locales = computed(() => {
|
||||
return Object.keys(allLocales)
|
||||
.map(key => {
|
||||
@@ -41,17 +49,44 @@ const locales = computed(() => {
|
||||
.filter(locale => !addedLocales.value.includes(locale.value));
|
||||
});
|
||||
|
||||
const statusOptions = computed(() => [
|
||||
{
|
||||
value: 'published',
|
||||
label: t('HELP_CENTER.LOCALES_PAGE.ADD_LOCALE_DIALOG.STATUS.OPTIONS.LIVE'),
|
||||
},
|
||||
{
|
||||
value: 'draft',
|
||||
label: t('HELP_CENTER.LOCALES_PAGE.ADD_LOCALE_DIALOG.STATUS.OPTIONS.DRAFT'),
|
||||
},
|
||||
]);
|
||||
|
||||
const resetForm = () => {
|
||||
selectedLocale.value = '';
|
||||
localeStatus.value = 'published';
|
||||
};
|
||||
|
||||
watch(localeStatus, value => {
|
||||
if (!value) {
|
||||
localeStatus.value = 'published';
|
||||
}
|
||||
});
|
||||
|
||||
const onCreate = async () => {
|
||||
if (!selectedLocale.value) return;
|
||||
|
||||
isUpdating.value = true;
|
||||
const updatedLocales = [...addedLocales.value, selectedLocale.value];
|
||||
const updatedDraftLocales =
|
||||
localeStatus.value === 'draft'
|
||||
? [...new Set([...draftedLocales.value, selectedLocale.value])]
|
||||
: draftedLocales.value;
|
||||
|
||||
try {
|
||||
await store.dispatch('portals/update', {
|
||||
portalSlug: props.portal?.slug,
|
||||
config: {
|
||||
allowed_locales: updatedLocales,
|
||||
draft_locales: updatedDraftLocales,
|
||||
default_locale: props.portal?.meta?.default_locale,
|
||||
},
|
||||
});
|
||||
@@ -62,7 +97,7 @@ const onCreate = async () => {
|
||||
from: route.name,
|
||||
});
|
||||
|
||||
selectedLocale.value = '';
|
||||
resetForm();
|
||||
dialogRef.value?.close();
|
||||
useAlert(
|
||||
t('HELP_CENTER.LOCALES_PAGE.ADD_LOCALE_DIALOG.API.SUCCESS_MESSAGE')
|
||||
@@ -87,6 +122,7 @@ defineExpose({ dialogRef });
|
||||
type="edit"
|
||||
:title="t('HELP_CENTER.LOCALES_PAGE.ADD_LOCALE_DIALOG.TITLE')"
|
||||
:description="t('HELP_CENTER.LOCALES_PAGE.ADD_LOCALE_DIALOG.DESCRIPTION')"
|
||||
@close="resetForm"
|
||||
@confirm="onCreate"
|
||||
>
|
||||
<div class="flex flex-col gap-6">
|
||||
@@ -98,6 +134,16 @@ defineExpose({ dialogRef });
|
||||
"
|
||||
class="[&>div>button:not(.focused)]:!outline-n-slate-5 [&>div>button:not(.focused)]:dark:!outline-n-slate-5"
|
||||
/>
|
||||
<div class="flex flex-col gap-2">
|
||||
<span class="text-sm font-medium text-n-slate-12">
|
||||
{{ t('HELP_CENTER.LOCALES_PAGE.ADD_LOCALE_DIALOG.STATUS.LABEL') }}
|
||||
</span>
|
||||
<ComboBox
|
||||
v-model="localeStatus"
|
||||
:options="statusOptions"
|
||||
class="[&>div>button:not(.focused)]:!outline-n-slate-5 [&>div>button:not(.focused)]:dark:!outline-n-slate-5"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</Dialog>
|
||||
</template>
|
||||
|
||||
@@ -29,6 +29,7 @@ const isLocaleDefault = code => {
|
||||
|
||||
const updatePortalLocales = async ({
|
||||
newAllowedLocales,
|
||||
newDraftLocales,
|
||||
defaultLocale,
|
||||
messageKey,
|
||||
}) => {
|
||||
@@ -39,6 +40,7 @@ const updatePortalLocales = async ({
|
||||
config: {
|
||||
default_locale: defaultLocale,
|
||||
allowed_locales: newAllowedLocales,
|
||||
draft_locales: newDraftLocales,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -53,8 +55,12 @@ const updatePortalLocales = async ({
|
||||
|
||||
const changeDefaultLocale = ({ localeCode }) => {
|
||||
const newAllowedLocales = props.locales.map(locale => locale.code);
|
||||
const newDraftLocales = props.locales
|
||||
.filter(locale => locale.isDraft)
|
||||
.map(locale => locale.code);
|
||||
updatePortalLocales({
|
||||
newAllowedLocales,
|
||||
newDraftLocales,
|
||||
defaultLocale: localeCode,
|
||||
messageKey: 'CHANGE_DEFAULT_LOCALE',
|
||||
});
|
||||
@@ -81,11 +87,15 @@ const deletePortalLocale = async ({ localeCode }) => {
|
||||
const updatedLocales = props.locales
|
||||
.filter(locale => locale.code !== localeCode)
|
||||
.map(locale => locale.code);
|
||||
const updatedDraftLocales = props.locales
|
||||
.filter(locale => locale.code !== localeCode && locale.isDraft)
|
||||
.map(locale => locale.code);
|
||||
|
||||
const defaultLocale = props.portal.meta.default_locale;
|
||||
|
||||
await updatePortalLocales({
|
||||
newAllowedLocales: updatedLocales,
|
||||
newDraftLocales: updatedDraftLocales,
|
||||
defaultLocale,
|
||||
messageKey: 'DELETE_LOCALE',
|
||||
});
|
||||
@@ -98,9 +108,46 @@ const deletePortalLocale = async ({ localeCode }) => {
|
||||
});
|
||||
};
|
||||
|
||||
const updateDraftLocales = async ({ localeCode, shouldDraft, messageKey }) => {
|
||||
const newAllowedLocales = props.locales.map(locale => locale.code);
|
||||
const currentDraftLocales = props.locales
|
||||
.filter(locale => locale.isDraft)
|
||||
.map(locale => locale.code);
|
||||
const newDraftLocales = shouldDraft
|
||||
? [...new Set([...currentDraftLocales, localeCode])]
|
||||
: currentDraftLocales.filter(locale => locale !== localeCode);
|
||||
|
||||
await updatePortalLocales({
|
||||
newAllowedLocales,
|
||||
newDraftLocales,
|
||||
defaultLocale: props.portal.meta.default_locale,
|
||||
messageKey,
|
||||
});
|
||||
};
|
||||
|
||||
const moveLocaleToDraft = async ({ localeCode }) => {
|
||||
await updateDraftLocales({
|
||||
localeCode,
|
||||
shouldDraft: true,
|
||||
messageKey: 'DRAFT_LOCALE',
|
||||
});
|
||||
};
|
||||
|
||||
const publishLocale = async ({ localeCode }) => {
|
||||
await updateDraftLocales({
|
||||
localeCode,
|
||||
shouldDraft: false,
|
||||
messageKey: 'PUBLISH_LOCALE',
|
||||
});
|
||||
};
|
||||
|
||||
const handleAction = ({ action }, localeCode) => {
|
||||
if (action === 'change-default') {
|
||||
changeDefaultLocale({ localeCode: localeCode });
|
||||
} else if (action === 'move-to-draft') {
|
||||
moveLocaleToDraft({ localeCode: localeCode });
|
||||
} else if (action === 'publish-locale') {
|
||||
publishLocale({ localeCode: localeCode });
|
||||
} else if (action === 'delete') {
|
||||
deletePortalLocale({ localeCode: localeCode });
|
||||
}
|
||||
@@ -114,6 +161,7 @@ const handleAction = ({ action }, localeCode) => {
|
||||
:key="index"
|
||||
:locale="locale.name"
|
||||
:is-default="isLocaleDefault(locale.code)"
|
||||
:is-draft="locale.isDraft"
|
||||
:locale-code="locale.code"
|
||||
:article-count="locale.articlesCount || 0"
|
||||
:category-count="locale.categoriesCount || 0"
|
||||
|
||||
+12
@@ -4,37 +4,49 @@ import LocalesPage from './LocalesPage.vue';
|
||||
const locales = [
|
||||
{
|
||||
name: 'English (en-US)',
|
||||
code: 'en',
|
||||
isDefault: true,
|
||||
isDraft: false,
|
||||
articleCount: 5,
|
||||
categoryCount: 5,
|
||||
},
|
||||
{
|
||||
name: 'Spanish (es-ES)',
|
||||
code: 'es',
|
||||
isDefault: false,
|
||||
isDraft: true,
|
||||
articleCount: 20,
|
||||
categoryCount: 10,
|
||||
},
|
||||
{
|
||||
name: 'English (en-UK)',
|
||||
code: 'en_GB',
|
||||
isDefault: false,
|
||||
isDraft: false,
|
||||
articleCount: 15,
|
||||
categoryCount: 7,
|
||||
},
|
||||
{
|
||||
name: 'Malay (ms-MY)',
|
||||
code: 'ms',
|
||||
isDefault: false,
|
||||
isDraft: false,
|
||||
articleCount: 15,
|
||||
categoryCount: 7,
|
||||
},
|
||||
{
|
||||
name: 'Malayalam (ml-IN)',
|
||||
code: 'ml',
|
||||
isDefault: false,
|
||||
isDraft: false,
|
||||
articleCount: 10,
|
||||
categoryCount: 5,
|
||||
},
|
||||
{
|
||||
name: 'Hindi (hi-IN)',
|
||||
code: 'hi',
|
||||
isDefault: false,
|
||||
isDraft: false,
|
||||
articleCount: 15,
|
||||
categoryCount: 7,
|
||||
},
|
||||
|
||||
@@ -14,6 +14,10 @@ defineProps({
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
hideToggle: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
});
|
||||
|
||||
const modelValue = defineModel({ type: Boolean, default: false });
|
||||
@@ -28,7 +32,8 @@ const modelValue = defineModel({ type: Boolean, default: false });
|
||||
<span class="text-heading-3 text-n-slate-12">
|
||||
{{ header }}
|
||||
</span>
|
||||
<ToggleSwitch v-model="modelValue" />
|
||||
<div v-if="hideToggle" class="size-2" />
|
||||
<ToggleSwitch v-else v-model="modelValue" />
|
||||
</div>
|
||||
<span v-if="description" class="text-body-main text-n-slate-11">
|
||||
{{ description }}
|
||||
|
||||
+7
@@ -27,6 +27,7 @@ const initialState = {
|
||||
conversationFaqs: false,
|
||||
memories: false,
|
||||
citations: false,
|
||||
contactAttributes: false,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -59,6 +60,7 @@ const updateStateFromAssistant = assistant => {
|
||||
conversationFaqs: config.feature_faq || false,
|
||||
memories: config.feature_memory || false,
|
||||
citations: config.feature_citation || false,
|
||||
contactAttributes: config.feature_contact_attributes || false,
|
||||
};
|
||||
};
|
||||
|
||||
@@ -79,6 +81,7 @@ const handleBasicInfoUpdate = async () => {
|
||||
feature_faq: state.features.conversationFaqs,
|
||||
feature_memory: state.features.memories,
|
||||
feature_citation: state.features.citations,
|
||||
feature_contact_attributes: state.features.contactAttributes,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -138,6 +141,10 @@ watch(
|
||||
<input v-model="state.features.citations" type="checkbox" />
|
||||
{{ t('CAPTAIN.ASSISTANTS.FORM.FEATURES.ALLOW_CITATIONS') }}
|
||||
</label>
|
||||
<label class="flex items-center gap-2">
|
||||
<input v-model="state.features.contactAttributes" type="checkbox" />
|
||||
{{ t('CAPTAIN.ASSISTANTS.FORM.FEATURES.ALLOW_CONTACT_ATTRIBUTES') }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -828,6 +828,8 @@ onMounted(() => {
|
||||
}
|
||||
});
|
||||
|
||||
defineExpose({ focusEditorInputField });
|
||||
|
||||
// BUS Event to insert text or markdown into the editor at the
|
||||
// current cursor position.
|
||||
// Components using this
|
||||
|
||||
@@ -99,6 +99,7 @@ export default {
|
||||
} = useUISettings();
|
||||
|
||||
const replyEditor = useTemplateRef('replyEditor');
|
||||
const messageEditor = useTemplateRef('messageEditor');
|
||||
const copilot = useCopilotReply();
|
||||
const shortcutKey = useKbd(['$mod', '+', 'enter']);
|
||||
|
||||
@@ -109,6 +110,7 @@ export default {
|
||||
setQuotedReplyFlagForInbox,
|
||||
fetchQuotedReplyFlagFromUISettings,
|
||||
replyEditor,
|
||||
messageEditor,
|
||||
copilot,
|
||||
shortcutKey,
|
||||
};
|
||||
@@ -507,7 +509,7 @@ export default {
|
||||
);
|
||||
|
||||
this.fetchAndSetReplyTo();
|
||||
emitter.on(BUS_EVENTS.TOGGLE_REPLY_TO_MESSAGE, this.fetchAndSetReplyTo);
|
||||
emitter.on(BUS_EVENTS.TOGGLE_REPLY_TO_MESSAGE, this.onReplyToMessage);
|
||||
|
||||
// A hacky fix to solve the drag and drop
|
||||
// Is showing on top of new conversation modal drag and drop
|
||||
@@ -522,7 +524,7 @@ export default {
|
||||
unmounted() {
|
||||
document.removeEventListener('paste', this.onPaste);
|
||||
document.removeEventListener('keydown', this.handleKeyEvents);
|
||||
emitter.off(BUS_EVENTS.TOGGLE_REPLY_TO_MESSAGE, this.fetchAndSetReplyTo);
|
||||
emitter.off(BUS_EVENTS.TOGGLE_REPLY_TO_MESSAGE, this.onReplyToMessage);
|
||||
emitter.off(BUS_EVENTS.INSERT_INTO_NORMAL_EDITOR, this.addIntoEditor);
|
||||
emitter.off(
|
||||
BUS_EVENTS.NEW_CONVERSATION_MODAL,
|
||||
@@ -1191,6 +1193,15 @@ export default {
|
||||
return false;
|
||||
});
|
||||
},
|
||||
onReplyToMessage() {
|
||||
this.fetchAndSetReplyTo();
|
||||
if (this.inReplyTo) {
|
||||
this.$nextTick(() => {
|
||||
const pos = this.isSignatureEnabledForInbox ? 'start' : 'end';
|
||||
this.messageEditor?.focusEditorInputField(pos);
|
||||
});
|
||||
}
|
||||
},
|
||||
resetReplyToMessage() {
|
||||
const replyStorageKey = LOCAL_STORAGE_KEYS.MESSAGE_REPLY_TO;
|
||||
LocalStorage.deleteFromJsonStore(replyStorageKey, this.conversationId);
|
||||
@@ -1313,6 +1324,7 @@ export default {
|
||||
/>
|
||||
<WootMessageEditor
|
||||
v-else-if="!showAudioRecorderEditor"
|
||||
ref="messageEditor"
|
||||
v-model="message"
|
||||
:conversation-id="conversationId"
|
||||
:editor-id="editorStateId"
|
||||
|
||||
@@ -32,6 +32,7 @@ const emit = defineEmits(['dismiss']);
|
||||
xs
|
||||
slate
|
||||
icon="i-lucide-x"
|
||||
class="flex-shrink-0"
|
||||
@click.stop="emit('dismiss')"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -133,20 +133,55 @@ export const ARTICLE_TABS_OPTIONS = [
|
||||
},
|
||||
];
|
||||
|
||||
export const LOCALE_MENU_ITEMS = [
|
||||
{
|
||||
export const LOCALE_MENU_ITEMS = {
|
||||
makeDefault: {
|
||||
label: 'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.MAKE_DEFAULT',
|
||||
action: 'change-default',
|
||||
value: 'default',
|
||||
icon: 'i-lucide-star',
|
||||
},
|
||||
{
|
||||
moveToDraft: {
|
||||
label: 'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.MOVE_TO_DRAFT',
|
||||
action: 'move-to-draft',
|
||||
value: 'draft',
|
||||
icon: 'i-lucide-eye-off',
|
||||
},
|
||||
publishLocale: {
|
||||
label: 'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.PUBLISH_LOCALE',
|
||||
action: 'publish-locale',
|
||||
value: 'publish',
|
||||
icon: 'i-lucide-eye',
|
||||
},
|
||||
delete: {
|
||||
label: 'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.DELETE',
|
||||
action: 'delete',
|
||||
value: 'delete',
|
||||
icon: 'i-lucide-trash',
|
||||
},
|
||||
];
|
||||
};
|
||||
|
||||
const disableLocaleMenuItems = menuItems =>
|
||||
menuItems.map(item => ({ ...item, disabled: true }));
|
||||
|
||||
export const buildLocaleMenuItems = ({ isDefault, isDraft }) => {
|
||||
if (isDefault) {
|
||||
return disableLocaleMenuItems([
|
||||
LOCALE_MENU_ITEMS.makeDefault,
|
||||
LOCALE_MENU_ITEMS.moveToDraft,
|
||||
LOCALE_MENU_ITEMS.delete,
|
||||
]);
|
||||
}
|
||||
|
||||
if (isDraft) {
|
||||
return [LOCALE_MENU_ITEMS.publishLocale, LOCALE_MENU_ITEMS.delete];
|
||||
}
|
||||
|
||||
return [
|
||||
LOCALE_MENU_ITEMS.makeDefault,
|
||||
LOCALE_MENU_ITEMS.moveToDraft,
|
||||
LOCALE_MENU_ITEMS.delete,
|
||||
];
|
||||
};
|
||||
|
||||
export const ARTICLE_EDITOR_STATUS_OPTIONS = {
|
||||
published: ['archive', 'draft'],
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
import { buildPortalArticleURL, buildPortalURL } from '../portalHelper';
|
||||
import {
|
||||
buildLocaleMenuItems,
|
||||
buildPortalArticleURL,
|
||||
buildPortalURL,
|
||||
} from '../portalHelper';
|
||||
|
||||
describe('PortalHelper', () => {
|
||||
describe('buildPortalURL', () => {
|
||||
@@ -68,4 +72,39 @@ describe('PortalHelper', () => {
|
||||
).toEqual('https://app.chatwoot.com/hc/handbook/articles/article-slug');
|
||||
});
|
||||
});
|
||||
|
||||
describe('buildLocaleMenuItems', () => {
|
||||
it('returns disabled actions for the default locale', () => {
|
||||
expect(
|
||||
buildLocaleMenuItems({
|
||||
isDefault: true,
|
||||
isDraft: false,
|
||||
})
|
||||
).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({ action: 'change-default', disabled: true }),
|
||||
expect.objectContaining({ action: 'move-to-draft', disabled: true }),
|
||||
expect.objectContaining({ action: 'delete', disabled: true }),
|
||||
])
|
||||
);
|
||||
});
|
||||
|
||||
it('returns publish and delete actions for draft locales', () => {
|
||||
expect(
|
||||
buildLocaleMenuItems({
|
||||
isDefault: false,
|
||||
isDraft: true,
|
||||
}).map(({ action }) => action)
|
||||
).toEqual(['publish-locale', 'delete']);
|
||||
});
|
||||
|
||||
it('returns default, draft, and delete actions for live locales', () => {
|
||||
expect(
|
||||
buildLocaleMenuItems({
|
||||
isDefault: false,
|
||||
isDraft: false,
|
||||
}).map(({ action }) => action)
|
||||
).toEqual(['change-default', 'move-to-draft', 'delete']);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Settings",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"ADMINISTRATOR": "المدير",
|
||||
"AGENT": "وكيل الدعم"
|
||||
},
|
||||
"COUNT": "",
|
||||
"COUNT": "{n} وكيل | {n} وكلاء",
|
||||
"LIST": {
|
||||
"404": "لا يوجد وكلاء دعم مرتبطين بهذا الحساب",
|
||||
"TITLE": "إدارة وكلاء الدعم في فريقك",
|
||||
|
||||
@@ -23,52 +23,52 @@
|
||||
},
|
||||
"DEFAULT_USER": "النظام",
|
||||
"AUTOMATION_RULE": {
|
||||
"ADD": "{agentName} أنشأ قاعدة أتمتة جديدة (##{id})",
|
||||
"EDIT": "{agentName} قام بتحديث قاعدة أتمتة (##{id})",
|
||||
"DELETE": "{agentName} حذف قاعدة أتمتة (##{id})"
|
||||
"ADD": "{agentName} أنشأ قاعدة أتمتة جديدة (#{id})",
|
||||
"EDIT": "{agentName} قام بتحديث قاعدة أتمتة (#{id})",
|
||||
"DELETE": "{agentName} حذف قاعدة أتمتة (#{id})"
|
||||
},
|
||||
"ACCOUNT_USER": {
|
||||
"ADD": "{agentName} دعا {invitee} إلى الحساب كـ {role}",
|
||||
"EDIT": {
|
||||
"SELF": "{agentName} غير {attributes} الخاصة به إلى {values}",
|
||||
"OTHER": "{agentName} غير {attributes} لـ {user} إلى {values}",
|
||||
"DELETED": "{agentName} غير {attributes} لـ %{user} إلى {values}"
|
||||
"DELETED": "{agentName} غير {attributes} للمستخدم المحذوف إلى {values}"
|
||||
}
|
||||
},
|
||||
"INBOX": {
|
||||
"ADD": "{agentName} أنشأ صندوق وارد جديد (##{id})",
|
||||
"EDIT": "{agentName} قام بتحديث صندوق الوارد (##{id})",
|
||||
"DELETE": "{agentName} حذف صندوق الوارد (##{id})"
|
||||
"ADD": "{agentName} أنشأ صندوق وارد جديد (#{id})",
|
||||
"EDIT": "{agentName} قام بتحديث صندوق الوارد (#{id})",
|
||||
"DELETE": "{agentName} حذف صندوق الوارد (#{id})"
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"ADD": "{agentName} أنشأ Webhook جديد (##{id})",
|
||||
"EDIT": "{agentName} قام بتحديث Webhook (##{id})",
|
||||
"DELETE": "{agentName} حذف Webhook (##{id})"
|
||||
"ADD": "{agentName} أنشأ Webhook جديد (#{id})",
|
||||
"EDIT": "{agentName} قام بتحديث Webhook (#{id})",
|
||||
"DELETE": "{agentName} حذف Webhook (#{id})"
|
||||
},
|
||||
"USER_ACTION": {
|
||||
"SIGN_IN": "{agentName} قام بتسجيل الدخول",
|
||||
"SIGN_OUT": "{agentName} قام بتسجيل الخروج"
|
||||
},
|
||||
"TEAM": {
|
||||
"ADD": "{agentName} أنشأ فريق جديد (##{id})",
|
||||
"EDIT": "{agentName} قام بتحديث الفريق (##{id})",
|
||||
"DELETE": "{agentName} حذف الفريق (##{id})"
|
||||
"ADD": "{agentName} أنشأ فريق جديد (#{id})",
|
||||
"EDIT": "{agentName} قام بتحديث الفريق (#{id})",
|
||||
"DELETE": "{agentName} حذف الفريق (#{id})"
|
||||
},
|
||||
"MACRO": {
|
||||
"ADD": "{agentName} أنشأ ماكرو جديد (##{id})",
|
||||
"EDIT": "{agentName} قام بتحديث ماكرو (##{id})",
|
||||
"DELETE": "{agentName} حذف ماكرو (##{id})"
|
||||
"ADD": "{agentName} أنشأ ماكرو جديد (#{id})",
|
||||
"EDIT": "{agentName} قام بتحديث ماكرو (#{id})",
|
||||
"DELETE": "{agentName} حذف ماكرو (#{id})"
|
||||
},
|
||||
"INBOX_MEMBER": {
|
||||
"ADD": "{agentName} أضاف {user} إلى صندوق الوارد (##{inbox_id})",
|
||||
"REMOVE": "{agentName} أزال {user} من صندوق الوارد (##{inbox_id})"
|
||||
"ADD": "{agentName} أضاف {user} إلى صندوق الوارد (#{inbox_id})",
|
||||
"REMOVE": "{agentName} أزال {user} من صندوق الوارد (#{inbox_id})"
|
||||
},
|
||||
"TEAM_MEMBER": {
|
||||
"ADD": "{agentName} أضاف {user} إلى الفريق (##{team_id})",
|
||||
"REMOVE": "{agentName} أزال {user} من الفريق (##{team_id})"
|
||||
"ADD": "{agentName} أضاف {user} إلى الفريق (#{team_id})",
|
||||
"REMOVE": "{agentName} أزال {user} من الفريق (#{team_id})"
|
||||
},
|
||||
"ACCOUNT": {
|
||||
"EDIT": "{agentName} قام بتحديث إعدادات الحساب (##{id})"
|
||||
"EDIT": "{agentName} قام بتحديث إعدادات الحساب (#{id})"
|
||||
},
|
||||
"CONVERSATION": {
|
||||
"DELETE": "{agentName} deleted conversation #{id}"
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
"FAILED": "تعذر تعيين الوكيل. الرجاء المحاولة مرة أخرى."
|
||||
},
|
||||
"LABEL_ASSIGNMENT": {
|
||||
"SUCCESFUL": "تعيين تسمية ##{labelName} لمعرف المحادثة {conversationId}",
|
||||
"SUCCESFUL": "تعيين تسمية #{labelName} لمعرف المحادثة {conversationId}",
|
||||
"FAILED": "تعذر تعيين التسمية. الرجاء المحاولة مرة أخرى."
|
||||
},
|
||||
"LABEL_REMOVAL": {
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "مباشر"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "الإعدادات",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "وكيل الدعم",
|
||||
"INBOX_AGENTS_SUB_TEXT": "إضافة أو إزالة وكلاء من صندوق الوارد هذا",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Settings",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Settings",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Агенти",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Settings",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "En directe"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Configuracions",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Afegir o eliminar agents d'aquesta safata d'entrada",
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
"FAILED": "Couldn't remove label. Please try again."
|
||||
},
|
||||
"TEAM_ASSIGNMENT": {
|
||||
"SUCCESFUL": "Přiřazený tým #{team} ke konverzaci id {conversationId}",
|
||||
"SUCCESFUL": "Přiřazený tým \"{team}\" ke konverzaci id {conversationId}",
|
||||
"FAILED": "Nelze přiřadit tým. Zkuste to prosím znovu."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Nastavení",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agenti",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Přidat nebo odebrat agenty z této složky doručené pošty",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Levende"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Indstillinger",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agenter",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Tilføj eller fjern agenter fra denne indbakke",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Einstellungen",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agenten",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Hinzufügen oder Entfernen von Agenten zu diesem Posteingang",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Ζωντανά"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Ρυθμίσεις",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Πράκτορες",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Προσθέστε ή αφαιρέστε πράκτορες σε αυτό το κιβώτιο",
|
||||
|
||||
@@ -316,6 +316,18 @@
|
||||
"SUCCESS_MESSAGE": "Locale removed from portal successfully",
|
||||
"ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
|
||||
}
|
||||
},
|
||||
"DRAFT_LOCALE": {
|
||||
"API": {
|
||||
"SUCCESS_MESSAGE": "Locale moved to draft successfully",
|
||||
"ERROR_MESSAGE": "Unable to move locale to draft. Try again."
|
||||
}
|
||||
},
|
||||
"PUBLISH_LOCALE": {
|
||||
"API": {
|
||||
"SUCCESS_MESSAGE": "Locale published successfully",
|
||||
"ERROR_MESSAGE": "Unable to publish locale. Try again."
|
||||
}
|
||||
}
|
||||
},
|
||||
"TABLE": {
|
||||
@@ -644,8 +656,11 @@
|
||||
"ARTICLES_COUNT": "{count} article | {count} articles",
|
||||
"CATEGORIES_COUNT": "{count} category | {count} categories",
|
||||
"DEFAULT": "Default",
|
||||
"DRAFT": "Draft",
|
||||
"DROPDOWN_MENU": {
|
||||
"MAKE_DEFAULT": "Make default",
|
||||
"MOVE_TO_DRAFT": "Move to draft",
|
||||
"PUBLISH_LOCALE": "Publish locale",
|
||||
"DELETE": "Delete"
|
||||
}
|
||||
},
|
||||
@@ -655,6 +670,13 @@
|
||||
"COMBOBOX": {
|
||||
"PLACEHOLDER": "Select locale..."
|
||||
},
|
||||
"STATUS": {
|
||||
"LABEL": "Status",
|
||||
"OPTIONS": {
|
||||
"LIVE": "Published",
|
||||
"DRAFT": "Draft"
|
||||
}
|
||||
},
|
||||
"API": {
|
||||
"SUCCESS_MESSAGE": "Locale added successfully",
|
||||
"ERROR_MESSAGE": "Unable to add locale. Try again."
|
||||
|
||||
@@ -710,8 +710,20 @@
|
||||
"MESSENGER_SUB_HEAD": "Place this button inside your body tag",
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"ALLOW_MOBILE_WEBVIEW": {
|
||||
"LABEL": "Enable widget in mobile apps",
|
||||
"SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
|
||||
},
|
||||
"IDENTITY_VALIDATION": {
|
||||
"TITLE": "Identity Validation",
|
||||
"DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
|
||||
"SECRET_KEY": "Secret Key",
|
||||
"VIEW_DOCS": "View documentation",
|
||||
"REQUIRE_LABEL": "Require identity validation for all conversations",
|
||||
"REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
|
||||
},
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
|
||||
@@ -527,7 +527,8 @@
|
||||
"TITLE": "Features",
|
||||
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
|
||||
"ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
|
||||
"ALLOW_CITATIONS": "Include source citations in responses"
|
||||
"ALLOW_CITATIONS": "Include source citations in responses",
|
||||
"ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
|
||||
}
|
||||
},
|
||||
"EDIT": {
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
"WHATSAPP_CLOUD": "Nube de WhatsApp",
|
||||
"WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
|
||||
"TWILIO_DESC": "Connect via Twilio credentials",
|
||||
"360_DIALOG": "360 Diálogo"
|
||||
"360_DIALOG": "360dialog"
|
||||
},
|
||||
"SELECT_PROVIDER": {
|
||||
"TITLE": "Select your API provider",
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "En vivo"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Ajustes",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agentes",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Añadir o quitar agentes de esta bandeja de entrada",
|
||||
|
||||
@@ -540,11 +540,11 @@
|
||||
"HEADER": "Ajustes",
|
||||
"BASIC_SETTINGS": {
|
||||
"TITLE": "Configuraciones básicas",
|
||||
"DESCRIPTION": ""
|
||||
"DESCRIPTION": "Personaliza lo que dice el asistente al finalizar una conversación o al transferirla a una persona."
|
||||
},
|
||||
"SYSTEM_SETTINGS": {
|
||||
"TITLE": "System settings",
|
||||
"DESCRIPTION": ""
|
||||
"DESCRIPTION": "Personaliza lo que dice el asistente al finalizar una conversación o al transferirla a una persona."
|
||||
},
|
||||
"CONTROL_ITEMS": {
|
||||
"TITLE": "The Fun Stuff",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Settings",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "زنده"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "تنظیمات",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "ایجنت ها",
|
||||
"INBOX_AGENTS_SUB_TEXT": "اضافه کردن یا حذف کردن دسترسی ایجنت به صندوق ورودی",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Asetukset",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Edustajat",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Lisää tai poista edustajia tästä saapuneet-kansiosta",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "En direct"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Paramètres",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Ajouter ou supprimer des agents de cette boîte de réception",
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
"SCHEDULED_DELETION": {
|
||||
"TITLE": "החשבון מתוזמן למחיקה",
|
||||
"MESSAGE_MANUAL": "חשבון זה מתוזמן למחיקה ב- {deletionDate}. הדבר התבקש על ידי מנהל מערכת. תוכל לבטל את המחיקה לפני תאריך זה.",
|
||||
"MESSAGE_INACTIVITY": ".",
|
||||
"MESSAGE_INACTIVITY": "חשבון זה מתוזמן למחיקה ב- {deletionDate} עקב חוסר פעילות בחשבון. תוכל לבטל את המחיקה לפני תאריך זה.",
|
||||
"CLEAR_BUTTON": "בטל מחיקה מתוזמנת"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "ארגז חול (Sandbox)",
|
||||
"LIVE": "לחיות"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "הגדרות",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "דומיינים מורשים",
|
||||
"SUBTITLE": "הוסף דומיינים כלליים או רגילים מופרדים בפסיקים (השאר ריק כדי לאפשר הכל), לדוגמה: *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "הזן דומיינים מופרדים בפסיקים (לדוגמה: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "סוכנים",
|
||||
"INBOX_AGENTS_SUB_TEXT": "הוסף או הסר נציגים מתיבת הדואר הנכנס הזו",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Settings",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Settings",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agenti",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
},
|
||||
"CONFIRM": {
|
||||
"TITLE": "Biztosan törölni akarod: {attributeName}",
|
||||
"PLACE_HOLDER": "Kérlek gépeld a megerősítéshez",
|
||||
"PLACE_HOLDER": "Kérlek írd be: {attributeName}",
|
||||
"MESSAGE": "A törlés eltávolítja az egyéni tulajdonságot",
|
||||
"YES": "Törlés ",
|
||||
"NO": "Mégse"
|
||||
|
||||
@@ -231,7 +231,7 @@
|
||||
},
|
||||
"UNDEFINED_VARIABLES": {
|
||||
"TITLE": "Definiálatlan változók",
|
||||
"MESSAGE": "Definiálatlan változók vannak az üzenetedben. Így is el szeretnéd küldeni az üzenetet?",
|
||||
"MESSAGE": "Az üzeneted {undefinedVariablesCount} definiálatlan változót tartalmaz: {undefinedVariables}. Így is el szeretnéd küldeni az üzenetet?",
|
||||
"CONFIRM": {
|
||||
"YES": "Elküldés",
|
||||
"CANCEL": "Mégse"
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Élő"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Beállítások",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Ügynökök",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Ügynökök hosszáadása vagy eltávolítása az inboxból",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Settings",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
},
|
||||
"CONFIRM": {
|
||||
"TITLE": "Anda yakin akan menghapus - {attributeName}",
|
||||
"PLACE_HOLDER": "Silakan ketik %{attributeName} untuk konfirmasi",
|
||||
"PLACE_HOLDER": "Silakan ketik {attributeName} untuk konfirmasi",
|
||||
"MESSAGE": "Menghapus akan menghapus atribut kustom",
|
||||
"YES": "Hapus ",
|
||||
"NO": "Batalkan"
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
|
||||
"BUTTON_TEXT": "Hapus",
|
||||
"DISMISS": "Batalkan",
|
||||
"PLACE_HOLDER": "Silakan ketik %{accountName} untuk konfirmasi"
|
||||
"PLACE_HOLDER": "Silakan ketik {accountName} untuk konfirmasi"
|
||||
},
|
||||
"SUCCESS": "Account marked for deletion",
|
||||
"FAILURE": "Could not delete account, try again!",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Langsung"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Pengaturan",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agen",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Tambahkan atau hapus agen dari kotak masuk ini",
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
},
|
||||
"CONFIRM": {
|
||||
"TITLE": "Are you sure you want to delete the team?",
|
||||
"PLACE_HOLDER": "Silakan ketik %{teamName} untuk konfirmasi",
|
||||
"PLACE_HOLDER": "Silakan ketik {teamName} untuk konfirmasi",
|
||||
"MESSAGE": "Menghapus tim akan menghilangkan alokasi tim dari percakapan yang telah ditetapkan terhadap tim ini.",
|
||||
"YES": "Hapus ",
|
||||
"NO": "Batalkan"
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
"FAILED": "Couldn't remove label. Please try again."
|
||||
},
|
||||
"TEAM_ASSIGNMENT": {
|
||||
"SUCCESFUL": "Úthlutaði teymi #{team} á samtalsauðkenni {conversationId}",
|
||||
"SUCCESFUL": "Úthlutaði teymi \"{team}\" á samtalsauðkenni {conversationId}",
|
||||
"FAILED": "Couldn't assign team. Please try again."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Stillingar",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Þjónustufulltrúar",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Configurazione Webhook",
|
||||
"DESCRIPTION": "L'URL Webhook è necessario per il tuo account WhatsApp Business per ricevere messaggi dai clienti",
|
||||
"ACTION_REQUIRED": "Webhook non configurato",
|
||||
"REGISTER_BUTTON": "Registra Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registrato correttamente",
|
||||
"REGISTER_ERROR": "Impossibile registrare il webhook. Riprova.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configurato correttamente",
|
||||
"URL_MISMATCH": "URL Webhook non corrisponde"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Impostazioni",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Domini Consentiti",
|
||||
"SUBTITLE": "Aggiungi caratteri jolly o domini regolari separati da virgole (lasciare vuoto per consentire tutti), ad esempio *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Inserisci i domini separati da virgole (ad esempio: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Operatori",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Aggiungi o rimuovi operatori da questa inbox",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "設定",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "担当者",
|
||||
"INBOX_AGENTS_SUB_TEXT": "この受信トレイから担当者を追加または削除する",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Settings",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"LOADING_EDITOR": "에디터 로딩 중...",
|
||||
"DESCRIPTION": "에이전트 봇은 팀에서 가장 뛰어난 멤버와 같습니다. 사소한 일은 봇이 처리해 주니, 중요한 일에 집중하세요. 한번 사용해 보세요. 이 페이지에서 봇을 관리하거나 '봇 추가' 버튼을 통해 새 봇을 생성할 수 있습니다.",
|
||||
"LEARN_MORE": "에이전트 봇에 대해 알아보기",
|
||||
"COUNT": "{n}개의 봇 | {n}개의 봇",
|
||||
"SEARCH_PLACEHOLDER": "에이전트 봇 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 봇이 없습니다",
|
||||
"GLOBAL_BOT": "시스템 봇",
|
||||
"GLOBAL_BOT_BADGE": "시스템",
|
||||
"AVATAR": {
|
||||
@@ -99,9 +102,6 @@
|
||||
},
|
||||
"TYPES": {
|
||||
"WEBHOOK": "웹훅 봇"
|
||||
},
|
||||
"COUNT": "{n}개의 봇 | {n}개의 봇",
|
||||
"SEARCH_PLACEHOLDER": "에이전트 봇 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 봇이 없습니다"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
"ADMINISTRATOR": "관리자",
|
||||
"AGENT": "에이전트"
|
||||
},
|
||||
"COUNT": "{n}명의 에이전트 | {n}명의 에이전트",
|
||||
"LIST": {
|
||||
"404": "이 계정에 연결된 에이전트가 없습니다.",
|
||||
"TITLE": "팀 내 에이전트 관리",
|
||||
@@ -96,6 +97,8 @@
|
||||
"ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
|
||||
}
|
||||
},
|
||||
"SEARCH_PLACEHOLDER": "에이전트 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 에이전트가 없습니다",
|
||||
"SEARCH": {
|
||||
"NO_RESULTS": "검색 결과가 없습니다."
|
||||
},
|
||||
@@ -119,9 +122,6 @@
|
||||
"INPUT": "에이전트 검색"
|
||||
}
|
||||
}
|
||||
},
|
||||
"COUNT": "{n}명의 에이전트 | {n}명의 에이전트",
|
||||
"SEARCH_PLACEHOLDER": "에이전트 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 에이전트가 없습니다"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
"LOADING": "사용자 지정 속성들 가져오기",
|
||||
"DESCRIPTION": "사용자 지정 속성은 연락처 또는 대화에 대한 추가 세부 정보를 추적합니다. 예를 들어 구독 플랜이나 첫 구매 날짜 등이 있습니다. 텍스트, 리스트, 숫자 등 다양한 유형의 사용자 지정 속성을 추가하여 필요한 정보를 수집할 수 있습니다.",
|
||||
"LEARN_MORE": "사용자 지정 속성에 대해 더 알아보기",
|
||||
"COUNT": "{n}개의 사용자 지정 속성 | {n}개의 사용자 지정 속성",
|
||||
"SEARCH_PLACEHOLDER": "사용자 지정 속성 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 사용자 지정 속성이 없습니다",
|
||||
"ATTRIBUTE_MODELS": {
|
||||
"CONVERSATION": "대화",
|
||||
"CONTACT": "연락처"
|
||||
@@ -137,9 +140,6 @@
|
||||
"BADGES": {
|
||||
"PRE_CHAT": "사전 채팅",
|
||||
"RESOLUTION": "해결"
|
||||
},
|
||||
"COUNT": "{n}개의 사용자 지정 속성 | {n}개의 사용자 지정 속성",
|
||||
"SEARCH_PLACEHOLDER": "사용자 지정 속성 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 사용자 지정 속성이 없습니다"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,11 @@
|
||||
"HEADER": "자동화",
|
||||
"DESCRIPTION": "자동화를 통해 라벨을 추가하고 가장 적합한 상담원에게 대화를 배정하는 등 수작업이 필요한 기존 프로세스를 대체하고 간소화할 수 있습니다. 이를 통해 팀은 일상적인 업무에 소요되는 시간을 줄이면서 자신의 강점에 집중할 수 있습니다.",
|
||||
"LEARN_MORE": "자동화에 대해 더 알아보기",
|
||||
"COUNT": "{n}개의 자동화 규칙 | {n}개의 자동화 규칙",
|
||||
"HEADER_BTN_TXT": "자동화 규칙 추가",
|
||||
"LOADING": "자동화 규칙 가져오는 중",
|
||||
"SEARCH_PLACEHOLDER": "자동화 규칙 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 자동화 규칙이 없습니다",
|
||||
"ADD": {
|
||||
"TITLE": "자동화 규칙 추가",
|
||||
"SUBMIT": "만들기",
|
||||
@@ -180,9 +183,6 @@
|
||||
"TEAM_NAME": "팀",
|
||||
"PRIORITY": "우선순위",
|
||||
"LABELS": "라벨"
|
||||
},
|
||||
"COUNT": "{n}개의 자동화 규칙 | {n}개의 자동화 규칙",
|
||||
"SEARCH_PLACEHOLDER": "자동화 규칙 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 자동화 규칙이 없습니다"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,10 @@
|
||||
"UPDATE_SUCCESFUL": "대화 상태가 성공적으로 업데이트되었습니다.",
|
||||
"UPDATE_FAILED": "대화 업데이트에 실패했습니다. 다시 시도하십시오."
|
||||
},
|
||||
"RESOLVE": {
|
||||
"ALL_MISSING_ATTRIBUTES": "필수 속성이 누락되어 대화를 해결할 수 없습니다",
|
||||
"PARTIAL_SUCCESS": "일부 대화는 필수 속성이 필요하여 건너뛰었습니다"
|
||||
},
|
||||
"LABELS": {
|
||||
"ASSIGN_LABELS": "라벨 배정",
|
||||
"NO_LABELS_FOUND": "라벨을 찾을 수 없습니다",
|
||||
@@ -36,10 +40,6 @@
|
||||
"ASSIGN_SELECTED_TEAMS": "선택한 팀 배정",
|
||||
"ASSIGN_SUCCESFUL": "팀이 성공적으로 배정되었습니다.",
|
||||
"ASSIGN_FAILED": "팀 배정에 실패했습니다. 다시 시도하십시오."
|
||||
},
|
||||
"RESOLVE": {
|
||||
"ALL_MISSING_ATTRIBUTES": "필수 속성이 누락되어 대화를 해결할 수 없습니다",
|
||||
"PARTIAL_SUCCESS": "일부 대화는 필수 속성이 필요하여 건너뛰었습니다"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,11 @@
|
||||
"HEADER": "미리 준비된 답변",
|
||||
"LEARN_MORE": "미리 준비된 답변에 대해 알아보기",
|
||||
"DESCRIPTION": "미리 준비된 응답은 대화에 신속하게 응답할 수 있도록 도와주는 미리 작성된 응답 템플릿입니다. 에이전트는 대화 중에 '/' 문자 뒤에 단축 코드를 입력하여 미리 준비된 응답을 삽입할 수 있습니다. ",
|
||||
"COUNT": "{n}개의 미리 준비된 응답 | {n}개의 미리 준비된 응답",
|
||||
"HEADER_BTN_TXT": "미리 준비된 응답 추가",
|
||||
"LOADING": "미리 준비된 응답을 가져오는 중...",
|
||||
"SEARCH_PLACEHOLDER": "미리 준비된 응답 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 미리 준비된 응답이 없습니다",
|
||||
"SEARCH_404": "이 쿼리와 일치하는 항목이 없습니다.",
|
||||
"LIST": {
|
||||
"404": "이 계정에는 미리 준비된 답변이 없습니다.",
|
||||
@@ -72,9 +75,6 @@
|
||||
"YES": "예, 삭제합니다. ",
|
||||
"NO": "아니요, 유지합니다. "
|
||||
}
|
||||
},
|
||||
"COUNT": "{n}개의 미리 준비된 응답 | {n}개의 미리 준비된 응답",
|
||||
"SEARCH_PLACEHOLDER": "미리 준비된 응답 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 미리 준비된 응답이 없습니다"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -457,6 +457,9 @@
|
||||
"INSTAGRAM": {
|
||||
"PLACEHOLDER": "Instagram 추가"
|
||||
},
|
||||
"TELEGRAM": {
|
||||
"PLACEHOLDER": "Telegram 추가"
|
||||
},
|
||||
"TIKTOK": {
|
||||
"PLACEHOLDER": "TikTok 추가"
|
||||
},
|
||||
@@ -465,9 +468,6 @@
|
||||
},
|
||||
"TWITTER": {
|
||||
"PLACEHOLDER": "Twitter 추가"
|
||||
},
|
||||
"TELEGRAM": {
|
||||
"PLACEHOLDER": "Telegram 추가"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -61,6 +61,7 @@
|
||||
"UNSUPPORTED_MESSAGE": "이 메시지는 지원되지 않습니다. 확인하려면 원래 플랫폼에서 열어 주십시오.",
|
||||
"UNSUPPORTED_MESSAGE_FACEBOOK": "이 메시지는 지원되지 않습니다. Facebook Messenger 앱에서 이 메시지를 확인할 수 있습니다.",
|
||||
"UNSUPPORTED_MESSAGE_INSTAGRAM": "이 메시지는 지원되지 않습니다. Instagram 앱에서 이 메시지를 확인할 수 있습니다.",
|
||||
"UNSUPPORTED_MESSAGE_TIKTOK": "이 메시지는 지원되지 않습니다. TikTok 앱에서 이 메시지를 확인할 수 있습니다.",
|
||||
"SUCCESS_DELETE_MESSAGE": "메시지가 성공적으로 삭제되었습니다",
|
||||
"FAIL_DELETE_MESSSAGE": "메시지를 삭제할 수 없습니다! 다시 시도해 주십시오.",
|
||||
"NO_RESPONSE": "응답 없음",
|
||||
@@ -173,13 +174,13 @@
|
||||
"SUCCESFUL": "라벨 #{labelName}이(가) 대화 ID {conversationId}에 배정되었습니다",
|
||||
"FAILED": "라벨을 배정할 수 없습니다. 다시 시도해 주십시오."
|
||||
},
|
||||
"TEAM_ASSIGNMENT": {
|
||||
"SUCCESFUL": "팀 \"{team}\"이(가) 대화 ID {conversationId}에 배정되었습니다",
|
||||
"FAILED": "팀을 배정할 수 없습니다. 다시 시도해 주십시오."
|
||||
},
|
||||
"LABEL_REMOVAL": {
|
||||
"SUCCESFUL": "라벨 #{labelName}이(가) 대화 ID {conversationId}에서 제거되었습니다",
|
||||
"FAILED": "라벨을 제거할 수 없습니다. 다시 시도해 주십시오."
|
||||
},
|
||||
"TEAM_ASSIGNMENT": {
|
||||
"SUCCESFUL": "팀 \"{team}\"이(가) 대화 ID {conversationId}에 배정되었습니다",
|
||||
"FAILED": "팀을 배정할 수 없습니다. 다시 시도해 주십시오."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -189,13 +190,13 @@
|
||||
"DISABLE_SIGN_TOOLTIP": "서명 비활성화",
|
||||
"MSG_INPUT": "줄바꿈을 하시려면 Shift + Enter를 누르십시오. '/'로 시작하여 미리 준비된 답변을 사용할 수 있습니다.",
|
||||
"PRIVATE_MSG_INPUT": "줄바꿈을 하시려면 Shift + Enter를 누르십시오. 에이전트만 볼 수 있습니다.",
|
||||
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "메시지 서명이 설정되지 않았습니다. 프로필 설정에서 설정해 주십시오.",
|
||||
"CLICK_HERE": "업데이트하려면 여기를 클릭하십시오",
|
||||
"WHATSAPP_TEMPLATES": "WhatsApp 템플릿",
|
||||
"MESSAGING_RESTRICTED": "이 대화에 답장할 수 없습니다",
|
||||
"MESSAGING_RESTRICTED_WHATSAPP": "24시간 메시지 창 제한으로 인해 템플릿 메시지로만 답장할 수 있습니다",
|
||||
"MESSAGING_RESTRICTED_API": "메시지 창 제한으로 인해 템플릿 메시지로만 답장할 수 있습니다",
|
||||
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "메시지 서명이 설정되지 않았습니다. 프로필 설정에서 설정해 주십시오.",
|
||||
"COPILOT_MSG_INPUT": "Copilot에 추가 프롬프트를 입력하거나 다른 질문을 하십시오... Enter를 눌러 후속 메시지를 보내십시오",
|
||||
"MESSAGING_RESTRICTED_API": "메시지 창 제한으로 인해 템플릿 메시지로만 답장할 수 있습니다"
|
||||
"CLICK_HERE": "업데이트하려면 여기를 클릭하십시오",
|
||||
"WHATSAPP_TEMPLATES": "WhatsApp 템플릿"
|
||||
},
|
||||
"REPLYBOX": {
|
||||
"REPLY": "답글",
|
||||
@@ -213,6 +214,7 @@
|
||||
"DRAG_DROP": "여기에 드래그 앤 드롭하여 첨부하십시오",
|
||||
"START_AUDIO_RECORDING": "오디오 녹음 시작",
|
||||
"STOP_AUDIO_RECORDING": "오디오 녹음 중지",
|
||||
"COPILOT_THINKING": "Copilot이 생각하고 있습니다",
|
||||
"EMAIL_HEAD": {
|
||||
"TO": "받는 사람",
|
||||
"ADD_BCC": "숨은 참조 추가",
|
||||
@@ -241,8 +243,7 @@
|
||||
"REMOVE_PREVIEW": "인용된 이메일 스레드 제거",
|
||||
"COLLAPSE": "미리보기 축소",
|
||||
"EXPAND": "미리보기 확장"
|
||||
},
|
||||
"COPILOT_THINKING": "Copilot이 생각하고 있습니다"
|
||||
}
|
||||
},
|
||||
"VISIBLE_TO_AGENTS": "개인 노트: 귀하와 귀하의 팀만 볼 수 있습니다",
|
||||
"CHANGE_STATUS": "대화 상태가 변경되었습니다",
|
||||
@@ -255,9 +256,12 @@
|
||||
"SUCCESS_DELETE_CONVERSATION": "대화가 성공적으로 삭제되었습니다",
|
||||
"FAIL_DELETE_CONVERSATION": "대화를 삭제할 수 없습니다! 다시 시도해 주십시오.",
|
||||
"FILE_SIZE_LIMIT": "파일이 {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB 첨부 제한을 초과합니다",
|
||||
"FILE_TYPE_NOT_SUPPORTED": "이 대화에서 {fileName} 파일 형식은 지원되지 않습니다",
|
||||
"MESSAGE_ERROR": "메시지를 보낼 수 없습니다. 나중에 다시 시도해 주십시오.",
|
||||
"SENT_BY": "보낸 사람:",
|
||||
"BOT": "봇",
|
||||
"NATIVE_APP": "네이티브 앱",
|
||||
"NATIVE_APP_ADVISORY": "이 메시지는 네이티브 앱에서 전송되었습니다. 메시지 창을 유지하려면 Chatwoot에서 답장하십시오.",
|
||||
"SEND_FAILED": "메시지를 보낼 수 없습니다! 다시 시도해 주십시오.",
|
||||
"TRY_AGAIN": "재시도",
|
||||
"ASSIGNMENT": {
|
||||
@@ -293,11 +297,7 @@
|
||||
"REJECT_CALL": "거부",
|
||||
"JOIN_CALL": "통화 참가",
|
||||
"END_CALL": "통화 종료"
|
||||
},
|
||||
"UNSUPPORTED_MESSAGE_TIKTOK": "이 메시지는 지원되지 않습니다. TikTok 앱에서 이 메시지를 확인할 수 있습니다.",
|
||||
"FILE_TYPE_NOT_SUPPORTED": "이 대화에서 {fileName} 파일 형식은 지원되지 않습니다",
|
||||
"NATIVE_APP": "네이티브 앱",
|
||||
"NATIVE_APP_ADVISORY": "이 메시지는 네이티브 앱에서 전송되었습니다. 메시지 창을 유지하려면 Chatwoot에서 답장하십시오."
|
||||
}
|
||||
},
|
||||
"EMAIL_TRANSCRIPT": {
|
||||
"TITLE": "대화 내용 보내기",
|
||||
@@ -306,6 +306,7 @@
|
||||
"CANCEL": "취소",
|
||||
"SEND_EMAIL_SUCCESS": "대화 내용이 성공적으로 전송되었습니다",
|
||||
"SEND_EMAIL_ERROR": "오류가 발생했습니다. 다시 시도해 주십시오.",
|
||||
"SEND_EMAIL_PAYMENT_REQUIRED": "현재 플랜에서는 이메일 대화 기록을 사용할 수 없습니다. 이 기능을 사용하려면 업그레이드하십시오.",
|
||||
"FORM": {
|
||||
"SEND_TO_CONTACT": "고객에게 대화 기록 보내기",
|
||||
"SEND_TO_AGENT": "배정된 에이전트에게 대화 기록 보내기",
|
||||
@@ -314,8 +315,7 @@
|
||||
"PLACEHOLDER": "이메일 주소를 입력하십시오",
|
||||
"ERROR": "올바른 이메일 주소를 입력하십시오"
|
||||
}
|
||||
},
|
||||
"SEND_EMAIL_PAYMENT_REQUIRED": "현재 플랜에서는 이메일 대화 기록을 사용할 수 없습니다. 이 기능을 사용하려면 업그레이드하십시오."
|
||||
}
|
||||
},
|
||||
"ONBOARDING": {
|
||||
"TITLE": "안녕하세요 👋, {installationName}에 오신 것을 환영합니다!",
|
||||
|
||||
@@ -3,8 +3,11 @@
|
||||
"HEADER": "사용자 지정 역할",
|
||||
"LEARN_MORE": "사용자 지정 역할에 대해 더 알아보기",
|
||||
"DESCRIPTION": "사용자 지정 역할은 계정 소유자 또는 관리자가 만든 역할입니다. 이 역할은 에이전트에게 할당하여 계정 내 접근 권한 및 권한을 정의할 수 있습니다. 사용자 지정 역할은 조직의 요구 사항에 맞는 특정 권한 및 접근 수준으로 생성할 수 있습니다.",
|
||||
"COUNT": "{n}개의 사용자 지정 역할 | {n}개의 사용자 지정 역할",
|
||||
"HEADER_BTN_TXT": "사용자 지정 역할 추가",
|
||||
"LOADING": "사용자 지정 역할을 불러오는 중...",
|
||||
"SEARCH_PLACEHOLDER": "사용자 지정 역할 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 사용자 지정 역할이 없습니다",
|
||||
"SEARCH_404": "이 쿼리와 일치하는 항목이 없습니다.",
|
||||
"PAYWALL": {
|
||||
"TITLE": "사용자 지정 역할을 만들려면 업그레이드하십시오",
|
||||
@@ -86,9 +89,6 @@
|
||||
"YES": "예, 삭제합니다 ",
|
||||
"NO": "아니요, 유지합니다 "
|
||||
}
|
||||
},
|
||||
"COUNT": "{n}개의 사용자 지정 역할 | {n}개의 사용자 지정 역할",
|
||||
"SEARCH_PLACEHOLDER": "사용자 지정 역할 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 사용자 지정 역할이 없습니다"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
{
|
||||
"DATE_PICKER": {
|
||||
"PREVIOUS_PERIOD": "이전 기간",
|
||||
"NEXT_PERIOD": "다음 기간",
|
||||
"WEEK_NUMBER": "{weekNumber}주차",
|
||||
"APPLY_BUTTON": "적용",
|
||||
"CLEAR_BUTTON": "초기화",
|
||||
"DATE_RANGE_INPUT": {
|
||||
@@ -13,12 +16,9 @@
|
||||
"LAST_3_MONTHS": "지난 3개월",
|
||||
"LAST_6_MONTHS": "지난 6개월",
|
||||
"LAST_YEAR": "지난 1년",
|
||||
"CUSTOM_RANGE": "사용자 지정 날짜 범위",
|
||||
"THIS_WEEK": "이번 주",
|
||||
"MONTH_TO_DATE": "이번 달"
|
||||
},
|
||||
"PREVIOUS_PERIOD": "이전 기간",
|
||||
"NEXT_PERIOD": "다음 기간",
|
||||
"WEEK_NUMBER": "{weekNumber}주차"
|
||||
"MONTH_TO_DATE": "이번 달",
|
||||
"CUSTOM_RANGE": "사용자 지정 날짜 범위"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -182,6 +182,7 @@
|
||||
},
|
||||
"COMMAND_BAR": {
|
||||
"SEARCH_PLACEHOLDER": "검색 또는 바로가기",
|
||||
"SNOOZE_PLACEHOLDER": "시간을 입력하세요. 예: 내일, 2시간 후, 다음 금요일, 1월 15일...",
|
||||
"SECTIONS": {
|
||||
"GENERAL": "일반",
|
||||
"REPORTS": "보고서",
|
||||
@@ -239,8 +240,7 @@
|
||||
"DARK_MODE": "다크",
|
||||
"SYSTEM_MODE": "시스템",
|
||||
"SNOOZE_NOTIFICATION": "알림 일시 중지"
|
||||
},
|
||||
"SNOOZE_PLACEHOLDER": "시간을 입력하세요. 예: 내일, 2시간 후, 다음 금요일, 1월 15일..."
|
||||
}
|
||||
},
|
||||
"DASHBOARD_APPS": {
|
||||
"LOADING_MESSAGE": "대시보드 앱을 불러오는 중..."
|
||||
|
||||
@@ -374,6 +374,16 @@
|
||||
"ERROR_MESSAGE": "게시물 삭제 중 오류가 발생했습니다"
|
||||
}
|
||||
},
|
||||
"REORDER_ARTICLE": {
|
||||
"API": {
|
||||
"ERROR_MESSAGE": "문서 순서를 변경할 수 없습니다. 다시 시도하십시오."
|
||||
}
|
||||
},
|
||||
"REORDER_CATEGORY": {
|
||||
"API": {
|
||||
"ERROR_MESSAGE": "카테고리 순서를 변경할 수 없습니다. 다시 시도하십시오."
|
||||
}
|
||||
},
|
||||
"CREATE_ARTICLE": {
|
||||
"ERROR_MESSAGE": "게시물 제목과 내용을 추가해야 설정을 업데이트할 수 있습니다"
|
||||
},
|
||||
@@ -860,16 +870,6 @@
|
||||
"FROM_DOCUMENT": "문서에서",
|
||||
"NO_CONTENT": "생성된 콘텐츠가 없습니다. PDF 문서를 업로드하여 시작하십시오.",
|
||||
"LOADING": "생성된 콘텐츠를 불러오는 중..."
|
||||
},
|
||||
"REORDER_ARTICLE": {
|
||||
"API": {
|
||||
"ERROR_MESSAGE": "문서 순서를 변경할 수 없습니다. 다시 시도하십시오."
|
||||
}
|
||||
},
|
||||
"REORDER_CATEGORY": {
|
||||
"API": {
|
||||
"ERROR_MESSAGE": "카테고리 순서를 변경할 수 없습니다. 다시 시도하십시오."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
"HEADER": "받은 메시지함",
|
||||
"DESCRIPTION": "채널은 고객이 귀하와 상호작용하기 위해 선택하는 커뮤니케이션 방식입니다. 받은 메시지함은 특정 채널에 대한 상호작용을 관리하는 곳입니다. 이메일, 라이브 채팅, 소셜 미디어 등 다양한 소스의 커뮤니케이션을 포함할 수 있습니다.",
|
||||
"LEARN_MORE": "받은 메시지함에 대해 자세히 알아보기",
|
||||
"COUNT": "{n}개의 받은 메시지함 | {n}개의 받은 메시지함",
|
||||
"SEARCH_PLACEHOLDER": "받은 메시지함 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 받은 메시지함이 없습니다",
|
||||
"RECONNECTION_REQUIRED": "받은 메시지함의 연결이 끊어졌습니다. 재인증하기 전까지 새 메시지를 받을 수 없습니다.",
|
||||
"CLICK_TO_RECONNECT": "다시 연결하려면 여기를 클릭하십시오.",
|
||||
"WHATSAPP_REGISTRATION_INCOMPLETE": "WhatsApp Business 등록이 완료되지 않았습니다. 다시 연결하기 전에 Meta Business Manager에서 표시 이름 상태를 확인하십시오.",
|
||||
@@ -627,6 +630,8 @@
|
||||
"ACCOUNT_HEALTH": "계정 상태",
|
||||
"CSAT": "CSAT"
|
||||
},
|
||||
"CHANNEL_PREFERENCES": "채널 환경설정",
|
||||
"WIDGET_FEATURES": "위젯 기능",
|
||||
"ACCOUNT_HEALTH": {
|
||||
"TITLE": "WhatsApp 계정 관리",
|
||||
"DESCRIPTION": "WhatsApp 계정 상태, 메시지 제한 및 품질을 검토하십시오. 필요한 경우 설정을 업데이트하거나 문제를 해결하십시오.",
|
||||
@@ -706,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "허용된 도메인",
|
||||
"SUBTITLE": "쉼표로 구분된 와일드카드 또는 일반 도메인을 추가하십시오 (모두 허용하려면 비워 두십시오). 예: *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "쉼표로 구분된 도메인을 입력하십시오 (예: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "에이전트",
|
||||
"INBOX_AGENTS_SUB_TEXT": "받은 메시지함에서 에이전트 추가 또는 제거",
|
||||
@@ -770,15 +775,62 @@
|
||||
"LABEL": "도움말 센터",
|
||||
"PLACEHOLDER": "도움말 센터 선택",
|
||||
"SELECT_PLACEHOLDER": "도움말 센터 선택",
|
||||
"NONE": "없음",
|
||||
"REMOVE": "도움말 센터 제거",
|
||||
"SUB_TEXT": "받은 메시지함에 도움말 센터 연결",
|
||||
"NONE": "없음"
|
||||
"SUB_TEXT": "받은 메시지함에 도움말 센터 연결"
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"MAX_ASSIGNMENT_LIMIT": "자동 할당 제한",
|
||||
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "0보다 큰 값을 입력하십시오.",
|
||||
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "이 받은 메시지함에서 에이전트에게 자동 할당될 수 있는 최대 대화 수를 제한합니다."
|
||||
},
|
||||
"ASSIGNMENT": {
|
||||
"TITLE": "대화 할당",
|
||||
"DESCRIPTION": "할당 정책에 따라 수신 대화를 사용 가능한 에이전트에게 자동으로 할당합니다.",
|
||||
"ENABLE_AUTO_ASSIGNMENT": "자동 대화 할당 사용",
|
||||
"DEFAULT_RULES_TITLE": "기본 할당 규칙",
|
||||
"DEFAULT_RULES_DESCRIPTION": "모든 대화에 기본 할당 동작을 사용합니다.",
|
||||
"DEFAULT_RULE_1": "가장 먼저 생성된 대화 우선",
|
||||
"DEFAULT_RULE_2": "라운드 로빈 배분",
|
||||
"CUSTOMIZE_WITH_POLICY": "할당 정책으로 사용자 정의",
|
||||
"USING_POLICY": "이 받은 메시지함에 사용자 정의 할당 정책을 사용 중",
|
||||
"CUSTOMIZE_POLICY": "할당 정책으로 사용자 정의",
|
||||
"DELETE_POLICY": "정책 삭제",
|
||||
"POLICY_LABEL": "할당 정책",
|
||||
"ASSIGNMENT_ORDER_LABEL": "할당 순서",
|
||||
"ASSIGNMENT_METHOD_LABEL": "할당 방법",
|
||||
"POLICY_STATUS": {
|
||||
"ACTIVE": "활성",
|
||||
"INACTIVE": "비활성"
|
||||
},
|
||||
"PRIORITY": {
|
||||
"EARLIEST_CREATED": "가장 먼저 생성됨",
|
||||
"LONGEST_WAITING": "가장 오래 대기 중"
|
||||
},
|
||||
"METHOD": {
|
||||
"ROUND_ROBIN": "라운드 로빈",
|
||||
"BALANCED": "균형 할당"
|
||||
},
|
||||
"UPGRADE_PROMPT": "사용자 정의 할당 정책은 Business 플랜에서 사용할 수 있습니다.",
|
||||
"UPGRADE_TO_BUSINESS": "Business로 업그레이드",
|
||||
"DEFAULT_POLICY_LINKED": "기본 정책이 연결됨",
|
||||
"DEFAULT_POLICY_DESCRIPTION": "이 받은 메시지함에서 대화가 에이전트에게 할당되는 방식을 사용자 정의하려면 사용자 정의 할당 정책을 연결하십시오.",
|
||||
"LINK_EXISTING_POLICY": "기존 정책 연결",
|
||||
"CREATE_NEW_POLICY": "새 정책 만들기",
|
||||
"NO_POLICIES": "할당 정책을 찾을 수 없습니다.",
|
||||
"VIEW_ALL_POLICIES": "모든 정책 보기",
|
||||
"CURRENT_BEHAVIOR": "현재 기본 할당 동작을 사용 중:",
|
||||
"LINK_SUCCESS": "할당 정책이 성공적으로 연결되었습니다.",
|
||||
"LINK_ERROR": "할당 정책을 연결하지 못했습니다."
|
||||
},
|
||||
"ASSIGNMENT_POLICY": {
|
||||
"DELETE_CONFIRM_TITLE": "할당 정책을 삭제하시겠습니까?",
|
||||
"DELETE_CONFIRM_MESSAGE": "이 받은 메시지함에서 이 할당 정책을 제거하시겠습니까? 받은 메시지함은 기본 할당 규칙으로 돌아갑니다.",
|
||||
"CANCEL": "취소",
|
||||
"CONFIRM_DELETE": "삭제",
|
||||
"DELETE_SUCCESS": "할당 정책이 성공적으로 제거되었습니다.",
|
||||
"DELETE_ERROR": "할당 정책을 제거하지 못했습니다."
|
||||
},
|
||||
"FACEBOOK_REAUTHORIZE": {
|
||||
"TITLE": "재승인",
|
||||
"SUBTITLE": "Facebook 연결이 만료되었습니다. 서비스를 계속하려면 Facebook 페이지를 다시 연결하십시오.",
|
||||
@@ -850,6 +902,20 @@
|
||||
"CONFIRM": "새 템플릿 만들기",
|
||||
"CANCEL": "돌아가기"
|
||||
},
|
||||
"UTILITY_ANALYZER": {
|
||||
"ACTION": "유틸리티 적합성 확인",
|
||||
"HELPER_NOTE": "제출 전에 이 메시지를 확인하여 유틸리티 적합성을 높이십시오. 시스템은 보고용 버튼이 포함된 전용 CSAT 템플릿을 만들고 Utility로 제출하지만, Meta는 내용에 따라 이를 Marketing으로 다시 분류할 수 있습니다.",
|
||||
"RESULT_LABEL": "Meta category prediction",
|
||||
"GUIDANCE_NOTE": "이는 가이드용 점검이며 Meta 승인을 보장하지 않습니다.",
|
||||
"SUGGESTION_LABEL": "추천 유틸리티 안전 문구",
|
||||
"APPLY": "이 문구 사용",
|
||||
"ERROR_MESSAGE": "메시지를 분석할 수 없습니다. 다시 시도하십시오.",
|
||||
"CLASSIFICATION": {
|
||||
"LIKELY_UTILITY": "유틸리티일 가능성 높음",
|
||||
"LIKELY_MARKETING": "마케팅일 가능성 높음",
|
||||
"UNCLEAR": "추가 확인 필요"
|
||||
}
|
||||
},
|
||||
"SURVEY_RULE": {
|
||||
"LABEL": "설문 규칙",
|
||||
"DESCRIPTION_PREFIX": "대화가 다음 레이블 중 하나를",
|
||||
@@ -865,20 +931,6 @@
|
||||
"API": {
|
||||
"SUCCESS_MESSAGE": "CSAT 설정이 성공적으로 업데이트되었습니다.",
|
||||
"ERROR_MESSAGE": "CSAT 설정을 업데이트할 수 없습니다. 나중에 다시 시도하십시오."
|
||||
},
|
||||
"UTILITY_ANALYZER": {
|
||||
"ACTION": "유틸리티 적합성 확인",
|
||||
"HELPER_NOTE": "제출 전에 이 메시지를 확인하여 유틸리티 적합성을 높이십시오. 시스템은 보고용 버튼이 포함된 전용 CSAT 템플릿을 만들고 Utility로 제출하지만, Meta는 내용에 따라 이를 Marketing으로 다시 분류할 수 있습니다.",
|
||||
"RESULT_LABEL": "Meta category prediction",
|
||||
"GUIDANCE_NOTE": "이는 가이드용 점검이며 Meta 승인을 보장하지 않습니다.",
|
||||
"SUGGESTION_LABEL": "추천 유틸리티 안전 문구",
|
||||
"APPLY": "이 문구 사용",
|
||||
"ERROR_MESSAGE": "메시지를 분석할 수 없습니다. 다시 시도하십시오.",
|
||||
"CLASSIFICATION": {
|
||||
"LIKELY_UTILITY": "유틸리티일 가능성 높음",
|
||||
"LIKELY_MARKETING": "마케팅일 가능성 높음",
|
||||
"UNCLEAR": "추가 확인 필요"
|
||||
}
|
||||
}
|
||||
},
|
||||
"BUSINESS_HOURS": {
|
||||
@@ -1002,6 +1054,7 @@
|
||||
"IN_A_DAY": "하루 안에"
|
||||
},
|
||||
"WIDGET_COLOR_LABEL": "위젯 색깔",
|
||||
"WIDGET_BUBBLE": "버블",
|
||||
"WIDGET_BUBBLE_POSITION_LABEL": "위젯 버블 위치",
|
||||
"WIDGET_BUBBLE_TYPE_LABEL": "위젯 버블 유형",
|
||||
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
|
||||
@@ -1027,8 +1080,7 @@
|
||||
"WIDGET_BUBBLE_TYPE": {
|
||||
"STANDARD": "표준",
|
||||
"EXPANDED_BUBBLE": "확장 버블"
|
||||
},
|
||||
"WIDGET_BUBBLE": "버블"
|
||||
}
|
||||
},
|
||||
"WIDGET_SCREEN": {
|
||||
"DEFAULT": "기본",
|
||||
@@ -1082,58 +1134,6 @@
|
||||
"INSTAGRAM": "Instagram",
|
||||
"TIKTOK": "TikTok",
|
||||
"VOICE": "음성"
|
||||
},
|
||||
"ASSIGNMENT": {
|
||||
"TITLE": "대화 할당",
|
||||
"DESCRIPTION": "할당 정책에 따라 수신 대화를 사용 가능한 에이전트에게 자동으로 할당합니다.",
|
||||
"ENABLE_AUTO_ASSIGNMENT": "자동 대화 할당 사용",
|
||||
"DEFAULT_RULES_TITLE": "기본 할당 규칙",
|
||||
"DEFAULT_RULES_DESCRIPTION": "모든 대화에 기본 할당 동작을 사용합니다.",
|
||||
"DEFAULT_RULE_1": "가장 먼저 생성된 대화 우선",
|
||||
"DEFAULT_RULE_2": "라운드 로빈 배분",
|
||||
"CUSTOMIZE_WITH_POLICY": "할당 정책으로 사용자 정의",
|
||||
"USING_POLICY": "이 받은 메시지함에 사용자 정의 할당 정책을 사용 중",
|
||||
"CUSTOMIZE_POLICY": "할당 정책으로 사용자 정의",
|
||||
"DELETE_POLICY": "정책 삭제",
|
||||
"POLICY_LABEL": "할당 정책",
|
||||
"ASSIGNMENT_ORDER_LABEL": "할당 순서",
|
||||
"ASSIGNMENT_METHOD_LABEL": "할당 방법",
|
||||
"POLICY_STATUS": {
|
||||
"ACTIVE": "활성",
|
||||
"INACTIVE": "비활성"
|
||||
},
|
||||
"PRIORITY": {
|
||||
"EARLIEST_CREATED": "가장 먼저 생성됨",
|
||||
"LONGEST_WAITING": "가장 오래 대기 중"
|
||||
},
|
||||
"METHOD": {
|
||||
"ROUND_ROBIN": "라운드 로빈",
|
||||
"BALANCED": "균형 할당"
|
||||
},
|
||||
"UPGRADE_PROMPT": "사용자 정의 할당 정책은 Business 플랜에서 사용할 수 있습니다.",
|
||||
"UPGRADE_TO_BUSINESS": "Business로 업그레이드",
|
||||
"DEFAULT_POLICY_LINKED": "기본 정책이 연결됨",
|
||||
"DEFAULT_POLICY_DESCRIPTION": "이 받은 메시지함에서 대화가 에이전트에게 할당되는 방식을 사용자 정의하려면 사용자 정의 할당 정책을 연결하십시오.",
|
||||
"LINK_EXISTING_POLICY": "기존 정책 연결",
|
||||
"CREATE_NEW_POLICY": "새 정책 만들기",
|
||||
"NO_POLICIES": "할당 정책을 찾을 수 없습니다.",
|
||||
"VIEW_ALL_POLICIES": "모든 정책 보기",
|
||||
"CURRENT_BEHAVIOR": "현재 기본 할당 동작을 사용 중:",
|
||||
"LINK_SUCCESS": "할당 정책이 성공적으로 연결되었습니다.",
|
||||
"LINK_ERROR": "할당 정책을 연결하지 못했습니다."
|
||||
},
|
||||
"ASSIGNMENT_POLICY": {
|
||||
"DELETE_CONFIRM_TITLE": "할당 정책을 삭제하시겠습니까?",
|
||||
"DELETE_CONFIRM_MESSAGE": "이 받은 메시지함에서 이 할당 정책을 제거하시겠습니까? 받은 메시지함은 기본 할당 규칙으로 돌아갑니다.",
|
||||
"CANCEL": "취소",
|
||||
"CONFIRM_DELETE": "삭제",
|
||||
"DELETE_SUCCESS": "할당 정책이 성공적으로 제거되었습니다.",
|
||||
"DELETE_ERROR": "할당 정책을 제거하지 못했습니다."
|
||||
},
|
||||
"COUNT": "{n}개의 받은 메시지함 | {n}개의 받은 메시지함",
|
||||
"SEARCH_PLACEHOLDER": "받은 메시지함 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 받은 메시지함이 없습니다",
|
||||
"CHANNEL_PREFERENCES": "채널 환경설정",
|
||||
"WIDGET_FEATURES": "위젯 기능"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
"FETCHING": "통합을 가져오는 중",
|
||||
"NO_HOOK_CONFIGURED": "이 계정에 구성된 {integrationId} 통합이 없습니다.",
|
||||
"HEADER": "애플리케이션",
|
||||
"COUNT": "{n}개의 통합 | {n}개의 통합",
|
||||
"SEARCH_PLACEHOLDER": "검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 결과가 없습니다",
|
||||
"STATUS": {
|
||||
"ENABLED": "사용함",
|
||||
"DISABLED": "사용 안 함"
|
||||
@@ -31,10 +34,10 @@
|
||||
"LIST": {
|
||||
"FETCHING": "통합 훅을 가져오는 중",
|
||||
"INBOX": "받은 메시지함",
|
||||
"ACTIONS": "액션",
|
||||
"DELETE": {
|
||||
"BUTTON_TEXT": "삭제"
|
||||
},
|
||||
"ACTIONS": "액션"
|
||||
}
|
||||
},
|
||||
"ADD": {
|
||||
"FORM": {
|
||||
@@ -58,9 +61,6 @@
|
||||
},
|
||||
"SIDEBAR_DESCRIPTION": {
|
||||
"DIALOGFLOW": "Dialogflow는 대화형 인터페이스를 구축하기 위한 자연어 처리 플랫폼입니다. {installationName}와(과) 통합하면 봇이 먼저 문의를 처리하고 필요할 때 에이전트에게 전달할 수 있습니다. 리드 평가에 도움이 되고 FAQ 응답을 통해 에이전트 업무량을 줄여줍니다. Dialogflow를 추가하려면 Google Console에서 서비스 계정을 만들고 자격 증명을 공유하십시오. 자세한 내용은 문서를 참조하십시오"
|
||||
},
|
||||
"COUNT": "{n}개의 통합 | {n}개의 통합",
|
||||
"SEARCH_PLACEHOLDER": "검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 결과가 없습니다"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"INTEGRATION_SETTINGS": {
|
||||
"SHOPIFY": {
|
||||
"HEADER": "Shopify",
|
||||
"DELETE": {
|
||||
"TITLE": "Shopify 연동 삭제",
|
||||
"MESSAGE": "Shopify 연동을 삭제하시겠습니까?"
|
||||
@@ -13,13 +14,14 @@
|
||||
"CANCEL": "취소",
|
||||
"SUBMIT": "스토어 연결"
|
||||
},
|
||||
"ERROR": "Shopify에 연결하는 중 오류가 발생했습니다. 다시 시도하시거나 문제가 지속되면 지원팀에 문의하십시오.",
|
||||
"HEADER": "Shopify"
|
||||
"ERROR": "Shopify에 연결하는 중 오류가 발생했습니다. 다시 시도하시거나 문제가 지속되면 지원팀에 문의하십시오."
|
||||
},
|
||||
"HEADER": "통합",
|
||||
"DESCRIPTION": "Chatwoot은 다양한 도구 및 서비스와 통합하여 팀의 효율성을 향상시킵니다. 아래 목록을 탐색하여 자주 사용하는 앱을 구성하십시오.",
|
||||
"LEARN_MORE": "통합에 대해 자세히 알아보기",
|
||||
"LOADING": "통합을 가져오는 중",
|
||||
"SEARCH_PLACEHOLDER": "통합 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 통합이 없습니다",
|
||||
"CAPTAIN": {
|
||||
"DISABLED": "계정에서 Captain이 활성화되어 있지 않습니다.",
|
||||
"CLICK_HERE_TO_CONFIGURE": "여기를 클릭하여 구성하십시오",
|
||||
@@ -29,6 +31,17 @@
|
||||
"WEBHOOK": {
|
||||
"SUBSCRIBED_EVENTS": "구독된 이벤트",
|
||||
"LEARN_MORE": "webhook에 대해 자세히 알아보기",
|
||||
"SECRET": {
|
||||
"LABEL": "Secret",
|
||||
"COPY": "시크릿을 클립보드에 복사",
|
||||
"COPY_SUCCESS": "시크릿이 클립보드에 복사되었습니다",
|
||||
"TOGGLE": "시크릿 표시 전환",
|
||||
"CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
|
||||
"DONE": "Done"
|
||||
},
|
||||
"COUNT": "{n}개의 웹훅 | {n}개의 웹훅",
|
||||
"SEARCH_PLACEHOLDER": "웹훅 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 웹훅이 없습니다",
|
||||
"FORM": {
|
||||
"CANCEL": "취소",
|
||||
"DESC": "webhook 이벤트는 Chatwoot 계정에서 일어나는 일에 대한 실시간 정보를 제공합니다. 콜백을 구성하려면 유효한 URL을 입력하십시오.",
|
||||
@@ -102,20 +115,10 @@
|
||||
"YES": "예, 삭제합니다 ",
|
||||
"NO": "아니요, 유지합니다"
|
||||
}
|
||||
},
|
||||
"SECRET": {
|
||||
"LABEL": "Secret",
|
||||
"COPY": "시크릿을 클립보드에 복사",
|
||||
"COPY_SUCCESS": "시크릿이 클립보드에 복사되었습니다",
|
||||
"TOGGLE": "시크릿 표시 전환",
|
||||
"CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
|
||||
"DONE": "Done"
|
||||
},
|
||||
"COUNT": "{n}개의 웹훅 | {n}개의 웹훅",
|
||||
"SEARCH_PLACEHOLDER": "웹훅 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 웹훅이 없습니다"
|
||||
}
|
||||
},
|
||||
"SLACK": {
|
||||
"HEADER": "Slack",
|
||||
"DELETE": "삭제",
|
||||
"DELETE_CONFIRMATION": {
|
||||
"TITLE": "연동 삭제",
|
||||
@@ -136,8 +139,7 @@
|
||||
},
|
||||
"UPDATE_ERROR": "연동을 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오.",
|
||||
"UPDATE_SUCCESS": "채널이 성공적으로 연결되었습니다",
|
||||
"FAILED_TO_FETCH_CHANNELS": "Slack에서 채널을 가져오는 중 오류가 발생했습니다. 다시 시도하십시오.",
|
||||
"HEADER": "Slack"
|
||||
"FAILED_TO_FETCH_CHANNELS": "Slack에서 채널을 가져오는 중 오류가 발생했습니다. 다시 시도하십시오."
|
||||
},
|
||||
"DYTE": {
|
||||
"CLICK_HERE_TO_JOIN": "여기를 클릭하여 참여하십시오",
|
||||
@@ -164,6 +166,24 @@
|
||||
"CASUAL": "캐주얼한 톤 사용",
|
||||
"STRAIGHTFORWARD": "직설적인 톤 사용"
|
||||
},
|
||||
"REPLY_OPTIONS": {
|
||||
"IMPROVE_REPLY": "답장 개선",
|
||||
"IMPROVE_REPLY_SELECTION": "선택 항목 개선",
|
||||
"CHANGE_TONE": {
|
||||
"TITLE": "톤 변경",
|
||||
"OPTIONS": {
|
||||
"PROFESSIONAL": "전문적",
|
||||
"CASUAL": "캐주얼",
|
||||
"STRAIGHTFORWARD": "직설적",
|
||||
"CONFIDENT": "자신감 있는",
|
||||
"FRIENDLY": "친근한"
|
||||
}
|
||||
},
|
||||
"GRAMMAR": "문법 및 맞춤법 수정",
|
||||
"SUGGESTION": "답장 제안",
|
||||
"SUMMARIZE": "대화 요약",
|
||||
"ASK_COPILOT": "Copilot에게 질문"
|
||||
},
|
||||
"ASSISTANCE_MODAL": {
|
||||
"DRAFT_TITLE": "초안 내용",
|
||||
"GENERATED_TITLE": "생성된 내용",
|
||||
@@ -201,25 +221,7 @@
|
||||
"GENERATING": "생성 중...",
|
||||
"CANCEL": "취소"
|
||||
},
|
||||
"GENERATE_ERROR": "내용을 처리하는 중 오류가 발생했습니다. OpenAI API 키를 확인한 후 다시 시도하십시오.",
|
||||
"REPLY_OPTIONS": {
|
||||
"IMPROVE_REPLY": "답장 개선",
|
||||
"IMPROVE_REPLY_SELECTION": "선택 항목 개선",
|
||||
"CHANGE_TONE": {
|
||||
"TITLE": "톤 변경",
|
||||
"OPTIONS": {
|
||||
"PROFESSIONAL": "전문적",
|
||||
"CASUAL": "캐주얼",
|
||||
"STRAIGHTFORWARD": "직설적",
|
||||
"CONFIDENT": "자신감 있는",
|
||||
"FRIENDLY": "친근한"
|
||||
}
|
||||
},
|
||||
"GRAMMAR": "문법 및 맞춤법 수정",
|
||||
"SUGGESTION": "답장 제안",
|
||||
"SUMMARIZE": "대화 요약",
|
||||
"ASK_COPILOT": "Copilot에게 질문"
|
||||
}
|
||||
"GENERATE_ERROR": "내용을 처리하는 중 오류가 발생했습니다. OpenAI API 키를 확인한 후 다시 시도하십시오."
|
||||
},
|
||||
"DELETE": {
|
||||
"BUTTON_TEXT": "삭제",
|
||||
@@ -236,6 +238,9 @@
|
||||
"SIDEBAR_TXT": "<p><b>대시보드 앱</b></p><p>대시보드 앱을 사용하면 조직이 Chatwoot 대시보드 내에 애플리케이션을 임베드하여 고객 지원 상담원에게 컨텍스트를 제공할 수 있습니다. 이 기능을 사용하면 독립적으로 애플리케이션을 만들고 대시보드 내에 임베드하여 사용자 정보, 주문 내역 또는 이전 결제 내역을 제공할 수 있습니다.</p><p>Chatwoot의 대시보드를 사용하여 애플리케이션을 임베드하면, 애플리케이션은 대화 및 연락처 컨텍스트를 윈도우 이벤트로 수신합니다. 컨텍스트를 수신하려면 페이지에서 메시지 이벤트에 대한 리스너를 구현하십시오.</p><p>새 대시보드 앱을 추가하려면 '새 대시보드 앱 추가' 버튼을 클릭하십시오.</p>",
|
||||
"DESCRIPTION": "대시보드 앱을 사용하면 조직이 대시보드 내에 애플리케이션을 임베드하여 고객 지원 상담원에게 컨텍스트를 제공할 수 있습니다. 이 기능을 사용하면 독립적으로 애플리케이션을 만들고 임베드하여 사용자 정보, 주문 내역 또는 이전 결제 내역을 제공할 수 있습니다.",
|
||||
"LEARN_MORE": "대시보드 앱에 대해 자세히 알아보기",
|
||||
"COUNT": "{n}개의 대시보드 앱 | {n}개의 대시보드 앱",
|
||||
"SEARCH_PLACEHOLDER": "대시보드 앱 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 대시보드 앱이 없습니다",
|
||||
"LIST": {
|
||||
"404": "이 계정에 구성된 대시보드 앱이 아직 없습니다",
|
||||
"LOADING": "대시보드 앱을 가져오는 중...",
|
||||
@@ -276,12 +281,10 @@
|
||||
"MESSAGE": "앱을 삭제하시겠습니까 - {appName}?",
|
||||
"API_SUCCESS": "대시보드 앱이 성공적으로 삭제되었습니다",
|
||||
"API_ERROR": "앱을 삭제할 수 없었습니다. 나중에 다시 시도하십시오."
|
||||
},
|
||||
"COUNT": "{n}개의 대시보드 앱 | {n}개의 대시보드 앱",
|
||||
"SEARCH_PLACEHOLDER": "대시보드 앱 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 대시보드 앱이 없습니다"
|
||||
}
|
||||
},
|
||||
"LINEAR": {
|
||||
"HEADER": "Linear",
|
||||
"ADD_OR_LINK_BUTTON": "Linear 이슈 생성/연결",
|
||||
"LOADING": "Linear 이슈를 가져오는 중...",
|
||||
"LOADING_ERROR": "Linear 이슈를 가져오는 중 오류가 발생했습니다. 다시 시도하십시오.",
|
||||
@@ -373,20 +376,17 @@
|
||||
"AGENT_DESCRIPTION": "Linear 워크스페이스가 연결되어 있지 않습니다. 이 연동을 사용하려면 관리자에게 워크스페이스 연결을 요청하십시오.",
|
||||
"DESCRIPTION": "Linear 워크스페이스가 연결되어 있지 않습니다. 이 연동을 사용하려면 아래 버튼을 클릭하여 워크스페이스를 연결하십시오.",
|
||||
"BUTTON_TEXT": "Linear 워크스페이스 연결"
|
||||
},
|
||||
"HEADER": "Linear"
|
||||
}
|
||||
},
|
||||
"NOTION": {
|
||||
"HEADER": "Notion",
|
||||
"DELETE": {
|
||||
"TITLE": "Notion 연동을 삭제하시겠습니까?",
|
||||
"MESSAGE": "이 연동을 삭제하면 Notion 워크스페이스에 대한 액세스가 제거되고 모든 관련 기능이 중지됩니다.",
|
||||
"CONFIRM": "예, 삭제합니다",
|
||||
"CANCEL": "취소"
|
||||
},
|
||||
"HEADER": "Notion"
|
||||
},
|
||||
"SEARCH_PLACEHOLDER": "통합 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 통합이 없습니다"
|
||||
}
|
||||
}
|
||||
},
|
||||
"CAPTAIN": {
|
||||
"NAME": "Captain",
|
||||
@@ -449,9 +449,9 @@
|
||||
"CANCEL_ANYTIME": "언제든지 요금제를 변경하거나 취소할 수 있습니다"
|
||||
},
|
||||
"ENTERPRISE_PAYWALL": {
|
||||
"AVAILABLE_ON": "Captain AI는 Enterprise 요금제에서만 사용할 수 있습니다.",
|
||||
"UPGRADE_PROMPT": "어시스턴트, Copilot 등에 액세스하려면 요금제를 업그레이드하십시오.",
|
||||
"ASK_ADMIN": "업그레이드를 위해 관리자에게 문의하십시오.",
|
||||
"AVAILABLE_ON": "Captain AI는 Enterprise 요금제에서만 사용할 수 있습니다."
|
||||
"ASK_ADMIN": "업그레이드를 위해 관리자에게 문의하십시오."
|
||||
},
|
||||
"BANNER": {
|
||||
"RESPONSES": "응답 한도의 80% 이상을 사용했습니다. Captain AI를 계속 사용하려면 업그레이드하십시오.",
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
"LOADING": "라벨을 가져오는 중",
|
||||
"DESCRIPTION": "라벨은 대화와 리드를 분류하고 우선순위를 지정하는 데 도움이 됩니다. 사이드 패널을 사용하여 대화 또는 연락처에 라벨을 할당할 수 있습니다.",
|
||||
"LEARN_MORE": "라벨에 대해 자세히 알아보기",
|
||||
"COUNT": "{n}개의 라벨 | {n}개의 라벨",
|
||||
"SEARCH_PLACEHOLDER": "라벨 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 라벨이 없습니다",
|
||||
"SEARCH_404": "이 쿼리와 일치하는 항목이 없습니다",
|
||||
"LIST": {
|
||||
"404": "이 계정에는 사용 가능한 라벨이 없습니다.",
|
||||
@@ -81,9 +84,6 @@
|
||||
"YES": "예, 삭제합니다. ",
|
||||
"NO": "아니요, 유지해주세요. "
|
||||
}
|
||||
},
|
||||
"COUNT": "{n}개의 라벨 | {n}개의 라벨",
|
||||
"SEARCH_PLACEHOLDER": "라벨 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 라벨이 없습니다"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,12 @@
|
||||
"HEADER": "매크로",
|
||||
"DESCRIPTION": "매크로는 고객 서비스 에이전트가 작업을 쉽게 완료할 수 있도록 도와주는 저장된 액션 모음입니다. 에이전트는 대화에 라벨 태그 지정, 이메일 대화 내용 전송, 사용자 정의 속성 업데이트 등의 액션을 정의하고, 클릭 한 번으로 이러한 액션을 실행할 수 있습니다.",
|
||||
"LEARN_MORE": "매크로에 대해 자세히 알아보기",
|
||||
"COUNT": "{n}개의 매크로 | {n}개의 매크로",
|
||||
"HEADER_BTN_TXT": "새 매크로 추가",
|
||||
"HEADER_BTN_TXT_SAVE": "매크로 저장",
|
||||
"LOADING": "매크로를 불러오는 중",
|
||||
"SEARCH_PLACEHOLDER": "매크로 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 매크로가 없습니다",
|
||||
"ERROR": "오류가 발생했습니다. 다시 시도해 주십시오.",
|
||||
"ORDER_INFO": "매크로는 액션을 추가한 순서대로 실행됩니다. 각 노드 옆의 핸들을 드래그하여 순서를 변경할 수 있습니다.",
|
||||
"ADD": {
|
||||
@@ -107,9 +110,6 @@
|
||||
"MEDIUM": "보통",
|
||||
"HIGH": "높음",
|
||||
"URGENT": "긴급"
|
||||
},
|
||||
"COUNT": "{n}개의 매크로 | {n}개의 매크로",
|
||||
"SEARCH_PLACEHOLDER": "매크로 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 매크로가 없습니다"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"HEADER": "대화",
|
||||
"LOADING_CHART": "차트 데이터 불러오는 중...",
|
||||
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
|
||||
"DOWNLOAD_CONVERSATION_REPORTS": "대화 보고서 다운로드",
|
||||
"DATA_FETCHING_FAILED": "데이터를 가져오지 못했습니다. 나중에 다시 시도하십시오.",
|
||||
"SUMMARY_FETCHING_FAILED": "요약을 가져오지 못했습니다. 나중에 다시 시도하십시오.",
|
||||
"METRICS": {
|
||||
@@ -123,8 +124,7 @@
|
||||
"PAGINATION": {
|
||||
"RESULTS": "{total}개 결과 중 {start}~{end} 표시",
|
||||
"PER_PAGE_TEMPLATE": "{size} / 페이지"
|
||||
},
|
||||
"DOWNLOAD_CONVERSATION_REPORTS": "대화 보고서 다운로드"
|
||||
}
|
||||
},
|
||||
"AGENT_REPORTS": {
|
||||
"HEADER": "에이전트 개요",
|
||||
@@ -133,6 +133,11 @@
|
||||
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
|
||||
"DOWNLOAD_AGENT_REPORTS": "에이전트 보고서 다운로드",
|
||||
"FILTER_DROPDOWN_LABEL": "에이전트 선택",
|
||||
"FILTERS": {
|
||||
"INPUT_PLACEHOLDER": {
|
||||
"AGENTS": "에이전트 검색"
|
||||
}
|
||||
},
|
||||
"METRICS": {
|
||||
"CONVERSATIONS": {
|
||||
"NAME": "대화",
|
||||
@@ -192,11 +197,6 @@
|
||||
"CUSTOM_DATE_RANGE": {
|
||||
"CONFIRM": "적용",
|
||||
"PLACEHOLDER": "날짜 범위 선택"
|
||||
},
|
||||
"FILTERS": {
|
||||
"INPUT_PLACEHOLDER": {
|
||||
"AGENTS": "에이전트 검색"
|
||||
}
|
||||
}
|
||||
},
|
||||
"LABEL_REPORTS": {
|
||||
@@ -206,6 +206,11 @@
|
||||
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
|
||||
"DOWNLOAD_LABEL_REPORTS": "라벨 보고서 다운로드",
|
||||
"FILTER_DROPDOWN_LABEL": "라벨 선택",
|
||||
"FILTERS": {
|
||||
"INPUT_PLACEHOLDER": {
|
||||
"LABELS": "라벨 검색"
|
||||
}
|
||||
},
|
||||
"METRICS": {
|
||||
"CONVERSATIONS": {
|
||||
"NAME": "대화",
|
||||
@@ -265,11 +270,6 @@
|
||||
"CUSTOM_DATE_RANGE": {
|
||||
"CONFIRM": "적용",
|
||||
"PLACEHOLDER": "날짜 범위 선택"
|
||||
},
|
||||
"FILTERS": {
|
||||
"INPUT_PLACEHOLDER": {
|
||||
"LABELS": "라벨 검색"
|
||||
}
|
||||
}
|
||||
},
|
||||
"INBOX_REPORTS": {
|
||||
@@ -281,6 +281,11 @@
|
||||
"FILTER_DROPDOWN_LABEL": "받은 메시지함 선택",
|
||||
"ALL_INBOXES": "모든 받은 메시지함",
|
||||
"SEARCH_INBOX": "받은 메시지함 검색",
|
||||
"FILTERS": {
|
||||
"INPUT_PLACEHOLDER": {
|
||||
"INBOXES": "받은 메시지함 검색"
|
||||
}
|
||||
},
|
||||
"METRICS": {
|
||||
"CONVERSATIONS": {
|
||||
"NAME": "대화",
|
||||
@@ -340,11 +345,6 @@
|
||||
"CUSTOM_DATE_RANGE": {
|
||||
"CONFIRM": "적용",
|
||||
"PLACEHOLDER": "날짜 범위 선택"
|
||||
},
|
||||
"FILTERS": {
|
||||
"INPUT_PLACEHOLDER": {
|
||||
"INBOXES": "받은 메시지함 검색"
|
||||
}
|
||||
}
|
||||
},
|
||||
"TEAM_REPORTS": {
|
||||
@@ -354,6 +354,14 @@
|
||||
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
|
||||
"DOWNLOAD_TEAM_REPORTS": "팀 보고서 다운로드",
|
||||
"FILTER_DROPDOWN_LABEL": "팀 선택",
|
||||
"FILTERS": {
|
||||
"ADD_FILTER": "필터 추가",
|
||||
"CLEAR_ALL": "모두 지우기",
|
||||
"NO_FILTER": "사용 가능한 필터가 없습니다",
|
||||
"INPUT_PLACEHOLDER": {
|
||||
"TEAMS": "팀 검색"
|
||||
}
|
||||
},
|
||||
"METRICS": {
|
||||
"CONVERSATIONS": {
|
||||
"NAME": "대화",
|
||||
@@ -413,25 +421,15 @@
|
||||
"CUSTOM_DATE_RANGE": {
|
||||
"CONFIRM": "적용",
|
||||
"PLACEHOLDER": "날짜 범위 선택"
|
||||
},
|
||||
"FILTERS": {
|
||||
"ADD_FILTER": "필터 추가",
|
||||
"CLEAR_ALL": "모두 지우기",
|
||||
"NO_FILTER": "사용 가능한 필터가 없습니다",
|
||||
"INPUT_PLACEHOLDER": {
|
||||
"TEAMS": "팀 검색"
|
||||
}
|
||||
}
|
||||
},
|
||||
"CSAT_REPORTS": {
|
||||
"HEADER": "CSAT 보고서",
|
||||
"NO_RECORDS": "아직 응답이 없습니다",
|
||||
"NO_RECORDS_DESCRIPTION": "고객이 피드백을 제공하기 시작하면 CSAT 설문 응답이 여기에 표시됩니다.",
|
||||
"DOWNLOAD": "CSAT 보고서 다운로드",
|
||||
"DOWNLOAD_FAILED": "CSAT 보고서 다운로드에 실패했습니다",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"LABEL": "에이전트"
|
||||
},
|
||||
"ADD_FILTER": "필터 추가",
|
||||
"CLEAR_ALL": "모두 지우기",
|
||||
"NO_FILTER": "사용 가능한 필터가 없습니다",
|
||||
@@ -441,6 +439,9 @@
|
||||
"TEAMS": "팀 검색",
|
||||
"RATINGS": "평점 검색"
|
||||
},
|
||||
"AGENTS": {
|
||||
"LABEL": "에이전트"
|
||||
},
|
||||
"INBOXES": {
|
||||
"LABEL": "받은 메시지함"
|
||||
},
|
||||
@@ -464,6 +465,8 @@
|
||||
},
|
||||
"UNKNOWN_CUSTOMER": "알 수 없는 고객"
|
||||
},
|
||||
"NO_AGENT": "배정된 에이전트 없음",
|
||||
"NO_FEEDBACK": "피드백이 제공되지 않았습니다",
|
||||
"METRIC": {
|
||||
"TOTAL_RESPONSES": {
|
||||
"LABEL": "총 응답 수",
|
||||
@@ -479,9 +482,6 @@
|
||||
},
|
||||
"RATING_DISTRIBUTION": "평점 분포"
|
||||
},
|
||||
"NO_RECORDS_DESCRIPTION": "고객이 피드백을 제공하기 시작하면 CSAT 설문 응답이 여기에 표시됩니다.",
|
||||
"NO_AGENT": "배정된 에이전트 없음",
|
||||
"NO_FEEDBACK": "피드백이 제공되지 않았습니다",
|
||||
"REVIEW_NOTES": {
|
||||
"TITLE": "리뷰 메모",
|
||||
"PLACEHOLDER": "이 평점에 대한 리뷰 메모를 추가하십시오...",
|
||||
|
||||
@@ -383,6 +383,54 @@
|
||||
"CAPTAIN_AI": "Captain",
|
||||
"CONVERSATION_WORKFLOW": "대화 워크플로"
|
||||
},
|
||||
"CAPTAIN_SETTINGS": {
|
||||
"TITLE": "Captain 설정",
|
||||
"DESCRIPTION": "Captain의 AI 모델과 기능을 구성합니다. Captain은 크레딧 기반 청구를 따르며, 선택한 모델에 따라 Captain이 수행하는 모든 작업에 대해 크레딧이 청구됩니다.",
|
||||
"LOADING": "Captain 구성 로딩 중...",
|
||||
"LINK_TEXT": "Captain 크레딧에 대해 자세히 알아보기",
|
||||
"NOT_ENABLED": "이 계정에서 Captain이 활성화되지 않았습니다. Captain 기능에 접근하려면 플랜을 업그레이드하십시오.",
|
||||
"MODEL_CONFIG": {
|
||||
"TITLE": "모델 구성",
|
||||
"DESCRIPTION": "다양한 기능에 대한 AI 모델을 선택합니다.",
|
||||
"SELECT_MODEL": "모델 선택",
|
||||
"CREDITS_PER_MESSAGE": "{credits} 크레딧/메시지",
|
||||
"COMING_SOON": "곧 출시 예정",
|
||||
"EDITOR": {
|
||||
"TITLE": "편집기 기능",
|
||||
"DESCRIPTION": "메시지 편집기에서 스마트 작성, 문법 교정, 톤 조정 및 콘텐츠 개선을 지원합니다."
|
||||
},
|
||||
"ASSISTANT": {
|
||||
"TITLE": "어시스턴트",
|
||||
"DESCRIPTION": "자동 응답, 대화 요약 및 고객 상호 작용을 위한 지능형 답변 제안을 처리합니다."
|
||||
},
|
||||
"COPILOT": {
|
||||
"TITLE": "Copilot",
|
||||
"DESCRIPTION": "대화 중 실시간 맥락 제안, 지식 기반 추천 및 사전 인사이트를 제공합니다."
|
||||
}
|
||||
},
|
||||
"FEATURES": {
|
||||
"TITLE": "기능",
|
||||
"DESCRIPTION": "AI 기반 기능을 활성화하거나 비활성화합니다.",
|
||||
"AUDIO_TRANSCRIPTION": {
|
||||
"TITLE": "오디오 전사",
|
||||
"DESCRIPTION": "음성 메시지와 통화 녹음을 검색 가능한 텍스트로 자동 변환합니다."
|
||||
},
|
||||
"HELP_CENTER_SEARCH": {
|
||||
"TITLE": "도움말 센터 검색 인덱싱",
|
||||
"DESCRIPTION": "도움말 센터 게시물 내에서 맥락 인식 검색을 위해 AI를 사용합니다."
|
||||
},
|
||||
"LABEL_SUGGESTION": {
|
||||
"TITLE": "라벨 제안",
|
||||
"DESCRIPTION": "콘텐츠 분석 및 맥락에 기반하여 대화에 대한 관련 라벨과 태그를 자동으로 제안합니다.",
|
||||
"MODEL_TITLE": "라벨 제안 모델",
|
||||
"MODEL_DESCRIPTION": "대화 분석 및 적절한 라벨 제안에 사용할 AI 모델을 선택합니다"
|
||||
}
|
||||
},
|
||||
"API": {
|
||||
"SUCCESS": "Captain 설정이 성공적으로 업데이트되었습니다.",
|
||||
"ERROR": "Captain 설정 업데이트에 실패했습니다. 다시 시도하십시오."
|
||||
}
|
||||
},
|
||||
"BILLING_SETTINGS": {
|
||||
"TITLE": "청구",
|
||||
"DESCRIPTION": "여기에서 구독을 관리하고, 플랜을 업그레이드하여 팀에 더 많은 기능을 제공하십시오.",
|
||||
@@ -509,6 +557,58 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"CONVERSATION_WORKFLOW": {
|
||||
"INDEX": {
|
||||
"HEADER": {
|
||||
"TITLE": "대화 워크플로",
|
||||
"DESCRIPTION": "대화 해결에 대한 규칙과 필수 항목을 구성합니다."
|
||||
}
|
||||
},
|
||||
"REQUIRED_ATTRIBUTES": {
|
||||
"TITLE": "해결 시 필수 속성",
|
||||
"DESCRIPTION": "대화를 해결할 때, 에이전트가 아직 채우지 않은 이 속성들을 입력하도록 안내됩니다.",
|
||||
"NO_ATTRIBUTES": "아직 추가된 속성이 없습니다",
|
||||
"ADD": {
|
||||
"TITLE": "속성 추가",
|
||||
"SEARCH_PLACEHOLDER": "속성 검색"
|
||||
},
|
||||
"SAVE": {
|
||||
"SUCCESS": "필수 속성이 업데이트되었습니다",
|
||||
"ERROR": "필수 속성을 업데이트할 수 없습니다. 다시 시도하십시오"
|
||||
},
|
||||
"MODAL": {
|
||||
"TITLE": "대화 해결",
|
||||
"DESCRIPTION": "이 대화를 해결하기 전에 다음 사용자 정의 속성을 입력하십시오",
|
||||
"ACTIONS": {
|
||||
"RESOLVE": "대화 해결",
|
||||
"CANCEL": "취소"
|
||||
},
|
||||
"PLACEHOLDERS": {
|
||||
"TEXT": "메모를 작성하십시오...",
|
||||
"NUMBER": "숫자를 입력하십시오",
|
||||
"LINK": "링크를 추가하십시오",
|
||||
"DATE": "날짜를 선택하십시오",
|
||||
"LIST": "옵션을 선택하십시오"
|
||||
},
|
||||
"CHECKBOX": {
|
||||
"YES": "예",
|
||||
"NO": "아니오"
|
||||
}
|
||||
},
|
||||
"PAYWALL": {
|
||||
"TITLE": "필수 속성을 사용하려면 업그레이드하십시오",
|
||||
"AVAILABLE_ON": "필수 대화 속성 기능은 Business 및 Enterprise 플랜에서 사용할 수 있습니다.",
|
||||
"UPGRADE_PROMPT": "대화 해결 전에 에이전트에게 필수 속성 입력을 요구하려면 플랜을 업그레이드하십시오.",
|
||||
"UPGRADE_NOW": "지금 업그레이드",
|
||||
"CANCEL_ANYTIME": "언제든지 플랜을 변경하거나 취소할 수 있습니다"
|
||||
},
|
||||
"ENTERPRISE_PAYWALL": {
|
||||
"AVAILABLE_ON": "필수 대화 속성 기능은 유료 플랜에서 사용할 수 있습니다.",
|
||||
"UPGRADE_PROMPT": "대화 해결 전에 필수 속성을 적용하려면 유료 플랜으로 업그레이드하십시오.",
|
||||
"ASK_ADMIN": "업그레이드를 위해 관리자에게 문의하십시오."
|
||||
}
|
||||
}
|
||||
},
|
||||
"CREATE_ACCOUNT": {
|
||||
"NO_ACCOUNT_WARNING": "Chatwoot 계정을 찾을 수 없습니다. 계속하려면 새 계정을 만드십시오.",
|
||||
"NEW_ACCOUNT": "새 계정",
|
||||
@@ -609,6 +709,12 @@
|
||||
"CONFIRM_BUTTON_LABEL": "계속",
|
||||
"CANCEL_BUTTON_LABEL": "취소"
|
||||
},
|
||||
"INBOX_LINK_PROMPT": {
|
||||
"TITLE": "받은 메시지함을 정책에 연결",
|
||||
"DESCRIPTION": "이 받은 메시지함을 배정 정책에 연결하시겠습니까?",
|
||||
"LINK_BUTTON": "받은 메시지함 연결",
|
||||
"CANCEL_BUTTON": "건너뛰기"
|
||||
},
|
||||
"API": {
|
||||
"SUCCESS_MESSAGE": "배정 정책이 성공적으로 업데이트되었습니다",
|
||||
"ERROR_MESSAGE": "배정 정책 업데이트에 실패했습니다"
|
||||
@@ -622,12 +728,6 @@
|
||||
"SUCCESS_MESSAGE": "받은 메시지함이 정책에서 성공적으로 제거되었습니다",
|
||||
"ERROR_MESSAGE": "정책에서 받은 메시지함 제거에 실패했습니다"
|
||||
}
|
||||
},
|
||||
"INBOX_LINK_PROMPT": {
|
||||
"TITLE": "받은 메시지함을 정책에 연결",
|
||||
"DESCRIPTION": "이 받은 메시지함을 배정 정책에 연결하시겠습니까?",
|
||||
"LINK_BUTTON": "받은 메시지함 연결",
|
||||
"CANCEL_BUTTON": "건너뛰기"
|
||||
}
|
||||
},
|
||||
"FORM": {
|
||||
@@ -818,105 +918,5 @@
|
||||
"CONFIRM_BUTTON_LABEL": "삭제",
|
||||
"CANCEL_BUTTON_LABEL": "취소"
|
||||
}
|
||||
},
|
||||
"CAPTAIN_SETTINGS": {
|
||||
"TITLE": "Captain 설정",
|
||||
"DESCRIPTION": "Captain의 AI 모델과 기능을 구성합니다. Captain은 크레딧 기반 청구를 따르며, 선택한 모델에 따라 Captain이 수행하는 모든 작업에 대해 크레딧이 청구됩니다.",
|
||||
"LOADING": "Captain 구성 로딩 중...",
|
||||
"LINK_TEXT": "Captain 크레딧에 대해 자세히 알아보기",
|
||||
"NOT_ENABLED": "이 계정에서 Captain이 활성화되지 않았습니다. Captain 기능에 접근하려면 플랜을 업그레이드하십시오.",
|
||||
"MODEL_CONFIG": {
|
||||
"TITLE": "모델 구성",
|
||||
"DESCRIPTION": "다양한 기능에 대한 AI 모델을 선택합니다.",
|
||||
"SELECT_MODEL": "모델 선택",
|
||||
"CREDITS_PER_MESSAGE": "{credits} 크레딧/메시지",
|
||||
"COMING_SOON": "곧 출시 예정",
|
||||
"EDITOR": {
|
||||
"TITLE": "편집기 기능",
|
||||
"DESCRIPTION": "메시지 편집기에서 스마트 작성, 문법 교정, 톤 조정 및 콘텐츠 개선을 지원합니다."
|
||||
},
|
||||
"ASSISTANT": {
|
||||
"TITLE": "어시스턴트",
|
||||
"DESCRIPTION": "자동 응답, 대화 요약 및 고객 상호 작용을 위한 지능형 답변 제안을 처리합니다."
|
||||
},
|
||||
"COPILOT": {
|
||||
"TITLE": "Copilot",
|
||||
"DESCRIPTION": "대화 중 실시간 맥락 제안, 지식 기반 추천 및 사전 인사이트를 제공합니다."
|
||||
}
|
||||
},
|
||||
"FEATURES": {
|
||||
"TITLE": "기능",
|
||||
"DESCRIPTION": "AI 기반 기능을 활성화하거나 비활성화합니다.",
|
||||
"AUDIO_TRANSCRIPTION": {
|
||||
"TITLE": "오디오 전사",
|
||||
"DESCRIPTION": "음성 메시지와 통화 녹음을 검색 가능한 텍스트로 자동 변환합니다."
|
||||
},
|
||||
"HELP_CENTER_SEARCH": {
|
||||
"TITLE": "도움말 센터 검색 인덱싱",
|
||||
"DESCRIPTION": "도움말 센터 게시물 내에서 맥락 인식 검색을 위해 AI를 사용합니다."
|
||||
},
|
||||
"LABEL_SUGGESTION": {
|
||||
"TITLE": "라벨 제안",
|
||||
"DESCRIPTION": "콘텐츠 분석 및 맥락에 기반하여 대화에 대한 관련 라벨과 태그를 자동으로 제안합니다.",
|
||||
"MODEL_TITLE": "라벨 제안 모델",
|
||||
"MODEL_DESCRIPTION": "대화 분석 및 적절한 라벨 제안에 사용할 AI 모델을 선택합니다"
|
||||
}
|
||||
},
|
||||
"API": {
|
||||
"SUCCESS": "Captain 설정이 성공적으로 업데이트되었습니다.",
|
||||
"ERROR": "Captain 설정 업데이트에 실패했습니다. 다시 시도하십시오."
|
||||
}
|
||||
},
|
||||
"CONVERSATION_WORKFLOW": {
|
||||
"INDEX": {
|
||||
"HEADER": {
|
||||
"TITLE": "대화 워크플로",
|
||||
"DESCRIPTION": "대화 해결에 대한 규칙과 필수 항목을 구성합니다."
|
||||
}
|
||||
},
|
||||
"REQUIRED_ATTRIBUTES": {
|
||||
"TITLE": "해결 시 필수 속성",
|
||||
"DESCRIPTION": "대화를 해결할 때, 에이전트가 아직 채우지 않은 이 속성들을 입력하도록 안내됩니다.",
|
||||
"NO_ATTRIBUTES": "아직 추가된 속성이 없습니다",
|
||||
"ADD": {
|
||||
"TITLE": "속성 추가",
|
||||
"SEARCH_PLACEHOLDER": "속성 검색"
|
||||
},
|
||||
"SAVE": {
|
||||
"SUCCESS": "필수 속성이 업데이트되었습니다",
|
||||
"ERROR": "필수 속성을 업데이트할 수 없습니다. 다시 시도하십시오"
|
||||
},
|
||||
"MODAL": {
|
||||
"TITLE": "대화 해결",
|
||||
"DESCRIPTION": "이 대화를 해결하기 전에 다음 사용자 정의 속성을 입력하십시오",
|
||||
"ACTIONS": {
|
||||
"RESOLVE": "대화 해결",
|
||||
"CANCEL": "취소"
|
||||
},
|
||||
"PLACEHOLDERS": {
|
||||
"TEXT": "메모를 작성하십시오...",
|
||||
"NUMBER": "숫자를 입력하십시오",
|
||||
"LINK": "링크를 추가하십시오",
|
||||
"DATE": "날짜를 선택하십시오",
|
||||
"LIST": "옵션을 선택하십시오"
|
||||
},
|
||||
"CHECKBOX": {
|
||||
"YES": "예",
|
||||
"NO": "아니오"
|
||||
}
|
||||
},
|
||||
"PAYWALL": {
|
||||
"TITLE": "필수 속성을 사용하려면 업그레이드하십시오",
|
||||
"AVAILABLE_ON": "필수 대화 속성 기능은 Business 및 Enterprise 플랜에서 사용할 수 있습니다.",
|
||||
"UPGRADE_PROMPT": "대화 해결 전에 에이전트에게 필수 속성 입력을 요구하려면 플랜을 업그레이드하십시오.",
|
||||
"UPGRADE_NOW": "지금 업그레이드",
|
||||
"CANCEL_ANYTIME": "언제든지 플랜을 변경하거나 취소할 수 있습니다"
|
||||
},
|
||||
"ENTERPRISE_PAYWALL": {
|
||||
"AVAILABLE_ON": "필수 대화 속성 기능은 유료 플랜에서 사용할 수 있습니다.",
|
||||
"UPGRADE_PROMPT": "대화 해결 전에 필수 속성을 적용하려면 유료 플랜으로 업그레이드하십시오.",
|
||||
"ASK_ADMIN": "업그레이드를 위해 관리자에게 문의하십시오."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"REGISTER": {
|
||||
"TRY_WOOT": "계정 만들기",
|
||||
"GET_STARTED": "Chatwoot 시작하기",
|
||||
"TITLE": "회원가입",
|
||||
"TESTIMONIAL_HEADER": "앞으로 나아가기 위한 단 한 걸음",
|
||||
"TESTIMONIAL_CONTENT": "고객과 소통하고, 유지하고, 새로운 고객을 찾는 것은 한 걸음이면 됩니다.",
|
||||
@@ -44,7 +45,6 @@
|
||||
"ERROR_MESSAGE": "Chatwoot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
|
||||
},
|
||||
"SUBMIT": "계정 만들기",
|
||||
"HAVE_AN_ACCOUNT": "이미 계정이 있으십니까?",
|
||||
"GET_STARTED": "Chatwoot 시작하기"
|
||||
"HAVE_AN_ACCOUNT": "이미 계정이 있으십니까?"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,12 @@
|
||||
"ADD_ACTION_LONG": "새 SLA 정책 생성",
|
||||
"DESCRIPTION": "서비스 수준 계약(SLA)은 팀과 고객 간의 명확한 기대치를 정의하는 계약입니다. 응답 및 해결 시간에 대한 기준을 설정하여 책임성을 위한 프레임워크를 만들고 일관되고 고품질의 경험을 보장합니다.",
|
||||
"LEARN_MORE": "SLA에 대해 자세히 알아보기",
|
||||
"COUNT": "{n}개의 SLA | {n}개의 SLA",
|
||||
"LOADING": "SLA를 불러오는 중",
|
||||
"SEARCH_PLACEHOLDER": "SLA 검색...",
|
||||
"SEARCH": {
|
||||
"NO_RESULTS": "검색과 일치하는 SLA가 없습니다"
|
||||
},
|
||||
"PAYWALL": {
|
||||
"TITLE": "SLA를 생성하려면 업그레이드하십시오",
|
||||
"AVAILABLE_ON": "SLA 기능은 Business 및 Enterprise 플랜에서만 사용할 수 있습니다.",
|
||||
@@ -20,6 +25,10 @@
|
||||
},
|
||||
"LIST": {
|
||||
"404": "이 계정에 사용 가능한 SLA가 없습니다.",
|
||||
"TABLE_HEADER": {
|
||||
"SLA": "SLA",
|
||||
"BUSINESS_HOURS": "영업시간"
|
||||
},
|
||||
"EMPTY": {
|
||||
"TITLE_1": "Enterprise P0",
|
||||
"DESC_1": "Enterprise 고객이 제기한 즉각적인 대응이 필요한 이슈입니다.",
|
||||
@@ -37,10 +46,6 @@
|
||||
"NRT": "NRT",
|
||||
"RT": "RT"
|
||||
}
|
||||
},
|
||||
"TABLE_HEADER": {
|
||||
"SLA": "SLA",
|
||||
"BUSINESS_HOURS": "영업시간"
|
||||
}
|
||||
},
|
||||
"FORM": {
|
||||
@@ -107,11 +112,6 @@
|
||||
"RT": "해결 시간",
|
||||
"SHOW_MORE": "{count}개 더 보기",
|
||||
"HIDE": "{count}개 행 숨기기"
|
||||
},
|
||||
"COUNT": "{n}개의 SLA | {n}개의 SLA",
|
||||
"SEARCH_PLACEHOLDER": "SLA 검색...",
|
||||
"SEARCH": {
|
||||
"NO_RESULTS": "검색과 일치하는 SLA가 없습니다"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
"LOADING": "팀을 불러오는 중",
|
||||
"DESCRIPTION": "팀을 사용하면 에이전트를 업무 담당에 따라 그룹으로 구성할 수 있습니다. 에이전트는 여러 팀에 소속될 수 있습니다. 협업 시 특정 팀에 대화를 배정할 수 있습니다.",
|
||||
"LEARN_MORE": "팀에 대해 자세히 알아보기",
|
||||
"COUNT": "{n}개의 팀 | {n}개의 팀",
|
||||
"SEARCH_PLACEHOLDER": "팀 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 팀이 없습니다",
|
||||
"LIST": {
|
||||
"404": "계정에 생성된 팀이 없습니다.",
|
||||
"EDIT_TEAM": "팀 수정하기",
|
||||
@@ -116,9 +119,6 @@
|
||||
"LABEL": "이 팀에 자동 배정을 허용합니다."
|
||||
},
|
||||
"SUBMIT_CREATE": "팀 생성"
|
||||
},
|
||||
"COUNT": "{n}개의 팀 | {n}개의 팀",
|
||||
"SEARCH_PLACEHOLDER": "팀 검색...",
|
||||
"NO_RESULTS": "검색과 일치하는 팀이 없습니다"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
"FAILED": "Couldn't remove label. Please try again."
|
||||
},
|
||||
"TEAM_ASSIGNMENT": {
|
||||
"SUCCESFUL": "Priskirta komanda #{team} pokalbiui id {conversationId}",
|
||||
"SUCCESFUL": "Priskirta komanda \"{team}\" pokalbiui id {conversationId}",
|
||||
"FAILED": "Nepavyko priskirti komandos. Prašau, pabandykite dar kartą."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Tiesiogiai"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Nustatymai",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agentai",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Pridėti ar pašalinti agentus iš gautų laiškų aplanko",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Tiešraide"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Iestatījumi",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Aģenti",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Pievienot vai noņemt aģentus no šīs iesūtnes",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "ക്രമീകരണങ്ങൾ",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "ഏജന്റുമാർ",
|
||||
"INBOX_AGENTS_SUB_TEXT": "ഈ ഇൻബോക്സിൽ നിന്ന് ഏജന്റുമാരെ ചേർക്കുക അല്ലെങ്കിൽ നീക്കംചെയ്യുക",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Settings",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Ejen",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Settings",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Instellingen",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agenten",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Voeg agenten toe of verwijder ze uit deze inbox",
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Live"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Innstillinger",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agenter",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Legg til eller fjern agenter fra denne innboksen",
|
||||
|
||||
@@ -255,7 +255,7 @@
|
||||
"CHANGE_TEAM": "Zmieniono przypisany zespół konwersacji",
|
||||
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
|
||||
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
|
||||
"FILE_SIZE_LIMIT": "Plik przekracza limit rozmiaru załącznika %{MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
|
||||
"FILE_SIZE_LIMIT": "Plik przekracza limit rozmiaru załącznika {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
|
||||
"FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
|
||||
"MESSAGE_ERROR": "Nie można wysłać tej wiadomości, spróbuj ponownie później",
|
||||
"SENT_BY": "Wysłane przez:",
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
"WHATSAPP_CLOUD": "Chmura WhatsApp",
|
||||
"WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
|
||||
"TWILIO_DESC": "Connect via Twilio credentials",
|
||||
"360_DIALOG": "360Dialog"
|
||||
"360_DIALOG": "360dialog"
|
||||
},
|
||||
"SELECT_PROVIDER": {
|
||||
"TITLE": "Select your API provider",
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Na żywo"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Ustawienia",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agenci",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Dodaj lub usuń agentów z tej skrzynki odbiorczej",
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
"WHATSAPP_CLOUD": "WhatsApp Cloud",
|
||||
"WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
|
||||
"TWILIO_DESC": "Connect via Twilio credentials",
|
||||
"360_DIALOG": "360Dialog"
|
||||
"360_DIALOG": "360dialog"
|
||||
},
|
||||
"SELECT_PROVIDER": {
|
||||
"TITLE": "Select your API provider",
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Disponível"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Webhook Configuration",
|
||||
"DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
|
||||
"ACTION_REQUIRED": "Webhook not configured",
|
||||
"REGISTER_BUTTON": "Register Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook registered successfully",
|
||||
"REGISTER_ERROR": "Failed to register webhook. Please try again.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configured successfully",
|
||||
"URL_MISMATCH": "Webhook URL mismatch"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Configurações",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Allowed Domains",
|
||||
"SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "example.com, www.example.com, app.example.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agentes",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Adicionar ou remover agentes desta caixa de entrada",
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
"DELETE": "{agentName} excluiu uma caixa de entrada (#{id})"
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"ADD": "{agentName} criou um webhook (##{id})",
|
||||
"ADD": "{agentName} criou um webhook (#{id})",
|
||||
"EDIT": "{agentName} atualizou um webhook (#{id})",
|
||||
"DELETE": "{agentName} excluiu um webhook (#{id})"
|
||||
},
|
||||
|
||||
@@ -255,13 +255,13 @@
|
||||
"DOMAIN": {
|
||||
"LABEL": "Domínio personalizado",
|
||||
"PLACEHOLDER": "Domínio personalizado do portal",
|
||||
"HELP_TEXT": "Adicione somente se você quiser usar um domínio personalizado para seus portais. Por exemplo: https://example. com",
|
||||
"HELP_TEXT": "Adicione somente se você quiser usar um domínio personalizado para seus portais. Por exemplo: {exampleURL}",
|
||||
"ERROR": "Insira uma URL de domínio válida"
|
||||
},
|
||||
"HOME_PAGE_LINK": {
|
||||
"LABEL": "Link da Página Inicial",
|
||||
"PLACEHOLDER": "Link da página inicial do portal",
|
||||
"HELP_TEXT": "O link usado para retornar do portal para a página inicial. Ex: https://example.com",
|
||||
"HELP_TEXT": "O link usado para retornar do portal para a página inicial. Ex: {exampleURL}",
|
||||
"ERROR": "Digite uma URL de página inicial válida"
|
||||
},
|
||||
"THEME_COLOR": {
|
||||
|
||||
@@ -685,6 +685,16 @@
|
||||
"SANDBOX": "Sandbox",
|
||||
"LIVE": "Em tempo real"
|
||||
}
|
||||
},
|
||||
"WEBHOOK": {
|
||||
"TITLE": "Configuração do Webhook",
|
||||
"DESCRIPTION": "A URL do webhook é obrigatória para que sua conta do WhatsApp Business receba mensagens dos clientes",
|
||||
"ACTION_REQUIRED": "Webhook não configurado",
|
||||
"REGISTER_BUTTON": "Cadastrar Webhook",
|
||||
"REGISTER_SUCCESS": "Webhook cadastrado com sucesso",
|
||||
"REGISTER_ERROR": "Falha ao cadastrar webhook. Por favor, tente novamente.",
|
||||
"CONFIGURED_SUCCESS": "Webhook configurado com sucesso",
|
||||
"URL_MISMATCH": "Incompatibilidade na URL do webhook"
|
||||
}
|
||||
},
|
||||
"SETTINGS": "Configurações",
|
||||
@@ -701,7 +711,7 @@
|
||||
"ALLOWED_DOMAINS": {
|
||||
"TITLE": "Domínios permitidos",
|
||||
"SUBTITLE": "Adicione coringa ou domínios separados por vírgula (deixe em branco para permitir todos), ex: *.chatwoot.dev, chatwoot.com.",
|
||||
"PLACEHOLDER": "Insira domínios separados por vírgula (ex: *.chatwoot.dev, chatwoot.com)"
|
||||
"PLACEHOLDER": "exemplo.com, www.exemplo.com, app.exemplo.com"
|
||||
},
|
||||
"INBOX_AGENTS": "Agentes",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Adicionar ou remover agentes dessa caixa de entrada",
|
||||
|
||||
@@ -8,9 +8,11 @@ import bulkActions from './bulkActions.json';
|
||||
import campaign from './campaign.json';
|
||||
import cannedMgmt from './cannedMgmt.json';
|
||||
import chatlist from './chatlist.json';
|
||||
import companies from './companies.json';
|
||||
import components from './components.json';
|
||||
import contact from './contact.json';
|
||||
import contactFilters from './contactFilters.json';
|
||||
import contentTemplates from './contentTemplates.json';
|
||||
import conversation from './conversation.json';
|
||||
import csatMgmt from './csatMgmt.json';
|
||||
import customRole from './customRole.json';
|
||||
@@ -26,6 +28,7 @@ import integrations from './integrations.json';
|
||||
import labelsMgmt from './labelsMgmt.json';
|
||||
import login from './login.json';
|
||||
import macros from './macros.json';
|
||||
import mfa from './mfa.json';
|
||||
import report from './report.json';
|
||||
import resetPassword from './resetPassword.json';
|
||||
import search from './search.json';
|
||||
@@ -33,8 +36,11 @@ import setNewPassword from './setNewPassword.json';
|
||||
import settings from './settings.json';
|
||||
import signup from './signup.json';
|
||||
import sla from './sla.json';
|
||||
import snooze from './snooze.json';
|
||||
import teamsSettings from './teamsSettings.json';
|
||||
import webhooks from './webhooks.json';
|
||||
import whatsappTemplates from './whatsappTemplates.json';
|
||||
import yearInReview from './yearInReview.json';
|
||||
|
||||
export default {
|
||||
...advancedFilters,
|
||||
@@ -47,9 +53,11 @@ export default {
|
||||
...campaign,
|
||||
...cannedMgmt,
|
||||
...chatlist,
|
||||
...companies,
|
||||
...components,
|
||||
...contact,
|
||||
...contactFilters,
|
||||
...contentTemplates,
|
||||
...conversation,
|
||||
...csatMgmt,
|
||||
...customRole,
|
||||
@@ -65,6 +73,7 @@ export default {
|
||||
...labelsMgmt,
|
||||
...login,
|
||||
...macros,
|
||||
...mfa,
|
||||
...report,
|
||||
...resetPassword,
|
||||
...search,
|
||||
@@ -72,6 +81,9 @@ export default {
|
||||
...settings,
|
||||
...signup,
|
||||
...sla,
|
||||
...snooze,
|
||||
...teamsSettings,
|
||||
...webhooks,
|
||||
...whatsappTemplates,
|
||||
...yearInReview,
|
||||
};
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
"FAILED": "Couldn't remove label. Please try again."
|
||||
},
|
||||
"TEAM_ASSIGNMENT": {
|
||||
"SUCCESFUL": "Echipa atribuită #{team} la conversația cu id {conversationId}",
|
||||
"SUCCESFUL": "Echipa atribuită \"{team}\" la conversația cu id {conversationId}",
|
||||
"FAILED": "Nu s-a putut atribui echipa. Vă rugăm să încercaţi din nou."
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user