diff --git a/app/javascript/dashboard/components/widgets/conversation/conversationBulkActions/Index.vue b/app/javascript/dashboard/components/widgets/conversation/conversationBulkActions/Index.vue
index 9a245ec8c..233b3a300 100644
--- a/app/javascript/dashboard/components/widgets/conversation/conversationBulkActions/Index.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/conversationBulkActions/Index.vue
@@ -100,6 +100,8 @@ export default {
onCmdSnoozeConversation(snoozeType) {
if (snoozeType === wootConstants.SNOOZE_OPTIONS.UNTIL_CUSTOM_TIME) {
this.showCustomTimeSnoozeModal = true;
+ } else if (typeof snoozeType === 'number') {
+ this.updateConversations('snoozed', snoozeType);
} else {
this.updateConversations('snoozed', findSnoozeTime(snoozeType) || null);
}
diff --git a/app/javascript/dashboard/composables/spec/useAutomation.spec.js b/app/javascript/dashboard/composables/spec/useAutomation.spec.js
index 9e7cf1663..7ff701ebe 100644
--- a/app/javascript/dashboard/composables/spec/useAutomation.spec.js
+++ b/app/javascript/dashboard/composables/spec/useAutomation.spec.js
@@ -38,7 +38,7 @@ describe('useAutomation', () => {
});
useMapGetter.mockImplementation(getter => {
const getterMap = {
- 'agents/getAgents': agents,
+ 'agents/getVerifiedAgents': agents,
'campaigns/getAllCampaigns': campaigns,
'contacts/getContacts': contacts,
'inboxes/getInboxes': inboxes,
diff --git a/app/javascript/dashboard/composables/spec/useMacros.spec.js b/app/javascript/dashboard/composables/spec/useMacros.spec.js
index 7666e4afa..e7f6aa495 100644
--- a/app/javascript/dashboard/composables/spec/useMacros.spec.js
+++ b/app/javascript/dashboard/composables/spec/useMacros.spec.js
@@ -111,7 +111,7 @@ describe('useMacros', () => {
useStoreGetters.mockReturnValue({
'labels/getLabels': { value: mockLabels },
'teams/getTeams': { value: mockTeams },
- 'agents/getAgents': { value: mockAgents },
+ 'agents/getVerifiedAgents': { value: mockAgents },
});
});
@@ -167,7 +167,7 @@ describe('useMacros', () => {
useStoreGetters.mockReturnValue({
'labels/getLabels': { value: [] },
'teams/getTeams': { value: [] },
- 'agents/getAgents': { value: [] },
+ 'agents/getVerifiedAgents': { value: [] },
});
const { getMacroDropdownValues } = useMacros();
diff --git a/app/javascript/dashboard/composables/useAutomationValues.js b/app/javascript/dashboard/composables/useAutomationValues.js
index 6a6b507c8..709aba20b 100644
--- a/app/javascript/dashboard/composables/useAutomationValues.js
+++ b/app/javascript/dashboard/composables/useAutomationValues.js
@@ -20,7 +20,7 @@ import {
export default function useAutomationValues() {
const getters = useStoreGetters();
const { t } = useI18n();
- const agents = useMapGetter('agents/getAgents');
+ const agents = useMapGetter('agents/getVerifiedAgents');
const campaigns = useMapGetter('campaigns/getAllCampaigns');
const contacts = useMapGetter('contacts/getContacts');
const inboxes = useMapGetter('inboxes/getInboxes');
diff --git a/app/javascript/dashboard/composables/useMacros.js b/app/javascript/dashboard/composables/useMacros.js
index 8f0227fa3..437690eff 100644
--- a/app/javascript/dashboard/composables/useMacros.js
+++ b/app/javascript/dashboard/composables/useMacros.js
@@ -13,7 +13,7 @@ export const useMacros = () => {
const labels = computed(() => getters['labels/getLabels'].value);
const teams = computed(() => getters['teams/getTeams'].value);
- const agents = computed(() => getters['agents/getAgents'].value);
+ const agents = computed(() => getters['agents/getVerifiedAgents'].value);
/**
* Get dropdown values based on the specified type
diff --git a/app/javascript/dashboard/constants/globals.js b/app/javascript/dashboard/constants/globals.js
index 45cdf8318..0d63e830c 100644
--- a/app/javascript/dashboard/constants/globals.js
+++ b/app/javascript/dashboard/constants/globals.js
@@ -21,6 +21,7 @@ export default {
PRIORITY_DESC: 'priority_desc',
WAITING_SINCE_ASC: 'waiting_since_asc',
WAITING_SINCE_DESC: 'waiting_since_desc',
+ PRIORITY_DESC_CREATED_AT_ASC: 'priority_desc_created_at_asc',
},
ARTICLE_STATUS_TYPES: {
DRAFT: 0,
diff --git a/app/javascript/dashboard/featureFlags.js b/app/javascript/dashboard/featureFlags.js
index 353bed96e..858c0ecbc 100644
--- a/app/javascript/dashboard/featureFlags.js
+++ b/app/javascript/dashboard/featureFlags.js
@@ -21,10 +21,8 @@ export const FEATURE_FLAGS = {
AUDIT_LOGS: 'audit_logs',
INBOX_VIEW: 'inbox_view',
SLA: 'sla',
- RESPONSE_BOT: 'response_bot',
CHANNEL_EMAIL: 'channel_email',
CHANNEL_FACEBOOK: 'channel_facebook',
- CHANNEL_TWITTER: 'channel_twitter',
CHANNEL_WEBSITE: 'channel_website',
CUSTOM_REPLY_DOMAIN: 'custom_reply_domain',
CUSTOM_REPLY_EMAIL: 'custom_reply_email',
@@ -36,7 +34,6 @@ export const FEATURE_FLAGS = {
CAPTAIN: 'captain_integration',
CUSTOM_ROLES: 'custom_roles',
CHATWOOT_V4: 'chatwoot_v4',
- REPORT_V4: 'report_v4',
CHANNEL_INSTAGRAM: 'channel_instagram',
CHANNEL_TIKTOK: 'channel_tiktok',
CONTACT_CHATWOOT_SUPPORT_TEAM: 'contact_chatwoot_support_team',
diff --git a/app/javascript/dashboard/helper/AnalyticsHelper/events.js b/app/javascript/dashboard/helper/AnalyticsHelper/events.js
index c9fefb129..97b7931fb 100644
--- a/app/javascript/dashboard/helper/AnalyticsHelper/events.js
+++ b/app/javascript/dashboard/helper/AnalyticsHelper/events.js
@@ -119,6 +119,10 @@ export const COPILOT_EVENTS = Object.freeze({
USE_CAPTAIN_RESPONSE: 'Copilot: Used captain response',
});
+export const SNOOZE_EVENTS = Object.freeze({
+ NLP_SNOOZE_APPLIED: 'Applied snooze via text-to-date input',
+});
+
export const GENERAL_EVENTS = Object.freeze({
COMMAND_BAR: 'Used commandbar',
});
diff --git a/app/javascript/dashboard/helper/featureHelper.js b/app/javascript/dashboard/helper/featureHelper.js
index ae805ccf1..c90ec15db 100644
--- a/app/javascript/dashboard/helper/featureHelper.js
+++ b/app/javascript/dashboard/helper/featureHelper.js
@@ -13,7 +13,6 @@ const FEATURE_HELP_URLS = {
integrations: 'https://chwt.app/hc/integrations',
labels: 'https://chwt.app/hc/labels',
macros: 'https://chwt.app/hc/macros',
- message_reply_to: 'https://chwt.app/hc/reply-to',
reports: 'https://chwt.app/hc/reports',
sla: 'https://chwt.app/hc/sla',
team_management: 'https://chwt.app/hc/teams',
diff --git a/app/javascript/dashboard/helper/portalHelper.js b/app/javascript/dashboard/helper/portalHelper.js
index a640ed6ca..37d09337f 100644
--- a/app/javascript/dashboard/helper/portalHelper.js
+++ b/app/javascript/dashboard/helper/portalHelper.js
@@ -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'],
diff --git a/app/javascript/dashboard/helper/snoozeDateParser/index.js b/app/javascript/dashboard/helper/snoozeDateParser/index.js
new file mode 100644
index 000000000..bbdd01326
--- /dev/null
+++ b/app/javascript/dashboard/helper/snoozeDateParser/index.js
@@ -0,0 +1,12 @@
+/**
+ * snoozeDateParser — Natural language date/time parser for snooze.
+ *
+ * Barrel re-export from submodules:
+ * - parser.js: core parsing engine (parseDateFromText)
+ * - localization.js: multilingual suggestion generator (generateDateSuggestions)
+ * - suggestions.js: compositional suggestion engine
+ * - tokenMaps.js: shared token maps and utility functions
+ */
+
+export { parseDateFromText } from './parser';
+export { generateDateSuggestions } from './localization';
diff --git a/app/javascript/dashboard/helper/snoozeDateParser/localization.js b/app/javascript/dashboard/helper/snoozeDateParser/localization.js
new file mode 100644
index 000000000..461fc96e9
--- /dev/null
+++ b/app/javascript/dashboard/helper/snoozeDateParser/localization.js
@@ -0,0 +1,408 @@
+/**
+ * Handles non-English input and generates the final suggestion list.
+ * Translates localized words to English before parsing, then converts
+ * suggestion labels back to the user's language for display.
+ */
+
+import {
+ WEEKDAY_MAP,
+ MONTH_MAP,
+ UNIT_MAP,
+ WORD_NUMBER_MAP,
+ RELATIVE_DAY_MAP,
+ TIME_OF_DAY_MAP,
+ sanitize,
+ stripNoise,
+ normalizeDigits,
+} from './tokenMaps';
+
+import { parseDateFromText } from './parser';
+import { buildSuggestionCandidates, MAX_SUGGESTIONS } from './suggestions';
+
+// ─── English Reference Data ─────────────────────────────────────────────────
+
+const EN_WEEKDAYS_LIST = [
+ 'monday',
+ 'tuesday',
+ 'wednesday',
+ 'thursday',
+ 'friday',
+ 'saturday',
+ 'sunday',
+];
+
+const EN_MONTHS_LIST = [
+ 'january',
+ 'february',
+ 'march',
+ 'april',
+ 'may',
+ 'june',
+ 'july',
+ 'august',
+ 'september',
+ 'october',
+ 'november',
+ 'december',
+];
+
+const EN_DEFAULTS = {
+ UNITS: {
+ MINUTE: 'minute',
+ MINUTES: 'minutes',
+ HOUR: 'hour',
+ HOURS: 'hours',
+ DAY: 'day',
+ DAYS: 'days',
+ WEEK: 'week',
+ WEEKS: 'weeks',
+ MONTH: 'month',
+ MONTHS: 'months',
+ YEAR: 'year',
+ YEARS: 'years',
+ },
+ RELATIVE: {
+ TOMORROW: 'tomorrow',
+ DAY_AFTER_TOMORROW: 'day after tomorrow',
+ NEXT_WEEK: 'next week',
+ NEXT_MONTH: 'next month',
+ THIS_WEEKEND: 'this weekend',
+ NEXT_WEEKEND: 'next weekend',
+ },
+ TIME_OF_DAY: {
+ MORNING: 'morning',
+ AFTERNOON: 'afternoon',
+ EVENING: 'evening',
+ NIGHT: 'night',
+ NOON: 'noon',
+ MIDNIGHT: 'midnight',
+ },
+ WORD_NUMBERS: {
+ ONE: 'one',
+ TWO: 'two',
+ THREE: 'three',
+ FOUR: 'four',
+ FIVE: 'five',
+ SIX: 'six',
+ SEVEN: 'seven',
+ EIGHT: 'eight',
+ NINE: 'nine',
+ TEN: 'ten',
+ TWELVE: 'twelve',
+ FIFTEEN: 'fifteen',
+ TWENTY: 'twenty',
+ THIRTY: 'thirty',
+ },
+ ORDINALS: {
+ FIRST: 'first',
+ SECOND: 'second',
+ THIRD: 'third',
+ FOURTH: 'fourth',
+ FIFTH: 'fifth',
+ },
+ MERIDIEM: { AM: 'am', PM: 'pm' },
+ HALF: 'half',
+ NEXT: 'next',
+ THIS: 'this',
+ AT: 'at',
+ IN: 'in',
+ OF: 'of',
+ AFTER: 'after',
+ WEEK: 'week',
+ DAY: 'day',
+ FROM_NOW: 'from now',
+ NEXT_YEAR: 'next year',
+};
+
+const STRUCTURAL_WORDS = [
+ 'at',
+ 'in',
+ 'next',
+ 'this',
+ 'from',
+ 'now',
+ 'after',
+ 'half',
+ 'same',
+ 'time',
+ 'weekend',
+ 'end',
+ 'of',
+ 'the',
+ 'eod',
+ 'am',
+ 'pm',
+ 'week',
+ 'day',
+ 'first',
+ 'second',
+ 'third',
+ 'fourth',
+ 'fifth',
+];
+
+const ENGLISH_VOCAB = new Set([
+ ...Object.keys(WEEKDAY_MAP),
+ ...Object.keys(MONTH_MAP),
+ ...Object.keys(UNIT_MAP),
+ ...Object.keys(WORD_NUMBER_MAP),
+ ...Object.keys(RELATIVE_DAY_MAP),
+ ...Object.keys(TIME_OF_DAY_MAP),
+ ...EN_WEEKDAYS_LIST,
+ ...EN_MONTHS_LIST,
+ ...STRUCTURAL_WORDS,
+]);
+
+// ─── Regex for token replacement ────────────────────────────────────────────
+
+const MONTH_NAMES = Object.keys(MONTH_MAP).join('|');
+const MONTH_NAME_RE = new RegExp(`\\b(?:${MONTH_NAMES})\\b`, 'i');
+const NUM_TOD_RE =
+ /\b(\d{1,2}(?::\d{2})?)\s+(morning|noon|afternoon|evening|night)\b/g;
+const TOD_TO_MERIDIEM = {
+ morning: 'am',
+ noon: 'pm',
+ afternoon: 'pm',
+ evening: 'pm',
+ night: 'pm',
+};
+
+// ─── Translation Cache ──────────────────────────────────────────────────────
+
+const safeString = v => (v == null ? '' : String(v));
+const MAX_PAIRS_CACHE = 20;
+const pairsCache = new Map();
+const CACHE_SECTIONS = [
+ 'UNITS',
+ 'RELATIVE',
+ 'TIME_OF_DAY',
+ 'WORD_NUMBERS',
+ 'ORDINALS',
+ 'MERIDIEM',
+];
+const SINGLE_KEYS = [
+ 'HALF',
+ 'NEXT',
+ 'THIS',
+ 'AT',
+ 'IN',
+ 'OF',
+ 'AFTER',
+ 'WEEK',
+ 'DAY',
+ 'FROM_NOW',
+ 'NEXT_YEAR',
+];
+
+/** Create a string key from translations so we can cache results. */
+const translationSignature = translations => {
+ if (!translations || typeof translations !== 'object') return 'none';
+ return [
+ ...CACHE_SECTIONS.flatMap(section => {
+ const values = translations[section] || {};
+ return Object.keys(values)
+ .sort()
+ .map(k => `${section}.${k}:${safeString(values[k]).toLowerCase()}`);
+ }),
+ ...SINGLE_KEYS.map(
+ k => `${k}:${safeString(translations[k]).toLowerCase()}`
+ ),
+ ].join('|');
+};
+
+/** Build a list of [localWord, englishWord] pairs from the translations and browser locale. */
+const buildReplacementPairsUncached = (translations, locale) => {
+ const pairs = [];
+ const seen = new Set();
+ const t = translations || {};
+
+ const addPair = (local, en) => {
+ const l = sanitize(safeString(local));
+ const e = safeString(en).toLowerCase();
+ const key = `${l}\0${e}`;
+ if (l && e && l !== e && !seen.has(key)) {
+ seen.add(key);
+ pairs.push([l, e]);
+ }
+ };
+
+ CACHE_SECTIONS.forEach(section => {
+ const localSection = t[section] || {};
+ const enSection = EN_DEFAULTS[section] || {};
+ Object.keys(enSection).forEach(key => {
+ addPair(localSection[key], enSection[key]);
+ });
+ });
+
+ SINGLE_KEYS.forEach(key => addPair(t[key], EN_DEFAULTS[key]));
+
+ try {
+ const wdFmt = new Intl.DateTimeFormat(locale, { weekday: 'long' });
+ // Jan 1, 2024 is a Monday — aligns with EN_WEEKDAYS_LIST[0]='monday'
+ EN_WEEKDAYS_LIST.forEach((en, i) => {
+ addPair(wdFmt.format(new Date(2024, 0, i + 1)), en);
+ });
+ } catch {
+ /* locale not supported */
+ }
+
+ try {
+ const moFmt = new Intl.DateTimeFormat(locale, { month: 'long' });
+ EN_MONTHS_LIST.forEach((en, i) => {
+ addPair(moFmt.format(new Date(2024, i, 1)), en);
+ });
+ } catch {
+ /* locale not supported */
+ }
+
+ pairs.sort((a, b) => b[0].length - a[0].length);
+ return pairs;
+};
+
+/** Same as above but cached. Keeps up to 20 entries to avoid rebuilding every call. */
+const buildReplacementPairs = (translations, locale) => {
+ const cacheKey = `${locale || ''}:${translationSignature(translations)}`;
+ if (pairsCache.has(cacheKey)) return pairsCache.get(cacheKey);
+ const pairs = buildReplacementPairsUncached(translations, locale);
+ if (pairsCache.size >= MAX_PAIRS_CACHE)
+ pairsCache.delete(pairsCache.keys().next().value);
+ pairsCache.set(cacheKey, pairs);
+ return pairs;
+};
+
+// ─── Token Replacement ──────────────────────────────────────────────────────
+
+const escapeRegex = s => s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
+
+/** Swap localized words for their English versions in the text. */
+const substituteLocalTokens = (text, pairs) => {
+ let r = text;
+ pairs.forEach(([local, en]) => {
+ const re = new RegExp(`(?<=^|\\s)${escapeRegex(local)}(?=\\s|$)`, 'g');
+ r = r.replace(re, en);
+ });
+ return r;
+};
+
+/** Drop any words the parser wouldn't understand (keeps English words and numbers). */
+const filterToEnglishVocab = text =>
+ normalizeDigits(text)
+ .replace(/(\d+)h\b/g, '$1:00')
+ .split(/\s+/)
+ .filter(w => /[\d:]/.test(w) || ENGLISH_VOCAB.has(w.toLowerCase()))
+ .join(' ')
+ .replace(/\s+/g, ' ')
+ .trim();
+
+/** Move "next year" to the right spot so the parser can read it (after the month, before time). */
+const repositionNextYear = text => {
+ if (!MONTH_NAME_RE.test(text)) return text;
+ let r = text.replace(/\b(?:next\s+)?year\b/i, m =>
+ /next/i.test(m) ? m : 'next year'
+ );
+ if (!/\bnext\s+year\b/i.test(r)) return r;
+ const withoutNY = r.replace(/\bnext\s+year\b/i, '').trim();
+ const timeRe = /(?:(?:at\s+)?\d{1,2}(?::\d{2})?\s*(?:am|pm)?)\s*$/i;
+ const timePart = withoutNY.match(timeRe);
+ if (timePart) {
+ const beforeTime = withoutNY.slice(0, timePart.index).trim();
+ r = `${beforeTime} next year ${timePart[0].trim()}`;
+ } else {
+ r = `${withoutNY} next year`;
+ }
+ return r;
+};
+
+/** Run the full translation pipeline: swap tokens, filter, fix am/pm, reposition "next year". */
+const replaceTokens = (text, pairs) => {
+ const substituted = substituteLocalTokens(text, pairs);
+ const filtered = filterToEnglishVocab(substituted);
+ const fixed = filtered.replace(
+ NUM_TOD_RE,
+ (_, t, tod) => `${t}${TOD_TO_MERIDIEM[tod]}`
+ );
+ return stripNoise(repositionNextYear(fixed));
+};
+
+/** Convert English words back to the user's language for display. */
+const reverseTokens = (text, pairs) =>
+ pairs.reduce(
+ (r, [local, en]) =>
+ r.replace(
+ new RegExp(`(?<=^|\\s)${escapeRegex(en)}(?=\\s|$)`, 'g'),
+ local
+ ),
+ text
+ );
+
+// ─── Main Suggestion Generator ──────────────────────────────────────────────
+
+/**
+ * Generate snooze suggestions from what the user has typed so far.
+ * Works with any language if translations are provided. Returns up to 5
+ * unique results, each with a label, date, and unix timestamp.
+ *
+ * @param {string} text - what the user typed
+ * @param {Date} [referenceDate] - treat as "now" (defaults to current time)
+ * @param {{ translations?: object, locale?: string }} [options] - i18n config
+ * @returns {Array<{ label: string, date: Date, unix: number }>}
+ */
+export const generateDateSuggestions = (
+ text,
+ referenceDate = new Date(),
+ { translations, locale } = {}
+) => {
+ if (!text || typeof text !== 'string') return [];
+ const normalized = sanitize(text);
+ if (!normalized) return [];
+
+ const stripped = stripNoise(normalized);
+ const pairs =
+ locale && locale !== 'en'
+ ? buildReplacementPairs(translations, locale)
+ : [];
+
+ // Try English parse first, then translated parse if we have locale pairs.
+ // This avoids the problem where a single overlapping word (e.g. "in" in German)
+ // would skip token translation entirely.
+ const directParse = parseDateFromText(stripped, referenceDate);
+
+ const translated = pairs.length ? replaceTokens(normalized, pairs) : null;
+ const translatedParse =
+ translated && translated !== stripped
+ ? parseDateFromText(translated, referenceDate)
+ : null;
+
+ // Prefer direct English parse; fall back to translated parse
+ const useTranslated = !directParse && !!translatedParse;
+ const englishInput = useTranslated ? translated : stripped;
+
+ const seen = new Set();
+ const results = [];
+
+ const exact = directParse || translatedParse;
+ if (exact) {
+ seen.add(exact.unix);
+ const exactLabel =
+ useTranslated && pairs.length
+ ? reverseTokens(englishInput, pairs)
+ : englishInput;
+ results.push({ label: exactLabel, query: englishInput, ...exact });
+ }
+
+ buildSuggestionCandidates(englishInput).some(candidate => {
+ if (results.length >= MAX_SUGGESTIONS) return true;
+ const result = parseDateFromText(candidate, referenceDate);
+ if (result && !seen.has(result.unix)) {
+ seen.add(result.unix);
+ const label =
+ useTranslated && pairs.length
+ ? reverseTokens(candidate, pairs)
+ : candidate;
+ results.push({ label, query: candidate, ...result });
+ }
+ return false;
+ });
+
+ return results;
+};
diff --git a/app/javascript/dashboard/helper/snoozeDateParser/parser.js b/app/javascript/dashboard/helper/snoozeDateParser/parser.js
new file mode 100644
index 000000000..43d401cca
--- /dev/null
+++ b/app/javascript/dashboard/helper/snoozeDateParser/parser.js
@@ -0,0 +1,806 @@
+/**
+ * Parses natural language text into a future date.
+ *
+ * Flow: clean the input → try each matcher in order → return the first future date.
+ * The MATCHERS order matters — see the comment above the array.
+ */
+
+import {
+ add,
+ startOfDay,
+ getDay,
+ isSaturday,
+ isSunday,
+ nextFriday,
+ nextSaturday,
+ getUnixTime,
+ isValid,
+ startOfWeek,
+ addWeeks,
+ isAfter,
+ isBefore,
+ endOfMonth,
+} from 'date-fns';
+
+import {
+ WEEKDAY_MAP,
+ MONTH_MAP,
+ RELATIVE_DAY_MAP,
+ UNIT_MAP,
+ WORD_NUMBER_MAP,
+ NEXT_WEEKDAY_FN,
+ TIME_OF_DAY_MAP,
+ TOD_HOUR_RANGE,
+ HALF_UNIT_DURATIONS,
+ sanitize,
+ stripNoise,
+ parseNumber,
+ parseTimeString,
+ applyTimeToDate,
+ applyTimeOrDefault,
+ strictDate,
+ futureOrNextYear,
+ ensureFutureOrNextDay,
+ inferHoursFromTOD,
+ addFractionalSafe,
+} from './tokenMaps';
+
+// ─── Regex Fragments (derived from maps) ────────────────────────────────────
+
+const WEEKDAY_NAMES = Object.keys(WEEKDAY_MAP).join('|');
+const MONTH_NAMES = Object.keys(MONTH_MAP).join('|');
+const UNIT_NAMES = Object.keys(UNIT_MAP).join('|');
+const WORD_NUMBERS = Object.keys(WORD_NUMBER_MAP).join('|');
+const RELATIVE_DAYS = Object.keys(RELATIVE_DAY_MAP).join('|');
+const TIME_OF_DAY_NAMES = 'morning|afternoon|evening|night|noon|midnight';
+
+const NUM_RE = `(\\d+(?:\\.5)?|${WORD_NUMBERS})`;
+const UNIT_RE = `(${UNIT_NAMES})`;
+const TIME_SUFFIX_RE =
+ '(?:\\s+(?:at\\s+)?(\\d{1,2}(?::\\d{2})?\\s*(?:am|pm|a\\.m\\.?|p\\.m\\.?)?|\\d{1,2}:\\d{2}))?';
+
+const ORDINAL_MAP = {
+ first: 1,
+ second: 2,
+ third: 3,
+ fourth: 4,
+ fifth: 5,
+ sixth: 6,
+ seventh: 7,
+ eighth: 8,
+ ninth: 9,
+ tenth: 10,
+};
+const parseOrdinal = str => {
+ if (ORDINAL_MAP[str]) return ORDINAL_MAP[str];
+ return parseInt(str.replace(/(?:st|nd|rd|th)$/, ''), 10) || null;
+};
+const ORDINAL_WORDS = Object.keys(ORDINAL_MAP).join('|');
+const ORDINAL_RE = `(\\d{1,2}(?:st|nd|rd|th)?|${ORDINAL_WORDS})`;
+
+// ─── Pre-compiled Regexes ───────────────────────────────────────────────────
+
+const HALF_UNIT_RE = /^(?:in\s+)?half\s+(?:an?\s+)?(hour|day|week|month|year)$/;
+const RELATIVE_DURATION_RE = new RegExp(`^(?:in\\s+)?${NUM_RE}\\s+${UNIT_RE}$`);
+const DURATION_FROM_NOW_RE = new RegExp(
+ `^${NUM_RE}\\s+${UNIT_RE}\\s+from\\s+now$`
+);
+const RELATIVE_DAY_ONLY_RE = new RegExp(`^(${RELATIVE_DAYS})$`);
+const RELATIVE_DAY_TOD_RE = new RegExp(
+ `^(${RELATIVE_DAYS})\\s+(?:at\\s+)?(${TIME_OF_DAY_NAMES})$`
+);
+const RELATIVE_DAY_TOD_TIME_RE = new RegExp(
+ `^(${RELATIVE_DAYS})\\s+(?:at\\s+)?(${TIME_OF_DAY_NAMES})\\s+(\\d{1,2}(?::\\d{2})?)$`
+);
+const RELATIVE_DAY_AT_TIME_RE = new RegExp(
+ `^(${RELATIVE_DAYS})\\s+(?:at\\s+)?` +
+ '(\\d{1,2}(?::\\d{2})?\\s*' +
+ '(?:am|pm|a\\.m\\.?|p\\.m\\.?)?|\\d{1,2}:\\d{2})$'
+);
+const RELATIVE_DAY_SAME_TIME_RE = new RegExp(
+ `^(?:(${RELATIVE_DAYS})\\s+(?:same\\s+time|this\\s+time)|(?:same\\s+time|this\\s+time)\\s+(${RELATIVE_DAYS}))$`
+);
+const NEXT_UNIT_RE = new RegExp(
+ `^next\\s+(hour|minute|week|month|year)${TIME_SUFFIX_RE}$`
+);
+const NEXT_MONTH_RE = new RegExp(`^next\\s+(${MONTH_NAMES})${TIME_SUFFIX_RE}$`);
+const NEXT_WEEKDAY_TOD_RE = new RegExp(
+ `^next\\s+(${WEEKDAY_NAMES})\\s+(${TIME_OF_DAY_NAMES})$`
+);
+const NEXT_WEEKDAY_RE = new RegExp(
+ `^(?:(${WEEKDAY_NAMES})\\s+(?:of\\s+)?next\\s+week` +
+ `|next\\s+week\\s+(${WEEKDAY_NAMES})` +
+ `|next\\s+(${WEEKDAY_NAMES}))${TIME_SUFFIX_RE}$`
+);
+const SAME_TIME_WEEKDAY_RE = new RegExp(
+ `^(?:same\\s+time|this\\s+time)\\s+(${WEEKDAY_NAMES})$`
+);
+const WEEKDAY_TOD_RE = new RegExp(
+ `^(?:(?:this|upcoming|coming)\\s+)?` +
+ `(${WEEKDAY_NAMES})\\s+(${TIME_OF_DAY_NAMES})$`
+);
+const WEEKDAY_TOD_TIME_RE = new RegExp(
+ `^(?:(?:this|upcoming|coming)\\s+)?` +
+ `(${WEEKDAY_NAMES})\\s+(${TIME_OF_DAY_NAMES})\\s+(\\d{1,2}(?::\\d{2})?)$`
+);
+const WEEKDAY_TIME_RE = new RegExp(
+ `^(?:(?:this|upcoming|coming)\\s+)?(${WEEKDAY_NAMES})${TIME_SUFFIX_RE}$`
+);
+const TIME_ONLY_MERIDIEM_RE =
+ /^(?:at\s+)?(\d{1,2}(?::\d{2})?\s*(?:am|pm|a\.m\.?|p\.m\.?))$/;
+const TIME_ONLY_24H_RE = /^(?:at\s+)?(\d{1,2}:\d{2})$/;
+const TOD_WITH_TIME_RE = new RegExp(
+ `^(?:(?:this|the)\\s+)?(${TIME_OF_DAY_NAMES})\\s+` +
+ '(?:at\\s+)?(\\d{1,2}(?::\\d{2})?\\s*' +
+ '(?:am|pm|a\\.m\\.?|p\\.m\\.?)?)$'
+);
+const TOD_PLAIN_RE = new RegExp(
+ '(?:(?:later|in)\\s+)?(?:(?:this|the)\\s+)?' +
+ `(?:${TIME_OF_DAY_NAMES}|eod|end of day|end of the day)$`
+);
+const ABSOLUTE_DATE_RE = new RegExp(
+ `^(${MONTH_NAMES})\\s+(\\d{1,2})(?:st|nd|rd|th)?` +
+ `(?:[,\\s]+(\\d{4}|next\\s+year))?${TIME_SUFFIX_RE}$`
+);
+const ABSOLUTE_DATE_REVERSED_RE = new RegExp(
+ `^(\\d{1,2})(?:st|nd|rd|th)?\\s+(${MONTH_NAMES})` +
+ `(?:[,\\s]+(\\d{4}|next\\s+year))?${TIME_SUFFIX_RE}$`
+);
+const MONTH_YEAR_RE = new RegExp(`^(${MONTH_NAMES})\\s+(\\d{4})$`);
+// "april first week", "first week of april", "march 2nd day", "5th day of jan"
+const MONTH_ORDINAL_RE = new RegExp(
+ `^(?:(${MONTH_NAMES})\\s+${ORDINAL_RE}\\s+(week|day)|${ORDINAL_RE}\\s+(week|day)\\s+of\\s+(${MONTH_NAMES}))${TIME_SUFFIX_RE}$`
+);
+const DAY_AFTER_TOMORROW_RE = new RegExp(
+ `^day\\s+after\\s+tomorrow${TIME_SUFFIX_RE}$`
+);
+
+const COMPOUND_DURATION_RE = new RegExp(
+ `^(?:in\\s+)?${NUM_RE}\\s+${UNIT_RE}\\s+(?:and\\s+)?${NUM_RE}\\s+${UNIT_RE}$`
+);
+const DURATION_AT_TIME_RE = new RegExp(
+ `^(?:in\\s+)?${NUM_RE}\\s+${UNIT_RE}\\s+at\\s+` +
+ '(\\d{1,2}(?::\\d{2})?\\s*(?:am|pm|a\\.m\\.?|p\\.m\\.?)?)$'
+);
+const END_OF_RE = /^end\s+of\s+(?:the\s+)?(week|month|day)$/;
+const END_OF_NEXT_RE = /^end\s+of\s+(?:the\s+)?next\s+(week|month)$/;
+const START_OF_NEXT_RE =
+ /^(?:beginning|start)\s+of\s+(?:the\s+)?next\s+(week|month)$/;
+const LATER_TODAY_RE = /^later\s+(?:today|this\s+(?:afternoon|evening))$/;
+const EARLY_LATE_TOD_RE = new RegExp(
+ `^(early|late)\\s+(${TIME_OF_DAY_NAMES})$`
+);
+const ONE_AND_HALF_RE = new RegExp(
+ `^(?:in\\s+)?(?:one\\s+and\\s+(?:a\\s+)?half|an?\\s+hour\\s+and\\s+(?:a\\s+)?half)(?:\\s+${UNIT_RE})?$`
+);
+const NEXT_BUSINESS_DAY_RE = /^next\s+(?:business|working)\s+day$/;
+
+const TIME_SUFFIX_COMPILED = new RegExp(`${TIME_SUFFIX_RE}$`);
+const ISO_DATE_RE = new RegExp(
+ `^(\\d{4})-(\\d{1,2})-(\\d{1,2})${TIME_SUFFIX_COMPILED.source}`
+);
+const SLASH_DATE_RE = new RegExp(
+ `^(\\d{1,2})/(\\d{1,2})/(\\d{4})${TIME_SUFFIX_COMPILED.source}`
+);
+const DASH_DATE_RE = new RegExp(
+ `^(\\d{1,2})-(\\d{1,2})-(\\d{4})${TIME_SUFFIX_COMPILED.source}`
+);
+const DOT_DATE_RE = new RegExp(
+ `^(\\d{1,2})\\.(\\d{1,2})\\.(\\d{4})${TIME_SUFFIX_COMPILED.source}`
+);
+
+// ─── Pattern Matchers ───────────────────────────────────────────────────────
+
+/** Read amount and unit from a regex match, then add to now. */
+const parseDuration = (match, now) => {
+ if (!match) return null;
+ const amount = parseNumber(match[1]);
+ const unit = UNIT_MAP[match[2]];
+ if (amount == null || !unit) return null;
+ return addFractionalSafe(now, unit, amount);
+};
+
+/** Handle "in 2 hours", "half day", "3h30m", "5 min from now". */
+const matchDuration = (text, now) => {
+ const half = text.match(HALF_UNIT_RE);
+ if (half) {
+ return HALF_UNIT_DURATIONS[half[1]]
+ ? add(now, HALF_UNIT_DURATIONS[half[1]])
+ : null;
+ }
+
+ // "one and a half hours", "an hour and a half"
+ const oneHalf = text.match(ONE_AND_HALF_RE);
+ if (oneHalf) {
+ const unit = UNIT_MAP[oneHalf[1]] || 'hours';
+ return addFractionalSafe(now, unit, 1.5);
+ }
+
+ const compound = text.match(COMPOUND_DURATION_RE);
+ if (compound) {
+ const a1 = parseNumber(compound[1]);
+ const u1 = UNIT_MAP[compound[2]];
+ const a2 = parseNumber(compound[3]);
+ const u2 = UNIT_MAP[compound[4]];
+ if (a1 == null || !u1 || a2 == null || !u2) {
+ return null;
+ }
+ return add(add(now, { [u1]: a1 }), { [u2]: a2 });
+ }
+
+ const atTime = text.match(DURATION_AT_TIME_RE);
+ if (atTime) {
+ const amount = parseNumber(atTime[1]);
+ const unit = UNIT_MAP[atTime[2]];
+ const time = parseTimeString(atTime[3]);
+ if (amount == null || !unit || !time) {
+ return null;
+ }
+ return applyTimeToDate(
+ add(now, { [unit]: amount }),
+ time.hours,
+ time.minutes
+ );
+ }
+
+ return (
+ parseDuration(text.match(DURATION_FROM_NOW_RE), now) ||
+ parseDuration(text.match(RELATIVE_DURATION_RE), now)
+ );
+};
+
+/** Set time on a day offset. If the result is already past, move to the next day. */
+const applyTimeWithRollover = (offset, hours, minutes, now) => {
+ const base = add(startOfDay(now), { days: offset });
+ const date = applyTimeToDate(base, hours, minutes);
+ if (isAfter(date, now)) return date;
+ return applyTimeToDate(add(base, { days: 1 }), hours, minutes);
+};
+
+/** Handle "today", "tonight", "tomorrow" with optional time. */
+const matchRelativeDay = (text, now) => {
+ const dayOnlyMatch = text.match(RELATIVE_DAY_ONLY_RE);
+ if (dayOnlyMatch) {
+ const key = dayOnlyMatch[1];
+ const offset = RELATIVE_DAY_MAP[key];
+ if (key === 'tonight' || key === 'tonite') {
+ return ensureFutureOrNextDay(
+ applyTimeToDate(add(startOfDay(now), { days: offset }), 20, 0),
+ now
+ );
+ }
+ if (offset === 1) {
+ return applyTimeToDate(add(startOfDay(now), { days: 1 }), 9, 0);
+ }
+ return add(now, { hours: 1 });
+ }
+
+ const dayTodTimeMatch = text.match(RELATIVE_DAY_TOD_TIME_RE);
+ if (dayTodTimeMatch) {
+ const timeParts = dayTodTimeMatch[3].split(':');
+ const time = inferHoursFromTOD(
+ dayTodTimeMatch[2],
+ timeParts[0],
+ timeParts[1]
+ );
+ if (!time) return null;
+ return applyTimeWithRollover(
+ RELATIVE_DAY_MAP[dayTodTimeMatch[1]],
+ time.hours,
+ time.minutes,
+ now
+ );
+ }
+
+ const dayTodMatch = text.match(RELATIVE_DAY_TOD_RE);
+ if (dayTodMatch) {
+ const { hours, minutes } = TIME_OF_DAY_MAP[dayTodMatch[2]];
+ return applyTimeWithRollover(
+ RELATIVE_DAY_MAP[dayTodMatch[1]],
+ hours,
+ minutes,
+ now
+ );
+ }
+
+ const dayAtTimeMatch = text.match(RELATIVE_DAY_AT_TIME_RE);
+ if (dayAtTimeMatch) {
+ const [, dayKey, timeRaw] = dayAtTimeMatch;
+ const bare = /^(tonight|tonite)$/.test(dayKey) && !/[ap]m/i.test(timeRaw);
+ const time = bare
+ ? inferHoursFromTOD('tonight', ...timeRaw.split(':'))
+ : parseTimeString(timeRaw);
+ if (!time) return null;
+ return applyTimeWithRollover(
+ RELATIVE_DAY_MAP[dayKey],
+ time.hours,
+ time.minutes,
+ now
+ );
+ }
+
+ const sameTimeMatch = text.match(RELATIVE_DAY_SAME_TIME_RE);
+ if (sameTimeMatch) {
+ const offset = RELATIVE_DAY_MAP[sameTimeMatch[1] || sameTimeMatch[2]];
+ if (offset <= 0) return null;
+ return applyTimeToDate(
+ add(startOfDay(now), { days: offset }),
+ now.getHours(),
+ now.getMinutes()
+ );
+ }
+
+ return null;
+};
+
+/** Find the given weekday in next week (not this week). */
+const nextWeekdayInNextWeek = (dayIndex, now) => {
+ const fn = NEXT_WEEKDAY_FN[dayIndex];
+ if (!fn) return null;
+ const date = fn(now);
+ const sameWeek =
+ startOfWeek(now, { weekStartsOn: 1 }).getTime() ===
+ startOfWeek(date, { weekStartsOn: 1 }).getTime();
+ return sameWeek ? fn(date) : date;
+};
+
+/** Handle "next friday", "next week", "next month", "next january", etc. */
+const matchNextPattern = (text, now) => {
+ const nextUnitMatch = text.match(NEXT_UNIT_RE);
+ if (nextUnitMatch) {
+ const unit = nextUnitMatch[1];
+ if (unit === 'hour') return add(now, { hours: 1 });
+ if (unit === 'minute') return add(now, { minutes: 1 });
+ if (unit === 'week') {
+ const base = startOfWeek(addWeeks(now, 1), { weekStartsOn: 1 });
+ return applyTimeOrDefault(base, nextUnitMatch[2]);
+ }
+ const base = add(startOfDay(now), { [`${unit}s`]: 1 });
+ return applyTimeOrDefault(base, nextUnitMatch[2]);
+ }
+
+ const nextMonthMatch = text.match(NEXT_MONTH_RE);
+ if (nextMonthMatch) {
+ const monthIdx = MONTH_MAP[nextMonthMatch[1]];
+ let year = now.getFullYear();
+ if (monthIdx <= now.getMonth()) year += 1;
+ const base = new Date(year, monthIdx, 1);
+ return applyTimeOrDefault(base, nextMonthMatch[2]);
+ }
+
+ // "next monday morning", "next friday midnight" — weekday + time-of-day
+ const nextTodMatch = text.match(NEXT_WEEKDAY_TOD_RE);
+ if (nextTodMatch) {
+ const date = nextWeekdayInNextWeek(WEEKDAY_MAP[nextTodMatch[1]], now);
+ if (!date) return null;
+ const { hours, minutes } = TIME_OF_DAY_MAP[nextTodMatch[2]];
+ return applyTimeToDate(date, hours, minutes);
+ }
+
+ // "monday of next week", "next week monday", "next friday" — all with optional time
+ const weekdayMatch = text.match(NEXT_WEEKDAY_RE);
+ if (weekdayMatch) {
+ const dayName = weekdayMatch[1] || weekdayMatch[2] || weekdayMatch[3];
+ const date = nextWeekdayInNextWeek(WEEKDAY_MAP[dayName], now);
+ if (!date) return null;
+ return applyTimeOrDefault(date, weekdayMatch[4]);
+ }
+
+ return null;
+};
+
+/** Find the next occurrence of a weekday, with optional time. */
+const resolveWeekdayDate = (dayIndex, timeStr, now) => {
+ const fn = NEXT_WEEKDAY_FN[dayIndex];
+ if (!fn) return null;
+ let adjusted = timeStr;
+ if (timeStr && /^\d{1,2}$/.test(timeStr.trim())) {
+ const h = parseInt(timeStr, 10);
+ if (h >= 1 && h <= 7) adjusted = `${h}pm`;
+ }
+
+ if (getDay(now) === dayIndex) {
+ const todayDate = applyTimeOrDefault(now, adjusted);
+ if (todayDate && isAfter(todayDate, now)) return todayDate;
+ }
+
+ return applyTimeOrDefault(fn(now), adjusted);
+};
+
+/** Handle "friday", "monday 3pm", "wed morning", "same time friday". */
+const matchWeekday = (text, now) => {
+ const sameTimeWeekday = text.match(SAME_TIME_WEEKDAY_RE);
+ if (sameTimeWeekday) {
+ const dayIndex = WEEKDAY_MAP[sameTimeWeekday[1]];
+ const fn = NEXT_WEEKDAY_FN[dayIndex];
+ if (!fn) return null;
+ const target = fn(now);
+ return applyTimeToDate(target, now.getHours(), now.getMinutes());
+ }
+
+ // "monday morning 6", "friday evening 7" — weekday + tod + bare number
+ const todTimeMatch = text.match(WEEKDAY_TOD_TIME_RE);
+ if (todTimeMatch) {
+ const dayIndex = WEEKDAY_MAP[todTimeMatch[1]];
+ const fn = NEXT_WEEKDAY_FN[dayIndex];
+ if (!fn) return null;
+ const timeParts = todTimeMatch[3].split(':');
+ const time = inferHoursFromTOD(todTimeMatch[2], timeParts[0], timeParts[1]);
+ if (!time) return null;
+ const target =
+ getDay(now) === dayIndex ? startOfDay(now) : startOfDay(fn(now));
+ const date = applyTimeToDate(target, time.hours, time.minutes);
+ return isAfter(date, now)
+ ? date
+ : applyTimeToDate(fn(now), time.hours, time.minutes);
+ }
+
+ // "monday morning", "friday midnight", "wednesday evening", etc.
+ const todMatch = text.match(WEEKDAY_TOD_RE);
+ if (todMatch) {
+ const dayIndex = WEEKDAY_MAP[todMatch[1]];
+ const fn = NEXT_WEEKDAY_FN[dayIndex];
+ if (!fn) return null;
+ const { hours, minutes } = TIME_OF_DAY_MAP[todMatch[2]];
+ const target =
+ getDay(now) === dayIndex ? startOfDay(now) : startOfDay(fn(now));
+ const date = applyTimeToDate(target, hours, minutes);
+ return isAfter(date, now) ? date : applyTimeToDate(fn(now), hours, minutes);
+ }
+
+ const match = text.match(WEEKDAY_TIME_RE);
+ if (!match) return null;
+
+ return resolveWeekdayDate(WEEKDAY_MAP[match[1]], match[2], now);
+};
+
+/** Handle a standalone time like "3pm", "14:30", "at 9am". */
+const matchTimeOnly = (text, now) => {
+ const match =
+ text.match(TIME_ONLY_MERIDIEM_RE) || text.match(TIME_ONLY_24H_RE);
+ if (!match) return null;
+
+ const time = parseTimeString(match[1]);
+ if (!time) return null;
+ return ensureFutureOrNextDay(
+ applyTimeToDate(now, time.hours, time.minutes),
+ now
+ );
+};
+
+/** Handle "morning", "evening 6pm", "eod", "this afternoon". */
+const matchTimeOfDay = (text, now) => {
+ const todWithTime = text.match(TOD_WITH_TIME_RE);
+ if (todWithTime) {
+ const rawTime = todWithTime[2].trim();
+ const hasMeridiem = /(?:am|pm|a\.m|p\.m)/i.test(rawTime);
+ let time;
+ if (hasMeridiem) {
+ time = parseTimeString(rawTime);
+ const range = TOD_HOUR_RANGE[todWithTime[1]];
+ if (!time) return null;
+ if (range) {
+ const h = time.hours === 0 ? 24 : time.hours;
+ if (h < range[0] || h >= range[1]) return null;
+ }
+ } else {
+ const parts = rawTime.split(':');
+ time = inferHoursFromTOD(todWithTime[1], parts[0], parts[1]);
+ }
+ if (!time) return null;
+ return ensureFutureOrNextDay(
+ applyTimeToDate(now, time.hours, time.minutes),
+ now
+ );
+ }
+
+ // "early morning" → 7am, "late evening" → 21:00, "late night" → 23:00
+ const earlyLate = text.match(EARLY_LATE_TOD_RE);
+ if (earlyLate) {
+ const tod = TIME_OF_DAY_MAP[earlyLate[2]];
+ if (!tod) return null;
+ const shift = earlyLate[1] === 'early' ? -1 : 2;
+ return ensureFutureOrNextDay(
+ applyTimeToDate(now, tod.hours + shift, 0),
+ now
+ );
+ }
+
+ const match = text.match(TOD_PLAIN_RE);
+ if (!match) return null;
+
+ const key = text
+ .replace(/^(?:later|in)\s+/, '')
+ .replace(/^(?:this|the)\s+/, '')
+ .trim();
+ const tod = TIME_OF_DAY_MAP[key];
+ if (!tod) return null;
+ return ensureFutureOrNextDay(
+ applyTimeToDate(now, tod.hours, tod.minutes),
+ now
+ );
+};
+
+/** Turn month + day + optional year into a future date. */
+const resolveAbsoluteDate = (month, day, yearStr, timeStr, now) => {
+ let year = now.getFullYear();
+ if (yearStr && /next\s+year/i.test(yearStr)) {
+ year += 1;
+ } else if (yearStr) {
+ year = parseInt(yearStr, 10);
+ }
+ if (yearStr) {
+ const base = strictDate(year, month, day);
+ if (!base) return null;
+ const date = applyTimeOrDefault(base, timeStr);
+ return date && isAfter(date, now) ? date : null;
+ }
+ return futureOrNextYear(year, month, day, timeStr, now);
+};
+
+/** Handle "jan 15", "15 march", "december 2025". */
+const matchNamedDate = (text, now) => {
+ const abs = text.match(ABSOLUTE_DATE_RE);
+ if (abs) {
+ return resolveAbsoluteDate(
+ MONTH_MAP[abs[1]],
+ parseInt(abs[2], 10),
+ abs[3],
+ abs[4],
+ now
+ );
+ }
+
+ const rev = text.match(ABSOLUTE_DATE_REVERSED_RE);
+ if (rev) {
+ return resolveAbsoluteDate(
+ MONTH_MAP[rev[2]],
+ parseInt(rev[1], 10),
+ rev[3],
+ rev[4],
+ now
+ );
+ }
+
+ const my = text.match(MONTH_YEAR_RE);
+ if (my) {
+ const date = new Date(parseInt(my[2], 10), MONTH_MAP[my[1]], 1);
+ if (!isValid(date)) return null;
+ const result = applyTimeToDate(date, 9, 0);
+ return isAfter(result, now) ? result : null;
+ }
+
+ // "april first week", "first week of april", "march 2nd day", etc.
+ const mo = text.match(MONTH_ORDINAL_RE);
+ if (mo) {
+ // Groups: (1)month-A (2)ordinal-A (3)unit-A | (4)ordinal-B (5)unit-B (6)month-B (7)time
+ const monthIdx = MONTH_MAP[mo[1] || mo[6]];
+ const num = parseOrdinal(mo[2] || mo[4]);
+ const unit = mo[3] || mo[5];
+ const timeStr = mo[7];
+
+ if (!num || num < 1) return null;
+
+ if (unit === 'day') {
+ if (num > 31) return null;
+ return resolveAbsoluteDate(monthIdx, num, null, timeStr, now);
+ }
+
+ // unit === 'week'
+ if (num > 5) return null;
+ const weekStartDay = (num - 1) * 7 + 1;
+ let year = now.getFullYear();
+ if (
+ monthIdx < now.getMonth() ||
+ (monthIdx === now.getMonth() && now.getDate() > weekStartDay)
+ ) {
+ year += 1;
+ }
+ // Reject if weekStartDay overflows the month (e.g. feb fifth week = day 29 in non-leap)
+ const daysInMonth = new Date(year, monthIdx + 1, 0).getDate();
+ if (weekStartDay > daysInMonth) return null;
+ const d = new Date(year, monthIdx, weekStartDay);
+ if (!isValid(d)) return null;
+ const result = applyTimeOrDefault(d, timeStr);
+ return result && isAfter(result, now) ? result : null;
+ }
+
+ return null;
+};
+
+/** Build a date from year/month/day numbers, with optional time. */
+const buildDateWithOptionalTime = (year, month, day, timeStr) => {
+ const date = strictDate(year, month, day);
+ if (!date) return null;
+ return applyTimeOrDefault(date, timeStr);
+};
+
+// When both values are ≤ 12 (ambiguous), dayFirst controls the fallback:
+// dayFirst=false (slash M/D/Y) → month first
+// dayFirst=true (dash/dot D-M-Y, D.M.Y) → day first
+const disambiguateDayMonth = (a, b, dayFirst = false) => {
+ if (a > 12) return { day: a, month: b - 1 };
+ if (b > 12) return { month: a - 1, day: b };
+ return dayFirst ? { day: a, month: b - 1 } : { month: a - 1, day: b };
+};
+
+/** Handle formal dates: "2025-01-15", "1/15/2025", "15.01.2025". */
+const matchFormalDate = (text, now) => {
+ const ensureFuture = date => (date && isAfter(date, now) ? date : null);
+
+ const isoMatch = text.match(ISO_DATE_RE);
+ if (isoMatch) {
+ return ensureFuture(
+ buildDateWithOptionalTime(
+ parseInt(isoMatch[1], 10),
+ parseInt(isoMatch[2], 10) - 1,
+ parseInt(isoMatch[3], 10),
+ isoMatch[4]
+ )
+ );
+ }
+
+ // Slash = M/D/Y (US), Dash/Dot = D-M-Y / D.M.Y (European)
+ const formats = [
+ { re: SLASH_DATE_RE, dayFirst: false },
+ { re: DASH_DATE_RE, dayFirst: true },
+ { re: DOT_DATE_RE, dayFirst: true },
+ ];
+ let result = null;
+ formats.some(({ re, dayFirst }) => {
+ const m = text.match(re);
+ if (!m) return false;
+ const { month, day } = disambiguateDayMonth(
+ parseInt(m[1], 10),
+ parseInt(m[2], 10),
+ dayFirst
+ );
+ result = ensureFuture(
+ buildDateWithOptionalTime(parseInt(m[3], 10), month, day, m[4])
+ );
+ return true;
+ });
+ return result;
+};
+
+/** Handle "day after tomorrow", "end of week", "this weekend", "later today". */
+const matchSpecial = (text, now) => {
+ const dat = text.match(DAY_AFTER_TOMORROW_RE);
+ if (dat) return applyTimeOrDefault(add(startOfDay(now), { days: 2 }), dat[1]);
+
+ const eof = text.match(END_OF_RE);
+ if (eof) {
+ if (eof[1] === 'day') return applyTimeToDate(now, 17, 0);
+ if (eof[1] === 'week') {
+ const fri = applyTimeToDate(now, 17, 0);
+ if (getDay(now) === 5 && isAfter(fri, now)) return fri;
+ return applyTimeToDate(nextFriday(now), 17, 0);
+ }
+ if (eof[1] === 'month') {
+ const eom = applyTimeToDate(endOfMonth(now), 17, 0);
+ if (isAfter(eom, now)) return eom;
+ return applyTimeToDate(endOfMonth(add(now, { months: 1 })), 17, 0);
+ }
+ }
+
+ // "end of next week", "end of next month"
+ const eofNext = text.match(END_OF_NEXT_RE);
+ if (eofNext) {
+ if (eofNext[1] === 'week') {
+ const nextWeekStart = startOfWeek(addWeeks(now, 1), { weekStartsOn: 1 });
+ return applyTimeToDate(add(nextWeekStart, { days: 4 }), 17, 0);
+ }
+ if (eofNext[1] === 'month') {
+ return applyTimeToDate(endOfMonth(add(now, { months: 1 })), 17, 0);
+ }
+ }
+
+ // "beginning of next week", "start of next month"
+ const sofNext = text.match(START_OF_NEXT_RE);
+ if (sofNext) {
+ if (sofNext[1] === 'week') {
+ return applyTimeToDate(
+ startOfWeek(addWeeks(now, 1), { weekStartsOn: 1 }),
+ 9,
+ 0
+ );
+ }
+ if (sofNext[1] === 'month') {
+ const nextMonth = new Date(now.getFullYear(), now.getMonth() + 1, 1);
+ return applyTimeToDate(nextMonth, 9, 0);
+ }
+ }
+
+ // "next business day", "next working day"
+ if (NEXT_BUSINESS_DAY_RE.test(text)) {
+ let d = add(startOfDay(now), { days: 1 });
+ while (isSaturday(d) || isSunday(d)) d = add(d, { days: 1 });
+ return applyTimeToDate(d, 9, 0);
+ }
+
+ if (LATER_TODAY_RE.test(text)) return add(now, { hours: 3 });
+
+ const weekendMatch = text.match(
+ /^(this weekend|weekend|next weekend)(?:\s+(?:at\s+)?(.+))?$/
+ );
+ if (weekendMatch) {
+ const isNext = weekendMatch[1] === 'next weekend';
+ const timeStr = weekendMatch[2];
+
+ if (isNext) {
+ const sat = nextSaturday(now);
+ const d = isSaturday(now) || isSunday(now) ? sat : add(sat, { weeks: 1 });
+ return applyTimeOrDefault(d, timeStr);
+ }
+
+ if (isSaturday(now)) {
+ if (!timeStr) {
+ if (now.getHours() < 10) return applyTimeToDate(now, 10, 0);
+ if (now.getHours() < 18) return add(now, { hours: 2 });
+ return applyTimeToDate(add(startOfDay(now), { days: 1 }), 10, 0);
+ }
+ const today = applyTimeOrDefault(now, timeStr);
+ if (today && isAfter(today, now)) return today;
+ return applyTimeOrDefault(add(startOfDay(now), { days: 1 }), timeStr);
+ }
+ if (isSunday(now)) {
+ if (!timeStr) {
+ if (now.getHours() < 10) return applyTimeToDate(now, 10, 0);
+ return add(now, { hours: 2 });
+ }
+ const today = applyTimeOrDefault(now, timeStr);
+ if (today && isAfter(today, now)) return today;
+ }
+ return applyTimeOrDefault(nextSaturday(now), timeStr);
+ }
+
+ return null;
+};
+
+// ─── Main Parser ────────────────────────────────────────────────────────────
+
+// Order matters — first match wins. Common patterns go first.
+// Do not reorder without running the spec.
+const MATCHERS = [
+ matchDuration, // "in 2 hours", "half day", "3h30m"
+ matchSpecial, // "end of week", "later today", "this weekend"
+ matchRelativeDay, // "tomorrow 3pm", "tonight", "today morning"
+ matchNextPattern, // "next friday", "next week", "next month"
+ matchTimeOfDay, // "morning", "evening 6pm", "eod"
+ matchWeekday, // "friday", "monday 3pm", "wed morning"
+ matchTimeOnly, // "3pm", "14:30" (must be after weekday to avoid conflicts)
+ matchNamedDate, // "jan 15", "march 20 next year"
+ matchFormalDate, // "2025-01-15", "1/15/2025" (least common, last)
+];
+
+/**
+ * Parse free-form text into a future date.
+ * Returns { date, unix } or null. Only returns dates after referenceDate.
+ *
+ * @param {string} text - user input like "in 2 hours" or "next friday 3pm"
+ * @param {Date} [referenceDate] - treat as "now" (defaults to current time)
+ * @returns {{ date: Date, unix: number } | null}
+ */
+export const parseDateFromText = (text, referenceDate = new Date()) => {
+ if (!text || typeof text !== 'string') return null;
+
+ const normalized = stripNoise(sanitize(text));
+ if (!normalized) return null;
+
+ const maxDate = add(referenceDate, { years: 999 });
+
+ const isValidFuture = d =>
+ d && isValid(d) && isAfter(d, referenceDate) && !isBefore(maxDate, d);
+
+ let result = null;
+ MATCHERS.some(matcher => {
+ const d = matcher(normalized, referenceDate);
+ if (isValidFuture(d)) {
+ result = { date: d, unix: getUnixTime(d) };
+ return true;
+ }
+ return false;
+ });
+
+ return result;
+};
diff --git a/app/javascript/dashboard/helper/snoozeDateParser/suggestions.js b/app/javascript/dashboard/helper/snoozeDateParser/suggestions.js
new file mode 100644
index 000000000..2efd77d74
--- /dev/null
+++ b/app/javascript/dashboard/helper/snoozeDateParser/suggestions.js
@@ -0,0 +1,101 @@
+/**
+ * Builds autocomplete suggestions as the user types a snooze date.
+ * Matches partial input against known phrases and ranks them by closeness.
+ */
+
+import {
+ UNIT_MAP,
+ WEEKDAY_MAP,
+ TIME_OF_DAY_MAP,
+ RELATIVE_DAY_MAP,
+ WORD_NUMBER_MAP,
+ MONTH_MAP,
+ HALF_UNIT_DURATIONS,
+} from './tokenMaps';
+
+const SUGGESTION_UNITS = [...new Set(Object.values(UNIT_MAP))].filter(
+ u => u !== 'seconds'
+);
+
+const FULL_WEEKDAYS = Object.keys(WEEKDAY_MAP).filter(k => k.length > 3);
+const TOD_NAMES = Object.keys(TIME_OF_DAY_MAP).filter(k => !k.includes(' '));
+const MONTH_NAMES_LONG = Object.keys(MONTH_MAP).filter(k => k.length > 3);
+
+const ALL_SUGGESTION_PHRASES = [
+ ...Object.keys(RELATIVE_DAY_MAP),
+ ...FULL_WEEKDAYS,
+ ...TOD_NAMES,
+ 'next week',
+ 'next month',
+ 'this weekend',
+ 'next weekend',
+ 'day after tomorrow',
+ 'later today',
+ 'end of day',
+ 'end of week',
+ 'end of month',
+ ...['morning', 'afternoon', 'evening'].map(tod => `tomorrow ${tod}`),
+ ...FULL_WEEKDAYS.map(wd => `next ${wd}`),
+ ...FULL_WEEKDAYS.map(wd => `this ${wd}`),
+ ...FULL_WEEKDAYS.flatMap(wd => TOD_NAMES.map(tod => `${wd} ${tod}`)),
+ ...FULL_WEEKDAYS.flatMap(wd => TOD_NAMES.map(tod => `next ${wd} ${tod}`)),
+ ...MONTH_NAMES_LONG.map(m => `${m} 1`),
+];
+
+/** Check how closely the input matches a candidate. -1 = no match, 0 = exact prefix, N = extra words needed. */
+const prefixMatchScore = (candidate, input) => {
+ if (candidate === input) return -1;
+ if (candidate.startsWith(input)) return 0;
+ const inputWords = input.split(' ');
+ const candidateWords = candidate.split(' ');
+ const lastIdx = inputWords.reduce((prev, iw) => {
+ if (prev === -2) return -2;
+ const idx = candidateWords.findIndex(
+ (cw, ci) => ci > prev && cw.startsWith(iw)
+ );
+ return idx === -1 ? -2 : idx;
+ }, -1);
+ if (lastIdx === -2) return -1;
+ return candidateWords.length - inputWords.length;
+};
+
+export const MAX_SUGGESTIONS = 5;
+
+/** Turn user input into a ranked list of suggestion strings to try parsing. */
+export const buildSuggestionCandidates = text => {
+ if (!text) return [];
+
+ if (/^\d/.test(text)) {
+ const num = text.match(/^\d+(?:\.5)?/)[0];
+ const candidates = SUGGESTION_UNITS.map(u => `${num} ${u}`);
+ const trimmed = text.replace(/\s+/g, ' ').trim();
+ const spaced = trimmed.replace(/(\d)([a-z])/i, '$1 $2');
+ return spaced.length > num.length
+ ? candidates.filter(c => c.startsWith(spaced))
+ : candidates;
+ }
+
+ if (text.length >= 2 && 'half'.startsWith(text)) {
+ return Object.keys(HALF_UNIT_DURATIONS).map(u => `half ${u}`);
+ }
+
+ const wordNum = WORD_NUMBER_MAP[text];
+ if (wordNum != null && wordNum >= 1) {
+ return SUGGESTION_UNITS.map(u => `${wordNum} ${u}`);
+ }
+
+ const scored = ALL_SUGGESTION_PHRASES.reduce((acc, candidate) => {
+ const score = prefixMatchScore(candidate, text);
+ if (score >= 0) acc.push({ candidate, score });
+ return acc;
+ }, []);
+ scored.sort((a, b) => a.score - b.score);
+ const seen = new Set();
+ return scored.reduce((acc, { candidate }) => {
+ if (acc.length < MAX_SUGGESTIONS * 3 && !seen.has(candidate)) {
+ seen.add(candidate);
+ acc.push(candidate);
+ }
+ return acc;
+ }, []);
+};
diff --git a/app/javascript/dashboard/helper/snoozeDateParser/tokenMaps.js b/app/javascript/dashboard/helper/snoozeDateParser/tokenMaps.js
new file mode 100644
index 000000000..0397a9483
--- /dev/null
+++ b/app/javascript/dashboard/helper/snoozeDateParser/tokenMaps.js
@@ -0,0 +1,395 @@
+/**
+ * Shared lookup tables and helper functions used by the parser,
+ * suggestions, and localization modules.
+ */
+
+import {
+ add,
+ set,
+ isValid,
+ isAfter,
+ nextMonday,
+ nextTuesday,
+ nextWednesday,
+ nextThursday,
+ nextFriday,
+ nextSaturday,
+ nextSunday,
+} from 'date-fns';
+
+// ─── Token Maps ──────────────────────────────────────────────────────────────
+// All keys are lowercase. Short forms and full names both work.
+
+/** Weekday name or short form → day index (0 = Sunday). */
+export const WEEKDAY_MAP = {
+ sunday: 0,
+ sun: 0,
+ monday: 1,
+ mon: 1,
+ tuesday: 2,
+ tue: 2,
+ tues: 2,
+ wednesday: 3,
+ wed: 3,
+ thursday: 4,
+ thu: 4,
+ thur: 4,
+ thurs: 4,
+ friday: 5,
+ fri: 5,
+ saturday: 6,
+ sat: 6,
+};
+
+/** Month name or short form → month index (0 = January). */
+export const MONTH_MAP = {
+ january: 0,
+ jan: 0,
+ february: 1,
+ feb: 1,
+ march: 2,
+ mar: 2,
+ april: 3,
+ apr: 3,
+ may: 4,
+ june: 5,
+ jun: 5,
+ july: 6,
+ jul: 6,
+ august: 7,
+ aug: 7,
+ september: 8,
+ sep: 8,
+ sept: 8,
+ october: 9,
+ oct: 9,
+ november: 10,
+ nov: 10,
+ december: 11,
+ dec: 11,
+};
+
+/** Words like "today" or "tomorrow" → how many days from now. */
+export const RELATIVE_DAY_MAP = {
+ today: 0,
+ tonight: 0,
+ tonite: 0,
+ tomorrow: 1,
+ tmr: 1,
+ tmrw: 1,
+};
+
+/** Unit shorthand → full unit name used by date-fns. */
+export const UNIT_MAP = {
+ m: 'minutes',
+ min: 'minutes',
+ mins: 'minutes',
+ minute: 'minutes',
+ minutes: 'minutes',
+ h: 'hours',
+ hr: 'hours',
+ hrs: 'hours',
+ hour: 'hours',
+ hours: 'hours',
+ d: 'days',
+ day: 'days',
+ days: 'days',
+ w: 'weeks',
+ wk: 'weeks',
+ wks: 'weeks',
+ week: 'weeks',
+ weeks: 'weeks',
+ mo: 'months',
+ month: 'months',
+ months: 'months',
+ y: 'years',
+ yr: 'years',
+ yrs: 'years',
+ year: 'years',
+ years: 'years',
+};
+
+/** English number words → their numeric value. */
+export const WORD_NUMBER_MAP = {
+ a: 1,
+ an: 1,
+ one: 1,
+ couple: 2,
+ few: 3,
+ two: 2,
+ three: 3,
+ four: 4,
+ five: 5,
+ six: 6,
+ seven: 7,
+ eight: 8,
+ nine: 9,
+ ten: 10,
+ eleven: 11,
+ twelve: 12,
+ thirteen: 13,
+ fourteen: 14,
+ fifteen: 15,
+ sixteen: 16,
+ seventeen: 17,
+ eighteen: 18,
+ nineteen: 19,
+ twenty: 20,
+ thirty: 30,
+ forty: 40,
+ fifty: 50,
+ sixty: 60,
+ ninety: 90,
+ half: 0.5,
+};
+
+/** Day index → the date-fns function that finds the next occurrence. */
+export const NEXT_WEEKDAY_FN = {
+ 0: nextSunday,
+ 1: nextMonday,
+ 2: nextTuesday,
+ 3: nextWednesday,
+ 4: nextThursday,
+ 5: nextFriday,
+ 6: nextSaturday,
+};
+
+/** Time-of-day label → default hour and minute. */
+export const TIME_OF_DAY_MAP = {
+ morning: { hours: 9, minutes: 0 },
+ noon: { hours: 12, minutes: 0 },
+ afternoon: { hours: 14, minutes: 0 },
+ evening: { hours: 18, minutes: 0 },
+ night: { hours: 20, minutes: 0 },
+ tonight: { hours: 20, minutes: 0 },
+ midnight: { hours: 0, minutes: 0 },
+ eod: { hours: 17, minutes: 0 },
+ 'end of day': { hours: 17, minutes: 0 },
+ 'end of the day': { hours: 17, minutes: 0 },
+};
+
+/** Allowed hour range per label — used to pick am or pm when not specified. */
+export const TOD_HOUR_RANGE = {
+ morning: [4, 12],
+ noon: [11, 13],
+ afternoon: [12, 18],
+ evening: [16, 22],
+ night: [18, 24],
+ tonight: [18, 24],
+ midnight: [23, 25],
+};
+
+/** What "half hour", "half day", etc. actually mean in date-fns terms. */
+export const HALF_UNIT_DURATIONS = {
+ hour: { minutes: 30 },
+ day: { hours: 12 },
+ week: { days: 3, hours: 12 },
+ month: { days: 15 },
+ year: { months: 6 },
+};
+
+const FRACTIONAL_CONVERT = {
+ hours: { unit: 'minutes', factor: 60 },
+ days: { unit: 'hours', factor: 24 },
+ weeks: { unit: 'days', factor: 7 },
+ months: { unit: 'days', factor: 30 },
+ years: { unit: 'months', factor: 12 },
+};
+
+// ─── Unicode / Normalization ────────────────────────────────────────────────
+// Turn non-ASCII digits and punctuation into plain ASCII so the
+// parser only has to deal with standard characters.
+
+const UNICODE_DIGIT_RANGES = [
+ [0x30, 0x39],
+ [0x660, 0x669], // Arabic-Indic
+ [0x6f0, 0x6f9], // Eastern Arabic-Indic
+ [0x966, 0x96f], // Devanagari
+ [0x9e6, 0x9ef], // Bengali
+ [0xa66, 0xa6f], // Gurmukhi
+ [0xae6, 0xaef], // Gujarati
+ [0xb66, 0xb6f], // Oriya
+ [0xbe6, 0xbef], // Tamil
+ [0xc66, 0xc6f], // Telugu
+ [0xce6, 0xcef], // Kannada
+ [0xd66, 0xd6f], // Malayalam
+];
+
+const toAsciiDigit = char => {
+ const code = char.codePointAt(0);
+ const range = UNICODE_DIGIT_RANGES.find(
+ ([start, end]) => code >= start && code <= end
+ );
+ if (!range) return char;
+ return String(code - range[0]);
+};
+
+/** Turn non-ASCII digits (Arabic, Devanagari, etc.) into 0-9. */
+export const normalizeDigits = text => text.replace(/\p{Nd}/gu, toAsciiDigit);
+
+const ARABIC_PUNCT_MAP = {
+ '\u061f': '?',
+ '\u060c': ',',
+ '\u061b': ';',
+ '\u066b': '.',
+};
+
+const NOISE_RE =
+ /^(?:(?:can|could|will|would)\s+you\s+)?(?:(?:please|pls|plz|kindly)\s+)?(?:(?:snooze|remind(?:\s+me)?|set(?:\s+(?:a|the))?(?:\s+(?:reminder|deadline|snooze|timer))?|add(?:\s+(?:a|the))?(?:\s+(?:reminder|deadline|snooze))?|schedule|postpone|defer|delay|push)(?:\s+(?:it|this))?\s+)?(?:(?:on|to|for|at|until|till|by|from|after|within)\s+)?/;
+
+const APPROX_RE = /^(?:approx(?:imately)?|around|about|roughly|~)\s+/;
+
+/** Clean up raw input: lowercase, remove punctuation, collapse spaces. */
+export const sanitize = text =>
+ normalizeDigits(
+ text
+ .normalize('NFKC')
+ .toLowerCase()
+ .replace(/[\u200f\u200e\u066c\u0640]/g, '')
+ .replace(/[\u064b-\u065f]/g, '')
+ .replace(/\u00a0/g, ' ')
+ .replace(/[\u061f\u060c\u061b\u066b]/g, c => ARABIC_PUNCT_MAP[c])
+ )
+ .replace(/[,!?;]+/g, ' ')
+ .replace(/\.+$/g, '')
+ .replace(/\s+/g, ' ')
+ .trim();
+
+/** Strip filler words like "please snooze for" and fix typos like "tommorow". */
+export const stripNoise = text => {
+ let r = text
+ .replace(/\ba\s+fortnight\b/g, '2 weeks')
+ .replace(/\bfortnight\b/g, '2 weeks')
+ .replace(NOISE_RE, '')
+ .replace(APPROX_RE, '')
+ .replace(/^the\s+/, '')
+ .replace(/\bnxt\b/g, 'next')
+ .replace(/\ba\s+couple\s+of\b/g, 'couple')
+ .replace(/\bcouple\s+of\b/g, 'couple')
+ .replace(/\ba\s+couple\b/g, 'couple')
+ .replace(/\ba\s+few\b/g, 'few')
+ .replace(
+ /\b(\d+)\s*(?:h|hr|hours?)[\s]*(\d+)\s*(?:m|min|minutes?)\b/g,
+ (_, h, m) =>
+ `${h} ${h === '1' ? 'hour' : 'hours'} ${m} ${m === '1' ? 'minute' : 'minutes'}`
+ )
+ .replace(/\b(\d+)h\b/g, (_, h) => `${h} ${h === '1' ? 'hour' : 'hours'}`)
+ .replace(
+ /\b(\d+)m\b/g,
+ (_, m) => `${m} ${m === '1' ? 'minute' : 'minutes'}`
+ )
+ .replace(/\btomm?orow\b/g, 'tomorrow')
+ .replace(/\s+later$/, '')
+ .trim();
+ // bare unit without number: "month later" → "1 month", "week" stays
+ r = r.replace(/^(minutes?|hours?|days?|weeks?|months?|years?)$/, '1 $1');
+ return r;
+};
+
+// ─── Utility Functions ──────────────────────────────────────────────────────
+
+/** Turn a string into a number. Works with digits ("5") and words ("five"). */
+export const parseNumber = str => {
+ if (!str) return null;
+ const lower = normalizeDigits(str.toLowerCase().trim());
+ if (WORD_NUMBER_MAP[lower] !== undefined) return WORD_NUMBER_MAP[lower];
+ const num = Number(lower);
+ return Number.isNaN(num) ? null : num;
+};
+
+/** Set the time on a date, clearing seconds and milliseconds. */
+export const applyTimeToDate = (date, hours, minutes = 0) =>
+ set(date, { hours, minutes, seconds: 0, milliseconds: 0 });
+
+/** Parse "3pm", "14:30", or "2:00am" into { hours, minutes }. Returns null if invalid. */
+export const parseTimeString = timeStr => {
+ if (!timeStr) return null;
+ const match = timeStr
+ .toLowerCase()
+ .replace(/\s+/g, '')
+ .match(/^(\d{1,2})(?::(\d{2}))?\s*(am|pm|a\.m\.?|p\.m\.?)?$/);
+ if (!match) return null;
+
+ const raw = parseInt(match[1], 10);
+ const minutes = match[2] ? parseInt(match[2], 10) : 0;
+ const meridiem = match[3]?.replace(/\./g, '');
+ if (meridiem && (raw < 1 || raw > 12)) return null;
+
+ const toHours = (h, m) => {
+ if (m === 'pm' && h < 12) return h + 12;
+ if (m === 'am' && h === 12) return 0;
+ return h;
+ };
+ const hours = toHours(raw, meridiem);
+ if (hours > 23 || minutes > 59) return null;
+ return { hours, minutes };
+};
+
+/** Apply a time string to a date. Falls back to 9 AM if no time is given. */
+export const applyTimeOrDefault = (date, timeStr, defaultHours = 9) => {
+ if (timeStr) {
+ const time = parseTimeString(timeStr);
+ if (!time) return null;
+ return applyTimeToDate(date, time.hours, time.minutes);
+ }
+ return applyTimeToDate(date, defaultHours, 0);
+};
+
+/** Build a Date only if the day actually exists (e.g. rejects Feb 30). */
+export const strictDate = (year, month, day) => {
+ const date = new Date(year, month, day);
+ if (
+ !isValid(date) ||
+ date.getFullYear() !== year ||
+ date.getMonth() !== month ||
+ date.getDate() !== day
+ )
+ return null;
+ return date;
+};
+
+/** Try up to 8 years ahead to find a valid future date (handles Feb 29 leap years). */
+export const futureOrNextYear = (year, month, day, timeStr, now) => {
+ for (let i = 0; i < 9; i += 1) {
+ const base = strictDate(year + i, month, day);
+ if (base) {
+ const date = applyTimeOrDefault(base, timeStr);
+ if (!date) return null;
+ if (isAfter(date, now)) return date;
+ }
+ }
+ return null;
+};
+
+/** If the date is already past, push it to the next day. */
+export const ensureFutureOrNextDay = (date, now) =>
+ isAfter(date, now) ? date : add(date, { days: 1 });
+
+/** Figure out am/pm from context: "morning 6" → 6am, "evening 6" → 6pm. */
+export const inferHoursFromTOD = (todLabel, rawHour, rawMinutes) => {
+ const h = parseInt(rawHour, 10);
+ const m = rawMinutes ? parseInt(rawMinutes, 10) : 0;
+ if (Number.isNaN(h) || h < 1 || h > 12 || m > 59) return null;
+ const range = TOD_HOUR_RANGE[todLabel];
+ if (!range) return { hours: h, minutes: m };
+ // Try both am and pm interpretations, pick the one in range
+ const am = h === 12 ? 0 : h;
+ const pm = h === 12 ? 12 : h + 12;
+ const inRange = v => v >= range[0] && v < range[1];
+ if (inRange(am)) return { hours: am, minutes: m };
+ if (inRange(pm)) return { hours: pm, minutes: m };
+ const mid = (range[0] + range[1]) / 2;
+ return {
+ hours: Math.abs(am - mid) <= Math.abs(pm - mid) ? am : pm,
+ minutes: m,
+ };
+};
+
+/** Add a duration that might be fractional, e.g. 1.5 hours becomes 90 minutes. */
+export const addFractionalSafe = (date, unit, amount) => {
+ if (Number.isInteger(amount)) return add(date, { [unit]: amount });
+ if (amount % 1 !== 0.5) return null;
+ const conv = FRACTIONAL_CONVERT[unit];
+ if (conv) return add(date, { [conv.unit]: Math.round(amount * conv.factor) });
+ return add(date, { [unit]: Math.round(amount) });
+};
diff --git a/app/javascript/dashboard/helper/snoozeHelpers.js b/app/javascript/dashboard/helper/snoozeHelpers.js
index efe526562..73f18e58f 100644
--- a/app/javascript/dashboard/helper/snoozeHelpers.js
+++ b/app/javascript/dashboard/helper/snoozeHelpers.js
@@ -7,11 +7,17 @@ import {
startOfMonth,
isMonday,
isToday,
+ isSameYear,
setHours,
setMinutes,
setSeconds,
} from 'date-fns';
import wootConstants from 'dashboard/constants/globals';
+import {
+ generateDateSuggestions,
+ parseDateFromText,
+} from 'dashboard/helper/snoozeDateParser';
+import { UNIT_MAP } from 'dashboard/helper/snoozeDateParser/tokenMaps';
const SNOOZE_OPTIONS = wootConstants.SNOOZE_OPTIONS;
@@ -33,65 +39,113 @@ export const findStartOfNextMonth = currentDate => {
});
};
-export const findNextDay = currentDate => {
- return add(currentDate, { days: 1 });
-};
+export const findNextDay = currentDate => add(currentDate, { days: 1 });
-export const setHoursToNine = date => {
- return setSeconds(setMinutes(setHours(date, 9), 0), 0);
+export const setHoursToNine = date =>
+ setSeconds(setMinutes(setHours(date, 9), 0), 0);
+
+const SNOOZE_RESOLVERS = {
+ [SNOOZE_OPTIONS.AN_HOUR_FROM_NOW]: d => add(d, { hours: 1 }),
+ [SNOOZE_OPTIONS.UNTIL_TOMORROW]: d => setHoursToNine(findNextDay(d)),
+ [SNOOZE_OPTIONS.UNTIL_NEXT_WEEK]: d => setHoursToNine(findStartOfNextWeek(d)),
+ [SNOOZE_OPTIONS.UNTIL_NEXT_MONTH]: d =>
+ setHoursToNine(findStartOfNextMonth(d)),
};
export const findSnoozeTime = (snoozeType, currentDate = new Date()) => {
- let parsedDate = null;
- if (snoozeType === SNOOZE_OPTIONS.AN_HOUR_FROM_NOW) {
- parsedDate = add(currentDate, { hours: 1 });
- } else if (snoozeType === SNOOZE_OPTIONS.UNTIL_TOMORROW) {
- parsedDate = setHoursToNine(findNextDay(currentDate));
- } else if (snoozeType === SNOOZE_OPTIONS.UNTIL_NEXT_WEEK) {
- parsedDate = setHoursToNine(findStartOfNextWeek(currentDate));
- } else if (snoozeType === SNOOZE_OPTIONS.UNTIL_NEXT_MONTH) {
- parsedDate = setHoursToNine(findStartOfNextMonth(currentDate));
- }
-
- return parsedDate ? getUnixTime(parsedDate) : null;
+ const resolve = SNOOZE_RESOLVERS[snoozeType];
+ return resolve ? getUnixTime(resolve(currentDate)) : null;
};
+
export const snoozedReopenTime = snoozedUntil => {
- if (!snoozedUntil) {
- return null;
- }
+ if (!snoozedUntil) return null;
const date = new Date(snoozedUntil);
+ if (isToday(date)) return format(date, 'h.mmaaa');
+ if (!isSameYear(date, new Date())) return format(date, 'd MMM yyyy, h.mmaaa');
+ return format(date, 'd MMM, h.mmaaa');
+};
- if (isToday(date)) {
- return format(date, 'h.mmaaa');
+export const snoozedReopenTimeToTimestamp = snoozedUntil =>
+ snoozedUntil ? getUnixTime(new Date(snoozedUntil)) : null;
+
+const formatSnoozeDate = (snoozeDate, currentDate, locale = 'en') => {
+ const sameYear = isSameYear(snoozeDate, currentDate);
+ try {
+ const opts = {
+ weekday: 'short',
+ day: 'numeric',
+ month: 'short',
+ hour: 'numeric',
+ minute: '2-digit',
+ hour12: true,
+ ...(sameYear ? {} : { year: 'numeric' }),
+ };
+ return new Intl.DateTimeFormat(locale, opts).format(snoozeDate);
+ } catch {
+ return sameYear
+ ? format(snoozeDate, 'EEE, d MMM, h:mm a')
+ : format(snoozeDate, 'EEE, d MMM yyyy, h:mm a');
}
- return snoozedUntil ? format(date, 'd MMM, h.mmaaa') : null;
};
-export const snoozedReopenTimeToTimestamp = snoozedUntil => {
- return snoozedUntil ? getUnixTime(new Date(snoozedUntil)) : null;
+const expandUnit = (num, abbr) => {
+ const full = UNIT_MAP[abbr];
+ if (!full) return `${num} ${abbr}`;
+ return parseFloat(num) === 1
+ ? `${num} ${full.replace(/s$/, '')}`
+ : `${num} ${full}`;
};
+
+const capitalizeLabel = text => {
+ const expanded = text
+ .replace(
+ /^(\d+)h(\d+)m(?:in)?$/i,
+ (_, h, m) => `${expandUnit(h, 'h')} ${expandUnit(m, 'm')}`
+ )
+ .replace(/^(\d+(?:\.5)?)\s*([a-z]+)$/i, (_, n, u) =>
+ UNIT_MAP[u.toLowerCase()] ? expandUnit(n, u.toLowerCase()) : `${n} ${u}`
+ );
+ return expanded.replace(/^\w/, c => c.toUpperCase());
+};
+
+export const generateSnoozeSuggestions = (
+ searchText,
+ currentDate = new Date(),
+ { translations, locale } = {}
+) => {
+ const suggestions = generateDateSuggestions(searchText, currentDate, {
+ translations,
+ locale,
+ });
+ return suggestions.map(s => ({
+ date: s.date,
+ unixTime: s.unix,
+ query: s.query,
+ label: capitalizeLabel(s.label),
+ formattedDate: formatSnoozeDate(s.date, currentDate, locale),
+ resolve: () => parseDateFromText(s.query)?.unix ?? s.unix,
+ }));
+};
+
+const UNIT_SHORT = {
+ minute: 'm',
+ minutes: 'm',
+ hour: 'h',
+ hours: 'h',
+ day: 'd',
+ days: 'd',
+ month: 'mo',
+ months: 'mo',
+ year: 'y',
+ years: 'y',
+};
+
export const shortenSnoozeTime = snoozedUntil => {
- if (!snoozedUntil) {
- return null;
- }
- const unitMap = {
- minutes: 'm',
- minute: 'm',
- hours: 'h',
- hour: 'h',
- days: 'd',
- day: 'd',
- months: 'mo',
- month: 'mo',
- years: 'y',
- year: 'y',
- };
- const shortenTime = snoozedUntil
+ if (!snoozedUntil) return null;
+ return snoozedUntil
.replace(/^in\s+/i, '')
.replace(
/\s(minute|hour|day|month|year)s?\b/gi,
- (match, unit) => unitMap[unit.toLowerCase()] || match
+ (match, unit) => UNIT_SHORT[unit.toLowerCase()] || match
);
-
- return shortenTime;
};
diff --git a/app/javascript/dashboard/helper/specs/portalHelper.spec.js b/app/javascript/dashboard/helper/specs/portalHelper.spec.js
index db3e41583..631714095 100644
--- a/app/javascript/dashboard/helper/specs/portalHelper.spec.js
+++ b/app/javascript/dashboard/helper/specs/portalHelper.spec.js
@@ -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']);
+ });
+ });
});
diff --git a/app/javascript/dashboard/helper/specs/snoozeDateParser.spec.js b/app/javascript/dashboard/helper/specs/snoozeDateParser.spec.js
new file mode 100644
index 000000000..1ddde6fed
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/snoozeDateParser.spec.js
@@ -0,0 +1,1761 @@
+import {
+ parseDateFromText,
+ generateDateSuggestions,
+} from '../snoozeDateParser';
+
+const now = new Date('2023-06-16T10:00:00');
+
+const examples = [
+ 'mar 20 next year',
+ 'snooze for a day',
+ 'snooze till jan 2028',
+ '3 weeks',
+ '5 d',
+ 'two months',
+ 'half day',
+ 'a week',
+ 'tomorrow',
+ 'tomorrow at 3pm',
+ 'tonight',
+ 'next friday',
+ 'next week',
+ 'next month',
+ 'friday',
+ 'this friday at 13:00',
+ 'march 5th',
+ 'jan 20',
+ 'march 5 at 2pm',
+ 'in 10 days',
+ 'snooze for 2 hours',
+ 'for 3 weeks',
+ 'day after tomorrow',
+ 'this weekend',
+ 'next weekend',
+ 'morning',
+ 'eod',
+ 'at 3pm',
+ '9:30am',
+ '15 jan',
+ '2025-01-15',
+ '01/15/2025',
+ 'tomorrow morning',
+ 'this afternoon',
+ 'in half an hour',
+ '5 minutes from now',
+ // New natural language patterns
+ 'Tonight at 8 PM',
+ 'Tomorrow same time',
+ 'Upcoming Friday',
+ 'Monday of next week',
+ 'Approx 2 hours from now',
+ 'next hour',
+ 'add a deadline on march 30th',
+ 'remind me tomorrow at 9am',
+ 'please snooze for 3 days',
+ 'coming wednesday',
+ 'about 30 minutes from now',
+ 'schedule on jan 15',
+ 'postpone till next week',
+ 'tomorrow this time',
+ 'midnight',
+ 'monday next week',
+ 'next week monday',
+ 'same time friday',
+ 'this time wednesday',
+ 'morning 6am',
+ 'evening 7pm',
+ 'afternoon at 2pm',
+];
+
+describe('snooze examples', () => {
+ examples.forEach(input => {
+ it(`"${input}" parses to a future date`, () => {
+ const result = parseDateFromText(input, now);
+ expect(result).not.toBeNull();
+ expect(result.date).toBeInstanceOf(Date);
+ expect(result.date > now).toBe(true);
+ expect(typeof result.unix).toBe('number');
+ });
+ });
+});
+
+const invalidDates = [
+ 'feb 30',
+ 'feb 31',
+ 'apr 31',
+ 'jun 31',
+ 'feb 30 2025',
+ '30 feb',
+ '31st feb 2025',
+ // Past formal dates should also return null
+ '2020-01-15',
+ '01/15/2020',
+ '15-01-2020',
+];
+
+describe('today at past time should roll forward', () => {
+ it('"today at 9am" (already past 10am) should roll to tomorrow', () => {
+ const result = parseDateFromText('today at 9am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ expect(result.date.getHours()).toEqual(9);
+ });
+
+ it('"today at 3pm" (still future) should stay today', () => {
+ const result = parseDateFromText('today at 3pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(16);
+ expect(result.date.getHours()).toEqual(15);
+ });
+});
+
+describe('invalid dates should return null', () => {
+ invalidDates.forEach(input => {
+ it(`"${input}" → null`, () => {
+ const result = parseDateFromText(input, now);
+ expect(result).toBeNull();
+ });
+ });
+});
+
+// ─── Regression Test Matrix ───────────────────────────────────────────────────
+
+describe('regression: leap day / end-of-month', () => {
+ const jan30 = new Date('2024-01-30T10:00:00');
+
+ it('feb 29 on leap year (2024) should resolve', () => {
+ const result = parseDateFromText('feb 29', jan30);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(29);
+ });
+
+ it('feb 29 on non-leap year should return null', () => {
+ const jan2025 = new Date('2025-01-30T10:00:00');
+ const result = parseDateFromText('feb 29 2025', jan2025);
+ expect(result).toBeNull();
+ });
+
+ it('feb 29 2028 explicit leap year should resolve', () => {
+ const result = parseDateFromText('feb 29 2028', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2028);
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(29);
+ });
+
+ it('feb 29 without year in non-leap year scans to next leap year', () => {
+ const mar2025 = new Date('2025-03-01T10:00:00');
+ const result = parseDateFromText('feb 29', mar2025);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2028);
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(29);
+ });
+});
+
+describe('regression: "next year" suffix', () => {
+ it('"feb 20 next year" resolves to next year', () => {
+ const result = parseDateFromText('feb 20 next year', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2024);
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(20);
+ });
+
+ it('"20 feb next year" (reversed) resolves to next year', () => {
+ const result = parseDateFromText('20 feb next year', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2024);
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(20);
+ });
+
+ it('"dec 25 next year at 3pm" resolves with time', () => {
+ const result = parseDateFromText('dec 25 next year at 3pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2024);
+ expect(result.date.getHours()).toEqual(15);
+ });
+});
+
+describe('regression: weekend semantics', () => {
+ it('"this weekend" on Saturday morning should be today', () => {
+ const satMorning = new Date('2023-06-17T07:00:00');
+ const result = parseDateFromText('this weekend', satMorning);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ expect(result.date.getHours()).toEqual(10);
+ });
+
+ it('"this weekend" on Sunday should be today', () => {
+ const sunMorning = new Date('2023-06-18T07:00:00');
+ const result = parseDateFromText('this weekend', sunMorning);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(18);
+ expect(result.date.getHours()).toEqual(10);
+ });
+
+ it('"next weekend" on Saturday should skip to next Saturday', () => {
+ const satMorning = new Date('2023-06-17T07:00:00');
+ const result = parseDateFromText('next weekend', satMorning);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(24);
+ });
+
+ it('"this weekend" on a weekday should be next Saturday', () => {
+ const result = parseDateFromText('this weekend', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ });
+});
+
+describe('regression: ambiguous numeric dates', () => {
+ it('"01/05/2025" treats first number as month (US format)', () => {
+ const result = parseDateFromText('01/05/2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(0);
+ expect(result.date.getDate()).toEqual(5);
+ });
+
+ it('"13/05/2025" disambiguates — 13 must be day', () => {
+ const result = parseDateFromText('13/05/2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(4);
+ expect(result.date.getDate()).toEqual(13);
+ });
+});
+
+describe('regression: same-time edge cases', () => {
+ it('"today same time" should return null (not future)', () => {
+ const result = parseDateFromText('today same time', now);
+ expect(result).toBeNull();
+ });
+
+ it('"tomorrow same time" preserves hour and minute', () => {
+ const at1430 = new Date('2023-06-16T14:30:00');
+ const result = parseDateFromText('tomorrow same time', at1430);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ expect(result.date.getHours()).toEqual(14);
+ expect(result.date.getMinutes()).toEqual(30);
+ });
+
+ it('"tomorrow same time" with seconds does not produce past', () => {
+ const at1030WithSecs = new Date('2023-06-16T10:00:45.500');
+ const result = parseDateFromText('tomorrow same time', at1030WithSecs);
+ expect(result).not.toBeNull();
+ expect(result.date > at1030WithSecs).toBe(true);
+ });
+});
+
+describe('regression: future-only rollover', () => {
+ it('"today morning" at 11am rolls to tomorrow morning', () => {
+ const at11am = new Date('2023-06-16T11:00:00');
+ const result = parseDateFromText('today morning', at11am);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ expect(result.date.getHours()).toEqual(9);
+ });
+
+ it('"today afternoon" at 10am stays today', () => {
+ const result = parseDateFromText('today afternoon', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(16);
+ expect(result.date.getHours()).toEqual(14);
+ });
+
+ it('"at 9am" when it is 10am rolls to tomorrow', () => {
+ const result = parseDateFromText('at 9am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ });
+
+ it('past formal date "2020-06-01" returns null', () => {
+ const result = parseDateFromText('2020-06-01', now);
+ expect(result).toBeNull();
+ });
+
+ it('past month-day "jan 1" rolls to next year', () => {
+ const result = parseDateFromText('jan 1', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2024);
+ });
+
+ it('past month-name with explicit year "jan 5 2024" returns null', () => {
+ const feb2025 = new Date('2025-02-01T10:00:00');
+ const result = parseDateFromText('jan 5 2024', feb2025);
+ expect(result).toBeNull();
+ });
+
+ it('past reversed date with explicit year "5 jan 2024" returns null', () => {
+ const feb2025 = new Date('2025-02-01T10:00:00');
+ const result = parseDateFromText('5 jan 2024', feb2025);
+ expect(result).toBeNull();
+ });
+
+ it('future month-name with explicit year "dec 25 2025" resolves', () => {
+ const result = parseDateFromText('dec 25 2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2025);
+ expect(result.date.getMonth()).toEqual(11);
+ expect(result.date.getDate()).toEqual(25);
+ });
+});
+
+describe('regression: noise-stripped bare durations', () => {
+ it('"approx 2 hours" resolves (noise stripped to "2 hours")', () => {
+ const result = parseDateFromText('approx 2 hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+
+ it('"about 3 days" resolves', () => {
+ const result = parseDateFromText('about 3 days', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"roughly 30 minutes" resolves', () => {
+ const result = parseDateFromText('roughly 30 minutes', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"~ 1 hour" resolves', () => {
+ const result = parseDateFromText('~ 1 hour', now);
+ expect(result).not.toBeNull();
+ });
+});
+
+describe('regression: invalid meridiem inputs', () => {
+ it('"0am" should return null', () => {
+ const result = parseDateFromText('tomorrow at 0am', now);
+ expect(result).toBeNull();
+ });
+
+ it('"13pm" should return null', () => {
+ const result = parseDateFromText('tomorrow at 13pm', now);
+ expect(result).toBeNull();
+ });
+
+ it('"0pm" should return null', () => {
+ const result = parseDateFromText('tomorrow at 0pm', now);
+ expect(result).toBeNull();
+ });
+
+ it('"12am" is valid (midnight)', () => {
+ const result = parseDateFromText('tomorrow at 12am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(0);
+ });
+
+ it('"12pm" is valid (noon)', () => {
+ const result = parseDateFromText('tomorrow at 12pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(12);
+ });
+});
+
+describe('regression: strict future (> not >=)', () => {
+ it('"today at 10:00am" when now is exactly 10:00:00 rolls to tomorrow', () => {
+ const exact10 = new Date('2023-06-16T10:00:00.000');
+ const result = parseDateFromText('today at 10am', exact10);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ });
+
+ it('"eod" at exactly 5pm rolls to tomorrow', () => {
+ const exact5pm = new Date('2023-06-16T17:00:00.000');
+ const result = parseDateFromText('eod', exact5pm);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ });
+});
+
+describe('regression: DST / month-end rollovers', () => {
+ it('"in 1 day" always advances by ~24h regardless of DST', () => {
+ const ref = new Date('2025-03-09T01:00:00');
+ const result = parseDateFromText('in 1 day', ref);
+ expect(result).not.toBeNull();
+ const diffMs = result.date.getTime() - ref.getTime();
+ const diffHours = diffMs / (1000 * 60 * 60);
+ // date-fns add({ days: 1 }) adds a calendar day; exact hours vary by TZ
+ expect(diffHours).toBeGreaterThanOrEqual(22);
+ expect(diffHours).toBeLessThanOrEqual(48);
+ });
+
+ it('"tomorrow" at end of month (Jan 31 → Feb 1)', () => {
+ const jan31 = new Date('2025-01-31T10:00:00');
+ const result = parseDateFromText('tomorrow', jan31);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(1);
+ });
+
+ it('"in 1 month" from Jan 31 clamps to Feb 28 (date-fns behavior)', () => {
+ const jan31 = new Date('2025-01-31T10:00:00');
+ const result = parseDateFromText('in 1 month', jan31);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(28);
+ expect(result.date > jan31).toBe(true);
+ });
+
+ it('"next friday" across year boundary (Dec 29 → Jan 2026)', () => {
+ const dec29 = new Date('2025-12-29T10:00:00');
+ const result = parseDateFromText('next friday', dec29);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2026);
+ expect(result.date.getMonth()).toEqual(0);
+ });
+});
+
+describe('regression: max 999 years cap', () => {
+ it('"jan 1 9999" should return null (>999 years from now)', () => {
+ const result = parseDateFromText('jan 1 9999', now);
+ expect(result).toBeNull();
+ });
+
+ it('"dec 25 2999" should resolve (within 999 years)', () => {
+ const result = parseDateFromText('dec 25 2999', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"9999-01-01" should return null', () => {
+ const result = parseDateFromText('9999-01-01', now);
+ expect(result).toBeNull();
+ });
+});
+
+describe('regression: invalid time in applyTimeOrDefault', () => {
+ it('"next monday at 99" should return null (invalid hour)', () => {
+ const result = parseDateFromText('next monday at 99', now);
+ expect(result).toBeNull();
+ });
+
+ it('"jan 5 at 25" should return null (invalid hour)', () => {
+ const result = parseDateFromText('jan 5 at 25', now);
+ expect(result).toBeNull();
+ });
+
+ it('"friday at 10:99" should return null (invalid minutes)', () => {
+ const result = parseDateFromText('friday at 10:99', now);
+ expect(result).toBeNull();
+ });
+
+ it('"tomorrow at 3pm" is still valid', () => {
+ const result = parseDateFromText('tomorrow at 3pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(15);
+ });
+});
+
+describe('regression: zero durations rejected', () => {
+ it('"0 minutes" should return null', () => {
+ const result = parseDateFromText('0 minutes', now);
+ expect(result).toBeNull();
+ });
+
+ it('"0 days" should return null', () => {
+ const result = parseDateFromText('0 days', now);
+ expect(result).toBeNull();
+ });
+
+ it('"in 0 hours" should return null', () => {
+ const result = parseDateFromText('in 0 hours', now);
+ expect(result).toBeNull();
+ });
+
+ it('"0 days from now" should return null', () => {
+ const result = parseDateFromText('0 days from now', now);
+ expect(result).toBeNull();
+ });
+
+ it('"1 minute" is still valid', () => {
+ const result = parseDateFromText('1 minute', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+});
+
+describe('regression: today date with default 9am past now', () => {
+ it('"jun 16" at 10am defaults to 9am which is past → rolls to next year', () => {
+ // now = 2023-06-16T10:00:00 (Friday)
+ // "jun 16" defaults to 9am today → past → futureOrNextYear bumps to 2024
+ const result = parseDateFromText('jun 16', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2024);
+ expect(result.date.getMonth()).toEqual(5);
+ expect(result.date.getDate()).toEqual(16);
+ expect(result.date.getHours()).toEqual(9);
+ });
+
+ it('"jun 16 at 3pm" at 10am stays today (3pm is future)', () => {
+ const result = parseDateFromText('jun 16 at 3pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2023);
+ expect(result.date.getDate()).toEqual(16);
+ expect(result.date.getHours()).toEqual(15);
+ });
+});
+
+describe('regression: 24h time support', () => {
+ it('"today at 14:30" resolves to 2:30pm today', () => {
+ const result = parseDateFromText('today at 14:30', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(14);
+ expect(result.date.getMinutes()).toEqual(30);
+ });
+
+ it('"tomorrow at 14:00" resolves', () => {
+ const result = parseDateFromText('tomorrow at 14:00', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ expect(result.date.getHours()).toEqual(14);
+ });
+
+ it('"jan 15 at 14:00" resolves with 24h time', () => {
+ const result = parseDateFromText('jan 15 at 14:00', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(14);
+ expect(result.date.getMinutes()).toEqual(0);
+ });
+
+ it('"next monday 18:00" resolves', () => {
+ const result = parseDateFromText('next monday 18:00', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(18);
+ });
+
+ it('"friday 16:30" resolves', () => {
+ const result = parseDateFromText('friday 16:30', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(16);
+ expect(result.date.getMinutes()).toEqual(30);
+ });
+
+ it('"day after tomorrow 13:00" resolves', () => {
+ const result = parseDateFromText('day after tomorrow 13:00', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(18);
+ expect(result.date.getHours()).toEqual(13);
+ });
+});
+
+// ─── parseDateFromText direct tests ──────────────────────────────────────────
+
+describe('parseDateFromText: relative durations', () => {
+ it('"in 2 hours" adds 2 hours', () => {
+ const result = parseDateFromText('in 2 hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(12);
+ });
+
+ it('"half hour" adds 30 minutes', () => {
+ const result = parseDateFromText('half hour', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMinutes()).toEqual(30);
+ });
+
+ it('"3 days from now" adds 3 days', () => {
+ const result = parseDateFromText('3 days from now', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(19);
+ });
+
+ it('"a week" adds 7 days', () => {
+ const result = parseDateFromText('a week', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(23);
+ });
+
+ it('"two months" adds 2 months', () => {
+ const result = parseDateFromText('two months', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(7);
+ });
+});
+
+describe('parseDateFromText: next patterns', () => {
+ it('"next week" returns next Monday 9am', () => {
+ const result = parseDateFromText('next week', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDay()).toEqual(1);
+ expect(result.date.getHours()).toEqual(9);
+ });
+
+ it('"next month" returns same day next month at 9am', () => {
+ // add(startOfDay(Jun 16), { months: 1 }) → Jul 16
+ const result = parseDateFromText('next month', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(6);
+ expect(result.date.getDate()).toEqual(16);
+ expect(result.date.getHours()).toEqual(9);
+ });
+
+ it('"next hour" adds 1 hour', () => {
+ const result = parseDateFromText('next hour', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(11);
+ });
+});
+
+describe('parseDateFromText: weekday patterns', () => {
+ it('"friday" returns this friday with default time', () => {
+ const result = parseDateFromText('friday', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDay()).toEqual(5);
+ });
+
+ it('"this wednesday at 2pm" returns wednesday 2pm', () => {
+ const result = parseDateFromText('this wednesday at 2pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDay()).toEqual(3);
+ expect(result.date.getHours()).toEqual(14);
+ });
+
+ it('"upcoming thursday" returns next thursday', () => {
+ const result = parseDateFromText('upcoming thursday', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDay()).toEqual(4);
+ });
+});
+
+describe('parseDateFromText: formal date formats', () => {
+ it('"2025-01-15" parses YYYY-MM-DD', () => {
+ const result = parseDateFromText('2025-01-15', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2025);
+ expect(result.date.getMonth()).toEqual(0);
+ expect(result.date.getDate()).toEqual(15);
+ });
+
+ it('"01/15/2025" parses MM/DD/YYYY', () => {
+ const result = parseDateFromText('01/15/2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(0);
+ expect(result.date.getDate()).toEqual(15);
+ });
+
+ it('"15-01-2025" parses DD-MM-YYYY', () => {
+ const result = parseDateFromText('15-01-2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(15);
+ expect(result.date.getMonth()).toEqual(0);
+ });
+
+ it('"05-04-2027" ambiguous dash → day-first (April 5)', () => {
+ const result = parseDateFromText('05-04-2027', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(5);
+ expect(result.date.getMonth()).toEqual(3);
+ });
+
+ it('"05.04.2027" ambiguous dot → day-first (April 5)', () => {
+ const result = parseDateFromText('05.04.2027', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(5);
+ expect(result.date.getMonth()).toEqual(3);
+ });
+
+ it('"05/04/2027" ambiguous slash → month-first (May 4)', () => {
+ const result = parseDateFromText('05/04/2027', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(4);
+ expect(result.date.getDate()).toEqual(4);
+ });
+});
+
+describe('parseDateFromText: returns null for garbage', () => {
+ it('empty string returns null', () => {
+ expect(parseDateFromText('', now)).toBeNull();
+ });
+
+ it('random text returns null', () => {
+ expect(parseDateFromText('hello world', now)).toBeNull();
+ });
+
+ it('null input returns null', () => {
+ expect(parseDateFromText(null, now)).toBeNull();
+ });
+
+ it('number input returns null', () => {
+ expect(parseDateFromText(123, now)).toBeNull();
+ });
+});
+
+describe('regression: mid-text punctuation is stripped', () => {
+ it('"today, at 3pm" resolves (comma stripped)', () => {
+ const result = parseDateFromText('today, at 3pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(15);
+ });
+
+ it('"tomorrow; 9am" resolves (semicolon stripped)', () => {
+ const result = parseDateFromText('tomorrow; 9am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(9);
+ });
+
+ it('"jan 15, 2025" resolves (comma after day)', () => {
+ const result = parseDateFromText('jan 15, 2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(15);
+ });
+
+ it('"next friday!" resolves (trailing punctuation)', () => {
+ const result = parseDateFromText('next friday!', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDay()).toEqual(5);
+ });
+
+ it('"tomorrow at 3p.m." still works (periods preserved for a.m./p.m.)', () => {
+ const result = parseDateFromText('tomorrow at 3p.m.', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(15);
+ });
+});
+
+describe('regression: contradictory time-of-day + time rejected', () => {
+ it('"morning 7pm" returns null', () => {
+ const result = parseDateFromText('morning 7pm', now);
+ expect(result).toBeNull();
+ });
+
+ it('"evening 6am" returns null', () => {
+ const result = parseDateFromText('evening 6am', now);
+ expect(result).toBeNull();
+ });
+
+ it('"night 8am" returns null', () => {
+ const result = parseDateFromText('night 8am', now);
+ expect(result).toBeNull();
+ });
+
+ it('"afternoon 7am" returns null', () => {
+ const result = parseDateFromText('afternoon 7am', now);
+ expect(result).toBeNull();
+ });
+
+ it('"morning 6am" is valid (consistent)', () => {
+ const result = parseDateFromText('morning 6am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(6);
+ });
+
+ it('"evening 7pm" is valid (consistent)', () => {
+ const result = parseDateFromText('evening 7pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(19);
+ });
+
+ it('"afternoon at 2pm" is valid (consistent)', () => {
+ const result = parseDateFromText('afternoon at 2pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(14);
+ });
+});
+
+describe('generateDateSuggestions', () => {
+ describe('half suggestions', () => {
+ it('"half" returns half hour/day/week/month/year suggestions', () => {
+ const results = generateDateSuggestions('half', now);
+ const labels = results.map(r => r.label);
+ expect(labels).toContain('half hour');
+ expect(labels).toContain('half day');
+ expect(labels).toContain('half week');
+ expect(labels).toContain('half month');
+ expect(labels).toContain('half year');
+ });
+
+ it('"ha" returns half suggestions (partial match)', () => {
+ const results = generateDateSuggestions('ha', now);
+ const labels = results.map(r => r.label);
+ expect(labels).toContain('half hour');
+ expect(labels).toContain('half day');
+ });
+
+ it('"hal" returns half suggestions (partial match)', () => {
+ const results = generateDateSuggestions('hal', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toMatch(/^half /);
+ });
+ });
+
+ describe('word number suggestions', () => {
+ it('"two" returns duration suggestions', () => {
+ const results = generateDateSuggestions('two', now);
+ const labels = results.map(r => r.label);
+ expect(labels).toContain('2 minutes');
+ expect(labels).toContain('2 hours');
+ expect(labels).toContain('2 days');
+ });
+
+ it('"ten" returns duration suggestions', () => {
+ const results = generateDateSuggestions('ten', now);
+ const labels = results.map(r => r.label);
+ expect(labels).toContain('10 minutes');
+ expect(labels).toContain('10 hours');
+ });
+
+ it('"five" returns duration suggestions', () => {
+ const results = generateDateSuggestions('five', now);
+ const labels = results.map(r => r.label);
+ expect(labels).toContain('5 minutes');
+ expect(labels).toContain('5 hours');
+ expect(labels).toContain('5 days');
+ });
+ });
+
+ describe('no seconds in suggestions', () => {
+ it('"2" does not suggest seconds', () => {
+ const results = generateDateSuggestions('2', now);
+ const labels = results.map(r => r.label);
+ expect(labels).not.toContain('2 seconds');
+ expect(labels).toContain('2 minutes');
+ });
+
+ it('"100" does not suggest seconds', () => {
+ const results = generateDateSuggestions('100', now);
+ const labels = results.map(r => r.label);
+ const hasSeconds = labels.some(l => l.includes('seconds'));
+ expect(hasSeconds).toBe(false);
+ });
+ });
+
+ describe('decimal number suggestions', () => {
+ it('"1.5" returns duration suggestions', () => {
+ const results = generateDateSuggestions('1.5', now);
+ const labels = results.map(r => r.label);
+ expect(labels).toContain('1.5 hours');
+ expect(labels).toContain('1.5 days');
+ });
+ });
+
+ describe('caps at MAX_SUGGESTIONS', () => {
+ it('returns at most 5 results', () => {
+ const results = generateDateSuggestions('2', now);
+ expect(results.length).toBeLessThanOrEqual(5);
+ });
+ });
+
+ describe('smart compositional suggestions', () => {
+ it('"mon" suggests monday + time-of-day variants (noon, afternoon, evening, night)', () => {
+ const results = generateDateSuggestions('mon', now);
+ const labels = results.map(r => r.label);
+ // "monday morning" (9am) is deduped with "monday" (default 9am), so noon+ appear
+ expect(labels.some(l => /monday\s+afternoon/.test(l))).toBe(true);
+ expect(labels.some(l => /monday\s+evening/.test(l))).toBe(true);
+ });
+
+ it('"monday" suggests multiple time-of-day variants', () => {
+ const results = generateDateSuggestions('monday', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => l.includes('monday afternoon'))).toBe(true);
+ expect(labels.some(l => l.includes('monday evening'))).toBe(true);
+ expect(results.length).toBeGreaterThanOrEqual(3);
+ });
+
+ it('"fri" suggests friday + time-of-day variants', () => {
+ const results = generateDateSuggestions('fri', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => /friday/.test(l))).toBe(true);
+ expect(results.length).toBeGreaterThanOrEqual(3);
+ });
+
+ it('"tomorrow m" suggests tomorrow morning', () => {
+ const results = generateDateSuggestions('tomorrow m', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => l.includes('tomorrow morning'))).toBe(true);
+ });
+
+ it('"tomorrow a" suggests tomorrow afternoon', () => {
+ const results = generateDateSuggestions('tomorrow a', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => l.includes('tomorrow afternoon'))).toBe(true);
+ });
+
+ it('"next mon" suggests next monday and next month', () => {
+ const results = generateDateSuggestions('next mon', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => l.includes('next mon'))).toBe(true);
+ });
+
+ it('"next monday m" suggests next monday morning', () => {
+ const results = generateDateSuggestions('next monday m', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => l.includes('next monday morning'))).toBe(true);
+ });
+
+ it('"t" suggests today, tonight, tomorrow', () => {
+ const results = generateDateSuggestions('t', now);
+ const labels = results.map(r => r.label);
+ expect(
+ labels.some(l => l === 'today' || l === 'tonight' || l === 'tomorrow')
+ ).toBe(true);
+ });
+
+ it('"n" suggests next week, next month, next weekdays', () => {
+ const results = generateDateSuggestions('n', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => l.includes('next'))).toBe(true);
+ });
+
+ it('all suggestions parse to valid future dates', () => {
+ const inputs = ['mon', 'monday', 'fri', 'tomorrow m', 'next mon', 't'];
+ inputs.forEach(input => {
+ const results = generateDateSuggestions(input, now);
+ results.forEach(r => {
+ expect(r.date).toBeInstanceOf(Date);
+ expect(r.date > now).toBe(true);
+ expect(typeof r.unix).toBe('number');
+ });
+ });
+ });
+ });
+});
+
+describe('bare number + time-of-day context inference', () => {
+ it('"morning 6" parses to 6am', () => {
+ const result = parseDateFromText('morning 6', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(6);
+ });
+
+ it('"evening 7" parses to 7pm (19:00)', () => {
+ const result = parseDateFromText('evening 7', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(19);
+ });
+
+ it('"afternoon 3" parses to 3pm (15:00)', () => {
+ const result = parseDateFromText('afternoon 3', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(15);
+ });
+
+ it('"night 9" parses to 9pm (21:00)', () => {
+ const result = parseDateFromText('night 9', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(21);
+ });
+
+ it('"tomorrow morning 6" parses to tomorrow 6am', () => {
+ const result = parseDateFromText('tomorrow morning 6', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toBe(17);
+ expect(result.date.getHours()).toBe(6);
+ });
+
+ it('"tomorrow evening 7" parses to tomorrow 7pm', () => {
+ const result = parseDateFromText('tomorrow evening 7', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toBe(17);
+ expect(result.date.getHours()).toBe(19);
+ });
+
+ it('"monday morning 6" parses to next monday 6am', () => {
+ const result = parseDateFromText('monday morning 6', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(6);
+ });
+
+ it('"friday evening 8" parses to friday 8pm', () => {
+ const result = parseDateFromText('friday evening 8', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(20);
+ });
+
+ it('explicit meridiem still works: "morning 6am" → 6am', () => {
+ const result = parseDateFromText('morning 6am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(6);
+ });
+
+ it('contradictory meridiem still rejected: "morning 7pm" → null', () => {
+ expect(parseDateFromText('morning 7pm', now)).toBeNull();
+ });
+});
+
+// Pin exact output for ~35 common phrases so any matcher reorder or refactor
+// that changes behavior will fail loudly. Reference: 2023-06-16T10:00:00 (Fri).
+
+describe('golden tests: pinned phrase → exact date/time', () => {
+ // [input, expectedYear, expectedMonth(0-based), expectedDay, expectedHour, expectedMinute]
+ const golden = [
+ // ── Durations ──
+ ['in 30 minutes', 2023, 5, 16, 10, 30],
+ ['in 2 hours', 2023, 5, 16, 12, 0],
+ ['in 3 days', 2023, 5, 19, 10, 0],
+ ['a week', 2023, 5, 23, 10, 0],
+ ['two months', 2023, 7, 16, 10, 0],
+ ['half hour', 2023, 5, 16, 10, 30],
+ ['half day', 2023, 5, 16, 22, 0],
+ ['1.5 hours', 2023, 5, 16, 11, 30],
+ ['1h30m', 2023, 5, 16, 11, 30],
+ ['couple hours', 2023, 5, 16, 12, 0],
+ ['few hours', 2023, 5, 16, 13, 0],
+
+ // ── Relative days ──
+ ['tomorrow', 2023, 5, 17, 9, 0],
+ ['tomorrow at 3pm', 2023, 5, 17, 15, 0],
+ ['tomorrow at 14:30', 2023, 5, 17, 14, 30],
+ ['tonight', 2023, 5, 16, 20, 0],
+ ['today at 3pm', 2023, 5, 16, 15, 0],
+ ['tomorrow morning', 2023, 5, 17, 9, 0],
+ ['tomorrow evening', 2023, 5, 17, 18, 0],
+ ['day after tomorrow', 2023, 5, 18, 9, 0],
+
+ // ── Time-of-day ──
+ ['morning', 2023, 5, 17, 9, 0],
+ ['this afternoon', 2023, 5, 16, 14, 0],
+ ['eod', 2023, 5, 16, 17, 0],
+ ['later today', 2023, 5, 16, 13, 0],
+
+ // ── Standalone time ──
+ ['at 3pm', 2023, 5, 16, 15, 0],
+
+ // ── Next patterns ──
+ ['next hour', 2023, 5, 16, 11, 0],
+ ['next week', 2023, 5, 19, 9, 0],
+ ['next month', 2023, 6, 16, 9, 0],
+
+ // ── Weekdays ──
+ ['friday', 2023, 5, 23, 9, 0],
+ ['monday 3pm', 2023, 5, 19, 15, 0],
+
+ // ── Named dates ──
+ ['jan 15', 2024, 0, 15, 9, 0],
+ ['march 5 at 2pm', 2024, 2, 5, 14, 0],
+ ['dec 25 2025', 2025, 11, 25, 9, 0],
+
+ // ── Month ordinal week ──
+ ['july 1st week', 2023, 6, 1, 9, 0], // July 1st week = July 1
+ ['july 2nd week', 2023, 6, 8, 9, 0], // July 2nd week = July 8
+ ['july 3rd week', 2023, 6, 15, 9, 0], // July 3rd week = July 15
+ ['aug 1st week', 2023, 7, 1, 9, 0], // August 1st week = Aug 1
+ ['feb 2nd week at 3pm', 2024, 1, 8, 15, 0], // Feb 2nd week with time
+ ['march first week', 2024, 2, 1, 9, 0], // Ordinal: first
+ ['march second week', 2024, 2, 8, 9, 0], // Ordinal: second
+ ['april third week', 2024, 3, 15, 9, 0], // Ordinal: third
+ ['may fourth week', 2024, 4, 22, 9, 0], // Ordinal: fourth
+ ['june fifth week', 2023, 5, 29, 9, 0], // Ordinal: fifth (same year since we're before week 5)
+
+ // ── Month ordinal day ──
+ ['april first day', 2024, 3, 1, 9, 0],
+ ['april second day', 2024, 3, 2, 9, 0],
+ ['july third day', 2023, 6, 3, 9, 0],
+ ['march 5th day', 2024, 2, 5, 9, 0],
+ ['jan tenth day at 2pm', 2024, 0, 10, 14, 0],
+
+ // ── Reversed order: ordinal unit of month ──
+ ['first week of april', 2024, 3, 1, 9, 0],
+ ['2nd week of july', 2023, 6, 8, 9, 0],
+ ['third day of march', 2024, 2, 3, 9, 0],
+ ['5th day of jan at 2pm', 2024, 0, 5, 14, 0],
+ ['second week of feb at 3pm', 2024, 1, 8, 15, 0],
+
+ // ── Formal dates ──
+ ['2025-01-15', 2025, 0, 15, 9, 0],
+ ['01/15/2025', 2025, 0, 15, 9, 0],
+
+ // ── Tonight bare-hour (must infer PM, not AM) ──
+ ['tonight 8', 2023, 5, 16, 20, 0],
+ ['tonite 7', 2023, 5, 16, 19, 0],
+ ['tonight 11', 2023, 5, 16, 23, 0],
+ ['today 8', 2023, 5, 17, 8, 0], // 8am is past → rolls to next day
+
+ // ── Shorthand durations ──
+ ['2h', 2023, 5, 16, 12, 0],
+ ['30m', 2023, 5, 16, 10, 30],
+ ['1h30minutes', 2023, 5, 16, 11, 30],
+ ['2hr15min', 2023, 5, 16, 12, 15],
+
+ // ── Couple / few ──
+ ['couple hours', 2023, 5, 16, 12, 0],
+ ['a couple of days', 2023, 5, 18, 10, 0],
+ ['a few minutes', 2023, 5, 16, 10, 3],
+ ['in a few hours', 2023, 5, 16, 13, 0],
+
+ // ── Fortnight ──
+ ['fortnight', 2023, 5, 30, 10, 0],
+ ['in a fortnight', 2023, 5, 30, 10, 0],
+
+ // ── X later ──
+ ['2 days later', 2023, 5, 18, 10, 0],
+ ['a week later', 2023, 5, 23, 10, 0],
+ ['month later', 2023, 6, 16, 10, 0],
+
+ // ── Same time reversed ──
+ ['same time tomorrow', 2023, 5, 17, 10, 0],
+
+ // ── Early / late time of day ──
+ ['early morning', 2023, 5, 17, 8, 0],
+ ['late evening', 2023, 5, 16, 20, 0],
+ ['late night', 2023, 5, 16, 22, 0],
+
+ // ── Beginning / end of next ──
+ ['beginning of next week', 2023, 5, 19, 9, 0],
+ ['start of next week', 2023, 5, 19, 9, 0],
+ ['end of next week', 2023, 5, 23, 17, 0],
+ ['end of next month', 2023, 6, 31, 17, 0],
+ ['beginning of next month', 2023, 6, 1, 9, 0],
+
+ // ── Next business day ──
+ ['next business day', 2023, 5, 19, 9, 0],
+ ['next working day', 2023, 5, 19, 9, 0],
+
+ // ── One and a half ──
+ ['one and a half hours', 2023, 5, 16, 11, 30],
+ ['an hour and a half', 2023, 5, 16, 11, 30],
+
+ // ── Noise prefix: after / within ──
+ ['after 2 hours', 2023, 5, 16, 12, 0],
+ ['within a week', 2023, 5, 23, 10, 0],
+
+ // ── The day after tomorrow ──
+ ['the day after tomorrow', 2023, 5, 18, 9, 0],
+
+ // ── Special ──
+ ['this weekend', 2023, 5, 17, 9, 0],
+ ['end of month', 2023, 5, 30, 17, 0],
+ ];
+
+ golden.forEach(([input, yr, mo, day, hr, min]) => {
+ it(`"${input}" → ${yr}-${String(mo + 1).padStart(2, '0')}-${String(day).padStart(2, '0')} ${String(hr).padStart(2, '0')}:${String(min).padStart(2, '0')}`, () => {
+ const result = parseDateFromText(input, now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toBe(yr);
+ expect(result.date.getMonth()).toBe(mo);
+ expect(result.date.getDate()).toBe(day);
+ expect(result.date.getHours()).toBe(hr);
+ expect(result.date.getMinutes()).toBe(min);
+ });
+ });
+});
+
+describe('regression: month-ordinal week overflow (P1)', () => {
+ it('"feb fifth week" returns null in non-leap year (would overflow into March)', () => {
+ const ref = new Date(2023, 0, 10, 10, 0, 0);
+ expect(parseDateFromText('feb fifth week', ref)).toBeNull();
+ });
+
+ it('"feb fourth week" is still valid', () => {
+ const ref = new Date(2023, 0, 10, 10, 0, 0);
+ const result = parseDateFromText('feb fourth week', ref);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toBe(1);
+ });
+});
+
+describe('localized suggestions with Malayalam translations', () => {
+ const mlTranslations = {
+ UNITS: {
+ MINUTE: 'മിനിറ്റ്',
+ MINUTES: 'മിനിറ്റ്',
+ HOUR: 'മണിക്കൂർ',
+ HOURS: 'മണിക്കൂർ',
+ DAY: 'ദിവസം',
+ DAYS: 'ദിവസം',
+ WEEK: 'ആഴ്ച',
+ WEEKS: 'ആഴ്ച',
+ MONTH: 'മാസം',
+ MONTHS: 'മാസം',
+ YEAR: 'വർഷം',
+ YEARS: 'വർഷം',
+ },
+ HALF: 'അര',
+ NEXT: 'അടുത്ത',
+ THIS: 'ഈ',
+ AT: 'സമയം',
+ IN: 'കഴിഞ്ഞ്',
+ FROM_NOW: 'ഇപ്പോൾ മുതൽ',
+ NEXT_YEAR: 'അടുത്ത വർഷം',
+ MERIDIEM: { AM: 'രാവിലെ', PM: 'വൈകുന്നേരം' },
+ RELATIVE: {
+ TOMORROW: 'നാളെ',
+ DAY_AFTER_TOMORROW: 'മറ്റന്നാൾ',
+ NEXT_WEEK: 'അടുത്ത ആഴ്ച',
+ NEXT_MONTH: 'അടുത്ത മാസം',
+ THIS_WEEKEND: 'ഈ വാരാന്ത്യം',
+ NEXT_WEEKEND: 'അടുത്ത വാരാന്ത്യം',
+ },
+ TIME_OF_DAY: {
+ MORNING: 'രാവിലെ',
+ AFTERNOON: 'ഉച്ചയ്ക്ക്',
+ EVENING: 'വൈകുന്നേരം',
+ NIGHT: 'രാത്രി',
+ NOON: 'ഉച്ച',
+ MIDNIGHT: 'അർദ്ധരാത്രി',
+ },
+ WORD_NUMBERS: {
+ ONE: 'ഒന്ന്',
+ TWO: 'രണ്ട്',
+ THREE: 'മൂന്ന്',
+ FOUR: 'നാല്',
+ FIVE: 'അഞ്ച്',
+ SIX: 'ആറ്',
+ SEVEN: 'ഏഴ്',
+ EIGHT: 'എട്ട്',
+ NINE: 'ഒൻപത്',
+ TEN: 'പത്ത്',
+ TWELVE: 'പന്ത്രണ്ട്',
+ FIFTEEN: 'പതിനഞ്ച്',
+ TWENTY: 'ഇരുപത്',
+ THIRTY: 'മുപ്പത്',
+ },
+ };
+
+ it('Malayalam "നാളെ രാവിലെ 6" parses to tomorrow 6am', () => {
+ const results = generateDateSuggestions('നാളെ രാവിലെ 6', now, {
+ translations: mlTranslations,
+ locale: 'ml',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(17);
+ expect(results[0].date.getHours()).toBe(6);
+ });
+
+ it('Malayalam "നാളെ" (tomorrow) generates multiple suggestions', () => {
+ const results = generateDateSuggestions('നാളെ', now, {
+ translations: mlTranslations,
+ locale: 'ml',
+ });
+ expect(results.length).toBeGreaterThanOrEqual(3);
+ expect(results[0].date.getDate()).toBe(17);
+ });
+
+ it('Malayalam suggestion labels are in Malayalam, not English', () => {
+ const results = generateDateSuggestions('നാളെ', now, {
+ translations: mlTranslations,
+ locale: 'ml',
+ });
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => /നാളെ/.test(l))).toBe(true);
+ expect(labels.every(l => !/\btomorrow\b/.test(l))).toBe(true);
+ });
+});
+
+describe('chrono-level patterns', () => {
+ describe('tomorrow at TOD', () => {
+ it('"tomorrow at noon" parses to tomorrow 12pm', () => {
+ const result = parseDateFromText('tomorrow at noon', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toBe(17);
+ expect(result.date.getHours()).toBe(12);
+ });
+
+ it('"tomorrow at midnight" parses to tomorrow 0am', () => {
+ const result = parseDateFromText('tomorrow at midnight', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(0);
+ });
+
+ it('"tomorrow at evening" parses to tomorrow 6pm', () => {
+ const result = parseDateFromText('tomorrow at evening', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(18);
+ });
+ });
+
+ describe('duration at time', () => {
+ it('"in 2 days at 3pm" parses correctly', () => {
+ const result = parseDateFromText('in 2 days at 3pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toBe(18);
+ expect(result.date.getHours()).toBe(15);
+ });
+
+ it('"in 1 week at 9am" parses correctly', () => {
+ const result = parseDateFromText('in 1 week at 9am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(9);
+ });
+ });
+
+ describe('end of period', () => {
+ it('"end of day" parses to today 5pm', () => {
+ const result = parseDateFromText('end of day', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(17);
+ });
+
+ it('"end of the week" parses to next friday 5pm', () => {
+ const result = parseDateFromText('end of the week', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDay()).toBe(5);
+ expect(result.date.getHours()).toBe(17);
+ });
+
+ it('"end of month" parses to last day of month 5pm', () => {
+ const result = parseDateFromText('end of month', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toBe(30);
+ expect(result.date.getHours()).toBe(17);
+ });
+
+ it('"end of month" on last day after 5pm rolls to next month-end', () => {
+ const lastDayLate = new Date('2025-06-30T18:00:00');
+ const result = parseDateFromText('end of month', lastDayLate);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toBe(6);
+ expect(result.date.getDate()).toBe(31);
+ expect(result.date.getHours()).toBe(17);
+ });
+ });
+
+ describe('later today', () => {
+ it('"later today" parses to +3 hours from now', () => {
+ const result = parseDateFromText('later today', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(13);
+ });
+ });
+
+ describe('compound durations', () => {
+ it('"1 hour 30 minutes" parses correctly', () => {
+ const result = parseDateFromText('1 hour 30 minutes', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(11);
+ expect(result.date.getMinutes()).toBe(30);
+ });
+
+ it('"1h30m" parses correctly', () => {
+ const result = parseDateFromText('1h30m', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(11);
+ expect(result.date.getMinutes()).toBe(30);
+ });
+
+ it('"2 hours and 30 minutes" parses correctly', () => {
+ const result = parseDateFromText('2 hours and 30 minutes', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(12);
+ expect(result.date.getMinutes()).toBe(30);
+ });
+ });
+
+ describe('aliases and shortcuts', () => {
+ it('"tonite" parses to tonight (8pm)', () => {
+ const result = parseDateFromText('tonite', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(20);
+ });
+
+ it('"couple hours" parses to +2 hours', () => {
+ const result = parseDateFromText('couple hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(12);
+ });
+
+ it('"couple of hours" parses to +2 hours', () => {
+ const result = parseDateFromText('couple of hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(12);
+ });
+
+ it('"few hours" parses to +3 hours', () => {
+ const result = parseDateFromText('few hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(13);
+ });
+
+ it('"nxt week" parses like "next week"', () => {
+ const result = parseDateFromText('nxt week', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"nxt monday" parses like "next monday"', () => {
+ const result = parseDateFromText('nxt monday', now);
+ expect(result).not.toBeNull();
+ });
+ });
+
+ describe('weekday bare hour defaults to PM', () => {
+ it('"monday at 3" parses to 3pm', () => {
+ const result = parseDateFromText('monday at 3', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(15);
+ });
+
+ it('"friday at 5" parses to 5pm', () => {
+ const result = parseDateFromText('friday at 5', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(17);
+ });
+
+ it('"monday at 9" stays 9am (hour >= 8)', () => {
+ const result = parseDateFromText('monday at 9', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(9);
+ });
+ });
+});
+
+describe('dot-delimited dates', () => {
+ it('"12.12.2034" parses to Dec 12 2034', () => {
+ const result = parseDateFromText('12.12.2034', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2034);
+ expect(result.date.getMonth()).toEqual(11);
+ expect(result.date.getDate()).toEqual(12);
+ });
+
+ it('"01.06.2025" parses correctly', () => {
+ const result = parseDateFromText('01.06.2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2025);
+ });
+});
+
+describe('noise word stripping', () => {
+ it('"snooze this for 5 minutes" parses', () => {
+ const result = parseDateFromText('snooze this for 5 minutes', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"please snooze this for half a day" parses', () => {
+ const result = parseDateFromText('please snooze this for half a day', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"snooze this until tomorrow" parses', () => {
+ const result = parseDateFromText('snooze this until tomorrow', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"after ten year" strips "after" and parses as duration', () => {
+ const result = parseDateFromText('after ten year', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"after 2 hours" strips "after" and parses as duration', () => {
+ const result = parseDateFromText('after 2 hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(12);
+ });
+
+ it('"after 3 days" strips "after" and parses as duration', () => {
+ const result = parseDateFromText('after 3 days', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(19);
+ });
+
+ it('"schedule this for 2025-01-15" parses', () => {
+ const result = parseDateFromText('schedule this for 2025-01-15', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2025);
+ expect(result.date.getMonth()).toEqual(0);
+ expect(result.date.getDate()).toEqual(15);
+ });
+});
+
+describe('half unit parsing', () => {
+ it('"half hour" adds 30 minutes', () => {
+ const result = parseDateFromText('half hour', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMinutes()).toEqual(30);
+ });
+
+ it('"half day" adds 12 hours', () => {
+ const result = parseDateFromText('half day', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(22);
+ });
+
+ it('"half week" parses to a future date', () => {
+ const result = parseDateFromText('half week', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+
+ it('"half month" parses to a future date', () => {
+ const result = parseDateFromText('half month', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+
+ it('"half year" parses to ~6 months ahead', () => {
+ const result = parseDateFromText('half year', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(11);
+ });
+});
+
+describe('decimal duration parsing (only .5 allowed)', () => {
+ it('"1.5 hours" parses correctly', () => {
+ const result = parseDateFromText('1.5 hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+
+ it('"1.5 days" parses correctly', () => {
+ const result = parseDateFromText('1.5 days', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+
+ it('"0.5 hours" parses correctly', () => {
+ const result = parseDateFromText('0.5 hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+
+ it('"1.3 hours" returns null (only .5 allowed)', () => {
+ expect(parseDateFromText('1.3 hours', now)).toBeNull();
+ });
+
+ it('"2.7 days" returns null (only .5 allowed)', () => {
+ expect(parseDateFromText('2.7 days', now)).toBeNull();
+ });
+});
+
+// ─── Multilingual / Localized Input Regressions ─────────────────────────────
+
+describe('generateDateSuggestions — localized input regressions', () => {
+ const arTranslations = {
+ UNITS: {
+ MINUTE: 'دقيقة',
+ MINUTES: 'دقائق',
+ HOUR: 'ساعة',
+ HOURS: 'ساعات',
+ DAY: 'يوم',
+ DAYS: 'أيام',
+ WEEK: 'أسبوع',
+ WEEKS: 'أسابيع',
+ MONTH: 'شهر',
+ MONTHS: 'أشهر',
+ YEAR: 'سنة',
+ YEARS: 'سنوات',
+ },
+ HALF: 'نصف',
+ NEXT: 'القادم',
+ THIS: 'هذا',
+ AT: 'الساعة',
+ IN: 'في',
+ FROM_NOW: 'من الآن',
+ NEXT_YEAR: 'العام المقبل',
+ MERIDIEM: { AM: 'صباحاً', PM: 'مساءً' },
+ RELATIVE: {
+ TOMORROW: 'غداً',
+ DAY_AFTER_TOMORROW: 'بعد غد',
+ NEXT_WEEK: 'الأسبوع القادم',
+ NEXT_MONTH: 'الشهر القادم',
+ THIS_WEEKEND: 'نهاية هذا الأسبوع',
+ NEXT_WEEKEND: 'نهاية الأسبوع القادم',
+ },
+ TIME_OF_DAY: {
+ MORNING: 'صباحاً',
+ AFTERNOON: 'بعد الظهر',
+ EVENING: 'مساءً',
+ NIGHT: 'ليلاً',
+ NOON: 'ظهراً',
+ MIDNIGHT: 'منتصف الليل',
+ },
+ WORD_NUMBERS: {
+ ONE: 'واحد',
+ TWO: 'اثنان',
+ THREE: 'ثلاثة',
+ FOUR: 'أربعة',
+ FIVE: 'خمسة',
+ SIX: 'ستة',
+ SEVEN: 'سبعة',
+ EIGHT: 'ثمانية',
+ NINE: 'تسعة',
+ TEN: 'عشرة',
+ TWELVE: 'اثنا عشر',
+ FIFTEEN: 'خمسة عشر',
+ TWENTY: 'عشرون',
+ THIRTY: 'ثلاثون',
+ },
+ };
+
+ const hiTranslations = {
+ UNITS: {
+ MINUTE: 'मिनट',
+ MINUTES: 'मिनट',
+ HOUR: 'घंटा',
+ HOURS: 'घंटे',
+ DAY: 'दिन',
+ DAYS: 'दिन',
+ WEEK: 'सप्ताह',
+ WEEKS: 'सप्ताह',
+ MONTH: 'महीना',
+ MONTHS: 'महीने',
+ YEAR: 'साल',
+ YEARS: 'साल',
+ },
+ HALF: 'आधा',
+ NEXT: 'अगला',
+ THIS: 'यह',
+ AT: 'बजे',
+ IN: 'में',
+ FROM_NOW: 'अब से',
+ NEXT_YEAR: 'अगले साल',
+ MERIDIEM: { AM: 'सुबह', PM: 'शाम' },
+ RELATIVE: {
+ TOMORROW: 'कल',
+ DAY_AFTER_TOMORROW: 'परसों',
+ NEXT_WEEK: 'अगले सप्ताह',
+ NEXT_MONTH: 'अगले महीने',
+ THIS_WEEKEND: 'इस सप्ताहांत',
+ NEXT_WEEKEND: 'अगले सप्ताहांत',
+ },
+ TIME_OF_DAY: {
+ MORNING: 'सुबह',
+ AFTERNOON: 'दोपहर',
+ EVENING: 'शाम',
+ NIGHT: 'रात',
+ NOON: 'दोपहर',
+ MIDNIGHT: 'आधी रात',
+ },
+ WORD_NUMBERS: {
+ ONE: 'एक',
+ TWO: 'दो',
+ THREE: 'तीन',
+ FOUR: 'चार',
+ FIVE: 'पाँच',
+ SIX: 'छह',
+ SEVEN: 'सात',
+ EIGHT: 'आठ',
+ NINE: 'नौ',
+ TEN: 'दस',
+ TWELVE: 'बारह',
+ FIFTEEN: 'पंद्रह',
+ TWENTY: 'बीस',
+ THIRTY: 'तीस',
+ },
+ };
+
+ describe('P1: short non-English tokens must NOT produce spurious half-duration suggestions', () => {
+ it('Arabic "غد" does not produce half-duration suggestions', () => {
+ const results = generateDateSuggestions('غد', now, {
+ translations: arTranslations,
+ locale: 'ar',
+ });
+ const halfLabels = results.filter(r => /half/i.test(r.label));
+ expect(halfLabels).toHaveLength(0);
+ });
+
+ it('Hindi "सु" does not produce half-duration suggestions', () => {
+ const results = generateDateSuggestions('सु', now, {
+ translations: hiTranslations,
+ locale: 'hi',
+ });
+ const halfLabels = results.filter(r => /half/i.test(r.label));
+ expect(halfLabels).toHaveLength(0);
+ });
+ });
+
+ describe('P1: MERIDIEM vs TIME_OF_DAY — "tomorrow morning" must parse in locales where AM = morning', () => {
+ it('Arabic "غداً صباحاً" (tomorrow morning) parses correctly', () => {
+ const results = generateDateSuggestions('غداً صباحاً', now, {
+ translations: arTranslations,
+ locale: 'ar',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ const first = results[0];
+ expect(first.date.getDate()).toBe(17);
+ expect(first.date.getHours()).toBe(9);
+ });
+
+ it('Hindi "कल सुबह" (tomorrow morning) parses correctly', () => {
+ const results = generateDateSuggestions('कल सुबह', now, {
+ translations: hiTranslations,
+ locale: 'hi',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ const first = results[0];
+ expect(first.date.getDate()).toBe(17);
+ expect(first.date.getHours()).toBe(9);
+ });
+ });
+
+ describe('basic localized parsing still works', () => {
+ it('Arabic "غداً" (tomorrow) parses to tomorrow 9am', () => {
+ const results = generateDateSuggestions('غداً', now, {
+ translations: arTranslations,
+ locale: 'ar',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(17);
+ });
+
+ it('Hindi "कल" (tomorrow) parses to tomorrow', () => {
+ const results = generateDateSuggestions('कल', now, {
+ translations: hiTranslations,
+ locale: 'hi',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(17);
+ });
+
+ it('Arabic "غداً،" (tomorrow with attached Arabic comma) parses correctly', () => {
+ const results = generateDateSuggestions('غداً،', now, {
+ translations: arTranslations,
+ locale: 'ar',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(17);
+ });
+ });
+
+ describe('localized Unicode digits', () => {
+ it('Arabic-Indic digits parse in time expressions', () => {
+ const results = generateDateSuggestions('غداً الساعة ١٢:٣٠', now, {
+ translations: arTranslations,
+ locale: 'ar',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(17);
+ expect(results[0].date.getHours()).toBe(12);
+ expect(results[0].date.getMinutes()).toBe(30);
+ });
+
+ it('Devanagari digits parse in time-of-day expressions', () => {
+ const results = generateDateSuggestions('कल सुबह ६', now, {
+ translations: hiTranslations,
+ locale: 'hi',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(17);
+ expect(results[0].date.getHours()).toBe(6);
+ });
+ });
+});
+
+describe('no-space duration suggestions', () => {
+ it('"1d" generates day suggestions', () => {
+ const results = generateDateSuggestions('1d', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 days');
+ });
+
+ it('"2min" generates minute suggestions', () => {
+ const results = generateDateSuggestions('2min', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('2 minutes');
+ });
+
+ it('"1h" generates hour suggestions', () => {
+ const results = generateDateSuggestions('1h', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 hour');
+ });
+
+ it('"2ho" generates hour suggestions (partial match)', () => {
+ const results = generateDateSuggestions('2ho', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('2 hours');
+ });
+
+ it('"3w" generates week suggestions', () => {
+ const results = generateDateSuggestions('3w', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('3 weeks');
+ });
+
+ it('"1h30m" generates compound suggestion', () => {
+ const results = generateDateSuggestions('1h30m', now);
+ expect(results.length).toBeGreaterThan(0);
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/snoozeHelpers.spec.js b/app/javascript/dashboard/helper/specs/snoozeHelpers.spec.js
index 0fb87eb41..5c0b9db59 100644
--- a/app/javascript/dashboard/helper/specs/snoozeHelpers.spec.js
+++ b/app/javascript/dashboard/helper/specs/snoozeHelpers.spec.js
@@ -7,6 +7,7 @@ import {
setHoursToNine,
snoozedReopenTimeToTimestamp,
shortenSnoozeTime,
+ generateSnoozeSuggestions,
} from '../snoozeHelpers';
describe('#Snooze Helpers', () => {
@@ -91,12 +92,26 @@ describe('#Snooze Helpers', () => {
});
describe('snoozedReopenTime', () => {
- it('should return nil if snoozedUntil is nil', () => {
- expect(snoozedReopenTime(null)).toEqual(null);
+ beforeEach(() => {
+ vi.useFakeTimers();
+ vi.setSystemTime(new Date('2024-01-01T12:00:00Z'));
});
- it('should return formatted date if snoozedUntil is not nil', () => {
+ afterEach(() => {
+ vi.useRealTimers();
+ });
+
+ it('should return formatted date with year if snoozedUntil is not in current year', () => {
+ // Input is 09:00 UTC.
+ // If your environment is UTC, this will be 9.00am.
expect(snoozedReopenTime('2023-06-07T09:00:00.000Z')).toEqual(
+ '7 Jun 2023, 9.00am'
+ );
+ });
+
+ it('should return formatted date without year if snoozedUntil is in current year', () => {
+ // This uses 2024 because we mocked the system time above
+ expect(snoozedReopenTime('2024-06-07T09:00:00.000Z')).toEqual(
'7 Jun, 9.00am'
);
});
@@ -150,4 +165,56 @@ describe('#Snooze Helpers', () => {
expect(shortenSnoozeTime(null)).toEqual(null);
});
});
+
+ describe('generateSnoozeSuggestions label expansion', () => {
+ const now = new Date('2023-06-16T10:00:00');
+
+ it('expands abbreviated units: "1d" → "1 Day"', () => {
+ const results = generateSnoozeSuggestions('1d', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 day');
+ });
+
+ it('expands abbreviated units: "2 d" → "2 Days"', () => {
+ const results = generateSnoozeSuggestions('2 d', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('2 days');
+ });
+
+ it('expands abbreviated units: "1h" → "1 Hour"', () => {
+ const results = generateSnoozeSuggestions('1h', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 hour');
+ });
+
+ it('expands abbreviated units: "2min" → "2 Minutes"', () => {
+ const results = generateSnoozeSuggestions('2min', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('2 minutes');
+ });
+
+ it('handles singular: "1 hours" → "1 Hour"', () => {
+ const results = generateSnoozeSuggestions('1 hours', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 hour');
+ });
+
+ it('handles singular: "1 minutes" → "1 Minute"', () => {
+ const results = generateSnoozeSuggestions('1 minutes', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 minute');
+ });
+
+ it('keeps plural for non-1: "2 days" → "2 Days"', () => {
+ const results = generateSnoozeSuggestions('2 days', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('2 days');
+ });
+
+ it('expands compound: "1h30m" → "1 Hour 30 Minutes"', () => {
+ const results = generateSnoozeSuggestions('1h30m', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 hour 30 minutes');
+ });
+ });
});
diff --git a/app/javascript/dashboard/i18n/locale/am/agentBots.json b/app/javascript/dashboard/i18n/locale/am/agentBots.json
index d3a0bb991..dc92016ab 100644
--- a/app/javascript/dashboard/i18n/locale/am/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/am/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/am/agentMgmt.json b/app/javascript/dashboard/i18n/locale/am/agentMgmt.json
index 448994e69..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/am/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/am/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/am/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/am/attributesMgmt.json
index 78886f451..e83950b14 100644
--- a/app/javascript/dashboard/i18n/locale/am/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/am/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/am/automation.json b/app/javascript/dashboard/i18n/locale/am/automation.json
index 43245a1d5..22a9735f4 100644
--- a/app/javascript/dashboard/i18n/locale/am/automation.json
+++ b/app/javascript/dashboard/i18n/locale/am/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/am/bulkActions.json b/app/javascript/dashboard/i18n/locale/am/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/am/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/am/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/am/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/am/cannedMgmt.json
index 3ff246f06..246d3f5b3 100644
--- a/app/javascript/dashboard/i18n/locale/am/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/am/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/am/chatlist.json b/app/javascript/dashboard/i18n/locale/am/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/am/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/am/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/am/contact.json b/app/javascript/dashboard/i18n/locale/am/contact.json
index 0c1ecd380..cb7465350 100644
--- a/app/javascript/dashboard/i18n/locale/am/contact.json
+++ b/app/javascript/dashboard/i18n/locale/am/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "በአሁኑ ጊዜ ንቁ እውቂያዎች የሉም 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/am/conversation.json b/app/javascript/dashboard/i18n/locale/am/conversation.json
index f82d4ba23..5e417a884 100644
--- a/app/javascript/dashboard/i18n/locale/am/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/am/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "ውይይት በተሳካ ሁኔታ ተሰርዟል",
"FAIL_DELETE_CONVERSATION": "ውይይትን መሰረዝ አልተቻለም! እንደገና ይሞክሩ",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/am/customRole.json b/app/javascript/dashboard/i18n/locale/am/customRole.json
index b7b48b5e7..f7c1709bd 100644
--- a/app/javascript/dashboard/i18n/locale/am/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/am/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/am/datePicker.json b/app/javascript/dashboard/i18n/locale/am/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/am/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/am/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/general.json b/app/javascript/dashboard/i18n/locale/am/general.json
index 283cf79c4..bdc7cb8a4 100644
--- a/app/javascript/dashboard/i18n/locale/am/general.json
+++ b/app/javascript/dashboard/i18n/locale/am/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/generalSettings.json b/app/javascript/dashboard/i18n/locale/am/generalSettings.json
index d924bffbd..fab8020e2 100644
--- a/app/javascript/dashboard/i18n/locale/am/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/am/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/am/helpCenter.json b/app/javascript/dashboard/i18n/locale/am/helpCenter.json
index 0ab8d62ff..69a72f163 100644
--- a/app/javascript/dashboard/i18n/locale/am/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/am/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json
index 2efba4716..608e5c804 100644
--- a/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
diff --git a/app/javascript/dashboard/i18n/locale/am/integrationApps.json b/app/javascript/dashboard/i18n/locale/am/integrationApps.json
index b91b434f7..828f4ea67 100644
--- a/app/javascript/dashboard/i18n/locale/am/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/am/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/am/integrations.json b/app/javascript/dashboard/i18n/locale/am/integrations.json
index ef3e94e42..fe1891064 100644
--- a/app/javascript/dashboard/i18n/locale/am/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/am/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/am/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/am/labelsMgmt.json
index 705b18d0e..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/am/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/am/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/am/macros.json b/app/javascript/dashboard/i18n/locale/am/macros.json
index fcb409f34..e12f0ca73 100644
--- a/app/javascript/dashboard/i18n/locale/am/macros.json
+++ b/app/javascript/dashboard/i18n/locale/am/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/am/mfa.json b/app/javascript/dashboard/i18n/locale/am/mfa.json
index f7556fdcf..b03917bcd 100644
--- a/app/javascript/dashboard/i18n/locale/am/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/am/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/am/report.json b/app/javascript/dashboard/i18n/locale/am/report.json
index dbf59f603..2ffa0ef11 100644
--- a/app/javascript/dashboard/i18n/locale/am/report.json
+++ b/app/javascript/dashboard/i18n/locale/am/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/am/settings.json b/app/javascript/dashboard/i18n/locale/am/settings.json
index 920da6f53..cf56caf3d 100644
--- a/app/javascript/dashboard/i18n/locale/am/settings.json
+++ b/app/javascript/dashboard/i18n/locale/am/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancel"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/am/signup.json b/app/javascript/dashboard/i18n/locale/am/signup.json
index b0e5f5d27..4a90fd322 100644
--- a/app/javascript/dashboard/i18n/locale/am/signup.json
+++ b/app/javascript/dashboard/i18n/locale/am/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/am/sla.json b/app/javascript/dashboard/i18n/locale/am/sla.json
index 0da7873be..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/am/sla.json
+++ b/app/javascript/dashboard/i18n/locale/am/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/am/snooze.json b/app/javascript/dashboard/i18n/locale/am/snooze.json
new file mode 100644
index 000000000..2d9a876aa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/am/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "year",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/am/teamsSettings.json b/app/javascript/dashboard/i18n/locale/am/teamsSettings.json
index f0a950fd1..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/am/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/am/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/ar/agentBots.json b/app/javascript/dashboard/i18n/locale/ar/agentBots.json
index 4fec1e414..97fd7d87e 100644
--- a/app/javascript/dashboard/i18n/locale/ar/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ar/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "جار جلب المحرر...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "النظام",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "جار جلب الروبوتات...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "رابط Webhook"
+ "URL": "رابط Webhook",
+ "ACTIONS": "الإجراءات"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/ar/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ar/agentMgmt.json
index b24281d42..a82cbf859 100644
--- a/app/javascript/dashboard/i18n/locale/ar/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ar/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "المدير",
"AGENT": "وكيل الدعم"
},
+ "COUNT": "{n} وكيل | {n} وكلاء",
"LIST": {
"404": "لا يوجد وكلاء دعم مرتبطين بهذا الحساب",
"TITLE": "إدارة وكلاء الدعم في فريقك",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "تعذر الاتصال بالخادم، الرجاء المحاولة مرة أخرى لاحقاً"
}
},
+ "SEARCH_PLACEHOLDER": "البحث عن وكلاء...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "لم يتم العثور على النتائج."
},
diff --git a/app/javascript/dashboard/i18n/locale/ar/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ar/attributesMgmt.json
index f78e0672c..0b28c1a80 100644
--- a/app/javascript/dashboard/i18n/locale/ar/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ar/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "جلب الصفات المخصصة",
"DESCRIPTION": "سمة مخصصة تتتبع تفاصيل إضافية حول جهات الاتصال أو المحادثات الخاصة بك - مثل خطة الاشتراك أو تاريخ الشراء الأول. يمكنك إضافة أنواع مختلفة من السمات المخصصة، مثل النص أو القوائم أو الأرقام، لالتقاط المعلومات المحددة التي تحتاجها.",
"LEARN_MORE": "تعرف على المزيد حول السمات المخصصة",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "البحث عن صفات...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "المحادثات",
"CONTACT": "جهات الاتصال"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "تمكين التحقق من صحة regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/ar/auditLogs.json b/app/javascript/dashboard/i18n/locale/ar/auditLogs.json
index aacd85155..8f627ce16 100644
--- a/app/javascript/dashboard/i18n/locale/ar/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ar/auditLogs.json
@@ -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}"
diff --git a/app/javascript/dashboard/i18n/locale/ar/automation.json b/app/javascript/dashboard/i18n/locale/ar/automation.json
index abdbcbe32..509cd7313 100644
--- a/app/javascript/dashboard/i18n/locale/ar/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ar/automation.json
@@ -3,8 +3,11 @@
"HEADER": "الأتمتة",
"DESCRIPTION": "ويمكن للأتمتة أن تحل محل وتبسط العمليات القائمة التي تتطلب جهداً يدوياً، مثل إضافة تسميات وتعيين المحادثات إلى أنسب وكيل. ويسمح ذلك للفريق بالتركيز على مواطن قوتهم مع تقليل الوقت الذي يقضيه في المهام الروتينية.",
"LEARN_MORE": "تعلم المزيد عن الأتمتة",
- "HEADER_BTN_TXT": "إضافة قاعدة أتمتة",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "جلب قواعد الأتمتة",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "إضافة قاعدة أتمتة",
"SUBMIT": "إنشاء",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "الاسم",
- "DESCRIPTION": "الوصف",
"ACTIVE": "مفعل",
- "CREATED_ON": "تم إنشاؤها في"
+ "CREATED_ON": "تم إنشاؤها في",
+ "ACTIONS": "الإجراءات"
},
"404": "لم يتم العثور على قواعد أتمتة"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "تغيير الأولوية",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "فتح المحادثة"
+ "OPEN_CONVERSATION": "فتح المحادثة",
+ "PENDING_CONVERSATION": "تحديد المحادثة كمعلقة"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/ar/bulkActions.json b/app/javascript/dashboard/i18n/locale/ar/bulkActions.json
index 474983317..a5f566a44 100644
--- a/app/javascript/dashboard/i18n/locale/ar/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ar/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "تم تحديث حالة المحادثة بنجاح.",
"UPDATE_FAILED": "فشل تحديث المحادثات، الرجاء المحاولة مرة أخرى."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "لا يمكن حل المحادثات بسبب عدم وجود السمات المطلوبة",
+ "PARTIAL_SUCCESS": "بعض المحادثات تحتاج إلى سمات مطلوبة قبل الحل وتم تخطيها"
+ },
"LABELS": {
"ASSIGN_LABELS": "إضافة وسم",
"NO_LABELS_FOUND": "لم يتم العثور على تصنيفات",
diff --git a/app/javascript/dashboard/i18n/locale/ar/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ar/cannedMgmt.json
index e7e61b3ad..8bd936746 100644
--- a/app/javascript/dashboard/i18n/locale/ar/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ar/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "الردود الجاهزة",
"LEARN_MORE": "معرفة المزيد عن الاستجابات المعلبة",
"DESCRIPTION": "الردود المسبقة هي قوالب رد مكتوبة مسبقاً تساعدك على الرد بسرعة على محادثة. يمكن للوكلاء كتابة حرف '/' يتبعه الرمز المختصر لإدراج رد مسبق أثناء محادثة. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "إضافة رد جاهز",
"LOADING": "جاري جلب الردود الجاهزة...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "لا توجد عناصر مطابقة لهذا الاستعلام.",
"LIST": {
"404": "لا توجد ردود جاهزة متوفرة في هذا الحساب.",
diff --git a/app/javascript/dashboard/i18n/locale/ar/chatlist.json b/app/javascript/dashboard/i18n/locale/ar/chatlist.json
index 09b34efaa..ef2f62bd9 100644
--- a/app/javascript/dashboard/i18n/locale/ar/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ar/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "الرد المعلق: الأقصر أولاً"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -104,7 +107,7 @@
"CONTENT": "Shared contact"
},
"embed": {
- "CONTENT": "Embedded content"
+ "CONTENT": "المحتوى المضمن"
}
},
"CHAT_SORT_BY_FILTER": {
diff --git a/app/javascript/dashboard/i18n/locale/ar/companies.json b/app/javascript/dashboard/i18n/locale/ar/companies.json
index 95a078caa..e76f8a8fa 100644
--- a/app/javascript/dashboard/i18n/locale/ar/companies.json
+++ b/app/javascript/dashboard/i18n/locale/ar/companies.json
@@ -1,33 +1,33 @@
{
"COMPANIES": {
- "HEADER": "Companies",
+ "HEADER": "الشركات",
"SORT_BY": {
"LABEL": "ترتيب حسب",
"OPTIONS": {
"NAME": "الاسم",
"DOMAIN": "النطاق",
"CREATED_AT": "تم إنشاؤها في",
- "CONTACTS_COUNT": "Contacts count"
+ "CONTACTS_COUNT": "عدد جهات الاتصال"
}
},
"ORDER": {
- "LABEL": "Order",
+ "LABEL": "ترتيب",
"OPTIONS": {
- "ASCENDING": "Ascending",
+ "ASCENDING": "تصاعدي",
"DESCENDING": "Descending"
}
},
- "SEARCH_PLACEHOLDER": "Search companies...",
- "LOADING": "Loading companies...",
- "UNNAMED": "Unnamed Company",
- "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "SEARCH_PLACEHOLDER": "البحث في الشركات...",
+ "LOADING": "جاري تحميل الشركات...",
+ "UNNAMED": "شركة بلا اسم",
+ "CONTACTS_COUNT": "جهة اتصال {n} | {n} جهات الاتصال",
"EMPTY_STATE": {
- "TITLE": "No companies found"
+ "TITLE": "لم يتم العثور على شركات"
}
},
"COMPANIES_LAYOUT": {
"PAGINATION_FOOTER": {
- "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ "SHOWING": "عرض {startItem} - {endItem} من {totalItems} شركة | عرض {startItem} – {endItem} من الشركات {totalItems}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/contact.json b/app/javascript/dashboard/i18n/locale/ar/contact.json
index f9b059614..23e370fe1 100644
--- a/app/javascript/dashboard/i18n/locale/ar/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ar/contact.json
@@ -18,8 +18,8 @@
"CREATED_AT_LABEL": "تم إنشاؤها",
"NEW_MESSAGE": "رسالة جديدة",
"CALL": "Call",
- "CALL_INITIATED": "Calling the contact…",
- "CALL_FAILED": "Unable to start the call. Please try again.",
+ "CALL_INITIATED": "جار الاتصال بجهة الاتصال…",
+ "CALL_FAILED": "تعذر بدء المكالمة. الرجاء المحاولة مرة أخرى.",
"VOICE_INBOX_PICKER": {
"TITLE": "Choose a voice inbox"
},
@@ -457,8 +457,11 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
- "PLACEHOLDER": "Add TikTok"
+ "PLACEHOLDER": "إضافة TikTok"
},
"LINKEDIN": {
"PLACEHOLDER": "Add LinkedIn"
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "لا توجد جهات اتصال تطابق بحثك 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "تحميل المزيد"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "تعيين التسميات",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "إلى:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "الموضوع :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "نسخة من البريد:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "نسخة خفية من البريد:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "نسخة خفية من البريد"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/ar/conversation.json b/app/javascript/dashboard/i18n/locale/ar/conversation.json
index 493471c82..57722ef01 100644
--- a/app/javascript/dashboard/i18n/locale/ar/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ar/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "هذه الرسالة غير مدعومة، يمكنك مشاهدة هذه الرسالة على تطبيق فيسبوك (Messenger).",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "هذه الرسالة غير مدعومة، يمكنك عرض هذه الرسالة على تطبيق Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "هذه الرسالة غير مدعومة. يمكنك مشاهدة هذه الرسالة على تطبيق TikTok.",
"SUCCESS_DELETE_MESSAGE": "تم حذف الرسالة بنجاح",
"FAIL_DELETE_MESSSAGE": "تعذر حذف الرسالة! حاول مرة أخرى",
"NO_RESPONSE": "لا توجد استجابة",
@@ -170,9 +171,13 @@
"FAILED": "تعذر تعيين الوكيل. الرجاء المحاولة مرة أخرى."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "تعيين تسمية ##{labelName} لمعرف المحادثة {conversationId}",
+ "SUCCESFUL": "تعيين تسمية #{labelName} لمعرف المحادثة {conversationId}",
"FAILED": "تعذر تعيين التسمية. الرجاء المحاولة مرة أخرى."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "الفريق المعين \"{team}\" لمعرف المحادثة {conversationId}",
"FAILED": "تعذر تعيين الفريق. الرجاء المحاولة مرة أخرى."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "تعطيل التوقيع",
"MSG_INPUT": "زر Shift + Enter لإضافة سطر جديد. ابدأ بزر / للاختيار من الردود الجاهزة.",
"PRIVATE_MSG_INPUT": "زر Shift + Enter لإضافة سطر جديد. سيكون هذا مرئياً للوكلاء فقط",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "لم يتم تكوين توقيع الرسالة، الرجاء تكوينه في إعدادات الملف الشخصي.",
+ "COPILOT_MSG_INPUT": "إعطاء copilot أوامر إضافية، أو السؤال عن أي شيء آخر... اضغط على مفتاح الإدخال لإرسال المتابعة",
"CLICK_HERE": "انقر هنا للتحديث",
"WHATSAPP_TEMPLATES": "قوالب الواتساب"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "اسحب و أسقط هنا للإرفاق",
"START_AUDIO_RECORDING": "بدء التسجيل الصوتي",
"STOP_AUDIO_RECORDING": "إيقاف التسجيل الصوتي",
- "": "",
+ "COPILOT_THINKING": "Copilot يفكر",
"EMAIL_HEAD": {
"TO": "إلى",
"ADD_BCC": "إضافة bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "حجم الملف يتجاوز حد الاقصى وهو {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE}",
+ "FILE_TYPE_NOT_SUPPORTED": "هذا النوع من الملفات {fileName} غير مدعوم في هذه المحادثة",
"MESSAGE_ERROR": "غير قادر على إرسال هذه الرسالة، الرجاء المحاولة مرة أخرى لاحقاً",
"SENT_BY": "أرسلت بواسطة:",
"BOT": "رد آلي",
+ "NATIVE_APP": "تطبيق الجوال",
+ "NATIVE_APP_ADVISORY": "تم إرسال هذه الرسالة من تطبيق الجوال. رد من Chatwoot للحفاظ على نافذة الرسالة.",
"SEND_FAILED": "تعذر إرسال الرسالة! حاول مرة أخرى",
"TRY_AGAIN": "إعادة المحاولة",
"ASSIGNMENT": {
@@ -277,14 +289,14 @@
"COPILOT": "Copilot"
},
"VOICE_WIDGET": {
- "INCOMING_CALL": "Incoming call",
- "OUTGOING_CALL": "Outgoing call",
- "CALL_IN_PROGRESS": "Call in progress",
- "NOT_ANSWERED_YET": "Not answered yet",
- "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
- "REJECT_CALL": "Reject",
- "JOIN_CALL": "Join call",
- "END_CALL": "End call"
+ "INCOMING_CALL": "مكالمة واردة",
+ "OUTGOING_CALL": "مكالمة صادرة",
+ "CALL_IN_PROGRESS": "مكالمة قيد الاتصال",
+ "NOT_ANSWERED_YET": "لم يتم الرد بعد",
+ "HANDLED_IN_ANOTHER_TAB": "يتم التعامل معها في علامة تبويب أخرى",
+ "REJECT_CALL": "رفض",
+ "JOIN_CALL": "انضم إلى المكالمة",
+ "END_CALL": "إنهاء المكالمة"
}
},
"EMAIL_TRANSCRIPT": {
@@ -294,6 +306,7 @@
"CANCEL": "إلغاء",
"SEND_EMAIL_SUCCESS": "تم إرسال نص المحادثة بنجاح",
"SEND_EMAIL_ERROR": "حدث خطأ، الرجاء المحاولة مرة أخرى",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "إرسال نص المحادثة إلى العميل",
"SEND_TO_AGENT": "إرسال نص المحادثة إلى وكيل خدمة العملاء المعين",
diff --git a/app/javascript/dashboard/i18n/locale/ar/customRole.json b/app/javascript/dashboard/i18n/locale/ar/customRole.json
index 501a01e77..54b87ef1f 100644
--- a/app/javascript/dashboard/i18n/locale/ar/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/ar/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "لا توجد عناصر مطابقة لهذا الاستعلام.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/ar/datePicker.json b/app/javascript/dashboard/i18n/locale/ar/datePicker.json
index bef157e73..6c89206b5 100644
--- a/app/javascript/dashboard/i18n/locale/ar/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/ar/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "تطبيق",
"CLEAR_BUTTON": "مسح",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "آخر 3 أشهر",
"LAST_6_MONTHS": "آخر 6 أشهر",
"LAST_YEAR": "العام الماضي",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "تحديد نطاق التاريخ"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/general.json b/app/javascript/dashboard/i18n/locale/ar/general.json
index 4c5df986b..39319483a 100644
--- a/app/javascript/dashboard/i18n/locale/ar/general.json
+++ b/app/javascript/dashboard/i18n/locale/ar/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "أغلق",
"BETA": "تجريبي",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "قبول",
+ "DISCARD": "Discard",
+ "PREFERRED": "المفضلة"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "نعم",
+ "NO": "لا"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/generalSettings.json b/app/javascript/dashboard/i18n/locale/ar/generalSettings.json
index 5616421fd..0a4e56628 100644
--- a/app/javascript/dashboard/i18n/locale/ar/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ar/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "البحث أو القفز إلى",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "عام",
"REPORTS": "التقارير",
diff --git a/app/javascript/dashboard/i18n/locale/ar/helpCenter.json b/app/javascript/dashboard/i18n/locale/ar/helpCenter.json
index 13265de6c..29ae64c9b 100644
--- a/app/javascript/dashboard/i18n/locale/ar/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ar/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json
index e3d8f0549..42499f8a3 100644
--- a/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "قنوات التواصل",
"DESCRIPTION": "القناة هي وضع الاتصال الذي يختاره العميل للتفاعل معك. صندوق الوارد هو المكان الذي تدير فيه التفاعلات لقناة معينة. ويمكن أن تشمل الاتصالات من مصادر مختلفة مثل البريد الإلكتروني، والمحادثة الحية، ووسائط الإعلام الاجتماعية.",
"LEARN_MORE": "تعلم المزيد عن صناديق البريد",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -58,11 +61,11 @@
"DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TIKTOK": {
- "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
- "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
- "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
- "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
- "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
+ "CONTINUE_WITH_TIKTOK": "المتابعة مع تيكتوك",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "الاتصال بحسابك في تيكتوك",
+ "HELP": "لإضافة ملفك الشخصي على TikTok كقناة، عليك مصادقة ملفك الشخصي على TikTok بالنقر على \"متابعة مع TikTok\".",
+ "ERROR_MESSAGE": "حدث خطأ أثناء الاتصال بـ TikTok، يرجى المحاولة مرة أخرى",
+ "ERROR_AUTH": "حدث خطأ أثناء الاتصال بـ TikTok، يرجى المحاولة مرة أخرى"
},
"TWITTER": {
"HELP": "لإضافة حساب تويتر الخاص بك كقناة تواصل، تحتاج إلى مصادقة حسابك على تويتر بك بالنقر على زر \"تسجيل الدخول باستخدام تويتر\" ",
@@ -389,10 +392,10 @@
"ERROR_MESSAGE": "لم نتمكن من حفظ قناة البريد الإلكتروني"
},
"FINISH_MESSAGE": "بدء إعادة توجيه رسائل البريد الإلكتروني الخاصة بك إلى عنوان البريد الإلكتروني التالي.",
- "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
- "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "FINISH_MESSAGE_NO_FORWARDING": "تم إنشاء بريدك الإلكتروني بنجاح! تحتاج إلى تكوين بيانات اعتماد SMTP و IMAP لإرسال واستقبال رسائل البريد الإلكتروني. بدون هذه الإعدادات، لن يتم معالجة رسائل البريد الإلكتروني.",
+ "FORWARDING_ADDRESS_LABEL": "إعادة توجيه رسائل البريد الإلكتروني إلى هذا العنوان",
"CONFIGURE_SMTP_IMAP_LINK": "اضغط هنا",
- "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
+ "CONFIGURE_SMTP_IMAP_TEXT": " لتهيئة إعدادات IMAP و SMTP"
},
"LINE_CHANNEL": {
"TITLE": "قناة LINE",
@@ -480,7 +483,7 @@
},
"TIKTOK": {
"TITLE": "TikTok",
- "DESCRIPTION": "Connect your TikTok account"
+ "DESCRIPTION": "ربط حسابك في TikTok"
},
"VOICE": {
"TITLE": "Voice",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "حفظ"
}
@@ -589,8 +592,10 @@
"DISABLED": "معطّل"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "مفعل",
- "DISABLED": "معطّل"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "تفعيل"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "تقييم رضاء العملاء"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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": "الإعدادات",
@@ -694,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": "إضافة أو إزالة وكلاء من صندوق الوارد هذا",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "تمكين/تعطيل إظهار اسم الوكيل في البريد الإلكتروني، إذا تم تعطيله فسيظهر اسم المنشأة",
"ENABLE_CONTINUITY_VIA_EMAIL": "تمكين استمرارية المحادثة عبر البريد الإلكتروني",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "المحادثات ستستمر عبر البريد الإلكتروني إذا كان عنوان البريد الإلكتروني لجهة الاتصال متاحاً.",
- "LOCK_TO_SINGLE_CONVERSATION": "قفل إلى محادثة واحدة",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "تمكين أو تعطيل محادثات متعددة لنفس جهة الاتصال في هذا البريد الوارد",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "إعدادات قناة التواصل",
"INBOX_UPDATE_SUB_TEXT": "تحديث إعدادات قناة التواصل",
"AUTO_ASSIGNMENT_SUB_TEXT": "تمكين أو تعطيل الإسناد التلقائي للمحادثات الجديدة إلى الموظفين المضافين إلى قناة التواصل هذه.",
@@ -758,6 +775,7 @@
"LABEL": "مركز المساعدة",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "لا شيء",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"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": "توزيع الجدولة الدائرية (Round robin)",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment 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": "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": "انتهت صلاحية اتصال الفيسبوك الخاص بك، يرجى إعادة الاتصال بصفحة الفيسبوك الخاصة بك لمواصلة الخدمات",
@@ -809,34 +874,48 @@
"PLACEHOLDER": "Please enter a message to show users with the form"
},
"BUTTON_TEXT": {
- "LABEL": "Button text",
- "PLACEHOLDER": "Please rate us"
+ "LABEL": "نص الزر",
+ "PLACEHOLDER": "يرجى تقييمنا"
},
"LANGUAGE": {
"LABEL": "اللغة",
- "PLACEHOLDER": "Select template language"
+ "PLACEHOLDER": "اختر لغة القالب"
},
"MESSAGE_PREVIEW": {
- "LABEL": "Message preview",
- "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ "LABEL": "معاينة الرسالة",
+ "TOOLTIP": "قد يختلف هذا قليلاً عند تقديمه على منصة WhatsApp."
},
"TEMPLATE_STATUS": {
- "APPROVED": "Approved by WhatsApp",
- "PENDING": "Pending WhatsApp approval",
- "REJECTED": "Meta rejected the template",
- "DEFAULT": "Needs WhatsApp approval",
- "NOT_FOUND": "The template does not exist in the Meta platform."
+ "APPROVED": "معتمد بواسطة WhatsApp",
+ "PENDING": "في انتظار موافقة WhatsApp",
+ "REJECTED": "Meta رفضت القالب",
+ "DEFAULT": "يحتاج موافقة WhatsApp",
+ "NOT_FOUND": "هذا القالب غير موجود في منصة ميتا."
},
"TEMPLATE_CREATION": {
- "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
- "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ "SUCCESS_MESSAGE": "تم إنشاء قالب WhatsApp بنجاح وإرساله للموافقة عليه",
+ "ERROR_MESSAGE": "فشل إنشاء قالب WhatsApp"
},
"TEMPLATE_UPDATE_DIALOG": {
- "TITLE": "Edit survey details",
- "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
- "CONFIRM": "Create new template",
+ "TITLE": "تعديل تفاصيل الاستبيان",
+ "DESCRIPTION": "سوف نقوم بحذف القالب السابق ونقوم بإنشاء قالب جديد حيث سيتم إرساله مرة أخرى للاعتماد من قبل Whatsapp",
+ "CONFIRM": "إنشاء قالب جديد",
"CANCEL": "العودة للخلف"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "رسالة غير متاح للزائرين",
"TOGGLE_HELP": "تمكين توفر العمل سيظهر الساعات المتاحة على أداة الدردشة المباشرة حتى لو كان جميع الوكلاء غير متصلين بالإنترنت. خارج الساعات المتاحة يمكن تحذير الزوار برسالة ونموذج ما قبل الدردشة.",
"DAY": {
+ "DAY": "اليوم",
+ "AVAILABILITY": "التوفر",
+ "HOURS": "Hours",
"ENABLE": "تمكين التوفر لهذا اليوم",
"UNAVAILABLE": "غير متوفر",
- "HOURS": "ساعات",
"VALIDATION_ERROR": "يجب أن يكون وقت البدء قبل وقت الإغلاق.",
"CHOOSE": "اختر"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "خلال يوم"
},
"WIDGET_COLOR_LABEL": "لون صندوق الدردشة",
- "WIDGET_BUBBLE_POSITION_LABEL": "موقع شعار اللايف شات",
- "WIDGET_BUBBLE_TYPE_LABEL": "شكل عرض اللايف شات",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "النوع:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "تحدث الينا",
- "LABEL": "عنوان ايقونة اللايف شات",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "تحدث الينا"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "افتراضي",
- "CHAT": "محادثة"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "عادة نقوم بالرد خلال بضع دقائق",
diff --git a/app/javascript/dashboard/i18n/locale/ar/integrationApps.json b/app/javascript/dashboard/i18n/locale/ar/integrationApps.json
index 112f8b750..bf102d23b 100644
--- a/app/javascript/dashboard/i18n/locale/ar/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ar/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "جلب التكاملات",
"NO_HOOK_CONFIGURED": "لا يوجد {integrationId} تكاملات مكونة في هذا الحساب.",
"HEADER": "التطبيقات",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "مفعل",
"DISABLED": "معطّل"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "جلب روابط التكامل",
"INBOX": "صندوق الوارد",
+ "ACTIONS": "الإجراءات",
"DELETE": {
"BUTTON_TEXT": "حذف"
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/integrations.json b/app/javascript/dashboard/i18n/locale/ar/integrations.json
index 9b9f957d8..c3f5e5b99 100644
--- a/app/javascript/dashboard/i18n/locale/ar/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ar/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot تتكامل مع أدوات وخدمات متعددة لتحسين كفاءة فريقك. استكشف القائمة أدناه لتكوين تطبيقاتك المفضلة.",
"LEARN_MORE": "معرفة المزيد عن التكاملات",
"LOADING": "جاري جلب التكاملات",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "لم يتم تمكين الكابتن على حسابك.",
"CLICK_HERE_TO_CONFIGURE": "انقر هنا للتهيئة",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "الأحداث المشتركة",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "إلغاء",
"DESC": "أحداث Webhook توفر لك معلومات في الوقت الحقيقي حول ما يحدث في حساب Chatwoot الخاص بك. الرجاء إدخال عنوان URL صالح لتكوين callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "حذف",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "تبسيط"
+ "SIMPLIFY": "تبسيط",
+ "CONFIDENT": "استخدام نبرة لطيفة",
+ "PROFESSIONAL": "استخدام نبرة احترافية",
+ "CASUAL": "استخدم نبرة عادية",
+ "STRAIGHTFORWARD": "استخدام نبرة مباشرة"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "تحسين الرد",
+ "IMPROVE_REPLY_SELECTION": "تحسين عملية الاختيار",
+ "CHANGE_TONE": {
+ "TITLE": "تغيير النبرة",
+ "OPTIONS": {
+ "PROFESSIONAL": "مهني",
+ "CASUAL": "عادية",
+ "STRAIGHTFORWARD": "مباشر",
+ "CONFIDENT": "لطيفة",
+ "FRIENDLY": "ودي"
+ }
+ },
+ "GRAMMAR": "أصلاح القواعد النحوية والإملائية",
+ "SUGGESTION": "اقترح رداً",
+ "SUMMARIZE": "تلخيص المحادثة",
+ "ASK_COPILOT": "إسأل المساعد"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "تسمح تطبيقات لوحة التحكم للمنظمات بتضمين تطبيق داخل لوحة التحكم لتوفير السياق لوكلاء دعم العملاء. هذه الميزة تسمح لك بإنشاء تطبيق بشكل مستقل وإدراج لتوفير معلومات المستخدم أو طلباتهم أو سجل الدفع السابق.",
"LEARN_MORE": "معرفة المزيد حول تطبيقات لوحة التحكم",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "لا توجد تطبيقات لوحة التحكم التي تم تكوينها على هذا الحساب حتى الآن",
"LOADING": "جلب تطبيقات لوحة التحكم...",
"TABLE_HEADER": {
"NAME": "الاسم",
- "ENDPOINT": "نقطة الوصول"
+ "ENDPOINT": "نقطة الوصول",
+ "ACTIONS": "الإجراءات"
},
"EDIT_TOOLTIP": "تعديل التطبيق",
"DELETE_TOOLTIP": "حذف التطبيق"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "جلب مشاكل من Linear...",
"LOADING_ERROR": "حدث خطأ أثناء جلب المشكلات من Linear، الرجاء المحاولة مرة أخرى",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "نوشن",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "ولا يتوفر الكابتن AI إلا في خطط المؤسسة.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/ar/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ar/labelsMgmt.json
index bdbe10c33..e7acd7b1c 100644
--- a/app/javascript/dashboard/i18n/locale/ar/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ar/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "جار جلب الوسوم",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "معرفة المزيد حول التسميات",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "ابحث عن تصنيفات...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "لا توجد عناصر مطابقة لهذا الاستعلام",
"LIST": {
"404": "لا توجد وسوم متوفرة في هذا الحساب.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "الاسم",
"DESCRIPTION": "الوصف",
- "COLOR": "اللون"
+ "COLOR": "اللون",
+ "ACTION": "الإجراءات"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ar/macros.json b/app/javascript/dashboard/i18n/locale/ar/macros.json
index 323309916..496a9eea3 100644
--- a/app/javascript/dashboard/i18n/locale/ar/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ar/macros.json
@@ -3,9 +3,12 @@
"HEADER": "ماكروس",
"DESCRIPTION": "الماكرو هو مجموعة من الإجراءات المحفوظة التي تساعد وكلاء خدمة العملاء على إكمال المهام بسهولة. يمكن للوكلاء تحديد مجموعة من الإجراءات مثل وضع علامة على محادثة مع تسمية، وإرسال نص بريد إلكتروني، وتحديث سمة مخصصة، إلخ. ويمكنهم تنفيذ هذه الإجراءات بنقرة واحدة.",
"LEARN_MORE": "تعلم المزيد حول الماكرو",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "إضافة ماكرو جديد",
"HEADER_BTN_TXT_SAVE": "حفظ الماكرو",
"LOADING": "جاري جلب الماكروس",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "حدث خطأ ما. الرجاء المحاولة مرة أخرى",
"ORDER_INFO": "سيتم تشغيل الماكرو بالترتيب الذي تضيفه إجراءاتك. يمكنك إعادة ترتيبهم بسحبهم بواسطة المعالج بجانب كل عقدة.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "الاسم",
"CREATED BY": "تم إنشاؤها بواسطة",
"LAST_UPDATED_BY": "آخر تحديث بواسطة",
- "VISIBILITY": "الظهور"
+ "VISIBILITY": "الظهور",
+ "ACTIONS": "الإجراءات"
},
"404": "لم يتم العثور على الماكروس"
},
diff --git a/app/javascript/dashboard/i18n/locale/ar/mfa.json b/app/javascript/dashboard/i18n/locale/ar/mfa.json
index bffa8cefe..d4348e323 100644
--- a/app/javascript/dashboard/i18n/locale/ar/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/ar/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/ar/report.json b/app/javascript/dashboard/i18n/locale/ar/report.json
index ac8e46365..735d2ca13 100644
--- a/app/javascript/dashboard/i18n/locale/ar/report.json
+++ b/app/javascript/dashboard/i18n/locale/ar/report.json
@@ -3,7 +3,7 @@
"HEADER": "المحادثات",
"LOADING_CHART": "تحميل بيانات الرسم البياني...",
"NO_ENOUGH_DATA": "لم يتم جمع بيانات بقدر كافي لإنشاء التقرير، الرجاء المحاولة مرة أخرى لاحقاً.",
- "DOWNLOAD_AGENT_REPORTS": "تحميل تقارير وكيل",
+ "DOWNLOAD_CONVERSATION_REPORTS": "تنزيل تقارير المحادثات",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "نظرة عامة للوكلاء",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "جاري جلب بيانات الرسم البياني...",
"NO_ENOUGH_DATA": "لم يتم جمع بيانات بقدر كافي لإنشاء التقرير، الرجاء المحاولة مرة أخرى لاحقاً.",
"DOWNLOAD_AGENT_REPORTS": "تنزيل تقارير الوكيل",
"FILTER_DROPDOWN_LABEL": "اختر وكيل",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "البحث عن وكلاء"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "المحادثات",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "لم يتم جمع بيانات بقدر كافي لإنشاء التقرير، الرجاء المحاولة مرة أخرى لاحقاً.",
"DOWNLOAD_LABEL_REPORTS": "تحميل تقارير التسمية",
"FILTER_DROPDOWN_LABEL": "حدد التسمية",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "ابحث عن تصنيفات"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "المحادثات",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "اختر صندوق الوارد",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "المحادثات",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "نظرة عامة للفريق",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "تحميل بيانات الرسم البياني...",
"NO_ENOUGH_DATA": "لم يتم جمع بيانات بقدر كافي لإنشاء التقرير، الرجاء المحاولة مرة أخرى لاحقاً.",
"DOWNLOAD_TEAM_REPORTS": "تحميل تقارير الفريق",
"FILTER_DROPDOWN_LABEL": "اختيار فريق",
+ "FILTERS": {
+ "ADD_FILTER": "إضافة تصفية",
+ "CLEAR_ALL": "مسح الكل",
+ "NO_FILTER": "لا توجد عوامل تصفية متوفرة",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "البحث عن فريق"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "المحادثات",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "تقارير CSAT",
- "NO_RECORDS": "لا توجد ردود متوفرة على الدراسة الاستقصائية CSAT.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "تحميل تقرير رضاء خدمة العملاء",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "إضافة تصفية",
+ "CLEAR_ALL": "مسح الكل",
+ "NO_FILTER": "لا توجد عوامل تصفية متوفرة",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "البحث عن وكلاء",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "البحث عن فريق",
+ "RATINGS": "البحث في التقييمات"
+ },
"AGENTS": {
- "PLACEHOLDER": "اختر الوكلاء"
+ "LABEL": "وكيل الدعم"
+ },
+ "INBOXES": {
+ "LABEL": "صندوق الوارد"
+ },
+ "TEAMS": {
+ "LABEL": "الفريق"
+ },
+ "RATINGS": {
+ "LABEL": "التقييم"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "جهات الاتصال",
- "AGENT_NAME": "الوكيل المكلف",
+ "AGENT_NAME": "وكيل الدعم",
"RATING": "التقييم",
- "FEEDBACK_TEXT": "تعليق الملاحظات"
- }
+ "FEEDBACK_TEXT": "تعليق الملاحظات",
+ "CONVERSATION": "المحادثات",
+ "CUSTOMER": "عميل",
+ "RESPONSE": "الردود",
+ "HANDLED_BY": "تمت معالجتها بواسطة"
+ },
+ "UNKNOWN_CUSTOMER": "عميل غير معروف"
},
+ "NO_AGENT": "لم يتم تعيين وكيل",
+ "NO_FEEDBACK": "لا توجد ملاحظات مقدمة",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "إجمالي الردود",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "معدل الاستجابة",
"TOOLTIP": "العدد الإجمالي للردود / العدد الإجمالي لرسائل الاستقصاء التي أرسلتها CSAT * 100"
+ },
+ "RATING_DISTRIBUTION": "توزيع التقييم"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "ملاحظات المراجعة",
+ "PLACEHOLDER": "إضافة ملاحظات مراجعة حول هذا التقييم...",
+ "SAVE": "حفظ",
+ "CANCEL": "إلغاء",
+ "SAVING": "جاري الحفظ...",
+ "SAVED": "تم حفظ الملاحظات بنجاح",
+ "SAVE_ERROR": "فشل في حفظ الملاحظات",
+ "UPDATED_BY": "تم التحديث بواسطة {name} {time}",
+ "UPDATED_BY_LABEL": "تم التحديث بواسطة",
+ "PAYWALL": {
+ "TITLE": "قم بالترقية لإضافة ملاحظات المراجعة",
+ "AVAILABLE_ON": "ميزة مراجعة الملاحظات متاحة فقط في الخطط Business و Enterprise.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "الترقية الآن",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/ar/search.json b/app/javascript/dashboard/i18n/locale/ar/search.json
index e653f7934..eea4b1718 100644
--- a/app/javascript/dashboard/i18n/locale/ar/search.json
+++ b/app/javascript/dashboard/i18n/locale/ar/search.json
@@ -1,7 +1,7 @@
{
"SEARCH": {
"TABS": {
- "ALL": "All results",
+ "ALL": "كل النتائج",
"CONTACTS": "جهات الاتصال",
"CONVERSATIONS": "المحادثات",
"MESSAGES": "الرسائل",
@@ -21,48 +21,48 @@
"EMPTY_STATE_FULL": "لم يتم العثور على نتائج للطلب '{query}'",
"PLACEHOLDER_KEYBINDING": "/للتركيز",
"INPUT_PLACEHOLDER": "أكتب 3 أحرف أو أكثر للبحث",
- "RECENT_SEARCHES": "Recent searches",
+ "RECENT_SEARCHES": "عمليات البحث الأخيرة",
"CLEAR_ALL": "Clear all",
- "MOST_RECENT": "Most recent",
+ "MOST_RECENT": "الأحدث",
"EMPTY_STATE_DEFAULT": "البحث عن طريق معرف المحادثة أو البريد الإلكتروني أو رقم الهاتف أو الرسائل للحصول على نتائج بحث أفضل. ",
"BOT_LABEL": "رد آلي",
"READ_MORE": "اقرأ المزيد",
- "READ_LESS": "Read less",
+ "READ_LESS": "قراءة أقل",
"WROTE": "كتب:",
"FROM": "من",
"EMAIL": "البريد الإلكتروني",
"EMAIL_SUBJECT": "الموضوع",
- "PRIVATE": "Private note",
- "TRANSCRIPT": "Transcript",
+ "PRIVATE": "ملاحظة خاصة",
+ "TRANSCRIPT": "النص",
"CREATED_AT": "created {time}",
- "UPDATED_AT": "updated {time}",
+ "UPDATED_AT": "تم التحديث {time}",
"SORT_BY": {
- "RELEVANCE": "Relevance"
+ "RELEVANCE": "ذات صلة"
},
"DATE_RANGE": {
"LAST_7_DAYS": "آخر 7 أيام",
"LAST_30_DAYS": "آخر 30 يوماً",
"LAST_60_DAYS": "آخر 60 يوماً",
"LAST_90_DAYS": "آخر 90 يوماً",
- "CUSTOM_RANGE": "Custom range:",
- "CREATED_BETWEEN": "Created between",
+ "CUSTOM_RANGE": "نطاق مخصص:",
+ "CREATED_BETWEEN": "تم الإنشاء بين",
"AND": "و",
"APPLY": "تطبيق",
- "BEFORE_DATE": "Before {date}",
- "AFTER_DATE": "After {date}",
- "TIME_RANGE": "Filter by time",
- "CLEAR_FILTER": "Clear filter"
+ "BEFORE_DATE": "قبل {date}",
+ "AFTER_DATE": "بعد {date}",
+ "TIME_RANGE": "التصفية حسب الوقت",
+ "CLEAR_FILTER": "مسح عامل التصفية"
},
"FILTERS": {
- "FILTER_MESSAGE": "Filter messages by:",
+ "FILTER_MESSAGE": "تصفية الرسائل بواسطة:",
"FROM": "المرسل",
"IN": "صندوق الوارد",
"AGENTS": "الوكلاء",
"CONTACTS": "جهات الاتصال",
"INBOXES": "قنوات التواصل",
"NO_AGENTS": "لم يتم العثور على وكلاء",
- "NO_CONTACTS": "Start by searching to see results",
- "NO_INBOXES": "No inboxes found"
+ "NO_CONTACTS": "ابدأ بالبحث لمشاهدة النتائج",
+ "NO_INBOXES": "لم يتم العثور على صناديق الوارد"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/settings.json b/app/javascript/dashboard/i18n/locale/ar/settings.json
index 94133a087..20b2a7faa 100644
--- a/app/javascript/dashboard/i18n/locale/ar/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ar/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "تنزيل",
"UPLOADING": "جاري الرفع...",
- "INSTAGRAM_STORY_UNAVAILABLE": "هذه القصة لم تعد متاحة."
+ "INSTAGRAM_STORY_UNAVAILABLE": "هذه القصة لم تعد متاحة.",
+ "INSTAGRAM_STORY_REPLY": "رد على قصتك:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "مشاهدة على الخريطة"
@@ -307,8 +308,8 @@
"SETTINGS": "الإعدادات",
"CONTACTS": "جهات الاتصال",
"ACTIVE": "مفعل",
- "COMPANIES": "Companies",
- "ALL_COMPANIES": "All Companies",
+ "COMPANIES": "الشركات",
+ "ALL_COMPANIES": "كل الحملات",
"CAPTAIN": "قائد",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "قراءة المستندات",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "قائد",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "الخصائص",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "الفواتير",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "البحث عن صفات"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "حل المحادثة",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "حل المحادثة",
+ "CANCEL": "إلغاء"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "نعم",
+ "NO": "لا"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "أوه! لم نتمكن من العثور على الحساب. الرجاء إنشاء حساب جديد للمتابعة.",
"NEW_ACCOUNT": "حساب جديد",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "إلغاء"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ar/signup.json b/app/javascript/dashboard/i18n/locale/ar/signup.json
index 150312da6..89ff33ca5 100644
--- a/app/javascript/dashboard/i18n/locale/ar/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ar/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "تسجيل حساب",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "تسجيل",
"TESTIMONIAL_HEADER": "إن كل ما يلزم هو خطوة واحدة للمضي قدما",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/ar/sla.json b/app/javascript/dashboard/i18n/locale/ar/sla.json
index b7bf27180..fb92154e2 100644
--- a/app/javascript/dashboard/i18n/locale/ar/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ar/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/ar/snooze.json b/app/javascript/dashboard/i18n/locale/ar/snooze.json
new file mode 100644
index 000000000..47d01ffe8
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ar/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "ساعات",
+ "DAY": "اليوم",
+ "DAYS": "days",
+ "WEEK": "اليوم",
+ "WEEKS": "weeks",
+ "MONTH": "الأسبوع",
+ "MONTHS": "months",
+ "YEAR": "الشهر",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "التالي",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "غداً",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "الأسبوع القادم",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "اليوم",
+ "DAY": "اليوم"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ar/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ar/teamsSettings.json
index cff408294..54e7ed33d 100644
--- a/app/javascript/dashboard/i18n/locale/ar/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ar/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "الفرق تتيح لك تنظيم الوكلاء في مجموعات بناءً على مسؤولياتهم. يمكن للوكيل أن يكون عضوًا في أكثر من فريق. لتحقيق التعاون في العمل, يمكنك إسناد المحادثات لفرق محددة.",
"LEARN_MORE": "لمعرفة المزيد حول الفرق",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "البحث عن فريق...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "لا يوجد موظفي دعم مرتبطين بهذا الحساب.",
"EDIT_TEAM": "تعديل الفريق",
@@ -64,7 +67,7 @@
"ERROR_MESSAGE": "تعذر حفظ تفاصيل الفريق. حاول مرة أخرى."
},
"AGENTS": {
- "AGENT": "وكيل",
+ "AGENT": "وكيل الدعم",
"EMAIL": "البريد الإلكتروني",
"BUTTON_TEXT": "إضافة وكلاء",
"ADD_AGENTS": "إضافة وكلاء إلى فريقك...",
diff --git a/app/javascript/dashboard/i18n/locale/az/agentBots.json b/app/javascript/dashboard/i18n/locale/az/agentBots.json
index d3a0bb991..dc92016ab 100644
--- a/app/javascript/dashboard/i18n/locale/az/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/az/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/az/agentMgmt.json b/app/javascript/dashboard/i18n/locale/az/agentMgmt.json
index 448994e69..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/az/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/az/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/az/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/az/attributesMgmt.json
index 78886f451..e83950b14 100644
--- a/app/javascript/dashboard/i18n/locale/az/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/az/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/az/automation.json b/app/javascript/dashboard/i18n/locale/az/automation.json
index 43245a1d5..22a9735f4 100644
--- a/app/javascript/dashboard/i18n/locale/az/automation.json
+++ b/app/javascript/dashboard/i18n/locale/az/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/az/bulkActions.json b/app/javascript/dashboard/i18n/locale/az/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/az/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/az/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/az/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/az/cannedMgmt.json
index 3ff246f06..246d3f5b3 100644
--- a/app/javascript/dashboard/i18n/locale/az/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/az/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/az/chatlist.json b/app/javascript/dashboard/i18n/locale/az/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/az/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/az/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/az/contact.json b/app/javascript/dashboard/i18n/locale/az/contact.json
index 7cad3b433..10841bbbf 100644
--- a/app/javascript/dashboard/i18n/locale/az/contact.json
+++ b/app/javascript/dashboard/i18n/locale/az/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/az/conversation.json b/app/javascript/dashboard/i18n/locale/az/conversation.json
index 59ad61c1d..7b7e325ab 100644
--- a/app/javascript/dashboard/i18n/locale/az/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/az/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/az/customRole.json b/app/javascript/dashboard/i18n/locale/az/customRole.json
index b7b48b5e7..f7c1709bd 100644
--- a/app/javascript/dashboard/i18n/locale/az/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/az/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/az/datePicker.json b/app/javascript/dashboard/i18n/locale/az/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/az/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/az/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/az/general.json b/app/javascript/dashboard/i18n/locale/az/general.json
index 283cf79c4..bdc7cb8a4 100644
--- a/app/javascript/dashboard/i18n/locale/az/general.json
+++ b/app/javascript/dashboard/i18n/locale/az/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/az/generalSettings.json b/app/javascript/dashboard/i18n/locale/az/generalSettings.json
index d924bffbd..fab8020e2 100644
--- a/app/javascript/dashboard/i18n/locale/az/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/az/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/az/helpCenter.json b/app/javascript/dashboard/i18n/locale/az/helpCenter.json
index 0ab8d62ff..69a72f163 100644
--- a/app/javascript/dashboard/i18n/locale/az/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/az/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json
index 2efba4716..608e5c804 100644
--- a/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
diff --git a/app/javascript/dashboard/i18n/locale/az/integrationApps.json b/app/javascript/dashboard/i18n/locale/az/integrationApps.json
index b91b434f7..828f4ea67 100644
--- a/app/javascript/dashboard/i18n/locale/az/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/az/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/az/integrations.json b/app/javascript/dashboard/i18n/locale/az/integrations.json
index ef3e94e42..fe1891064 100644
--- a/app/javascript/dashboard/i18n/locale/az/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/az/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/az/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/az/labelsMgmt.json
index 705b18d0e..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/az/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/az/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/az/macros.json b/app/javascript/dashboard/i18n/locale/az/macros.json
index fcb409f34..e12f0ca73 100644
--- a/app/javascript/dashboard/i18n/locale/az/macros.json
+++ b/app/javascript/dashboard/i18n/locale/az/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/az/mfa.json b/app/javascript/dashboard/i18n/locale/az/mfa.json
index f7556fdcf..b03917bcd 100644
--- a/app/javascript/dashboard/i18n/locale/az/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/az/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/az/report.json b/app/javascript/dashboard/i18n/locale/az/report.json
index dbf59f603..2ffa0ef11 100644
--- a/app/javascript/dashboard/i18n/locale/az/report.json
+++ b/app/javascript/dashboard/i18n/locale/az/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/az/settings.json b/app/javascript/dashboard/i18n/locale/az/settings.json
index 920da6f53..cf56caf3d 100644
--- a/app/javascript/dashboard/i18n/locale/az/settings.json
+++ b/app/javascript/dashboard/i18n/locale/az/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancel"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/az/signup.json b/app/javascript/dashboard/i18n/locale/az/signup.json
index b0e5f5d27..4a90fd322 100644
--- a/app/javascript/dashboard/i18n/locale/az/signup.json
+++ b/app/javascript/dashboard/i18n/locale/az/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/az/sla.json b/app/javascript/dashboard/i18n/locale/az/sla.json
index 0da7873be..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/az/sla.json
+++ b/app/javascript/dashboard/i18n/locale/az/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/az/snooze.json b/app/javascript/dashboard/i18n/locale/az/snooze.json
new file mode 100644
index 000000000..2d9a876aa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "year",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/teamsSettings.json b/app/javascript/dashboard/i18n/locale/az/teamsSettings.json
index f0a950fd1..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/az/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/az/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/bg/agentBots.json b/app/javascript/dashboard/i18n/locale/bg/agentBots.json
index aeb619327..c44a8024b 100644
--- a/app/javascript/dashboard/i18n/locale/bg/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/bg/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Действия"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/bg/agentMgmt.json b/app/javascript/dashboard/i18n/locale/bg/agentMgmt.json
index 8f6eadbcf..deda2adc4 100644
--- a/app/javascript/dashboard/i18n/locale/bg/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bg/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Администратор",
"AGENT": "Агент"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Няма асоцирани агенти към този акаунт",
"TITLE": "Управлявайте агентите в екипа си",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Не можа да се свърже с Woot сървър. Моля, опитайте отново по-късно"
}
},
+ "SEARCH_PLACEHOLDER": "Търсете агенти...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Няма намерени резултати."
},
diff --git a/app/javascript/dashboard/i18n/locale/bg/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/bg/attributesMgmt.json
index 1ee1c83d6..c8f0dfe9b 100644
--- a/app/javascript/dashboard/i18n/locale/bg/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bg/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Търсене на атрибути...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Разговор",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/bg/automation.json b/app/javascript/dashboard/i18n/locale/bg/automation.json
index d953bad7f..97bf7be40 100644
--- a/app/javascript/dashboard/i18n/locale/bg/automation.json
+++ b/app/javascript/dashboard/i18n/locale/bg/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Автоматизация",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Добавяне правило за автоматизация",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Добавяне правило за автоматизация",
"SUBMIT": "Създаване",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Име",
- "DESCRIPTION": "Описание",
"ACTIVE": "Активен",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Действия"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/bg/bulkActions.json b/app/javascript/dashboard/i18n/locale/bg/bulkActions.json
index 845af02d1..69862e409 100644
--- a/app/javascript/dashboard/i18n/locale/bg/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/bg/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "Няма намерени етикети",
diff --git a/app/javascript/dashboard/i18n/locale/bg/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/bg/cannedMgmt.json
index ceda07273..5dac04392 100644
--- a/app/javascript/dashboard/i18n/locale/bg/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bg/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Готови отговори",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Няма резултати отговарящи на тази заявка.",
"LIST": {
"404": "Няма налични готови отговори в този акаунт.",
diff --git a/app/javascript/dashboard/i18n/locale/bg/chatlist.json b/app/javascript/dashboard/i18n/locale/bg/chatlist.json
index 8cda6800a..9e18ecda8 100644
--- a/app/javascript/dashboard/i18n/locale/bg/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/bg/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/bg/contact.json b/app/javascript/dashboard/i18n/locale/bg/contact.json
index 4c59e4184..a253b49ff 100644
--- a/app/javascript/dashboard/i18n/locale/bg/contact.json
+++ b/app/javascript/dashboard/i18n/locale/bg/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Няма контакти отговарящи на търсенети ви 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "До:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Тема :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/bg/conversation.json b/app/javascript/dashboard/i18n/locale/bg/conversation.json
index 8b0cd5413..d655068da 100644
--- a/app/javascript/dashboard/i18n/locale/bg/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/bg/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Бот",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Отмени",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/bg/customRole.json b/app/javascript/dashboard/i18n/locale/bg/customRole.json
index a000e4cbe..86481d532 100644
--- a/app/javascript/dashboard/i18n/locale/bg/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/bg/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Няма резултати отговарящи на тази заявка.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/bg/datePicker.json b/app/javascript/dashboard/i18n/locale/bg/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/bg/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/bg/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/general.json b/app/javascript/dashboard/i18n/locale/bg/general.json
index 2ce281780..d9f377bdc 100644
--- a/app/javascript/dashboard/i18n/locale/bg/general.json
+++ b/app/javascript/dashboard/i18n/locale/bg/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/generalSettings.json b/app/javascript/dashboard/i18n/locale/bg/generalSettings.json
index abe6e4f87..9b89ae948 100644
--- a/app/javascript/dashboard/i18n/locale/bg/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/bg/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/bg/helpCenter.json b/app/javascript/dashboard/i18n/locale/bg/helpCenter.json
index 863df4e5c..af512d278 100644
--- a/app/javascript/dashboard/i18n/locale/bg/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/bg/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json
index 78b0901e2..b2c5fb0f0 100644
--- a/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Изключен"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Включен",
- "DISABLED": "Изключен"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Активен",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Отмени",
+ "CONFIRM_DELETE": "Изтрий",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Тип:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Чатете с нас",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Чатете с нас"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Обикновено отговаряме до няколко минути",
diff --git a/app/javascript/dashboard/i18n/locale/bg/integrationApps.json b/app/javascript/dashboard/i18n/locale/bg/integrationApps.json
index bcda218f3..70717f9df 100644
--- a/app/javascript/dashboard/i18n/locale/bg/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/bg/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Включен",
"DISABLED": "Изключен"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Входяща кутия",
+ "ACTIONS": "Действия",
"DELETE": {
"BUTTON_TEXT": "Изтрий"
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/integrations.json b/app/javascript/dashboard/i18n/locale/bg/integrations.json
index ae4e76c2e..999d389ea 100644
--- a/app/javascript/dashboard/i18n/locale/bg/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/bg/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Отмени",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Изтрий",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Име",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Действия"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/bg/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/bg/labelsMgmt.json
index 314031aa8..00d569edf 100644
--- a/app/javascript/dashboard/i18n/locale/bg/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bg/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Търсене на етикети...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Няма резултати отговарящи на тази заявка",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Име",
"DESCRIPTION": "Описание",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Действия"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/bg/macros.json b/app/javascript/dashboard/i18n/locale/bg/macros.json
index 48f462ac4..2a3604f3f 100644
--- a/app/javascript/dashboard/i18n/locale/bg/macros.json
+++ b/app/javascript/dashboard/i18n/locale/bg/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Име",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Действия"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/bg/mfa.json b/app/javascript/dashboard/i18n/locale/bg/mfa.json
index cc58c4378..660983c58 100644
--- a/app/javascript/dashboard/i18n/locale/bg/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/bg/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/bg/report.json b/app/javascript/dashboard/i18n/locale/bg/report.json
index fb1f34d3c..1192c874e 100644
--- a/app/javascript/dashboard/i18n/locale/bg/report.json
+++ b/app/javascript/dashboard/i18n/locale/bg/report.json
@@ -3,7 +3,7 @@
"HEADER": "Разговори",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Търсете агенти"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Разговори",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Търсене на етикети"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Разговори",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Разговори",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Търсете екипи"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Разговори",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Търсете агенти",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Търсете екипи",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Агент"
+ },
+ "INBOXES": {
+ "LABEL": "Входяща кутия"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Агент",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Разговор",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Отмени",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/bg/settings.json b/app/javascript/dashboard/i18n/locale/bg/settings.json
index 46176d993..46772a425 100644
--- a/app/javascript/dashboard/i18n/locale/bg/settings.json
+++ b/app/javascript/dashboard/i18n/locale/bg/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Качване...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Търсене на атрибути"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Отмени"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Отмени"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/bg/signup.json b/app/javascript/dashboard/i18n/locale/bg/signup.json
index 7e3e67bf1..d9f7b04f0 100644
--- a/app/javascript/dashboard/i18n/locale/bg/signup.json
+++ b/app/javascript/dashboard/i18n/locale/bg/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/bg/sla.json b/app/javascript/dashboard/i18n/locale/bg/sla.json
index ae8460145..25ca0f4bf 100644
--- a/app/javascript/dashboard/i18n/locale/bg/sla.json
+++ b/app/javascript/dashboard/i18n/locale/bg/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/bg/snooze.json b/app/javascript/dashboard/i18n/locale/bg/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bg/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bg/teamsSettings.json b/app/javascript/dashboard/i18n/locale/bg/teamsSettings.json
index bd39b68d0..f44bd0720 100644
--- a/app/javascript/dashboard/i18n/locale/bg/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/bg/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Търсете екипи...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "ИМЕЙЛ",
+ "AGENT": "Агент",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/bn/agentBots.json b/app/javascript/dashboard/i18n/locale/bn/agentBots.json
index d3a0bb991..dc92016ab 100644
--- a/app/javascript/dashboard/i18n/locale/bn/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/bn/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/bn/agentMgmt.json b/app/javascript/dashboard/i18n/locale/bn/agentMgmt.json
index 448994e69..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/bn/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bn/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/bn/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/bn/attributesMgmt.json
index 78886f451..e83950b14 100644
--- a/app/javascript/dashboard/i18n/locale/bn/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bn/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/bn/automation.json b/app/javascript/dashboard/i18n/locale/bn/automation.json
index 43245a1d5..22a9735f4 100644
--- a/app/javascript/dashboard/i18n/locale/bn/automation.json
+++ b/app/javascript/dashboard/i18n/locale/bn/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/bn/bulkActions.json b/app/javascript/dashboard/i18n/locale/bn/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/bn/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/bn/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/bn/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/bn/cannedMgmt.json
index 3ff246f06..246d3f5b3 100644
--- a/app/javascript/dashboard/i18n/locale/bn/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bn/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/bn/chatlist.json b/app/javascript/dashboard/i18n/locale/bn/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/bn/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/bn/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/bn/contact.json b/app/javascript/dashboard/i18n/locale/bn/contact.json
index 7cad3b433..10841bbbf 100644
--- a/app/javascript/dashboard/i18n/locale/bn/contact.json
+++ b/app/javascript/dashboard/i18n/locale/bn/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/bn/conversation.json b/app/javascript/dashboard/i18n/locale/bn/conversation.json
index 59ad61c1d..7b7e325ab 100644
--- a/app/javascript/dashboard/i18n/locale/bn/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/bn/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/bn/customRole.json b/app/javascript/dashboard/i18n/locale/bn/customRole.json
index b7b48b5e7..f7c1709bd 100644
--- a/app/javascript/dashboard/i18n/locale/bn/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/bn/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/bn/datePicker.json b/app/javascript/dashboard/i18n/locale/bn/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/bn/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/bn/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bn/general.json b/app/javascript/dashboard/i18n/locale/bn/general.json
index 283cf79c4..bdc7cb8a4 100644
--- a/app/javascript/dashboard/i18n/locale/bn/general.json
+++ b/app/javascript/dashboard/i18n/locale/bn/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bn/generalSettings.json b/app/javascript/dashboard/i18n/locale/bn/generalSettings.json
index d924bffbd..fab8020e2 100644
--- a/app/javascript/dashboard/i18n/locale/bn/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/bn/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/bn/helpCenter.json b/app/javascript/dashboard/i18n/locale/bn/helpCenter.json
index 0ab8d62ff..69a72f163 100644
--- a/app/javascript/dashboard/i18n/locale/bn/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/bn/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json
index 2efba4716..608e5c804 100644
--- a/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
diff --git a/app/javascript/dashboard/i18n/locale/bn/integrationApps.json b/app/javascript/dashboard/i18n/locale/bn/integrationApps.json
index b91b434f7..828f4ea67 100644
--- a/app/javascript/dashboard/i18n/locale/bn/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/bn/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/bn/integrations.json b/app/javascript/dashboard/i18n/locale/bn/integrations.json
index ef3e94e42..fe1891064 100644
--- a/app/javascript/dashboard/i18n/locale/bn/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/bn/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/bn/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/bn/labelsMgmt.json
index 705b18d0e..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/bn/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bn/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/bn/macros.json b/app/javascript/dashboard/i18n/locale/bn/macros.json
index fcb409f34..e12f0ca73 100644
--- a/app/javascript/dashboard/i18n/locale/bn/macros.json
+++ b/app/javascript/dashboard/i18n/locale/bn/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/bn/mfa.json b/app/javascript/dashboard/i18n/locale/bn/mfa.json
index f7556fdcf..b03917bcd 100644
--- a/app/javascript/dashboard/i18n/locale/bn/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/bn/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/bn/report.json b/app/javascript/dashboard/i18n/locale/bn/report.json
index dbf59f603..2ffa0ef11 100644
--- a/app/javascript/dashboard/i18n/locale/bn/report.json
+++ b/app/javascript/dashboard/i18n/locale/bn/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/bn/settings.json b/app/javascript/dashboard/i18n/locale/bn/settings.json
index 920da6f53..cf56caf3d 100644
--- a/app/javascript/dashboard/i18n/locale/bn/settings.json
+++ b/app/javascript/dashboard/i18n/locale/bn/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancel"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/bn/signup.json b/app/javascript/dashboard/i18n/locale/bn/signup.json
index b0e5f5d27..4a90fd322 100644
--- a/app/javascript/dashboard/i18n/locale/bn/signup.json
+++ b/app/javascript/dashboard/i18n/locale/bn/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/bn/sla.json b/app/javascript/dashboard/i18n/locale/bn/sla.json
index 0da7873be..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/bn/sla.json
+++ b/app/javascript/dashboard/i18n/locale/bn/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/bn/snooze.json b/app/javascript/dashboard/i18n/locale/bn/snooze.json
new file mode 100644
index 000000000..2d9a876aa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "year",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/teamsSettings.json b/app/javascript/dashboard/i18n/locale/bn/teamsSettings.json
index f0a950fd1..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/bn/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/bn/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/ca/agentBots.json b/app/javascript/dashboard/i18n/locale/ca/agentBots.json
index a7d3e02df..4937aa1a7 100644
--- a/app/javascript/dashboard/i18n/locale/ca/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ca/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "S'està carregant l'editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "Sistema",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "S'estan obtenint bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "URL del webhook"
+ "URL": "URL del webhook",
+ "ACTIONS": "Accions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/ca/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ca/agentMgmt.json
index 421b1717f..bf6a477b3 100644
--- a/app/javascript/dashboard/i18n/locale/ca/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ca/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrador/a",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "No hi ha agents associats a aquest compte",
"TITLE": "Gestiona agents en el teu equip",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
}
},
+ "SEARCH_PLACEHOLDER": "Cerca agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No s'ha trobat agents."
},
diff --git a/app/javascript/dashboard/i18n/locale/ca/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ca/attributesMgmt.json
index a6ec2713f..a1abb9d2c 100644
--- a/app/javascript/dashboard/i18n/locale/ca/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ca/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "S'estan recollint atributs personalitzats",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Cerca atributs...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversa",
"CONTACT": "Contacte"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Activa la validació d'expressions regulars"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/ca/automation.json b/app/javascript/dashboard/i18n/locale/ca/automation.json
index 6482bea60..6e3970cd7 100644
--- a/app/javascript/dashboard/i18n/locale/ca/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ca/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automatització",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Afegeix una regla d'automatització",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "S'estan recollint regles d'automatització",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Afegeix una regla d'automatització",
"SUBMIT": "Crear",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Nom",
- "DESCRIPTION": "Descripció",
"ACTIVE": "Actiu",
- "CREATED_ON": "Creat el"
+ "CREATED_ON": "Creat el",
+ "ACTIONS": "Accions"
},
"404": "No s'han trobat regles d'automatització"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Canvia la prioritat",
"ADD_SLA": "Afegeix SLA",
- "OPEN_CONVERSATION": "Obrir conversa"
+ "OPEN_CONVERSATION": "Obrir conversa",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/ca/bulkActions.json b/app/javascript/dashboard/i18n/locale/ca/bulkActions.json
index 59eefd84d..5d4683fde 100644
--- a/app/javascript/dashboard/i18n/locale/ca/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ca/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "L'estat de les converses s'ha actualitzat correctament.",
"UPDATE_FAILED": "No s'han pogut actualitzar les converses. Torna-ho a provar."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assignar etiquetes",
"NO_LABELS_FOUND": "No s'han trobat etiquetes",
diff --git a/app/javascript/dashboard/i18n/locale/ca/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ca/cannedMgmt.json
index 99d9e7e83..a7565279a 100644
--- a/app/javascript/dashboard/i18n/locale/ca/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ca/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Respostes predeterminades",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Afegir resposta predeterminada",
"LOADING": "S'estan recollint les respostes predeterminades...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "No hi ha cap resposta que coincideixi amb aquesta consulta.",
"LIST": {
"404": "No hi ha respostes predeterminades disponibles en aquest compte.",
diff --git a/app/javascript/dashboard/i18n/locale/ca/chatlist.json b/app/javascript/dashboard/i18n/locale/ca/chatlist.json
index 49681a0fd..665f794f1 100644
--- a/app/javascript/dashboard/i18n/locale/ca/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ca/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Resposta pendent: el més curt primer"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ca/contact.json b/app/javascript/dashboard/i18n/locale/ca/contact.json
index 291a3ccf2..a6d25ca42 100644
--- a/app/javascript/dashboard/i18n/locale/ca/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ca/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No hi ha cap contacte que coincideixi amb la vostra cerca 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Per:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Assumpte :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Cco:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Cco"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/ca/conversation.json b/app/javascript/dashboard/i18n/locale/ca/conversation.json
index c297f78dc..e37174518 100644
--- a/app/javascript/dashboard/i18n/locale/ca/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ca/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Aquest missatge no està suportat. Pots veure aquest missatge a l'aplicació Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Aquest missatge no està suportat. Pots veure aquest missatge a l'aplicació d'Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "El missatge s'ha suprimit correctament",
"FAIL_DELETE_MESSSAGE": "No s'ha pogut suprimir el missatge! Torna-ho a provar",
"NO_RESPONSE": "Sense resposta",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "No s'ha pogut assignar l'etiqueta. Torna-ho a provar."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "S'ha assignat l'equip \"{team}\" a l'id de conversa {conversationId}",
"FAILED": "No s'ha pogut assignar l'equip. Torna-ho a provar."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Desactiva la signatura",
"MSG_INPUT": "Shift + enter per a una línia nova. Comença amb '/' per seleccionar una resposta predeterminada.",
"PRIVATE_MSG_INPUT": "Shift + enter per una línia nova. Això serà visible només per als Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "La signatura del missatge no està configurada, configura-la a la configuració del perfil.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Fes clic aquí per actualitzar",
"WHATSAPP_TEMPLATES": "Plantilles de Whatsapp"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Arrossega i deixa anar aquí per adjuntar-lo",
"START_AUDIO_RECORDING": "Inicia la gravació d'àudio",
"STOP_AUDIO_RECORDING": "Atura la gravació d'àudio",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "A",
"ADD_BCC": "Afegeix cco",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "El fitxer supera el límit de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB fitxers adjunts",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "No es pot enviar aquest missatge, torna-ho a provar més tard",
"SENT_BY": "Enviat per:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "No s'ha pogut enviar el missatge! Torna-ho a provar",
"TRY_AGAIN": "reintenta",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel·la",
"SEND_EMAIL_SUCCESS": "La transcripció del xat s'ha enviat correctament",
"SEND_EMAIL_ERROR": "S'ha produït un error; tornau-ho a provar",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Envia la transcripció al client",
"SEND_TO_AGENT": "Envia la transcripció a l'agent assignat",
diff --git a/app/javascript/dashboard/i18n/locale/ca/customRole.json b/app/javascript/dashboard/i18n/locale/ca/customRole.json
index a395093e3..d508cff53 100644
--- a/app/javascript/dashboard/i18n/locale/ca/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/ca/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "No hi ha cap resposta que coincideixi amb aquesta consulta.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/ca/datePicker.json b/app/javascript/dashboard/i18n/locale/ca/datePicker.json
index 37bc1bec7..8dcbbf682 100644
--- a/app/javascript/dashboard/i18n/locale/ca/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/ca/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Aplica",
"CLEAR_BUTTON": "Neteja",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Últims tres mesos",
"LAST_6_MONTHS": "Últims sis mesos",
"LAST_YEAR": "Darrer any",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Interval de dates personalitzat"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/general.json b/app/javascript/dashboard/i18n/locale/ca/general.json
index 189b6a388..f08cdd56f 100644
--- a/app/javascript/dashboard/i18n/locale/ca/general.json
+++ b/app/javascript/dashboard/i18n/locale/ca/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Tanca",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Si",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/generalSettings.json b/app/javascript/dashboard/i18n/locale/ca/generalSettings.json
index 7f6b166fa..06d551545 100644
--- a/app/javascript/dashboard/i18n/locale/ca/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ca/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Cerca o salta a",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Informes",
diff --git a/app/javascript/dashboard/i18n/locale/ca/helpCenter.json b/app/javascript/dashboard/i18n/locale/ca/helpCenter.json
index f7d247cf5..631ebd6b0 100644
--- a/app/javascript/dashboard/i18n/locale/ca/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ca/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "S'ha produït un error en suprimir l'article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Afegiu l'encapçalament i el contingut de l'article i llavors pots actualitzar la configuració"
},
diff --git a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json
index 287b5bcc6..83a9b468b 100644
--- a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Safates d'entrada",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "La teva safata d'entrada està desconnectada. No rebràs missatges nous fins que no els tornis a autoritzar.",
"CLICK_TO_RECONNECT": "Fes clic aquí per tornar a connectar-te.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Utilitza només el nom de l'empresa configurat com a nom del remitent a la capçalera del correu electrònic."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configura el nom del teu negoci",
+ "BUTTON_TEXT": "Configura el nom del teu negoci",
"PLACEHOLDER": "Introdueix el nom de la teva empresa",
"SAVE_BUTTON_TEXT": "Desar"
}
@@ -589,8 +592,10 @@
"DISABLED": "Inhabilita"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Habilita",
- "DISABLED": "Inhabilita"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Habilita"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Activa/Desactiva la mostra del nom de l'agent al correu electrònic, si està desactivat, mostrarà el nom de l'empresa",
"ENABLE_CONTINUITY_VIA_EMAIL": "Activa la continuïtat de la conversa per correu electrònic",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Les converses continuaran per correu electrònic si l'adreça electrònica de contacte està disponible.",
- "LOCK_TO_SINGLE_CONVERSATION": "Bloqueja a una sola conversa",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Activa o desactiva diverses converses per al mateix contacte en aquesta safata d'entrada",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Configuració de la safata d'entrada",
"INBOX_UPDATE_SUB_TEXT": "Actualitza la configuració de la safata d'entrada",
"AUTO_ASSIGNMENT_SUB_TEXT": "Activa o desactiva l'assignació automàtica d'agents disponibles a les noves converses",
@@ -758,6 +775,7 @@
"LABEL": "Centre d'ajuda",
"PLACEHOLDER": "Selecciona Centre d'ajuda",
"SELECT_PLACEHOLDER": "Selecciona Centre d'ajuda",
+ "NONE": "Ningú",
"REMOVE": "Suprimeix Centre d'ajuda",
"SUB_TEXT": "Adjunta un Centre d'ajuda amb la safata d'entrada"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Introdueix un valor superior a 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limita el nombre màxim de converses d'aquesta safata d'entrada que es poden assignar automàticament a un agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversació Assignada",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Actiu",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel·la",
+ "CONFIRM_DELETE": "Esborrar",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reautoritza",
"SUBTITLE": "La teva connexió a Facebook ha caducat, torna a connectar la vostra pàgina de Facebook per continuar els serveis",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Torna"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Missatge no disponible per als visitants",
"TOGGLE_HELP": "Si activeu la disponibilitat comercial, es mostraran les hores disponibles al giny del xat en directe, encara que tots els agents estiguin fora de línia. Fora de l'horari disponible, els visitants poden ser avisats amb un missatge i un formulari de xat previ.",
"DAY": {
+ "DAY": "Dia",
+ "AVAILABILITY": "Disponibilitat",
+ "HOURS": "Hours",
"ENABLE": "Activa la disponibilitat per a aquest dia",
"UNAVAILABLE": "No disponible",
- "HOURS": "hores",
"VALIDATION_ERROR": "L'hora d'inici ha de ser abans de l'hora de tancament.",
"CHOOSE": "Tria"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "En un dia"
},
"WIDGET_COLOR_LABEL": "Color del Widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Posició de la bombolla del widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "Tipus de bombolla de widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tipus:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Xateja amb nosaltres",
- "LABEL": "Títol del llançador de bombolles de widget",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Xateja amb nosaltres"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Per defecte",
- "CHAT": "Xat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Normalment responem en pocs minuts",
diff --git a/app/javascript/dashboard/i18n/locale/ca/integrationApps.json b/app/javascript/dashboard/i18n/locale/ca/integrationApps.json
index 6bf16a8ef..a2a60a59c 100644
--- a/app/javascript/dashboard/i18n/locale/ca/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ca/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "S'estan obtenint integracions",
"NO_HOOK_CONFIGURED": "No hi ha integracions {integrationId} configurades en aquest compte.",
"HEADER": "Aplicacions",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Habilita",
"DISABLED": "Inhabilita"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Recollint els hooks d'integració",
"INBOX": "Safata d'entrada",
+ "ACTIONS": "Accions",
"DELETE": {
"BUTTON_TEXT": "Esborrar"
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/integrations.json b/app/javascript/dashboard/i18n/locale/ca/integrations.json
index f754e0530..d3d6fde73 100644
--- a/app/javascript/dashboard/i18n/locale/ca/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ca/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Esdeveniments subscrits",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel·la",
"DESC": "Els esdeveniments de Webhook us proporcionen informació en temps real sobre el que passa al vostre compte de Chatwoot. Introduïu una URL vàlid per configurar un callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Esborrar",
"DELETE_CONFIRMATION": {
"TITLE": "Suprimeix la integració",
@@ -145,7 +160,29 @@
"EXPAND": "Expandeix",
"MAKE_FRIENDLY": "Canvia el to del missatge a amigable",
"MAKE_FORMAL": "Utilitza un to formal",
- "SIMPLIFY": "Simplifica"
+ "SIMPLIFY": "Simplifica",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Amable"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Esborrany de contingut",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Aplicacions del tauler de control
Les aplicacions del tauler de control permeten a les organitzacions incrustar una aplicació dins del tauler de control de Chatwoot per proporcionar el context als agents d'atenció al client. Aquesta funció et permet crear una aplicació de manera independent i inserir-la dins del tauler per proporcionar informació de l'usuari, les seves comandes o el seu historial de pagaments anteriors.
Quan incrusteu la teva aplicació mitjançant el tauler de control de Chatwoot, la teva aplicació obté el context de la conversa i el contacte com a esdeveniment de finestra. Implementa un oient per a l'esdeveniment del missatge a la teva pàgina per rebre el context.
Per afegir una aplicació de tauler nova, feu clic al botó \"Afegeix una aplicació de tauler nova\".
",
"DESCRIPTION": "Les aplicacions del tauler permeten a les organitzacions incrustar una aplicació dins del tauler per proporcionar el context als agents d'atenció al client. Aquesta funció et permet crear una aplicació de manera independent i incorporar-la per proporcionar informació de l'usuari, les seves comandes o el seu historial de pagaments anterior.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Encara no hi ha cap aplicació de tauler configurada en aquest compte",
"LOADING": "S'estan obtenint les aplicacions del tauler de control...",
"TABLE_HEADER": {
"NAME": "Nom",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Accions"
},
"EDIT_TOOLTIP": "Edita l'aplicació",
"DELETE_TOOLTIP": "Suprimeix l'aplicació"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Crear/enllaçar una issue en Linear",
"LOADING": "S'estan buscant issues en Linear...",
"LOADING_ERROR": "S'ha produït un error en obtenir les issues en Linear, torna-ho a provar",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "Pots canviar o cancel·lar el teu pla en qualsevol moment"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Posa't en contacte amb el vostre administrador per obtenir l'actualització."
},
diff --git a/app/javascript/dashboard/i18n/locale/ca/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ca/labelsMgmt.json
index 99852b125..cf644d7e1 100644
--- a/app/javascript/dashboard/i18n/locale/ca/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ca/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Obtenció d’etiquetes",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Cerca etiquetes...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "No hi ha cap resposta que coincideixi amb aquesta consulta",
"LIST": {
"404": "No hi ha etiquetes disponibles en aquest compte.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Nom",
"DESCRIPTION": "Descripció",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Accions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ca/macros.json b/app/javascript/dashboard/i18n/locale/ca/macros.json
index 4a4ca3ceb..ae4ca38a3 100644
--- a/app/javascript/dashboard/i18n/locale/ca/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ca/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Afegeix una nova macro",
"HEADER_BTN_TXT_SAVE": "Desa la macro",
"LOADING": "Obtenció de macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Alguna cosa ha anat malament, torna-ho a provar",
"ORDER_INFO": "Les macros s'executaran en l'ordre en què afegeixis les teves accions. Pots reorganitzar-los arrossegant-los per l'identificador al costat de cada node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Nom",
"CREATED BY": "Creat per",
"LAST_UPDATED_BY": "Última actualització per",
- "VISIBILITY": "Visibilitat"
+ "VISIBILITY": "Visibilitat",
+ "ACTIONS": "Accions"
},
"404": "No s'han trobat macros"
},
diff --git a/app/javascript/dashboard/i18n/locale/ca/mfa.json b/app/javascript/dashboard/i18n/locale/ca/mfa.json
index f3d135d40..2724f73ab 100644
--- a/app/javascript/dashboard/i18n/locale/ca/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/ca/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/ca/report.json b/app/javascript/dashboard/i18n/locale/ca/report.json
index 1db2cca6a..0c33997d1 100644
--- a/app/javascript/dashboard/i18n/locale/ca/report.json
+++ b/app/javascript/dashboard/i18n/locale/ca/report.json
@@ -3,7 +3,7 @@
"HEADER": "Converses",
"LOADING_CHART": "S'estan carregant dades del gràfic...",
"NO_ENOUGH_DATA": "No hem rebut suficients punts de dades per generar l'informe. Torneu-ho a provar més endavant.",
- "DOWNLOAD_AGENT_REPORTS": "Descarregar Informes d'Agent",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "No s'han pogut obtenir les dades. Intenta-ho més tard.",
"SUMMARY_FETCHING_FAILED": "No s'ha pogut obtenir el resum; torna-ho a provar més tard.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Visió general dels agents",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "S'estan carregant dades del gràfic...",
"NO_ENOUGH_DATA": "No hem rebut suficients punts de dades per generar l'informe. Torneu-ho a provar més endavant.",
"DOWNLOAD_AGENT_REPORTS": "Descarregar Informes d'Agent",
"FILTER_DROPDOWN_LABEL": "Seleccionar Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Cerca agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Converses",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "No hem rebut suficients punts de dades per generar l'informe. Torneu-ho a provar més endavant.",
"DOWNLOAD_LABEL_REPORTS": "Descarregar Informes d'etiquetes",
"FILTER_DROPDOWN_LABEL": "Selecciona l'etiqueta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Cerca etiquetes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Converses",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Selecciona Safata d'entrada",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Converses",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Visió general de l'equip",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "S'estan carregant dades del gràfic...",
"NO_ENOUGH_DATA": "No hem rebut suficients punts de dades per generar l'informe. Torneu-ho a provar més endavant.",
"DOWNLOAD_TEAM_REPORTS": "Descarregar Informes d'equip",
"FILTER_DROPDOWN_LABEL": "Selecciona equip",
+ "FILTERS": {
+ "ADD_FILTER": "Afegeix un filtre",
+ "CLEAR_ALL": "Esborrar tot",
+ "NO_FILTER": "No hi ha filtres disponibles",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Cerca equips"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Converses",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Informes CSAT",
- "NO_RECORDS": "No hi ha respostes de l'enquesta CSAT disponibles.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Descarregar informes CSAT",
"DOWNLOAD_FAILED": "No s'han pogut baixar els informes CSAT",
"FILTERS": {
+ "ADD_FILTER": "Afegeix un filtre",
+ "CLEAR_ALL": "Esborrar tot",
+ "NO_FILTER": "No hi ha filtres disponibles",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Cerca agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Cerca equips",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Escull agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Safata d'entrada"
+ },
+ "TEAMS": {
+ "LABEL": "Equip"
+ },
+ "RATINGS": {
+ "LABEL": "Valoració"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contacte",
- "AGENT_NAME": "Agent assignat",
+ "AGENT_NAME": "Agent",
"RATING": "Valoració",
- "FEEDBACK_TEXT": "Comentaris"
- }
+ "FEEDBACK_TEXT": "Comentaris",
+ "CONVERSATION": "Conversa",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Respostes totals",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Taxa de resposta",
"TOOLTIP": "Nombre total de respostes / Nombre total de missatges d'enquesta CSAT enviats * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Desar",
+ "CANCEL": "Cancel·la",
+ "SAVING": "S'està desant...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Actualitza ara",
+ "CANCEL_ANYTIME": "Pots canviar o cancel·lar el teu pla en qualsevol moment"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/ca/settings.json b/app/javascript/dashboard/i18n/locale/ca/settings.json
index b69e3542d..95ff685d2 100644
--- a/app/javascript/dashboard/i18n/locale/ca/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ca/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Descarrega",
"UPLOADING": "S'està carregant...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Aquesta història ja no està disponible."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Aquesta història ja no està disponible.",
+ "INSTAGRAM_STORY_REPLY": "Va respondre a la teva història:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Veure al mapa"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Llegir documents",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Característiques",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Facturació",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Cerca atributs"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resol la conversa",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resol la conversa",
+ "CANCEL": "Cancel·la"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Si",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Actualitza ara",
+ "CANCEL_ANYTIME": "Pots canviar o cancel·lar el teu pla en qualsevol moment"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Posa't en contacte amb el vostre administrador per obtenir l'actualització."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! No hem trobat cap compte de Chatwoot. Crea un compte nou per continuar.",
"NEW_ACCOUNT": "Compte nou",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancel·la"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ca/signup.json b/app/javascript/dashboard/i18n/locale/ca/signup.json
index 0d3a1ba02..9afee22c6 100644
--- a/app/javascript/dashboard/i18n/locale/ca/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ca/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Crear un compte",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registre",
"TESTIMONIAL_HEADER": "Només cal un pas per avançar",
"TESTIMONIAL_CONTENT": "Esteu a un pas de captar els vostres clients, retenir-los i trobar-ne de nous.",
diff --git a/app/javascript/dashboard/i18n/locale/ca/sla.json b/app/javascript/dashboard/i18n/locale/ca/sla.json
index f79836f02..64dd58e02 100644
--- a/app/javascript/dashboard/i18n/locale/ca/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ca/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Crea una nova política de SLA",
"DESCRIPTION": "Els acords de nivell de servei (SLA) són contractes que defineixen expectatives clares entre el vostre equip i els clients. Estableixen estàndards de temps de resposta i resolució, creen un marc de responsabilitat i garanteixen una experiència coherent i d'alta qualitat.",
"LEARN_MORE": "Més informació sobre SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "S'estan obtenint SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Actualitza per crear SLA",
"AVAILABLE_ON": "La funció SLA només està disponible als plans Business i Enterprise.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "No hi ha cap SLA disponible en aquest compte.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Empresa P0",
"DESC_1": "Problemes plantejats pels clients empresarials, que requereixen atenció immediata.",
"TITLE_2": "Empresa P1",
"DESC_2": "Problemes plantejats pels clients empresarials, que cal reconèixer ràpidament."
},
- "BUSINESS_HOURS_ON": "Horari comercial activat",
- "BUSINESS_HOURS_OFF": "Horari comercial desactivat",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "Primer llindar de temps de resposta",
"NRT": "Següent llindar de temps de resposta",
diff --git a/app/javascript/dashboard/i18n/locale/ca/snooze.json b/app/javascript/dashboard/i18n/locale/ca/snooze.json
new file mode 100644
index 000000000..9a71a1e74
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ca/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hores",
+ "DAY": "dia",
+ "DAYS": "days",
+ "WEEK": "setmana",
+ "WEEKS": "weeks",
+ "MONTH": "mes",
+ "MONTHS": "months",
+ "YEAR": "any",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "demà",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "pròxima setmana",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "setmana",
+ "DAY": "dia"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ca/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ca/teamsSettings.json
index 0c9a89985..90d580c77 100644
--- a/app/javascript/dashboard/i18n/locale/ca/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ca/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Cerca equips...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "No hi ha cap equip creat en aquest compte.",
"EDIT_TEAM": "Edita l'equip",
@@ -64,7 +67,7 @@
"ERROR_MESSAGE": "No s'han pogut desar els detalls de l'equip. Torna-ho a provar."
},
"AGENTS": {
- "AGENT": "AGENT",
+ "AGENT": "Agent",
"EMAIL": "Correu electrònic",
"BUTTON_TEXT": "Afegir agents",
"ADD_AGENTS": "S'estan afegint agents al teu equip...",
diff --git a/app/javascript/dashboard/i18n/locale/cs/agentBots.json b/app/javascript/dashboard/i18n/locale/cs/agentBots.json
index 18ec3788b..638cbb5fe 100644
--- a/app/javascript/dashboard/i18n/locale/cs/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/cs/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "URL webového háčku"
+ "URL": "URL webového háčku",
+ "ACTIONS": "Akce"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/cs/agentMgmt.json b/app/javascript/dashboard/i18n/locale/cs/agentMgmt.json
index 91726682b..85056ae17 100644
--- a/app/javascript/dashboard/i18n/locale/cs/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/cs/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrátor",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "K tomuto účtu nejsou přiřazeni žádní agenti",
"TITLE": "Spravujte agenty ve vašem týmu",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Nelze se připojit k Woot serveru, opakujte akci později"
}
},
+ "SEARCH_PLACEHOLDER": "Hledat agenty...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Žádné výsledky."
},
diff --git a/app/javascript/dashboard/i18n/locale/cs/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/cs/attributesMgmt.json
index e2b9fa128..69bcfc9d1 100644
--- a/app/javascript/dashboard/i18n/locale/cs/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/cs/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/cs/automation.json b/app/javascript/dashboard/i18n/locale/cs/automation.json
index 372a89c15..b50c78434 100644
--- a/app/javascript/dashboard/i18n/locale/cs/automation.json
+++ b/app/javascript/dashboard/i18n/locale/cs/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Název",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Akce"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Přidat soukromou poznámku",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/cs/bulkActions.json b/app/javascript/dashboard/i18n/locale/cs/bulkActions.json
index 35d498708..fc2e3fdff 100644
--- a/app/javascript/dashboard/i18n/locale/cs/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/cs/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/cs/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/cs/cannedMgmt.json
index b88117c68..ef11bb64a 100644
--- a/app/javascript/dashboard/i18n/locale/cs/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/cs/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Konzervované odpovědi",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Neexistují žádné položky odpovídající tomuto dotazu.",
"LIST": {
"404": "V tomto účtu nejsou k dispozici žádné konzervované odpovědi.",
diff --git a/app/javascript/dashboard/i18n/locale/cs/chatlist.json b/app/javascript/dashboard/i18n/locale/cs/chatlist.json
index 7be33dbe2..561982ec3 100644
--- a/app/javascript/dashboard/i18n/locale/cs/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/cs/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/cs/contact.json b/app/javascript/dashboard/i18n/locale/cs/contact.json
index 21301519d..073e61e18 100644
--- a/app/javascript/dashboard/i18n/locale/cs/contact.json
+++ b/app/javascript/dashboard/i18n/locale/cs/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Vašemu hledání neodpovídají žádné kontakty 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Komu:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Předmět :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/cs/conversation.json b/app/javascript/dashboard/i18n/locale/cs/conversation.json
index ebba05695..de341bb51 100644
--- a/app/javascript/dashboard/i18n/locale/cs/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/cs/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Zpráva byla úspěšně smazána",
"FAIL_DELETE_MESSSAGE": "Zpráva se nepodařilo odstranit! Zkuste to znovu",
"NO_RESPONSE": "Bez odpovědi",
@@ -173,8 +174,12 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Nelze přiřadit štítek. Zkuste to prosím znovu."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "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."
}
}
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Zakázat podpis",
"MSG_INPUT": "Shift + zadejte pro nový řádek. Začněte '/' pro výběr zrušené odpovědi.",
"PRIVATE_MSG_INPUT": "Shift + zadejte pro nový řádek. Toto bude viditelné pouze pro agenty",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Podpis zprávy není nakonfigurován, prosím nakonfigurujte jej v nastavení profilu.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Klikněte zde pro aktualizaci",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Přetažením sem připojíte",
"START_AUDIO_RECORDING": "Spustit nahrávání zvuku",
"STOP_AUDIO_RECORDING": "Zastavit nahrávání zvuku",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Přidat bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Nepodařilo se odeslat tuto zprávu, zkuste to prosím později",
"SENT_BY": "Odeslal:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Odeslání zprávy se nezdařilo! Zkuste to znovu",
"TRY_AGAIN": "opakovat",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Zrušit",
"SEND_EMAIL_SUCCESS": "Přepis chatu byl úspěšně odeslán",
"SEND_EMAIL_ERROR": "Došlo k chybě, zkuste to prosím znovu",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Poslat přepis zákazníkovi",
"SEND_TO_AGENT": "Zašlete přepis přidělenému agentovi",
diff --git a/app/javascript/dashboard/i18n/locale/cs/customRole.json b/app/javascript/dashboard/i18n/locale/cs/customRole.json
index bb87bde1f..a94d89139 100644
--- a/app/javascript/dashboard/i18n/locale/cs/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/cs/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Neexistují žádné položky odpovídající tomuto dotazu.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/cs/datePicker.json b/app/javascript/dashboard/i18n/locale/cs/datePicker.json
index b5af13d7d..b1cfe0e4e 100644
--- a/app/javascript/dashboard/i18n/locale/cs/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/cs/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Použít",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Poslední 3 měsíce",
"LAST_6_MONTHS": "Posledních 6 měsíců",
"LAST_YEAR": "Poslední rok",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Vlastní časové rozmezí"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/general.json b/app/javascript/dashboard/i18n/locale/cs/general.json
index 44f1bc85c..ad4bb4731 100644
--- a/app/javascript/dashboard/i18n/locale/cs/general.json
+++ b/app/javascript/dashboard/i18n/locale/cs/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Zavřít",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Ano",
+ "NO": "Ne"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/generalSettings.json b/app/javascript/dashboard/i18n/locale/cs/generalSettings.json
index 1a1f43848..6af6232cf 100644
--- a/app/javascript/dashboard/i18n/locale/cs/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/cs/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Zprávy",
diff --git a/app/javascript/dashboard/i18n/locale/cs/helpCenter.json b/app/javascript/dashboard/i18n/locale/cs/helpCenter.json
index eb059daec..d58f88a20 100644
--- a/app/javascript/dashboard/i18n/locale/cs/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/cs/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json
index 8e51f4050..8bc2b1ee2 100644
--- a/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Schránky",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Zakázáno"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Povoleno",
- "DISABLED": "Zakázáno"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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í",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Nastavení doručené pošty",
"INBOX_UPDATE_SUB_TEXT": "Aktualizujte nastavení doručené pošty",
"AUTO_ASSIGNMENT_SUB_TEXT": "Povolit nebo zakázat automatické přiřazování nových konverzací agentům přidaným do této schránky.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "Nic",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Zrušit",
+ "CONFIRM_DELETE": "Vymazat",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Znovu autorizovat",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Den",
+ "AVAILABILITY": "Dostupnost",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Nedostupný",
- "HOURS": "hodiny",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Vyberte"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Do dne"
},
"WIDGET_COLOR_LABEL": "Barva widgetu",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Napiště nám",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Napiště nám"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Většinou odpovíme během pár minut",
diff --git a/app/javascript/dashboard/i18n/locale/cs/integrationApps.json b/app/javascript/dashboard/i18n/locale/cs/integrationApps.json
index a907da3ea..a5b65294d 100644
--- a/app/javascript/dashboard/i18n/locale/cs/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/cs/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Povoleno",
"DISABLED": "Zakázáno"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Akce",
"DELETE": {
"BUTTON_TEXT": "Vymazat"
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/integrations.json b/app/javascript/dashboard/i18n/locale/cs/integrations.json
index 88f86abd7..3d0253213 100644
--- a/app/javascript/dashboard/i18n/locale/cs/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/cs/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Zrušit",
"DESC": "Události webhooku vám poskytují reálné informace o tom, co se děje ve vašem Chatwoot účtu. Zadejte prosím platnou URL pro nastavení hovoru.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Vymazat",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Název",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Akce"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/cs/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/cs/labelsMgmt.json
index 1f4e1ddd4..5814c0f1a 100644
--- a/app/javascript/dashboard/i18n/locale/cs/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/cs/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Neexistují žádné položky odpovídající tomuto dotazu",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Název",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Akce"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/cs/macros.json b/app/javascript/dashboard/i18n/locale/cs/macros.json
index de63b2618..3ce6bb7c1 100644
--- a/app/javascript/dashboard/i18n/locale/cs/macros.json
+++ b/app/javascript/dashboard/i18n/locale/cs/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Název",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Akce"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/cs/mfa.json b/app/javascript/dashboard/i18n/locale/cs/mfa.json
index 7729b0c9a..55ea26066 100644
--- a/app/javascript/dashboard/i18n/locale/cs/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/cs/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/cs/report.json b/app/javascript/dashboard/i18n/locale/cs/report.json
index 2831eeeb0..62369df5e 100644
--- a/app/javascript/dashboard/i18n/locale/cs/report.json
+++ b/app/javascript/dashboard/i18n/locale/cs/report.json
@@ -3,7 +3,7 @@
"HEADER": "Konverzace",
"LOADING_CHART": "Načítání dat mapy...",
"NO_ENOUGH_DATA": "Pro vytvoření hlášení jsme neobdrželi dostatek dat, zkuste to prosím později.",
- "DOWNLOAD_AGENT_REPORTS": "Stáhnout reporty agentů",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Načítání dat mapy...",
"NO_ENOUGH_DATA": "Pro vytvoření hlášení jsme neobdrželi dostatek dat, zkuste to prosím později.",
"DOWNLOAD_AGENT_REPORTS": "Stáhnout reporty agentů",
"FILTER_DROPDOWN_LABEL": "Vybrat agenta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Hledat agenty"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konverzace",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Pro vytvoření hlášení jsme neobdrželi dostatek dat, zkuste to prosím později.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konverzace",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konverzace",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Načítání dat mapy...",
"NO_ENOUGH_DATA": "Pro vytvoření hlášení jsme neobdrželi dostatek dat, zkuste to prosím později.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Hledat týmy"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konverzace",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Hledat agenty",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Hledat týmy",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Hodnocení"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Hodnocení",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Zrušit",
+ "SAVING": "Ukládání...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/cs/settings.json b/app/javascript/dashboard/i18n/locale/cs/settings.json
index 5d72c850d..a1086aef7 100644
--- a/app/javascript/dashboard/i18n/locale/cs/settings.json
+++ b/app/javascript/dashboard/i18n/locale/cs/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Stáhnout",
"UPLOADING": "Nahrávání...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funkce",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Zrušit"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Ano",
+ "NO": "Ne"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "Nový účet",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Zrušit"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/cs/signup.json b/app/javascript/dashboard/i18n/locale/cs/signup.json
index 4e0f5ffb9..37eb87541 100644
--- a/app/javascript/dashboard/i18n/locale/cs/signup.json
+++ b/app/javascript/dashboard/i18n/locale/cs/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registrovat se",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/cs/sla.json b/app/javascript/dashboard/i18n/locale/cs/sla.json
index 7e6038abb..9b58ac9f5 100644
--- a/app/javascript/dashboard/i18n/locale/cs/sla.json
+++ b/app/javascript/dashboard/i18n/locale/cs/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/cs/snooze.json b/app/javascript/dashboard/i18n/locale/cs/snooze.json
new file mode 100644
index 000000000..7cdcc5866
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/cs/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hodiny",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "den",
+ "WEEKS": "weeks",
+ "MONTH": "týden",
+ "MONTHS": "months",
+ "YEAR": "měsíc",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "zítra",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "příští týden",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "den",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/cs/teamsSettings.json b/app/javascript/dashboard/i18n/locale/cs/teamsSettings.json
index 1cdcb0c2b..60cabe29f 100644
--- a/app/javascript/dashboard/i18n/locale/cs/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/cs/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Hledat týmy...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "E-MAIL",
+ "AGENT": "Agent",
+ "EMAIL": "E-mailová adresa",
"BUTTON_TEXT": "Přidat agenty",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/da/agentBots.json b/app/javascript/dashboard/i18n/locale/da/agentBots.json
index 7b44f5897..725095d9a 100644
--- a/app/javascript/dashboard/i18n/locale/da/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/da/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Handlinger"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/da/agentMgmt.json b/app/javascript/dashboard/i18n/locale/da/agentMgmt.json
index 766ea1bde..011a97816 100644
--- a/app/javascript/dashboard/i18n/locale/da/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/da/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Der er ingen agenter tilknyttet denne konto",
"TITLE": "Administrer agenter i dit team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere"
}
},
+ "SEARCH_PLACEHOLDER": "Søg agenter...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Ingen resultater fundet."
},
diff --git a/app/javascript/dashboard/i18n/locale/da/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/da/attributesMgmt.json
index b0ee8f27c..b1d0fd6ad 100644
--- a/app/javascript/dashboard/i18n/locale/da/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/da/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Henter brugerdefinerede attributter",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Søg attributter...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Samtale",
"CONTACT": "Kontakt"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/da/automation.json b/app/javascript/dashboard/i18n/locale/da/automation.json
index 833c7a0a4..c1636f2b9 100644
--- a/app/javascript/dashboard/i18n/locale/da/automation.json
+++ b/app/javascript/dashboard/i18n/locale/da/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automatisering",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Tilføj Automatiseringsregel",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Henter automatiseringsregler",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Tilføj Automatiseringsregel",
"SUBMIT": "Opret",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Navn",
- "DESCRIPTION": "Beskrivelse",
"ACTIVE": "Aktiv",
- "CREATED_ON": "Oprettet den"
+ "CREATED_ON": "Oprettet den",
+ "ACTIONS": "Handlinger"
},
"404": "Ingen automatiseringsregler fundet"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Åbn samtale"
+ "OPEN_CONVERSATION": "Åbn samtale",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/da/bulkActions.json b/app/javascript/dashboard/i18n/locale/da/bulkActions.json
index f5fc5d031..aeb9f341d 100644
--- a/app/javascript/dashboard/i18n/locale/da/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/da/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Samtalens status blev opdateret.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "Ingen labels fundet",
diff --git a/app/javascript/dashboard/i18n/locale/da/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/da/cannedMgmt.json
index ec44285ec..4b0185cb1 100644
--- a/app/javascript/dashboard/i18n/locale/da/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/da/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Standardsvar Svar",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Der er ingen elementer, der matcher denne forespørgsel.",
"LIST": {
"404": "Der er ingen tilgængelige standardsvar på denne konto.",
diff --git a/app/javascript/dashboard/i18n/locale/da/chatlist.json b/app/javascript/dashboard/i18n/locale/da/chatlist.json
index 4685360f3..cc48a872b 100644
--- a/app/javascript/dashboard/i18n/locale/da/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/da/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/da/contact.json b/app/javascript/dashboard/i18n/locale/da/contact.json
index 4c98427b0..46e8d0cd9 100644
--- a/app/javascript/dashboard/i18n/locale/da/contact.json
+++ b/app/javascript/dashboard/i18n/locale/da/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Ingen kontakter matcher din søgning 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Tildel Etiketter",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Til:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Emne :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/da/conversation.json b/app/javascript/dashboard/i18n/locale/da/conversation.json
index 1cc101304..2e5d34a7b 100644
--- a/app/javascript/dashboard/i18n/locale/da/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/da/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Besked slettet",
"FAIL_DELETE_MESSSAGE": "Kunne ikke slette beskeden! Prøv igen",
"NO_RESPONSE": "Intet svar",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Kunne ikke tildele etiket. Prøv venligst igen."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Tildelt team \"{team}\" til samtale-id {conversationId}",
"FAILED": "Kunne ikke tildele team. Prøv venligst igen."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Deaktivér signatur",
"MSG_INPUT": "Shift + enter for ny linje. Start med '/' for at vælge et standardsvar.",
"PRIVATE_MSG_INPUT": "Shift + enter for ny linje. Dette vil kun være synligt for Agenter",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Beskedsignatur er ikke konfigureret, konfigurer den i profilindstillinger.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Klik her for at opdatere",
"WHATSAPP_TEMPLATES": "Whatsapp Skabeloner"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Træk og slip her for at vedhæfte",
"START_AUDIO_RECORDING": "Start lydoptagelse",
"STOP_AUDIO_RECORDING": "Stop lydoptagelse",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Tilføj bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Filen overskrider grænsen på {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} for vedhæftede filer",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Kunne ikke sende denne besked, prøv igen senere",
"SENT_BY": "Sendt af:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Kunne ikke sende besked! Prøv igen",
"TRY_AGAIN": "prøv igen",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Annuller",
"SEND_EMAIL_SUCCESS": "Chatudskriften blev sendt med succes",
"SEND_EMAIL_ERROR": "Der opstod en fejl. Prøv venligst igen",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send udskrift til kunden",
"SEND_TO_AGENT": "Send udskrift til den tildelte agent",
diff --git a/app/javascript/dashboard/i18n/locale/da/customRole.json b/app/javascript/dashboard/i18n/locale/da/customRole.json
index b6e341616..21bed9856 100644
--- a/app/javascript/dashboard/i18n/locale/da/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/da/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Der er ingen elementer, der matcher denne forespørgsel.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/da/datePicker.json b/app/javascript/dashboard/i18n/locale/da/datePicker.json
index 29d598c4d..5fb859bef 100644
--- a/app/javascript/dashboard/i18n/locale/da/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/da/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Anvend",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Seneste 3 måneder",
"LAST_6_MONTHS": "Seneste 6 måneder",
"LAST_YEAR": "Sidste år",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Tilpasset datointerval"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/general.json b/app/javascript/dashboard/i18n/locale/da/general.json
index eb36a5a73..ab081ca60 100644
--- a/app/javascript/dashboard/i18n/locale/da/general.json
+++ b/app/javascript/dashboard/i18n/locale/da/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Luk",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Ja",
+ "NO": "Nej"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/generalSettings.json b/app/javascript/dashboard/i18n/locale/da/generalSettings.json
index cf8279ecb..9ad9eb70d 100644
--- a/app/javascript/dashboard/i18n/locale/da/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/da/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Søg eller hop til",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Generelt",
"REPORTS": "Rapporter",
diff --git a/app/javascript/dashboard/i18n/locale/da/helpCenter.json b/app/javascript/dashboard/i18n/locale/da/helpCenter.json
index 4d7d68b9c..0cc945e86 100644
--- a/app/javascript/dashboard/i18n/locale/da/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/da/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Fejl under sletning af artikel"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Tilføj venligst artiklens overskrift og indhold, så kun du kan opdatere indstillingerne"
},
diff --git a/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json
index a2d3cf391..fc963baf7 100644
--- a/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Indbakker",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Deaktiveret"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Aktiveret",
- "DISABLED": "Deaktiveret"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Aktiver"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Aktivér konversationskontinuitet via e-mail",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Samtaler vil fortsætte via e-mail, hvis kontaktpersonens e-mailadresse er tilgængelig.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Indbakke Indstillinger",
"INBOX_UPDATE_SUB_TEXT": "Opdater dine indbakkeindstillinger",
"AUTO_ASSIGNMENT_SUB_TEXT": "Aktiver eller deaktiver automatisk tildeling af nye samtaler til agenter tilføjet til denne indbakke.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "Ingen",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Indtast en værdi større end 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Begræns det maksimale antal samtaler fra denne indbakke, der kan være auto tildelt en agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Samtale Tildeling",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktiv",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Annuller",
+ "CONFIRM_DELETE": "Slet",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Genautorisér",
"SUBTITLE": "Din Facebook-forbindelse er udløbet, tilslut venligst din Facebook-side igen for at fortsætte tjenesterne",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Gå tilbage"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Utilgængelig besked til besøgende",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Dag",
+ "AVAILABILITY": "Tilgængelighed",
+ "HOURS": "Hours",
"ENABLE": "Aktiver tilgængelighed for denne dag",
"UNAVAILABLE": "Unavailable",
- "HOURS": "timer",
"VALIDATION_ERROR": "Starttidspunkt bør være før lukketid.",
"CHOOSE": "Vælg"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "På en dag"
},
"WIDGET_COLOR_LABEL": "Widget Farve",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat med os",
- "LABEL": "Widget Bubble Launcher Titel",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat med os"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Standard",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Svarer typisk på et par minutter",
diff --git a/app/javascript/dashboard/i18n/locale/da/integrationApps.json b/app/javascript/dashboard/i18n/locale/da/integrationApps.json
index de5265e07..45e0ff27a 100644
--- a/app/javascript/dashboard/i18n/locale/da/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/da/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Henter Integrationer",
"NO_HOOK_CONFIGURED": "Der er ingen {integrationId} integrationer konfigureret på denne konto.",
"HEADER": "Applikationer",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Aktiveret",
"DISABLED": "Deaktiveret"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Henter integrationshoks",
"INBOX": "Indbakke",
+ "ACTIONS": "Handlinger",
"DELETE": {
"BUTTON_TEXT": "Slet"
}
diff --git a/app/javascript/dashboard/i18n/locale/da/integrations.json b/app/javascript/dashboard/i18n/locale/da/integrations.json
index b27b5f270..3babb0dc5 100644
--- a/app/javascript/dashboard/i18n/locale/da/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/da/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Abonnerede Begivenheder",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Annuller",
"DESC": "Webhook-begivenheder giver dig realtidsoplysninger om, hvad der sker på din Chatwoot-konto. Angiv en gyldig URL for at konfigurere et callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Slet",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps tillader organisationer at integrere en applikation i Chatwoot-dashboardet for at give konteksten til kundesupportagenter. Denne funktion giver dig mulighed for at oprette et program uafhængigt og integrere at inde i instrumentbrættet til at give brugerinformation, deres ordrer eller deres tidligere betalingshistorie.
Når du indlejrer din applikation ved hjælp af instrumentbrættet i Chatwoot, dit program vil få konteksten af samtalen og kontakt som en vinduesbegivenhed. Gennemfør en lytter til besked begivenheden på din side for at modtage konteksten.
For at tilføje en ny dashboard app, klik på knappen 'Tilføj en ny dashboard app'.
",
"DESCRIPTION": "Dashboard Apps giver organisationer mulighed for at integrere et program i instrumentbrættet for at give konteksten for kundesupportagenter. Denne funktion giver dig mulighed for at oprette et program uafhængigt og integrere at give brugeroplysninger, deres ordrer, eller deres tidligere betalingshistorik.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Der er ingen dashboard apps konfigureret på denne konto endnu",
"LOADING": "Henter dashboard apps...",
"TABLE_HEADER": {
"NAME": "Navn",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Handlinger"
},
"EDIT_TOOLTIP": "Rediger app",
"DELETE_TOOLTIP": "Slet app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/da/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/da/labelsMgmt.json
index 73913432a..946c90de5 100644
--- a/app/javascript/dashboard/i18n/locale/da/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/da/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Henter etiketter",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Søg efter labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Der er ingen elementer, der matcher denne forespørgsel",
"LIST": {
"404": "Der er ingen tilgængelige etiketter på denne konto.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Navn",
"DESCRIPTION": "Beskrivelse",
- "COLOR": "Farve"
+ "COLOR": "Farve",
+ "ACTION": "Handlinger"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/da/macros.json b/app/javascript/dashboard/i18n/locale/da/macros.json
index 1335941c9..d31a4138d 100644
--- a/app/javascript/dashboard/i18n/locale/da/macros.json
+++ b/app/javascript/dashboard/i18n/locale/da/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Gem macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Navn",
"CREATED BY": "Oprettet af",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Synlighed"
+ "VISIBILITY": "Synlighed",
+ "ACTIONS": "Handlinger"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/da/mfa.json b/app/javascript/dashboard/i18n/locale/da/mfa.json
index 440c89657..99940ab7d 100644
--- a/app/javascript/dashboard/i18n/locale/da/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/da/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/da/report.json b/app/javascript/dashboard/i18n/locale/da/report.json
index fb93cb681..8ecb08ffa 100644
--- a/app/javascript/dashboard/i18n/locale/da/report.json
+++ b/app/javascript/dashboard/i18n/locale/da/report.json
@@ -3,7 +3,7 @@
"HEADER": "Samtaler",
"LOADING_CHART": "Indlæser diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke modtaget nok datapunkter til at generere rapport. Prøv igen senere.",
- "DOWNLOAD_AGENT_REPORTS": "Download agentrapporter",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agenter Oversigt",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Indlæser diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke modtaget nok datapunkter til at generere rapport. Prøv igen senere.",
"DOWNLOAD_AGENT_REPORTS": "Download agentrapporter",
"FILTER_DROPDOWN_LABEL": "Vælg Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Søg agenter"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Vi har ikke modtaget nok datapunkter til at generere rapport. Prøv igen senere.",
"DOWNLOAD_LABEL_REPORTS": "Download etiketrapporter",
"FILTER_DROPDOWN_LABEL": "Vælg Etiket",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Søg efter labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Vælg Indbakke",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Oversigt",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Indlæser diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke modtaget nok datapunkter til at generere rapport. Prøv igen senere.",
"DOWNLOAD_TEAM_REPORTS": "Download teamrapporter",
"FILTER_DROPDOWN_LABEL": "Vælg Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Søg i teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Rapporter",
- "NO_RECORDS": "Der er ingen CSAT undersøgelse svar til rådighed.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Rapporter",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Søg agenter",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Søg i teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Vælg Agenter"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Indbakke"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Bedømmelse"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontakt",
- "AGENT_NAME": "Tildelt agent",
+ "AGENT_NAME": "Agent",
"RATING": "Bedømmelse",
- "FEEDBACK_TEXT": "Kommentar til feedback"
- }
+ "FEEDBACK_TEXT": "Kommentar til feedback",
+ "CONVERSATION": "Samtale",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Svar i alt",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Respons rate",
"TOOLTIP": "Samlet antal svar / Samlet antal CSAT undersøgelsesmeddelelser sendt * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Annuller",
+ "SAVING": "Gemmer...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/da/settings.json b/app/javascript/dashboard/i18n/locale/da/settings.json
index b27835635..01a64899b 100644
--- a/app/javascript/dashboard/i18n/locale/da/settings.json
+++ b/app/javascript/dashboard/i18n/locale/da/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploader...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Denne historie er ikke længere tilgængelig."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Denne historie er ikke længere tilgængelig.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Se på kort"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Læs dokumenter",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funktioner",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Fakturering",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Søg attributter"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Løs samtale",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Løs samtale",
+ "CANCEL": "Annuller"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Ja",
+ "NO": "Nej"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! Vi kunne ikke finde nogen Chatwoot-konti. Opret venligst en ny konto for at fortsætte.",
"NEW_ACCOUNT": "Ny Konto",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Annuller"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/da/signup.json b/app/javascript/dashboard/i18n/locale/da/signup.json
index 553d18fd3..250e5672f 100644
--- a/app/javascript/dashboard/i18n/locale/da/signup.json
+++ b/app/javascript/dashboard/i18n/locale/da/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Opret en konto",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registrer",
"TESTIMONIAL_HEADER": "Alt, hvad der skal til, er blot et skridt for at komme videre",
"TESTIMONIAL_CONTENT": "Du er et skridt fra at engagere dine kunder, fastholde dem og finde nye kunder.",
diff --git a/app/javascript/dashboard/i18n/locale/da/sla.json b/app/javascript/dashboard/i18n/locale/da/sla.json
index d95b1dc28..689ffe7f8 100644
--- a/app/javascript/dashboard/i18n/locale/da/sla.json
+++ b/app/javascript/dashboard/i18n/locale/da/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/da/snooze.json b/app/javascript/dashboard/i18n/locale/da/snooze.json
new file mode 100644
index 000000000..c3b99e8cd
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/da/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "timer",
+ "DAY": "dag",
+ "DAYS": "days",
+ "WEEK": "dag",
+ "WEEKS": "weeks",
+ "MONTH": "uge",
+ "MONTHS": "months",
+ "YEAR": "måned",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "i Morgen",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "næste uge",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "dag",
+ "DAY": "dag"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/da/teamsSettings.json b/app/javascript/dashboard/i18n/locale/da/teamsSettings.json
index 190ffba22..174ab57df 100644
--- a/app/javascript/dashboard/i18n/locale/da/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/da/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Henter hold",
"DESCRIPTION": "Teams giver dig mulighed for at organisere agenter i grupper baseret på deres ansvar. En agent kan tilhøre flere hold. Når du arbejder sammen, kan du tildele samtaler til bestemte teams.",
"LEARN_MORE": "Få flere oplysninger om hold funktionen",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Søg i teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Der er ingen teams oprettet på denne konto.",
"EDIT_TEAM": "Rediger team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Kunne ikke gemme teamdetaljerne. Prøv igen."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "E-MAIL",
+ "AGENT": "Agent",
+ "EMAIL": "E-mail",
"BUTTON_TEXT": "Tilføj agenter",
"ADD_AGENTS": "Tilføjer agenter til dit Team...",
"SELECT": "vælg",
diff --git a/app/javascript/dashboard/i18n/locale/de/agentBots.json b/app/javascript/dashboard/i18n/locale/de/agentBots.json
index a5119b531..39ed7cfcf 100644
--- a/app/javascript/dashboard/i18n/locale/de/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/de/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Lade Editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Bots werden geladen...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook-URL"
+ "URL": "Webhook-URL",
+ "ACTIONS": "Aktionen"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/de/agentMgmt.json b/app/javascript/dashboard/i18n/locale/de/agentMgmt.json
index 6ec5352fb..0ed891af8 100644
--- a/app/javascript/dashboard/i18n/locale/de/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/de/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Diesem Konto sind keine Agenten zugeordnet",
"TITLE": "Verwalten Sie Agenten in Ihrem Team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Es konnte keine Verbindung zum Woot Server hergestellt werden. Bitte versuchen Sie es später erneut"
}
},
+ "SEARCH_PLACEHOLDER": "Agenten suchen...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Keine Ergebnisse gefunden."
},
diff --git a/app/javascript/dashboard/i18n/locale/de/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/de/attributesMgmt.json
index 90f2a2d51..c69c141fd 100644
--- a/app/javascript/dashboard/i18n/locale/de/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/de/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Benutzerdefinierte Attribute abrufen",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Attribut suchen...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Konversation",
"CONTACT": "Kontakt"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Regex Validierung aktivieren"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/de/automation.json b/app/javascript/dashboard/i18n/locale/de/automation.json
index b93b39656..dfec1022c 100644
--- a/app/javascript/dashboard/i18n/locale/de/automation.json
+++ b/app/javascript/dashboard/i18n/locale/de/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automatisierung",
"DESCRIPTION": "Mittels Automatisierung können bestehende Prozesse ersetzt und rationalisiert werden, die manuellen Aufwand erfordern, z. B. das Hinzufügen von Etiketten und die Zuweisung von Gesprächen an den am besten geeigneten Agenten. So kann sich das Team auf seine Stärken konzentrieren und gleichzeitig den Zeitaufwand für Routineaufgaben reduzieren.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Automatisierungsregel hinzufügen",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Automatisierungsregeln abrufen",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Automatisierungsregel hinzufügen",
"SUBMIT": "Erstellen",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Beschreibung",
"ACTIVE": "Aktiv",
- "CREATED_ON": "Erstellt am"
+ "CREATED_ON": "Erstellt am",
+ "ACTIONS": "Aktionen"
},
"404": "Keine Automatisierungsregeln gefunden"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Priorität ändern",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Unterhaltung öffnen"
+ "OPEN_CONVERSATION": "Unterhaltung öffnen",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/de/bulkActions.json b/app/javascript/dashboard/i18n/locale/de/bulkActions.json
index b29f17fdd..ed6a77908 100644
--- a/app/javascript/dashboard/i18n/locale/de/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/de/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Der Konversationsstatus wurde erfolgreich aktualisiert.",
"UPDATE_FAILED": "Konversationen konnten nicht aktualisiert werden. Bitte versuchen Sie es erneut."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Konversationen können aufgrund fehlender notwendiger Attribute nicht gelöst werden",
+ "PARTIAL_SUCCESS": "Einige Konversationen benötigen zum Lösen erforderliche Attribute und wurden übersprungen"
+ },
"LABELS": {
"ASSIGN_LABELS": "Labels zuweisen",
"NO_LABELS_FOUND": "Keine Labels gefunden",
diff --git a/app/javascript/dashboard/i18n/locale/de/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/de/cannedMgmt.json
index 3ddd8de23..e26e3dede 100644
--- a/app/javascript/dashboard/i18n/locale/de/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/de/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Vorgefertigte Antworten",
"LEARN_MORE": "Erfahren Sie mehr über vorgefertigte Antworten",
"DESCRIPTION": "Vorgefertigte Antworten sind vorgeschriebene Antwortvorlagen, die Ihnen helfen, schnell auf eine Konversation zu reagieren. Agenten können das Zeichen '/' gefolgt von dem Kurzbefehl eingeben, um während einer Konversation eine vorgefertigte Antwort einzufügen. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Vorgefertigte Antwort hinzufügen",
"LOADING": "Lade vorgefertigte Antworten...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Es existieren keine Elemente, die dieser Abfrage entsprechen.",
"LIST": {
"404": "In diesem Konto sind keine gespeicherten Antworten verfügbar.",
diff --git a/app/javascript/dashboard/i18n/locale/de/chatlist.json b/app/javascript/dashboard/i18n/locale/de/chatlist.json
index 459e3f3a9..ce4456067 100644
--- a/app/javascript/dashboard/i18n/locale/de/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/de/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Ausstehende Antwort: Kürzeste zuerst"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/de/companies.json b/app/javascript/dashboard/i18n/locale/de/companies.json
index 0144ac7d3..3dcd8ee07 100644
--- a/app/javascript/dashboard/i18n/locale/de/companies.json
+++ b/app/javascript/dashboard/i18n/locale/de/companies.json
@@ -1,13 +1,13 @@
{
"COMPANIES": {
- "HEADER": "Companies",
+ "HEADER": "Unternehmen",
"SORT_BY": {
"LABEL": "Sortieren nach",
"OPTIONS": {
"NAME": "Name",
"DOMAIN": "Domain",
"CREATED_AT": "Erstellt am",
- "CONTACTS_COUNT": "Contacts count"
+ "CONTACTS_COUNT": "Anzahl Kontakte"
}
},
"ORDER": {
@@ -17,17 +17,17 @@
"DESCENDING": "Absteigend"
}
},
- "SEARCH_PLACEHOLDER": "Search companies...",
- "LOADING": "Loading companies...",
- "UNNAMED": "Unnamed Company",
- "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "SEARCH_PLACEHOLDER": "Unternehmen suchen...",
+ "LOADING": "Unternehmen werden geladen...",
+ "UNNAMED": "Unbenanntes Unternehmen",
+ "CONTACTS_COUNT": "{n} Kontakt | {n} Kontakte",
"EMPTY_STATE": {
- "TITLE": "No companies found"
+ "TITLE": "Keine Unternehmen gefunden"
}
},
"COMPANIES_LAYOUT": {
"PAGINATION_FOOTER": {
- "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ "SHOWING": "Zeige {startItem} – {endItem} von {totalItems} Unternehmen | Zeige {startItem} – {endItem} von {totalItems} Unternehmen"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/contact.json b/app/javascript/dashboard/i18n/locale/de/contact.json
index f7e71a75e..36d003067 100644
--- a/app/javascript/dashboard/i18n/locale/de/contact.json
+++ b/app/javascript/dashboard/i18n/locale/de/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Instagram hinzufügen"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Keine Kontakte entsprechen Ihrer Suche 🔍",
"LIST_EMPTY_STATE_TITLE": "Keine Kontakte verfügbar in dieser Ansicht 📋",
"ACTIVE_EMPTY_STATE_TITLE": "Im Moment sind keine Kontakte aktiv 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Labels zuweisen",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "Es sind keine Posteingänge vorhanden, um eine Unterhaltung mit diesem Kontakt zu starten.",
"CONTACT_SELECTOR": {
"LABEL": "An:",
- "TAG_INPUT_PLACEHOLDER": "Suche nach Kontakten mit Name, E-Mail oder Telefonnummer",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Neuen Kontakt erstellen..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Betreff :",
"SUBJECT_PLACEHOLDER": "E-Mail Betreff hier eingeben",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Suche nach einem Kontakt mit seiner E-Mail-Adresse",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Suche nach einem Kontakt mit seiner E-Mail-Adresse",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/de/conversation.json b/app/javascript/dashboard/i18n/locale/de/conversation.json
index 86cc4d002..091120b1d 100644
--- a/app/javascript/dashboard/i18n/locale/de/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/de/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "Diese Nachricht wird nicht unterstützt. Sie können diese Nachricht in der Facebook/Instagram-App sehen.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Diese Nachricht wird nicht unterstützt. Sie können diese Nachricht in der Facebook-Messenger-App sehen.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Diese Nachricht wird nicht unterstützt. Sie können diese Nachricht in der Instagram-App sehen.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Nachricht erfolgreich gelöscht",
"FAIL_DELETE_MESSSAGE": "Nachricht konnte nicht gelöscht werden! Versuchen Sie es erneut",
"NO_RESPONSE": "Keine Antwort",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Label #{labelName} der Konversations-ID {conversationId} zugewiesen",
"FAILED": "Label konnte nicht zugewiesen werden. Bitte versuche es erneut."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Das Team\"{team}\" wurde der Konversations-ID {conversationId} zugewiesen",
"FAILED": "Team konnte nicht zugewiesen werden. Bitte versuche es erneut."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Signatur deaktivieren",
"MSG_INPUT": "Umschalt + Eingabetaste für neue Zeile. Beginnen Sie mit '/', um eine vordefinierte Antwort auszuwählen.",
"PRIVATE_MSG_INPUT": "Umschalt + Eingabetaste für neue Zeile. Dies ist nur für Agenten sichtbar",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Die Nachrichtensignatur ist nicht konfiguriert, bitte konfigurieren Sie sie in den Profileinstellungen.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Klicken Sie hier, um zu aktualisieren",
"WHATSAPP_TEMPLATES": "WhatsApp-Vorlagen"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Zum Anhängen hierher ziehen und ablegen",
"START_AUDIO_RECORDING": "Audioaufzeichnung starten",
"STOP_AUDIO_RECORDING": "Audioaufzeichnung stoppen",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "An",
"ADD_BCC": "BCC hinzufügen",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Unterhaltung erfolgreich gelöscht",
"FAIL_DELETE_CONVERSATION": "Unterhaltung konnte nicht gelöscht werden! Erneut versuchen",
"FILE_SIZE_LIMIT": "Die Datei überschreitet das Anhangslimit von {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Nachricht konnte nicht gesendet werden, bitte versuchen Sie es später erneut",
"SENT_BY": "Gesendet von:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Nachricht konnte nicht gesendet werden! Versuchen Sie es noch einmal",
"TRY_AGAIN": "neu versuchen",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Abbrechen",
"SEND_EMAIL_SUCCESS": "Das Chat-Protokoll wurde erfolgreich gesendet",
"SEND_EMAIL_ERROR": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Das Transkript an den Kunden senden",
"SEND_TO_AGENT": "Transkript an den zugewiesenen Agenten senden",
diff --git a/app/javascript/dashboard/i18n/locale/de/customRole.json b/app/javascript/dashboard/i18n/locale/de/customRole.json
index 152217dca..11b6e8c6a 100644
--- a/app/javascript/dashboard/i18n/locale/de/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/de/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Es existieren keine Elemente, die dieser Abfrage entsprechen.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/de/datePicker.json b/app/javascript/dashboard/i18n/locale/de/datePicker.json
index 53fe1d957..eab957fad 100644
--- a/app/javascript/dashboard/i18n/locale/de/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/de/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Übernehmen",
"CLEAR_BUTTON": "Leeren",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Letzte 3 Monate",
"LAST_6_MONTHS": "Letzte 6 Monate",
"LAST_YEAR": "Letztes Jahr",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Benutzerdefinierter Zeitraum"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/general.json b/app/javascript/dashboard/i18n/locale/de/general.json
index a0b8ac977..0197be8d6 100644
--- a/app/javascript/dashboard/i18n/locale/de/general.json
+++ b/app/javascript/dashboard/i18n/locale/de/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Schließen",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Verwerfen",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Ja",
+ "NO": "Nein"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/generalSettings.json b/app/javascript/dashboard/i18n/locale/de/generalSettings.json
index 33c2c2843..ecf1109ab 100644
--- a/app/javascript/dashboard/i18n/locale/de/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/de/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Suchen oder springen zu",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Generell",
"REPORTS": "Berichte",
diff --git a/app/javascript/dashboard/i18n/locale/de/helpCenter.json b/app/javascript/dashboard/i18n/locale/de/helpCenter.json
index 3be2485d1..4a2cc23a2 100644
--- a/app/javascript/dashboard/i18n/locale/de/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/de/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Fehler beim Löschen des Artikels"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Bitte fügen Sie die Überschrift und den Inhalt des Artikels hinzu, dann können nur Sie die Einstellungen aktualisieren"
},
diff --git a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json
index 43cd5f23e..8ac2639af 100644
--- a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Posteingänge",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Mehr über Posteingänge erfahren",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Ihr Posteingang ist nicht verbunden. Sie erhalten keine neuen Nachrichten, bis Sie ihn erneut autorisieren.",
"CLICK_TO_RECONNECT": "Klicken Sie hier, um die Verbindung wiederherzustellen.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Verwenden Sie nur den konfigurierten Firmennamen als Absendernamen in der E-Mail-Kopfzeile."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Konfigurieren Sie Ihren Firmennamen",
+ "BUTTON_TEXT": "Konfigurieren Sie Ihren Firmennamen",
"PLACEHOLDER": "Geben Sie Ihren Firmennamen ein",
"SAVE_BUTTON_TEXT": "Speichern"
}
@@ -589,8 +592,10 @@
"DISABLED": "Deaktiviert"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Aktiviert",
- "DISABLED": "Deaktiviert"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Aktivieren"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Aktivieren/Deaktivieren Sie die Anzeige des Agentennamens in der E-Mail. Wenn deaktiviert, wird der Firmenname angezeigt",
"ENABLE_CONTINUITY_VIA_EMAIL": "Konversationskontinuität per E-Mail aktivieren",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Konversationen werden per E-Mail fortgesetzt, wenn die Kontakt-E-Mail-Adresse verfügbar ist.",
- "LOCK_TO_SINGLE_CONVERSATION": "Mehrere Konversationen zulassen",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Mehrere gleichzeitige Unterhaltungen für denselben Kontakt in diesem Posteingang aktivieren oder deaktivieren",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Posteingangseinstellungen",
"INBOX_UPDATE_SUB_TEXT": "Posteingangseinstellungen aktualisieren",
"AUTO_ASSIGNMENT_SUB_TEXT": "Aktivieren oder deaktivieren Sie die automatische Zuweisung verfügbarer Agenten für neue Konversationen",
@@ -758,6 +775,7 @@
"LABEL": "Hilfezentrum",
"PLACEHOLDER": "Hilfezentrum auswählen",
"SELECT_PLACEHOLDER": "Hilfezentrum auswählen",
+ "NONE": "Keine",
"REMOVE": "Hilfezentrum entfernen",
"SUB_TEXT": "Ein Hilfezentrum am Posteingang anhängen"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Bitte geben Sie einen Wert größer als 0 ein",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Beschränken Sie die maximale Anzahl von Konversationen aus diesem Posteingang, die einem Agenten automatisch zugewiesen werden können"
},
+ "ASSIGNMENT": {
+ "TITLE": "Konversationssauftrag",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktiv",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Stornieren",
+ "CONFIRM_DELETE": "Löschen",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Neu autorisieren",
"SUBTITLE": "Ihre Facebook-Verbindung ist abgelaufen, bitte verbinden Sie sich neu, um die Dienste fortzuführen",
@@ -825,7 +890,7 @@
"PENDING": "Pending WhatsApp approval",
"REJECTED": "Meta rejected the template",
"DEFAULT": "Needs WhatsApp approval",
- "NOT_FOUND": "The template does not exist in the Meta platform."
+ "NOT_FOUND": "Die Voralge ist auf der Meta-Plattform nicht vorhanden."
},
"TEMPLATE_CREATION": {
"SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
@@ -833,10 +898,24 @@
},
"TEMPLATE_UPDATE_DIALOG": {
"TITLE": "Edit survey details",
- "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "DESCRIPTION": "Wir löschen die vorherige Vorlage und erstellen eine neue, die erneut zur Genehmigung durch WhatsApp gesendet wird",
"CONFIRM": "Create new template",
"CANCEL": "Zurück"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Nachricht für Besucher außerhalb Geschäftszeiten",
"TOGGLE_HELP": "Wenn die Geschäftsverfügbarkeit aktiviert ist, werden die verfügbaren Stunden im Live-Chat-Widget angezeigt, auch wenn alle Agenten offline sind. Außerhalb der verfügbaren Stunden können Besucher mit einer Nachricht und einem Chat-Formular gewarnt werden.",
"DAY": {
+ "DAY": "Tag",
+ "AVAILABILITY": "Verfügbarkeit",
+ "HOURS": "Hours",
"ENABLE": "Verfügbarkeit für diesen Tag aktivieren",
"UNAVAILABLE": "Nicht verfügbar",
- "HOURS": "Stunden",
"VALIDATION_ERROR": "Die Startzeit sollte vor der Schließzeit liegen.",
"CHOOSE": "Auswählen"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Innerhalb eines Tages"
},
"WIDGET_COLOR_LABEL": "Widget Farbe",
- "WIDGET_BUBBLE_POSITION_LABEL": "Position der Widget-Blase",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget-Blasentyp",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Typ:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chatten Sie mit uns",
- "LABEL": "Widget Bubble Launcher-Titel",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chatten Sie mit uns"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Standard",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Wir antworten üblicherweise innerhalb weniger Minuten",
diff --git a/app/javascript/dashboard/i18n/locale/de/integrationApps.json b/app/javascript/dashboard/i18n/locale/de/integrationApps.json
index 7b60198f8..65566b625 100644
--- a/app/javascript/dashboard/i18n/locale/de/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/de/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Integrationen werden abgerufen",
"NO_HOOK_CONFIGURED": "Es wurden keine {integrationId} Integrationen in diesem Konto konfiguriert.",
"HEADER": "Anwendungen",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Aktiviert",
"DISABLED": "Deaktiviert"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Hooks werden abgerufen",
"INBOX": "Posteingang",
+ "ACTIONS": "Aktionen",
"DELETE": {
"BUTTON_TEXT": "Löschen"
}
diff --git a/app/javascript/dashboard/i18n/locale/de/integrations.json b/app/javascript/dashboard/i18n/locale/de/integrations.json
index c9f751b30..96686c45e 100644
--- a/app/javascript/dashboard/i18n/locale/de/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/de/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integriert sich mit mehreren Tools und Diensten, um die Effizienz Ihres Teams zu verbessern. Erkunden Sie die folgende Liste, um Ihre Lieblingsapps zu konfigurieren.",
"LEARN_MORE": "Mehr über Integrationen erfahren",
"LOADING": "Integrationen werden abgerufen",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain ist auf Ihrem Konto nicht aktiviert.",
"CLICK_HERE_TO_CONFIGURE": "Hier klicken, um zu konfigurieren",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Abonnierte Events",
"LEARN_MORE": "Mehr über Webhooks erfahren",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Stornieren",
"DESC": "Webhook-Ereignisse bieten Ihnen Echtzeitinformationen darüber, was in Ihrem Chatwoot-Konto passiert. Bitte geben Sie eine gültige URL ein, um einen Rückruf zu konfigurieren.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Löschen",
"DELETE_CONFIRMATION": {
"TITLE": "Integration löschen",
@@ -145,7 +160,29 @@
"EXPAND": "Erweitern",
"MAKE_FRIENDLY": "Nachrichtenton in freundlich ändern",
"MAKE_FORMAL": "Formellen Ton verwenden",
- "SIMPLIFY": "Vereinfachen"
+ "SIMPLIFY": "Vereinfachen",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professionell",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Freundlich"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Inhalt entwerfen",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard-Apps ermöglichen es Unternehmen, eine Anwendung in das Chatwoot-Dashboard einzubetten, um den Kontext für Kundendienstmitarbeiter bereitzustellen. Mit dieser Funktion können Sie eine Anwendung unabhängig erstellen und diese in das Dashboard einbetten, um Benutzerinformationen, ihre Bestellungen oder ihren bisherigen Zahlungsverlauf bereitzustellen.
Wenn Sie Ihre Anwendung über das Dashboard in Chatwoot einbetten, erhält Ihre Anwendung den Kontext der Unterhaltung und des Kontakts als Fensterereignis. Implementieren Sie einen Listener für das Nachrichtenereignis auf Ihrer Seite, um den Kontext zu erhalten.
Um eine neue Dashboard-App hinzuzufügen, klicken Sie auf die Schaltfläche „Neue Dashboard-App hinzufügen“.
",
"DESCRIPTION": "Dashboard-Apps ermöglichen es Unternehmen, eine Anwendung in das Dashboard einzubetten, um den Kontext für Kundendienstmitarbeiter bereitzustellen. Mit dieser Funktion können Sie eine Anwendung unabhängig erstellen und diese einbetten, um Benutzerinformationen, ihre Bestellungen oder ihren bisherigen Zahlungsverlauf bereitzustellen.",
"LEARN_MORE": "Mehr über Dashboard-Apps erfahren",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Für dieses Konto sind noch keine Dashboard-Apps konfiguriert",
"LOADING": "Dashboard-Apps werden abgerufen...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpunkt"
+ "ENDPOINT": "Endpunkt",
+ "ACTIONS": "Aktionen"
},
"EDIT_TOOLTIP": "App bearbeiten",
"DELETE_TOOLTIP": "Anwendung löschen"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Lineares Problem erstellen/verknüpfen",
"LOADING": "Lineare Probleme werden abgerufen...",
"LOADING_ERROR": "Beim Abrufen der linearen Probleme ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "Sie können Ihr Paket jederzeit ändern oder kündigen"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Tarif upgraden, um Zugang zu unseren Assistenten, Copilot und mehr zu erhalten.",
"ASK_ADMIN": "Bitte kontaktieren Sie Ihren Administrator für das Upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/de/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/de/labelsMgmt.json
index e3a85ef2c..3e7d8c811 100644
--- a/app/javascript/dashboard/i18n/locale/de/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/de/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Label werden abgerufen",
"DESCRIPTION": "Labels helfen Ihnen, Konversationen und Leads zu kategorisieren und zu priorisieren. Sie können einer Konversation oder einem Kontakt über das Seitenpanel ein Label zuweisen.",
"LEARN_MORE": "Mehr über Labels erfahren",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Labels suchen...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Es existieren keine Elemente, die dieser Abfrage entsprechen",
"LIST": {
"404": "In diesem Konto sind keine Labels verfügbar.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Beschreibung",
- "COLOR": "Farbe"
+ "COLOR": "Farbe",
+ "ACTION": "Aktionen"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/de/macros.json b/app/javascript/dashboard/i18n/locale/de/macros.json
index 829c5c79a..f39444991 100644
--- a/app/javascript/dashboard/i18n/locale/de/macros.json
+++ b/app/javascript/dashboard/i18n/locale/de/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Makros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Neues Makro hinzufügen",
"HEADER_BTN_TXT_SAVE": "Makro speichern",
"LOADING": "Makros abrufen",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Etwas ist schiefgelaufen. Bitte versuche es erneut",
"ORDER_INFO": "Makros werden in der Reihenfolge ausgeführt, in der Sie Ihre Aktionen hinzufügen. Sie können sie neu anordnen, indem Sie sie am Griff neben jedem Knoten ziehen.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Erstellt von",
"LAST_UPDATED_BY": "Zuletzt aktualisiert von",
- "VISIBILITY": "Sichtbarkeit"
+ "VISIBILITY": "Sichtbarkeit",
+ "ACTIONS": "Aktionen"
},
"404": "Keine Makros gefunden"
},
diff --git a/app/javascript/dashboard/i18n/locale/de/mfa.json b/app/javascript/dashboard/i18n/locale/de/mfa.json
index de9b27cf7..c0e97be83 100644
--- a/app/javascript/dashboard/i18n/locale/de/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/de/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/de/report.json b/app/javascript/dashboard/i18n/locale/de/report.json
index b61ce23eb..8e83a1346 100644
--- a/app/javascript/dashboard/i18n/locale/de/report.json
+++ b/app/javascript/dashboard/i18n/locale/de/report.json
@@ -3,7 +3,7 @@
"HEADER": "Gespräche",
"LOADING_CHART": "Diagrammdaten laden ...",
"NO_ENOUGH_DATA": "Wir haben nicht genügend Datenpunkte erhalten, um einen Bericht zu erstellen. Bitte versuchen Sie es später erneut.",
- "DOWNLOAD_AGENT_REPORTS": "Agenten-Berichte herunterladen",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Daten konnten nicht abgerufen werden. Bitte versuchen Sie es später erneut.",
"SUMMARY_FETCHING_FAILED": "Zusammenfassung konnte nicht abgerufen werden. Bitte versuchen Sie es später erneut.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agenten-Übersicht",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Diagrammdaten laden ...",
"NO_ENOUGH_DATA": "Wir haben nicht genügend Datenpunkte erhalten, um einen Bericht zu erstellen. Bitte versuchen Sie es später erneut.",
"DOWNLOAD_AGENT_REPORTS": "Agenten-Berichte herunterladen",
"FILTER_DROPDOWN_LABEL": "Agent auswählen",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Agenten suchen"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konversationen",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Wir haben nicht genügend Datenpunkte erhalten, um einen Bericht zu erstellen. Bitte versuchen Sie es später erneut.",
"DOWNLOAD_LABEL_REPORTS": "Label-Berichte herunterladen",
"FILTER_DROPDOWN_LABEL": "Label auswählen",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Labels suchen"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konversationen",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Eingang auswählen",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konversationen",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team-Übersicht",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Diagrammdaten laden ...",
"NO_ENOUGH_DATA": "Wir haben nicht genügend Datenpunkte erhalten, um einen Bericht zu erstellen. Bitte versuchen Sie es später erneut.",
"DOWNLOAD_TEAM_REPORTS": "Team-Berichte herunterladen",
"FILTER_DROPDOWN_LABEL": "Team auswählen",
+ "FILTERS": {
+ "ADD_FILTER": "Filter hinzufügen",
+ "CLEAR_ALL": "Alle löschen",
+ "NO_FILTER": "Keine Filter verfügbar",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Teams suchen"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konversationen",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT-Berichte",
- "NO_RECORDS": "Es sind keine Antworten zu CSAT Umfragen verfügbar.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "CSAT-Berichte herunterladen",
"DOWNLOAD_FAILED": "CSAT-Berichte konnten nicht heruntergeladen werden",
"FILTERS": {
+ "ADD_FILTER": "Filter hinzufügen",
+ "CLEAR_ALL": "Alle löschen",
+ "NO_FILTER": "Keine Filter verfügbar",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Agenten suchen",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Teams suchen",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Agenten wählen"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Posteingang"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Bewertung"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontakt",
- "AGENT_NAME": "Zugewiesener Agent",
+ "AGENT_NAME": "Agent",
"RATING": "Bewertung",
- "FEEDBACK_TEXT": "Feedback-Kommentar"
- }
+ "FEEDBACK_TEXT": "Feedback-Kommentar",
+ "CONVERSATION": "Konversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Antwort",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Antworten gesamt",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Antwortrate",
"TOOLTIP": "Anzahl aller Antworten / Anzahl der gesendeten CSAT-Umfrage * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Speichern",
+ "CANCEL": "Stornieren",
+ "SAVING": "Speichern...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/de/settings.json b/app/javascript/dashboard/i18n/locale/de/settings.json
index a0afa092b..24e13e3e0 100644
--- a/app/javascript/dashboard/i18n/locale/de/settings.json
+++ b/app/javascript/dashboard/i18n/locale/de/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Herunterladen",
"UPLOADING": "Wird hochgeladen...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Diese Geschichte ist nicht mehr verfügbar."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Diese Geschichte ist nicht mehr verfügbar.",
+ "INSTAGRAM_STORY_REPLY": "Auf deine Geschichte geantwortet:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Auf Karte ansehen"
@@ -307,7 +308,7 @@
"SETTINGS": "Einstellungen",
"CONTACTS": "Kontakte",
"ACTIVE": "Aktiv",
- "COMPANIES": "Companies",
+ "COMPANIES": "Unternehmen",
"ALL_COMPANIES": "All Companies",
"CAPTAIN": "Kapitän",
"CAPTAIN_ASSISTANTS": "Assistants",
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Dokumente lesen",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Kapitän",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funktionen",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Rechnungen",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Attribut suchen"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Konversation lösen",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Konversation lösen",
+ "CANCEL": "Stornieren"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Ja",
+ "NO": "Nein"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Oh oh! Wir konnten keine Chatwoot-Konten finden. Bitte erstellen Sie ein neues Konto um fortzufahren.",
"NEW_ACCOUNT": "Neuer Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Stornieren"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/de/signup.json b/app/javascript/dashboard/i18n/locale/de/signup.json
index 57e885325..d6718df1e 100644
--- a/app/javascript/dashboard/i18n/locale/de/signup.json
+++ b/app/javascript/dashboard/i18n/locale/de/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Konto erstellen",
+ "GET_STARTED": "Mit Chatwoot loslegen",
"TITLE": "Registrieren",
"TESTIMONIAL_HEADER": "Alles, was er braucht, ist ein Schritt, um vorwärtszugehen",
"TESTIMONIAL_CONTENT": "Sie sind nur noch einen Schritt davon entfernt, Ihre Kunden zu gewinnen, zu binden und neue zu finden.",
diff --git a/app/javascript/dashboard/i18n/locale/de/sla.json b/app/javascript/dashboard/i18n/locale/de/sla.json
index e97eec9f6..f58aa659c 100644
--- a/app/javascript/dashboard/i18n/locale/de/sla.json
+++ b/app/javascript/dashboard/i18n/locale/de/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/de/snooze.json b/app/javascript/dashboard/i18n/locale/de/snooze.json
new file mode 100644
index 000000000..a475722e4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/de/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "Minute",
+ "MINUTES": "minutes",
+ "HOUR": "Stunde",
+ "HOURS": "Stunden",
+ "DAY": "Tag",
+ "DAYS": "days",
+ "WEEK": "tag",
+ "WEEKS": "Wochen",
+ "MONTH": "woche",
+ "MONTHS": "Monate",
+ "YEAR": "monat",
+ "YEARS": "Jahre"
+ },
+ "HALF": "halb",
+ "NEXT": "nächste",
+ "THIS": "diese",
+ "AT": "um",
+ "IN": "in",
+ "FROM_NOW": "ab jetzt",
+ "NEXT_YEAR": "nächstes Jahr",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "morgen",
+ "DAY_AFTER_TOMORROW": "übermorgen",
+ "NEXT_WEEK": "nächste Woche",
+ "NEXT_MONTH": "nächsten Monat",
+ "THIS_WEEKEND": "dieses Wochenende",
+ "NEXT_WEEKEND": "nächstes Wochenende"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "Morgen",
+ "AFTERNOON": "Nachmittag",
+ "EVENING": "Abend",
+ "NIGHT": "Nacht",
+ "NOON": "Mittag",
+ "MIDNIGHT": "Mitternacht"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "eins",
+ "TWO": "zwei",
+ "THREE": "drei",
+ "FOUR": "vier",
+ "FIVE": "fünf",
+ "SIX": "sechs",
+ "SEVEN": "sieben",
+ "EIGHT": "acht",
+ "NINE": "neun",
+ "TEN": "zehn",
+ "TWELVE": "zwölf",
+ "FIFTEEN": "fünfzehn",
+ "TWENTY": "zwanzig",
+ "THIRTY": "dreißig"
+ },
+ "ORDINALS": {
+ "FIRST": "erste",
+ "SECOND": "zweite",
+ "THIRD": "dritte",
+ "FOURTH": "vierte",
+ "FIFTH": "fünfte"
+ },
+ "OF": "von",
+ "AFTER": "nach",
+ "WEEK": "tag",
+ "DAY": "Tag"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/de/teamsSettings.json b/app/javascript/dashboard/i18n/locale/de/teamsSettings.json
index 0589c28b0..ced13b942 100644
--- a/app/javascript/dashboard/i18n/locale/de/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/de/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Teams werden abgerufen",
"DESCRIPTION": "Teams ermöglichen es Ihnen, Agenten basierend auf ihren Aufgaben in Gruppen zu organisieren. Ein Agent kann mehreren Teams angehören. Bei der Zusammenarbeit können Sie Unterhaltungen bestimmten Teams zuweisen.",
"LEARN_MORE": "Erfahren Sie mehr über Teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Teams suchen...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Es wurden noch keine Teams auf diesem Konto erstellt.",
"EDIT_TEAM": "Team bearbeiten",
diff --git a/app/javascript/dashboard/i18n/locale/el/agentBots.json b/app/javascript/dashboard/i18n/locale/el/agentBots.json
index b2b475816..fcf146f3d 100644
--- a/app/javascript/dashboard/i18n/locale/el/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/el/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Σύνδεσμος Webhook"
+ "URL": "Σύνδεσμος Webhook",
+ "ACTIONS": "Ενέργειες"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/el/agentMgmt.json b/app/javascript/dashboard/i18n/locale/el/agentMgmt.json
index fddb0d1f2..c3963ae5d 100644
--- a/app/javascript/dashboard/i18n/locale/el/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/el/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Διαχειριστής",
"AGENT": "Πράκτορας"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Δεν υπάρχουν πράκτορες σε αυτόν τον λογαριασμό",
"TITLE": "Διαχείριση πρακτόρων της ομάδας σας",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Αδυναμία σύνδεσης με τον Woot Server, Παρακαλώ προσπαθήστε αργότερα"
}
},
+ "SEARCH_PLACEHOLDER": "Αναζήτηση πράκτορων...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Δεν βρέθηκαν αποτελέσματα."
},
diff --git a/app/javascript/dashboard/i18n/locale/el/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/el/attributesMgmt.json
index fe3744f31..7f8029977 100644
--- a/app/javascript/dashboard/i18n/locale/el/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/el/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Λήψη προσαρμοσμένων ιδιοτήτων",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Αναζήτηση ιδιοτήτων...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Συνομιλία",
"CONTACT": "Επαφές"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/el/automation.json b/app/javascript/dashboard/i18n/locale/el/automation.json
index 67ffae506..8a1ae42d5 100644
--- a/app/javascript/dashboard/i18n/locale/el/automation.json
+++ b/app/javascript/dashboard/i18n/locale/el/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Αυτοματισμός",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Προσθήκη Κανόνα Αυτοματισμού",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Λήψη κανόνων αυτοματισμού",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Προσθήκη Κανόνα Αυτοματισμού",
"SUBMIT": "Δημιουργία",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Όνομα",
- "DESCRIPTION": "Περιγραφή",
"ACTIVE": "Ενεργή",
- "CREATED_ON": "Δημιουργήθηκε στις"
+ "CREATED_ON": "Δημιουργήθηκε στις",
+ "ACTIONS": "Ενέργειες"
},
"404": "Δεν βρέθηκαν κανόνες αυτοματισμού"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Άνοιγμα συνομιλίας"
+ "OPEN_CONVERSATION": "Άνοιγμα συνομιλίας",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/el/bulkActions.json b/app/javascript/dashboard/i18n/locale/el/bulkActions.json
index 0d908df18..3012f6582 100644
--- a/app/javascript/dashboard/i18n/locale/el/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/el/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Η κατάσταση συνομιλίας ενημερώθηκε με επιτυχία.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "Δεν βρέθηκαν ετικέτες",
diff --git a/app/javascript/dashboard/i18n/locale/el/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/el/cannedMgmt.json
index b7826ccac..ecd7f893f 100644
--- a/app/javascript/dashboard/i18n/locale/el/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/el/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Έτοιμες Απαντήσεις",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Δεν υπάρχουν δεδομένα που να ταιριάζουν με αυτό το ερώτημα.",
"LIST": {
"404": "Δεν υπάρχουν τυποποιημένες απαντήσεις σε αυτόν τον λογαριασμό.",
diff --git a/app/javascript/dashboard/i18n/locale/el/chatlist.json b/app/javascript/dashboard/i18n/locale/el/chatlist.json
index 434da2f2e..a8da62090 100644
--- a/app/javascript/dashboard/i18n/locale/el/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/el/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/el/contact.json b/app/javascript/dashboard/i18n/locale/el/contact.json
index cc4f70304..aaae1286c 100644
--- a/app/javascript/dashboard/i18n/locale/el/contact.json
+++ b/app/javascript/dashboard/i18n/locale/el/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Δεν υπάρχουν επαφές που να αντιστοιχούν με την αναζήτησή σας 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Ανάθεση Ετικετών",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Προς:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Θέμα :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/el/conversation.json b/app/javascript/dashboard/i18n/locale/el/conversation.json
index 6be18fc2f..42e633acf 100644
--- a/app/javascript/dashboard/i18n/locale/el/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/el/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Το μήνυμα διαγράφηκε επιτυχώς",
"FAIL_DELETE_MESSSAGE": "Δεν ήταν δυνατή η διαγραφή μηνύματος! Προσπαθήστε ξανά",
"NO_RESPONSE": "Καμία ανταπόκριση",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Αποτυχία στην εκχώρηση ετικέτας, παρακαλώ δοκιμάστε αργότερα."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Η συνομιλία με αριθμό {conversationId} ανατέθηκε στην ομάδα \"{team}\"",
"FAILED": "Αδυναμία αντιστοίχισης ομάδας. Παρακαλώ δοκιμάστε ξανά."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Απενεργοποίηση υπογραφής",
"MSG_INPUT": "Shift + enter για νέα γραμμή. Ξεκινήστε με '/' για να επιλέξτε Τυποποιημένη Απάντηση.",
"PRIVATE_MSG_INPUT": "Shift + enter για νέα γραμμή. Το κείμενο θα μπορούν να το δουν μόνο οι υπόλοιποι πράκτορες.",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Δεν έχει ρυθμιστεί η υπογραφή μηνύματος, παρακαλώ ρυθμίστε την στις ρυθμίσεις προφίλ.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Πατήστε εδώ για ενημέρωση",
"WHATSAPP_TEMPLATES": "Πρότυπα Whatsapp"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Σύρετε και αφήστε εδώ για επισύναψη",
"START_AUDIO_RECORDING": "Έναρξη ηχογράφησης",
"STOP_AUDIO_RECORDING": "Διακοπή ηχογράφησης",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Προσθήκη bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Το αρχείο υπερβαίνει το όριο συνημμένου {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE}",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Δεν είναι δυνατή η αποστολή του μηνύματος, παρακαλώ προσπαθήστε ξανά αργότερα",
"SENT_BY": "Αποστολή από:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Δεν ήταν δυνατή η αποστολή μηνύματος! Προσπαθήστε ξανά",
"TRY_AGAIN": "επανάληψη",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Άκυρο",
"SEND_EMAIL_SUCCESS": "Η μεταγραφή της συνομιλίας έχει αποσταλεί επιτυχώς",
"SEND_EMAIL_ERROR": "Υπήρξε ένα σφάλμα, παρακαλώ προσπαθήστε ξανά",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Στείλτε το αντίγραφο στον πελάτη",
"SEND_TO_AGENT": "Στείλε το αντίγραφο στον αντιστοιχισμένο πράκτορα",
diff --git a/app/javascript/dashboard/i18n/locale/el/customRole.json b/app/javascript/dashboard/i18n/locale/el/customRole.json
index 564aef729..26e80edd3 100644
--- a/app/javascript/dashboard/i18n/locale/el/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/el/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Δεν υπάρχουν δεδομένα που να ταιριάζουν με αυτό το ερώτημα.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/el/datePicker.json b/app/javascript/dashboard/i18n/locale/el/datePicker.json
index f07088e23..f5f3f7b78 100644
--- a/app/javascript/dashboard/i18n/locale/el/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/el/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Εφαρμογή",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Τελευταίοι 3 μήνες",
"LAST_6_MONTHS": "Τελευταίοι 6 μήνες",
"LAST_YEAR": "Τελευταίο έτος",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Προσαρμοσμένο εύρος ημερομηνιών"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/general.json b/app/javascript/dashboard/i18n/locale/el/general.json
index 759bd7ea0..ee03858ee 100644
--- a/app/javascript/dashboard/i18n/locale/el/general.json
+++ b/app/javascript/dashboard/i18n/locale/el/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Κλείσιμο",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Ναι",
+ "NO": "Όχι"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/generalSettings.json b/app/javascript/dashboard/i18n/locale/el/generalSettings.json
index 16145434d..d54572642 100644
--- a/app/javascript/dashboard/i18n/locale/el/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/el/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Αναζήτηση ή μετάβαση σε",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Γενικά",
"REPORTS": "Αναφορές",
diff --git a/app/javascript/dashboard/i18n/locale/el/helpCenter.json b/app/javascript/dashboard/i18n/locale/el/helpCenter.json
index 40ecccb93..dce621f00 100644
--- a/app/javascript/dashboard/i18n/locale/el/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/el/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Σφάλμα κατά τη διαγραφή άρθρου"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Παρακαλώ προσθέστε την επικεφαλίδα και το περιεχόμενο του άρθρου για να μπορείτε να ενημερώσετε τις ρυθμίσεις"
},
diff --git a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json
index d635b83aa..93891dde9 100644
--- a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Κιβώτια Εισερχομένων",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Ανενεργό"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Ενεργό",
- "DISABLED": "Ανενεργό"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Ενεργοποίηση"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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": "Ρυθμίσεις",
@@ -694,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": "Προσθέστε ή αφαιρέστε πράκτορες σε αυτό το κιβώτιο",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Ενεργοποίηση της συνέχειας συνομιλίας μέσω email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Οι συζητήσεις θα συνεχίσουν μέσω email αν η διεύθυνση ηλεκτρονικού ταχυδρομείου επαφής είναι διαθέσιμη.",
- "LOCK_TO_SINGLE_CONVERSATION": "Κλείδωμα σε μία μόνο συζήτηση",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Ενεργοποίηση ή απενεργοποίηση πολλαπλών συνομιλιών για την ίδια επαφή σε αυτά τα εισερχόμενα",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Ρυθμίσεις Κιβωτίου",
"INBOX_UPDATE_SUB_TEXT": "Ενημερώστε τις ρυθμίσεις του κιβωτίου σας",
"AUTO_ASSIGNMENT_SUB_TEXT": "Ενεργοποιήστε ή απενεργοποιήστε την αυτόματη αντιστοίχιση των νέων συζητήσεων στους πράκτορες αυτού του κιβωτίου.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "Κανένα",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Παρακαλώ εισάγετε μια τιμή μεγαλύτερη από 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Περιορισμός του μέγιστου αριθμού συνομιλιών από αυτά τα εισερχόμενα που μπορούν να εκχωρηθούν αυτόματα σε έναν πράκτορα"
},
+ "ASSIGNMENT": {
+ "TITLE": "Ανάθεση Συνομιλίας",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Ενεργή",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Άκυρο",
+ "CONFIRM_DELETE": "Διαγραφή",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Εκ νέου εξουσιοδότηση",
"SUBTITLE": "Η σύνδεση Facebook έχει λήξει, παρακαλώ ξανασυνδεθείτε στο Facebook για να συνεχίσετε",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Πίσω"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Μήνυμα μη διαθεσιμότητας για τους επισκέπτες",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Ημέρα",
+ "AVAILABILITY": "Διαθεσιμότητα",
+ "HOURS": "Hours",
"ENABLE": "Ενεργοποιήσετε τη διαθεσιμότητα για αυτήν την ημέρα",
"UNAVAILABLE": "Μη διαθέσιμος",
- "HOURS": "ώρες",
"VALIDATION_ERROR": "Ο χρόνος έναρξης πρέπει να είναι πριν το χρόνο λήξης.",
"CHOOSE": "Επιλέξτε"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Σε μία ημέρα"
},
"WIDGET_COLOR_LABEL": "Χρώμα Widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Θέση Φυσαλίδας Widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "Τύπος Φυσαλίδας Widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Τύπος:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Συνομιλήστε μαζί μας",
- "LABEL": "Τίτλος Εκκίνησης Φυσαλίδας Widget",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Συνομιλήστε μαζί μας"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Προεπιλογή",
- "CHAT": "Συνομιλία"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Τυπικά έχετε απάντηση σε μερικά λεπτά",
diff --git a/app/javascript/dashboard/i18n/locale/el/integrationApps.json b/app/javascript/dashboard/i18n/locale/el/integrationApps.json
index 4106adda7..d0b7e83db 100644
--- a/app/javascript/dashboard/i18n/locale/el/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/el/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Λήψη Indegrations",
"NO_HOOK_CONFIGURED": "Δεν υπάρχουν {integrationId} integrations ρυθμισμένες σε αυτόν το λογαριασμό.",
"HEADER": "Εφαρμογές",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Ενεργό",
"DISABLED": "Ανενεργό"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Λήψη Integrations",
"INBOX": "Εισερχόμενα",
+ "ACTIONS": "Ενέργειες",
"DELETE": {
"BUTTON_TEXT": "Διαγραφή"
}
diff --git a/app/javascript/dashboard/i18n/locale/el/integrations.json b/app/javascript/dashboard/i18n/locale/el/integrations.json
index be530ce09..270212b28 100644
--- a/app/javascript/dashboard/i18n/locale/el/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/el/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Εγγεγραμμένα Συμβάντα",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Άκυρο",
"DESC": "Τα συμβάντα Webhook μας εφοδιάζουν με πληροφορίες πραγματικού χρόνου σχετικά με το τι συμβαίνει στο λογαριασμό σας στο Chatwoot. Παρακαλώ εισάγετε ένα έγκυρο URL στην σχετική ρύθμιση.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Διαγραφή",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Εφαρμογές Dashboard
Οι εφαρμογές Dashboard επιτρέπουν σε οργανισμούς να ενσωματώσουν μια εφαρμογή μέσα στο ταμπλό Chatwoot για να παρέχουν το πλαίσιο για τους πράκτορες υποστήριξης πελατών. Αυτό το χαρακτηριστικό σας επιτρέπει να δημιουργήσετε μια εφαρμογή ανεξάρτητα και ενσωματωμένη που μέσα στον πίνακα ελέγχου για να παρέχει πληροφορίες χρήστη, τις παραγγελίες τους, ή το ιστορικό προηγούμενων πληρωμών τους.
Όταν ενσωματώσετε την εφαρμογή σας χρησιμοποιώντας το Dashboard στο Chatwoot, η εφαρμογή σας θα πάρει το πλαίσιο της συνομιλίας και θα επικοινωνήσει ως ένα παράθυρο εκδήλωσης. Εφαρμόστε έναν ακροατή για το γεγονός του μηνύματος στη σελίδα σας για να λάβετε το πλαίσιο.
Για να προσθέσετε μια νέα εφαρμογή ταμπλό, κάντε κλικ στο κουμπί 'Προσθήκη μιας νέας εφαρμογής Dashboard'.
",
"DESCRIPTION": "Οι εφαρμογές Dashboard επιτρέπουν στους οργανισμούς να ενσωματώσουν μια εφαρμογή μέσα στον πίνακα ελέγχου για να παρέχουν το περιεχόμενο για τους πράκτορες υποστήριξης πελατών. Αυτή η λειτουργία σας επιτρέπει να δημιουργήσετε μια εφαρμογή ανεξάρτητα και ενσωματωμένη που θα παρέχει πληροφορίες χρήστη, τις παραγγελίες τους, ή το ιστορικό προηγούμενων πληρωμών τους.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Δεν έχουν δημιουργηθεί εφαρμογές Dashboard για αυτόν το λογαριασμό",
"LOADING": "Λήψη εφαρμογών dashboard ...",
"TABLE_HEADER": {
"NAME": "Όνομα",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Ενέργειες"
},
"EDIT_TOOLTIP": "Επεξεργασία εφαρμογής",
"DELETE_TOOLTIP": "Διαγραφή εφαρμογής"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/el/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/el/labelsMgmt.json
index 80243e6e4..3675781dc 100644
--- a/app/javascript/dashboard/i18n/locale/el/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/el/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Λήψη ετικετών",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Αναζήτηση ετικετών...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Δεν υπάρχουν αντικείμενα να ταιριάζουν με αυτό το ερώτημα",
"LIST": {
"404": "Δεν υπάρχουν ετικέτες διαθέσιμες σε αυτόν τον λογαριασμό.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Όνομα",
"DESCRIPTION": "Περιγραφή",
- "COLOR": "Χρώμα"
+ "COLOR": "Χρώμα",
+ "ACTION": "Ενέργειες"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/el/macros.json b/app/javascript/dashboard/i18n/locale/el/macros.json
index 02ed92095..59b3124e6 100644
--- a/app/javascript/dashboard/i18n/locale/el/macros.json
+++ b/app/javascript/dashboard/i18n/locale/el/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Μακροεντολές",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Προσθήκη νέας μακροεντολής",
"HEADER_BTN_TXT_SAVE": "Αποθήκευση μακροεντολής",
"LOADING": "Λήψη μακροεντολών",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Κάτι πήγε στραβά. Παρακαλώ προσπαθήστε ξανά",
"ORDER_INFO": "Μακροεντολές θα εκτελεστούν με τη σειρά που θα προσθέσετε τις ενέργειές σας. Μπορείτε να τις αναδιατάξετε σύροντάς τις από τη λαβή δίπλα σε κάθε κόμβο.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Όνομα",
"CREATED BY": "Δημιουργήθηκε από",
"LAST_UPDATED_BY": "Τελευταία ενημέρωση από",
- "VISIBILITY": "Ορατότητα"
+ "VISIBILITY": "Ορατότητα",
+ "ACTIONS": "Ενέργειες"
},
"404": "Δεν βρέθηκαν μακροεντολές"
},
diff --git a/app/javascript/dashboard/i18n/locale/el/mfa.json b/app/javascript/dashboard/i18n/locale/el/mfa.json
index 856e9778f..bbe8a0302 100644
--- a/app/javascript/dashboard/i18n/locale/el/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/el/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/el/report.json b/app/javascript/dashboard/i18n/locale/el/report.json
index aa2a68208..80f2c0aae 100644
--- a/app/javascript/dashboard/i18n/locale/el/report.json
+++ b/app/javascript/dashboard/i18n/locale/el/report.json
@@ -3,7 +3,7 @@
"HEADER": "Συζητήσεις",
"LOADING_CHART": "Φόρτωση δεδομένων γραφήματος...",
"NO_ENOUGH_DATA": "Δεν έχουν ληφθεί αρκετά σημεία δεδομένων για την δημιουργία της αναφοράς, Παρακαλώ προσπαθήστε αργότερα.",
- "DOWNLOAD_AGENT_REPORTS": "Κατέβασμα αναφορών πράκτορα",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Επισκόπηση Πρακτόρων",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Φόρτωση δεδομένων γραφήματος...",
"NO_ENOUGH_DATA": "Δεν έχουν ληφθεί αρκετά σημεία δεδομένων για την δημιουργία της αναφοράς, Παρακαλώ προσπαθήστε αργότερα.",
"DOWNLOAD_AGENT_REPORTS": "Κατέβασμα αναφορών πράκτορα",
"FILTER_DROPDOWN_LABEL": "Επιλογή πράκτορα",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Αναζήτηση πράκτορων"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Συζητήσεις",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Δεν έχουν ληφθεί αρκετά σημεία δεδομένων για την δημιουργία της αναφοράς, Παρακαλώ προσπαθήστε αργότερα.",
"DOWNLOAD_LABEL_REPORTS": "Λήψη αναφορών ετικέτας",
"FILTER_DROPDOWN_LABEL": "Επιλογή Ετικέτας",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Αναζήτηση ετικετών"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Συζητήσεις",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Επιλογή Εισερχομένων",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Συζητήσεις",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Επισκόπηση Ομάδας",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Φόρτωση δεδομένων γραφήματος...",
"NO_ENOUGH_DATA": "Δεν έχουν ληφθεί αρκετά σημεία δεδομένων για την δημιουργία της αναφοράς, Παρακαλώ προσπαθήστε αργότερα.",
"DOWNLOAD_TEAM_REPORTS": "Λήψη αναφορών ομάδας",
"FILTER_DROPDOWN_LABEL": "Επιλογή Ομάδας",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Αναζήτηση ομάδων"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Συζητήσεις",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Αναφορές CSAT",
- "NO_RECORDS": "Δεν υπάρχουν διαθέσιμες απαντήσεις ερευνών CSAT.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Λήψη αναφορών CSAT",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Αναζήτηση πράκτορων",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Αναζήτηση ομάδων",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Επιλέξτε Πράκτορες"
+ "LABEL": "Πράκτορας"
+ },
+ "INBOXES": {
+ "LABEL": "Εισερχόμενα"
+ },
+ "TEAMS": {
+ "LABEL": "Ομάδα"
+ },
+ "RATINGS": {
+ "LABEL": "Αξιολόγηση"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Επαφές",
- "AGENT_NAME": "Αντιστοιχισμένος πράκτορας",
+ "AGENT_NAME": "Πράκτορας",
"RATING": "Αξιολόγηση",
- "FEEDBACK_TEXT": "Σχόλιο ανατροφοδότησης"
- }
+ "FEEDBACK_TEXT": "Σχόλιο ανατροφοδότησης",
+ "CONVERSATION": "Συνομιλία",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Συνολικές απαντήσεις",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Ποσοστό ανταπόκρισης",
"TOOLTIP": "Συνολικός αριθμός απαντήσεων / Συνολικός αριθμός μηνυμάτων έρευνας CSAT * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Άκυρο",
+ "SAVING": "Αποθηκεύεται...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/el/settings.json b/app/javascript/dashboard/i18n/locale/el/settings.json
index 1e6c0accb..6c15c9c32 100644
--- a/app/javascript/dashboard/i18n/locale/el/settings.json
+++ b/app/javascript/dashboard/i18n/locale/el/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Κατέβασμα",
"UPLOADING": "Ανέβασμα ...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Η ιστορία δεν είναι πλέον διαθέσιμη."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Η ιστορία δεν είναι πλέον διαθέσιμη.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Δείτε στον χάρτη"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Ανάγνωση εγγράφων",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Χαρακτηριστικά",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Χρεώσεις",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Αναζήτηση ιδιοτήτων"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Επίλυση Συνομιλίας",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Επίλυση Συνομιλίας",
+ "CANCEL": "Άκυρο"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Ναι",
+ "NO": "Όχι"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Ωχ! Δεν μπορέσαμε να βρούμε κανένα λογαριασμό Chatwoot. Παρακαλούμε δημιουργήστε ένα νέο λογαριασμό για να συνεχίσετε.",
"NEW_ACCOUNT": "Νέος Λογαριασμός",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Άκυρο"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/el/signup.json b/app/javascript/dashboard/i18n/locale/el/signup.json
index 28d9d5ca8..1b8769d0c 100644
--- a/app/javascript/dashboard/i18n/locale/el/signup.json
+++ b/app/javascript/dashboard/i18n/locale/el/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Καταχώρηση",
"TESTIMONIAL_HEADER": "Το μόνο που χρειάζεται είναι ένα βήμα για να προχωρήσουμε",
"TESTIMONIAL_CONTENT": "Είστε ένα βήμα μακριά από την εμπλοκή των πελατών σας, και την εύρεση νέων.",
diff --git a/app/javascript/dashboard/i18n/locale/el/sla.json b/app/javascript/dashboard/i18n/locale/el/sla.json
index 489ad40c1..fce2281c9 100644
--- a/app/javascript/dashboard/i18n/locale/el/sla.json
+++ b/app/javascript/dashboard/i18n/locale/el/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/el/snooze.json b/app/javascript/dashboard/i18n/locale/el/snooze.json
new file mode 100644
index 000000000..6f7d63b98
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/el/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "ώρες",
+ "DAY": "ημέρα",
+ "DAYS": "days",
+ "WEEK": "ημέρα",
+ "WEEKS": "weeks",
+ "MONTH": "εβδομάδα",
+ "MONTHS": "months",
+ "YEAR": "μήνα",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "αύριο",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "επόμενη εβδομάδα",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "ημέρα",
+ "DAY": "ημέρα"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/el/teamsSettings.json b/app/javascript/dashboard/i18n/locale/el/teamsSettings.json
index 351c01503..d6bc0da1a 100644
--- a/app/javascript/dashboard/i18n/locale/el/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/el/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Αναζήτηση ομάδων...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Δεν έχουν δημιουργηθεί ομάδες σε αυτόν τον λογαριασμό.",
"EDIT_TEAM": "Επεξεργασία ομάδας",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Δεν ήταν δυνατή η αποθήκευση των λεπτομερειών της ομάδας. Δοκιμάστε ξανά."
},
"AGENTS": {
- "AGENT": "ΠΡΑΚΤΟΡΑΣ",
- "EMAIL": "EMAIL",
+ "AGENT": "Πράκτορας",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Προσθήκη πρακτόρων",
"ADD_AGENTS": "Προσθήκη πρακτόρων στην ομάδα σας...",
"SELECT": "επιλέξτε",
diff --git a/app/javascript/dashboard/i18n/locale/en/chatlist.json b/app/javascript/dashboard/i18n/locale/en/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/en/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/en/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/en/contact.json b/app/javascript/dashboard/i18n/locale/en/contact.json
index c9046310a..a77c23efb 100644
--- a/app/javascript/dashboard/i18n/locale/en/contact.json
+++ b/app/javascript/dashboard/i18n/locale/en/contact.json
@@ -621,7 +621,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -632,9 +632,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/en/conversation.json b/app/javascript/dashboard/i18n/locale/en/conversation.json
index 92fe4b5ed..ee9e8e060 100644
--- a/app/javascript/dashboard/i18n/locale/en/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/en/conversation.json
@@ -204,6 +204,7 @@
"ANNOUNCEMENT_MODE_RESTRICTED": "Only administrators are allowed to send messages in this group",
"GROUP_LEFT_RESTRICTED": "You are no longer part of this group and cannot send messages in it",
"GROUPS_DISABLED_RESTRICTED": "Group messages are disabled — enable for free",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
"COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
@@ -338,6 +339,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/en/generalSettings.json b/app/javascript/dashboard/i18n/locale/en/generalSettings.json
index d924bffbd..fab8020e2 100644
--- a/app/javascript/dashboard/i18n/locale/en/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/en/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/en/helpCenter.json b/app/javascript/dashboard/i18n/locale/en/helpCenter.json
index 38def2b80..117b9adb2 100644
--- a/app/javascript/dashboard/i18n/locale/en/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/en/helpCenter.json
@@ -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": {
@@ -374,6 +386,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
@@ -634,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"
}
},
@@ -645,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."
@@ -855,7 +887,7 @@
"STATUS": {
"UPLOADED": "Ready",
"PROCESSING": "Processing",
- "PROCESSED": "Completed",
+ "PROCESSED": "Completed",
"FAILED": "Failed"
}
},
diff --git a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json
index ec3de4af3..e950318d1 100644
--- a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json
@@ -738,6 +738,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",
@@ -753,8 +763,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",
diff --git a/app/javascript/dashboard/i18n/locale/en/index.js b/app/javascript/dashboard/i18n/locale/en/index.js
index 63aed743e..186c7ebb1 100644
--- a/app/javascript/dashboard/i18n/locale/en/index.js
+++ b/app/javascript/dashboard/i18n/locale/en/index.js
@@ -36,6 +36,7 @@ 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 whatsappTemplates from './whatsappTemplates.json';
import contentTemplates from './contentTemplates.json';
@@ -81,6 +82,7 @@ export default {
...settings,
...signup,
...sla,
+ ...snooze,
...teamsSettings,
...whatsappTemplates,
...contentTemplates,
diff --git a/app/javascript/dashboard/i18n/locale/en/integrations.json b/app/javascript/dashboard/i18n/locale/en/integrations.json
index 71f3ea41b..2bb5d306a 100644
--- a/app/javascript/dashboard/i18n/locale/en/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/en/integrations.json
@@ -31,6 +31,14 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
"SEARCH_PLACEHOLDER": "Search webhooks...",
"NO_RESULTS": "No webhooks found matching your search",
diff --git a/app/javascript/dashboard/i18n/locale/en/snooze.json b/app/javascript/dashboard/i18n/locale/en/snooze.json
new file mode 100644
index 000000000..2d9a876aa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/en/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "year",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/es/agentBots.json b/app/javascript/dashboard/i18n/locale/es/agentBots.json
index 747570e05..587fbb821 100644
--- a/app/javascript/dashboard/i18n/locale/es/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/es/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Cargando el editor...",
"DESCRIPTION": "Los bots de agentes son como los miembros más fabulosos de tu equipo. Ellos pueden manejar las cosas pequeñas, así que usted puede centrarse en las cosas que importan. Inténtalos. Puedes administrar tus bots desde esta página o crear nuevos usando el botón 'Configurar un nuevo bot'.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "Bot del sistema",
"GLOBAL_BOT_BADGE": "Sistema",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Obteniendo bots...",
"TABLE_HEADER": {
"DETAILS": "Detalles del Bot",
- "URL": "URL de Webhook"
+ "URL": "URL de Webhook",
+ "ACTIONS": "Acciones"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/es/agentMgmt.json b/app/javascript/dashboard/i18n/locale/es/agentMgmt.json
index 9d92bbdc1..407dd712b 100644
--- a/app/javascript/dashboard/i18n/locale/es/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/es/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrador",
"AGENT": "Agente"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "No hay agentes asociados a esta cuenta",
"TITLE": "Administrar agentes en tu equipo",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "No se pudo conectar al servidor Woot, por favor inténtalo de nuevo más tarde"
}
},
+ "SEARCH_PLACEHOLDER": "Buscar agentes...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No se encontraron resultados."
},
diff --git a/app/javascript/dashboard/i18n/locale/es/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/es/attributesMgmt.json
index 50fd988c9..afa710c58 100644
--- a/app/javascript/dashboard/i18n/locale/es/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/es/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Obtener atributos personalizados",
"DESCRIPTION": "Un atributo personalizado rastrea detalles adicionales sobre tus contactos o conversaciones, como el plan de suscripción o la fecha de su primera compra. Puede agregar diferentes tipos de atributos personalizados, como textos, listas o números, para capturar la información específica que necesita.",
"LEARN_MORE": "Aprende más sobre los atributos personalizados",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Buscar atributos...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversación",
"CONTACT": "Contacto"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Habilitar validación regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolución"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/es/automation.json b/app/javascript/dashboard/i18n/locale/es/automation.json
index 18fcb3652..5d159186d 100644
--- a/app/javascript/dashboard/i18n/locale/es/automation.json
+++ b/app/javascript/dashboard/i18n/locale/es/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automatización",
"DESCRIPTION": "La automatización puede reemplazar y agilizar los procesos existentes que requieren esfuerzo manual, como añadir etiquetas y asignar conversaciones al agente más adecuado. Esto permite al equipo concentrarse en sus fortalezas, mientras que reduce el tiempo dedicado a las tareas de rutina.",
"LEARN_MORE": "Aprende más sobre automatización",
- "HEADER_BTN_TXT": "Añadir regla de automatización",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Obteniendo reglas de automatización",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Añadir regla de automatización",
"SUBMIT": "Crear",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Nombre",
- "DESCRIPTION": "Descripción",
"ACTIVE": "Activo",
- "CREATED_ON": "Creado el"
+ "CREATED_ON": "Creado el",
+ "ACTIONS": "Acciones"
},
"404": "No se encontraron reglas de automatización"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Añadir una nota privada",
"CHANGE_PRIORITY": "Cambiar prioridad",
"ADD_SLA": "Añadir SLA",
- "OPEN_CONVERSATION": "Abrir conversación"
+ "OPEN_CONVERSATION": "Abrir conversación",
+ "PENDING_CONVERSATION": "Marca la conversación como pendiente"
},
"MESSAGE_TYPES": {
"INCOMING": "Mensaje entrante",
diff --git a/app/javascript/dashboard/i18n/locale/es/bulkActions.json b/app/javascript/dashboard/i18n/locale/es/bulkActions.json
index d17d304f5..3c8913800 100644
--- a/app/javascript/dashboard/i18n/locale/es/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/es/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "El estado de la conversación se actualizó con éxito.",
"UPDATE_FAILED": "No se han podido actualizar las conversaciones. Inténtalo de nuevo."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "No se pueden resolver las conversaciones debido a la falta de atributos requeridos",
+ "PARTIAL_SUCCESS": "Algunas conversaciones requieren atributos obligatorios antes de resolverse y se omitieron"
+ },
"LABELS": {
"ASSIGN_LABELS": "Asignar etiqueta",
"NO_LABELS_FOUND": "No se encontraron etiquetas",
diff --git a/app/javascript/dashboard/i18n/locale/es/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/es/cannedMgmt.json
index 6fc563f6e..abc23a7b9 100644
--- a/app/javascript/dashboard/i18n/locale/es/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/es/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Respuestas predefinidas",
"LEARN_MORE": "Más información sobre respuestas predefinidas",
"DESCRIPTION": "Las respuestas predefinidas son plantillas preconfiguradas que le ayudan a responder rápidamente a una conversación. Los agentes pueden escribir el carácter '/' seguido por el código corto para insertar una respuesta predefinida durante una conversación. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Añadir respuesta predefinida",
"LOADING": "Obteniendo respuestas predefinidas...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "No hay elementos que coincidan con esta consulta.",
"LIST": {
"404": "No hay respuestas enlatadas disponibles en esta cuenta.",
diff --git a/app/javascript/dashboard/i18n/locale/es/chatlist.json b/app/javascript/dashboard/i18n/locale/es/chatlist.json
index 2aab0bb43..1a5569fac 100644
--- a/app/javascript/dashboard/i18n/locale/es/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/es/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Respuesta pendiente: la más corta primero"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/es/companies.json b/app/javascript/dashboard/i18n/locale/es/companies.json
index 432db2643..a77cf2eac 100644
--- a/app/javascript/dashboard/i18n/locale/es/companies.json
+++ b/app/javascript/dashboard/i18n/locale/es/companies.json
@@ -7,7 +7,7 @@
"NAME": "Nombre",
"DOMAIN": "Dominio",
"CREATED_AT": "Creado el",
- "CONTACTS_COUNT": "Contacts count"
+ "CONTACTS_COUNT": "Número de contactos"
}
},
"ORDER": {
diff --git a/app/javascript/dashboard/i18n/locale/es/contact.json b/app/javascript/dashboard/i18n/locale/es/contact.json
index fe62c481d..839f9d057 100644
--- a/app/javascript/dashboard/i18n/locale/es/contact.json
+++ b/app/javascript/dashboard/i18n/locale/es/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Agregar Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Añadir TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No hay contactos que coincidan con tu búsqueda 🔍",
"LIST_EMPTY_STATE_TITLE": "No hay contactos disponibles en esta vista 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No hay contactos activos por el momento 🌙"
- }
+ },
+ "LOAD_MORE": "Cargar más"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Asignar etiquetas",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "No hay bandejas de entrada disponibles para iniciar una conversación con este contacto.",
"CONTACT_SELECTOR": {
"LABEL": "Para:",
- "TAG_INPUT_PLACEHOLDER": "Buscar un contacto con nombre, correo electrónico o número de teléfono",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creando contacto..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Asunto :",
"SUBJECT_PLACEHOLDER": "Introduzca el asunto de correo electrónico aquí",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Buscar un contacto con su dirección de correo electrónico",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Buscar un contacto con su dirección de correo electrónico",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/es/conversation.json b/app/javascript/dashboard/i18n/locale/es/conversation.json
index b279cee14..d15ee29bc 100644
--- a/app/javascript/dashboard/i18n/locale/es/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/es/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "Este mensaje no es compatible. Puedes ver este mensaje en la aplicación de Facebook/Instagram.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Este mensaje no es compatible. Puedes ver este mensaje en la aplicación de Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Este mensaje no es compatible. Puedes ver este mensaje en la aplicación de Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Mensaje eliminado correctamente",
"FAIL_DELETE_MESSSAGE": "¡No se pudo eliminar el mensaje! Inténtalo de nuevo",
"NO_RESPONSE": "No hay respuesta",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Etiqueta #{labelName} asignada a la conversación con id {conversationId}",
"FAILED": "No se pudo asignar el agente. Por favor, inténtelo de nuevo."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Equipo asignado \"{team}\" al ID de conversación {conversationId}",
"FAILED": "No se pudo asignar el equipo. Por favor, inténtelo de nuevo."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Desactivar firma",
"MSG_INPUT": "Shift + enter for new line. Comience con '/' para seleccionar una respuesta predefinida.",
"PRIVATE_MSG_INPUT": "Mayús + entrar para una nueva línea. Esto será visible sólo para los agentes",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "La firma del mensaje no está configurada, por favor configúrela en la configuración del perfil.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Haga clic aquí para actualizar",
"WHATSAPP_TEMPLATES": "Plantillas de Whatsapp"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Arrastra y suelta aquí para adjuntar",
"START_AUDIO_RECORDING": "Iniciar grabación de audio",
"STOP_AUDIO_RECORDING": "Detener grabación de audio",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "A",
"ADD_BCC": "Añadir bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversación eliminada con éxito",
"FAIL_DELETE_CONVERSATION": "¡No se pudo eliminar la conversación! Inténtalo de nuevo",
"FILE_SIZE_LIMIT": "El archivo supera el límite de archivos adjuntos de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "No se puede enviar este mensaje, por favor inténtalo de nuevo más tarde",
"SENT_BY": "Enviado por:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "¡No se pudo enviar el mensaje! Inténtalo de nuevo",
"TRY_AGAIN": "reintentar",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancelar",
"SEND_EMAIL_SUCCESS": "La transcripción ha sido enviada",
"SEND_EMAIL_ERROR": "Hubo un error, por favor inténtelo de nuevo",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Enviar la transcripción al cliente",
"SEND_TO_AGENT": "Enviar la transcripción al agente asignado",
diff --git a/app/javascript/dashboard/i18n/locale/es/customRole.json b/app/javascript/dashboard/i18n/locale/es/customRole.json
index 1dd9ca291..bfcc698f4 100644
--- a/app/javascript/dashboard/i18n/locale/es/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/es/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Roles personalizados",
"LEARN_MORE": "Obtenga más información sobre los roles personalizados",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "No hay elementos que coincidan con esta consulta.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/es/datePicker.json b/app/javascript/dashboard/i18n/locale/es/datePicker.json
index c3c779746..21e923cc4 100644
--- a/app/javascript/dashboard/i18n/locale/es/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/es/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Aplicar",
"CLEAR_BUTTON": "Limpiar",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Últimos 3 meses",
"LAST_6_MONTHS": "Últimos 6 meses",
"LAST_YEAR": "Último año",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Rango de fechas personalizado"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/general.json b/app/javascript/dashboard/i18n/locale/es/general.json
index dae7ff299..6aac72603 100644
--- a/app/javascript/dashboard/i18n/locale/es/general.json
+++ b/app/javascript/dashboard/i18n/locale/es/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Cerrar",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Descartar",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Si",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/generalSettings.json b/app/javascript/dashboard/i18n/locale/es/generalSettings.json
index 36a71c6be..f53bced78 100644
--- a/app/javascript/dashboard/i18n/locale/es/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/es/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Buscar o saltar a",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Informes",
diff --git a/app/javascript/dashboard/i18n/locale/es/helpCenter.json b/app/javascript/dashboard/i18n/locale/es/helpCenter.json
index bff0af50c..aa141ca5c 100644
--- a/app/javascript/dashboard/i18n/locale/es/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/es/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error al eliminar el artículo"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Por favor, añade el encabezado y el contenido del artículo y despues puedes actualizar la configuración"
},
diff --git a/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json
index 9e0fe210c..fdd97bcfd 100644
--- a/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Entradas",
"DESCRIPTION": "Un canal es el modo de comunicación que tu cliente elige para interactuar contigo. Una bandeja de entrada es donde administras interacciones para un canal específico. Puede incluir comunicaciones de diversas fuentes como correo electrónico, chat en vivo y redes sociales.",
"LEARN_MORE": "Aprende más sobre las entradas",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Tu bandeja de entrada está desconectada. No recibirás mensajes nuevos hasta que lo vuelvas a autorizar.",
"CLICK_TO_RECONNECT": "Haga clic aquí para volver a conectar.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -236,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",
@@ -575,7 +578,7 @@
"SUBTITLE": "Utilice sólo el nombre del negocio configurado como nombre del remitente en el encabezado del correo electrónico."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configura el nombre de tu negocio",
+ "BUTTON_TEXT": "Configura el nombre de tu negocio",
"PLACEHOLDER": "Introduce el nombre de tu negocio",
"SAVE_BUTTON_TEXT": "Guardar"
}
@@ -589,8 +592,10 @@
"DISABLED": "Deshabilitado"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Activado",
- "DISABLED": "Deshabilitado"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Habilitar"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "Encuestas de Satisfacción"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Habilitar/Deshabilitar mostrando el nombre del agente en el correo electrónico, si está deshabilitado, mostrará el nombre del negocio",
"ENABLE_CONTINUITY_VIA_EMAIL": "Habilitar continuidad de conversación por correo electrónico",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Las conversaciones continuarán por correo electrónico si la dirección de correo electrónico de contacto está disponible.",
- "LOCK_TO_SINGLE_CONVERSATION": "Bloquear a una sola conversación",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Activar o desactivar múltiples conversaciones para el mismo contacto en esta bandeja de entrada",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Ajustes de la Bandeja de Entrada",
"INBOX_UPDATE_SUB_TEXT": "Actualizar la configuración de tu bandeja de entrada",
"AUTO_ASSIGNMENT_SUB_TEXT": "Activar o desactivar la asignación automática de nuevas conversaciones a los agentes añadidos a esta bandeja de entrada.",
@@ -758,6 +775,7 @@
"LABEL": "Centro de ayuda",
"PLACEHOLDER": "Seleccione Centro de Ayuda",
"SELECT_PLACEHOLDER": "Seleccione Centro de Ayuda",
+ "NONE": "Ninguna",
"REMOVE": "Eliminar Centro de Ayuda",
"SUB_TEXT": "Adjuntar un Centro de Ayuda con la bandeja de entrada"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Por favor ingrese un valor mayor a 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limite la cantidad máxima de conversaciones de esta bandeja de entrada que se pueden asignar automáticamente a un agente"
},
+ "ASSIGNMENT": {
+ "TITLE": "Asignación de conversación",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Activo",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancelar",
+ "CONFIRM_DELETE": "Eliminar",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reautorizar",
"SUBTITLE": "Su conexión de Facebook expiró, por favor reconecte si página de Facebook para continuar con el servicio",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Volver"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Mensaje no disponible para visitantes",
"TOGGLE_HELP": "Al habilitar el horario de atención se mostraran las horas disponibles en el \"widget\" del chat en vivo si todos los agentes están fuera de línea. Fuera de las horas disponibles los visitantes pueden ser notificado con un mensaje y una forma PreChat.",
"DAY": {
+ "DAY": "Día",
+ "AVAILABILITY": "Disponibilidad",
+ "HOURS": "Horas",
"ENABLE": "Activar la disponibilidad para este día",
"UNAVAILABLE": "No disponible",
- "HOURS": "horas",
"VALIDATION_ERROR": "La hora de inicio debe ser antes de la hora de cierre.",
"CHOOSE": "Elegir"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "En un día"
},
"WIDGET_COLOR_LABEL": "Color del widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Posición de Bubble del Widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "Tipo de Burbuja de Widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tipo:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chatea con nosotros",
- "LABEL": "Título del lanzador Bubble de Widget",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chatea con nosotros"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Predeterminado",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Normalmente responde en unos minutos",
diff --git a/app/javascript/dashboard/i18n/locale/es/integrationApps.json b/app/javascript/dashboard/i18n/locale/es/integrationApps.json
index 03b8cddca..631a356b1 100644
--- a/app/javascript/dashboard/i18n/locale/es/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/es/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Obteniendo integraciones",
"NO_HOOK_CONFIGURED": "No hay integraciones de {integrationId} configuradas en ésta cuenta.",
"HEADER": "Aplicaciones",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Buscar...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Activado",
"DISABLED": "Deshabilitado"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Obteniendo hooks de integración",
"INBOX": "Bandeja de entrada",
+ "ACTIONS": "Acciones",
"DELETE": {
"BUTTON_TEXT": "Eliminar"
}
diff --git a/app/javascript/dashboard/i18n/locale/es/integrations.json b/app/javascript/dashboard/i18n/locale/es/integrations.json
index 342cab2be..ad90fc279 100644
--- a/app/javascript/dashboard/i18n/locale/es/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/es/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot se integra con múltiples herramientas y servicios para mejorar la eficiencia de tu equipo. Explora la lista de abajo para configurar tus aplicaciones favoritas.",
"LEARN_MORE": "Más información acerca de integraciones",
"LOADING": "Obteniendo integraciones",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "El capitán no está habilitado en tu cuenta.",
"CLICK_HERE_TO_CONFIGURE": "Haz clic aquí para configurar",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Eventos suscritos",
"LEARN_MORE": "Aprenda más sobre webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancelar",
"DESC": "Los eventos Webhook te proporcionan la información en tiempo real sobre lo que está sucediendo en tu cuenta de Chatwoot. Por favor, introduce una URL válida para configurar un callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Eliminar",
"DELETE_CONFIRMATION": {
"TITLE": "Eliminar la integración",
@@ -145,7 +160,29 @@
"EXPAND": "Expandir",
"MAKE_FRIENDLY": "Cambiar tono de mensaje a amigable",
"MAKE_FORMAL": "Usar tono formal",
- "SIMPLIFY": "Simplificar"
+ "SIMPLIFY": "Simplificar",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Amigable"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Contenido de borrador",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Aplicaciones de panel
Aplicaciones de panel de control permiten a las organizaciones incrustar una aplicación dentro del panel de control de Chatwoot para proporcionar el contexto para los agentes de atención al cliente. Esta característica le permite crear una aplicación de forma independiente e incrustarla dentro del panel de control para proporcionar información de usuario, sus pedidos, o su historial de pagos anterior.
Cuando incrustas tu aplicación usando el panel de control en Chatwoot, tu aplicación obtendrá el contexto de la conversación y el contacto como un evento de ventana. Implementa un oyente para el evento del mensaje en tu página para recibir el contexto.
Para añadir una nueva aplicación de panel, haga clic en el botón 'Añadir una nueva aplicación de panel'.
",
"DESCRIPTION": "Las aplicaciones de panel permiten a las organizaciones incrustar una aplicación dentro del panel de control para proporcionar el contexto para los agentes de soporte al cliente. Esta función le permite crear una aplicación de forma independiente e incrustada para proporcionar información de usuario, sus pedidos o su historial de pagos anterior.",
"LEARN_MORE": "Aprende más sobre el panel de aplicaciones",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Todavía no hay aplicaciones configuradas en esta cuenta",
"LOADING": "Obteniendo aplicaciones del tablero...",
"TABLE_HEADER": {
"NAME": "Nombre",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Acciones"
},
"EDIT_TOOLTIP": "Editar aplicación",
"DELETE_TOOLTIP": "Eliminar aplicación"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Lineal",
"ADD_OR_LINK_BUTTON": "Crear/Enlazar Problema Linear",
"LOADING": "Cargando problemas lineales...",
"LOADING_ERROR": "Hubo un error al recuperar los problemas lineales, por favor inténtalo de nuevo",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "Puede cambiar o cancelar su plan en cualquier momento"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Por favor, comuníquese con su administrador para la actualización."
},
@@ -496,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",
diff --git a/app/javascript/dashboard/i18n/locale/es/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/es/labelsMgmt.json
index c94bbac1a..bcb172cb0 100644
--- a/app/javascript/dashboard/i18n/locale/es/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/es/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Obteniendo etiquetas",
"DESCRIPTION": "Las etiquetas le ayudan a clasificar y priorizar conversaciones y clientes potenciales. Puede asignar una etiqueta a una conversación o contacto usando el panel lateral.",
"LEARN_MORE": "Aprende más sobre etiquetas",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Buscar etiquetas...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "No hay elementos que coincidan con esta consulta",
"LIST": {
"404": "No hay etiquetas disponibles en esta cuenta.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Nombre",
"DESCRIPTION": "Descripción",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Acciones"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/es/macros.json b/app/javascript/dashboard/i18n/locale/es/macros.json
index 703796baa..3d59c9c88 100644
--- a/app/javascript/dashboard/i18n/locale/es/macros.json
+++ b/app/javascript/dashboard/i18n/locale/es/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "Una macro es un conjunto de acciones guardadas que ayudan a los agentes de servicio al cliente a completar fácilmente las tareas. Los agentes pueden definir un conjunto de acciones como etiquetar una conversación con una etiqueta, enviar una transcripción de correo electrónico, actualizar un atributo personalizado, etc. y pueden ejecutar estas acciones en un solo clic.",
"LEARN_MORE": "Más información sobre macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Añadir una nueva macro",
"HEADER_BTN_TXT_SAVE": "Guardar macro",
"LOADING": "Obteniendo macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Algo salió mal. Por favor, inténtalo de nuevo",
"ORDER_INFO": "Las macros se ejecutarán en el orden en que añadas sus acciones. Puede reorganizarlas arrastrándolas por el manejador al lado de cada nodo.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Nombre",
"CREATED BY": "Creado por",
"LAST_UPDATED_BY": "Última actualización por",
- "VISIBILITY": "Visibilidad"
+ "VISIBILITY": "Visibilidad",
+ "ACTIONS": "Acciones"
},
"404": "No se encontraron macros"
},
diff --git a/app/javascript/dashboard/i18n/locale/es/mfa.json b/app/javascript/dashboard/i18n/locale/es/mfa.json
index 04897bde6..3f18d0413 100644
--- a/app/javascript/dashboard/i18n/locale/es/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/es/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/es/report.json b/app/javascript/dashboard/i18n/locale/es/report.json
index 9302dd634..9d04c80c6 100644
--- a/app/javascript/dashboard/i18n/locale/es/report.json
+++ b/app/javascript/dashboard/i18n/locale/es/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversaciones",
"LOADING_CHART": "Cargando datos del gráfico...",
"NO_ENOUGH_DATA": "No hemos recibido suficientes puntos de datos para generar el informe. Inténtalo de nuevo más tarde.",
- "DOWNLOAD_AGENT_REPORTS": "Descargar reportes de agente",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Error al obtener datos, por favor intente nuevamente.",
"SUMMARY_FETCHING_FAILED": "No se pudo obtener el resumen, por favor inténtalo de nuevo más tarde.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Resumen de agentes",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Cargando datos del gráfico...",
"NO_ENOUGH_DATA": "No hemos recibido suficientes puntos de datos para generar el informe. Inténtalo de nuevo más tarde.",
"DOWNLOAD_AGENT_REPORTS": "Descargar reportes de agente",
"FILTER_DROPDOWN_LABEL": "Seleccionar agente",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Buscar agentes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversaciones",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "No hemos recibido suficientes puntos de datos para generar el informe. Inténtalo de nuevo más tarde.",
"DOWNLOAD_LABEL_REPORTS": "Descargar reportes de etiquetas",
"FILTER_DROPDOWN_LABEL": "Seleecionar etiqueta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Buscar etiquetas"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversaciones",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Seleccione una bandeja de entrada",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversaciones",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Vista general del equipo",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Cargando datos del gráfico...",
"NO_ENOUGH_DATA": "No hemos recibido suficientes puntos de datos para generar el informe. Inténtalo de nuevo más tarde.",
"DOWNLOAD_TEAM_REPORTS": "Descargar informes del equipo",
"FILTER_DROPDOWN_LABEL": "Seleccionar equipo",
+ "FILTERS": {
+ "ADD_FILTER": "Añadir Filtro",
+ "CLEAR_ALL": "Limpiar todo",
+ "NO_FILTER": "No hay filtros disponibles",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Buscar equipos"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversaciones",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Reporte de encuestas de satisfacción",
- "NO_RECORDS": "No hay respuestas de encuestas de satisfacción disponibles.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Descargar reportes CSAT",
"DOWNLOAD_FAILED": "Error al descargar los informes CSAT",
"FILTERS": {
+ "ADD_FILTER": "Añadir Filtro",
+ "CLEAR_ALL": "Limpiar todo",
+ "NO_FILTER": "No hay filtros disponibles",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Buscar agentes",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Buscar equipos",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Elegir agentes"
+ "LABEL": "Agente"
+ },
+ "INBOXES": {
+ "LABEL": "Bandeja de entrada"
+ },
+ "TEAMS": {
+ "LABEL": "Equipo"
+ },
+ "RATINGS": {
+ "LABEL": "Calificación"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contacto",
- "AGENT_NAME": "Agente asignado",
+ "AGENT_NAME": "Agente",
"RATING": "Calificación",
- "FEEDBACK_TEXT": "Realimentacion de Comentario"
- }
+ "FEEDBACK_TEXT": "Realimentacion de Comentario",
+ "CONVERSATION": "Conversación",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Respuesta",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total de respuestas",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Tasa de respuesta",
"TOOLTIP": "Número total de respuestas / Número total de mensajes de la encuesta de satisfacción enviados * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Guardar",
+ "CANCEL": "Cancelar",
+ "SAVING": "Guardando...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Actualizar ahora",
+ "CANCEL_ANYTIME": "Puede cambiar o cancelar su plan en cualquier momento"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/es/settings.json b/app/javascript/dashboard/i18n/locale/es/settings.json
index f29a7fb2b..14076393e 100644
--- a/app/javascript/dashboard/i18n/locale/es/settings.json
+++ b/app/javascript/dashboard/i18n/locale/es/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Descargar",
"UPLOADING": "Subiendo...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Esta historia ya no está disponible."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Esta historia ya no está disponible.",
+ "INSTAGRAM_STORY_REPLY": "Respondió a su historia:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Ver en el mapa"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Marcar automáticamente sin conexión cuando no está usando la aplicación."
},
"DOCS": "Leer documentos",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Capitán",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Características",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Facturación",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Buscar atributos"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolver conversación",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolver conversación",
+ "CANCEL": "Cancelar"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Selecciona una opción"
+ },
+ "CHECKBOX": {
+ "YES": "Si",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Actualizar ahora",
+ "CANCEL_ANYTIME": "Puede cambiar o cancelar su plan en cualquier momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Por favor, comuníquese con su administrador para la actualización."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "¡Oh oh! No hemos podido encontrar ninguna cuenta de \"Chatwoot\". Por favor, crea una nueva cuenta para continuar.",
"NEW_ACCOUNT": "Nueva cuenta",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancelar"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/es/signup.json b/app/javascript/dashboard/i18n/locale/es/signup.json
index fe5e712ef..02bb594e3 100644
--- a/app/javascript/dashboard/i18n/locale/es/signup.json
+++ b/app/javascript/dashboard/i18n/locale/es/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Crear una cuenta",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registrarse",
"TESTIMONIAL_HEADER": "Todo lo que se necesita es un paso adelante",
"TESTIMONIAL_CONTENT": "Usted está a un paso de involucrar a sus clientes, conservarlos y encontrar nuevos.",
diff --git a/app/javascript/dashboard/i18n/locale/es/sla.json b/app/javascript/dashboard/i18n/locale/es/sla.json
index 3dee7d753..8321d7838 100644
--- a/app/javascript/dashboard/i18n/locale/es/sla.json
+++ b/app/javascript/dashboard/i18n/locale/es/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Crear una nueva política de SLA",
"DESCRIPTION": "Los Acuerdos de Nivel de Servicio (SLA) son contratos que definen expectativas claras entre su equipo y sus clientes. Establecen normas para los tiempos de respuesta y resolución, creando un marco para la responsabilidad y garantiza una experiencia coherente y de alta calidad.",
"LEARN_MORE": "Más información sobre SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Obteniendo SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Actualiza para crear SLAs",
"AVAILABLE_ON": "La función SLA sólo está disponible en los planes Empresariales (Business) y Corporativos (Enterprise).",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "No hay SLAs disponibles en esta cuenta.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Empresa P0",
"DESC_1": "Problemas planteados por los clientes empresariales, que requieren una atención inmediata.",
"TITLE_2": "Empresa P1",
"DESC_2": "Problemas planteados por los clientes empresariales, deben reconocerse con rapidez."
},
- "BUSINESS_HOURS_ON": "Horas laborables",
- "BUSINESS_HOURS_OFF": "Horas de descanso",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "Umbral de tiempo de primera respuesta",
"NRT": "Umbral de tiempo de siguiente respuesta",
diff --git a/app/javascript/dashboard/i18n/locale/es/snooze.json b/app/javascript/dashboard/i18n/locale/es/snooze.json
new file mode 100644
index 000000000..7c78087d0
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/es/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutos",
+ "HOUR": "hour",
+ "HOURS": "horas",
+ "DAY": "día",
+ "DAYS": "días",
+ "WEEK": "semana",
+ "WEEKS": "weeks",
+ "MONTH": "mes",
+ "MONTHS": "months",
+ "YEAR": "mes",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "siguiente",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "mañana",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "próxima semana",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "de",
+ "AFTER": "after",
+ "WEEK": "semana",
+ "DAY": "día"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/es/teamsSettings.json b/app/javascript/dashboard/i18n/locale/es/teamsSettings.json
index 0482685e9..1bb17b7ea 100644
--- a/app/javascript/dashboard/i18n/locale/es/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/es/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Obteniendo equipos",
"DESCRIPTION": "Los equipos te permiten organizar a los agentes en grupos basados en sus responsabilidades. Un agente puede pertenecer a varios equipos. Cuando trabajas en colaboración, puedes asignar conversaciones a equipos específicos.",
"LEARN_MORE": "Aprende más sobre los equipos",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Buscar equipos...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "No hay equipos creados en ésta cuenta.",
"EDIT_TEAM": "Editar equipo",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "No se han podido guardar los detalles del equipo. Intente nuevamente."
},
"AGENTS": {
- "AGENT": "AGENTE",
- "EMAIL": "Correo electrónico",
+ "AGENT": "Agente",
+ "EMAIL": "E-mail",
"BUTTON_TEXT": "Añadir agentes",
"ADD_AGENTS": "Añadiendo agentes a su equipo...",
"SELECT": "seleccionar",
diff --git a/app/javascript/dashboard/i18n/locale/es/yearInReview.json b/app/javascript/dashboard/i18n/locale/es/yearInReview.json
index 742644506..2a60b25e1 100644
--- a/app/javascript/dashboard/i18n/locale/es/yearInReview.json
+++ b/app/javascript/dashboard/i18n/locale/es/yearInReview.json
@@ -19,7 +19,7 @@
},
"BUSIEST_DAY": {
"TITLE": "Tu día más ocupado fue",
- "MESSAGE": "{count} conversaciones ese día.",
+ "MESSAGE": "{count} conversaciones aquel día.",
"COMPARISON": {
"0_5": "Un calentamiento que apenas despertó la bandeja de entrada.",
"5_10": "Suficiente movimiento como para justificar una segunda taza de café.",
diff --git a/app/javascript/dashboard/i18n/locale/et/agentBots.json b/app/javascript/dashboard/i18n/locale/et/agentBots.json
index d3a0bb991..dc92016ab 100644
--- a/app/javascript/dashboard/i18n/locale/et/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/et/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/et/agentMgmt.json b/app/javascript/dashboard/i18n/locale/et/agentMgmt.json
index 448994e69..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/et/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/et/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/et/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/et/attributesMgmt.json
index 78886f451..e83950b14 100644
--- a/app/javascript/dashboard/i18n/locale/et/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/et/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/et/automation.json b/app/javascript/dashboard/i18n/locale/et/automation.json
index 43245a1d5..22a9735f4 100644
--- a/app/javascript/dashboard/i18n/locale/et/automation.json
+++ b/app/javascript/dashboard/i18n/locale/et/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/et/bulkActions.json b/app/javascript/dashboard/i18n/locale/et/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/et/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/et/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/et/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/et/cannedMgmt.json
index 3ff246f06..246d3f5b3 100644
--- a/app/javascript/dashboard/i18n/locale/et/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/et/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/et/chatlist.json b/app/javascript/dashboard/i18n/locale/et/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/et/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/et/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/et/contact.json b/app/javascript/dashboard/i18n/locale/et/contact.json
index 7cad3b433..10841bbbf 100644
--- a/app/javascript/dashboard/i18n/locale/et/contact.json
+++ b/app/javascript/dashboard/i18n/locale/et/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/et/conversation.json b/app/javascript/dashboard/i18n/locale/et/conversation.json
index 59ad61c1d..7b7e325ab 100644
--- a/app/javascript/dashboard/i18n/locale/et/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/et/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/et/customRole.json b/app/javascript/dashboard/i18n/locale/et/customRole.json
index b7b48b5e7..f7c1709bd 100644
--- a/app/javascript/dashboard/i18n/locale/et/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/et/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/et/datePicker.json b/app/javascript/dashboard/i18n/locale/et/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/et/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/et/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/et/general.json b/app/javascript/dashboard/i18n/locale/et/general.json
index 283cf79c4..bdc7cb8a4 100644
--- a/app/javascript/dashboard/i18n/locale/et/general.json
+++ b/app/javascript/dashboard/i18n/locale/et/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/et/generalSettings.json b/app/javascript/dashboard/i18n/locale/et/generalSettings.json
index d924bffbd..fab8020e2 100644
--- a/app/javascript/dashboard/i18n/locale/et/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/et/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/et/helpCenter.json b/app/javascript/dashboard/i18n/locale/et/helpCenter.json
index 0ab8d62ff..69a72f163 100644
--- a/app/javascript/dashboard/i18n/locale/et/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/et/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json
index 2efba4716..608e5c804 100644
--- a/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
diff --git a/app/javascript/dashboard/i18n/locale/et/integrationApps.json b/app/javascript/dashboard/i18n/locale/et/integrationApps.json
index b91b434f7..828f4ea67 100644
--- a/app/javascript/dashboard/i18n/locale/et/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/et/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/et/integrations.json b/app/javascript/dashboard/i18n/locale/et/integrations.json
index ef3e94e42..fe1891064 100644
--- a/app/javascript/dashboard/i18n/locale/et/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/et/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/et/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/et/labelsMgmt.json
index 705b18d0e..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/et/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/et/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/et/macros.json b/app/javascript/dashboard/i18n/locale/et/macros.json
index fcb409f34..e12f0ca73 100644
--- a/app/javascript/dashboard/i18n/locale/et/macros.json
+++ b/app/javascript/dashboard/i18n/locale/et/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/et/mfa.json b/app/javascript/dashboard/i18n/locale/et/mfa.json
index f7556fdcf..b03917bcd 100644
--- a/app/javascript/dashboard/i18n/locale/et/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/et/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/et/report.json b/app/javascript/dashboard/i18n/locale/et/report.json
index dbf59f603..2ffa0ef11 100644
--- a/app/javascript/dashboard/i18n/locale/et/report.json
+++ b/app/javascript/dashboard/i18n/locale/et/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/et/settings.json b/app/javascript/dashboard/i18n/locale/et/settings.json
index 920da6f53..cf56caf3d 100644
--- a/app/javascript/dashboard/i18n/locale/et/settings.json
+++ b/app/javascript/dashboard/i18n/locale/et/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancel"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/et/signup.json b/app/javascript/dashboard/i18n/locale/et/signup.json
index b0e5f5d27..4a90fd322 100644
--- a/app/javascript/dashboard/i18n/locale/et/signup.json
+++ b/app/javascript/dashboard/i18n/locale/et/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/et/sla.json b/app/javascript/dashboard/i18n/locale/et/sla.json
index 0da7873be..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/et/sla.json
+++ b/app/javascript/dashboard/i18n/locale/et/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/et/snooze.json b/app/javascript/dashboard/i18n/locale/et/snooze.json
new file mode 100644
index 000000000..2d9a876aa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "year",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/teamsSettings.json b/app/javascript/dashboard/i18n/locale/et/teamsSettings.json
index f0a950fd1..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/et/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/et/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/fa/agentBots.json b/app/javascript/dashboard/i18n/locale/fa/agentBots.json
index 6d64c887e..cd69870f4 100644
--- a/app/javascript/dashboard/i18n/locale/fa/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/fa/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "در حال بارگیری ویرایشگر...",
"DESCRIPTION": "رباتهای عامل مانند شگفتانگیزترین اعضای تیم شما هستند. آنها میتوانند کارهای کوچک را انجام دهند، بنابراین شما میتوانید روی چیزهای مهم تمرکز کنید. آنها را امتحان کنید. میتوانید رباتهای خود را از این صفحه مدیریت کنید یا با استفاده از دکمه «افزودن ربات»، رباتهای جدیدی ایجاد کنید.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "ربات سیستمی",
"GLOBAL_BOT_BADGE": "سیستم",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "در حال گرفتن رباتها...",
"TABLE_HEADER": {
"DETAILS": "جزئیات ربات",
- "URL": "آدرس URL وب هوک"
+ "URL": "آدرس URL وب هوک",
+ "ACTIONS": "عملیات"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/fa/agentMgmt.json b/app/javascript/dashboard/i18n/locale/fa/agentMgmt.json
index 1f2673d3f..4648078ec 100644
--- a/app/javascript/dashboard/i18n/locale/fa/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fa/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "مدیرکل",
"AGENT": "ایجنت"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "در حال حاضر هیچ ایجنتی برای این حساب معرفی نشده است",
"TITLE": "مدیریت ایجنت ها",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "متاسفانه ارتباط با سرور برقرار نشد، مجددا امتحان کنید"
}
},
+ "SEARCH_PLACEHOLDER": "جستجوی اپراتور...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "نتیجهای یافت نشد."
},
diff --git a/app/javascript/dashboard/i18n/locale/fa/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/fa/attributesMgmt.json
index 1abaf6d23..e368d472e 100644
--- a/app/javascript/dashboard/i18n/locale/fa/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fa/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "واکشی ویژگیهای سفارشی",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "جستجو ویژگی ها...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "گفتگو",
"CONTACT": "مخاطب"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "فعال سازی بررسی رجکس"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/fa/automation.json b/app/javascript/dashboard/i18n/locale/fa/automation.json
index 033f2d37d..9a203b74f 100644
--- a/app/javascript/dashboard/i18n/locale/fa/automation.json
+++ b/app/javascript/dashboard/i18n/locale/fa/automation.json
@@ -3,8 +3,11 @@
"HEADER": "خودکارسازی",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "افزودن قانون خودکارسازی",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "واکشی قوانین اتوماسیون",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "افزودن قانون خودکارسازی",
"SUBMIT": "ايجاد كردن",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "نام",
- "DESCRIPTION": "توضیحات",
"ACTIVE": "فعال",
- "CREATED_ON": "ایجاد شده در"
+ "CREATED_ON": "ایجاد شده در",
+ "ACTIONS": "عملیات"
},
"404": "هیچ قانون اتوماسیون یافت نشد"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "تغییر اولویت",
"ADD_SLA": "اضافه کردن SLA",
- "OPEN_CONVERSATION": "باز کردن گفتگو"
+ "OPEN_CONVERSATION": "باز کردن گفتگو",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/fa/bulkActions.json b/app/javascript/dashboard/i18n/locale/fa/bulkActions.json
index 226de691f..90def79a3 100644
--- a/app/javascript/dashboard/i18n/locale/fa/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/fa/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "وضعیت گفتگو با موفقیت به روز شد.",
"UPDATE_FAILED": "گفتگوها به روز نشدند، لطفا دوباره امتحان کنید."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "برچسب اختصاص دهید",
"NO_LABELS_FOUND": "هیچ برچسبی یافت نشد",
diff --git a/app/javascript/dashboard/i18n/locale/fa/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/fa/cannedMgmt.json
index ea12def74..9622033e1 100644
--- a/app/javascript/dashboard/i18n/locale/fa/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fa/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "پاسخهای آماده",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "اضافه کردن پاسخ آماده",
"LOADING": "دریافت پاسخهای آماده...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "هیچ گزینهای با این شرایط پیدا نشد.",
"LIST": {
"404": "هیچ پاسخ آمادهای برای این حساب تعریف نشده است",
diff --git a/app/javascript/dashboard/i18n/locale/fa/chatlist.json b/app/javascript/dashboard/i18n/locale/fa/chatlist.json
index 55071443e..e70a1744e 100644
--- a/app/javascript/dashboard/i18n/locale/fa/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/fa/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "در انتظار پاسخ: کمترین اول"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/fa/contact.json b/app/javascript/dashboard/i18n/locale/fa/contact.json
index 670579978..2dddb7f96 100644
--- a/app/javascript/dashboard/i18n/locale/fa/contact.json
+++ b/app/javascript/dashboard/i18n/locale/fa/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "هیچ مخاطبی با جستجوی شما مطابقت ندارد 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "اختصاص برچسبها",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "به:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "موضوع :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/fa/conversation.json b/app/javascript/dashboard/i18n/locale/fa/conversation.json
index 872e629df..dbf199ba4 100644
--- a/app/javascript/dashboard/i18n/locale/fa/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/fa/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "این پیام پشتیبانی نمی شود. می توانید این پیام را در برنامه فیس بوک مسنجر مشاهده کنید.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "این پیام پشتیبانی نمی شود. می توانید این پیام را در برنامه اینستاگرام مشاهده کنید.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "پیام با موفقیت حذف شد",
"FAIL_DELETE_MESSSAGE": "پیام حذف نشد! دوباره امتحان کنید",
"NO_RESPONSE": "بدون پاسخ",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "برچسب اختصاص داده نشد. لطفا دوباره تلاش کنید."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "تیم \"{team}\" را به شناسه مکالمه {conversationId} اختصاص داد",
"FAILED": "تیم تعیین نشد. لطفا دوباره تلاش کنید."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "غیرفعال کردن امضا",
"MSG_INPUT": "برای رفتن به سرخط shift+enter و برای استفاده از پیام های ذخیره شده / را بزنید.",
"PRIVATE_MSG_INPUT": "برای رفتن به سرخط shift+enter را بزنید. این پیام فقط به ایجنت ها نمایش داده میشود",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "امضای پیام پیکربندی نشده است، لطفاً آن را در تنظیمات نمایه پیکربندی کنید.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "برای به روز رسانی اینجا را کلیک کنید",
"WHATSAPP_TEMPLATES": "قالب های واتساپ"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "برای ضمیمه کردن درگ و درآپ کنید",
"START_AUDIO_RECORDING": "در حال شروع ضبط صدا",
"STOP_AUDIO_RECORDING": "در حال توقف ضبط صدا",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "به",
"ADD_BCC": "افزودن رونوشت",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "پرونده از حد مجاز پیوست {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} مگابایت بیشتر است",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "ارسال این پیام امکان پذیر نیست ، لطفاً بعداً دوباره امتحان کنید",
"SENT_BY": "ارسال شده توسط:",
"BOT": "ربات",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "پیام ارسال نشد! دوباره امتحان کنید",
"TRY_AGAIN": "دوباره امتحان کنید",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "انصراف",
"SEND_EMAIL_SUCCESS": "متن گفتگو با موفقیت ارسال شد",
"SEND_EMAIL_ERROR": "خطایی پیش آمد. لطفا دوباره امتحان کنید",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "متن گفتگو را برای مشتری ارسال کنید",
"SEND_TO_AGENT": "متن گفتگو را به ایجنت اختصاص یافته ارسال کنید",
diff --git a/app/javascript/dashboard/i18n/locale/fa/customRole.json b/app/javascript/dashboard/i18n/locale/fa/customRole.json
index 625bd72f4..6937109a3 100644
--- a/app/javascript/dashboard/i18n/locale/fa/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/fa/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "هیچ گزینهای با این شرایط پیدا نشد.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/fa/datePicker.json b/app/javascript/dashboard/i18n/locale/fa/datePicker.json
index e6adf109f..300d47097 100644
--- a/app/javascript/dashboard/i18n/locale/fa/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/fa/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "درخواست دادن",
"CLEAR_BUTTON": "پاک کردن",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "۳ ماه گذشته",
"LAST_6_MONTHS": "۶ ماه گذشته",
"LAST_YEAR": "پارسال",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "محدوده تاریخ سفارشی"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/general.json b/app/javascript/dashboard/i18n/locale/fa/general.json
index c4d709259..1c14ffdbd 100644
--- a/app/javascript/dashboard/i18n/locale/fa/general.json
+++ b/app/javascript/dashboard/i18n/locale/fa/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "بستن",
"BETA": "آزمایشی",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "بله",
+ "NO": "خیر"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/generalSettings.json b/app/javascript/dashboard/i18n/locale/fa/generalSettings.json
index 51464933c..27e6ffee5 100644
--- a/app/javascript/dashboard/i18n/locale/fa/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/fa/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "جستجو یا پرش به",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "عمومی",
"REPORTS": "گزارشات",
diff --git a/app/javascript/dashboard/i18n/locale/fa/helpCenter.json b/app/javascript/dashboard/i18n/locale/fa/helpCenter.json
index db4346f68..710943eee 100644
--- a/app/javascript/dashboard/i18n/locale/fa/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/fa/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "خطا هنگام حذف مقاله"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "لطفا عنوان و محتوای مقاله را اضافه کنید و فقط شما میتوانید تنظیمات را بهروز کنید"
},
diff --git a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json
index 3b3218357..5ae039bb5 100644
--- a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "صندوقهای ورودی",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "فقط از نام تجاری پیکربندی شده به عنوان نام فرستنده در هدر ایمیل استفاده کنید."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ نام کسب و کار خود را وارد کنید",
+ "BUTTON_TEXT": "نام کسب و کار خود را وارد کنید",
"PLACEHOLDER": "نام کسب و کار خود را وارد کنید",
"SAVE_BUTTON_TEXT": "ذخیره"
}
@@ -589,8 +592,10 @@
"DISABLED": "غیرفعال"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "فعال شد",
- "DISABLED": "غیرفعال شد"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "فعال"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "رضایت مشتری"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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": "تنظیمات",
@@ -694,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": "اضافه کردن یا حذف کردن دسترسی ایجنت به صندوق ورودی",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "فعال/غیرفعال کردن نمایش نام اپراتور در ایمیل، اگر غیرفعال باشد نام کسب و کار نشان داده می شود",
"ENABLE_CONTINUITY_VIA_EMAIL": "ادامه مکالمه را از طریق ایمیل فعال کنید",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "اگر آدرس ایمیل تماس در دسترس باشد، مکالمات از طریق ایمیل ادامه خواهد یافت.",
- "LOCK_TO_SINGLE_CONVERSATION": "قفل کردن مکالمه تکی",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "چند مکالمه را برای یک مخاطب در این صندوق ورودی فعال یا غیرفعال کنید",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "تنظیمات صندوق ورودی",
"INBOX_UPDATE_SUB_TEXT": "تغییر پارامترهای صندوق ورودی",
"AUTO_ASSIGNMENT_SUB_TEXT": "فعال کردن یا غیرفعال کردن واگذاری خودکار گفتگوها به ایجنت های عضو این صندوق ورودی.",
@@ -758,6 +775,7 @@
"LABEL": "مرکز راهنما",
"PLACEHOLDER": "مرکز راهنما را انتخاب کنید",
"SELECT_PLACEHOLDER": "مرکز راهنما را انتخاب کنید",
+ "NONE": "هیچکدام",
"REMOVE": "مرکز راهنما را حذف کنید",
"SUB_TEXT": "یک مرکز راهنما را با صندوق ورودی پیوست کنید"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "لطفا مقداری بزرگتر از عدد 0 وارد کنید",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "حداکثر تعداد مکالماتی را که می توان به طور خودکار به یک اپراتور اختصاص داد، از این صندوق ورودی محدود کنید"
},
+ "ASSIGNMENT": {
+ "TITLE": "اختصاص گفتگو",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "فعال",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "انصراف",
+ "CONFIRM_DELETE": "حذف",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "احراز هویت مجدد",
"SUBTITLE": "اتصال فیس بوک شما منقضی شده است ، لطفاً برای ادامه خدمات دوباره صفحه فیس بوک خود را متصل کنید",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "بازگشت"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "پیامی برای بازدیدکنندگان در دسترس نیست",
"TOGGLE_HELP": "فعال کردن در دسترس بودن کسب کار ، ساعات موجود در ویجت چت زنده را نشان می دهد حتی اگر همه اپراتور ها آفلاین باشند. خارج از ساعات موجود می توان با پیام و فرم قبل از چت ، به کاربران هشدار داد.",
"DAY": {
+ "DAY": "روز",
+ "AVAILABILITY": "در دسترس",
+ "HOURS": "Hours",
"ENABLE": "در دسترس بودن را برای این روز فعال کنید",
"UNAVAILABLE": "غیر قابل دسترسی",
- "HOURS": "ساعت",
"VALIDATION_ERROR": "زمان شروع باید قبل از زمان بسته شدن باشد.",
"CHOOSE": "انتخاب کنید"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "در یک روز"
},
"WIDGET_COLOR_LABEL": "رنگ ویجت",
- "WIDGET_BUBBLE_POSITION_LABEL": "موقعیت حباب ابزارک",
- "WIDGET_BUBBLE_TYPE_LABEL": "نوع حباب ابزارک",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "نوع:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "با ما گفتگو کنید",
- "LABEL": "عنوان ویجت Bubble",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "با ما گفتگو کنید"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "پیشفرض",
- "CHAT": "گفتگو"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "معمولاً در عرض چند دقیقه پاسخ میدهیم",
diff --git a/app/javascript/dashboard/i18n/locale/fa/integrationApps.json b/app/javascript/dashboard/i18n/locale/fa/integrationApps.json
index 2a19ded40..24f8be18c 100644
--- a/app/javascript/dashboard/i18n/locale/fa/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/fa/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "واکشی ادغام ها",
"NO_HOOK_CONFIGURED": "هیچ {integrationId} ادغامی در این اکانت انجام نشده است.",
"HEADER": "برنامه های کاربردی",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "فعال",
"DISABLED": "غیرفعال"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "واکشی ادغام های هوک",
"INBOX": "صندوق ورودی",
+ "ACTIONS": "عملیات",
"DELETE": {
"BUTTON_TEXT": "حذف"
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/integrations.json b/app/javascript/dashboard/i18n/locale/fa/integrations.json
index 31538b5b7..6876184f3 100644
--- a/app/javascript/dashboard/i18n/locale/fa/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/fa/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "رویدادهای مشترک شده",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "انصراف",
"DESC": "رویدادهای وب هوک اطلاعات لحظهای حساب چت ووت شما را منتقل میکنند. لطفا آدرس URL صحیحی وارد کنید.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "حذف",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "حرفهای",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "دوستانه"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
برنامههای داشبورد
برنامههای داشبورد به سازمانها اجازه میدهند تا برنامهای را در داشبورد Chatwoot جاسازی کنند تا زمینه را برای عوامل پشتیبانی مشتری فراهم کنند. این ویژگی به شما این امکان را می دهد که به طور مستقل یک برنامه ایجاد کنید و آن را در داشبورد جاسازی کنید تا اطلاعات کاربر، سفارشات یا سابقه پرداخت قبلی آنها را ارائه کنید.
وقتی برنامه خود را با استفاده از داشبورد در Chatwoot جاسازی می کنید، برنامه شما این کار را انجام می دهد. زمینه گفتگو و تماس را به عنوان یک رویداد پنجره دریافت کنید. یک شنونده برای رویداد پیام در صفحه خود اجرا کنید تا زمینه را دریافت کنید.
برای افزودن یک برنامه داشبورد جدید، روی دکمه \"افزودن یک برنامه داشبورد جدید\" کلیک کنید.
",
"DESCRIPTION": "برنامههای داشبورد به سازمانها اجازه میدهند تا برنامهای را در داشبورد جاسازی کنند تا زمینه را برای عوامل پشتیبانی مشتری فراهم کنند. این ویژگی به شما این امکان را می دهد که به طور مستقل یک برنامه کاربردی ایجاد کنید و آن را برای ارائه اطلاعات کاربر، سفارشات یا سابقه پرداخت قبلی آنها درج کنید.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "هنوز هیچ برنامه داشبوردی روی این حساب پیکربندی نشده است",
"LOADING": "در حال واکشی برنامه های داشبورد...",
"TABLE_HEADER": {
"NAME": "نام",
- "ENDPOINT": "نقطه پایانی"
+ "ENDPOINT": "نقطه پایانی",
+ "ACTIONS": "عملیات"
},
"EDIT_TOOLTIP": "ویرایش برنامه",
"DELETE_TOOLTIP": "حذف برنامه"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "لطفاً برای ارتقا با ادمین خود تماس بگیرید."
},
diff --git a/app/javascript/dashboard/i18n/locale/fa/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/fa/labelsMgmt.json
index 476301f68..f03f21bcb 100644
--- a/app/javascript/dashboard/i18n/locale/fa/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fa/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "درحال گرفتن برچسبها",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "جستجو برچسبها...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "هیچ آیتمی با این مشخصات یافت نشد",
"LIST": {
"404": "هیچ برچسبی در این حسابکاربری وجود ندارد.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "نام",
"DESCRIPTION": "توضیحات",
- "COLOR": "رنگ"
+ "COLOR": "رنگ",
+ "ACTION": "عملیات"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/fa/macros.json b/app/javascript/dashboard/i18n/locale/fa/macros.json
index b64fa945c..5221dcb95 100644
--- a/app/javascript/dashboard/i18n/locale/fa/macros.json
+++ b/app/javascript/dashboard/i18n/locale/fa/macros.json
@@ -3,9 +3,12 @@
"HEADER": "ماکروها",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "افزودن ماکرو جدید",
"HEADER_BTN_TXT_SAVE": "ذخیره ماکرو",
"LOADING": "در حال گرفتن ماکروها",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "مشکلی پیش آمد. لطفا دوباره تلاش کنید",
"ORDER_INFO": "ماکروها به ترتیبی که اقدامات خود را اضافه می کنید اجرا می شوند. می توانید با کشیدن آنها توسط دسته کنار هر گره آنها را دوباره مرتب کنید.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "نام",
"CREATED BY": "ايجاد شده توسط",
"LAST_UPDATED_BY": "آخرین بهروزرسانی توسط",
- "VISIBILITY": "دید"
+ "VISIBILITY": "دید",
+ "ACTIONS": "عملیات"
},
"404": "هیچ ماکروی یافت نشد"
},
diff --git a/app/javascript/dashboard/i18n/locale/fa/mfa.json b/app/javascript/dashboard/i18n/locale/fa/mfa.json
index e1031ace2..b04eedd37 100644
--- a/app/javascript/dashboard/i18n/locale/fa/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/fa/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/fa/report.json b/app/javascript/dashboard/i18n/locale/fa/report.json
index 9596444e1..7dcb86b77 100644
--- a/app/javascript/dashboard/i18n/locale/fa/report.json
+++ b/app/javascript/dashboard/i18n/locale/fa/report.json
@@ -3,7 +3,7 @@
"HEADER": "گفتگوها",
"LOADING_CHART": "در حال دریافت اطلاعات...",
"NO_ENOUGH_DATA": "متاسفانه اطلاعات کافی دریافت نشد، لطفا بعدا دوباره امتحان کنید",
- "DOWNLOAD_AGENT_REPORTS": "دانلود گزارش ایجنت",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "خطا در دریافت اطلاعات، لطفا بعدا دوباره تلاش کنید.",
"SUMMARY_FETCHING_FAILED": "خطا در دریافت خلاصه، لطفا بعدا دوباره تلاش کنید.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "نمای کلی اپراتور ها",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "در حال دریافت اطلاعات...",
"NO_ENOUGH_DATA": "متاسفانه اطلاعات کافی دریافت نشد، لطفا بعدا دوباره امتحان کنید",
"DOWNLOAD_AGENT_REPORTS": "دانلود گزارش ایجنت",
"FILTER_DROPDOWN_LABEL": "انتخاب ایجنت",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "جستجوی اپراتور"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "گفتگوها",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "متاسفانه اطلاعات کافی دریافت نشد، لطفا بعدا دوباره امتحان کنید",
"DOWNLOAD_LABEL_REPORTS": "دانلود گزارش برچسب ها",
"FILTER_DROPDOWN_LABEL": "برچسب را انتخاب کنید",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "جستجو برچسبها"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "گفتگوها",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "انتخاب صندوق ورودی",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "گفتگوها",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "نمای کلی تیم",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "در حال دریافت اطلاعات...",
"NO_ENOUGH_DATA": "متاسفانه اطلاعات کافی دریافت نشد، لطفا بعدا دوباره امتحان کنید",
"DOWNLOAD_TEAM_REPORTS": "دانلود گزارشات تیم",
"FILTER_DROPDOWN_LABEL": "تیم را انتخاب کنید",
+ "FILTERS": {
+ "ADD_FILTER": "افزودن فیلتر",
+ "CLEAR_ALL": "حذف همه",
+ "NO_FILTER": "هیچ فیلتری موجود نیست",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "جستجوی تیم"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "گفتگوها",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "گزارشات رضایت مشتری",
- "NO_RECORDS": "هیچ پاسخ برای نظرسنجی رضایت مشتری در دسترس نیست.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "دانلود گزارش CSAT",
"DOWNLOAD_FAILED": "خطا در دانلود گزارش های CSAT",
"FILTERS": {
+ "ADD_FILTER": "افزودن فیلتر",
+ "CLEAR_ALL": "حذف همه",
+ "NO_FILTER": "هیچ فیلتری موجود نیست",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "جستجوی اپراتور",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "جستجوی تیم",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "اپراتور را انتخاب کنید"
+ "LABEL": "ایجنت"
+ },
+ "INBOXES": {
+ "LABEL": "صندوق ورودی"
+ },
+ "TEAMS": {
+ "LABEL": "تیم"
+ },
+ "RATINGS": {
+ "LABEL": "رتبه"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "مخاطب",
- "AGENT_NAME": "ایجنت تعیین شده",
+ "AGENT_NAME": "ایجنت",
"RATING": "رتبه",
- "FEEDBACK_TEXT": "نظر ثبت شده"
- }
+ "FEEDBACK_TEXT": "نظر ثبت شده",
+ "CONVERSATION": "گفتگو",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "مجموع پاسخ ها",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "نرخ پاسخ",
"TOOLTIP": "تعداد کل پاسخ ها / تعداد کل پیام های نظرسنجی رضایت مشتری ارسال شده از 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "ذخیره",
+ "CANCEL": "انصراف",
+ "SAVING": "در حال ذخیره...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "حالا ارتقا دهید",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/fa/settings.json b/app/javascript/dashboard/i18n/locale/fa/settings.json
index 827fc2e5a..5fe16b4c6 100644
--- a/app/javascript/dashboard/i18n/locale/fa/settings.json
+++ b/app/javascript/dashboard/i18n/locale/fa/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "دانلود",
"UPLOADING": "در حال آپلود...",
- "INSTAGRAM_STORY_UNAVAILABLE": "این داستان دیگر در دسترس نیست."
+ "INSTAGRAM_STORY_UNAVAILABLE": "این داستان دیگر در دسترس نیست.",
+ "INSTAGRAM_STORY_REPLY": "به استوری شما پاسخ داده:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "مشاهده بر روی نقشه"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "اسناد را بخوانید",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "امکانات",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "صورتحساب",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "جستجو ویژگی ها"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "گفتگو حل شده",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "گفتگو حل شده",
+ "CANCEL": "انصراف"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "بله",
+ "NO": "خیر"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "حالا ارتقا دهید",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "لطفاً برای ارتقا با ادمین خود تماس بگیرید."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "اوه اوه! ما هیچ حسابی روی Chatwoot پاز شما پیدا نکردیم. لطفاً برای ادامه یک حساب جدید ایجاد کنید.",
"NEW_ACCOUNT": "حسابکاربری جدید",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "انصراف"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/fa/signup.json b/app/javascript/dashboard/i18n/locale/fa/signup.json
index 0163a7e85..38a662649 100644
--- a/app/javascript/dashboard/i18n/locale/fa/signup.json
+++ b/app/javascript/dashboard/i18n/locale/fa/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "ایجاد حساب کاربری",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "ثبت نام",
"TESTIMONIAL_HEADER": "تنها چیزی که لازم است یک قدم برای حرکت به جلو است",
"TESTIMONIAL_CONTENT": "شما یک قدم تا جذب مشتریان خود، حفظ آنها و یافتن مشتریان جدید فاصله دارید.",
diff --git a/app/javascript/dashboard/i18n/locale/fa/sla.json b/app/javascript/dashboard/i18n/locale/fa/sla.json
index d0d853d4f..e283f3402 100644
--- a/app/javascript/dashboard/i18n/locale/fa/sla.json
+++ b/app/javascript/dashboard/i18n/locale/fa/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "ایجاد سیاست SLA جدید",
"DESCRIPTION": "قراردادهای سطح خدمات (SLA) قراردادهایی هستند که انتظارات واضحی را بین تیم شما و مشتریان تعریف می کنند. آنها استانداردهایی را برای زمان پاسخگویی و حل موضوعات تعریف می کنند، در قالب چارچوبی مه برای پاسخگویی ایجاد می کنند تجربه ای پایدار و با کیفیت را به مشتری ارائه می کنند.",
"LEARN_MORE": "اطلاعات بیشتری درباره SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "در حال گرفتن SLAها",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "برای ایجاد SLA بروز رسانی کنید",
"AVAILABLE_ON": "قابلیت SLA فقط در نسخه Business و Enterprise وجود دارد.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "هیچ SLA در این حسابکاربری وجود ندارد.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "مسائلی که توسط مشتریان سازمانی مطرح می شود و نیاز به توجه فوری دارد.",
"TITLE_2": "Enterprise P1",
"DESC_2": "مسائلی که توسط مشتریان سازمانی مطرح می شود، باید به سرعت مورد تایید قرار گیرد."
},
- "BUSINESS_HOURS_ON": "در ساعت کاری",
- "BUSINESS_HOURS_OFF": "خارج از ساعت کاری",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "آستانه زمان اولین پاسخ",
"NRT": "آستانه زمان پاسخ بعدی",
diff --git a/app/javascript/dashboard/i18n/locale/fa/snooze.json b/app/javascript/dashboard/i18n/locale/fa/snooze.json
new file mode 100644
index 000000000..fda794853
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fa/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "ساعت",
+ "DAY": "روز",
+ "DAYS": "days",
+ "WEEK": "روز",
+ "WEEKS": "weeks",
+ "MONTH": "هفته",
+ "MONTHS": "months",
+ "YEAR": "ماه",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "فردا",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "هفته بعد",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "روز",
+ "DAY": "روز"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fa/teamsSettings.json b/app/javascript/dashboard/i18n/locale/fa/teamsSettings.json
index af7384b71..b1bb021ea 100644
--- a/app/javascript/dashboard/i18n/locale/fa/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/fa/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "جستجوی تیم...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "هیچ تیمی در این حساب ایجاد نشده است.",
"EDIT_TEAM": "ویرایش تیم",
diff --git a/app/javascript/dashboard/i18n/locale/fi/agentBots.json b/app/javascript/dashboard/i18n/locale/fi/agentBots.json
index eae68ec01..ed237979f 100644
--- a/app/javascript/dashboard/i18n/locale/fi/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/fi/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhookin URL"
+ "URL": "Webhookin URL",
+ "ACTIONS": "Toiminnot"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/fi/agentMgmt.json b/app/javascript/dashboard/i18n/locale/fi/agentMgmt.json
index 25472a2bc..1111f6684 100644
--- a/app/javascript/dashboard/i18n/locale/fi/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fi/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Ylläpitäjä",
"AGENT": "Edustajat"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Tälle tilille ei ole liitetty edustajia",
"TITLE": "Hallitse edustajia tiimissäsi",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Yhteyden muodostaminen Woot-palvelimelle ei onnistunut, yritä myöhemmin uudelleen"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/fi/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/fi/attributesMgmt.json
index da3fe86bb..8087fda09 100644
--- a/app/javascript/dashboard/i18n/locale/fi/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fi/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Etsi määritteitä...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/fi/automation.json b/app/javascript/dashboard/i18n/locale/fi/automation.json
index ea8ecab1d..0dfca6771 100644
--- a/app/javascript/dashboard/i18n/locale/fi/automation.json
+++ b/app/javascript/dashboard/i18n/locale/fi/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Luo",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Nimi",
- "DESCRIPTION": "Kuvaus",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Toiminnot"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/fi/bulkActions.json b/app/javascript/dashboard/i18n/locale/fi/bulkActions.json
index 0163c825a..bc5019095 100644
--- a/app/javascript/dashboard/i18n/locale/fi/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/fi/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/fi/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/fi/cannedMgmt.json
index 49552985f..1a5e74828 100644
--- a/app/javascript/dashboard/i18n/locale/fi/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fi/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Tallennetut vastaukset",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Tätä hakua vastaavia kohteita ei löydy.",
"LIST": {
"404": "Tällä tilillä ei ole tallennettuja vastauksia.",
diff --git a/app/javascript/dashboard/i18n/locale/fi/chatlist.json b/app/javascript/dashboard/i18n/locale/fi/chatlist.json
index 34d85e113..4056a01f2 100644
--- a/app/javascript/dashboard/i18n/locale/fi/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/fi/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/fi/contact.json b/app/javascript/dashboard/i18n/locale/fi/contact.json
index 00b712a63..4950073a8 100644
--- a/app/javascript/dashboard/i18n/locale/fi/contact.json
+++ b/app/javascript/dashboard/i18n/locale/fi/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Ei hakua vastaavia yhteystietoja 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/fi/conversation.json b/app/javascript/dashboard/i18n/locale/fi/conversation.json
index d1aa292ac..54cc45b93 100644
--- a/app/javascript/dashboard/i18n/locale/fi/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/fi/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Vaihto + enter siirtyäksesi uudelle riville. Aloita '/' valitaksesi tallennettu vastaus.",
"PRIVATE_MSG_INPUT": "Vaihto + enter siirtyäksesi uudelle riville. Tämä näkyy vain edustajille",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "WhatsApp-pohjat"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Lähettäjä:",
"BOT": "Botti",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Viestiä ei voitu lähettää! Yritä uudelleen",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Peruuta",
"SEND_EMAIL_SUCCESS": "Chat-keskustelu on lähetetty onnistuneesti",
"SEND_EMAIL_ERROR": "Tapahtui virhe, yritä uudelleen",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Lähetä keskustelu asiakkaalle",
"SEND_TO_AGENT": "Lähetä keskustelu edustajalle",
diff --git a/app/javascript/dashboard/i18n/locale/fi/customRole.json b/app/javascript/dashboard/i18n/locale/fi/customRole.json
index 6807fa16d..d2ecf49d2 100644
--- a/app/javascript/dashboard/i18n/locale/fi/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/fi/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Tätä hakua vastaavia kohteita ei löydy.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/fi/datePicker.json b/app/javascript/dashboard/i18n/locale/fi/datePicker.json
index 1d2e2bf34..8abe975c9 100644
--- a/app/javascript/dashboard/i18n/locale/fi/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/fi/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/general.json b/app/javascript/dashboard/i18n/locale/fi/general.json
index 796f39b73..a3e8dc63c 100644
--- a/app/javascript/dashboard/i18n/locale/fi/general.json
+++ b/app/javascript/dashboard/i18n/locale/fi/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Sulje",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/generalSettings.json b/app/javascript/dashboard/i18n/locale/fi/generalSettings.json
index 58701ec53..c10475348 100644
--- a/app/javascript/dashboard/i18n/locale/fi/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/fi/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Raportit",
diff --git a/app/javascript/dashboard/i18n/locale/fi/helpCenter.json b/app/javascript/dashboard/i18n/locale/fi/helpCenter.json
index 6b593e9b6..7f5370936 100644
--- a/app/javascript/dashboard/i18n/locale/fi/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/fi/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json
index 6f780eddc..d9fb67383 100644
--- a/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Saapuneet-kansiot",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Pois käytöstä"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Käytössä",
- "DISABLED": "Pois käytöstä"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Postilaatikon tiedot",
"INBOX_UPDATE_SUB_TEXT": "Päivitä postilaatikon asetukset",
"AUTO_ASSIGNMENT_SUB_TEXT": "Ota käyttöön tai poista käytöstä automaattinen keskusteluiden delegointi edustajille.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Peruuta",
+ "CONFIRM_DELETE": "Poista",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Uudelleenvaltuuta",
"SUBTITLE": "Facebook-yhteytesi on vanhentunut, ole hyvä ja yhdistä uudelleen Facebook-sivusi jatkaaksesi palveluita",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Mene takaisin"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Saatavuus",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Päivän kuluessa"
},
"WIDGET_COLOR_LABEL": "Widgetin väri",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Keskustele kanssamme",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Keskustele kanssamme"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Vastaa tyypillisesti muutamassa minuutissa",
diff --git a/app/javascript/dashboard/i18n/locale/fi/integrationApps.json b/app/javascript/dashboard/i18n/locale/fi/integrationApps.json
index 226a7539f..e9908629a 100644
--- a/app/javascript/dashboard/i18n/locale/fi/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/fi/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Käytössä",
"DISABLED": "Pois käytöstä"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Toiminnot",
"DELETE": {
"BUTTON_TEXT": "Poista"
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/integrations.json b/app/javascript/dashboard/i18n/locale/fi/integrations.json
index 3b25a48b0..cf4d13dc1 100644
--- a/app/javascript/dashboard/i18n/locale/fi/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/fi/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Peruuta",
"DESC": "Webhook-tapahtumat antavat sinulle reaaliaikaista tietoa siitä, mitä Chatwot-tililläsi tapahtuu. Syötä kelvollinen URL-osoite, jotta voit määrittää callbackin.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Poista",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Nimi",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Toiminnot"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/fi/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/fi/labelsMgmt.json
index 877827020..d4324a87f 100644
--- a/app/javascript/dashboard/i18n/locale/fi/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fi/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Haetaan tunnisteita",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Tätä hakua vastaavia kohteita ei löydy",
"LIST": {
"404": "Tällä tilillä ei ole tunnisteita.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Nimi",
"DESCRIPTION": "Kuvaus",
- "COLOR": "Väri"
+ "COLOR": "Väri",
+ "ACTION": "Toiminnot"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/fi/macros.json b/app/javascript/dashboard/i18n/locale/fi/macros.json
index a2716f073..5d78f2687 100644
--- a/app/javascript/dashboard/i18n/locale/fi/macros.json
+++ b/app/javascript/dashboard/i18n/locale/fi/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Nimi",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Toiminnot"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/fi/mfa.json b/app/javascript/dashboard/i18n/locale/fi/mfa.json
index ad2b19764..1af0654f5 100644
--- a/app/javascript/dashboard/i18n/locale/fi/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/fi/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/fi/report.json b/app/javascript/dashboard/i18n/locale/fi/report.json
index 22db228b2..107589f21 100644
--- a/app/javascript/dashboard/i18n/locale/fi/report.json
+++ b/app/javascript/dashboard/i18n/locale/fi/report.json
@@ -3,7 +3,7 @@
"HEADER": "Keskustelut",
"LOADING_CHART": "Ladataan kaaviotietoja...",
"NO_ENOUGH_DATA": "Emme ole saaneet tarpeeksi dataa raportin luomiseen, yritä myöhemmin uudelleen.",
- "DOWNLOAD_AGENT_REPORTS": "Lataa edustajaraportit",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Ladataan kaaviotietoja...",
"NO_ENOUGH_DATA": "Emme ole saaneet tarpeeksi dataa raportin luomiseen, yritä myöhemmin uudelleen.",
"DOWNLOAD_AGENT_REPORTS": "Lataa edustajaraportit",
"FILTER_DROPDOWN_LABEL": "Valitse edustaja",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Keskustelut",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Emme ole saaneet tarpeeksi dataa raportin luomiseen, yritä myöhemmin uudelleen.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Keskustelut",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Keskustelut",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Ladataan kaaviotietoja...",
"NO_ENOUGH_DATA": "Emme ole saaneet tarpeeksi dataa raportin luomiseen, yritä myöhemmin uudelleen.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Keskustelut",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Edustajat"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Arvio"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Osoitettu edustajalle",
+ "AGENT_NAME": "Edustajat",
"RATING": "Arvio",
- "FEEDBACK_TEXT": "Palautteen kommentti"
- }
+ "FEEDBACK_TEXT": "Palautteen kommentti",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Peruuta",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/fi/settings.json b/app/javascript/dashboard/i18n/locale/fi/settings.json
index d32a94ecc..bf7d7bc44 100644
--- a/app/javascript/dashboard/i18n/locale/fi/settings.json
+++ b/app/javascript/dashboard/i18n/locale/fi/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Lataa",
"UPLOADING": "Lähetetään...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Ominaisuudet",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Etsi määritteitä"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Selvitä keskustelu",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Selvitä keskustelu",
+ "CANCEL": "Peruuta"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "Uusi tili",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Peruuta"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/fi/signup.json b/app/javascript/dashboard/i18n/locale/fi/signup.json
index 4afef6704..a460c1582 100644
--- a/app/javascript/dashboard/i18n/locale/fi/signup.json
+++ b/app/javascript/dashboard/i18n/locale/fi/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Rekisteröidy",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/fi/sla.json b/app/javascript/dashboard/i18n/locale/fi/sla.json
index 51e8ef39b..ed59a2b82 100644
--- a/app/javascript/dashboard/i18n/locale/fi/sla.json
+++ b/app/javascript/dashboard/i18n/locale/fi/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/fi/snooze.json b/app/javascript/dashboard/i18n/locale/fi/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fi/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fi/teamsSettings.json b/app/javascript/dashboard/i18n/locale/fi/teamsSettings.json
index 6b8c89789..aec3a5833 100644
--- a/app/javascript/dashboard/i18n/locale/fi/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/fi/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,7 +67,7 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
+ "AGENT": "Edustajat",
"EMAIL": "Sähköposti",
"BUTTON_TEXT": "Lisää edustaja",
"ADD_AGENTS": "Adding Agents to your Team...",
diff --git a/app/javascript/dashboard/i18n/locale/fr/agentBots.json b/app/javascript/dashboard/i18n/locale/fr/agentBots.json
index 99142ad27..915adb649 100644
--- a/app/javascript/dashboard/i18n/locale/fr/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/fr/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Chargement de l'éditeur...",
"DESCRIPTION": "Les bots agents sont comme les membres les plus formidables de votre équipe. Ils peuvent gérer les petites tâches, vous permettant ainsi de vous concentrer sur ce qui compte vraiment. Essayez-les. Vous pouvez gérer vos bots depuis cette page ou en créer de nouveaux en cliquant sur le bouton 'Ajouter un bot'.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "Bot système",
"GLOBAL_BOT_BADGE": "Système",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Récupération des bots...",
"TABLE_HEADER": {
"DETAILS": "Détails du bot",
- "URL": "URL du Webhook"
+ "URL": "URL du Webhook",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/fr/agentMgmt.json b/app/javascript/dashboard/i18n/locale/fr/agentMgmt.json
index f0bca3e22..d3bb0a880 100644
--- a/app/javascript/dashboard/i18n/locale/fr/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fr/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrateur",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Il n'y a aucun agent associé à ce compte",
"TITLE": "Gérer les agents de votre équipe",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Impossible de se connecter au serveur Woot, veuillez réessayer plus tard"
}
},
+ "SEARCH_PLACEHOLDER": "Chercher des agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Aucun résultat trouvé."
},
diff --git a/app/javascript/dashboard/i18n/locale/fr/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/fr/attributesMgmt.json
index 3fa91fa64..f5a68599b 100644
--- a/app/javascript/dashboard/i18n/locale/fr/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fr/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Récupération des attributs personnalisés",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Rechercher des attributs...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Activer la validation Regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/fr/automation.json b/app/javascript/dashboard/i18n/locale/fr/automation.json
index 985f9f35a..a43e34cfa 100644
--- a/app/javascript/dashboard/i18n/locale/fr/automation.json
+++ b/app/javascript/dashboard/i18n/locale/fr/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automatisations",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Ajouter une règle d'automatisation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Récupération des règles d'automatisation",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Ajouter une règle d'automatisation",
"SUBMIT": "Créer",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Nom",
- "DESCRIPTION": "Description",
"ACTIVE": "Actif",
- "CREATED_ON": "Créé le"
+ "CREATED_ON": "Créé le",
+ "ACTIONS": "Actions"
},
"404": "Aucune règle d'automatisation trouvée"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Ajouter une note privée",
"CHANGE_PRIORITY": "Modifier la priorité",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Ouvrir la conversation"
+ "OPEN_CONVERSATION": "Ouvrir la conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Boite de réception",
diff --git a/app/javascript/dashboard/i18n/locale/fr/bulkActions.json b/app/javascript/dashboard/i18n/locale/fr/bulkActions.json
index 772e00ffe..b9a8f645b 100644
--- a/app/javascript/dashboard/i18n/locale/fr/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/fr/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Le statut de la conversation a été mis à jour avec succès.",
"UPDATE_FAILED": "Impossible de mettre à jour les conversations, veuillez réessayer."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assigner une étiquette",
"NO_LABELS_FOUND": "Aucune étiquette trouvée",
diff --git a/app/javascript/dashboard/i18n/locale/fr/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/fr/cannedMgmt.json
index 28c29309d..e5524e845 100644
--- a/app/javascript/dashboard/i18n/locale/fr/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fr/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Réponses standardisées",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Ajouter une réponse prédéfinie",
"LOADING": "Récupération des réponses prédéfinies...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Il n'y a aucun élément correspondant à cette requête.",
"LIST": {
"404": "Il n'y a aucune réponse standardisée disponible dans ce compte.",
diff --git a/app/javascript/dashboard/i18n/locale/fr/chatlist.json b/app/javascript/dashboard/i18n/locale/fr/chatlist.json
index dcaf26810..5126c29f7 100644
--- a/app/javascript/dashboard/i18n/locale/fr/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/fr/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Réponse en attente : La plus courte en premier"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/fr/contact.json b/app/javascript/dashboard/i18n/locale/fr/contact.json
index 22684d6e6..baded39db 100644
--- a/app/javascript/dashboard/i18n/locale/fr/contact.json
+++ b/app/javascript/dashboard/i18n/locale/fr/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Aucun contact ne correspond à votre recherche 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "Aucun contact n'est actif pour le moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assigner des étiquettes",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "À:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Objet :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Cci:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Cci"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/fr/conversation.json b/app/javascript/dashboard/i18n/locale/fr/conversation.json
index da74fce54..f1c87af24 100644
--- a/app/javascript/dashboard/i18n/locale/fr/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/fr/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Ce message n'est pas pris en charge. Vous pouvez voir ce message sur l'application Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Ce message n'est pas pris en charge. Vous pouvez voir ce message sur l'application Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Le message a bien été supprimé",
"FAIL_DELETE_MESSSAGE": "Impossible de supprimer le message ! Veuillez réessayez",
"NO_RESPONSE": "Pas de réponse",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Impossible d'assigner l'étiquette. Veuillez réessayer."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Équipe assignée «{team}» à la conversation id {conversationId}",
"FAILED": "Impossible d'assigner l'équipe. Veuillez réessayer."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Désactiver la signature",
"MSG_INPUT": "Maj + entrée pour une nouvelle ligne. Commencez par '/' pour sélectionner une réponse standardisée.",
"PRIVATE_MSG_INPUT": "Maj + entrée pour une nouvelle ligne. Cela ne sera visible que par les agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "La signature du message n'est pas configurée, veuillez le configurer dans les paramètres du profil.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Cliquez ici pour mettre à jour",
"WHATSAPP_TEMPLATES": "Modèles WhatsApp"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Glissez et déposez ici pour lier",
"START_AUDIO_RECORDING": "Démarrer l'enregistrement audio",
"STOP_AUDIO_RECORDING": "Arrêter l'enregistrement audio",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "À",
"ADD_BCC": "Ajouter cci",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation supprimée avec succès",
"FAIL_DELETE_CONVERSATION": "Impossible de supprimer la conversation ! Veuillez réessayer",
"FILE_SIZE_LIMIT": "Le fichier dépasse la limite de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} pour les pièces jointes",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Impossible d'envoyer ce message, veuillez réessayer plus tard",
"SENT_BY": "Envoyé par:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Impossible d'envoyer le message ! Réessayez",
"TRY_AGAIN": "Réessayer",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Annuler",
"SEND_EMAIL_SUCCESS": "La transcription du chat a été envoyée avec succès",
"SEND_EMAIL_ERROR": "Une erreur est survenue, veuillez réessayer",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Envoyer la transcription au client",
"SEND_TO_AGENT": "Envoyer la transcription à l'agent assigné",
diff --git a/app/javascript/dashboard/i18n/locale/fr/customRole.json b/app/javascript/dashboard/i18n/locale/fr/customRole.json
index 32b7c9f37..d8220b1f7 100644
--- a/app/javascript/dashboard/i18n/locale/fr/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/fr/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Il n'y a aucun élément correspondant à cette requête.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/fr/datePicker.json b/app/javascript/dashboard/i18n/locale/fr/datePicker.json
index bdec99942..8fd56423a 100644
--- a/app/javascript/dashboard/i18n/locale/fr/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/fr/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Appliquer",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "3 derniers mois",
"LAST_6_MONTHS": "6 derniers mois",
"LAST_YEAR": "Année dernière",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Plage de date personnalisée"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/general.json b/app/javascript/dashboard/i18n/locale/fr/general.json
index a97743c6f..492ed2b51 100644
--- a/app/javascript/dashboard/i18n/locale/fr/general.json
+++ b/app/javascript/dashboard/i18n/locale/fr/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Fermer",
"BETA": "Bêta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Oui",
+ "NO": "Non"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/generalSettings.json b/app/javascript/dashboard/i18n/locale/fr/generalSettings.json
index 664d04eda..63ac2ea73 100644
--- a/app/javascript/dashboard/i18n/locale/fr/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/fr/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Rechercher ou aller à",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Général",
"REPORTS": "Rapports",
diff --git a/app/javascript/dashboard/i18n/locale/fr/helpCenter.json b/app/javascript/dashboard/i18n/locale/fr/helpCenter.json
index 0b41f6da7..95996ce4d 100644
--- a/app/javascript/dashboard/i18n/locale/fr/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/fr/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Erreur lors de la suppression de l’article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Veuillez ajouter le titre et le contenu de l'article puis vous seul pouvez mettre à jour les paramètres"
},
diff --git a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json
index 6b1b2d342..d4a7ebc5b 100644
--- a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Boîtes de réception",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Utilisez uniquement le nom d'entreprise configuré comme nom d'expéditeur dans l'en-tête du courriel."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configurez votre nom d'entreprise",
+ "BUTTON_TEXT": "Configurez votre nom d'entreprise",
"PLACEHOLDER": "Entrez le nom de votre entreprise",
"SAVE_BUTTON_TEXT": "Enregistrer"
}
@@ -589,8 +592,10 @@
"DISABLED": "Désactivé"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Activé",
- "DISABLED": "Désactivé"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Activer"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Activer/Désactiver l'affichage du nom de l'agent dans l'e-mail, si désactivé, il affichera le nom de l'entreprise",
"ENABLE_CONTINUITY_VIA_EMAIL": "Activer la continuité de la conversation par e-mail",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Les conversations se poursuivront par courrier électronique si l'adresse e-mail du contact est disponible.",
- "LOCK_TO_SINGLE_CONVERSATION": "Verrouiller à une seule conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Activer ou désactiver plusieurs conversations pour le même contact dans cette boîte de réception",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Paramètres de boîtes de réception",
"INBOX_UPDATE_SUB_TEXT": "Mettre à jour les paramètres de votre boîte de réception",
"AUTO_ASSIGNMENT_SUB_TEXT": "Activer ou désactiver l'affectation automatique de nouvelles conversations aux agents ajoutés à cette boîte de réception.",
@@ -758,6 +775,7 @@
"LABEL": "Centre d'aide",
"PLACEHOLDER": "Sélectionnez le centre d'aide",
"SELECT_PLACEHOLDER": "Sélectionnez le centre d'aide",
+ "NONE": "Aucun",
"REMOVE": "Supprimer le centre d'aide",
"SUB_TEXT": "Attachez un centre d'aide avec la boîte de réception"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Veuillez entrer une valeur supérieure à 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limiter le nombre maximum de conversations de cette boîte de réception qui peuvent être assignées automatiquement à un agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Konversationsauftrag",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Actif",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Annuler",
+ "CONFIRM_DELETE": "Supprimer",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Réautoriser",
"SUBTITLE": "Votre connexion Facebook a expiré, veuillez reconnecter votre page Facebook pour continuer les services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Retour"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Message d'indisponibilité pour les visiteurs",
"TOGGLE_HELP": "Activer la disponibilité professionnelle montrera les heures disponibles sur le widget chat en direct même si tous les agents sont hors ligne. En dehors des heures disponibles, les visiteurs peuvent être avertis avec un message et un formulaire de préconversation.",
"DAY": {
+ "DAY": "Jour",
+ "AVAILABILITY": "Disponibilité",
+ "HOURS": "Heures",
"ENABLE": "Activer la disponibilité pour ce jour",
"UNAVAILABLE": "Non disponible",
- "HOURS": "heures",
"VALIDATION_ERROR": "L'heure de début doit être avant l'heure de fermeture.",
"CHOOSE": "Sélectionner"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "En une journée"
},
"WIDGET_COLOR_LABEL": "Couleur du Widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Position de la bulle du widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "Type de bulle de widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Discutez avec nous",
- "LABEL": "Titre du Widget Bubble Launcher",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Discutez avec nous"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Par défaut",
- "CHAT": "Discussion"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Répond généralement en quelques minutes",
diff --git a/app/javascript/dashboard/i18n/locale/fr/integrationApps.json b/app/javascript/dashboard/i18n/locale/fr/integrationApps.json
index aa2fc22fd..7fd0223f4 100644
--- a/app/javascript/dashboard/i18n/locale/fr/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/fr/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Récupération des intégrations",
"NO_HOOK_CONFIGURED": "Aucune intégration {integrationId} n'est configurée dans ce compte.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Activé",
"DISABLED": "Désactivé"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Récupération des webhooks de l'intégration",
"INBOX": "Boîte de réception",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Supprimer"
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/integrations.json b/app/javascript/dashboard/i18n/locale/fr/integrations.json
index b3ec7a784..f0ee975c7 100644
--- a/app/javascript/dashboard/i18n/locale/fr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/fr/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Événements suivis",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Annuler",
"DESC": "Les événements Webhook vous fournissent des informations en temps réel sur ce qui se passe dans votre compte Chatwoot. Veuillez entrer une URL valide pour configurer un callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Supprimer",
"DELETE_CONFIRMATION": {
"TITLE": "Supprimer l'intégration",
@@ -145,7 +160,29 @@
"EXPAND": "Développer",
"MAKE_FRIENDLY": "Modifier la tonalité du message en mode convivial",
"MAKE_FORMAL": "Utiliser une tonalité formelle",
- "SIMPLIFY": "Simplifier"
+ "SIMPLIFY": "Simplifier",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professionnel",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Amical"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Contenu du brouillon",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Les applications du tableau de bord
Les applications du tableau de bord permettent aux organisations d'intégrer une application dans le tableau de bord Chatwoot pour fournir le contexte aux agents d'assistance client. Cette fonctionnalité vous permet de créer une application indépendamment et d'intégrer cela dans le tableau de bord pour fournir les informations de l'utilisateur, leurs commandes, ou leur historique de paiement précédent.
Lorsque vous intégrez votre application en utilisant le tableau de bord dans Chatwoot, votre application obtiendra le contexte de la conversation et le contact comme un événement de fenêtre. Implémentez un listener pour l'événement message sur votre page pour recevoir le contexte.
Pour ajouter une nouvelle application de tableau de bord, cliquez sur le bouton 'Ajouter une nouvelle application de tableau de bord'.
",
"DESCRIPTION": "Les applications du tableau de bord permettent aux organisations d'intégrer une application dans le tableau de bord pour fournir le contexte des agents d'assistance client. Cette fonctionnalité vous permet de créer une application de manière indépendante et d'intégrer les informations de l'utilisateur, leurs commandes ou leur historique de paiement précédent.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Il n'y a pas encore d'applications de tableau de bord configurées sur ce compte",
"LOADING": "Récupération des applications du tableau de bord ...",
"TABLE_HEADER": {
"NAME": "Nom",
- "ENDPOINT": "Terminaison"
+ "ENDPOINT": "Terminaison",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Editer l'application",
"DELETE_TOOLTIP": "Supprimer l'application"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/fr/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/fr/labelsMgmt.json
index 27c0e5ad3..bdaf46270 100644
--- a/app/javascript/dashboard/i18n/locale/fr/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fr/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Récupération des étiquettes",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Rechercher des étiquettes...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Il n'y a aucun élément correspondant à cette requête",
"LIST": {
"404": "Il n'y a aucune étiquette disponible dans ce compte.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Nom",
"DESCRIPTION": "Description",
- "COLOR": "Couleur"
+ "COLOR": "Couleur",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/fr/macros.json b/app/javascript/dashboard/i18n/locale/fr/macros.json
index 20623d702..d61e849d8 100644
--- a/app/javascript/dashboard/i18n/locale/fr/macros.json
+++ b/app/javascript/dashboard/i18n/locale/fr/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Ajouter une macro",
"HEADER_BTN_TXT_SAVE": "Enregistrer une macro",
"LOADING": "Récupération des macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Une erreur s'est produite. Veuillez réessayer",
"ORDER_INFO": "Les macros s'exécuteront dans l'ordre où vous ajoutez vos actions. Vous pouvez les réorganiser en les glissant par la poignée à côté de chaque nœud.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Nom",
"CREATED BY": "Créé par",
"LAST_UPDATED_BY": "Dernière mise à jour par",
- "VISIBILITY": "Visibilité"
+ "VISIBILITY": "Visibilité",
+ "ACTIONS": "Actions"
},
"404": "Aucune macro trouvée"
},
diff --git a/app/javascript/dashboard/i18n/locale/fr/mfa.json b/app/javascript/dashboard/i18n/locale/fr/mfa.json
index e540427ad..f9a59d131 100644
--- a/app/javascript/dashboard/i18n/locale/fr/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/fr/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/fr/report.json b/app/javascript/dashboard/i18n/locale/fr/report.json
index 5c41536e9..8d610113d 100644
--- a/app/javascript/dashboard/i18n/locale/fr/report.json
+++ b/app/javascript/dashboard/i18n/locale/fr/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Chargement des données du graphique ...",
"NO_ENOUGH_DATA": "Nous n'avons pas reçu assez de points de données pour générer un rapport. Veuillez réessayer plus tard.",
- "DOWNLOAD_AGENT_REPORTS": "Télécharger les rapports de l'agent",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Impossible de récupérer les données, veuillez réessayer ultérieurement.",
"SUMMARY_FETCHING_FAILED": "Impossible de récupérer le résumé, veuillez réessayer plus tard.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Présentation des agents",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Chargement des données du graphique ...",
"NO_ENOUGH_DATA": "Nous n'avons pas reçu assez de points de données pour générer un rapport. Veuillez réessayer plus tard.",
"DOWNLOAD_AGENT_REPORTS": "Télécharger les rapports de l'agent",
"FILTER_DROPDOWN_LABEL": "Sélectionner un agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Chercher des agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Nous n'avons pas reçu assez de points de données pour générer un rapport. Veuillez réessayer plus tard.",
"DOWNLOAD_LABEL_REPORTS": "Télécharger les rapports d'étiquettes",
"FILTER_DROPDOWN_LABEL": "Sélectionnez l'étiquette",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Rechercher des étiquettes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Sélectionner la boîte de réception",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Présentation de l'équipe",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Chargement des données du graphique ...",
"NO_ENOUGH_DATA": "Nous n'avons pas reçu assez de points de données pour générer un rapport. Veuillez réessayer plus tard.",
"DOWNLOAD_TEAM_REPORTS": "Télécharger les rapports d'équipe",
"FILTER_DROPDOWN_LABEL": "Choisis une équipe",
+ "FILTERS": {
+ "ADD_FILTER": "Ajouter un filtre",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Chercher des équipes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Rapports CSAT",
- "NO_RECORDS": "Il n'y a aucune réponse à l'enquête CSAT disponible.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Télécharger les rapports CSAT",
"DOWNLOAD_FAILED": "Le téléchargement des rapports CSAT a échoué",
"FILTERS": {
+ "ADD_FILTER": "Ajouter un filtre",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Chercher des agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Chercher des équipes",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choisissez des agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Boîte de réception"
+ },
+ "TEAMS": {
+ "LABEL": "Équipes"
+ },
+ "RATINGS": {
+ "LABEL": "Note"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Agent assigné",
+ "AGENT_NAME": "Agent",
"RATING": "Note",
- "FEEDBACK_TEXT": "Commentaire sur la rétroaction"
- }
+ "FEEDBACK_TEXT": "Commentaire sur la rétroaction",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Réponses totales",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Taux de réponse",
"TOOLTIP": "Nombre total de réponses / Nombre total de messages de l'enquête CSAT envoyés * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Enregistrer",
+ "CANCEL": "Annuler",
+ "SAVING": "Enregistrement en cours...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/fr/settings.json b/app/javascript/dashboard/i18n/locale/fr/settings.json
index 1213d1fbe..15dceb726 100644
--- a/app/javascript/dashboard/i18n/locale/fr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/fr/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Télécharger",
"UPLOADING": "Téléversement...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Cette Story n'est plus disponible."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Cette Story n'est plus disponible.",
+ "INSTAGRAM_STORY_REPLY": "A répondu à votre histoire:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Afficher sur la carte"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Lire la documentation",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Fonctionnalités",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Facturation",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Rechercher des attributs"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Reprendre la conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Reprendre la conversation",
+ "CANCEL": "Annuler"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Oui",
+ "NO": "Non"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Oh oh ! Nous n'avons pas trouvé de compte Chatwoot. Veuillez créer un nouveau compte pour continuer.",
"NEW_ACCOUNT": "Nouveau compte",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Annuler"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/fr/signup.json b/app/javascript/dashboard/i18n/locale/fr/signup.json
index 64b2a5a1a..1d3aa0d4f 100644
--- a/app/javascript/dashboard/i18n/locale/fr/signup.json
+++ b/app/javascript/dashboard/i18n/locale/fr/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Créer un compte",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Inscription",
"TESTIMONIAL_HEADER": "Il suffit d'une étape pour avancer",
"TESTIMONIAL_CONTENT": "Vous n'êtes plus qu'à un pas d'engager vos clients, de les fidéliser et d'en trouver de nouveaux.",
diff --git a/app/javascript/dashboard/i18n/locale/fr/sla.json b/app/javascript/dashboard/i18n/locale/fr/sla.json
index a864ed3c3..388265561 100644
--- a/app/javascript/dashboard/i18n/locale/fr/sla.json
+++ b/app/javascript/dashboard/i18n/locale/fr/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/fr/snooze.json b/app/javascript/dashboard/i18n/locale/fr/snooze.json
new file mode 100644
index 000000000..39ea74496
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fr/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "heures",
+ "DAY": "jour",
+ "DAYS": "jours",
+ "WEEK": "jour",
+ "WEEKS": "weeks",
+ "MONTH": "semaine",
+ "MONTHS": "months",
+ "YEAR": "mois",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "suivant",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "demain",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "semaine prochaine",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "jour",
+ "DAY": "jour"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fr/teamsSettings.json b/app/javascript/dashboard/i18n/locale/fr/teamsSettings.json
index 8adba8b41..89e547718 100644
--- a/app/javascript/dashboard/i18n/locale/fr/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/fr/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Chercher des équipes...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Il n'y a aucune équipe créée sur ce compte.",
"EDIT_TEAM": "Modifier l'équipe",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Impossible d'enregistrer les détails de l'équipe. Veuillez réessayer."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "COURRIEL",
+ "AGENT": "Agent",
+ "EMAIL": "Courriel",
"BUTTON_TEXT": "Ajouter des agents",
"ADD_AGENTS": "Ajout d'agents à votre équipe...",
"SELECT": "sélectionner",
diff --git a/app/javascript/dashboard/i18n/locale/he/agentBots.json b/app/javascript/dashboard/i18n/locale/he/agentBots.json
index 0b527be34..a0787013f 100644
--- a/app/javascript/dashboard/i18n/locale/he/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/he/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "טוען עורך...",
"DESCRIPTION": "בוטים של סוכנים הם כמו החברים הכי נפלאים בצוות שלכם. הם יכולים להתמודד עם הדברים הקטנים, כך שאתם יכולים להתמקד בדברים החשובים. נסו אותם. אתם יכולים לנהל את הבוטים שלכם מדף זה או ליצור חדשים באמצעות כפתור 'הוסף בוט'.",
"LEARN_MORE": "למד על בוטי סוכנים",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "בוט מערכת",
"GLOBAL_BOT_BADGE": "מערכת",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "טוען בוטים...",
"TABLE_HEADER": {
"DETAILS": "פרטי בוט",
- "URL": "כתובת URL של ווב הוק"
+ "URL": "כתובת URL של ווב הוק",
+ "ACTIONS": "פעולות"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/he/agentMgmt.json b/app/javascript/dashboard/i18n/locale/he/agentMgmt.json
index 7634f2309..777acd1fc 100644
--- a/app/javascript/dashboard/i18n/locale/he/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/he/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "מנהל",
"AGENT": "סוכן"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "אין סוכנים המקושרים לחשבון זה",
"TITLE": "נהל סוכנים בצוות שלך",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "לא ניתן להתחבר לשרת ווט, נסה שוב מאוחר יותר"
}
},
+ "SEARCH_PLACEHOLDER": "חפש סוכנים...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "לא נמצאו תוצאות."
},
diff --git a/app/javascript/dashboard/i18n/locale/he/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/he/attributesMgmt.json
index 024b7056d..8dbf88721 100644
--- a/app/javascript/dashboard/i18n/locale/he/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/he/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "טוען מאפיינים מותאמים אישית",
"DESCRIPTION": "מאפיין מותאם אישית עוקב אחר פרטים נוספים על אנשי הקשר או השיחות שלך—כגון תוכנית המנוי או תאריך הרכישה הראשונה שלהם. אתה יכול להוסיף סוגים שונים של מאפיינים מותאמים אישית, כגון טקסט, רשימות או מספרים, כדי ללכוד את המידע הספציפי שאתה צריך.",
"LEARN_MORE": "למד עוד על מאפיינים מותאמים אישית",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "חפש מאפיין...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "שיחה",
"CONTACT": "איש קשר"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "אפשר אימות regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/he/automation.json b/app/javascript/dashboard/i18n/locale/he/automation.json
index ecb982c08..c93ce37ad 100644
--- a/app/javascript/dashboard/i18n/locale/he/automation.json
+++ b/app/javascript/dashboard/i18n/locale/he/automation.json
@@ -3,8 +3,11 @@
"HEADER": "אוטומציה",
"DESCRIPTION": "אוטומציה יכולה להחליף ולזרז תהליכים קיימים שדורשים מאמץ ידני, כגון הוספת תוויות והקצאת שיחות לסוכן המתאים ביותר. זה מאפשר לצוות להתמקד בחוזקות שלו תוך כדי הפחתת הזמן המושקע במשימות שגרתיות.",
"LEARN_MORE": "למד עוד על אוטומציה",
- "HEADER_BTN_TXT": "הוסף כלל אוטומציה",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "טוען כללי אוטומציה",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "הוסף כלל אוטומציה",
"SUBMIT": "צור",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "שם",
- "DESCRIPTION": "תיאור",
"ACTIVE": "פעיל",
- "CREATED_ON": "נוצר ב"
+ "CREATED_ON": "נוצר ב",
+ "ACTIONS": "פעולות"
},
"404": "לא נמצאו כללי אוטומציה"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "הוסף הערה פרטית",
"CHANGE_PRIORITY": "שנה עדיפות",
"ADD_SLA": "הוסף SLA",
- "OPEN_CONVERSATION": "פתח שיחה"
+ "OPEN_CONVERSATION": "פתח שיחה",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "הודעה נכנסת",
diff --git a/app/javascript/dashboard/i18n/locale/he/bulkActions.json b/app/javascript/dashboard/i18n/locale/he/bulkActions.json
index 183f1bf6b..f975ff9a2 100644
--- a/app/javascript/dashboard/i18n/locale/he/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/he/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "סטאטוס השיחה שונה בהצלחה.",
"UPDATE_FAILED": "העדכון של השיחות נכשל. אנא נסה שוב."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "הקצה תוויות",
"NO_LABELS_FOUND": "לא נמצאו תוויות",
diff --git a/app/javascript/dashboard/i18n/locale/he/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/he/cannedMgmt.json
index 6b770ef07..990f3c7af 100644
--- a/app/javascript/dashboard/i18n/locale/he/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/he/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "תגובות מוכנות",
"LEARN_MORE": "למד עוד על תגובות שמורות",
"DESCRIPTION": "תגובות מוכנות הן תבניות תשובה כתובות מראש שמסייעות לך להגיב במהירות לשיחה. סוכנים יכולים להקליד את התו '/' ואחריו קוד מקוצר כדי להכניס תגובה מוכנה במהלך השיחה. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "הוסף תגובה שמורה",
"LOADING": "מאחזר תגובות שמורות...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "אין פריטים התואמים לשאילתה זו.",
"LIST": {
"404": "אין תגובות מוכנות זמינות בחשבון זה.",
diff --git a/app/javascript/dashboard/i18n/locale/he/chatlist.json b/app/javascript/dashboard/i18n/locale/he/chatlist.json
index 7fd79b796..13235c5b5 100644
--- a/app/javascript/dashboard/i18n/locale/he/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/he/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "ממתין לתגובה: הקצר ביותר תחילה"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/he/contact.json b/app/javascript/dashboard/i18n/locale/he/contact.json
index 055508590..af89a1f60 100644
--- a/app/javascript/dashboard/i18n/locale/he/contact.json
+++ b/app/javascript/dashboard/i18n/locale/he/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "הוסף אינסטגרם"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "אין אנשי קשר שתואמים לחיפוש שלך 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "טען עוד"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "הקצה תוויות",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "אין תיבות דואר נכנס זמינות כדי להתחיל שיחה עם איש קשר זה.",
"CONTACT_SELECTOR": {
"LABEL": "אל:",
- "TAG_INPUT_PLACEHOLDER": "חפש איש קשר לפי שם, דוא\"ל או מספר טלפון",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "יוצר איש קשר..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "נושא :",
"SUBJECT_PLACEHOLDER": "הזן את נושא הדוא\"ל שלך כאן",
"CC_LABEL": "עותק:",
- "CC_PLACEHOLDER": "חפש איש קשר לפי כתובת הדוא\"ל שלו",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "עותק מוסתר:",
- "BCC_PLACEHOLDER": "חפש איש קשר לפי כתובת הדוא\"ל שלו",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "עותק מוסתר"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/he/conversation.json b/app/javascript/dashboard/i18n/locale/he/conversation.json
index f4c1cd3c1..1bd688522 100644
--- a/app/javascript/dashboard/i18n/locale/he/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/he/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "הודעה זו אינה נתמכת. תוכל לצפות בהודעה זו באפליקציית Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "הודעה זו אינה נתמכת. תוכל לצפות בהודעה זו באפליקציית Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "ההודעה נמחקה בהצלחה",
"FAIL_DELETE_MESSSAGE": "לא ניתן למחוק את ההודעה! נסה שוב",
"NO_RESPONSE": "אין תגובה",
@@ -173,6 +174,10 @@
"SUCCESFUL": "הוקצתה תווית #{labelName} לשיחה מזהה {conversationId}",
"FAILED": "לא ניתן לקשר שורה. אנא נסו שנית"
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "הצוות {team} קושר לשיחה מספר {conversationId}",
"FAILED": "השמה לצוות לא הצליחה, בבקשה נסה שנית."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "נטרל חתימה",
"MSG_INPUT": "Shift + Enter עבור שורה חדשה. התחל עם '/' כדי לבחור תגובה מוכנה.",
"PRIVATE_MSG_INPUT": "Shift + Enter עבור שורה חדשה. זה יהיה גלוי רק לסוכנים",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "חתימת הודעה אינה מוגדרת, נא הגדר אותה בהגדרות הפרופיל.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "לחץ כאן כדי לעדכן",
"WHATSAPP_TEMPLATES": "תבניות וואטסאפ"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "גרור ושחרר כאן להוספת קובץ מצורף",
"START_AUDIO_RECORDING": "התחל הקלטת אודיו",
"STOP_AUDIO_RECORDING": "עצור הקלטת אודיו",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "אל",
"ADD_BCC": "הוסף bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "השיחה נמחקה בהצלחה",
"FAIL_DELETE_CONVERSATION": "לא ניתן למחוק את השיחה! נסה שוב",
"FILE_SIZE_LIMIT": "הקובץ גדול מ{MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE}MB מגבלת העלאה",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "לא ניתן לשלוח הודעה, אנא נסה שוב מאוחר יותר",
"SENT_BY": "נשלח על ידי:",
"BOT": "בוט",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "לא ניתן לשלוח הודעה! נסה שוב",
"TRY_AGAIN": "נסה שוב",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "ביטול",
"SEND_EMAIL_SUCCESS": "תמליל השיחה נשלח בהצלחה",
"SEND_EMAIL_ERROR": "היתה שגיאה, בקשה נסה שוב",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "שלח תמליל ללקוח",
"SEND_TO_AGENT": "שלח תמליל לסוכן המשוייך לשיחה",
diff --git a/app/javascript/dashboard/i18n/locale/he/customRole.json b/app/javascript/dashboard/i18n/locale/he/customRole.json
index 0be63e3b8..1aac4e5ce 100644
--- a/app/javascript/dashboard/i18n/locale/he/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/he/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "תפקידים מותאמים אישית",
"LEARN_MORE": "למד עוד על תפקידים מותאמים אישית",
"DESCRIPTION": "תפקידים מותאמים אישית הם תפקידים שנוצרים על ידי הבעלים או המנהל של החשבון. ניתן להקצות תפקידים אלה לסוכנים כדי להגדיר את הגישה וההרשאות שלהם בתוך החשבון. ניתן ליצור תפקידים מותאמים אישית עם הרשאות ורמות גישה ספציפיות שיתאימו לדרישות הארגון.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "הוסף תפקיד מותאם אישית",
"LOADING": "מאחזר תפקידים מותאמים אישית...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "אין פריטים התואמים לשאילתה זו.",
"PAYWALL": {
"TITLE": "שדרג כדי ליצור תפקידים מותאמים אישית",
diff --git a/app/javascript/dashboard/i18n/locale/he/datePicker.json b/app/javascript/dashboard/i18n/locale/he/datePicker.json
index 0e8b27080..0d96f7fb8 100644
--- a/app/javascript/dashboard/i18n/locale/he/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/he/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "להגיש מועמדות",
"CLEAR_BUTTON": "נקה",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "3 החודשים האחרונים",
"LAST_6_MONTHS": "6 החודשים האחרונים",
"LAST_YEAR": "שנה שעברה",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "החודש",
"CUSTOM_RANGE": "טווח תאריכים מותאם אישית"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/general.json b/app/javascript/dashboard/i18n/locale/he/general.json
index 03b74a08f..e0bff0379 100644
--- a/app/javascript/dashboard/i18n/locale/he/general.json
+++ b/app/javascript/dashboard/i18n/locale/he/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "סגור",
"BETA": "בטא",
- "BETA_DESCRIPTION": "תכונה זו נמצאת בגרסת בטא ועשויה להשתנות ככל שנשפר אותה."
+ "BETA_DESCRIPTION": "תכונה זו נמצאת בגרסת בטא ועשויה להשתנות ככל שנשפר אותה.",
+ "ACCEPT": "Accept",
+ "DISCARD": "בטל",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "כן",
+ "NO": "לא"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/generalSettings.json b/app/javascript/dashboard/i18n/locale/he/generalSettings.json
index ca14e8968..6438e5f22 100644
--- a/app/javascript/dashboard/i18n/locale/he/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/he/generalSettings.json
@@ -30,7 +30,7 @@
"SCHEDULED_DELETION": {
"TITLE": "החשבון מתוזמן למחיקה",
"MESSAGE_MANUAL": "חשבון זה מתוזמן למחיקה ב- {deletionDate}. הדבר התבקש על ידי מנהל מערכת. תוכל לבטל את המחיקה לפני תאריך זה.",
- "MESSAGE_INACTIVITY": ".",
+ "MESSAGE_INACTIVITY": "חשבון זה מתוזמן למחיקה ב- {deletionDate} עקב חוסר פעילות בחשבון. תוכל לבטל את המחיקה לפני תאריך זה.",
"CLEAR_BUTTON": "בטל מחיקה מתוזמנת"
}
},
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "חפש או קפוץ ל",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "כללי",
"REPORTS": "דוחות",
diff --git a/app/javascript/dashboard/i18n/locale/he/helpCenter.json b/app/javascript/dashboard/i18n/locale/he/helpCenter.json
index 0cf481180..fedc6ab6f 100644
--- a/app/javascript/dashboard/i18n/locale/he/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/he/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "שגיאה בעת מחיקת מאמר"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "אנא הוסף את כותרת המאמר והתוכן ואז רק אתה יכול לעדכן את ההגדרות"
},
diff --git a/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json
index 4ed1ec7bb..2c9561259 100644
--- a/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "תיבות דואר נכנס",
"DESCRIPTION": "ערוץ הוא אמצעי התקשורת שלקוח שלך בוחר כדי ליצור איתך אינטראקציה. תיבת דואר נכנס היא המקום שבו אתה מנהל אינטראקציות עבור ערוץ ספציפי. היא יכולה לכלול תקשורת ממקורות שונים כגון דוא\"ל, צ'אט חי ומדיה חברתית.",
"LEARN_MORE": "למד עוד על תיבות דואר נכנס",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "תיבת הדואר הנכנס שלך מנותקת. לא תקבל הודעות חדשות עד שתאשר אותה מחדש.",
"CLICK_TO_RECONNECT": "לחץ כאן כדי להתחבר מחדש.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "השתמש רק בשם העסק שהוגדר כשם השולח בכותרת הדוא\"ל."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ הגדר את שם העסק שלך",
+ "BUTTON_TEXT": "הגדר את שם העסק שלך",
"PLACEHOLDER": "הזן את שם העסק שלך",
"SAVE_BUTTON_TEXT": "שמור"
}
@@ -589,8 +592,10 @@
"DISABLED": "כבוי"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "מופעל",
- "DISABLED": "כבוי"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "אפשר"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "תקינות חשבון",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "נהל את חשבון WhatsApp שלך",
"DESCRIPTION": "סקור את מצב חשבון WhatsApp שלך, מגבלות הודעות ואיכות. עדכן הגדרות או פתור בעיות במידת הצורך",
@@ -678,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": "הגדרות",
@@ -694,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": "הוסף או הסר נציגים מתיבת הדואר הנכנס הזו",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "אפשר המשך שיחה באמצעות הדוא\"ל",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "שיחות ימשיכו באמצעות הדוא\"ל אם לאיש הקשר קיימת כתובת דוא\"ל תקנית.",
- "LOCK_TO_SINGLE_CONVERSATION": "נעל לשיחה בודדת",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "הפעל או השבת מספר שיחות עבור אותו איש קשר בתיבת הדואר הנכנס הזו",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "הגדרות תיבת דואר נכנס",
"INBOX_UPDATE_SUB_TEXT": "עדכן את הגדרות תיבת הדואר הנכנס שלך",
"AUTO_ASSIGNMENT_SUB_TEXT": "אפשר או השבת את ההקצאה האוטומטית של שיחות חדשות לסוכנים שנוספו לתיבת הדואר הנכנס הזו.",
@@ -758,6 +775,7 @@
"LABEL": "מרכז עזרה",
"PLACEHOLDER": "בחר מרכז עזרה",
"SELECT_PLACEHOLDER": "בחר מרכז עזרה",
+ "NONE": "כלום",
"REMOVE": "הסר מרכז עזרה",
"SUB_TEXT": "צרף מרכז עזרה לתיבת הדואר הנכנס"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "אנא הזן ערך גדול מ-0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "הגבלת המספר המרבי של שיחות מתיבת הדואר הנכנס הזו שניתן להקצות אוטומטית לסוכן"
},
+ "ASSIGNMENT": {
+ "TITLE": "שיוך שיחה",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "מחק מדיניות",
+ "POLICY_LABEL": "מדיניות הקצאה",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "פעיל",
+ "INACTIVE": "לא פעיל"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "נוצר מוקדם ביותר",
+ "LONGEST_WAITING": "המתנה הארוכה ביותר"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin (סבב)",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "לא נמצאו מדיניות הקצאה",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "ביטול",
+ "CONFIRM_DELETE": "מחק",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "הרשאה מחדש",
"SUBTITLE": "פג תוקף החיבור שלך לפייסבוק, אנא חבר מחדש את דף הפייסבוק שלך כדי להמשיך בשירותים",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "חזור"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "כלל סקר",
"DESCRIPTION_PREFIX": "שלח את הסקר אם השיחה",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "בחר תוויות"
},
"NOTE": "הערה: סקרי CSAT נשלחים פעם אחת בלבד לכל שיחה",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "הגדרות CSAT עודכנו בהצלחה",
"ERROR_MESSAGE": "לא הצלחנו לעדכן את הגדרות CSAT. אנא נסה שוב מאוחר יותר."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "הודעה לא זמינה למבקרים",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "יום",
+ "AVAILABILITY": "זמינות",
+ "HOURS": "שעות",
"ENABLE": "אפשר זמינות ליום זה",
"UNAVAILABLE": "אינו זמין",
- "HOURS": "שעות",
"VALIDATION_ERROR": "שעת ההתחלה צריכה להיות לפני שעת הסגירה.",
"CHOOSE": "בחר"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "ביום"
},
"WIDGET_COLOR_LABEL": "צבע יישומון",
- "WIDGET_BUBBLE_POSITION_LABEL": "מיקום בועת יישומון",
- "WIDGET_BUBBLE_TYPE_LABEL": "סוג בועת יישומון",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "סוג:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "דבר איתנו",
- "LABEL": "כותרת מפעיל בועות יישומון",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "דבר איתנו"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "ברירת מחדל",
- "CHAT": "צ'אט"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "זמן מענה טיפוסי תוך כמה דקות",
diff --git a/app/javascript/dashboard/i18n/locale/he/integrationApps.json b/app/javascript/dashboard/i18n/locale/he/integrationApps.json
index c54067a30..571b85e4a 100644
--- a/app/javascript/dashboard/i18n/locale/he/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/he/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "שליפת אינטגרציות",
"NO_HOOK_CONFIGURED": "אין {integrationId} אינטגרציות מוגדרות בחשבון זה.",
"HEADER": "יישומים",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "חיפוש...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "מופעל",
"DISABLED": "כבוי"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "הוצאת קרס אינטגרציה",
"INBOX": "תיבת הדואר הנכנס",
+ "ACTIONS": "פעולות",
"DELETE": {
"BUTTON_TEXT": "מחק"
}
diff --git a/app/javascript/dashboard/i18n/locale/he/integrations.json b/app/javascript/dashboard/i18n/locale/he/integrations.json
index 59a69cc27..0dca2241c 100644
--- a/app/javascript/dashboard/i18n/locale/he/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/he/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "מחק אינטגרציה של Shopify",
"MESSAGE": "האם אתה בטוח שברצונך למחוק את האינטגרציה של Shopify?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot משתלב עם כלים ושירותים מרובים כדי לשפר את יעילות הצוות שלך. חקור את הרשימה למטה כדי להגדיר את האפליקציות המועדפות עליך.",
"LEARN_MORE": "למד עוד על אינטגרציות",
"LOADING": "מאחזר אינטגרציות",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain אינו מופעל בחשבונך.",
"CLICK_HERE_TO_CONFIGURE": "לחץ כאן כדי להגדיר",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "אירועים מנויים",
"LEARN_MORE": "למד עוד על Webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "ביטול",
"DESC": "אירועי Webhook מספקים לך מידע בזמן אמת על מה שקורה בחשבון Chatwoot שלך. אנא הזן כתובת אתר חוקית כדי להגדיר התקשרות חוזרת.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "מחק",
"DELETE_CONFIRMATION": {
"TITLE": "מחק את האינטגרציה",
@@ -145,7 +160,29 @@
"EXPAND": "הרחב",
"MAKE_FRIENDLY": "שנה את טון ההודעה לידידותי",
"MAKE_FORMAL": "השתמש בטון רשמי",
- "SIMPLIFY": "פשט"
+ "SIMPLIFY": "פשט",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "מקצועי",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "ידידותי"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "טיוטת תוכן",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
אפליקציות לוח מחוונים
אפליקציות לוח מחוונים מאפשרות לארגונים להטמיע אפליקציה בתוך לוח המחוונים של Chatwoot כדי לספק את ההקשר לסוכני תמיכת לקוחות. תכונה זו מאפשרת לך ליצור אפליקציה באופן עצמאי ולהטמיע אותה בתוך לוח המחוונים כדי לספק מידע על המשתמש, ההזמנות שלו או היסטוריית התשלומים הקודמת שלו.
כאשר תטמיע את האפליקציה שלך באמצעות לוח המחוונים ב-Chatwoot, האפליקציה שלך תהיה קבל את ההקשר של השיחה והקשר כאירוע חלון. הטמיע מאזין לאירוע ההודעה בדף שלך כדי לקבל את ההקשר.
כדי להוסיף אפליקציית לוח מחוונים חדשה, לחץ על הלחצן 'הוסף אפליקציית לוח מחוונים חדשה'.
",
"DESCRIPTION": "אפליקציות לוח מחוונים מאפשרות לארגונים להטמיע אפליקציה בתוך לוח המחוונים כדי לספק את ההקשר לסוכני תמיכת לקוחות. תכונה זו מאפשרת לך ליצור אפליקציה באופן עצמאי ולהטמיע אותה כדי לספק מידע על המשתמש, ההזמנות שלהם או היסטוריית התשלומים הקודמת שלהם.",
"LEARN_MORE": "למד עוד על אפליקציות לוח מחוונים",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "אין עדיין אפליקציות לוח מחוונים מוגדרות בחשבון זה",
"LOADING": "מביא אפליקציות לוח מחוונים...",
"TABLE_HEADER": {
"NAME": "שם",
- "ENDPOINT": "נקודת קצה"
+ "ENDPOINT": "נקודת קצה",
+ "ACTIONS": "פעולות"
},
"EDIT_TOOLTIP": "ערוך אפליקציה",
"DELETE_TOOLTIP": "מחק אפליקציה"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "מאחזר בעיות Linear...",
"LOADING_ERROR": "אירעה שגיאה באחזור בעיות Linear, אנא נסה שוב",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "האם אתה בטוח שברצונך למחוק את האינטגרציה של Notion?",
"MESSAGE": "מחיקת אינטגרציה זו תסיר את הגישה למרחב העבודה שלך ב-Notion ותפסיק את כל הפונקציונליות הקשורה.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "תוכל לשנות או לבטל את התוכנית שלך בכל עת"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "שדרג את התוכנית שלך כדי לקבל גישה לעוזרים שלנו, ל-Copilot ועוד.",
"ASK_ADMIN": "אנא פנה למנהל המערכת שלך לצורך השדרוג."
},
diff --git a/app/javascript/dashboard/i18n/locale/he/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/he/labelsMgmt.json
index 493613e41..d1317bfb7 100644
--- a/app/javascript/dashboard/i18n/locale/he/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/he/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "מביא תוויות",
"DESCRIPTION": "תוויות עוזרות לך לסווג ולתעדף שיחות ולידים. תוכל להקצות תווית לשיחה או לאיש קשר באמצעות החלונית הצדדית.",
"LEARN_MORE": "למד עוד על תוויות",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "חפש תוויות...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "אין פריטים התואמים לשאילתה זו",
"LIST": {
"404": "אין תוויות זמינות בחשבון זה.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "שם",
"DESCRIPTION": "תיאור",
- "COLOR": "צֶבַע"
+ "COLOR": "צֶבַע",
+ "ACTION": "פעולות"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/he/macros.json b/app/javascript/dashboard/i18n/locale/he/macros.json
index 30f33615a..41365acd0 100644
--- a/app/javascript/dashboard/i18n/locale/he/macros.json
+++ b/app/javascript/dashboard/i18n/locale/he/macros.json
@@ -3,9 +3,12 @@
"HEADER": "מאקרו",
"DESCRIPTION": "מאקרו הוא קבוצה של פעולות שמורות המסייעות לסוכני שירות לקוחות להשלים משימות בקלות. הסוכנים יכולים להגדיר קבוצה של פעולות כמו תיוג שיחה בתווית, שליחת תמלול דוא\"ל, עדכון תכונה מותאמת אישית וכו', והם יכולים להפעיל פעולות אלה בלחיצה אחת.",
"LEARN_MORE": "למד עוד על מאקרואים",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "הוסף מאקרו חדש",
"HEADER_BTN_TXT_SAVE": "שמור מאקרו",
"LOADING": "מביא פקודות מאקרו",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "משהו השתבש. אנא נסה שוב",
"ORDER_INFO": "פקודות מאקרו יפעלו לפי הסדר שתוסיף את הפעולות שלך. תוכל לסדר אותם מחדש על ידי גרירתם על ידי הידית לצד כל צומת.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "שם",
"CREATED BY": "נוצר על ידי",
"LAST_UPDATED_BY": "עודכן לאחרונה על ידי",
- "VISIBILITY": "רְאוּת"
+ "VISIBILITY": "רְאוּת",
+ "ACTIONS": "פעולות"
},
"404": "לא נמצאו פקודות מאקרו"
},
diff --git a/app/javascript/dashboard/i18n/locale/he/mfa.json b/app/javascript/dashboard/i18n/locale/he/mfa.json
index 90cb31404..0533cf425 100644
--- a/app/javascript/dashboard/i18n/locale/he/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/he/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "סטטוס אימות",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/he/report.json b/app/javascript/dashboard/i18n/locale/he/report.json
index 57b4311c3..a80c5bee4 100644
--- a/app/javascript/dashboard/i18n/locale/he/report.json
+++ b/app/javascript/dashboard/i18n/locale/he/report.json
@@ -3,7 +3,7 @@
"HEADER": "שיחות",
"LOADING_CHART": "טוען נתוני תרשים...",
"NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.",
- "DOWNLOAD_AGENT_REPORTS": "הורד דוחות סוכן",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "אחזור הנתונים נכשל, אנא נסה שוב מאוחר יותר.",
"SUMMARY_FETCHING_FAILED": "אחזור הסיכום נכשל, אנא נסה שוב מאוחר יותר.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "סקירה כללית של סוכנים",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "טוען נתוני תרשים...",
"NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.",
"DOWNLOAD_AGENT_REPORTS": "הורד דוחות סוכן",
"FILTER_DROPDOWN_LABEL": "בחר סוכן",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "חפש סוכנים"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "שיחות",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.",
"DOWNLOAD_LABEL_REPORTS": "הורד דוחות תווית",
"FILTER_DROPDOWN_LABEL": "בחר תווית",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "חפש תוויות"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "שיחות",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "בחר תיבת דואר",
"ALL_INBOXES": "כל תיבות הדואר הנכנס",
"SEARCH_INBOX": "חפש תיבת דואר נכנס",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "שיחות",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "סקירת צוות",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "טוען נתוני תרשים...",
"NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.",
"DOWNLOAD_TEAM_REPORTS": "הורד דוחות צוות",
"FILTER_DROPDOWN_LABEL": "תבחר קבוצה",
+ "FILTERS": {
+ "ADD_FILTER": "הוסף מסנן",
+ "CLEAR_ALL": "נקה הכל",
+ "NO_FILTER": "אין מסננים זמינים",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "חפש צוותים"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "שיחות",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "דוחות CSAT",
- "NO_RECORDS": "אין תשובות לסקר CSAT זמינות.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "הורד דוחות CSAT",
"DOWNLOAD_FAILED": "הורדת דוחות CSAT נכשלה",
"FILTERS": {
+ "ADD_FILTER": "הוסף מסנן",
+ "CLEAR_ALL": "נקה הכל",
+ "NO_FILTER": "אין מסננים זמינים",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "חפש סוכנים",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "חפש צוותים",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "בחר סוכנים"
+ "LABEL": "סוכן"
+ },
+ "INBOXES": {
+ "LABEL": "תיבת הדואר הנכנס"
+ },
+ "TEAMS": {
+ "LABEL": "צוות"
+ },
+ "RATINGS": {
+ "LABEL": "דירוג"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "איש קשר",
- "AGENT_NAME": "סוכן מוקצה",
+ "AGENT_NAME": "סוכן",
"RATING": "דירוג",
- "FEEDBACK_TEXT": "הערת משוב"
- }
+ "FEEDBACK_TEXT": "הערת משוב",
+ "CONVERSATION": "שיחה",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "תגובה",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "סה\"כ תגובות",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "שיעור תגובה",
"TOOLTIP": "מספר כולל של תגובות / מספר כולל של הודעות סקר CSAT שנשלחו * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "שמור",
+ "CANCEL": "ביטול",
+ "SAVING": "שומר...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "שדרג עכשיו",
+ "CANCEL_ANYTIME": "תוכל לשנות או לבטל את התוכנית שלך בכל עת"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/he/settings.json b/app/javascript/dashboard/i18n/locale/he/settings.json
index a6a8c6ff1..317e096e6 100644
--- a/app/javascript/dashboard/i18n/locale/he/settings.json
+++ b/app/javascript/dashboard/i18n/locale/he/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "הורד",
"UPLOADING": "מעלה...",
- "INSTAGRAM_STORY_UNAVAILABLE": "הסיפור הזה כבר לא זמין."
+ "INSTAGRAM_STORY_UNAVAILABLE": "הסיפור הזה כבר לא זמין.",
+ "INSTAGRAM_STORY_REPLY": "השיב/ה לסטורי שלך:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "ראה במפה"
@@ -378,7 +379,57 @@
"INFO_SHORT": "סמן אוטומטית כלא מקוון כאשר אינך משתמש באפליקציה."
},
"DOCS": "קרא מסמכים",
- "SECURITY": "אבטחה"
+ "SECURITY": "אבטחה",
+ "CAPTAIN_AI": "קפטן",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "עוזר",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "מאפיינים",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "חיוב",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "חפש מאפיין"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "פתור את השיחה",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "פתור את השיחה",
+ "CANCEL": "ביטול"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "בחר אפשרות"
+ },
+ "CHECKBOX": {
+ "YES": "כן",
+ "NO": "לא"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "שדרג עכשיו",
+ "CANCEL_ANYTIME": "תוכל לשנות או לבטל את התוכנית שלך בכל עת"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "אנא פנה למנהל המערכת שלך לצורך השדרוג."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "אה הו! לא הצלחנו למצוא חשבונות Chatwoot. נא ליצור חשבון חדש כדי להמשיך.",
"NEW_ACCOUNT": "חשבון חדש",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "צור מדיניות",
"API": {
"SUCCESS_MESSAGE": "מדיניות ההקצאה נוצרה בהצלחה",
- "ERROR_MESSAGE": "יצירת מדיניות ההקצאה נכשלה"
+ "ERROR_MESSAGE": "יצירת מדיניות ההקצאה נכשלה",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "המשך",
"CANCEL_BUTTON_LABEL": "ביטול"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "מדיניות ההקצאה עודכנה בהצלחה",
"ERROR_MESSAGE": "עדכון מדיניות ההקצאה נכשל"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "מאוזן",
- "DESCRIPTION": "הקצה שיחות על בסיס קיבולת זמינה."
+ "DESCRIPTION": "הקצה שיחות על בסיס קיבולת זמינה.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "הסוכן הוסר מהמדיניות בהצלחה",
"ERROR_MESSAGE": "הסרת הסוכן מהמדיניות נכשלה"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/he/signup.json b/app/javascript/dashboard/i18n/locale/he/signup.json
index 0755f7768..702b7be96 100644
--- a/app/javascript/dashboard/i18n/locale/he/signup.json
+++ b/app/javascript/dashboard/i18n/locale/he/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "צור חשבון",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "הירשם",
"TESTIMONIAL_HEADER": "כל מה שצריך זה צעד אחד כדי להתקדם",
"TESTIMONIAL_CONTENT": "אתה במרחק צעד אחד מלהפעיל את הלקוחות שלך, לשמר אותם ולמצוא חדשים.",
diff --git a/app/javascript/dashboard/i18n/locale/he/sla.json b/app/javascript/dashboard/i18n/locale/he/sla.json
index 5bc4a25de..ad95b92fa 100644
--- a/app/javascript/dashboard/i18n/locale/he/sla.json
+++ b/app/javascript/dashboard/i18n/locale/he/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "צור מדיניות SLA חדשה",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "למד עוד על SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "מאחזר SLA",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "שדרג כדי ליצור SLA",
"AVAILABLE_ON": "תכונת SLA זמינה רק בתוכניות Business ו-Enterprise.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "אין SLA זמין בחשבון זה.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "בעיות שהועלו על ידי לקוחות Enterprise, הדורשות תשומת לב מיידית.",
"TITLE_2": "Enterprise P1",
"DESC_2": "בעיות שהועלו על ידי לקוחות Enterprise, שיש לאשר במהירות."
},
- "BUSINESS_HOURS_ON": "שעות פעילות מופעלות",
- "BUSINESS_HOURS_OFF": "שעות פעילות מושבתות",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "סף זמן תגובה ראשונה",
"NRT": "סף זמן תגובה הבאה",
diff --git a/app/javascript/dashboard/i18n/locale/he/snooze.json b/app/javascript/dashboard/i18n/locale/he/snooze.json
new file mode 100644
index 000000000..358275d42
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/he/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "דקות",
+ "HOUR": "hour",
+ "HOURS": "שעות",
+ "DAY": "יום",
+ "DAYS": "ימים",
+ "WEEK": "יום",
+ "WEEKS": "weeks",
+ "MONTH": "שבוע",
+ "MONTHS": "months",
+ "YEAR": "חודש",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "מחר",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "שבוע הבא",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "מתוך",
+ "AFTER": "after",
+ "WEEK": "יום",
+ "DAY": "יום"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/he/teamsSettings.json b/app/javascript/dashboard/i18n/locale/he/teamsSettings.json
index 16785a0b7..3fdaa1e68 100644
--- a/app/javascript/dashboard/i18n/locale/he/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/he/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "מאחזר צוותים",
"DESCRIPTION": "צוותים מאפשרים לך לארגן סוכנים לקבוצות על בסיס תחומי האחריות שלהם. סוכן יכול להשתייך למספר צוותים. בעבודה שיתופית, תוכל להקצות שיחות לצוותים ספציפיים.",
"LEARN_MORE": "למד עוד על צוותים",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "חפש צוותים...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "לא נוצרו צוותים בחשבון זה.",
"EDIT_TEAM": "ערוך צוות",
@@ -65,7 +68,7 @@
},
"AGENTS": {
"AGENT": "סוכן",
- "EMAIL": "מייל",
+ "EMAIL": "אימייל",
"BUTTON_TEXT": "הוסף נציגים",
"ADD_AGENTS": "הוספת סוכנים לצוות שלך...",
"SELECT": "בחר",
diff --git a/app/javascript/dashboard/i18n/locale/hi/agentBots.json b/app/javascript/dashboard/i18n/locale/hi/agentBots.json
index d3a0bb991..dc92016ab 100644
--- a/app/javascript/dashboard/i18n/locale/hi/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/hi/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/hi/agentMgmt.json b/app/javascript/dashboard/i18n/locale/hi/agentMgmt.json
index a1356f425..c90a429aa 100644
--- a/app/javascript/dashboard/i18n/locale/hi/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hi/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/hi/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/hi/attributesMgmt.json
index 78886f451..e83950b14 100644
--- a/app/javascript/dashboard/i18n/locale/hi/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hi/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/hi/automation.json b/app/javascript/dashboard/i18n/locale/hi/automation.json
index 43245a1d5..22a9735f4 100644
--- a/app/javascript/dashboard/i18n/locale/hi/automation.json
+++ b/app/javascript/dashboard/i18n/locale/hi/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/hi/bulkActions.json b/app/javascript/dashboard/i18n/locale/hi/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/hi/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/hi/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/hi/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/hi/cannedMgmt.json
index 3bc60c569..05c05c0c6 100644
--- a/app/javascript/dashboard/i18n/locale/hi/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hi/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/hi/chatlist.json b/app/javascript/dashboard/i18n/locale/hi/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/hi/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/hi/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/hi/contact.json b/app/javascript/dashboard/i18n/locale/hi/contact.json
index cd188d027..b69f88a97 100644
--- a/app/javascript/dashboard/i18n/locale/hi/contact.json
+++ b/app/javascript/dashboard/i18n/locale/hi/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/hi/conversation.json b/app/javascript/dashboard/i18n/locale/hi/conversation.json
index 59ad61c1d..7b7e325ab 100644
--- a/app/javascript/dashboard/i18n/locale/hi/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/hi/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/hi/customRole.json b/app/javascript/dashboard/i18n/locale/hi/customRole.json
index 1f397424d..6c9b164fc 100644
--- a/app/javascript/dashboard/i18n/locale/hi/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/hi/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/hi/datePicker.json b/app/javascript/dashboard/i18n/locale/hi/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/hi/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/hi/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/general.json b/app/javascript/dashboard/i18n/locale/hi/general.json
index 283cf79c4..bdc7cb8a4 100644
--- a/app/javascript/dashboard/i18n/locale/hi/general.json
+++ b/app/javascript/dashboard/i18n/locale/hi/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/generalSettings.json b/app/javascript/dashboard/i18n/locale/hi/generalSettings.json
index 5f278fef9..e97d8bc55 100644
--- a/app/javascript/dashboard/i18n/locale/hi/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hi/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/hi/helpCenter.json b/app/javascript/dashboard/i18n/locale/hi/helpCenter.json
index 328ab88f4..e7384d963 100644
--- a/app/javascript/dashboard/i18n/locale/hi/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/hi/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json
index e4acfe9a0..16abfe46c 100644
--- a/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
diff --git a/app/javascript/dashboard/i18n/locale/hi/integrationApps.json b/app/javascript/dashboard/i18n/locale/hi/integrationApps.json
index b91b434f7..828f4ea67 100644
--- a/app/javascript/dashboard/i18n/locale/hi/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/hi/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/integrations.json b/app/javascript/dashboard/i18n/locale/hi/integrations.json
index c4d915418..90a04a797 100644
--- a/app/javascript/dashboard/i18n/locale/hi/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hi/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/hi/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/hi/labelsMgmt.json
index 705b18d0e..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/hi/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hi/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/hi/macros.json b/app/javascript/dashboard/i18n/locale/hi/macros.json
index fcb409f34..e12f0ca73 100644
--- a/app/javascript/dashboard/i18n/locale/hi/macros.json
+++ b/app/javascript/dashboard/i18n/locale/hi/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/hi/mfa.json b/app/javascript/dashboard/i18n/locale/hi/mfa.json
index f7556fdcf..b03917bcd 100644
--- a/app/javascript/dashboard/i18n/locale/hi/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/hi/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/hi/report.json b/app/javascript/dashboard/i18n/locale/hi/report.json
index a2ad6bd4a..45c40de58 100644
--- a/app/javascript/dashboard/i18n/locale/hi/report.json
+++ b/app/javascript/dashboard/i18n/locale/hi/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/hi/settings.json b/app/javascript/dashboard/i18n/locale/hi/settings.json
index 6b94a34f1..805ffee46 100644
--- a/app/javascript/dashboard/i18n/locale/hi/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hi/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancel"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/hi/signup.json b/app/javascript/dashboard/i18n/locale/hi/signup.json
index aa96873e1..746ca0999 100644
--- a/app/javascript/dashboard/i18n/locale/hi/signup.json
+++ b/app/javascript/dashboard/i18n/locale/hi/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/hi/sla.json b/app/javascript/dashboard/i18n/locale/hi/sla.json
index 0da7873be..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/hi/sla.json
+++ b/app/javascript/dashboard/i18n/locale/hi/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/hi/snooze.json b/app/javascript/dashboard/i18n/locale/hi/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hi/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hi/teamsSettings.json b/app/javascript/dashboard/i18n/locale/hi/teamsSettings.json
index f0a950fd1..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/hi/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hi/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/hr/agentBots.json b/app/javascript/dashboard/i18n/locale/hr/agentBots.json
index 545a7a57e..018cfee80 100644
--- a/app/javascript/dashboard/i18n/locale/hr/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/hr/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Otvaranje Editora...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Dohvat Botova...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Radnje"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/hr/agentMgmt.json b/app/javascript/dashboard/i18n/locale/hr/agentMgmt.json
index ba6eceeda..87d8fe921 100644
--- a/app/javascript/dashboard/i18n/locale/hr/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hr/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json
index 2add7c435..ea593f67f 100644
--- a/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/hr/automation.json b/app/javascript/dashboard/i18n/locale/hr/automation.json
index 6172de951..95d4d7b10 100644
--- a/app/javascript/dashboard/i18n/locale/hr/automation.json
+++ b/app/javascript/dashboard/i18n/locale/hr/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Ime",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Radnje"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Promjena prioriteta",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Otvori razgovor"
+ "OPEN_CONVERSATION": "Otvori razgovor",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/hr/bulkActions.json b/app/javascript/dashboard/i18n/locale/hr/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/hr/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/hr/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/hr/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/hr/cannedMgmt.json
index 48a5f1137..93a70501d 100644
--- a/app/javascript/dashboard/i18n/locale/hr/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hr/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Saznajte više o unaprijed pripremljenim odgovorima",
"DESCRIPTION": "Unaprijed pripremljeni odgovori su već napisani predlošci za odgovore koji vam pomažu da brzo odgovorite na razgovor. Agenti mogu upisati znak '/' nakon kojeg slijedi kratki kod za umetanje unaprijed pripremljenog odgovora tijekom razgovora.",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Ne postoji rezultat za zadano pretraživanje.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/hr/chatlist.json b/app/javascript/dashboard/i18n/locale/hr/chatlist.json
index 1625c714e..f3db115ad 100644
--- a/app/javascript/dashboard/i18n/locale/hr/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/hr/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/hr/contact.json b/app/javascript/dashboard/i18n/locale/hr/contact.json
index 759e700e6..f8386b234 100644
--- a/app/javascript/dashboard/i18n/locale/hr/contact.json
+++ b/app/javascript/dashboard/i18n/locale/hr/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/hr/conversation.json b/app/javascript/dashboard/i18n/locale/hr/conversation.json
index d14f64b2d..4a5e6cdde 100644
--- a/app/javascript/dashboard/i18n/locale/hr/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/hr/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Predlošci"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Odustani",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/hr/customRole.json b/app/javascript/dashboard/i18n/locale/hr/customRole.json
index f6a41cc62..ea2e4e739 100644
--- a/app/javascript/dashboard/i18n/locale/hr/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/hr/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Ne postoji rezultat za zadano pretraživanje.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/hr/datePicker.json b/app/javascript/dashboard/i18n/locale/hr/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/hr/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/hr/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/general.json b/app/javascript/dashboard/i18n/locale/hr/general.json
index 46c9a4ebd..86fd8676b 100644
--- a/app/javascript/dashboard/i18n/locale/hr/general.json
+++ b/app/javascript/dashboard/i18n/locale/hr/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/generalSettings.json b/app/javascript/dashboard/i18n/locale/hr/generalSettings.json
index 29f00256e..3e62ba3a5 100644
--- a/app/javascript/dashboard/i18n/locale/hr/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hr/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/hr/helpCenter.json b/app/javascript/dashboard/i18n/locale/hr/helpCenter.json
index 77200354c..bb66783bf 100644
--- a/app/javascript/dashboard/i18n/locale/hr/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/hr/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json
index 1576edc83..5a082bcc7 100644
--- a/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Centar za pomoć",
"PLACEHOLDER": "Odaberi centar za pomoć",
"SELECT_PLACEHOLDER": "Odaberi centar za pomoć",
+ "NONE": "None",
"REMOVE": "Makni Centar za Pomoć",
"SUB_TEXT": "Pridruži Centar za Pomoć inbox-u"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Odustani",
+ "CONFIRM_DELETE": "Izbriši",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Čavrljajte s nama",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Čavrljajte s nama"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Obično odgovara za nekoliko minuta",
diff --git a/app/javascript/dashboard/i18n/locale/hr/integrationApps.json b/app/javascript/dashboard/i18n/locale/hr/integrationApps.json
index 44200fb70..32c6c380c 100644
--- a/app/javascript/dashboard/i18n/locale/hr/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/hr/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Radnje",
"DELETE": {
"BUTTON_TEXT": "Izbriši"
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/integrations.json b/app/javascript/dashboard/i18n/locale/hr/integrations.json
index 44b906008..5a2822b54 100644
--- a/app/javascript/dashboard/i18n/locale/hr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hr/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Odustani",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Izbriši",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesionalno",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Prijateljski"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Ime",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Radnje"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/hr/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/hr/labelsMgmt.json
index 78489efb4..7b1347730 100644
--- a/app/javascript/dashboard/i18n/locale/hr/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hr/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Ime",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Radnje"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/hr/macros.json b/app/javascript/dashboard/i18n/locale/hr/macros.json
index 0334a5a45..bb81f8cb9 100644
--- a/app/javascript/dashboard/i18n/locale/hr/macros.json
+++ b/app/javascript/dashboard/i18n/locale/hr/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Ime",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Radnje"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/hr/mfa.json b/app/javascript/dashboard/i18n/locale/hr/mfa.json
index 6ecba6b70..8201b7be6 100644
--- a/app/javascript/dashboard/i18n/locale/hr/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/hr/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/hr/report.json b/app/javascript/dashboard/i18n/locale/hr/report.json
index c31c93369..f9fa93091 100644
--- a/app/javascript/dashboard/i18n/locale/hr/report.json
+++ b/app/javascript/dashboard/i18n/locale/hr/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Dodaj filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Dodaj filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Tim"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Odustani",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/hr/settings.json b/app/javascript/dashboard/i18n/locale/hr/settings.json
index fc1420e0e..319481096 100644
--- a/app/javascript/dashboard/i18n/locale/hr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hr/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Prenosim...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Pročitaj članke",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Naplata",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Odustani"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "Novi račun",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Odustani"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/hr/signup.json b/app/javascript/dashboard/i18n/locale/hr/signup.json
index 9b2ff2cf1..ee8f92d85 100644
--- a/app/javascript/dashboard/i18n/locale/hr/signup.json
+++ b/app/javascript/dashboard/i18n/locale/hr/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/hr/sla.json b/app/javascript/dashboard/i18n/locale/hr/sla.json
index 126e93d17..2b5679ab8 100644
--- a/app/javascript/dashboard/i18n/locale/hr/sla.json
+++ b/app/javascript/dashboard/i18n/locale/hr/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/hr/snooze.json b/app/javascript/dashboard/i18n/locale/hr/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hr/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hr/teamsSettings.json b/app/javascript/dashboard/i18n/locale/hr/teamsSettings.json
index c27ffe9b7..ebcbb0b6a 100644
--- a/app/javascript/dashboard/i18n/locale/hr/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hr/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "E-pošta",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/hu/agentBots.json b/app/javascript/dashboard/i18n/locale/hu/agentBots.json
index 9e01f7629..12e650448 100644
--- a/app/javascript/dashboard/i18n/locale/hu/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/hu/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Szerkesztő betöltése...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "Rendszer",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Botok hívása...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Műveletek"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/hu/agentMgmt.json b/app/javascript/dashboard/i18n/locale/hu/agentMgmt.json
index 75eb07d74..d4b9d6295 100644
--- a/app/javascript/dashboard/i18n/locale/hu/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hu/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Adminisztrátor",
"AGENT": "Ügynök"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Ehhez a fiókhoz nincs ügynök rendelve",
"TITLE": "A csapatod ügynökeinek kezelése",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Nem sikerült csatlakozni a Woot szerverhez, kérjük próbáld később"
}
},
+ "SEARCH_PLACEHOLDER": "Ügynökök keresése...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Nincs találat."
},
diff --git a/app/javascript/dashboard/i18n/locale/hu/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/hu/attributesMgmt.json
index 054e778a8..543efe3b2 100644
--- a/app/javascript/dashboard/i18n/locale/hu/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hu/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Vonzó egyedi tulajdonság",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Tulajdonságok keresése...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Beszélgetés",
"CONTACT": "Kontakt"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -78,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"
diff --git a/app/javascript/dashboard/i18n/locale/hu/automation.json b/app/javascript/dashboard/i18n/locale/hu/automation.json
index a75c77e6b..bdd2d6cd8 100644
--- a/app/javascript/dashboard/i18n/locale/hu/automation.json
+++ b/app/javascript/dashboard/i18n/locale/hu/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automatizáció",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Automatikus szabály hozzáadása",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Automatizálási szabályok betöltése",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Automatikus szabály hozzáadása",
"SUBMIT": "Létrehozás",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Név",
- "DESCRIPTION": "Leírás",
"ACTIVE": "Aktív",
- "CREATED_ON": "Létrehozva"
+ "CREATED_ON": "Létrehozva",
+ "ACTIONS": "Műveletek"
},
"404": "Nem található automatizált szabály"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Prioritás megváltoztatása",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Beszélgetés megnyitása"
+ "OPEN_CONVERSATION": "Beszélgetés megnyitása",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/hu/bulkActions.json b/app/javascript/dashboard/i18n/locale/hu/bulkActions.json
index 569388e34..b9fa2ebed 100644
--- a/app/javascript/dashboard/i18n/locale/hu/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/hu/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Beszélgetés státusza sikeresen frissítve ",
"UPDATE_FAILED": "Nem sikerült frissíteni a beszélgetéseket. Kérjük, próbálja újra."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Címkék hozzárendelése",
"NO_LABELS_FOUND": "Nem találtunk címkét",
diff --git a/app/javascript/dashboard/i18n/locale/hu/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/hu/cannedMgmt.json
index 727b87662..ff1c8ecf7 100644
--- a/app/javascript/dashboard/i18n/locale/hu/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hu/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Mentett válaszok",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Sablon válasz hozzáadása",
"LOADING": "Sablon válaszok lekérése...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Nincs megfelelő elem.",
"LIST": {
"404": "Nincs megfelelő mentett válasz ebben a fiókban.",
diff --git a/app/javascript/dashboard/i18n/locale/hu/chatlist.json b/app/javascript/dashboard/i18n/locale/hu/chatlist.json
index 07be33a51..5dffe7d1c 100644
--- a/app/javascript/dashboard/i18n/locale/hu/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/hu/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Függőben lévő válasz: Legrövidebb először"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/hu/contact.json b/app/javascript/dashboard/i18n/locale/hu/contact.json
index 1c4437b06..0ef163f1e 100644
--- a/app/javascript/dashboard/i18n/locale/hu/contact.json
+++ b/app/javascript/dashboard/i18n/locale/hu/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Nincs a keresésnek megfelelő kontakt 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Cimke hozzáadása",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Ide:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Tárgy :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Másolat:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Titkos másolat:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Titkos másolat"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/hu/conversation.json b/app/javascript/dashboard/i18n/locale/hu/conversation.json
index 715f04a41..38ab00906 100644
--- a/app/javascript/dashboard/i18n/locale/hu/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/hu/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Ez az üzenet nem támogatott. Ezt az üzenetet a Facebook Messenger alkalmazásban tekintheti meg.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Ez az üzenet nem támogatott. Ezt az üzenetet az Instagram alkalmazásban tekintheti meg.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Üzenet törölve",
"FAIL_DELETE_MESSSAGE": "Nem tudtad törölni az üzenetet! Próbáld újra",
"NO_RESPONSE": "Nincs válasz",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Nem sikerült hozzárendelni címkét. Kérlek, próbáld újra."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Nem sikerült hozzárendelni csoporthoz. Kérlek, próbáld újra."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Aláírás kikapcsolása",
"MSG_INPUT": "Shift + enter új sorért. Kezdj a '/'-el mentett válasz kiválasztásához.",
"PRIVATE_MSG_INPUT": "Shift + enter új sorért. Ezt csak ügynökök láthatják",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Üzenet aláírása nem változott, kérlek, változtasd meg a profilod beállításaiban. ",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Frissítéshez kattints ide",
"WHATSAPP_TEMPLATES": "Whatsapp sablonok"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Helyezd ide a csatolmányt",
"START_AUDIO_RECORDING": "Hangfelvétel indítása",
"STOP_AUDIO_RECORDING": "Hangfelvétel leállítása",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "Címzett",
"ADD_BCC": "Titkos másolat hozzáadása",
@@ -222,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"
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "A file mérete meghaladja a {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} limitet",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Nem tudsz üzenetet küldeni, kérlek, próbáld újra",
"SENT_BY": "Küldő:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Nem sikerült elküldeni az üzenetet! Próbáld újra.",
"TRY_AGAIN": "újra",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Mégse",
"SEND_EMAIL_SUCCESS": "A beszélgetés jegyzet sikeresen elküldve",
"SEND_EMAIL_ERROR": "Hiba történt, kérjük próbáld újra",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "A beszélgetés jegyzet elküldése az ügyfélnek",
"SEND_TO_AGENT": "A beszélgetés jegyzet elküldése a hozzárendelt ügynöknek",
diff --git a/app/javascript/dashboard/i18n/locale/hu/customRole.json b/app/javascript/dashboard/i18n/locale/hu/customRole.json
index 352bc3d75..178a1b3c4 100644
--- a/app/javascript/dashboard/i18n/locale/hu/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/hu/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Nincs megfelelő elem.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/hu/datePicker.json b/app/javascript/dashboard/i18n/locale/hu/datePicker.json
index 8bdfab28b..04cc6a9d1 100644
--- a/app/javascript/dashboard/i18n/locale/hu/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/hu/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Alkalmaz",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Elmúlt 3 hónapban",
"LAST_6_MONTHS": "Elmúlt 6 hónapban",
"LAST_YEAR": "Elmúlt 1 évben",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Egyedi időszak"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/general.json b/app/javascript/dashboard/i18n/locale/hu/general.json
index 6f066181d..0ba3d5f3a 100644
--- a/app/javascript/dashboard/i18n/locale/hu/general.json
+++ b/app/javascript/dashboard/i18n/locale/hu/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Bezárás",
"BETA": "Béta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Igen",
+ "NO": "Nem"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/generalSettings.json b/app/javascript/dashboard/i18n/locale/hu/generalSettings.json
index 83e2e727e..fe041fecb 100644
--- a/app/javascript/dashboard/i18n/locale/hu/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hu/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Keresés vagy ugrás ide:",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Általános",
"REPORTS": "Jelentések",
diff --git a/app/javascript/dashboard/i18n/locale/hu/helpCenter.json b/app/javascript/dashboard/i18n/locale/hu/helpCenter.json
index 13cd495b1..2f06635db 100644
--- a/app/javascript/dashboard/i18n/locale/hu/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/hu/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Hiba a cikk törlésekor"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Kérjük, adj hozzá a cikk címét és tartalmát, ezután csak Te tudod majd frissíteni a beállításokat"
},
diff --git a/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json
index 1ed0d14dd..693537bb5 100644
--- a/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Fiókok",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Csak a konfigurált cégnevet használja feladói névként az e-mail fejlécében."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "Üzleti nevének konfigurálása",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Adja meg vállalkozásának nevét",
"SAVE_BUTTON_TEXT": "Mentés"
}
@@ -589,8 +592,10 @@
"DISABLED": "Letiltva"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Engedélyezve",
- "DISABLED": "Letiltva"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Engedélyezés"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Az ügynök nevének megjelenítésének engedélyezése/letiltása az e-mailben, ha le van tiltva, akkor a cég neve jelenik meg",
"ENABLE_CONTINUITY_VIA_EMAIL": "Beszélgetés folytatásának engedélyezése emailen keresztül",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "A beszélgetések e-mailben folytatódnak, ha elérhető a kapcsolattartási e-mail cím.",
- "LOCK_TO_SINGLE_CONVERSATION": "Egyetlen beszélgetés zárolása",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Több beszélgetés engedélyezése vagy letiltása ugyanahhoz a névjegyhez ebben a postafiókban",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Fiókbeállítások",
"INBOX_UPDATE_SUB_TEXT": "Frissítsd az inbox beállításaidat",
"AUTO_ASSIGNMENT_SUB_TEXT": "Bekapcsolása vagy kikapcsolása az inboxhoz kapcsolódó automatikus ügynökhozzárendelésnek új beszélgetések esetén.",
@@ -758,6 +775,7 @@
"LABEL": "Súgóközpont",
"PLACEHOLDER": "Súgóközpont kiválasztása",
"SELECT_PLACEHOLDER": "Súgóközpont kiválasztása",
+ "NONE": "Nincs",
"REMOVE": "Súgóközpont eltávolítása",
"SUB_TEXT": "Súgóközpont csatolása a fiókhoz"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Kérlek 0-nál magasabb értéket adj meg",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Korlátozza az ebből a postafiókból érkező beszélgetések maximális számát, amelyek automatikusan hozzárendelhetők egy ügynökhöz"
},
+ "ASSIGNMENT": {
+ "TITLE": "Beszélgetés hozzárendelés",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktív",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Mégse",
+ "CONFIRM_DELETE": "Törlés",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Újraengedélyezés",
"SUBTITLE": "A Facebook kapcsolatod lejárt, kérjük kapcsold össze oldalad újra a szolgáltatás folytatásához",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Visszaugrás"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Nem elérhető üzenetek a vendégek számára",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Nap",
+ "AVAILABILITY": "Elérhetőség",
+ "HOURS": "Hours",
"ENABLE": "Elérhetőség bekapcsolása erre a napra",
"UNAVAILABLE": "Nem elérhető",
- "HOURS": "óra",
"VALIDATION_ERROR": "A kezés idejének a zárás ideje előttinek kell lennie.",
"CHOOSE": "Kiválasztás"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Egy napon belül"
},
"WIDGET_COLOR_LABEL": "Widget szín",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget buborék pozíciója",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget buborék típusa",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Típus:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chatelj velünk",
- "LABEL": "Widget buborék indító címe",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chatelj velünk"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Alapértelmezett",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Néhány percen belül válaszol",
diff --git a/app/javascript/dashboard/i18n/locale/hu/integrationApps.json b/app/javascript/dashboard/i18n/locale/hu/integrationApps.json
index 455dadd2d..4b397270b 100644
--- a/app/javascript/dashboard/i18n/locale/hu/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/hu/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Integrációk lekérése",
"NO_HOOK_CONFIGURED": "Ebben a fiókban nincs beállítva {integrationId} integráció",
"HEADER": "Alkalmazások",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Engedélyezve",
"DISABLED": "Letiltva"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Integrációs hookok betöltése",
"INBOX": "Fiók",
+ "ACTIONS": "Műveletek",
"DELETE": {
"BUTTON_TEXT": "Törlés"
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/integrations.json b/app/javascript/dashboard/i18n/locale/hu/integrations.json
index 80552228b..2f75d7f62 100644
--- a/app/javascript/dashboard/i18n/locale/hu/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hu/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Feliratkozott események",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Mégse",
"DESC": "Webhook események valós idejű információt adnak arról, hogy mi történik a Chatwoot fiókodban. Kérünk a visszahívás beállításánál egy helyes URL-t adj meg.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Törlés",
"DELETE_CONFIRMATION": {
"TITLE": "Az integráció törlése",
@@ -145,7 +160,29 @@
"EXPAND": "Kiegészítés",
"MAKE_FRIENDLY": "Legyen személyes hangvételű",
"MAKE_FORMAL": "Legyen hivatalos hangvételű",
- "SIMPLIFY": "Egyszerűsít"
+ "SIMPLIFY": "Egyszerűsít",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professzionális",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Barátságos"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Vázlatos szöveg",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Irányítópult-alkalmazások
Az irányítópult-alkalmazások segítségével a szervezetek beágyazhatnak egy alkalmazást a Chatwoot irányítópultjába, hogy kontextust biztosítsanak az ügyfélszolgálati ügynökök számára. Ezzel a funkcióval önállóan hozhat létre alkalmazást, és beágyazhatja azt az irányítópultba, hogy megadja a felhasználói információkat, rendeléseiket vagy korábbi fizetési előzményeiket.
Ha beágyazza alkalmazását a Chatwoot irányítópultjával, az alkalmazás ablakeseményként kapja meg a beszélgetés és a kapcsolatfelvétel kontextusát. Helyezzen el egy figyelőt az üzeneteseményhez az oldalon, hogy megkapja a kontextust.
Új irányítópult-alkalmazás hozzáadásához kattintson az „Új irányítópult-alkalmazás hozzáadása” gombra.
",
"DESCRIPTION": "Az irányítópult-alkalmazások segítségével a szervezetek beágyazhatnak egy alkalmazást az irányítópultba, hogy kontextust biztosítsanak az ügyfélszolgálati ügynökök számára. Ez a funkció lehetővé teszi, hogy önállóan hozzon létre egy alkalmazást, és beágyazza azt, hogy megadja a felhasználói információkat, rendeléseiket vagy korábbi fizetési előzményeiket.\n",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Ebben a fiókban még nincsenek konfigurálva kezdőlapi-alkalmazások",
"LOADING": "Kezdőlapi alkalmazások lekérése...",
"TABLE_HEADER": {
"NAME": "Név",
- "ENDPOINT": "Végpont"
+ "ENDPOINT": "Végpont",
+ "ACTIONS": "Műveletek"
},
"EDIT_TOOLTIP": "App szerkesztése",
"DELETE_TOOLTIP": "App törlése"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/hu/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/hu/labelsMgmt.json
index a3ca1b33d..e4ee526a0 100644
--- a/app/javascript/dashboard/i18n/locale/hu/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hu/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Cimkék letöltése",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Címkék keresése...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Nincs megfelelő elem",
"LIST": {
"404": "Nincs megfelelő cimke ebben a fiókban.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Név",
"DESCRIPTION": "Leírás",
- "COLOR": "Szín"
+ "COLOR": "Szín",
+ "ACTION": "Műveletek"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/hu/macros.json b/app/javascript/dashboard/i18n/locale/hu/macros.json
index 3c8d0e930..3e3facdb8 100644
--- a/app/javascript/dashboard/i18n/locale/hu/macros.json
+++ b/app/javascript/dashboard/i18n/locale/hu/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Makrók",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Új makró hozzáadása",
"HEADER_BTN_TXT_SAVE": "Makró mentése",
"LOADING": "Makrók lekérdezése",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Valami elromlott, kérjük töltsd próbáld újra",
"ORDER_INFO": "A makrók a műveletek hozzáadásának sorrendjében fognak futni. A makrókat áthúzással át tudod rendezni.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Név",
"CREATED BY": "Létrehozta",
"LAST_UPDATED_BY": "Utoljára szerkesztette:",
- "VISIBILITY": "Láthatóság"
+ "VISIBILITY": "Láthatóság",
+ "ACTIONS": "Műveletek"
},
"404": "Nem találtunk makrót"
},
diff --git a/app/javascript/dashboard/i18n/locale/hu/mfa.json b/app/javascript/dashboard/i18n/locale/hu/mfa.json
index 479656236..1117ec281 100644
--- a/app/javascript/dashboard/i18n/locale/hu/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/hu/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/hu/report.json b/app/javascript/dashboard/i18n/locale/hu/report.json
index 45e014b95..2595a0a5b 100644
--- a/app/javascript/dashboard/i18n/locale/hu/report.json
+++ b/app/javascript/dashboard/i18n/locale/hu/report.json
@@ -3,7 +3,7 @@
"HEADER": "Beszélgetések",
"LOADING_CHART": "Táblázat adatok betöltése...",
"NO_ENOUGH_DATA": "Nem érkezett elég adat hogy jelentést generáljunk, kérjük próbáld később.",
- "DOWNLOAD_AGENT_REPORTS": "Ügynök jelentések letöltése",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Sikertelen adatlekérés, kérlek próbáld újra később.",
"SUMMARY_FETCHING_FAILED": "Sikertelen összefoglaló lekérés, kérlek próbáld újra később.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Ügynök áttekintés",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Táblázat adatok betöltése...",
"NO_ENOUGH_DATA": "Nem érkezett elég adat hogy jelentést generáljunk, kérjük próbáld később.",
"DOWNLOAD_AGENT_REPORTS": "Ügynök jelentések letöltése",
"FILTER_DROPDOWN_LABEL": "Ügynök kiválasztása",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Ügynökök keresése"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Beszélgetések",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Nem érkezett elég adat hogy jelentést generáljunk, kérjük próbáld később.",
"DOWNLOAD_LABEL_REPORTS": "Címkejelentések letöltése",
"FILTER_DROPDOWN_LABEL": "Cimke választása",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Címkék keresése"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Beszélgetések",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Válassz egy fiókot",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Beszélgetések",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Csapat áttekintés",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Táblázat adatok betöltése...",
"NO_ENOUGH_DATA": "Nem érkezett elég adat hogy jelentést generáljunk, kérjük próbáld később.",
"DOWNLOAD_TEAM_REPORTS": "Csapat riport letöltése",
"FILTER_DROPDOWN_LABEL": "Csapat kiválasztása",
+ "FILTERS": {
+ "ADD_FILTER": "Szűrő hozzáadása",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Csapatok keresése"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Beszélgetések",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT riportok",
- "NO_RECORDS": "Nem állnak rendelkezésre CSAT-felmérés válaszai.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "CSAT jelentés letöltése",
"DOWNLOAD_FAILED": "Sikertelen a CSAT jelentés letöltése",
"FILTERS": {
+ "ADD_FILTER": "Szűrő hozzáadása",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Ügynökök keresése",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Csapatok keresése",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Ügynökök választása"
+ "LABEL": "Ügynök"
+ },
+ "INBOXES": {
+ "LABEL": "Fiók"
+ },
+ "TEAMS": {
+ "LABEL": "Csapat"
+ },
+ "RATINGS": {
+ "LABEL": "Értékelés"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontakt",
- "AGENT_NAME": "Hozzárendelt ügynök",
+ "AGENT_NAME": "Ügynök",
"RATING": "Értékelés",
- "FEEDBACK_TEXT": "Visszajelző komment"
- }
+ "FEEDBACK_TEXT": "Visszajelző komment",
+ "CONVERSATION": "Beszélgetés",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Összes válasz",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Válaszarány",
"TOOLTIP": "Válaszok teljes száma / Az elküldött CSAT felmérési üzenetek teljes száma * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Mentés",
+ "CANCEL": "Mégse",
+ "SAVING": "Mentés...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/hu/settings.json b/app/javascript/dashboard/i18n/locale/hu/settings.json
index b5e46e85c..4a530b0fc 100644
--- a/app/javascript/dashboard/i18n/locale/hu/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hu/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Letöltés",
"UPLOADING": "Feltöltés...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Ez a story már nem érhető el."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Ez a story már nem érhető el.",
+ "INSTAGRAM_STORY_REPLY": "Válaszolt a storydra:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Mutasd térképen"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Dokumentum olvasása",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Lehetőségek",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Számlázás",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Tulajdonságok keresése"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Beszélgetés megoldása",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Beszélgetés megoldása",
+ "CANCEL": "Mégse"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Igen",
+ "NO": "Nem"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uppsz! Nem találtunk egyetlen Chatwoot-fiókot sem. A folytatáshoz kérlek hozz létre egy új fiókot.",
"NEW_ACCOUNT": "Új fiók",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Mégse"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/hu/signup.json b/app/javascript/dashboard/i18n/locale/hu/signup.json
index 01e0cfa50..c9f35486e 100644
--- a/app/javascript/dashboard/i18n/locale/hu/signup.json
+++ b/app/javascript/dashboard/i18n/locale/hu/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Fiók létrehozása",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Regisztrálás",
"TESTIMONIAL_HEADER": "Már csak egy lépés van hátra",
"TESTIMONIAL_CONTENT": "Már csak egy lépésre vagy!",
diff --git a/app/javascript/dashboard/i18n/locale/hu/sla.json b/app/javascript/dashboard/i18n/locale/hu/sla.json
index 00f4ae872..64e56d2d8 100644
--- a/app/javascript/dashboard/i18n/locale/hu/sla.json
+++ b/app/javascript/dashboard/i18n/locale/hu/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/hu/snooze.json b/app/javascript/dashboard/i18n/locale/hu/snooze.json
new file mode 100644
index 000000000..25a940758
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hu/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "óra",
+ "DAY": "nap",
+ "DAYS": "days",
+ "WEEK": "day",
+ "WEEKS": "weeks",
+ "MONTH": "week",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "holnap",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "jövő héten",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "day",
+ "DAY": "nap"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hu/teamsSettings.json b/app/javascript/dashboard/i18n/locale/hu/teamsSettings.json
index f6062b3e5..9704acfcf 100644
--- a/app/javascript/dashboard/i18n/locale/hu/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hu/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Csapatok keresése...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Ebben a fiókban nincs csapat létrehozva.",
"EDIT_TEAM": "Csapat szerkesztése",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Nem sikerült a csapat részleteinek mentése. Kérjük próbáld újra."
},
"AGENTS": {
- "AGENT": "ÜGYNÖK",
- "EMAIL": "EMAIL",
+ "AGENT": "Ügynök",
+ "EMAIL": "E-mail",
"BUTTON_TEXT": "Ügynök Hozzádása",
"ADD_AGENTS": "Ügynökök hozzáadása a csapathoz...",
"SELECT": "kiválasztás",
diff --git a/app/javascript/dashboard/i18n/locale/hy/agentBots.json b/app/javascript/dashboard/i18n/locale/hy/agentBots.json
index d3a0bb991..dc92016ab 100644
--- a/app/javascript/dashboard/i18n/locale/hy/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/hy/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/hy/agentMgmt.json b/app/javascript/dashboard/i18n/locale/hy/agentMgmt.json
index 448994e69..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/hy/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hy/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/hy/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/hy/attributesMgmt.json
index 78886f451..e83950b14 100644
--- a/app/javascript/dashboard/i18n/locale/hy/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hy/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/hy/automation.json b/app/javascript/dashboard/i18n/locale/hy/automation.json
index 43245a1d5..22a9735f4 100644
--- a/app/javascript/dashboard/i18n/locale/hy/automation.json
+++ b/app/javascript/dashboard/i18n/locale/hy/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/hy/bulkActions.json b/app/javascript/dashboard/i18n/locale/hy/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/hy/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/hy/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/hy/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/hy/cannedMgmt.json
index 3bc60c569..05c05c0c6 100644
--- a/app/javascript/dashboard/i18n/locale/hy/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hy/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/hy/chatlist.json b/app/javascript/dashboard/i18n/locale/hy/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/hy/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/hy/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/hy/contact.json b/app/javascript/dashboard/i18n/locale/hy/contact.json
index 5aa225446..6b1900def 100644
--- a/app/javascript/dashboard/i18n/locale/hy/contact.json
+++ b/app/javascript/dashboard/i18n/locale/hy/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/hy/conversation.json b/app/javascript/dashboard/i18n/locale/hy/conversation.json
index 59ad61c1d..7b7e325ab 100644
--- a/app/javascript/dashboard/i18n/locale/hy/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/hy/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/hy/customRole.json b/app/javascript/dashboard/i18n/locale/hy/customRole.json
index ca01a1eeb..3bdc371e4 100644
--- a/app/javascript/dashboard/i18n/locale/hy/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/hy/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/hy/datePicker.json b/app/javascript/dashboard/i18n/locale/hy/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/hy/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/hy/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/general.json b/app/javascript/dashboard/i18n/locale/hy/general.json
index 283cf79c4..bdc7cb8a4 100644
--- a/app/javascript/dashboard/i18n/locale/hy/general.json
+++ b/app/javascript/dashboard/i18n/locale/hy/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/generalSettings.json b/app/javascript/dashboard/i18n/locale/hy/generalSettings.json
index d924bffbd..fab8020e2 100644
--- a/app/javascript/dashboard/i18n/locale/hy/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hy/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/hy/helpCenter.json b/app/javascript/dashboard/i18n/locale/hy/helpCenter.json
index 0ab8d62ff..69a72f163 100644
--- a/app/javascript/dashboard/i18n/locale/hy/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/hy/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json
index 7aaed0119..e8eeb1167 100644
--- a/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
diff --git a/app/javascript/dashboard/i18n/locale/hy/integrationApps.json b/app/javascript/dashboard/i18n/locale/hy/integrationApps.json
index b91b434f7..828f4ea67 100644
--- a/app/javascript/dashboard/i18n/locale/hy/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/hy/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/integrations.json b/app/javascript/dashboard/i18n/locale/hy/integrations.json
index 983953180..a1ce02d11 100644
--- a/app/javascript/dashboard/i18n/locale/hy/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hy/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/hy/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/hy/labelsMgmt.json
index 705b18d0e..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/hy/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hy/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/hy/macros.json b/app/javascript/dashboard/i18n/locale/hy/macros.json
index fcb409f34..e12f0ca73 100644
--- a/app/javascript/dashboard/i18n/locale/hy/macros.json
+++ b/app/javascript/dashboard/i18n/locale/hy/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/hy/mfa.json b/app/javascript/dashboard/i18n/locale/hy/mfa.json
index f7556fdcf..b03917bcd 100644
--- a/app/javascript/dashboard/i18n/locale/hy/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/hy/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/hy/report.json b/app/javascript/dashboard/i18n/locale/hy/report.json
index a2ad6bd4a..45c40de58 100644
--- a/app/javascript/dashboard/i18n/locale/hy/report.json
+++ b/app/javascript/dashboard/i18n/locale/hy/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/hy/settings.json b/app/javascript/dashboard/i18n/locale/hy/settings.json
index 920da6f53..cf56caf3d 100644
--- a/app/javascript/dashboard/i18n/locale/hy/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hy/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancel"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/hy/signup.json b/app/javascript/dashboard/i18n/locale/hy/signup.json
index f6a6e5b2b..fa4322493 100644
--- a/app/javascript/dashboard/i18n/locale/hy/signup.json
+++ b/app/javascript/dashboard/i18n/locale/hy/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/hy/sla.json b/app/javascript/dashboard/i18n/locale/hy/sla.json
index 0da7873be..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/hy/sla.json
+++ b/app/javascript/dashboard/i18n/locale/hy/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/hy/snooze.json b/app/javascript/dashboard/i18n/locale/hy/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hy/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hy/teamsSettings.json b/app/javascript/dashboard/i18n/locale/hy/teamsSettings.json
index f0a950fd1..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/hy/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hy/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/id/agentBots.json b/app/javascript/dashboard/i18n/locale/id/agentBots.json
index e29fa8263..2639f67b0 100644
--- a/app/javascript/dashboard/i18n/locale/id/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/id/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Memuat editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "Sistem",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "URL Webhook"
+ "URL": "URL Webhook",
+ "ACTIONS": "Aksi"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/id/agentMgmt.json b/app/javascript/dashboard/i18n/locale/id/agentMgmt.json
index adcd0be5a..4296cb328 100644
--- a/app/javascript/dashboard/i18n/locale/id/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/id/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agen"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Tidak ada agen yang terkait dengan akun ini",
"TITLE": "Kelola agen di tim Anda",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Tidak dapat terhubung ke Server Woot, Silahkan coba lagi nanti"
}
},
+ "SEARCH_PLACEHOLDER": "Mencari Agen...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Tidak ada hasil ditemukan."
},
diff --git a/app/javascript/dashboard/i18n/locale/id/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/id/attributesMgmt.json
index d989c3a36..69e9d6a43 100644
--- a/app/javascript/dashboard/i18n/locale/id/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/id/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Mengambil atribut kustom",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Cari atribut...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Percakapan",
"CONTACT": "Kontak"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -78,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"
diff --git a/app/javascript/dashboard/i18n/locale/id/automation.json b/app/javascript/dashboard/i18n/locale/id/automation.json
index 155d75b84..8ff80ae93 100644
--- a/app/javascript/dashboard/i18n/locale/id/automation.json
+++ b/app/javascript/dashboard/i18n/locale/id/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Otomatisasi",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Tambah Aturan Otomatisasi",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Mengambil aturan otomatisasi",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Tambah Aturan Otomatisasi",
"SUBMIT": "Buat",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Nama",
- "DESCRIPTION": "Deskripsi",
"ACTIVE": "Aktif",
- "CREATED_ON": "Dibuat pada"
+ "CREATED_ON": "Dibuat pada",
+ "ACTIONS": "Aksi"
},
"404": "Tidak ada aturan otomatisasi ditemukan"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Ubah Prioritas",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Buka percakapan"
+ "OPEN_CONVERSATION": "Buka percakapan",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/id/bulkActions.json b/app/javascript/dashboard/i18n/locale/id/bulkActions.json
index 39f035d6f..9f397da6c 100644
--- a/app/javascript/dashboard/i18n/locale/id/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/id/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Status percakapan berhasil diperbarui.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "Tidak ada label",
diff --git a/app/javascript/dashboard/i18n/locale/id/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/id/cannedMgmt.json
index 58f77c86b..5b2333c1d 100644
--- a/app/javascript/dashboard/i18n/locale/id/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/id/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Balasan Canned",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Tidak ada item yang cocok dengan kueri ini.",
"LIST": {
"404": "Tidak ada balasan canned yang tersedia di akun ini.",
diff --git a/app/javascript/dashboard/i18n/locale/id/chatlist.json b/app/javascript/dashboard/i18n/locale/id/chatlist.json
index cea5c7ea4..2d07bd509 100644
--- a/app/javascript/dashboard/i18n/locale/id/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/id/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/id/contact.json b/app/javascript/dashboard/i18n/locale/id/contact.json
index 916235b12..dada842a7 100644
--- a/app/javascript/dashboard/i18n/locale/id/contact.json
+++ b/app/javascript/dashboard/i18n/locale/id/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Tidak ada kontak yang cocok dengan pencarian Anda 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Tugaskan Label",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Kepada:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Masukkan subjek :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/id/conversation.json b/app/javascript/dashboard/i18n/locale/id/conversation.json
index d64dd82b3..db4bd4c89 100644
--- a/app/javascript/dashboard/i18n/locale/id/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/id/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Pesan berhasil dihapus",
"FAIL_DELETE_MESSSAGE": "Tidak dapat menghapus pesan! Coba lagi",
"NO_RESPONSE": "Tidak ada respon",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Tidak dapat menugaskan label. Silakan coba lagi."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Tim \"{team}\" ditugaskan ke id percakapan {conversationId}",
"FAILED": "Tidak dapat menugaskan tim. Silakan coba lagi."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Nonaktifkan tanda tangan",
"MSG_INPUT": "Shift + enter untuk baris baru. Mulailah dengan '/' untuk memilih Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter untuk baris baru. Ini hanya akan terlihat oleh Agen",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Tanda tangan pesan tidak dikonfigurasi, harap konfigurasikan di pengaturan profil.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Klik di sini untuk memperbarui",
"WHATSAPP_TEMPLATES": "Templat Whatsapp"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Seret dan letakkan di sini untuk melampirkan",
"START_AUDIO_RECORDING": "Mulai merekam audio",
"STOP_AUDIO_RECORDING": "Berhenti merekam audio",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "KEPADA",
"ADD_BCC": "Tambahkan bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Lampiran melebihi batas ukuran {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Tidak dapat mengirim pesan ini, mohon coba lagi nanti",
"SENT_BY": "Dikirim oleh:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Tidak dapat mengirim pesan! Coba lagi",
"TRY_AGAIN": "coba lagi",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Batalkan",
"SEND_EMAIL_SUCCESS": "Transkrip percakapan berhasil terkirim",
"SEND_EMAIL_ERROR": "Terjadi kesalahan, mohon coba lagi",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Kirim transkrip ke pelanggan",
"SEND_TO_AGENT": "Kirim transkrip dari agen yang ditugaskan",
diff --git a/app/javascript/dashboard/i18n/locale/id/customRole.json b/app/javascript/dashboard/i18n/locale/id/customRole.json
index bd2289327..4c9a7f38b 100644
--- a/app/javascript/dashboard/i18n/locale/id/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/id/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Tidak ada item yang cocok dengan kueri ini.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/id/datePicker.json b/app/javascript/dashboard/i18n/locale/id/datePicker.json
index aaeaf7634..1ea450d80 100644
--- a/app/javascript/dashboard/i18n/locale/id/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/id/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Terapkan",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "3 bulan terakhir",
"LAST_6_MONTHS": "6 bulan terakhir",
"LAST_YEAR": "Tahun terakhir",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Rentang tanggal kustom"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/general.json b/app/javascript/dashboard/i18n/locale/id/general.json
index b727db2c2..e540bd3b9 100644
--- a/app/javascript/dashboard/i18n/locale/id/general.json
+++ b/app/javascript/dashboard/i18n/locale/id/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Tutup",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Ya",
+ "NO": "Tidak"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/generalSettings.json b/app/javascript/dashboard/i18n/locale/id/generalSettings.json
index e540e8ecb..f058a8d11 100644
--- a/app/javascript/dashboard/i18n/locale/id/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/id/generalSettings.json
@@ -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!",
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Cari atau loncat ke",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Umum",
"REPORTS": "Laporan",
diff --git a/app/javascript/dashboard/i18n/locale/id/helpCenter.json b/app/javascript/dashboard/i18n/locale/id/helpCenter.json
index db4b51f74..40e1f1a9d 100644
--- a/app/javascript/dashboard/i18n/locale/id/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/id/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Terjadi kesalahan saat menghapus artikel"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Harap tambahkan tajuk artikel dan konten maka hanya Anda yang dapat memperbarui pengaturan"
},
diff --git a/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json
index 92df9bee0..48c4432d4 100644
--- a/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Kotak masuk",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Simpan"
}
@@ -589,8 +592,10 @@
"DISABLED": "Nonaktif"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Diaktifkan",
- "DISABLED": "Nonaktif"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Aktifkan"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Aktifkan kontinuitas percakapan melalui email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Percakapan akan berlanjut melalui email jika alamat email kontak tersedia.",
- "LOCK_TO_SINGLE_CONVERSATION": "Kunci ke satu percakapan",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Aktifkan atau nonaktifkan beberapa percakapan untuk kontak yang sama di kotak masuk ini",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Pengaturan Kotak Masuk",
"INBOX_UPDATE_SUB_TEXT": "Perbarui pengaturan kotak masuk Anda",
"AUTO_ASSIGNMENT_SUB_TEXT": "Mengaktifkan atau menonaktifkan penugasan otomatis percakapan baru ke agen yang ditambahkan ke kotak masuk ini.",
@@ -758,6 +775,7 @@
"LABEL": "Pusat Bantuan",
"PLACEHOLDER": "Pilih Pusat Bantuan",
"SELECT_PLACEHOLDER": "Pilih Pusat Bantuan",
+ "NONE": "Tidak ada",
"REMOVE": "Hapus Pusat Bantuan",
"SUB_TEXT": "Lampirkan Pusat Bantuan dengan kotak masuk"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Harap masukkan nilai yang lebih besar dari 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Batasi jumlah maksimum percakapan dari kotak masuk ini yang dapat ditetapkan secara otomatis ke agen"
},
+ "ASSIGNMENT": {
+ "TITLE": "Tugas Percakapan",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktif",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Batalkan",
+ "CONFIRM_DELETE": "Hapus",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Otorisasi ulang",
"SUBTITLE": "Koneksi Facebook Anda telah kedaluwarsa, hubungkan kembali halaman Facebook Anda untuk melanjutkan layanan",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Kembali"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Pesan tidak tersedia untuk pengunjung",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Hari",
+ "AVAILABILITY": "Ketersediaan",
+ "HOURS": "Hours",
"ENABLE": "Aktifkan ketersediaan untuk hari ini",
"UNAVAILABLE": "Tidak tersedia",
- "HOURS": "jam",
"VALIDATION_ERROR": "Waktu mulai harus sebelum waktu tutup.",
"CHOOSE": "Pilih"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Dalam sehari"
},
"WIDGET_COLOR_LABEL": "Warna Widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Posisi Widget Gelembung",
- "WIDGET_BUBBLE_TYPE_LABEL": "Jenis Gelembung Widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tipe:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat dengan kami",
- "LABEL": "Judul Widget Gelembung Launcher",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat dengan kami"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Biasanya membalas dalam beberapa menit",
diff --git a/app/javascript/dashboard/i18n/locale/id/integrationApps.json b/app/javascript/dashboard/i18n/locale/id/integrationApps.json
index efe3e43c9..007624afb 100644
--- a/app/javascript/dashboard/i18n/locale/id/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/id/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Mengambil Integrasi",
"NO_HOOK_CONFIGURED": "Tidak ada integrasi {integrationId} yang dikonfigurasi di akun ini.",
"HEADER": "Aplikasi",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Diaktifkan",
"DISABLED": "Nonaktif"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Mengambil hook integrasi",
"INBOX": "Kotak masuk",
+ "ACTIONS": "Aksi",
"DELETE": {
"BUTTON_TEXT": "Hapus"
}
diff --git a/app/javascript/dashboard/i18n/locale/id/integrations.json b/app/javascript/dashboard/i18n/locale/id/integrations.json
index 965e4f351..76cbabb96 100644
--- a/app/javascript/dashboard/i18n/locale/id/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/id/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Acara Berlangganan",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Batalkan",
"DESC": "Acara Webhook memberi Anda informasi realtime tentang apa yang terjadi di akun Chatwoot Anda. Harap masukkan URL yang valid untuk mengkonfigurasi callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Hapus",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Ramah"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Aplikasi Dasbor
Aplikasi Dasbor memungkinkan organisasi untuk menyematkan aplikasi di dalam dasbor Chatwoot untuk menyediakan konteks bagi agen dukungan pelanggan. Fitur ini memungkinkan Anda membuat aplikasi secara independen dan menyematkannya di dalam dasbor untuk menyediakan informasi pengguna, pesanan, atau riwayat pembayaran sebelumnya.
Ketika Anda menyematkan aplikasi Anda menggunakan dasbor di Chatwoot, aplikasi Anda akan mendapatkan konteks percakapan dan kontak sebagai acara window. Implementasikan penerima untuk acara pesan di halaman Anda untuk menerima konteks.
Untuk menambahkan aplikasi dasbor baru, klik tombol 'Tambahkan aplikasi dasbor baru'.
",
"DESCRIPTION": "Aplikasi Dasbor memungkinkan organisasi untuk menyematkan aplikasi di dalam dasbor untuk menyediakan konteks bagi agen dukungan pelanggan. Fitur ini memungkinkan Anda membuat aplikasi secara independen dan menyematkannya untuk menyediakan informasi pengguna, pesanan, atau riwayat pembayaran sebelumnya.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Belum ada aplikasi dasbor yang dikonfigurasi untuk akun ini",
"LOADING": "Mengambil aplikasi dasbor...",
"TABLE_HEADER": {
"NAME": "Nama",
- "ENDPOINT": "Titik akhir"
+ "ENDPOINT": "Titik akhir",
+ "ACTIONS": "Aksi"
},
"EDIT_TOOLTIP": "Edit aplikasi",
"DELETE_TOOLTIP": "Hapus aplikasi"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/id/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/id/labelsMgmt.json
index 133e3e54a..fa2dd52d9 100644
--- a/app/javascript/dashboard/i18n/locale/id/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/id/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Mengambil label",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Cari label...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Tidak ada item yang cocok dengan kueri ini",
"LIST": {
"404": "Tidak ada label yang tersedia di akun ini.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Nama",
"DESCRIPTION": "Deskripsi",
- "COLOR": "Warna"
+ "COLOR": "Warna",
+ "ACTION": "Aksi"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/id/macros.json b/app/javascript/dashboard/i18n/locale/id/macros.json
index 4d39b93d5..ff9b66392 100644
--- a/app/javascript/dashboard/i18n/locale/id/macros.json
+++ b/app/javascript/dashboard/i18n/locale/id/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Makro",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Tambahkan makro baru",
"HEADER_BTN_TXT_SAVE": "Simpan makro",
"LOADING": "Mengambil makro",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Terjadi kesalahan. Silakan coba lagi",
"ORDER_INFO": "Makro akan dijalankan sesuai dengan urutan penambahan tindakan-tindakan Anda. Anda dapat mengatur ulang tindakan-tindakan tersebut dengan menggesernya menggunakan pegangan di sebelah setiap node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Nama",
"CREATED BY": "Dibuat oleh",
"LAST_UPDATED_BY": "Terakhir diperbarui oleh",
- "VISIBILITY": "Visibilitas"
+ "VISIBILITY": "Visibilitas",
+ "ACTIONS": "Aksi"
},
"404": "Tidak ditemukan makro"
},
diff --git a/app/javascript/dashboard/i18n/locale/id/mfa.json b/app/javascript/dashboard/i18n/locale/id/mfa.json
index dee8f80e1..9d89d2e8b 100644
--- a/app/javascript/dashboard/i18n/locale/id/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/id/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/id/report.json b/app/javascript/dashboard/i18n/locale/id/report.json
index 35393f1da..bee3aa28b 100644
--- a/app/javascript/dashboard/i18n/locale/id/report.json
+++ b/app/javascript/dashboard/i18n/locale/id/report.json
@@ -3,7 +3,7 @@
"HEADER": "Percakapan",
"LOADING_CHART": "Memuat data grafik...",
"NO_ENOUGH_DATA": "Kami belum menerima cukup data untuk membuat laporan, Silakan coba lagi nanti.",
- "DOWNLOAD_AGENT_REPORTS": "Unduh laporan agen",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Gagal mengambil data, silakan coba lagi nanti.",
"SUMMARY_FETCHING_FAILED": "Gagal mengambil ringkasan, silakan coba lagi nanti.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Gambaran Agen",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Memuat data grafik...",
"NO_ENOUGH_DATA": "Kami belum menerima cukup data untuk membuat laporan, Silakan coba lagi nanti.",
"DOWNLOAD_AGENT_REPORTS": "Unduh laporan agen",
"FILTER_DROPDOWN_LABEL": "Pilih Agen",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Mencari Agen"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Percakapan",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Kami belum menerima cukup data untuk membuat laporan, Silakan coba lagi nanti.",
"DOWNLOAD_LABEL_REPORTS": "Unduh laporan label",
"FILTER_DROPDOWN_LABEL": "Pilih label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Cari label"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Percakapan",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Pilih kotak masuk",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Percakapan",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Gambaran Tim",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Memuat data grafik...",
"NO_ENOUGH_DATA": "Kami belum menerima cukup data untuk membuat laporan, Silakan coba lagi nanti.",
"DOWNLOAD_TEAM_REPORTS": "Unduh laporan tim",
"FILTER_DROPDOWN_LABEL": "Pilih Tim",
+ "FILTERS": {
+ "ADD_FILTER": "Tambah filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Mencari tim"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Percakapan",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Laporan CSAT",
- "NO_RECORDS": "Tidak ada respons survey CSAT yang tersedia.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Unduh Laporan CSAT",
"DOWNLOAD_FAILED": "Gagal mengunduh Laporan CSAT",
"FILTERS": {
+ "ADD_FILTER": "Tambah filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Mencari Agen",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Mencari tim",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Pilih Agen"
+ "LABEL": "Agen"
+ },
+ "INBOXES": {
+ "LABEL": "Kotak masuk"
+ },
+ "TEAMS": {
+ "LABEL": "Tim"
+ },
+ "RATINGS": {
+ "LABEL": "Penilaian"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontak",
- "AGENT_NAME": "Agen yang ditugaskan",
+ "AGENT_NAME": "Agen",
"RATING": "Peringkat",
- "FEEDBACK_TEXT": "Komentar umpan balik"
- }
+ "FEEDBACK_TEXT": "Komentar umpan balik",
+ "CONVERSATION": "Percakapan",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total respons",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Peringkat respons",
"TOOLTIP": "Total jumlah respons / Total jumlah pesan survey CSAT yang terkirim * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Simpan",
+ "CANCEL": "Batalkan",
+ "SAVING": "Menyimpan...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/id/settings.json b/app/javascript/dashboard/i18n/locale/id/settings.json
index efbc1930b..93bb7fb58 100644
--- a/app/javascript/dashboard/i18n/locale/id/settings.json
+++ b/app/javascript/dashboard/i18n/locale/id/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Unduh",
"UPLOADING": "Mengunggah...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Cerita ini tidak lagi tersedia."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Cerita ini tidak lagi tersedia.",
+ "INSTAGRAM_STORY_REPLY": "Membalas cerita Anda:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Lihat di peta"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Baca dokumen",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Fitur",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Pembayaran",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Cari atribut"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Selesaikan percakapan",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Selesaikan percakapan",
+ "CANCEL": "Batalkan"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Ya",
+ "NO": "Tidak"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! Kami tidak dapat menemukan akun Chatwoot apa pun. Harap buat akun baru untuk melanjutkan.",
"NEW_ACCOUNT": "Akun Baru",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Batalkan"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/id/signup.json b/app/javascript/dashboard/i18n/locale/id/signup.json
index dac2beec5..b580845a0 100644
--- a/app/javascript/dashboard/i18n/locale/id/signup.json
+++ b/app/javascript/dashboard/i18n/locale/id/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Buat akun",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Daftar",
"TESTIMONIAL_HEADER": "Hanya butuh satu langkah untuk maju",
"TESTIMONIAL_CONTENT": "Anda hanya tinggal selangkah lagi untuk berinteraksi dengan pelanggan Anda, mempertahankan mereka, dan menemukan yang baru.",
diff --git a/app/javascript/dashboard/i18n/locale/id/sla.json b/app/javascript/dashboard/i18n/locale/id/sla.json
index 053d13498..2635f7bab 100644
--- a/app/javascript/dashboard/i18n/locale/id/sla.json
+++ b/app/javascript/dashboard/i18n/locale/id/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/id/snooze.json b/app/javascript/dashboard/i18n/locale/id/snooze.json
new file mode 100644
index 000000000..7b6703a08
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/id/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "jam",
+ "DAY": "hari",
+ "DAYS": "days",
+ "WEEK": "day",
+ "WEEKS": "weeks",
+ "MONTH": "week",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "besok",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "minggu depan",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "day",
+ "DAY": "hari"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/id/teamsSettings.json b/app/javascript/dashboard/i18n/locale/id/teamsSettings.json
index 4894ecb07..dbcaaa64f 100644
--- a/app/javascript/dashboard/i18n/locale/id/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/id/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Mencari tim...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Belum ada tim yang dibuat pada akun ini.",
"EDIT_TEAM": "Edit Tim",
@@ -94,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"
diff --git a/app/javascript/dashboard/i18n/locale/is/agentBots.json b/app/javascript/dashboard/i18n/locale/is/agentBots.json
index 3086c7959..31fe17975 100644
--- a/app/javascript/dashboard/i18n/locale/is/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/is/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Aðgerðir"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/is/agentMgmt.json b/app/javascript/dashboard/i18n/locale/is/agentMgmt.json
index c782fa874..8eb017f11 100644
--- a/app/javascript/dashboard/i18n/locale/is/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/is/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Stjórnandi",
"AGENT": "Þjónustufulltrúi"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Það eru engir þjónustufulltrúar tengdir við þennan reikning",
"TITLE": "Umsýsla þjónustufulltrúa í þínu teymi",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Náði ekki að tengjast við netþjóna Woot, vinsamlegast reynið aftur"
}
},
+ "SEARCH_PLACEHOLDER": "Leita að þjónustufulltrúum...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Engar niðurstöður fundust."
},
diff --git a/app/javascript/dashboard/i18n/locale/is/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/is/attributesMgmt.json
index 84f083763..e4b20122e 100644
--- a/app/javascript/dashboard/i18n/locale/is/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/is/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Leita í eiginleikum...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/is/automation.json b/app/javascript/dashboard/i18n/locale/is/automation.json
index b183ba597..d6d5c1ae8 100644
--- a/app/javascript/dashboard/i18n/locale/is/automation.json
+++ b/app/javascript/dashboard/i18n/locale/is/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Nafn",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Aðgerðir"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Opna samtal"
+ "OPEN_CONVERSATION": "Opna samtal",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/is/bulkActions.json b/app/javascript/dashboard/i18n/locale/is/bulkActions.json
index 91c4458ec..4a62fcc66 100644
--- a/app/javascript/dashboard/i18n/locale/is/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/is/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "Engar merkingar fundust",
diff --git a/app/javascript/dashboard/i18n/locale/is/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/is/cannedMgmt.json
index 10a215cde..b6a783711 100644
--- a/app/javascript/dashboard/i18n/locale/is/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/is/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Stöðluð svör",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Það eru engin atriði sem passa við þessa fyrirspurn.",
"LIST": {
"404": "Það eru engin stöðluð svör aðgengileg á þessum reikning.",
diff --git a/app/javascript/dashboard/i18n/locale/is/chatlist.json b/app/javascript/dashboard/i18n/locale/is/chatlist.json
index 44ec15817..0593cad1d 100644
--- a/app/javascript/dashboard/i18n/locale/is/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/is/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/is/contact.json b/app/javascript/dashboard/i18n/locale/is/contact.json
index 6cca35038..8ee019720 100644
--- a/app/javascript/dashboard/i18n/locale/is/contact.json
+++ b/app/javascript/dashboard/i18n/locale/is/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Engir tengiliðir fundust",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Til:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Viðfangsefni :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/is/conversation.json b/app/javascript/dashboard/i18n/locale/is/conversation.json
index 3f42732c9..bb130ae2e 100644
--- a/app/javascript/dashboard/i18n/locale/is/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/is/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Skilaboðum eytt",
"FAIL_DELETE_MESSSAGE": "Gat ekki eytt skilaboðum! Reynið aftur",
"NO_RESPONSE": "Ekkert svar",
@@ -173,8 +174,12 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "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."
}
}
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter fyrir nýja línu. Byrjaðu á '/' til að velja tilbúið svar.",
"PRIVATE_MSG_INPUT": "Shift + enter fyrir nýja línu. Þetta verður aðeins sýnilegt fyrir þjónustufulltrúa",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Skilaboðundirskrift er ekki stillt, vinsamlegast stilltu hana í prófílstillingum.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Dragðu og slepptu viðhenginu hingað",
"START_AUDIO_RECORDING": "Hefja hljóðupptöku",
"STOP_AUDIO_RECORDING": "Stoppa hljóðupptöku",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Bæta við bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Skráin fer framyfir hámarksstærð viðhengja ({MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE})",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Ekki er hægt að senda þessi skilaboð, vinsamlegast reyndu aftur síðar",
"SENT_BY": "Sent af:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Tókst ekki að senda skilaboð! Reyndu aftur",
"TRY_AGAIN": "reyna aftur",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Hætta við",
"SEND_EMAIL_SUCCESS": "Afritið af samtalinu var sent",
"SEND_EMAIL_ERROR": "Það kom villa, vinsamlegas reyndu aftur",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Senda afritið á viðskiptavinin",
"SEND_TO_AGENT": "Sendu afritið til úthlutaðs þjónustufulltrúa",
diff --git a/app/javascript/dashboard/i18n/locale/is/customRole.json b/app/javascript/dashboard/i18n/locale/is/customRole.json
index 10e1aae86..93b5c2e44 100644
--- a/app/javascript/dashboard/i18n/locale/is/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/is/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Það eru engin atriði sem passa við þessa fyrirspurn.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/is/datePicker.json b/app/javascript/dashboard/i18n/locale/is/datePicker.json
index 90bf342a9..11844dcc7 100644
--- a/app/javascript/dashboard/i18n/locale/is/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/is/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Síðustu 3 mánuði",
"LAST_6_MONTHS": "Síðustu 6 mánuði",
"LAST_YEAR": "Síðasta ár",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/general.json b/app/javascript/dashboard/i18n/locale/is/general.json
index d1c1a4668..f9dfc99e4 100644
--- a/app/javascript/dashboard/i18n/locale/is/general.json
+++ b/app/javascript/dashboard/i18n/locale/is/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Já",
+ "NO": "Nei"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/generalSettings.json b/app/javascript/dashboard/i18n/locale/is/generalSettings.json
index 6c7af2ba0..4ba79e75c 100644
--- a/app/javascript/dashboard/i18n/locale/is/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/is/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Leita eða stökkva til",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Almennar",
"REPORTS": "Skýrslur",
diff --git a/app/javascript/dashboard/i18n/locale/is/helpCenter.json b/app/javascript/dashboard/i18n/locale/is/helpCenter.json
index 878352846..8026a3816 100644
--- a/app/javascript/dashboard/i18n/locale/is/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/is/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Vinsamlegast bættu við fyrirsögn greinarinnar og innihaldi þá er aðeins þú sem getur uppfært stillingarnar"
},
diff --git a/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json
index e545296a7..6e7b59ac9 100644
--- a/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Innhólf",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Slökkt"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Virkt",
- "DISABLED": "Slökkt"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Virkja"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Samtöl halda áfram með tölvupósti ef tengiliðanetfangið er tiltækt.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Kveikja eða slökkva á samtíma samtölum fyrir sama tengilið í þessu innhólfi",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Virkja eða slökkva á sjálfvirkri úthlutun nýrra samtöla til umboðsmanna sem bætt er við þetta innhólf.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "Enginn",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Takmarkaðu hámarksfjölda samtala úr þessu innhólfi sem hægt er að úthluta sjálfkrafa á þjónustufulltrúa"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Hætta við",
+ "CONFIRM_DELETE": "Eyða",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Endurauðkenna",
"SUBTITLE": "Facebook tengingin þín er útrunnin, vinsamlegast tengdu Facebook síðuna þína aftur til að halda áfram þjónustu",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Dagur",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Upphafstími ætti að vera fyrir lokunartíma.",
"CHOOSE": "Velja"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Eftir sólarhring"
},
"WIDGET_COLOR_LABEL": "Litur Widgets",
- "WIDGET_BUBBLE_POSITION_LABEL": "Staðsetning Widget Blöðru",
- "WIDGET_BUBBLE_TYPE_LABEL": "Tegund Widget Blöðru",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Spjallaðu við okkur",
- "LABEL": "Titill Widget Blöðru",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Spjallaðu við okkur"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Svarar iðulega innan nokkura mínútna",
diff --git a/app/javascript/dashboard/i18n/locale/is/integrationApps.json b/app/javascript/dashboard/i18n/locale/is/integrationApps.json
index 94a3b065e..def80a909 100644
--- a/app/javascript/dashboard/i18n/locale/is/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/is/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "Það eru engar {integrationId} samþættingar stilltar á þessum reikningi.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Virkt",
"DISABLED": "Slökkt"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Innhólf",
+ "ACTIONS": "Aðgerðir",
"DELETE": {
"BUTTON_TEXT": "Eyða"
}
diff --git a/app/javascript/dashboard/i18n/locale/is/integrations.json b/app/javascript/dashboard/i18n/locale/is/integrations.json
index aa164a4fc..8df6b59df 100644
--- a/app/javascript/dashboard/i18n/locale/is/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/is/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Hætta við",
"DESC": "Vefkróks (e. Webhook) viðburðir veita þér rauntíma upplýsingar um hvað er að gerast á Chatwoot reikningnum þínum. Vinsamlega sláðu inn gilda vefslóð til að stilla svarhringingu (e. callback).",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Eyða",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Mælaborðsforrit
Mælaborðsforrit gera fyrirtækjum kleift að innsteypa (e. embed) forrit inn í Chatwoot mælaborðið til að veita þjónustufulltrúum samhengi. Þessi eiginleiki gerir þér kleift að búa til forrit sjálfstætt og innsteypa það inn í mælaborðið til að veita notendaupplýsingar, pantanir þeirra eða fyrri greiðsluferla.
Þegar þú innsteypir forritið þitt með því að nota mælaborðið í Chatwoot mun forritið þitt fáðu samhengi samtalsins og sambandsins sem gluggaviðburð (e. window event). Settu upp hlustanda fyrir skilaboðaviðburðinn á síðunni þinni til að fá samhengið.
Til að bæta við nýju stjórnborðsforriti skaltu smella á hnappinn 'Bæta við nýju stjórnborðsforriti'.
",
"DESCRIPTION": "Mælaborðsforrit gera fyrirtækjum kleift að innsteypa (e. embed) forrit inn í mælaborðið til að veita þjónustufulltrúa samhengi. Þessi eiginleiki gerir þér kleift að búa til forrit sjálfstætt og innsteypa það inn til að veita notendaupplýsingar, pantanir þeirra eða fyrri greiðsluferil.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Engin mælaborðsforrit eru stillt á þessum reikningi ennþá",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Nafn",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Aðgerðir"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/is/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/is/labelsMgmt.json
index ad4a5b2fe..74990673b 100644
--- a/app/javascript/dashboard/i18n/locale/is/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/is/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Leita að merkingum...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Það eru engin atriði sem passa við þessa fyrirspurn",
"LIST": {
"404": "Engar merkingar eru tiltækir á þessum reikningi.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Nafn",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Aðgerðir"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/is/macros.json b/app/javascript/dashboard/i18n/locale/is/macros.json
index 2e9daa248..4d5bb632f 100644
--- a/app/javascript/dashboard/i18n/locale/is/macros.json
+++ b/app/javascript/dashboard/i18n/locale/is/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Fjölvi mun keyra í þeirri röð sem þú bætir við aðgerðum þínum. Þú getur endurraðað þeim með því að draga þau í handfangið við hlið hverrar nóðu.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Nafn",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Aðgerðir"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/is/mfa.json b/app/javascript/dashboard/i18n/locale/is/mfa.json
index aa7da19b6..bd7eb5cec 100644
--- a/app/javascript/dashboard/i18n/locale/is/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/is/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/is/report.json b/app/javascript/dashboard/i18n/locale/is/report.json
index 923b60935..f6bd509b2 100644
--- a/app/javascript/dashboard/i18n/locale/is/report.json
+++ b/app/javascript/dashboard/i18n/locale/is/report.json
@@ -3,7 +3,7 @@
"HEADER": "Samtöl",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "Við höfum ekki fengið nógu marga gagnapunkta til að búa til skýrslu, vinsamlegast reyndu aftur síðar.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "Við höfum ekki fengið nógu marga gagnapunkta til að búa til skýrslu, vinsamlegast reyndu aftur síðar.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Veldu Þjónustufulltrúa",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Leita að þjónustufulltrúum"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtöl",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Við höfum ekki fengið nógu marga gagnapunkta til að búa til skýrslu, vinsamlegast reyndu aftur síðar.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Leita að merkingum"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtöl",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtöl",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "Við höfum ekki fengið nógu marga gagnapunkta til að búa til skýrslu, vinsamlegast reyndu aftur síðar.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Leita að teymum"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtöl",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "Engin svör við CSAT könnun eru fáanleg.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Leita að þjónustufulltrúum",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Leita að teymum",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Þjónustufulltrúi"
+ },
+ "INBOXES": {
+ "LABEL": "Innhólf"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Þjónustufulltrúi",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Heildarfjöldi svara / Heildarfjöldi sendra CSAT könnunarskilaboða * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Hætta við",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/is/settings.json b/app/javascript/dashboard/i18n/locale/is/settings.json
index 2d3c2b638..e470fc11f 100644
--- a/app/javascript/dashboard/i18n/locale/is/settings.json
+++ b/app/javascript/dashboard/i18n/locale/is/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Sækja",
"UPLOADING": "Hleður upp...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Fídusar",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Leita í eiginleikum"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Leysa samtal",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Leysa samtal",
+ "CANCEL": "Hætta við"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Já",
+ "NO": "Nei"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh ó! Við fundum enga Chatwoot reikninga. Vinsamlegast búðu til nýjan reikning til að halda áfram.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Hætta við"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/is/signup.json b/app/javascript/dashboard/i18n/locale/is/signup.json
index e199471d2..7a7965142 100644
--- a/app/javascript/dashboard/i18n/locale/is/signup.json
+++ b/app/javascript/dashboard/i18n/locale/is/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Nýskráning",
"TESTIMONIAL_HEADER": "Það þarf aðeins eitt skref framávið",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/is/sla.json b/app/javascript/dashboard/i18n/locale/is/sla.json
index aa7c06a15..f24c8793c 100644
--- a/app/javascript/dashboard/i18n/locale/is/sla.json
+++ b/app/javascript/dashboard/i18n/locale/is/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/is/snooze.json b/app/javascript/dashboard/i18n/locale/is/snooze.json
new file mode 100644
index 000000000..4a26b8809
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/is/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "dagur",
+ "WEEKS": "weeks",
+ "MONTH": "vika",
+ "MONTHS": "months",
+ "YEAR": "mánuður",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "dagur",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/is/teamsSettings.json b/app/javascript/dashboard/i18n/locale/is/teamsSettings.json
index bb87ccf87..ba151639c 100644
--- a/app/javascript/dashboard/i18n/locale/is/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/is/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Leita að teymum...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Það eru engin teymi til á þessum reikningi.",
"EDIT_TEAM": "Breyta teymi",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Ekki tókst að vista teymisupplýsingarnar. Reyndu aftur."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "NETFANG",
+ "AGENT": "Þjónustufulltrúi",
+ "EMAIL": "Tölvupóstfang",
"BUTTON_TEXT": "Bæta við þjónustufulltrúum",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/it/agentBots.json b/app/javascript/dashboard/i18n/locale/it/agentBots.json
index 36cd36b1f..55cc5de67 100644
--- a/app/javascript/dashboard/i18n/locale/it/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/it/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Caricamento editor...",
"DESCRIPTION": "Gli Agent Bot sono membri virtuali del tuo team: gestiscono le attività di routine, lasciandoti più tempo per ciò che conta. Puoi gestirli da questa pagina o crearne di nuovi con il pulsante “Aggiungi Bot”.",
"LEARN_MORE": "Informazioni sugli agent bot",
+ "COUNT": "{n} bot | {n} bot",
+ "SEARCH_PLACEHOLDER": "Cerca bot...",
+ "NO_RESULTS": "Nessun bot trovato corrispondente alla tua ricerca",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Caricamento bot...",
"TABLE_HEADER": {
"DETAILS": "Dettagli Bot",
- "URL": "URL Webhook"
+ "URL": "URL Webhook",
+ "ACTIONS": "Azioni"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/it/agentMgmt.json b/app/javascript/dashboard/i18n/locale/it/agentMgmt.json
index 22a38f4c7..55437209f 100644
--- a/app/javascript/dashboard/i18n/locale/it/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/it/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Amministratore",
"AGENT": "Operatore"
},
+ "COUNT": "{n} operatore | {n} operatori",
"LIST": {
"404": "Non ci sono operatori associati a questo account",
"TITLE": "Gestisci gli operatori nel tuo team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi"
}
},
+ "SEARCH_PLACEHOLDER": "Cerca operatori...",
+ "NO_RESULTS": "Nessun operatore trovato corrispondente alla tua ricerca",
"SEARCH": {
"NO_RESULTS": "Nessun risultato trovato."
},
diff --git a/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json
index f23da232a..41e661e4d 100644
--- a/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Caricamento attributi personalizzati",
"DESCRIPTION": "Un attributo personalizzato tiene traccia di informazioni aggiuntive sui tuoi contatti o sulle conversazioni — ad esempio il piano di abbonamento o la data del primo acquisto. Puoi aggiungere diversi tipi di attributi personalizzati, come testo, elenchi o numeri, per raccogliere le informazioni specifiche di cui hai bisogno.",
"LEARN_MORE": "Scopri di più sugli attributi personalizzati",
+ "COUNT": "{n} attributo | {n} attributi",
+ "SEARCH_PLACEHOLDER": "Cerca attributi...",
+ "NO_RESULTS": "Nessun attributo trovato corrispondente alla tua ricerca",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversazione",
"CONTACT": "Contatto"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Abilita convalida espressione regolare"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Risoluzione"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/it/automation.json b/app/javascript/dashboard/i18n/locale/it/automation.json
index b4d400e5a..e9e67cd07 100644
--- a/app/javascript/dashboard/i18n/locale/it/automation.json
+++ b/app/javascript/dashboard/i18n/locale/it/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automazioni",
"DESCRIPTION": "Le automazioni possono sostituire e semplificare i processi esistenti che richiedono azioni manuale, ad esempio l'aggiunta di etichette e l'assegnazione di conversazioni all'operatore più adatto. Grazie alle automazioni i team possono concentrarsi sui propri punti di forza e ridurre il tempo dedicato alle attività ripetitive.",
"LEARN_MORE": "Scopri di più sulle automazioni",
- "HEADER_BTN_TXT": "Aggiungi Regola di Automazione",
+ "COUNT": "{n} automazione | {n} automazioni",
+ "HEADER_BTN_TXT": "Crea Automazione",
"LOADING": "Caricamento regole di automazione",
+ "SEARCH_PLACEHOLDER": "Cerca regole di automazione...",
+ "NO_RESULTS": "Nessuna regola di automazione trovata corrispondente alla tua ricerca",
"ADD": {
"TITLE": "Aggiungi Regola di Automazione",
"SUBMIT": "Crea",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Nome",
- "DESCRIPTION": "Descrizione",
"ACTIVE": "Attiva",
- "CREATED_ON": "Creata il"
+ "CREATED_ON": "Creata il",
+ "ACTIONS": "Azioni"
},
"404": "Nessuna regola di automazione trovata"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Aggiungi una Nota Privata",
"CHANGE_PRIORITY": "Modifica Priorità",
"ADD_SLA": "Aggiungi SLA",
- "OPEN_CONVERSATION": "Riapri conversazione"
+ "OPEN_CONVERSATION": "Riapri conversazione",
+ "PENDING_CONVERSATION": "Segna conversazione come in sospeso"
},
"MESSAGE_TYPES": {
"INCOMING": "Messaggio in Arrivo",
diff --git a/app/javascript/dashboard/i18n/locale/it/bulkActions.json b/app/javascript/dashboard/i18n/locale/it/bulkActions.json
index 55431f7f2..fe3c2b4d9 100644
--- a/app/javascript/dashboard/i18n/locale/it/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/it/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Stato della conversazione aggiornato correttamente.",
"UPDATE_FAILED": "Impossibile aggiornare le conversazioni. Riprova."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Impossibile risolvere le conversazioni a causa di attributi richiesti mancanti",
+ "PARTIAL_SUCCESS": "Alcune conversazioni necessitano di attributi richiesti per essere risolte, perciò sono state saltate"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assegna etichette",
"NO_LABELS_FOUND": "Nessuna etichetta trovata",
diff --git a/app/javascript/dashboard/i18n/locale/it/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/it/cannedMgmt.json
index 69273f65b..3927203d9 100644
--- a/app/javascript/dashboard/i18n/locale/it/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/it/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Risposte Predefinite",
"LEARN_MORE": "Scopri di più sulle risposte predefinite",
"DESCRIPTION": "Le Risposte Predefinite sono modelli di risposte preparate che ti aiutano a rispondere rapidamente alle conversazioni. Gli operatori possono digitare il carattere '/' seguito dallo shortcode per inserire una risposta predefinita durante una conversazione. ",
+ "COUNT": "{n} risposta predefinita | {n} risposte predefinite",
"HEADER_BTN_TXT": "Aggiungi risposta predefinita",
"LOADING": "Caricamento risposte predefinite...",
+ "SEARCH_PLACEHOLDER": "Cerca Risposte Predefinite...",
+ "NO_RESULTS": "Nessuna Risposta Predefinita trovata corrispondente alla tua ricerca",
"SEARCH_404": "Non ci sono elementi che corrispondono a questa richiesta.",
"LIST": {
"404": "Non ci sono risposte predefinite disponibili in questo account.",
diff --git a/app/javascript/dashboard/i18n/locale/it/chatlist.json b/app/javascript/dashboard/i18n/locale/it/chatlist.json
index 0e0c7f597..5d96f5bec 100644
--- a/app/javascript/dashboard/i18n/locale/it/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/it/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "In attesa di risposta: prima meno tempo in attesa"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priorità: prima le più importanti, Data creazione: prima le più vecchie"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/it/companies.json b/app/javascript/dashboard/i18n/locale/it/companies.json
index 96c4d3823..bb80dd9c7 100644
--- a/app/javascript/dashboard/i18n/locale/it/companies.json
+++ b/app/javascript/dashboard/i18n/locale/it/companies.json
@@ -7,7 +7,7 @@
"NAME": "Nome",
"DOMAIN": "Dominio",
"CREATED_AT": "Creata alle",
- "CONTACTS_COUNT": "Contacts count"
+ "CONTACTS_COUNT": "Numero contatti"
}
},
"ORDER": {
diff --git a/app/javascript/dashboard/i18n/locale/it/contact.json b/app/javascript/dashboard/i18n/locale/it/contact.json
index 710a694cf..892de6660 100644
--- a/app/javascript/dashboard/i18n/locale/it/contact.json
+++ b/app/javascript/dashboard/i18n/locale/it/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Aggiungi Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Aggiungi Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Aggiungi TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Nessun contatto corrisponde alla tua ricerca 🔍",
"LIST_EMPTY_STATE_TITLE": "Nessun contatto disponibile in questa vista 📋",
"ACTIVE_EMPTY_STATE_TITLE": "Nessun contatto attivo al momento 🌙"
- }
+ },
+ "LOAD_MORE": "Carica altro"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assegna Etichette",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "Non ci sono inbox disponibili per avviare una conversazione con questo contatto.",
"CONTACT_SELECTOR": {
"LABEL": "A:",
- "TAG_INPUT_PLACEHOLDER": "Cerca un contatto tramite nome, email o numero di telefono",
+ "TAG_INPUT_PLACEHOLDER": "Inserisci almeno 2 caratteri per cercare per nome, email o numero di telefono",
"CONTACT_CREATING": "Creazione contatto..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Oggetto :",
"SUBJECT_PLACEHOLDER": "Inserisci qui l'oggetto email",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Cerca un contatto con il suo indirizzo email",
+ "CC_PLACEHOLDER": "Inserisci almeno 2 caratteri per cercare via email",
"BCC_LABEL": "Ccn:",
- "BCC_PLACEHOLDER": "Cerca un contatto con il suo indirizzo email",
+ "BCC_PLACEHOLDER": "Inserisci almeno 2 caratteri per cercare via email",
"BCC_BUTTON": "Ccn"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/it/conversation.json b/app/javascript/dashboard/i18n/locale/it/conversation.json
index fdc691c0e..2d881b17d 100644
--- a/app/javascript/dashboard/i18n/locale/it/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/it/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "Questo messaggio non è supportato. Puoi visualizzare questo messaggio sull'app Facebook / Instagram.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Questo messaggio non è supportato. Puoi visualizzare questo messaggio sull'app Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Questo messaggio non è supportato. Puoi visualizzare questo messaggio sull'app Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "Questo messaggio non è supportato. Puoi visualizzare questo messaggio sull'app TikTok.",
"SUCCESS_DELETE_MESSAGE": "Messaggio eliminato con successo",
"FAIL_DELETE_MESSSAGE": "Impossibile eliminare il messaggio! Riprova",
"NO_RESPONSE": "Nessuna risposta",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assegnata etichetta #{labelName} alla conversazione id {conversationId}",
"FAILED": "Impossibile assegnare l'etichetta. Per favore riprova."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Rimossa etichetta #{labelName} dalla conversazione id {conversationId}",
+ "FAILED": "Impossibile rimuovere l'etichetta. Riprova."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assegnato il team \"{team}\" alla conversazione id {conversationId}",
"FAILED": "Impossibile assegnare il team. Riprova."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disabilita firma",
"MSG_INPUT": "Premi MAIUSC + INVIO per andare a capo. Digita '/' per inserire una Risposta Predefinita.",
"PRIVATE_MSG_INPUT": "Premi MAIUSC + INVIO per andare a capo. Sarà visibile solo agli Operatori",
+ "MESSAGING_RESTRICTED": "Non è possibile rispondere a questa conversazione",
+ "MESSAGING_RESTRICTED_WHATSAPP": "Puoi rispondere solamente con un messaggio modello: la finestra di 24 ore di WhatsApp è scaduta",
+ "MESSAGING_RESTRICTED_API": "Puoi rispondere solamente con un messaggio modello: la finestra di messaggistica è scaduta",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "La firma del messaggio non è configurata, configurala nelle impostazioni del profilo.",
+ "COPILOT_MSG_INPUT": "Dai ulteriori istruzioni a Copilot o fai un’altra richiesta. Premi Invio per inviare il messaggio successivo",
"CLICK_HERE": "Clicca qui per aggiornare",
"WHATSAPP_TEMPLATES": "Modelli Whatsapp"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Trascina qui per allegare",
"START_AUDIO_RECORDING": "Avvia registrazione audio",
"STOP_AUDIO_RECORDING": "Interrompi registrazione audio",
- "": "",
+ "COPILOT_THINKING": "Copilot sta pensando",
"EMAIL_HEAD": {
"TO": "A",
"ADD_BCC": "Aggiungi Ccn",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversazione eliminata con successo",
"FAIL_DELETE_CONVERSATION": "Impossibile eliminare la conversazione! Riprova",
"FILE_SIZE_LIMIT": "Il file supera il limite di {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB per l'allegato",
+ "FILE_TYPE_NOT_SUPPORTED": "I file di tipo {fileName} non sono supportati in questa conversazione",
"MESSAGE_ERROR": "Impossibile inviare questo messaggio, riprova più tardi",
"SENT_BY": "Inviato da:",
"BOT": "Bot",
+ "NATIVE_APP": "App nativa",
+ "NATIVE_APP_ADVISORY": "Questo messaggio è stato inviato da un'app nativa. Rispondi da qui per mantenere la finestra del messaggio.",
"SEND_FAILED": "Impossibile inviare il messaggio! Riprova",
"TRY_AGAIN": "riprova",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Annulla",
"SEND_EMAIL_SUCCESS": "La trascrizione della chat è stata inviata con successo",
"SEND_EMAIL_ERROR": "Si è verificato un errore, riprova",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "La trascrizione email non è disponibile sul tuo piano attuale. Per favore aggiorna per utilizzare questa funzionalità.",
"FORM": {
"SEND_TO_CONTACT": "Invia la trascrizione al cliente",
"SEND_TO_AGENT": "Invia la trascrizione all'operatore assegnato",
diff --git a/app/javascript/dashboard/i18n/locale/it/customRole.json b/app/javascript/dashboard/i18n/locale/it/customRole.json
index 6e6203cf1..6c883f8ea 100644
--- a/app/javascript/dashboard/i18n/locale/it/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/it/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Ruoli Personalizzati",
"LEARN_MORE": "Scopri di più sui ruoli personalizzati",
"DESCRIPTION": "I ruoli personalizzati sono ruoli creati dal proprietario o amministratore dell'account. Questi ruoli possono essere assegnati agli operatori per definire i loro accessi e i loro permessi all'interno dell'account. I ruoli personalizzati possono essere creati con permessi e livelli di accesso specifici per soddisfare le esigenze dell'organizzazione.",
+ "COUNT": "{n} ruolo personalizzato | {n} ruoli personalizzati",
"HEADER_BTN_TXT": "Aggiungi ruolo personalizzato",
"LOADING": "Caricamento ruoli personalizzati...",
+ "SEARCH_PLACEHOLDER": "Cerca ruoli personalizzati...",
+ "NO_RESULTS": "Nessun ruolo personalizzato trovato corrispondente alla tua ricerca",
"SEARCH_404": "Non ci sono elementi che corrispondono a questa richiesta.",
"PAYWALL": {
"TITLE": "Aggiorna per creare ruoli personalizzati",
diff --git a/app/javascript/dashboard/i18n/locale/it/datePicker.json b/app/javascript/dashboard/i18n/locale/it/datePicker.json
index de8850b70..7af7f7a7d 100644
--- a/app/javascript/dashboard/i18n/locale/it/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/it/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Periodo precedente",
+ "NEXT_PERIOD": "Periodo successivo",
+ "WEEK_NUMBER": "Settimana #{weekNumber}",
"APPLY_BUTTON": "Applica",
"CLEAR_BUTTON": "Rimuovi",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Ultimi 3 mesi",
"LAST_6_MONTHS": "Ultimi 6 mesi",
"LAST_YEAR": "Ultimo anno",
+ "THIS_WEEK": "Questa settimana",
+ "MONTH_TO_DATE": "Questo mese",
"CUSTOM_RANGE": "Intervallo di date personalizzato"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/general.json b/app/javascript/dashboard/i18n/locale/it/general.json
index 00f724b7b..e052fef78 100644
--- a/app/javascript/dashboard/i18n/locale/it/general.json
+++ b/app/javascript/dashboard/i18n/locale/it/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Chiudi",
"BETA": "Beta",
- "BETA_DESCRIPTION": "Questa funzione è in beta e può subire variazioni mentre la miglioriamo."
+ "BETA_DESCRIPTION": "Questa funzione è in beta e può subire variazioni mentre la miglioriamo.",
+ "ACCEPT": "Accetta",
+ "DISCARD": "Annulla",
+ "PREFERRED": "Preferito"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Sì",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/generalSettings.json b/app/javascript/dashboard/i18n/locale/it/generalSettings.json
index 1b84b3b3c..5b12db78b 100644
--- a/app/javascript/dashboard/i18n/locale/it/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/it/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Cerca o vai a",
+ "SNOOZE_PLACEHOLDER": "Digita un momento, ad esempio domani, tra 2 ore, venerdì prossimo, il 15 gennaio, ecc...",
"SECTIONS": {
"GENERAL": "Generale",
"REPORTS": "Report",
diff --git a/app/javascript/dashboard/i18n/locale/it/helpCenter.json b/app/javascript/dashboard/i18n/locale/it/helpCenter.json
index 920199cca..78add9aaa 100644
--- a/app/javascript/dashboard/i18n/locale/it/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/it/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Errore durante l'eliminazione dell'articolo"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Impossibile riordinare gli articoli. Riprova."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Impossibile riordinare le categorie. Riprova."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Si prega di aggiungere l'intestazione e il contenuto dell'articolo quindi solo è possibile aggiornare le impostazioni"
},
diff --git a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json
index 0963fd3f3..595e10a7f 100644
--- a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inbox",
"DESCRIPTION": "Un canale è il mezzo di comunicazione che il cliente usa per interagire con te. Una Inbox è lo spazio in cui gestisci le interazioni di uno specifico canale. Può includere comunicazioni provenienti da diverse fonti, come email, live chat e social media.",
"LEARN_MORE": "Scopri di più sulle Inbox",
+ "COUNT": "{n} inbox | {n} inbox",
+ "SEARCH_PLACEHOLDER": "Ricerca Inbox...",
+ "NO_RESULTS": "Nessuna inbox trovata corrispondente alla tua ricerca",
"RECONNECTION_REQUIRED": "La tua Inbox è disconnessa. Non riceverai nuovi messaggi finché non la autorizzerai nuovamente.",
"CLICK_TO_RECONNECT": "Clicca qui per riconnetterti.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "La registrazione di WhatsApp Business non è completa. Si prega di controllare lo stato del nome visualizzato in Meta Business Manager prima di riconnettersi.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Utilizza solo il nome dell'azienda come nome mittente nell'intestazione dell'email."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configura il tuo nome azienda",
+ "BUTTON_TEXT": "Configura il tuo nome azienda",
"PLACEHOLDER": "Inserisci il nome della tua azienda",
"SAVE_BUTTON_TEXT": "Salva"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabilitato"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Abilitato",
- "DISABLED": "Disabilitato"
+ "ENABLED": "Riapri la stessa conversazione",
+ "DISABLED": "Crea una nuova conversazione",
+ "ENABLED_DESCRIPTION": "Quando un contatto invia un nuovo messaggio, la conversazione precedente viene riaperta.",
+ "DISABLED_DESCRIPTION": "Viene creata una nuova conversazione ogni volta dopo la risoluzione della precedente."
},
"ENABLE_HMAC": {
"LABEL": "Abilita"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Preferenze Canali",
+ "WIDGET_FEATURES": "Funzionalità Widget",
"ACCOUNT_HEALTH": {
"TITLE": "Gestisci il tuo account WhatsApp",
"DESCRIPTION": "Controlla lo stato del tuo account WhatsApp, i limiti di messaggi e la qualità. Aggiorna le impostazioni o risolvi i problemi se necessario",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Abilita/Disabilita la visualizzazione del nome dell'Operatore nelle email. Se disabilitato, verrà mostrato il nome dell'azienda",
"ENABLE_CONTINUITY_VIA_EMAIL": "Abilita la continuità della conversazione via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Le conversazioni continueranno via email se l'indirizzo email del contatto è disponibile.",
- "LOCK_TO_SINGLE_CONVERSATION": "Limita ad una conversazione unica",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Abilita o disabilita conversazioni multiple per lo stesso contatto in questa Inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Routing Conversazioni",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Gestisci come vengono create le conversazioni per i contatti esistenti",
"INBOX_UPDATE_TITLE": "Impostazioni Inbox",
"INBOX_UPDATE_SUB_TEXT": "Aggiorna le impostazioni inbox",
"AUTO_ASSIGNMENT_SUB_TEXT": "Abilita o disabilita l'assegnazione automatica di nuove conversazioni agli agenti aggiunti a questa casella.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Seleziona Help Center",
"SELECT_PLACEHOLDER": "Seleziona Help Center",
+ "NONE": "Nessuno",
"REMOVE": "Rimuovi Help Center",
"SUB_TEXT": "Allega un Help Center con la Inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Inserisci un valore maggiore di 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limita il numero massimo di conversazioni da questa casella di posta che possono essere assegnate automaticamente ad un agente"
},
+ "ASSIGNMENT": {
+ "TITLE": "Assegnazione Conversazione",
+ "DESCRIPTION": "Assegna automaticamente le conversazioni in entrata agli operatori disponibili in base ai criteri di assegnazione",
+ "ENABLE_AUTO_ASSIGNMENT": "Abilita assegnazione automatica delle conversazioni",
+ "DEFAULT_RULES_TITLE": "Regole di assegnazione predefinite",
+ "DEFAULT_RULES_DESCRIPTION": "Usa il comportamento di assegnazione predefinito per tutte le conversazioni",
+ "DEFAULT_RULE_1": "Prima le conversazioni create per prime",
+ "DEFAULT_RULE_2": "Distribuzione round robin",
+ "CUSTOMIZE_WITH_POLICY": "Personalizza con policy di assegnazione",
+ "USING_POLICY": "Policy di assegnazione personalizzata in uso per questa inbox",
+ "CUSTOMIZE_POLICY": "Personalizza con policy di assegnazione",
+ "DELETE_POLICY": "Elimina policy",
+ "POLICY_LABEL": "Policy di assegnazione",
+ "ASSIGNMENT_ORDER_LABEL": "Ordine di assegnazione",
+ "ASSIGNMENT_METHOD_LABEL": "Metodo di assegnazione",
+ "POLICY_STATUS": {
+ "ACTIVE": "Attiva",
+ "INACTIVE": "Inattive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Creata prima",
+ "LONGEST_WAITING": "Attesa più lunga"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Assegnazione bilanciata"
+ },
+ "UPGRADE_PROMPT": "Le policy di assegnazione personalizzate sono disponibili nel piano Business",
+ "UPGRADE_TO_BUSINESS": "Aggiorna a Business",
+ "DEFAULT_POLICY_LINKED": "Policy predefinita collegata",
+ "DEFAULT_POLICY_DESCRIPTION": "Collega una policy di assegnazione personalizzata per impostare come le conversazioni devono essere assegnate agli operatori in questa inbox.",
+ "LINK_EXISTING_POLICY": "Collega policy esistente",
+ "CREATE_NEW_POLICY": "Crea nuova policy",
+ "NO_POLICIES": "Nessuna policy di assegnazione trovata",
+ "VIEW_ALL_POLICIES": "Mostra tutte le policy",
+ "CURRENT_BEHAVIOR": "Stai utilizzando le regole di assegnazione predefinite:",
+ "LINK_SUCCESS": "Policy di assegnazione collegata correttamente",
+ "LINK_ERROR": "Impossibile collegare la policy di assegnazione"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Eliminare la policy di assegnazione?",
+ "DELETE_CONFIRM_MESSAGE": "Vuoi davvero rimuovere questa policy di assegnazione da questa inbox? La inbox tornerà alle regole di assegnazione predefinite.",
+ "CANCEL": "Annulla",
+ "CONFIRM_DELETE": "Elimina",
+ "DELETE_SUCCESS": "Policy di assegnazione rimossa correttamente",
+ "DELETE_ERROR": "Impossibile rimuovere la policy di assegnazione"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Riautorizza",
"SUBTITLE": "La tua connessione a Facebook è scaduta, ricollegati alla tua pagina Facebook per continuare i servizi",
@@ -837,6 +902,20 @@
"CONFIRM": "Crea nuovo modello",
"CANCEL": "Torna indietro"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Verifica idoneità Utility",
+ "HELPER_NOTE": "Verifica questo messaggio prima di inviare la richiesta per aumentare le probabilità che venga classificato come Utility.\nIl sistema crea un template CSAT dedicato con pulsanti per la raccolta feedback e lo invia come Utility; Meta potrebbe comunque riclassificarlo come Marketing in base al contenuto.",
+ "RESULT_LABEL": "Previsione categoria Meta",
+ "GUIDANCE_NOTE": "Si tratta di una verifica orientativa, non di una garanzia di approvazione da parte di Meta.",
+ "SUGGESTION_LABEL": "Suggerisci riscrittura conforme a Utility",
+ "APPLY": "Usa questa versione",
+ "ERROR_MESSAGE": "Impossibile analizzare il messaggio. Riprova.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Probabile Utility",
+ "LIKELY_MARKETING": "Probabile Marketing",
+ "UNCLEAR": "Classificazione incerta"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Regola sondaggio",
"DESCRIPTION_PREFIX": "Invia il sondaggio se la conversazione",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "seleziona etichette"
},
"NOTE": "Nota: I sondaggi CSAT vengono inviati solo una volta per conversazione",
- "WHATSAPP_NOTE": "Nota: Creeremo un modello e lo invieremo a WhatsApp per l'approvazione. Dopo essere stati approvati, i sondaggi saranno inviati solo una volta per conversazione, in base alle regole dei sondaggi.",
+ "WHATSAPP_NOTE": "Nota: al salvataggio, il sistema crea un template CSAT dedicato in WhatsApp (utilizzato per raccogliere valutazioni e feedback nei report) e lo invia come Utility per l’approvazione. Meta potrebbe comunque classificarlo come Marketing in base al contenuto. Dopo l’approvazione, il sondaggio viene inviato una sola volta per conversazione, secondo la regola impostata.",
"API": {
"SUCCESS_MESSAGE": "Impostazioni CSAT aggiornate correttamente",
"ERROR_MESSAGE": "Impossibile aggiornare le impostazioni CSAT. Riprova più tardi."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Messaggio non disponibile per i visitatori",
"TOGGLE_HELP": "Abilitare la disponibilità aziendale mostrerà le ore disponibili sul widget live chat anche se tutti gli operatori sono offline. Al di fuori delle ore di disponibilità gli utenti possono essere avvisati con un messaggio ed un modulo pre-chat.",
"DAY": {
+ "DAY": "Giorno",
+ "AVAILABILITY": "Disponibilità",
+ "HOURS": "Ore",
"ENABLE": "Abilita disponibilità per questo giorno",
"UNAVAILABLE": "Non disponibile",
- "HOURS": "ore",
"VALIDATION_ERROR": "L'orario di inizio deve essere prima dell'orario di chiusura.",
"CHOOSE": "Scegli"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In un giorno"
},
"WIDGET_COLOR_LABEL": "Colore del widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Posizione della bubble del widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "Tipo di bubble del widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Posizione:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tipo:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chatta con noi",
- "LABEL": "Titolo del launcher della bubble del widget",
+ "LABEL": "Titolo del Launcher",
"PLACE_HOLDER": "Chatta con noi"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Predefinito",
- "CHAT": "Chat"
+ "CHAT": "Modalità Chat"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "In genere risponde in pochi minuti",
diff --git a/app/javascript/dashboard/i18n/locale/it/integrationApps.json b/app/javascript/dashboard/i18n/locale/it/integrationApps.json
index 0c7592443..ad210082c 100644
--- a/app/javascript/dashboard/i18n/locale/it/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/it/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Caricamento Integrazioni",
"NO_HOOK_CONFIGURED": "Non ci sono integrazioni {integrationId} configurate in questo account.",
"HEADER": "Applicazioni",
+ "COUNT": "{n} integrazione | {n} integrazioni",
+ "SEARCH_PLACEHOLDER": "Cerca...",
+ "NO_RESULTS": "Nessun risultato trovato corrispondente alla tua ricerca",
"STATUS": {
"ENABLED": "Abilitato",
"DISABLED": "Disabilitato"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Caricamento hook integrazioni",
"INBOX": "Inbox",
+ "ACTIONS": "Azioni",
"DELETE": {
"BUTTON_TEXT": "Elimina"
}
diff --git a/app/javascript/dashboard/i18n/locale/it/integrations.json b/app/javascript/dashboard/i18n/locale/it/integrations.json
index c93f6905e..c39f064fa 100644
--- a/app/javascript/dashboard/i18n/locale/it/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/it/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Elimina Integrazione Shopify",
"MESSAGE": "Sei sicuro di voler eliminare l'integrazione Shopify?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot si integra con più strumenti e servizi per migliorare l'efficienza del tuo team. Esplora l'elenco qui sotto per configurare le tue app preferite.",
"LEARN_MORE": "Scopri di più sulle integrazioni",
"LOADING": "Caricamento integrazioni",
+ "SEARCH_PLACEHOLDER": "Cerca integrazioni...",
+ "NO_RESULTS": "Nessuna integrazione trovata corrispondente alla tua ricerca",
"CAPTAIN": {
"DISABLED": "Captain non è abilitato sul tuo account.",
"CLICK_HERE_TO_CONFIGURE": "Clicca qui per configurare",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Eventi Sottoscritti",
"LEARN_MORE": "Scopri di più sui webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copia secret negli appunti",
+ "COPY_SUCCESS": "Secret copiato negli appunti",
+ "TOGGLE": "Cambia visibilità secret",
+ "CREATED_DESC": "Il tuo webhook è stato creato. Usa il secret qui sotto per verificare le signature del webhook. Per favore copialo ora — lo puoi ritrovare più tardi nel modulo di modifica webhook.",
+ "DONE": "Fatto"
+ },
+ "COUNT": "{n} webhook | {n} webhook",
+ "SEARCH_PLACEHOLDER": "Cerca webhook...",
+ "NO_RESULTS": "Nessun webhook trovato corrispondente alla tua ricerca",
"FORM": {
"CANCEL": "Annulla",
"DESC": "Gli eventi Webhook ti forniscono le informazioni in tempo reale su ciò che sta accadendo nel tuo account Chatwoot. Per favore inserisci un URL valido per configurare un callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Elimina",
"DELETE_CONFIRMATION": {
"TITLE": "Elimina l'integrazione",
@@ -145,7 +160,29 @@
"EXPAND": "Espandi",
"MAKE_FRIENDLY": "Cambia il tono del messaggio in amichevole",
"MAKE_FORMAL": "Usa un tono formale",
- "SIMPLIFY": "Semplifica"
+ "SIMPLIFY": "Semplifica",
+ "CONFIDENT": "Usa un tono sicuro",
+ "PROFESSIONAL": "Usa un tono professionale",
+ "CASUAL": "Usa un tono informale",
+ "STRAIGHTFORWARD": "Usa un tono diretto"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Migliora la risposta",
+ "IMPROVE_REPLY_SELECTION": "Migliora il testo selezionato",
+ "CHANGE_TONE": {
+ "TITLE": "Cambia tono",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professionale",
+ "CASUAL": "Informale",
+ "STRAIGHTFORWARD": "Diretto",
+ "CONFIDENT": "Sicuro",
+ "FRIENDLY": "Amichevole"
+ }
+ },
+ "GRAMMAR": "Correggi grammatica e ortografia",
+ "SUGGESTION": "Suggerisci una risposta",
+ "SUMMARIZE": "Riassumi la conversazione",
+ "ASK_COPILOT": "Chiedi a Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Contenuti in bozza",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
App dashboard
Le app dashboard consentono alle organizzazioni di incorporare un'applicazione all'interno di Chatwoot per fornire informazioni aggiuntive agli operatorii. Questa funzione consente di creare un'applicazione in modo indipendente e incorporata all'interno della dashboard per fornire informazioni degli utenti, ad esempio ordini o pagamenti effettuati.
Quando integri la tua applicazione usando la dashboard Chatwoot, la tua applicazione avrà il context della conversazione e del contatto come evento window. Implementa un listener per l'evento del messaggio sulla tua pagina per ricevere i dati.
Per aggiungere una nuova app dashboard, clicca sul pulsante 'Aggiungi una nuova app dashboard'.
",
"DESCRIPTION": "Le app dashboard consentono alle organizzazioni di incorporare un'applicazione all'interno della dashboard per fornire dati aggiuntivi agli operatori. Questa funzione consente di creare un'applicazione in modo indipendente e incorporarla per fornire informazioni sull'utente, i suoi ordini o la loro cronologia di pagamento precedente.",
"LEARN_MORE": "Scopri di più sulle App Dashboard",
+ "COUNT": "{n} app dashboard | {n} app dashboard",
+ "SEARCH_PLACEHOLDER": "Cerca app dashboard...",
+ "NO_RESULTS": "Nessuna app dashboard trovata corrispondente alla tua ricerca",
"LIST": {
"404": "Non ci sono ancora app dashboard configurate su questo account",
"LOADING": "Caricamento app dashboard...",
"TABLE_HEADER": {
"NAME": "Nome",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Azioni"
},
"EDIT_TOOLTIP": "Modifica app",
"DELETE_TOOLTIP": "Elimina app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Crea/collega issue Linear",
"LOADING": "Caricamento issue Linear...",
"LOADING_ERROR": "Si è verificato un errore nel recupero delle issue Linear, si prega di riprovare",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Sei sicuro di voler eliminare l'integrazione di Notion?",
"MESSAGE": "L'eliminazione di questa integrazione rimuoverà l'accesso al tuo workspace Notion e interromperà tutte le funzionalità correlate.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "Puoi modificare o annullare il tuo piano in qualsiasi momento"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI è disponibile solo nei piani Enterprise.",
"UPGRADE_PROMPT": "Aggiorna il tuo piano per ottenere l'accesso ai nostri assistenti, copilot e altro ancora.",
"ASK_ADMIN": "Contatta il tuo amministratore per l'aggiornamento."
},
diff --git a/app/javascript/dashboard/i18n/locale/it/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/it/labelsMgmt.json
index 985b86f83..751ba027e 100644
--- a/app/javascript/dashboard/i18n/locale/it/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/it/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Recupero etichette",
"DESCRIPTION": "Le etichette aiutano a categorizzare e dare priorità alle conversazioni e ai lead. È possibile assegnare un'etichetta a una conversazione o a un contatto utilizzando il pannello laterale.",
"LEARN_MORE": "Maggiori informazioni sulle etichette",
+ "COUNT": "{n} etichetta | {n} etichette",
+ "SEARCH_PLACEHOLDER": "Cerca etichette...",
+ "NO_RESULTS": "Nessuna etichetta trovata corrispondente alla tua ricerca",
"SEARCH_404": "Non ci sono elementi che corrispondono a questa richiesta",
"LIST": {
"404": "Non ci sono etichette disponibili in questo account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Nome",
"DESCRIPTION": "Descrizione",
- "COLOR": "Colore"
+ "COLOR": "Colore",
+ "ACTION": "Azioni"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/it/macros.json b/app/javascript/dashboard/i18n/locale/it/macros.json
index 263042a2f..1a05380ad 100644
--- a/app/javascript/dashboard/i18n/locale/it/macros.json
+++ b/app/javascript/dashboard/i18n/locale/it/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macro",
"DESCRIPTION": "Una macro è un insieme di azioni salvate che aiutano gli operatori del servizio clienti a completare facilmente le attività. Gli operatori possono definire un insieme di azioni, come l'aggiunta di un'etichetta a una converazione, l'invio di una trascrizione e-mail, l'aggiornamento di un attributo personalizzato, ecc. e possono eseguire queste azioni in un solo clic.",
"LEARN_MORE": "Scopri di più sulle macro",
+ "COUNT": "{n} macro | {n} macro",
"HEADER_BTN_TXT": "Aggiungi una nuova macro",
"HEADER_BTN_TXT_SAVE": "Salva macro",
"LOADING": "Caricamento macro",
+ "SEARCH_PLACEHOLDER": "Cerca macro...",
+ "NO_RESULTS": "Nessuna macro trovata corrispondente alla tua ricerca",
"ERROR": "Qualcosa è andato storto. Riprova",
"ORDER_INFO": "Le macro verranno eseguite nell'ordine in cui aggiungi le azioni. Puoi riordinarle trascinandole con la maniglia accanto ad ogni nodo.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Nome",
"CREATED BY": "Creata da",
"LAST_UPDATED_BY": "Ultimo aggiornamento di",
- "VISIBILITY": "Visibilità"
+ "VISIBILITY": "Visibilità",
+ "ACTIONS": "Azioni"
},
"404": "Nessuna macro trovata"
},
diff --git a/app/javascript/dashboard/i18n/locale/it/mfa.json b/app/javascript/dashboard/i18n/locale/it/mfa.json
index 23d6846f7..8d705edf7 100644
--- a/app/javascript/dashboard/i18n/locale/it/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/it/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Autenticazione a Due Fattori",
- "SUBTITLE": "Proteggi il tuo account con autenticazione basata su TOTP",
+ "SUBTITLE": "Proteggi il tuo account da accessi non autorizzati con l'autenticazione TOTP. Questa aggiunge un ulteriore livello di sicurezza al tuo account.",
"DESCRIPTION": "Aggiungi un ulteriore livello di sicurezza al tuo account utilizzando una password monouso a tempo (TOTP)",
"STATUS_TITLE": "Stato dell'Autenticazione",
"STATUS_DESCRIPTION": "Gestisci le impostazioni di autenticazione a due fattori e i codici di recupero di backup",
diff --git a/app/javascript/dashboard/i18n/locale/it/report.json b/app/javascript/dashboard/i18n/locale/it/report.json
index 13694e2af..f00e65df8 100644
--- a/app/javascript/dashboard/i18n/locale/it/report.json
+++ b/app/javascript/dashboard/i18n/locale/it/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversazioni",
"LOADING_CHART": "Caricamento dati grafici...",
"NO_ENOUGH_DATA": "Non ci sono abbastanza dati per generare il report, riprova più tardi.",
- "DOWNLOAD_AGENT_REPORTS": "Scarica report operatori",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Scarica report conversazioni",
"DATA_FETCHING_FAILED": "Impossibile recuperare i dati, riprova più tardi.",
"SUMMARY_FETCHING_FAILED": "Impossibile recuperare il riepilogo, riprova più tardi.",
"METRICS": {
@@ -133,6 +133,11 @@
"NO_ENOUGH_DATA": "Non ci sono abbastanza dati per generare il report, riprova più tardi.",
"DOWNLOAD_AGENT_REPORTS": "Scarica report operatori",
"FILTER_DROPDOWN_LABEL": "Seleziona Operatore",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Cerca operatori"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversazioni",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Non ci sono abbastanza dati per generare il report, riprova più tardi.",
"DOWNLOAD_LABEL_REPORTS": "Scarica report etichette",
"FILTER_DROPDOWN_LABEL": "Seleziona etichetta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Cerca etichette"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversazioni",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Seleziona Inbox",
"ALL_INBOXES": "Tutte le Inbox",
"SEARCH_INBOX": "Ricerca Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Ricerca Inbox"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversazioni",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Panoramica Team",
- "DESCRIPTION": "Ottieni un'istantanea delle prestazioni del tuo team con metriche essenziali, tra cui conversazioni, tempi di risposta, tempi di risoluzione e casi risolti. Fare clic su un nome del team per maggiori dettagli.",
+ "DESCRIPTION": "Ottieni un'istantanea delle performance dei tuo team con metriche essenziali, tra cui conversazioni, tempi di risposta, tempi di risoluzione e casi risolti. Fai clic su un team per maggiori dettagli.",
"LOADING_CHART": "Caricamento dati grafici...",
"NO_ENOUGH_DATA": "Non ci sono abbastanza dati per generare il report, riprova più tardi.",
"DOWNLOAD_TEAM_REPORTS": "Scarica report del team",
"FILTER_DROPDOWN_LABEL": "Seleziona Team",
+ "FILTERS": {
+ "ADD_FILTER": "Aggiungi filtro",
+ "CLEAR_ALL": "Rimuovi tutto",
+ "NO_FILTER": "Nessun filtro disponibile",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Cerca team"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversazioni",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Report CSAT",
- "NO_RECORDS": "Non ci sono risposte ai sondaggi CSAT disponibili.",
+ "NO_RECORDS": "Ancora nessuna risposta",
+ "NO_RECORDS_DESCRIPTION": "Le risposte dei sondaggi CSAT appariranno qui appena i clienti inizieranno a fornire feedback.",
"DOWNLOAD": "Scarica report CSAT",
"DOWNLOAD_FAILED": "Download dei report CSAT non riuscito",
"FILTERS": {
+ "ADD_FILTER": "Aggiungi filtro",
+ "CLEAR_ALL": "Rimuovi tutto",
+ "NO_FILTER": "Nessun filtro disponibile",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Cerca operatori",
+ "INBOXES": "Ricerca Inbox",
+ "TEAMS": "Cerca team",
+ "RATINGS": "Cerca valutazioni"
+ },
"AGENTS": {
- "PLACEHOLDER": "Scegli Operatori"
+ "LABEL": "Operatore"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Valutazione"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contatto",
- "AGENT_NAME": "Operatore assegnato",
+ "AGENT_NAME": "Operatore",
"RATING": "Valutazione",
- "FEEDBACK_TEXT": "Commento del feedback"
- }
+ "FEEDBACK_TEXT": "Commento del feedback",
+ "CONVERSATION": "Conversazione",
+ "CUSTOMER": "Cliente",
+ "RESPONSE": "Risposta",
+ "HANDLED_BY": "Gestito da"
+ },
+ "UNKNOWN_CUSTOMER": "Cliente sconosciuto"
},
+ "NO_AGENT": "Nessun operatore assegnato",
+ "NO_FEEDBACK": "Nessun feedback fornito",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Risposte totali",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Tasso di risposta",
"TOOLTIP": "Numero totale di risposte / Numero totale di messaggi di sondaggio CSAT inviati * 100"
+ },
+ "RATING_DISTRIBUTION": "Distribuzione del rating"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Note revisione",
+ "PLACEHOLDER": "Aggiungi note revisione su questa valutazione...",
+ "SAVE": "Salva",
+ "CANCEL": "Annulla",
+ "SAVING": "Salvataggio...",
+ "SAVED": "Note salvate correttamente",
+ "SAVE_ERROR": "Impossibile salvare le note",
+ "UPDATED_BY": "Aggiornato da {name} {time}",
+ "UPDATED_BY_LABEL": "Aggiornato da",
+ "PAYWALL": {
+ "TITLE": "Aggiorna per aggiungere note revisione",
+ "AVAILABLE_ON": "La funzionalità note revisione è disponibile solo nei piani Business e Enterprise.",
+ "UPGRADE_PROMPT": "Aggiungi note di revisione interne a ogni risposta CSAT. Comprendi meglio cosa è successo davvero, individua i pattern più rapidamente e prendi decisioni migliori a partire dal feedback.",
+ "UPGRADE_NOW": "Aggiorna ora",
+ "CANCEL_ANYTIME": "Puoi modificare o annullare il tuo piano in qualsiasi momento"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/it/settings.json b/app/javascript/dashboard/i18n/locale/it/settings.json
index e57739197..b4abc7708 100644
--- a/app/javascript/dashboard/i18n/locale/it/settings.json
+++ b/app/javascript/dashboard/i18n/locale/it/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Scarica",
"UPLOADING": "Caricamento...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Questa storia non è più disponibile."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Questa storia non è più disponibile.",
+ "INSTAGRAM_STORY_REPLY": "Ha risposto alla tua storia:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Vedi sulla mappa"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Imposta automaticamente offline quando non stai usando l'app."
},
"DOCS": "Leggi i documenti",
- "SECURITY": "Sicurezza"
+ "SECURITY": "Sicurezza",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Workflow Conversazione"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Impostazioni Captain",
+ "DESCRIPTION": "Configura i tuoi modelli AI e le funzionalità di Captain. La fatturazione di Captain si basa sui crediti, che ti verranno scalati per ogni azione di Captain in base al modello selezionato.",
+ "LOADING": "Caricamento configurazione Captain...",
+ "LINK_TEXT": "Scopri di più sui Crediti Captain",
+ "NOT_ENABLED": "Captain non è abilitato per il tuo account. Aggiorna il tuo piano per accedere alle funzionalità Captain.",
+ "MODEL_CONFIG": {
+ "TITLE": "Configurazione Modello",
+ "DESCRIPTION": "Seleziona modelli AI per le varie funzionalità.",
+ "SELECT_MODEL": "Seleziona modello",
+ "CREDITS_PER_MESSAGE": "{credits} crediti/messaggio",
+ "COMING_SOON": "In arrivo",
+ "EDITOR": {
+ "TITLE": "Funzionalità Editor",
+ "DESCRIPTION": "Permette smart compose, correzioni grammaticali, gestione del tono di voce e miglioramento del contenuto nell'editor dei messaggi."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistente",
+ "DESCRIPTION": "Gestisce risposte automatizzate, riassunti delle conversazioni e suggerimenti di risposta intelligenti per le interazioni con i clienti."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Fornisce suggerimenti contestuali in tempo reale, consigli sulla knowledge base e insight proattivi durante le conversazioni."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funzionalità",
+ "DESCRIPTION": "Abilita o disabilita le funzionalità AI.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Trascrizione Audio",
+ "DESCRIPTION": "Converte automaticamente i messaggi vocali e le registrazioni delle chiamate in trascrizioni di testo ricercabili."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Indicizzazione Ricerca Help Center",
+ "DESCRIPTION": "Usa l'AI per effettuare una ricerca contestualizzata tra gli articoli dell'help center."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Suggerimento Etichette",
+ "DESCRIPTION": "Suggerisce automaticamente etichette e tag rilevanti per le conversazioni in base all'analisi e al contesto dei contenuti.",
+ "MODEL_TITLE": "Modello Di Suggerimento Etichette",
+ "MODEL_DESCRIPTION": "Seleziona il modello AI da utilizzare per analizzare le conversazioni e suggerire etichette appropriate"
+ }
+ },
+ "API": {
+ "SUCCESS": "Impostazioni Captain aggiornate con successo.",
+ "ERROR": "Impossibile aggiornare le impostazioni Captain. Per favore riprova."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Fatturazione",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Workflow Conversazione",
+ "DESCRIPTION": "Configura regole e campi obbligatori per la risoluzione delle conversazioni."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributi richiesti per la risoluzione",
+ "DESCRIPTION": "Quando si risolve una conversazione, agli operatori verrà chiesto di compilare questi attributi se non sono ancora stati compilati.",
+ "NO_ATTRIBUTES": "Nessun attributo aggiunto",
+ "ADD": {
+ "TITLE": "Aggiungi Attributi",
+ "SEARCH_PLACEHOLDER": "Cerca attributi"
+ },
+ "SAVE": {
+ "SUCCESS": "Attributi richiesti aggiornati",
+ "ERROR": "Impossibile aggiornare gli attributi richiesti, riprova"
+ },
+ "MODAL": {
+ "TITLE": "Risolvi la conversazione",
+ "DESCRIPTION": "Inserisci i seguenti attributi personalizzati prima di risolvere questa conversazione",
+ "ACTIONS": {
+ "RESOLVE": "Risolvi la conversazione",
+ "CANCEL": "Annulla"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Scrivi una nota...",
+ "NUMBER": "Inserisci un numero",
+ "LINK": "Aggiungi un link",
+ "DATE": "Scegli una data",
+ "LIST": "Seleziona un'opzione"
+ },
+ "CHECKBOX": {
+ "YES": "Sì",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Aggiorna per utilizzare gli attributi richiesti",
+ "AVAILABLE_ON": "La funzionalità Attributi di Conversazione Richiesti è disponibile solo nei piani Business e Enterprise.",
+ "UPGRADE_PROMPT": "Aggiorna il tuo piano per chiedere agli operatori di compilare gli attributi richiesti prima della risoluzione della conversazione.",
+ "UPGRADE_NOW": "Aggiorna ora",
+ "CANCEL_ANYTIME": "Puoi modificare o annullare il tuo piano in qualsiasi momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "La funzionalità Attributi di Conversazione Richiesti è disponibile solo nei piani a pagamento.",
+ "UPGRADE_PROMPT": "Passa a un piano a pagamento per imporre gli attributi richiesti prima della risoluzione della conversazione.",
+ "ASK_ADMIN": "Contatta il tuo amministratore per l'aggiornamento."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! Non abbiamo trovato alcun account Chatwoot. Si prega di creare un nuovo account per continuare.",
"NEW_ACCOUNT": "Nuovo account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Crea policy",
"API": {
"SUCCESS_MESSAGE": "Policy di assegnazione creata con successo",
- "ERROR_MESSAGE": "Impossibile creare la policy di assegnazione"
+ "ERROR_MESSAGE": "Impossibile creare la policy di assegnazione",
+ "INBOX_LINKED": "La inbox è stata collegata alla policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continua",
"CANCEL_BUTTON_LABEL": "Annulla"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Collega inbox alla policy",
+ "DESCRIPTION": "Vuoi collegare questa inbox alla policy di assegnazione?",
+ "LINK_BUTTON": "Collega inbox",
+ "CANCEL_BUTTON": "Salta"
+ },
"API": {
"SUCCESS_MESSAGE": "Policy di assegnazione aggiornata con successo",
"ERROR_MESSAGE": "Aggiornamento della policy di assegnazione non riuscito"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Bilanciato",
- "DESCRIPTION": "Assegna le conversazioni in base alla capacità disponibile."
+ "DESCRIPTION": "Assegna le conversazioni in base alla capacità disponibile.",
+ "PREMIUM_MESSAGE": "Fai l’upgrade per accedere all’assegnazione bilanciata e alla gestione della capacità degli operatori.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Operatore rimosso correttamente dalla policy",
"ERROR_MESSAGE": "Impossibile rimuovere l’operatore dalla policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Limite inbox aggiunto con successo",
+ "ERROR_MESSAGE": "Impossibile aggiungere il limite inbox"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Limite inbox aggiornato con successo",
+ "ERROR_MESSAGE": "Impossibile aggiornare il limite inbox"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Limite inbox eliminato con successo",
+ "ERROR_MESSAGE": "Impossibile eliminare il limite inbox"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/it/signup.json b/app/javascript/dashboard/i18n/locale/it/signup.json
index ab825e53c..86c8fdf2f 100644
--- a/app/javascript/dashboard/i18n/locale/it/signup.json
+++ b/app/javascript/dashboard/i18n/locale/it/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Crea un account",
+ "GET_STARTED": "Inizia con Chatwoot",
"TITLE": "Registrati",
"TESTIMONIAL_HEADER": "Basta uno step per proseguire",
"TESTIMONIAL_CONTENT": "Sei a un passo dal coinvolgere i tuoi clienti, fidelizzarli e trovarne di nuovi.",
diff --git a/app/javascript/dashboard/i18n/locale/it/sla.json b/app/javascript/dashboard/i18n/locale/it/sla.json
index 9be1f9102..478179c60 100644
--- a/app/javascript/dashboard/i18n/locale/it/sla.json
+++ b/app/javascript/dashboard/i18n/locale/it/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Crea una nuova policy SLA",
"DESCRIPTION": "I Service Level Agreement (SLA) sono contratti che definiscono chiare aspettative tra il team e i clienti. Stabiliscono norme per i tempi di risposta e di risoluzione, creando un quadro per la responsabilità e garantendo un'esperienza coerente e di alta qualità.",
"LEARN_MORE": "Scopri di più su SLA",
+ "COUNT": "{n} SLA | {n} SLA",
"LOADING": "Caricamento SLA",
+ "SEARCH_PLACEHOLDER": "Cerca SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "Nessun SLA trovato corrispondente alla tua ricerca"
+ },
"PAYWALL": {
"TITLE": "Aggiorna per creare SLA",
"AVAILABLE_ON": "La funzionalità SLA è disponibile solo nei piani Business e Enterprise.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "Non ci sono SLA disponibili in questo account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Orario di lavoro"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Problemi sollevati dai clienti enterprise, che richiedono un'attenzione immediata.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Problemi sollevati dai clienti enterprise, che devono essere riconosciuti rapidamente."
},
- "BUSINESS_HOURS_ON": "Orario di lavoro attivo",
- "BUSINESS_HOURS_OFF": "Orario di lavoro disattivo",
+ "BUSINESS_HOURS_ON": "Abilitato",
+ "BUSINESS_HOURS_OFF": "Disabilitato",
"RESPONSE_TYPES": {
"FRT": "Soglia tempo di prima risposta",
"NRT": "Soglia tempo di risposta successiva",
diff --git a/app/javascript/dashboard/i18n/locale/it/snooze.json b/app/javascript/dashboard/i18n/locale/it/snooze.json
new file mode 100644
index 000000000..2abda2fd9
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/it/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minuto",
+ "MINUTES": "minuti",
+ "HOUR": "ora",
+ "HOURS": "ore",
+ "DAY": "giorno",
+ "DAYS": "giorni",
+ "WEEK": "settimana",
+ "WEEKS": "settimane",
+ "MONTH": "mese",
+ "MONTHS": "mesi",
+ "YEAR": "anno",
+ "YEARS": "anni"
+ },
+ "HALF": "mezza",
+ "NEXT": "prossimo",
+ "THIS": "questo",
+ "AT": "alle",
+ "IN": "in",
+ "FROM_NOW": "da adesso",
+ "NEXT_YEAR": "il prossimo anno",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "domani",
+ "DAY_AFTER_TOMORROW": "dopodomani",
+ "NEXT_WEEK": "prossima settimana",
+ "NEXT_MONTH": "il mese prossimo",
+ "THIS_WEEKEND": "questo fine settimana",
+ "NEXT_WEEKEND": "il prossimo fine settimana"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "mattina",
+ "AFTERNOON": "pomeriggio",
+ "EVENING": "sera",
+ "NIGHT": "notte",
+ "NOON": "mezzogiorno",
+ "MIDNIGHT": "mezzanotte"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "uno",
+ "TWO": "due",
+ "THREE": "tre",
+ "FOUR": "quattro",
+ "FIVE": "cinque",
+ "SIX": "sei",
+ "SEVEN": "sette",
+ "EIGHT": "otto",
+ "NINE": "nove",
+ "TEN": "dieci",
+ "TWELVE": "dodici",
+ "FIFTEEN": "quindici",
+ "TWENTY": "venti",
+ "THIRTY": "trenta"
+ },
+ "ORDINALS": {
+ "FIRST": "primo",
+ "SECOND": "secondo",
+ "THIRD": "terzo",
+ "FOURTH": "quarto",
+ "FIFTH": "quinto"
+ },
+ "OF": "di",
+ "AFTER": "dopo",
+ "WEEK": "settimana",
+ "DAY": "giorno"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/it/teamsSettings.json b/app/javascript/dashboard/i18n/locale/it/teamsSettings.json
index d83e61db2..b024117aa 100644
--- a/app/javascript/dashboard/i18n/locale/it/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/it/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Caricamento team",
"DESCRIPTION": "I Team ti permettono di organizzare gli operatori in gruppi in base alle loro responsabilità. Un operatore può appartenere a più team. Quando si lavora in collaborazione, è possibile assegnare conversazioni a team specifici.",
"LEARN_MORE": "Scopri di più sui team",
+ "COUNT": "{n} team | {n} team",
+ "SEARCH_PLACEHOLDER": "Cerca team...",
+ "NO_RESULTS": "Nessun team trovato corrispondente alla tua ricerca",
"LIST": {
"404": "Non ci sono team creati su questo account.",
"EDIT_TEAM": "Modifica team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Impossibile salvare i dettagli del team. Riprova."
},
"AGENTS": {
- "AGENT": "OPERATORE",
- "EMAIL": "EMAIL",
+ "AGENT": "Operatore",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Aggiungi operatori",
"ADD_AGENTS": "Aggiungendo gli Operatori al tuo Team...",
"SELECT": "seleziona",
diff --git a/app/javascript/dashboard/i18n/locale/ja/agentBots.json b/app/javascript/dashboard/i18n/locale/ja/agentBots.json
index 0b50ce755..776fa5517 100644
--- a/app/javascript/dashboard/i18n/locale/ja/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ja/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "エディターを読み込んでいます...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "システム",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "ボットを取得中...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "操作"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/ja/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ja/agentMgmt.json
index 03440c503..55d1020ed 100644
--- a/app/javascript/dashboard/i18n/locale/ja/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ja/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "管理者",
"AGENT": "担当者"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "このアカウントに関連付けられている担当者はありません。",
"TITLE": "チームの担当者を管理する",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
}
},
+ "SEARCH_PLACEHOLDER": "担当者を検索...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "該当する結果が見つかりませんでした。"
},
diff --git a/app/javascript/dashboard/i18n/locale/ja/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ja/attributesMgmt.json
index 79698ca09..28fc50bba 100644
--- a/app/javascript/dashboard/i18n/locale/ja/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ja/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "カスタム属性を取得中",
"DESCRIPTION": "カスタム属性は、連絡先や会話に関する追加の詳細(例:サブスクリプションプランや初回購入日など)を記録します。必要な情報をキャプチャするために、テキスト、リスト、数値など、さまざまなタイプのカスタム属性を追加できます。",
"LEARN_MORE": "カスタム属性について詳しく学ぶ",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "属性を検索...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "会話",
"CONTACT": "連絡先"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "正規表現の検証を有効にする"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/ja/automation.json b/app/javascript/dashboard/i18n/locale/ja/automation.json
index e293da3a9..f8def7fba 100644
--- a/app/javascript/dashboard/i18n/locale/ja/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ja/automation.json
@@ -3,8 +3,11 @@
"HEADER": "自動化",
"DESCRIPTION": "自動化は、ラベルの追加や会話を最適な担当者に割り当てるといった手動で行う必要のある既存のプロセスを置き換え、効率化することができます。これにより、チームは強みを発揮しつつ、ルーチンタスクに費やす時間を削減できます。",
"LEARN_MORE": "自動化について学ぶ",
- "HEADER_BTN_TXT": "自動化ルールを追加",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "自動化ルールを取得中",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "自動化ルールを追加",
"SUBMIT": "作成",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "名前",
- "DESCRIPTION": "説明",
"ACTIVE": "有効",
- "CREATED_ON": "作成日"
+ "CREATED_ON": "作成日",
+ "ACTIONS": "操作"
},
"404": "自動化ルールが見つかりません"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "優先度を変更",
"ADD_SLA": "SLAを追加",
- "OPEN_CONVERSATION": "会話を開く"
+ "OPEN_CONVERSATION": "会話を開く",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/ja/bulkActions.json b/app/javascript/dashboard/i18n/locale/ja/bulkActions.json
index 71aa033ce..44be5fb4f 100644
--- a/app/javascript/dashboard/i18n/locale/ja/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ja/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "会話のステータスが正常に更新されました。",
"UPDATE_FAILED": "会話の更新に失敗しました。再試行してください。"
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "ラベルを割り当てる",
"NO_LABELS_FOUND": "ラベルが見つかりません",
diff --git a/app/javascript/dashboard/i18n/locale/ja/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ja/cannedMgmt.json
index 426c78097..c2178f610 100644
--- a/app/javascript/dashboard/i18n/locale/ja/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ja/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "定型文",
"LEARN_MORE": "定型文について詳しく学ぶ",
"DESCRIPTION": "定型文は、会話に迅速に返信するための事前に書かれた返信テンプレートです。担当者は '/' 文字の後にショートコードを入力することで、会話中に定型文を挿入できます。",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "定型文を追加",
"LOADING": "定型文を取得中...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "検索内容(クエリ)に一致する項目はありませんでした。",
"LIST": {
"404": "このアカウントには、利用可能な定型文の回答はありません。",
diff --git a/app/javascript/dashboard/i18n/locale/ja/chatlist.json b/app/javascript/dashboard/i18n/locale/ja/chatlist.json
index 47205da5e..192a94140 100644
--- a/app/javascript/dashboard/i18n/locale/ja/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ja/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "保留時間: 短い順"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ja/contact.json b/app/javascript/dashboard/i18n/locale/ja/contact.json
index 88d0d461e..3b9bb73a7 100644
--- a/app/javascript/dashboard/i18n/locale/ja/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ja/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Instagramを追加"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "検索に一致する連絡先はありません 🔍",
"LIST_EMPTY_STATE_TITLE": "このビューには利用可能な連絡先がありません 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "さらに読み込む"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "この連絡先と会話を開始するための利用可能なインボックスがありません。",
"CONTACT_SELECTOR": {
"LABEL": "宛先:",
- "TAG_INPUT_PLACEHOLDER": "名前、メールアドレス、または電話番号で連絡先を検索",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "連絡先を作成中..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "件名 :",
"SUBJECT_PLACEHOLDER": "メールの件名を入力",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "メールアドレスで連絡先を検索",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "メールアドレスで連絡先を検索",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/ja/conversation.json b/app/javascript/dashboard/i18n/locale/ja/conversation.json
index f24d8f208..25a3d01fc 100644
--- a/app/javascript/dashboard/i18n/locale/ja/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ja/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "このメッセージはサポートされていません。Facebook / Instagram で表示できます。",
"UNSUPPORTED_MESSAGE_FACEBOOK": "このメッセージはサポートされていません。Facebook Messengerでこのメッセージを表示できます。",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "このメッセージはサポートされていません。このメッセージは Instagram で表示できます。",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "メッセージの削除に成功",
"FAIL_DELETE_MESSSAGE": "メッセージを削除できませんでした!もう一度お試しください",
"NO_RESPONSE": "返信なし",
@@ -173,6 +174,10 @@
"SUCCESFUL": "会話ID {conversationId} に ラベル #{labelName} を割り当てました",
"FAILED": "ラベルを割り当てることができませんでした。もう一度やり直してください。"
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "会話ID {conversationId} に \"{team}\" チームを割り当てました",
"FAILED": "チームを割り当てることができませんでした。もう一度お試しください。"
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "署名を無効化",
"MSG_INPUT": "Shift + Enter で新しい行を作成します。「/」で開始すると、定型文回答を選択できます。",
"PRIVATE_MSG_INPUT": "Shift + Enter で新しい行を作成します。これは担当者にのみ表示されます。",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "メッセージ署名が構成されていません。プロフィール設定で構成してください。",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "ここをクリックして更新",
"WHATSAPP_TEMPLATES": "Whatsapp テンプレート"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "添付するにはここにドラッグ&ドロップ",
"START_AUDIO_RECORDING": "音声録音を開始",
"STOP_AUDIO_RECORDING": "音声録音を停止",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "宛先",
"ADD_BCC": "Bcc を追加",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "ファイルが {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB の添付ファイル制限を超えています",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "このメッセージを送信できません。後でもう一度お試しください",
"SENT_BY": "送信者:",
"BOT": "ボット",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "メッセージを送信できませんでした!再試行してください",
"TRY_AGAIN": "再試行",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "キャンセル",
"SEND_EMAIL_SUCCESS": "チャットの記録は正常に送信されました",
"SEND_EMAIL_ERROR": "エラーが発生しました。もう一度お試しください。",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "顧客に会話の記録を転送する",
"SEND_TO_AGENT": "担当者に記録を送信する",
diff --git a/app/javascript/dashboard/i18n/locale/ja/customRole.json b/app/javascript/dashboard/i18n/locale/ja/customRole.json
index 05c0a47cb..8fbabb188 100644
--- a/app/javascript/dashboard/i18n/locale/ja/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/ja/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "カスタムロール",
"LEARN_MORE": "カスタムロールについて詳しく学ぶ",
"DESCRIPTION": "カスタムロールは、アカウントオーナーまたは管理者によって作成されるロールです。これらのロールは、担当者に割り当てて、アカウント内でのアクセス権と権限を定義できます。カスタムロールは、組織の要件に合わせて特定の権限とアクセスレベルで作成できます。",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "カスタムロールを追加",
"LOADING": "カスタムロールを取得中...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "検索内容(クエリ)に一致する項目はありませんでした。",
"PAYWALL": {
"TITLE": "アップグレードしてカスタムロールを作成",
diff --git a/app/javascript/dashboard/i18n/locale/ja/datePicker.json b/app/javascript/dashboard/i18n/locale/ja/datePicker.json
index 8df29dacf..6f71359d9 100644
--- a/app/javascript/dashboard/i18n/locale/ja/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/ja/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "適用",
"CLEAR_BUTTON": "クリア",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "過去 3 ヶ月",
"LAST_6_MONTHS": "過去 6 ヶ月",
"LAST_YEAR": "過去 1 年",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "カスタム日付範囲"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/general.json b/app/javascript/dashboard/i18n/locale/ja/general.json
index 053437bec..13daf31d8 100644
--- a/app/javascript/dashboard/i18n/locale/ja/general.json
+++ b/app/javascript/dashboard/i18n/locale/ja/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "閉じる",
"BETA": "ベータ版",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "破棄",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "はい",
+ "NO": "いいえ"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/generalSettings.json b/app/javascript/dashboard/i18n/locale/ja/generalSettings.json
index 38f0747df..69776169e 100644
--- a/app/javascript/dashboard/i18n/locale/ja/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ja/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "検索または移動",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "全般",
"REPORTS": "レポート",
diff --git a/app/javascript/dashboard/i18n/locale/ja/helpCenter.json b/app/javascript/dashboard/i18n/locale/ja/helpCenter.json
index c82866cfe..022d15038 100644
--- a/app/javascript/dashboard/i18n/locale/ja/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ja/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "記事の削除中にエラーが発生しました"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "記事の見出しと内容を追加してから設定を更新してください"
},
diff --git a/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json
index bbc4a0d30..a49aa28b2 100644
--- a/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "受信トレイ",
"DESCRIPTION": "チャンネルは、顧客があなたとやり取りするために選択する通信手段です。受信トレイは、特定のチャンネルのやり取りを管理する場所です。メール、ライブチャット、ソーシャルメディアなど、さまざまなソースからの通信を含むことができます。",
"LEARN_MORE": "受信トレイについて詳しく知る",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "受信トレイが切断されました。再認証するまで新しいメッセージを受信できません。",
"CLICK_TO_RECONNECT": "再接続するにはここをクリック。",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "メールヘッダーの送信者名に設定されたビジネス名のみを使用します。"
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ ビジネス名を設定する",
+ "BUTTON_TEXT": "ビジネス名を設定する",
"PLACEHOLDER": "ビジネス名を入力してください",
"SAVE_BUTTON_TEXT": "保存"
}
@@ -589,8 +592,10 @@
"DISABLED": "無効です"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "有効です",
- "DISABLED": "無効です"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "有効にする"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "顧客満足度"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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": "設定",
@@ -694,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": "この受信トレイから担当者を追加または削除する",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "担当者名をメールに表示するかどうかを設定します。無効にするとビジネス名が表示されます。",
"ENABLE_CONTINUITY_VIA_EMAIL": "メールによる会話の継続を有効にする",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "連絡先のメールアドレスが利用可能な場合、会話はメールで継続されます。",
- "LOCK_TO_SINGLE_CONVERSATION": "単一会話にロックする",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "この受信トレイで同じ連絡先に対して複数の会話を有効または無効にする",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "受信トレイの設定",
"INBOX_UPDATE_SUB_TEXT": "受信トレイの設定を更新する",
"AUTO_ASSIGNMENT_SUB_TEXT": "この受信トレイに追加された担当者への新しい会話の自動割り当てを有効または無効にします。",
@@ -758,6 +775,7 @@
"LABEL": "ヘルプセンター",
"PLACEHOLDER": "ヘルプセンターを選択",
"SELECT_PLACEHOLDER": "ヘルプセンターを選択",
+ "NONE": "なし",
"REMOVE": "ヘルプセンターを削除",
"SUB_TEXT": "受信トレイにヘルプセンターを添付する"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "0より大きい値を入力してください",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "この受信トレイから担当者に自動割り当てできる会話の最大数を制限します"
},
+ "ASSIGNMENT": {
+ "TITLE": "会話の割り当て",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "有効",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "キャンセル",
+ "CONFIRM_DELETE": "削除",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "再認証",
"SUBTITLE": "Facebookの接続が期限切れになりました。サービスを継続するには、Facebookページを再接続してください。",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "戻る"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "訪問者への不在メッセージ",
"TOGGLE_HELP": "営業時間を有効にすると、すべての担当者がオフラインでもライブチャットウィジェットに利用可能時間が表示されます。利用可能時間外には、訪問者にメッセージとプレチャットフォームで警告できます。",
"DAY": {
+ "DAY": "日",
+ "AVAILABILITY": "利用可能期間",
+ "HOURS": "Hours",
"ENABLE": "この日の利用可能時間を有効にする",
"UNAVAILABLE": "不在",
- "HOURS": "時間",
"VALIDATION_ERROR": "開始時間は終了時間より前でなければなりません。",
"CHOOSE": "選択"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "1日以内"
},
"WIDGET_COLOR_LABEL": "ウィジェットの色",
- "WIDGET_BUBBLE_POSITION_LABEL": "ウィジェットバブルの位置",
- "WIDGET_BUBBLE_TYPE_LABEL": "ウィジェットバブルのタイプ",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "タイプ:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "チャットをする",
- "LABEL": "ウィジェットバブルランチャータイトル",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "チャットをする"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "通常数分以内にご返信します。",
diff --git a/app/javascript/dashboard/i18n/locale/ja/integrationApps.json b/app/javascript/dashboard/i18n/locale/ja/integrationApps.json
index c836cc1b1..575eed497 100644
--- a/app/javascript/dashboard/i18n/locale/ja/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ja/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "連携情報を取得中",
"NO_HOOK_CONFIGURED": "このアカウントには{integrationId}の連携が設定されていません。",
"HEADER": "アプリケーション",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "検索...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "有効",
"DISABLED": "無効"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "連携設定を取得中",
"INBOX": "受信トレイ",
+ "ACTIONS": "操作",
"DELETE": {
"BUTTON_TEXT": "削除"
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/integrations.json b/app/javascript/dashboard/i18n/locale/ja/integrations.json
index f83d0f848..6091540e6 100644
--- a/app/javascript/dashboard/i18n/locale/ja/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ja/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwootは、チームの効率を向上させるために複数のツールやサービスと連携します。以下のリストを探索して、お気に入りのアプリを設定してください。",
"LEARN_MORE": "連携について詳しく知る",
"LOADING": "連携を取得中",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captainはあなたのアカウントで有効になっていません。",
"CLICK_HERE_TO_CONFIGURE": "設定するにはここをクリック",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "購読イベント",
"LEARN_MORE": "Webhookについて詳しく知る",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "キャンセル",
"DESC": "Webhookイベントは、Chatwootアカウントで何が起こっているかについてのリアルタイムの情報を提供します。コールバックを設定するには有効なURLを入力してください。",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "削除",
"DELETE_CONFIRMATION": {
"TITLE": "連携の削除",
@@ -145,7 +160,29 @@
"EXPAND": "拡張",
"MAKE_FRIENDLY": "メッセージのトーンをフレンドリーに変更",
"MAKE_FORMAL": "フォーマルトーンを使用",
- "SIMPLIFY": "簡素化"
+ "SIMPLIFY": "簡素化",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "プロフェッショナル",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "フレンドリー"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "下書き内容",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
ダッシュボードアプリ
ダッシュボードアプリを使用すると、組織はChatwootダッシュボード内にアプリケーションを埋め込んで、カスタマーサポート担当者にコンテキストを提供できます。この機能により、アプリケーションを独立して作成し、ユーザー情報、注文履歴、または以前の支払い履歴を提供するためにダッシュボード内に埋め込むことができます。
Chatwootのダッシュボードを使用してアプリケーションを埋め込むと、アプリケーションはウィンドウイベントとして会話と連絡先のコンテキストを取得します。ページ上でメッセージイベントのリスナーを実装してコンテキストを受信します。
新しいダッシュボードアプリを追加するには、「新しいダッシュボードアプリを追加」ボタンをクリックしてください。
",
"DESCRIPTION": "ダッシュボードアプリを使用すると、組織はダッシュボード内にアプリケーションを埋め込んで、カスタマーサポート担当者にコンテキストを提供できます。この機能により、アプリケーションを独立して作成し、ユーザー情報、注文履歴、または以前の支払い履歴を提供するために埋め込むことができます。",
"LEARN_MORE": "ダッシュボードアプリについて詳しく知る",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "このアカウントにはまだダッシュボードアプリが設定されていません",
"LOADING": "ダッシュボードアプリを取得中...",
"TABLE_HEADER": {
"NAME": "名前",
- "ENDPOINT": "エンドポイント"
+ "ENDPOINT": "エンドポイント",
+ "ACTIONS": "操作"
},
"EDIT_TOOLTIP": "アプリを編集",
"DELETE_TOOLTIP": "アプリを削除"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Linear Issueを作成/リンク",
"LOADING": "Linearの課題を取得中...",
"LOADING_ERROR": "Linearの課題を取得中にエラーが発生しました。もう一度お試しください",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "プランはいつでも変更またはキャンセルできます"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "アシスタント、Copilotなどにアクセスするには、プランをアップグレードしてください。",
"ASK_ADMIN": "管理者にアップグレードを依頼してください。"
},
diff --git a/app/javascript/dashboard/i18n/locale/ja/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ja/labelsMgmt.json
index a8fdb3b4c..1af824c19 100644
--- a/app/javascript/dashboard/i18n/locale/ja/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ja/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "ラベルを取得中",
"DESCRIPTION": "ラベルは会話やリードを分類し、優先順位をつけるのに役立ちます。サイドパネルを使用して会話や連絡先にラベルを割り当てることができます。",
"LEARN_MORE": "ラベルについて詳しく知る",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "ラベルを検索...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "検索内容(クエリ)に一致する項目はありませんでした",
"LIST": {
"404": "このアカウントには利用可能なラベルがありません。",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "名前",
"DESCRIPTION": "説明",
- "COLOR": "色"
+ "COLOR": "色",
+ "ACTION": "操作"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ja/macros.json b/app/javascript/dashboard/i18n/locale/ja/macros.json
index 39813bfb6..0a1bbbca5 100644
--- a/app/javascript/dashboard/i18n/locale/ja/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ja/macros.json
@@ -3,9 +3,12 @@
"HEADER": "マクロ",
"DESCRIPTION": "マクロは、カスタマーサービス担当者がタスクを簡単に完了できるようにする保存されたアクションのセットです。会話にラベルを付ける、メール記録を送信する、カスタム属性を更新するなどのアクションを定義でき、それらのアクションをワンクリックで実行できます。",
"LEARN_MORE": "マクロについて詳しく知る",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "新しいマクロを追加",
"HEADER_BTN_TXT_SAVE": "マクロを保存",
"LOADING": "マクロを取得中",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "問題が発生しました。もう一度お試しください。",
"ORDER_INFO": "マクロは追加したアクションの順序で実行されます。各ノード横のハンドルをドラッグして並べ替えることができます。",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "名前",
"CREATED BY": "作成者",
"LAST_UPDATED_BY": "最終更新者",
- "VISIBILITY": "可視性"
+ "VISIBILITY": "可視性",
+ "ACTIONS": "操作"
},
"404": "マクロが見つかりませんでした"
},
diff --git a/app/javascript/dashboard/i18n/locale/ja/mfa.json b/app/javascript/dashboard/i18n/locale/ja/mfa.json
index dffd3e91a..1d49489fc 100644
--- a/app/javascript/dashboard/i18n/locale/ja/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/ja/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/ja/report.json b/app/javascript/dashboard/i18n/locale/ja/report.json
index d90524f4e..9811ee1c0 100644
--- a/app/javascript/dashboard/i18n/locale/ja/report.json
+++ b/app/javascript/dashboard/i18n/locale/ja/report.json
@@ -3,7 +3,7 @@
"HEADER": "会話データ",
"LOADING_CHART": "グラフデータを読み込んでいます...",
"NO_ENOUGH_DATA": "レポートを生成するための十分なデータポイントを受信していません。後でもう一度お試しください。",
- "DOWNLOAD_AGENT_REPORTS": "担当者レポートをダウンロード",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "データの取得に失敗しました。後でもう一度お試しください。",
"SUMMARY_FETCHING_FAILED": "サマリーの取得に失敗しました。後でもう一度お試しください。",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "担当者概要",
- "DESCRIPTION": "会話、応答時間、解決までの時間、解決済み案件などの主要な指標で担当者のパフォーマンスを簡単に追跡できます。詳細は担当者名をクリックしてください。",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "グラフデータを読み込んでいます...",
"NO_ENOUGH_DATA": "レポートを生成するための十分なデータポイントを受信していません。後でもう一度お試しください。",
"DOWNLOAD_AGENT_REPORTS": "担当者レポートをダウンロード",
"FILTER_DROPDOWN_LABEL": "担当者を選択",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "担当者を検索"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "会話データ",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "レポートを生成するための十分なデータポイントを受信していません。後でもう一度お試しください。",
"DOWNLOAD_LABEL_REPORTS": "ラベルレポートをダウンロード",
"FILTER_DROPDOWN_LABEL": "ラベルを選択",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "ラベルを検索"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "会話データ",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "受信トレイを選択",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "会話データ",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "チーム概要",
- "DESCRIPTION": "会話、応答時間、解決までの時間、解決済み案件などの重要な指標でチームのパフォーマンスのスナップショットを取得します。 詳細はチーム名をクリックしてください。",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "グラフデータを読み込んでいます...",
"NO_ENOUGH_DATA": "レポートを生成するための十分なデータポイントを受信していません。後でもう一度お試しください。",
"DOWNLOAD_TEAM_REPORTS": "チームレポートをダウンロード",
"FILTER_DROPDOWN_LABEL": "チームを選択",
+ "FILTERS": {
+ "ADD_FILTER": "フィルターを追加",
+ "CLEAR_ALL": "すべてクリア",
+ "NO_FILTER": "利用可能なフィルターがありません",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "チームを検索"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "会話データ",
@@ -402,12 +425,31 @@
},
"CSAT_REPORTS": {
"HEADER": "CSATレポート",
- "NO_RECORDS": "CSATアンケートの回答はありません。",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "CSATレポートをダウンロード",
"DOWNLOAD_FAILED": "CSATレポートのダウンロードに失敗しました",
"FILTERS": {
+ "ADD_FILTER": "フィルターを追加",
+ "CLEAR_ALL": "すべてクリア",
+ "NO_FILTER": "利用可能なフィルターがありません",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "担当者を検索",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "チームを検索",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "担当者を選択"
+ "LABEL": "担当者"
+ },
+ "INBOXES": {
+ "LABEL": "受信トレイ"
+ },
+ "TEAMS": {
+ "LABEL": "チーム"
+ },
+ "RATINGS": {
+ "LABEL": "評価"
}
},
"TABLE": {
@@ -415,9 +457,16 @@
"CONTACT_NAME": "連絡先",
"AGENT_NAME": "担当者",
"RATING": "評価",
- "FEEDBACK_TEXT": "フィードバックコメント"
- }
+ "FEEDBACK_TEXT": "フィードバックコメント",
+ "CONVERSATION": "会話",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "回答",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "総回答数",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "回答率",
"TOOLTIP": "回答数 / 送信されたCSATアンケートメッセージ数 × 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "保存",
+ "CANCEL": "キャンセル",
+ "SAVING": "保存中...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "今すぐアップグレード",
+ "CANCEL_ANYTIME": "プランはいつでも変更またはキャンセルできます"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/ja/settings.json b/app/javascript/dashboard/i18n/locale/ja/settings.json
index 162d34795..bb4290648 100644
--- a/app/javascript/dashboard/i18n/locale/ja/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ja/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "ダウンロード",
"UPLOADING": "アップロード中...",
- "INSTAGRAM_STORY_UNAVAILABLE": "このストーリーはもう利用できません。"
+ "INSTAGRAM_STORY_UNAVAILABLE": "このストーリーはもう利用できません。",
+ "INSTAGRAM_STORY_REPLY": "あなたのストーリーに返信:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "地図で見る"
@@ -378,7 +379,57 @@
"INFO_SHORT": "使用していない場合、自動的にオフラインにします。"
},
"DOCS": "ドキュメントを読む",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "キャプテン",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "アシスタント",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "機能",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "請求設定",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "属性を検索"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "会話を解決",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "会話を解決",
+ "CANCEL": "キャンセル"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "オプションを選択"
+ },
+ "CHECKBOX": {
+ "YES": "はい",
+ "NO": "いいえ"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "今すぐアップグレード",
+ "CANCEL_ANYTIME": "プランはいつでも変更またはキャンセルできます"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "管理者にアップグレードを依頼してください。"
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Chatwootアカウントが見つかりませんでした。続行するには新しいアカウントを作成してください。",
"NEW_ACCOUNT": "新規アカウント",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "キャンセル"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ja/signup.json b/app/javascript/dashboard/i18n/locale/ja/signup.json
index 19f5d28fd..aa0b74a44 100644
--- a/app/javascript/dashboard/i18n/locale/ja/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ja/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "アカウントを作成",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "登録",
"TESTIMONIAL_HEADER": "前進するために必要なのはたった一歩",
"TESTIMONIAL_CONTENT": "顧客と関わり、維持し、新たな顧客を見つけるまであと一歩です。",
diff --git a/app/javascript/dashboard/i18n/locale/ja/sla.json b/app/javascript/dashboard/i18n/locale/ja/sla.json
index 469f1a707..11f42e410 100644
--- a/app/javascript/dashboard/i18n/locale/ja/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ja/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "新しいSLAポリシーを作成",
"DESCRIPTION": "サービス水準合意(SLA)は、チームと顧客間で明確な期待を定義する契約です。応答時間や解決時間の基準を設定し、責任を明確にし、一貫した高品質なサービス体験を提供します。",
"LEARN_MORE": "SLAについて詳しく学ぶ",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "SLAを取得中",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "アップグレードしてSLAを作成",
"AVAILABLE_ON": "SLA機能はビジネスおよびエンタープライズプランのみで利用可能です。",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "このアカウントには利用可能なSLAがありません。",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "エンタープライズ P0",
"DESC_1": "即時対応が必要なエンタープライズ顧客からの問題。",
"TITLE_2": "エンタープライズ P1",
"DESC_2": "迅速な承認が必要なエンタープライズ顧客からの問題。"
},
- "BUSINESS_HOURS_ON": "営業時間内",
- "BUSINESS_HOURS_OFF": "営業時間外",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "最初の応答時間の基準",
"NRT": "次の応答時間の基準",
diff --git a/app/javascript/dashboard/i18n/locale/ja/snooze.json b/app/javascript/dashboard/i18n/locale/ja/snooze.json
new file mode 100644
index 000000000..9a0c0a145
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ja/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "時間",
+ "DAY": "日",
+ "DAYS": "days",
+ "WEEK": "週",
+ "WEEKS": "weeks",
+ "MONTH": "月",
+ "MONTHS": "months",
+ "YEAR": "年",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "明日",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "次週",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "/",
+ "AFTER": "after",
+ "WEEK": "週",
+ "DAY": "日"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ja/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ja/teamsSettings.json
index c13fd206f..8e124b527 100644
--- a/app/javascript/dashboard/i18n/locale/ja/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ja/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "チームを取得中",
"DESCRIPTION": "チームは担当者をその責務に基づいてグループ化することを可能にします。担当者は複数のチームに所属できます。共同作業では、会話を特定のチームに割り当てることができます。",
"LEARN_MORE": "チームについて詳しく学ぶ",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "チームを検索...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "このアカウントにはまだ作成されたチームがありません。",
"EDIT_TEAM": "チームを編集",
diff --git a/app/javascript/dashboard/i18n/locale/ka/agentBots.json b/app/javascript/dashboard/i18n/locale/ka/agentBots.json
index 8102692f8..437a1c612 100644
--- a/app/javascript/dashboard/i18n/locale/ka/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ka/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "აგენტ-ბოტები თქვენი გუნდის ყველაზე გამორჩეული წევრებივით არიან. მათ შეუძლიათ მოაგვარონ წვრილმანები, რათა თქვენ ყურადღება მიაქციოთ ნამდვილად მნიშვნელოვან საკითხებს. სცადეთ. შეგიძლიათ მართოთ თქვენი ბოტები ამ გვერდიდან ან შექმნათ ახალი ღილაკით „ბოტის დამატება“.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "სისტემური ბოტი",
"GLOBAL_BOT_BADGE": "სისტემა",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "ბოტის დეტალები",
- "URL": "ვებჰუკის URL"
+ "URL": "ვებჰუკის URL",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/ka/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ka/agentMgmt.json
index 448994e69..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/ka/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ka/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/ka/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ka/attributesMgmt.json
index 421161bf6..fbc87935b 100644
--- a/app/javascript/dashboard/i18n/locale/ka/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ka/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "საუბარი",
"CONTACT": "კონტაქტი"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/ka/automation.json b/app/javascript/dashboard/i18n/locale/ka/automation.json
index 980831701..e4b78e3c3 100644
--- a/app/javascript/dashboard/i18n/locale/ka/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ka/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "პირადი ჩანაწერის დამატება",
"CHANGE_PRIORITY": "პრიორიტეტის შეცვლა",
"ADD_SLA": "SLA-ის დამატება",
- "OPEN_CONVERSATION": "საუბრის გახსნა"
+ "OPEN_CONVERSATION": "საუბრის გახსნა",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "შემომავალი შეტყობინება",
diff --git a/app/javascript/dashboard/i18n/locale/ka/bulkActions.json b/app/javascript/dashboard/i18n/locale/ka/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/ka/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ka/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/ka/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ka/cannedMgmt.json
index 3bc60c569..05c05c0c6 100644
--- a/app/javascript/dashboard/i18n/locale/ka/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ka/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/ka/chatlist.json b/app/javascript/dashboard/i18n/locale/ka/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/ka/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ka/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ka/contact.json b/app/javascript/dashboard/i18n/locale/ka/contact.json
index fcb32ece9..2bdbc7ad3 100644
--- a/app/javascript/dashboard/i18n/locale/ka/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ka/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "ამ მომენტისთვის არცერთი კონტაქტი არ არის აქტიური 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/ka/conversation.json b/app/javascript/dashboard/i18n/locale/ka/conversation.json
index 3e0ebeda4..25ccc42ce 100644
--- a/app/javascript/dashboard/i18n/locale/ka/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ka/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "საუბარი წარმატებით წაიშალა",
"FAIL_DELETE_CONVERSATION": "საუბრის წაშლა ვერ მოხერხდა! სცადეთ ხელახლა",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/ka/customRole.json b/app/javascript/dashboard/i18n/locale/ka/customRole.json
index ca01a1eeb..3bdc371e4 100644
--- a/app/javascript/dashboard/i18n/locale/ka/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/ka/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/ka/datePicker.json b/app/javascript/dashboard/i18n/locale/ka/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/ka/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/ka/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/general.json b/app/javascript/dashboard/i18n/locale/ka/general.json
index 283cf79c4..bdc7cb8a4 100644
--- a/app/javascript/dashboard/i18n/locale/ka/general.json
+++ b/app/javascript/dashboard/i18n/locale/ka/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/generalSettings.json b/app/javascript/dashboard/i18n/locale/ka/generalSettings.json
index c7bda9867..6651bc6d3 100644
--- a/app/javascript/dashboard/i18n/locale/ka/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ka/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/ka/helpCenter.json b/app/javascript/dashboard/i18n/locale/ka/helpCenter.json
index 0ab8d62ff..69a72f163 100644
--- a/app/javascript/dashboard/i18n/locale/ka/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ka/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json
index e4acfe9a0..87b6a0b4d 100644
--- a/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "პოლიტიკის წაშლა",
+ "POLICY_LABEL": "მინიჭების პოლიტიკა",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "არააქტიური"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "ყველაზე ადრე შექმნილი",
+ "LONGEST_WAITING": "ყველაზე დიდხანს მოლოდინში"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "რაუნდ-რობინი",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "მინიჭების პოლიტიკები ვერ მოიძებნა",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
diff --git a/app/javascript/dashboard/i18n/locale/ka/integrationApps.json b/app/javascript/dashboard/i18n/locale/ka/integrationApps.json
index b91b434f7..828f4ea67 100644
--- a/app/javascript/dashboard/i18n/locale/ka/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ka/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/integrations.json b/app/javascript/dashboard/i18n/locale/ka/integrations.json
index 983953180..a1ce02d11 100644
--- a/app/javascript/dashboard/i18n/locale/ka/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ka/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/ka/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ka/labelsMgmt.json
index 705b18d0e..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/ka/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ka/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ka/macros.json b/app/javascript/dashboard/i18n/locale/ka/macros.json
index 934b4dace..182732c3c 100644
--- a/app/javascript/dashboard/i18n/locale/ka/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ka/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/ka/mfa.json b/app/javascript/dashboard/i18n/locale/ka/mfa.json
index f7556fdcf..b03917bcd 100644
--- a/app/javascript/dashboard/i18n/locale/ka/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/ka/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/ka/report.json b/app/javascript/dashboard/i18n/locale/ka/report.json
index a2ad6bd4a..45c40de58 100644
--- a/app/javascript/dashboard/i18n/locale/ka/report.json
+++ b/app/javascript/dashboard/i18n/locale/ka/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/ka/settings.json b/app/javascript/dashboard/i18n/locale/ka/settings.json
index 455422efc..34d0a84fc 100644
--- a/app/javascript/dashboard/i18n/locale/ka/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ka/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "უსაფრთხოება"
+ "SECURITY": "უსაფრთხოება",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "პოლიტიკის შექმნა",
"API": {
"SUCCESS_MESSAGE": "მინიჭების პოლიტიკა წარმატებით შეიქმნა",
- "ERROR_MESSAGE": "მინიჭების პოლიტიკის შექმნა ვერ მოხერხდა"
+ "ERROR_MESSAGE": "მინიჭების პოლიტიკის შექმნა ვერ მოხერხდა",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "გაგრძელება",
"CANCEL_BUTTON_LABEL": "Cancel"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "მინიჭების პოლიტიკა წარმატებით განახლდა",
"ERROR_MESSAGE": "მინიჭების პოლიტიკის განახლება ვერ მოხერხდა"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "დაბალანსებული",
- "DESCRIPTION": "საუბრები მიენიჭება ხელმისაწვდომი ტევადობის მიხედვით."
+ "DESCRIPTION": "საუბრები მიენიჭება ხელმისაწვდომი ტევადობის მიხედვით.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "აგენტის პოლიტიკიდან წაშლა წარმატებით შესრულდა",
"ERROR_MESSAGE": "აგენტის პოლიტიკიდან წაშლა ვერ მოხერხდა"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ka/signup.json b/app/javascript/dashboard/i18n/locale/ka/signup.json
index 54398ff7c..5140c3c92 100644
--- a/app/javascript/dashboard/i18n/locale/ka/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ka/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/ka/sla.json b/app/javascript/dashboard/i18n/locale/ka/sla.json
index 0da7873be..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/ka/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ka/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/ka/snooze.json b/app/javascript/dashboard/i18n/locale/ka/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ka/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ka/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ka/teamsSettings.json
index f0a950fd1..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/ka/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ka/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/ko/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ko/advancedFilters.json
index a15805175..d96a70031 100644
--- a/app/javascript/dashboard/i18n/locale/ko/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ko/advancedFilters.json
@@ -1,24 +1,24 @@
{
"FILTER": {
"TITLE": "대화 필터링하기",
- "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
- "EDIT_CUSTOM_FILTER": "Edit Folder",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
- "ADD_NEW_FILTER": "Add filter",
- "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
+ "SUBTITLE": "아래에 필터를 추가하고 '필터 적용'을 클릭하여 대화를 정리하십시오.",
+ "EDIT_CUSTOM_FILTER": "폴더 편집",
+ "CUSTOM_VIEWS_SUBTITLE": "필터를 추가 또는 제거하고 폴더를 업데이트하십시오.",
+ "ADD_NEW_FILTER": "필터 추가",
+ "FILTER_DELETE_ERROR": "필터를 저장하려면 최소한 하나의 필터를 추가하십시오.",
"SUBMIT_BUTTON_LABEL": "필터 적용하기",
- "UPDATE_BUTTON_LABEL": "Update folder",
+ "UPDATE_BUTTON_LABEL": "폴더 업데이트",
"CANCEL_BUTTON_LABEL": "취소",
- "CLEAR_BUTTON_LABEL": "Clear filters",
- "FOLDER_LABEL": "Folder Name",
- "FOLDER_QUERY_LABEL": "Folder Query",
- "EMPTY_VALUE_ERROR": "Value is required.",
+ "CLEAR_BUTTON_LABEL": "필터 초기화",
+ "FOLDER_LABEL": "폴더 이름",
+ "FOLDER_QUERY_LABEL": "폴더 쿼리",
+ "EMPTY_VALUE_ERROR": "값이 필요합니다.",
"TOOLTIP_LABEL": "대화 필터링하기",
"QUERY_DROPDOWN_LABELS": {
"AND": "와/과",
"OR": "혹은"
},
- "INPUT_PLACEHOLDER": "Enter value",
+ "INPUT_PLACEHOLDER": "값을 입력하십시오",
"OPERATOR_LABELS": {
"equal_to": "동일한",
"not_equal_to": "비동일한",
@@ -28,7 +28,7 @@
"is_greater_than": "보다 큰",
"is_less_than": "보다 작은",
"days_before": "x 일 전에",
- "starts_with": "Starts with",
+ "starts_with": "시작하는",
"equalTo": "동일한",
"notEqualTo": "비동일한",
"contains": "포함된",
@@ -38,7 +38,7 @@
"isGreaterThan": "보다 큰",
"isLessThan": "보다 작은",
"daysBefore": "x 일 전에",
- "startsWith": "Starts with"
+ "startsWith": "시작하는"
},
"ATTRIBUTE_LABELS": {
"TRUE": "참",
@@ -46,72 +46,72 @@
},
"ATTRIBUTES": {
"STATUS": "상태",
- "ASSIGNEE_NAME": "Assignee name",
- "INBOX_NAME": "Inbox name",
- "TEAM_NAME": "Team name",
- "CONVERSATION_IDENTIFIER": "Conversation identifier",
- "CAMPAIGN_NAME": "Campaign name",
+ "ASSIGNEE_NAME": "담당자 이름",
+ "INBOX_NAME": "받은 메시지함 이름",
+ "TEAM_NAME": "팀 이름",
+ "CONVERSATION_IDENTIFIER": "대화 식별자",
+ "CAMPAIGN_NAME": "캠페인 이름",
"LABELS": "라벨",
- "BROWSER_LANGUAGE": "Browser language",
- "PRIORITY": "Priority",
- "COUNTRY_NAME": "Country name",
+ "BROWSER_LANGUAGE": "브라우저 언어",
+ "PRIORITY": "우선순위",
+ "COUNTRY_NAME": "국가 이름",
"REFERER_LINK": "참고 링크",
"CUSTOM_ATTRIBUTE_LIST": "리스트",
"CUSTOM_ATTRIBUTE_TEXT": "텍스트",
"CUSTOM_ATTRIBUTE_NUMBER": "숫자",
"CUSTOM_ATTRIBUTE_LINK": "링크",
"CUSTOM_ATTRIBUTE_CHECKBOX": "체크박스",
- "CREATED_AT": "에 만들어짐",
+ "CREATED_AT": "생성 일시",
"LAST_ACTIVITY": "최근 활동"
},
"ERRORS": {
"VALUE_REQUIRED": "값이 필요합니다.",
- "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
- "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
- "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ "ATTRIBUTE_KEY_REQUIRED": "속성 키가 필요합니다.",
+ "FILTER_OPERATOR_REQUIRED": "필터 연산자가 필요합니다.",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "값은 1에서 998 사이여야 합니다."
},
"GROUPS": {
- "STANDARD_FILTERS": "Standard filters",
- "ADDITIONAL_FILTERS": "Additional filters",
- "CUSTOM_ATTRIBUTES": "Custom attributes"
+ "STANDARD_FILTERS": "기본 필터",
+ "ADDITIONAL_FILTERS": "추가 필터",
+ "CUSTOM_ATTRIBUTES": "사용자 정의 속성"
},
"CUSTOM_VIEWS": {
"ADD": {
"TITLE": "이 필터를 저장하시겠습니까?",
"LABEL": "필터 이름 지정하기",
- "PLACEHOLDER": "Name your filter to refer it later.",
+ "PLACEHOLDER": "나중에 참조할 수 있도록 필터 이름을 지정하십시오.",
"ERROR_MESSAGE": "이름이 필요합니다.",
"SAVE_BUTTON": "필터 저장하기",
"CANCEL_BUTTON": "취소",
"API_FOLDERS": {
- "SUCCESS_MESSAGE": "폴더가 성공적으로 생성됨.",
- "ERROR_MESSAGE": "폴더 생성 중 에러 발생."
+ "SUCCESS_MESSAGE": "폴더가 성공적으로 생성되었습니다.",
+ "ERROR_MESSAGE": "폴더 생성 중 오류가 발생했습니다."
},
"API_SEGMENTS": {
- "SUCCESS_MESSAGE": "구획이 성공적으로 생성됨.",
- "ERROR_MESSAGE": "구획 생성 중 에러 발생."
+ "SUCCESS_MESSAGE": "세그먼트가 성공적으로 생성되었습니다.",
+ "ERROR_MESSAGE": "세그먼트 생성 중 오류가 발생했습니다."
}
},
"EDIT": {
- "EDIT_BUTTON": "Edit folder"
+ "EDIT_BUTTON": "폴더 편집"
},
"DELETE": {
"DELETE_BUTTON": "필터 삭제하기",
"MODAL": {
"CONFIRM": {
- "TITLE": "Confirm deletion",
- "MESSAGE": "정말로 이 필터를 삭제하고 싶으신가요? ",
- "YES": "Yes, delete",
- "NO": "No, keep it"
+ "TITLE": "삭제 확인",
+ "MESSAGE": "정말로 이 필터를 삭제하시겠습니까? ",
+ "YES": "예, 삭제합니다",
+ "NO": "아니요, 유지합니다"
}
},
"API_FOLDERS": {
- "SUCCESS_MESSAGE": "Folder deleted successfully.",
- "ERROR_MESSAGE": "폴더 삭제 중 에러 발생."
+ "SUCCESS_MESSAGE": "폴더가 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "폴더 삭제 중 오류가 발생했습니다."
},
"API_SEGMENTS": {
- "SUCCESS_MESSAGE": "구획이 성공적으로 삭제됨.",
- "ERROR_MESSAGE": "구획 제거 중 에러 발생."
+ "SUCCESS_MESSAGE": "세그먼트가 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "세그먼트 삭제 중 오류가 발생했습니다."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/agentBots.json b/app/javascript/dashboard/i18n/locale/ko/agentBots.json
index a8505390b..87296ccd3 100644
--- a/app/javascript/dashboard/i18n/locale/ko/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ko/agentBots.json
@@ -1,103 +1,107 @@
{
"AGENT_BOTS": {
"HEADER": "봇",
- "LOADING_EDITOR": "Loading editor...",
+ "LOADING_EDITOR": "에디터 로딩 중...",
"DESCRIPTION": "에이전트 봇은 팀에서 가장 뛰어난 멤버와 같습니다. 사소한 일은 봇이 처리해 주니, 중요한 일에 집중하세요. 한번 사용해 보세요. 이 페이지에서 봇을 관리하거나 '봇 추가' 버튼을 통해 새 봇을 생성할 수 있습니다.",
- "LEARN_MORE": "Learn about agent bots",
+ "LEARN_MORE": "에이전트 봇에 대해 알아보기",
+ "COUNT": "{n}개의 봇 | {n}개의 봇",
+ "SEARCH_PLACEHOLDER": "에이전트 봇 검색...",
+ "NO_RESULTS": "검색과 일치하는 봇이 없습니다",
"GLOBAL_BOT": "시스템 봇",
- "GLOBAL_BOT_BADGE": "System",
+ "GLOBAL_BOT_BADGE": "시스템",
"AVATAR": {
- "SUCCESS_DELETE": "Bot avatar deleted successfully",
- "ERROR_DELETE": "Error deleting bot avatar, please try again"
+ "SUCCESS_DELETE": "봇 아바타가 성공적으로 삭제되었습니다.",
+ "ERROR_DELETE": "봇 아바타 삭제 중 오류가 발생했습니다. 다시 시도하십시오."
},
"BOT_CONFIGURATION": {
- "TITLE": "Select an agent bot",
- "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "TITLE": "에이전트 봇 선택",
+ "DESC": "받은 메시지함에 에이전트 봇을 할당하십시오. 초기 대화를 처리하고 필요시 실제 에이전트에게 전달할 수 있습니다.",
"SUBMIT": "업데이트",
- "DISCONNECT": "Disconnect bot",
- "SUCCESS_MESSAGE": "Successfully updated the agent bot.",
- "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot.",
- "ERROR_MESSAGE": "Could not update the agent bot. Please try again.",
- "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.",
- "SELECT_PLACEHOLDER": "Select bot"
+ "DISCONNECT": "봇 연결 해제",
+ "SUCCESS_MESSAGE": "에이전트 봇이 성공적으로 업데이트되었습니다.",
+ "DISCONNECTED_SUCCESS_MESSAGE": "에이전트 봇이 성공적으로 연결 해제되었습니다.",
+ "ERROR_MESSAGE": "에이전트 봇을 업데이트할 수 없습니다. 다시 시도하십시오.",
+ "DISCONNECTED_ERROR_MESSAGE": "에이전트 봇 연결을 해제할 수 없습니다. 다시 시도하십시오.",
+ "SELECT_PLACEHOLDER": "봇 선택"
},
"ADD": {
- "TITLE": "Agregar Bot",
+ "TITLE": "봇 추가",
"CANCEL_BUTTON_TEXT": "취소",
"API": {
- "SUCCESS_MESSAGE": "Bot added successfully.",
- "ERROR_MESSAGE": "Could not add bot. Please try again later."
+ "SUCCESS_MESSAGE": "봇이 성공적으로 추가되었습니다.",
+ "ERROR_MESSAGE": "봇을 추가할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"LIST": {
- "404": "Bot no encontrado. Puedes crear uno haciendo click en el botón 'Agregar Bot'.",
- "LOADING": "Fetching bots...",
+ "404": "봇을 찾을 수 없습니다. '봇 추가' 버튼을 클릭하여 봇을 생성할 수 있습니다.",
+ "LOADING": "봇을 가져오는 중...",
"TABLE_HEADER": {
- "DETAILS": "Detalles del Bot",
- "URL": "웹훅 URL"
+ "DETAILS": "봇 상세 정보",
+ "URL": "웹훅 URL",
+ "ACTIONS": "액션"
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
- "TITLE": "Delete bot",
+ "TITLE": "봇 삭제",
"CONFIRM": {
"TITLE": "삭제 확인",
- "MESSAGE": "Are you sure you want to delete {name}?",
- "YES": "Yes, Delete",
+ "MESSAGE": "{name}을(를) 삭제하시겠습니까?",
+ "YES": "예, 삭제합니다",
"NO": "아니요, 유지합니다"
},
"API": {
- "SUCCESS_MESSAGE": "Bot deleted successfully.",
- "ERROR_MESSAGE": "Could not delete bot. Please try again."
+ "SUCCESS_MESSAGE": "봇이 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "봇을 삭제할 수 없습니다. 다시 시도하십시오."
}
},
"EDIT": {
"BUTTON_TEXT": "수정",
- "TITLE": "Edit bot",
+ "TITLE": "봇 수정",
"API": {
- "SUCCESS_MESSAGE": "Bot updated successfully.",
- "ERROR_MESSAGE": "Could not update bot. Please try again."
+ "SUCCESS_MESSAGE": "봇이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "봇을 업데이트할 수 없습니다. 다시 시도하십시오."
}
},
"ACCESS_TOKEN": {
- "TITLE": "엑세스 토큰",
- "DESCRIPTION": "Copy the access token and save it securely",
- "COPY_SUCCESSFUL": "Access token copied to clipboard",
- "RESET_SUCCESS": "Access token regenerated successfully",
- "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ "TITLE": "액세스 토큰",
+ "DESCRIPTION": "액세스 토큰을 복사하여 안전하게 보관하십시오.",
+ "COPY_SUCCESSFUL": "액세스 토큰이 클립보드에 복사되었습니다.",
+ "RESET_SUCCESS": "액세스 토큰이 성공적으로 재생성되었습니다.",
+ "RESET_ERROR": "액세스 토큰을 재생성할 수 없습니다. 다시 시도하십시오."
},
"FORM": {
"AVATAR": {
- "LABEL": "Bot avatar"
+ "LABEL": "봇 아바타"
},
"NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Enter bot name",
- "REQUIRED": "Bot name is required"
+ "LABEL": "봇 이름",
+ "PLACEHOLDER": "봇 이름을 입력하십시오",
+ "REQUIRED": "봇 이름은 필수입니다."
},
"DESCRIPTION": {
- "LABEL": "내용",
- "PLACEHOLDER": "What does this bot do?"
+ "LABEL": "설명",
+ "PLACEHOLDER": "이 봇은 어떤 역할을 합니까?"
},
"WEBHOOK_URL": {
"LABEL": "웹훅 URL",
"PLACEHOLDER": "https://example.com/webhook",
- "REQUIRED": "Webhook URL is required"
+ "REQUIRED": "웹훅 URL은 필수입니다."
},
"ERRORS": {
- "NAME": "Bot name is required",
- "URL": "Webhook URL is required",
- "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ "NAME": "봇 이름은 필수입니다.",
+ "URL": "웹훅 URL은 필수입니다.",
+ "VALID_URL": "http:// 또는 https://로 시작하는 유효한 URL을 입력하십시오."
},
"CANCEL": "취소",
- "CREATE": "Create Bot",
- "UPDATE": "Update Bot"
+ "CREATE": "봇 생성",
+ "UPDATE": "봇 업데이트"
},
"WEBHOOK": {
- "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ "DESCRIPTION": "웹훅 봇을 구성하여 사용자 정의 서비스와 통합하십시오. 봇은 대화의 이벤트를 수신하고 처리하며 응답할 수 있습니다."
},
"TYPES": {
- "WEBHOOK": "Webhook bot"
+ "WEBHOOK": "웹훅 봇"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ko/agentMgmt.json
index d73b5c8ab..844ab2074 100644
--- a/app/javascript/dashboard/i18n/locale/ko/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/agentMgmt.json
@@ -3,14 +3,15 @@
"HEADER": "에이전트",
"HEADER_BTN_TXT": "에이전트 추가",
"LOADING": "에이전트 목록을 가져오는 중",
- "DESCRIPTION": "상담원은 사용자 메시지를 보고 응답할 수 있는 고객 지원팀의 구성원입니다. 아래 목록에는 계정의 모든 상담원이 나와 있습니다.",
+ "DESCRIPTION": "에이전트는 사용자 메시지를 보고 응답할 수 있는 고객 지원팀의 구성원입니다. 아래 목록에는 계정의 모든 에이전트가 나와 있습니다.",
"LEARN_MORE": "사용자 역할에 대해 알아보기",
"AGENT_TYPES": {
"ADMINISTRATOR": "관리자",
"AGENT": "에이전트"
},
+ "COUNT": "{n}명의 에이전트 | {n}명의 에이전트",
"LIST": {
- "404": "이 계정에 연결된 에이전트가 없음",
+ "404": "이 계정에 연결된 에이전트가 없습니다.",
"TITLE": "팀 내 에이전트 관리",
"DESC": "팀에 에이전트를 추가/제거할 수 있습니다.",
"NAME": "이름",
@@ -33,7 +34,7 @@
"AGENT_TYPE": {
"LABEL": "역할",
"PLACEHOLDER": "역할을 선택하십시오.",
- "ERROR": "역할이 필요함"
+ "ERROR": "역할이 필요합니다."
},
"EMAIL": {
"LABEL": "이메일 주소",
@@ -42,22 +43,22 @@
"SUBMIT": "에이전트 추가"
},
"API": {
- "SUCCESS_MESSAGE": "에이전트가 성공적으로 추가됨",
+ "SUCCESS_MESSAGE": "에이전트가 성공적으로 추가되었습니다.",
"EXIST_MESSAGE": "에이전트 이메일이 이미 사용 중입니다. 다른 이메일 주소를 시도하십시오.",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"API": {
- "SUCCESS_MESSAGE": "에이전트가 성공적으로 삭제됨",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "에이전트가 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
},
"CONFIRM": {
"TITLE": "삭제 확인",
"MESSAGE": "삭제하시겠습니까? ",
"YES": "예, 삭제합니다. ",
- "NO": "아니요, 유지해주세요. "
+ "NO": "아니요, 유지합니다. "
}
},
"EDIT": {
@@ -70,32 +71,34 @@
"AGENT_TYPE": {
"LABEL": "역할",
"PLACEHOLDER": "역할을 선택하십시오.",
- "ERROR": "역할이 필요함"
+ "ERROR": "역할이 필요합니다."
},
"EMAIL": {
"LABEL": "이메일 주소",
"PLACEHOLDER": "에이전트의 이메일 주소를 입력하십시오."
},
"AGENT_AVAILABILITY": {
- "LABEL": "유용성",
- "PLACEHOLDER": "가용성 상태를 선택하세요",
- "ERROR": "Availability is required"
+ "LABEL": "가용성",
+ "PLACEHOLDER": "가용성 상태를 선택하십시오.",
+ "ERROR": "가용성이 필요합니다."
},
"SUBMIT": "에이전트 수정"
},
"BUTTON_TEXT": "수정",
"CANCEL_BUTTON_TEXT": "취소",
"API": {
- "SUCCESS_MESSAGE": "에이전트가 성공적으로 업데이트됨",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "에이전트가 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
},
"PASSWORD_RESET": {
"ADMIN_RESET_BUTTON": "비밀번호 재설정",
- "ADMIN_SUCCESS_MESSAGE": "비밀번호 재설정 지침이 포함된 이메일이 에이전트로 전송됨",
- "SUCCESS_MESSAGE": "에이전트 비밀번호 재설정 성공",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "ADMIN_SUCCESS_MESSAGE": "비밀번호 재설정 안내 이메일이 에이전트에게 전송되었습니다.",
+ "SUCCESS_MESSAGE": "에이전트 비밀번호가 성공적으로 재설정되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
}
},
+ "SEARCH_PLACEHOLDER": "에이전트 검색...",
+ "NO_RESULTS": "검색과 일치하는 에이전트가 없습니다",
"SEARCH": {
"NO_RESULTS": "검색 결과가 없습니다."
},
@@ -110,13 +113,13 @@
},
"SEARCH": {
"NO_RESULTS": {
- "AGENT": "에이전트를 찾을 수 없음",
- "TEAM": "팀을 찾을 수 없음"
+ "AGENT": "에이전트를 찾을 수 없습니다.",
+ "TEAM": "팀을 찾을 수 없습니다."
},
"PLACEHOLDER": {
- "AGENT": "에이전트 찾기",
- "TEAM": "팀 찾기",
- "INPUT": "Search for agents"
+ "AGENT": "에이전트 검색",
+ "TEAM": "팀 검색",
+ "INPUT": "에이전트 검색"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ko/attributesMgmt.json
index 26d016e8f..fa334aa96 100644
--- a/app/javascript/dashboard/i18n/locale/ko/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/attributesMgmt.json
@@ -3,17 +3,20 @@
"HEADER": "사용자 지정 특성",
"HEADER_BTN_TXT": "사용자 지정 속성 추가하기",
"LOADING": "사용자 지정 속성들 가져오기",
- "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
- "LEARN_MORE": "Learn more about custom attributes",
+ "DESCRIPTION": "사용자 지정 속성은 연락처 또는 대화에 대한 추가 세부 정보를 추적합니다. 예를 들어 구독 플랜이나 첫 구매 날짜 등이 있습니다. 텍스트, 리스트, 숫자 등 다양한 유형의 사용자 지정 속성을 추가하여 필요한 정보를 수집할 수 있습니다.",
+ "LEARN_MORE": "사용자 지정 속성에 대해 더 알아보기",
+ "COUNT": "{n}개의 사용자 지정 속성 | {n}개의 사용자 지정 속성",
+ "SEARCH_PLACEHOLDER": "사용자 지정 속성 검색...",
+ "NO_RESULTS": "검색과 일치하는 사용자 지정 속성이 없습니다",
"ATTRIBUTE_MODELS": {
- "CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONVERSATION": "대화",
+ "CONTACT": "연락처"
},
"ATTRIBUTE_TYPES": {
"TEXT": "텍스트",
"NUMBER": "숫자",
"LINK": "링크",
- "DATE": "Date",
+ "DATE": "날짜",
"LIST": "리스트",
"CHECKBOX": "체크박스"
},
@@ -33,106 +36,110 @@
"ERROR": "설명이 필요합니다"
},
"MODEL": {
- "LABEL": "Applies to",
- "PLACEHOLDER": "Please select one",
- "ERROR": "Model is required"
+ "LABEL": "적용 대상",
+ "PLACEHOLDER": "하나를 선택하십시오",
+ "ERROR": "모델이 필요합니다"
},
"TYPE": {
- "LABEL": "Type",
- "PLACEHOLDER": "Please select a type",
- "ERROR": "Type is required",
+ "LABEL": "유형",
+ "PLACEHOLDER": "유형을 선택하십시오",
+ "ERROR": "유형이 필요합니다",
"LIST": {
- "LABEL": "List Values",
- "PLACEHOLDER": "Please enter value and press enter key",
- "ERROR": "Must have at least one value"
+ "LABEL": "리스트 값",
+ "PLACEHOLDER": "값을 입력하고 엔터 키를 누르십시오",
+ "ERROR": "최소 하나의 값이 필요합니다"
}
},
"KEY": {
- "LABEL": "Key",
- "PLACEHOLDER": "Enter custom attribute key",
- "ERROR": "Key is required",
- "IN_VALID": "Invalid key"
+ "LABEL": "키",
+ "PLACEHOLDER": "사용자 지정 속성 키 입력",
+ "ERROR": "키가 필요합니다",
+ "IN_VALID": "잘못된 키입니다"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "정규식 패턴",
+ "PLACEHOLDER": "사용자 지정 속성 정규식 패턴을 입력하십시오. (선택 사항)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "정규식 힌트",
+ "PLACEHOLDER": "정규식 패턴 힌트를 입력하십시오. (선택 사항)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "정규식 유효성 검사 활성화"
+ },
+ "BADGES": {
+ "PRE_CHAT": "사전 채팅",
+ "RESOLUTION": "해결"
}
},
"API": {
- "SUCCESS_MESSAGE": "Custom Attribute added successfully!",
- "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later."
+ "SUCCESS_MESSAGE": "사용자 지정 속성이 성공적으로 추가되었습니다!",
+ "ERROR_MESSAGE": "사용자 지정 속성을 만들 수 없습니다. 나중에 다시 시도하십시오."
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"API": {
- "SUCCESS_MESSAGE": "Custom Attribute deleted successfully.",
- "ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
+ "SUCCESS_MESSAGE": "사용자 지정 속성이 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "사용자 지정 속성을 삭제할 수 없습니다. 다시 시도하십시오."
},
"CONFIRM": {
- "TITLE": "{attributeName}팀을 삭제하시겠습니까?",
- "PLACE_HOLDER": "Please type {attributeName} to confirm",
- "MESSAGE": "Deleting will remove the custom attribute",
+ "TITLE": "{attributeName}을(를) 삭제하시겠습니까?",
+ "PLACE_HOLDER": "확인하려면 {attributeName}을(를) 입력하십시오",
+ "MESSAGE": "삭제하면 사용자 지정 속성이 제거됩니다",
"YES": "삭제 ",
"NO": "취소"
}
},
"EDIT": {
- "TITLE": "Edit Custom Attribute",
+ "TITLE": "사용자 지정 속성 수정",
"UPDATE_BUTTON_TEXT": "업데이트",
"TYPE": {
"LIST": {
- "LABEL": "List Values",
- "PLACEHOLDER": "Please enter values and press enter key"
+ "LABEL": "리스트 값",
+ "PLACEHOLDER": "값을 입력하고 엔터 키를 누르십시오"
}
},
"API": {
- "SUCCESS_MESSAGE": "Custom Attribute updated successfully",
- "ERROR_MESSAGE": "There was an error updating custom attribute, please try again"
+ "SUCCESS_MESSAGE": "사용자 지정 속성이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "사용자 지정 속성 업데이트 중 오류가 발생했습니다. 다시 시도하십시오"
}
},
"TABS": {
"HEADER": "사용자 지정 특성",
- "CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONVERSATION": "대화",
+ "CONTACT": "연락처"
},
"LIST": {
"TABLE_HEADER": {
"NAME": "이름",
"DESCRIPTION": "내용",
- "TYPE": "Type",
- "KEY": "Key"
+ "TYPE": "유형",
+ "KEY": "키"
},
"BUTTONS": {
"EDIT": "수정",
"DELETE": "삭제"
},
"EMPTY_RESULT": {
- "404": "There are no custom attributes created",
- "NOT_FOUND": "There are no custom attributes configured"
+ "404": "생성된 사용자 지정 속성이 없습니다",
+ "NOT_FOUND": "구성된 사용자 지정 속성이 없습니다"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "정규식 패턴",
+ "PLACEHOLDER": "사용자 지정 속성 정규식 패턴을 입력하십시오. (선택 사항)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "정규식 힌트",
+ "PLACEHOLDER": "정규식 패턴 힌트를 입력하십시오. (선택 사항)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "정규식 유효성 검사 활성화"
}
},
"BADGES": {
- "PRE_CHAT": "Pre-chat",
- "RESOLUTION": "Resolution"
+ "PRE_CHAT": "사전 채팅",
+ "RESOLUTION": "해결"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/auditLogs.json b/app/javascript/dashboard/i18n/locale/ko/auditLogs.json
index 9bfdb6d6e..05c0a94dd 100644
--- a/app/javascript/dashboard/i18n/locale/ko/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ko/auditLogs.json
@@ -1,77 +1,77 @@
{
"AUDIT_LOGS": {
- "HEADER": "Audit Logs",
- "HEADER_BTN_TXT": "Add Audit Logs",
- "LOADING": "Fetching Audit Logs",
- "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
- "LEARN_MORE": "Learn more about audit logs",
- "SEARCH_404": "이 쿼리와 일치하는 항목이 없음",
- "SIDEBAR_TXT": "
Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
+ "HEADER": "감사 로그",
+ "HEADER_BTN_TXT": "감사 로그 추가",
+ "LOADING": "감사 로그를 가져오는 중",
+ "DESCRIPTION": "감사 로그는 계정의 활동 기록을 유지하여 계정, 팀 또는 서비스를 추적하고 감사할 수 있도록 합니다.",
+ "LEARN_MORE": "감사 로그에 대해 알아보기",
+ "SEARCH_404": "이 쿼리와 일치하는 항목이 없습니다.",
+ "SIDEBAR_TXT": "
감사 로그
감사 로그는 Chatwoot 시스템의 이벤트 및 작업에 대한 기록입니다.
",
"LIST": {
- "404": "There are no Audit Logs available in this account.",
- "TITLE": "Manage Audit Logs",
- "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
+ "404": "이 계정에 사용 가능한 감사 로그가 없습니다.",
+ "TITLE": "감사 로그 관리",
+ "DESC": "감사 로그는 Chatwoot 시스템의 이벤트 및 작업에 대한 기록입니다.",
"TABLE_HEADER": {
- "ACTIVITY": "User",
- "TIME": "Action",
+ "ACTIVITY": "활동",
+ "TIME": "시간",
"IP_ADDRESS": "IP 주소"
}
},
"API": {
- "SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "감사 로그를 성공적으로 가져왔습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
},
- "DEFAULT_USER": "System",
+ "DEFAULT_USER": "시스템",
"AUTOMATION_RULE": {
- "ADD": "{agentName} created a new automation rule (#{id})",
- "EDIT": "{agentName} updated an automation rule (#{id})",
- "DELETE": "{agentName} deleted an automation rule (#{id})"
+ "ADD": "{agentName}님이 새 자동화 규칙을 생성했습니다 (#{id})",
+ "EDIT": "{agentName}님이 자동화 규칙을 업데이트했습니다 (#{id})",
+ "DELETE": "{agentName}님이 자동화 규칙을 삭제했습니다 (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "{agentName} invited {invitee} to the account as an {role}",
+ "ADD": "{agentName}님이 {invitee}님을 {role}(으)로 계정에 초대했습니다",
"EDIT": {
- "SELF": "{agentName} changed their {attributes} to {values}",
- "OTHER": "{agentName} changed {attributes} of {user} to {values}",
- "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
+ "SELF": "{agentName}님이 자신의 {attributes}을(를) {values}(으)로 변경했습니다",
+ "OTHER": "{agentName}님이 {user}님의 {attributes}을(를) {values}(으)로 변경했습니다",
+ "DELETED": "{agentName}님이 삭제된 사용자의 {attributes}을(를) {values}(으)로 변경했습니다"
}
},
"INBOX": {
- "ADD": "{agentName} created a new inbox (#{id})",
- "EDIT": "{agentName} updated an inbox (#{id})",
- "DELETE": "{agentName} deleted an inbox (#{id})"
+ "ADD": "{agentName}님이 새 받은 메시지함을 생성했습니다 (#{id})",
+ "EDIT": "{agentName}님이 받은 메시지함을 업데이트했습니다 (#{id})",
+ "DELETE": "{agentName}님이 받은 메시지함을 삭제했습니다 (#{id})"
},
"WEBHOOK": {
- "ADD": "{agentName} created a new webhook (#{id})",
- "EDIT": "{agentName} updated a webhook (#{id})",
- "DELETE": "{agentName} deleted a webhook (#{id})"
+ "ADD": "{agentName}님이 새 웹훅을 생성했습니다 (#{id})",
+ "EDIT": "{agentName}님이 웹훅을 업데이트했습니다 (#{id})",
+ "DELETE": "{agentName}님이 웹훅을 삭제했습니다 (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "{agentName} signed in",
- "SIGN_OUT": "{agentName} signed out"
+ "SIGN_IN": "{agentName}님이 로그인했습니다",
+ "SIGN_OUT": "{agentName}님이 로그아웃했습니다"
},
"TEAM": {
- "ADD": "{agentName} created a new team (#{id})",
- "EDIT": "{agentName} updated a team (#{id})",
- "DELETE": "{agentName} deleted a team (#{id})"
+ "ADD": "{agentName}님이 새 팀을 생성했습니다 (#{id})",
+ "EDIT": "{agentName}님이 팀을 업데이트했습니다 (#{id})",
+ "DELETE": "{agentName}님이 팀을 삭제했습니다 (#{id})"
},
"MACRO": {
- "ADD": "{agentName} created a new macro (#{id})",
- "EDIT": "{agentName} updated a macro (#{id})",
- "DELETE": "{agentName} deleted a macro (#{id})"
+ "ADD": "{agentName}님이 새 매크로를 생성했습니다 (#{id})",
+ "EDIT": "{agentName}님이 매크로를 업데이트했습니다 (#{id})",
+ "DELETE": "{agentName}님이 매크로를 삭제했습니다 (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
- "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
+ "ADD": "{agentName}님이 {user}님을 받은 메시지함(#{inbox_id})에 추가했습니다",
+ "REMOVE": "{agentName}님이 {user}님을 받은 메시지함(#{inbox_id})에서 제거했습니다"
},
"TEAM_MEMBER": {
- "ADD": "{agentName} added {user} to the team(#{team_id})",
- "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
+ "ADD": "{agentName}님이 {user}님을 팀(#{team_id})에 추가했습니다",
+ "REMOVE": "{agentName}님이 {user}님을 팀(#{team_id})에서 제거했습니다"
},
"ACCOUNT": {
- "EDIT": "{agentName} updated the account configuration (#{id})"
+ "EDIT": "{agentName}님이 계정 구성을 업데이트했습니다 (#{id})"
},
"CONVERSATION": {
- "DELETE": "{agentName} deleted conversation #{id}"
+ "DELETE": "{agentName}님이 대화 #{id}을(를) 삭제했습니다"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/automation.json b/app/javascript/dashboard/i18n/locale/ko/automation.json
index e8e8de6b5..19636cb22 100644
--- a/app/javascript/dashboard/i18n/locale/ko/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ko/automation.json
@@ -1,55 +1,58 @@
{
"AUTOMATION": {
- "HEADER": "Automation",
+ "HEADER": "자동화",
"DESCRIPTION": "자동화를 통해 라벨을 추가하고 가장 적합한 상담원에게 대화를 배정하는 등 수작업이 필요한 기존 프로세스를 대체하고 간소화할 수 있습니다. 이를 통해 팀은 일상적인 업무에 소요되는 시간을 줄이면서 자신의 강점에 집중할 수 있습니다.",
- "LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
- "LOADING": "Fetching automation rules",
+ "LEARN_MORE": "자동화에 대해 더 알아보기",
+ "COUNT": "{n}개의 자동화 규칙 | {n}개의 자동화 규칙",
+ "HEADER_BTN_TXT": "자동화 규칙 추가",
+ "LOADING": "자동화 규칙 가져오는 중",
+ "SEARCH_PLACEHOLDER": "자동화 규칙 검색...",
+ "NO_RESULTS": "검색과 일치하는 자동화 규칙이 없습니다",
"ADD": {
- "TITLE": "Add Automation Rule",
+ "TITLE": "자동화 규칙 추가",
"SUBMIT": "만들기",
"CANCEL_BUTTON_TEXT": "취소",
"FORM": {
"NAME": {
- "LABEL": "Rule Name",
- "PLACEHOLDER": "Enter rule name",
+ "LABEL": "규칙 이름",
+ "PLACEHOLDER": "규칙 이름을 입력하십시오",
"ERROR": "이름이 필요합니다"
},
"DESC": {
"LABEL": "내용",
- "PLACEHOLDER": "Enter rule description",
+ "PLACEHOLDER": "규칙 설명을 입력하십시오",
"ERROR": "설명이 필요합니다"
},
"EVENT": {
- "LABEL": "Event",
- "PLACEHOLDER": "Please select one",
- "ERROR": "Event is required"
+ "LABEL": "이벤트",
+ "PLACEHOLDER": "하나를 선택하십시오",
+ "ERROR": "이벤트가 필요합니다"
},
"CONDITIONS": {
- "LABEL": "Conditions"
+ "LABEL": "조건"
},
"ACTIONS": {
"LABEL": "액션"
}
},
- "CONDITION_BUTTON_LABEL": "Add Condition",
- "ACTION_BUTTON_LABEL": "Add Action",
+ "CONDITION_BUTTON_LABEL": "조건 추가",
+ "ACTION_BUTTON_LABEL": "액션 추가",
"API": {
- "SUCCESS_MESSAGE": "Automation rule added successfully",
- "ERROR_MESSAGE": "Could not able to create a automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "자동화 규칙이 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "자동화 규칙을 만들 수 없습니다. 나중에 다시 시도하십시오"
}
},
"LIST": {
"TABLE_HEADER": {
"NAME": "이름",
- "DESCRIPTION": "내용",
- "ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "ACTIVE": "활성",
+ "CREATED_ON": "생성일",
+ "ACTIONS": "액션"
},
- "404": "No automation rules found"
+ "404": "자동화 규칙을 찾을 수 없습니다"
},
"DELETE": {
- "TITLE": "Delete Automation Rule",
+ "TITLE": "자동화 규칙 삭제",
"SUBMIT": "삭제",
"CANCEL_BUTTON_TEXT": "취소",
"CONFIRM": {
@@ -59,24 +62,24 @@
"NO": "아니요, 유지해주세요. "
},
"API": {
- "SUCCESS_MESSAGE": "Automation rule deleted successfully",
- "ERROR_MESSAGE": "Could not able to delete a automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "자동화 규칙이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "자동화 규칙을 삭제할 수 없습니다. 나중에 다시 시도하십시오"
}
},
"EDIT": {
- "TITLE": "Edit Automation Rule",
+ "TITLE": "자동화 규칙 수정",
"SUBMIT": "업데이트",
"CANCEL_BUTTON_TEXT": "취소",
"API": {
- "SUCCESS_MESSAGE": "Automation rule updated successfully",
- "ERROR_MESSAGE": "Could not update automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "자동화 규칙이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "자동화 규칙을 업데이트할 수 없습니다. 나중에 다시 시도하십시오"
}
},
"CLONE": {
- "TOOLTIP": "Clone",
+ "TOOLTIP": "복제",
"API": {
- "SUCCESS_MESSAGE": "Automation cloned successfully",
- "ERROR_MESSAGE": "Could not clone automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "자동화가 성공적으로 복제되었습니다",
+ "ERROR_MESSAGE": "자동화 규칙을 복제할 수 없습니다. 나중에 다시 시도하십시오"
}
},
"FORM": {
@@ -84,100 +87,101 @@
"CREATE": "만들기",
"DELETE": "삭제",
"CANCEL": "취소",
- "RESET_MESSAGE": "Changing event type will reset the conditions and events you have added below"
+ "RESET_MESSAGE": "이벤트 유형을 변경하면 아래에 추가한 조건과 이벤트가 초기화됩니다"
},
"CONDITION": {
- "DELETE_MESSAGE": "You need to have atleast one condition to save",
- "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes",
- "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes"
+ "DELETE_MESSAGE": "저장하려면 최소 하나의 조건이 필요합니다",
+ "CONTACT_CUSTOM_ATTR_LABEL": "연락처 사용자 지정 속성",
+ "CONVERSATION_CUSTOM_ATTR_LABEL": "대화 사용자 지정 속성"
},
"ACTION": {
- "DELETE_MESSAGE": "You need to have atleast one action to save",
- "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
- "EMAIL_INPUT_PLACEHOLDER": "Enter email",
- "URL_INPUT_PLACEHOLDER": "Enter URL"
+ "DELETE_MESSAGE": "저장하려면 최소 하나의 액션이 필요합니다",
+ "TEAM_MESSAGE_INPUT_PLACEHOLDER": "여기에 메시지를 입력하십시오",
+ "TEAM_DROPDOWN_PLACEHOLDER": "팀 선택",
+ "EMAIL_INPUT_PLACEHOLDER": "이메일 입력",
+ "URL_INPUT_PLACEHOLDER": "URL 입력"
},
"TOGGLE": {
- "ACTIVATION_TITLE": "Activate Automation Rule",
- "DEACTIVATION_TITLE": "Deactivate Automation Rule",
- "ACTIVATION_DESCRIPTION": "This action will activate the automation rule '{automationName}'. Are you sure you want to proceed?",
- "DEACTIVATION_DESCRIPTION": "This action will deactivate the automation rule '{automationName}'. Are you sure you want to proceed?",
- "ACTIVATION_SUCCESFUL": "Automation Rule Activated Successfully",
- "DEACTIVATION_SUCCESFUL": "Automation Rule Deactivated Successfully",
- "ACTIVATION_ERROR": "Could not Activate Automation, Please try again later",
- "DEACTIVATION_ERROR": "Could not Deactivate Automation, Please try again later",
+ "ACTIVATION_TITLE": "자동화 규칙 활성화",
+ "DEACTIVATION_TITLE": "자동화 규칙 비활성화",
+ "ACTIVATION_DESCRIPTION": "이 작업은 자동화 규칙 '{automationName}'을(를) 활성화합니다. 계속하시겠습니까?",
+ "DEACTIVATION_DESCRIPTION": "이 작업은 자동화 규칙 '{automationName}'을(를) 비활성화합니다. 계속하시겠습니까?",
+ "ACTIVATION_SUCCESFUL": "자동화 규칙이 성공적으로 활성화되었습니다",
+ "DEACTIVATION_SUCCESFUL": "자동화 규칙이 성공적으로 비활성화되었습니다",
+ "ACTIVATION_ERROR": "자동화를 활성화할 수 없습니다. 나중에 다시 시도하십시오",
+ "DEACTIVATION_ERROR": "자동화를 비활성화할 수 없습니다. 나중에 다시 시도하십시오",
"CONFIRMATION_LABEL": "예",
"CANCEL_LABEL": "아니오"
},
"ATTACHMENT": {
- "UPLOAD_ERROR": "Could not upload attachment, Please try again",
- "LABEL_IDLE": "Upload Attachment",
+ "UPLOAD_ERROR": "첨부 파일을 업로드할 수 없습니다. 다시 시도하십시오",
+ "LABEL_IDLE": "첨부 파일 업로드",
"LABEL_UPLOADING": "업로드 중...",
- "LABEL_UPLOADED": "Successfully Uploaded",
- "LABEL_UPLOAD_FAILED": "Upload Failed"
+ "LABEL_UPLOADED": "업로드 완료",
+ "LABEL_UPLOAD_FAILED": "업로드 실패"
},
"ERRORS": {
- "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
- "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "ATTRIBUTE_KEY_REQUIRED": "속성 키가 필요합니다",
+ "FILTER_OPERATOR_REQUIRED": "필터 연산자가 필요합니다",
"VALUE_REQUIRED": "값이 필요합니다.",
- "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
- "ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
- "ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
- "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "값은 1에서 998 사이여야 합니다",
+ "ACTION_PARAMETERS_REQUIRED": "액션 매개변수가 필요합니다",
+ "ATLEAST_ONE_CONDITION_REQUIRED": "최소 하나의 조건이 필요합니다",
+ "ATLEAST_ONE_ACTION_REQUIRED": "최소 하나의 액션이 필요합니다"
},
"NONE_OPTION": "없음",
"EVENTS": {
- "CONVERSATION_CREATED": "Conversation Created",
- "CONVERSATION_UPDATED": "Conversation Updated",
- "MESSAGE_CREATED": "Message Created",
- "CONVERSATION_RESOLVED": "Conversation Resolved",
- "CONVERSATION_OPENED": "Conversation Opened"
+ "CONVERSATION_CREATED": "대화 생성됨",
+ "CONVERSATION_UPDATED": "대화 업데이트됨",
+ "MESSAGE_CREATED": "메시지 생성됨",
+ "CONVERSATION_RESOLVED": "대화 해결됨",
+ "CONVERSATION_OPENED": "대화 열림"
},
"ACTIONS": {
- "ASSIGN_AGENT": "Assign to Agent",
- "ASSIGN_TEAM": "Assign a Team",
- "ADD_LABEL": "Add a Label",
- "REMOVE_LABEL": "Remove a Label",
- "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
- "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "ASSIGN_AGENT": "에이전트에게 배정",
+ "ASSIGN_TEAM": "팀 배정",
+ "ADD_LABEL": "라벨 추가",
+ "REMOVE_LABEL": "라벨 제거",
+ "SEND_EMAIL_TO_TEAM": "팀에 이메일 보내기",
+ "SEND_EMAIL_TRANSCRIPT": "이메일 대화록 보내기",
"MUTE_CONVERSATION": "대화 음소거",
- "SNOOZE_CONVERSATION": "Snooze Conversation",
- "RESOLVE_CONVERSATION": "Resolve Conversation",
- "SEND_WEBHOOK_EVENT": "Send Webhook Event",
- "SEND_ATTACHMENT": "Send Attachment",
- "SEND_MESSAGE": "Send a Message",
- "ADD_PRIVATE_NOTE": "Add a Private Note",
- "CHANGE_PRIORITY": "Change Priority",
- "ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "SNOOZE_CONVERSATION": "대화 일시 중지",
+ "RESOLVE_CONVERSATION": "대화 해결",
+ "SEND_WEBHOOK_EVENT": "Webhook 이벤트 보내기",
+ "SEND_ATTACHMENT": "첨부 파일 보내기",
+ "SEND_MESSAGE": "메시지 보내기",
+ "ADD_PRIVATE_NOTE": "비공개 노트 추가",
+ "CHANGE_PRIORITY": "우선순위 변경",
+ "ADD_SLA": "SLA 추가",
+ "OPEN_CONVERSATION": "대화 열기",
+ "PENDING_CONVERSATION": "대화를 보류 중으로 표시"
},
"MESSAGE_TYPES": {
- "INCOMING": "Incoming Message",
- "OUTGOING": "Outgoing Message"
+ "INCOMING": "수신 메시지",
+ "OUTGOING": "발신 메시지"
},
"PRIORITY_TYPES": {
"NONE": "없음",
- "LOW": "Low",
- "MEDIUM": "Medium",
- "HIGH": "High",
- "URGENT": "Urgent"
+ "LOW": "낮음",
+ "MEDIUM": "보통",
+ "HIGH": "높음",
+ "URGENT": "긴급"
},
"ATTRIBUTES": {
- "MESSAGE_TYPE": "Message Type",
- "MESSAGE_CONTAINS": "Message Contains",
+ "MESSAGE_TYPE": "메시지 유형",
+ "MESSAGE_CONTAINS": "메시지 포함",
"EMAIL": "이메일",
"INBOX": "받은 메시지함",
- "CONVERSATION_LANGUAGE": "Conversation Language",
+ "CONVERSATION_LANGUAGE": "대화 언어",
"PHONE_NUMBER": "전화 번호",
"STATUS": "상태",
- "BROWSER_LANGUAGE": "언어 표시",
- "MAIL_SUBJECT": "Email Subject",
+ "BROWSER_LANGUAGE": "브라우저 언어",
+ "MAIL_SUBJECT": "이메일 제목",
"COUNTRY_NAME": "국가",
- "REFERER_LINK": "Referrer Link",
- "ASSIGNEE_NAME": "Assignee",
- "TEAM_NAME": "Team",
- "PRIORITY": "Priority",
+ "REFERER_LINK": "참조 링크",
+ "ASSIGNEE_NAME": "담당자",
+ "TEAM_NAME": "팀",
+ "PRIORITY": "우선순위",
"LABELS": "라벨"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/bulkActions.json b/app/javascript/dashboard/i18n/locale/ko/bulkActions.json
index d1c06a0ce..19b482966 100644
--- a/app/javascript/dashboard/i18n/locale/ko/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ko/bulkActions.json
@@ -1,41 +1,45 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "CONVERSATIONS_SELECTED": "{conversationCount}개의 대화가 선택되었습니다",
"AGENT_SELECT_LABEL": "에이전트 선택",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign {conversationCount} {conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "할당하다",
+ "ASSIGN_CONFIRMATION_LABEL": "{conversationCount}개의 {conversationLabel}을(를) 배정하시겠습니까?",
+ "UNASSIGN_CONFIRMATION_LABEL": "{conversationCount}개의 {conversationLabel} 배정을 해제하시겠습니까?",
+ "GO_BACK_LABEL": "뒤로 가기",
+ "ASSIGN_LABEL": "배정",
"YES": "예",
"SEARCH_INPUT_PLACEHOLDER": "검색",
- "ASSIGN_AGENT_TOOLTIP": "Assign agent",
- "ASSIGN_TEAM_TOOLTIP": "Assign team",
- "ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign conversations. Please try again.",
- "RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
- "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
- "ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
+ "ASSIGN_AGENT_TOOLTIP": "에이전트 배정",
+ "ASSIGN_TEAM_TOOLTIP": "팀 배정",
+ "ASSIGN_SUCCESFUL": "대화가 성공적으로 배정되었습니다.",
+ "ASSIGN_FAILED": "대화 배정에 실패했습니다. 다시 시도하십시오.",
+ "RESOLVE_SUCCESFUL": "대화가 성공적으로 해결되었습니다.",
+ "RESOLVE_FAILED": "대화 해결에 실패했습니다. 다시 시도하십시오.",
+ "ALL_CONVERSATIONS_SELECTED_ALERT": "이 페이지에 표시된 대화만 선택되었습니다.",
+ "AGENT_LIST_LOADING": "에이전트 로딩 중",
"UPDATE": {
- "CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL": "Snooze",
- "UPDATE_SUCCESFUL": "Conversation status updated successfully.",
- "UPDATE_FAILED": "Failed to update conversations. Please try again."
+ "CHANGE_STATUS": "상태 변경",
+ "SNOOZE_UNTIL": "일시 중지",
+ "UPDATE_SUCCESFUL": "대화 상태가 성공적으로 업데이트되었습니다.",
+ "UPDATE_FAILED": "대화 업데이트에 실패했습니다. 다시 시도하십시오."
+ },
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "필수 속성이 누락되어 대화를 해결할 수 없습니다",
+ "PARTIAL_SUCCESS": "일부 대화는 필수 속성이 필요하여 건너뛰었습니다"
},
"LABELS": {
- "ASSIGN_LABELS": "Assign labels",
+ "ASSIGN_LABELS": "라벨 배정",
"NO_LABELS_FOUND": "라벨을 찾을 수 없습니다",
- "ASSIGN_SELECTED_LABELS": "Assign selected labels",
- "ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_SELECTED_LABELS": "선택한 라벨 배정",
+ "ASSIGN_SUCCESFUL": "라벨이 성공적으로 배정되었습니다.",
+ "ASSIGN_FAILED": "라벨 배정에 실패했습니다. 다시 시도하십시오."
},
"TEAMS": {
"TEAM_SELECT_LABEL": "팀 선택",
"NONE": "없음",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign team. Please try again."
+ "NO_TEAMS_AVAILABLE": "이 계정에 추가된 팀이 없습니다.",
+ "ASSIGN_SELECTED_TEAMS": "선택한 팀 배정",
+ "ASSIGN_SUCCESFUL": "팀이 성공적으로 배정되었습니다.",
+ "ASSIGN_FAILED": "팀 배정에 실패했습니다. 다시 시도하십시오."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/campaign.json b/app/javascript/dashboard/i18n/locale/ko/campaign.json
index 9c65e80ca..f6680d01a 100644
--- a/app/javascript/dashboard/i18n/locale/ko/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/ko/campaign.json
@@ -1,8 +1,8 @@
{
"CAMPAIGN": {
"LIVE_CHAT": {
- "HEADER_TITLE": "Live chat campaigns",
- "NEW_CAMPAIGN": "Create campaign",
+ "HEADER_TITLE": "실시간 채팅 캠페인",
+ "NEW_CAMPAIGN": "캠페인 생성",
"CARD": {
"STATUS": {
"ENABLED": "사용함",
@@ -16,198 +16,198 @@
}
},
"EMPTY_STATE": {
- "TITLE": "No live chat campaigns are available",
- "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ "TITLE": "사용 가능한 실시간 채팅 캠페인이 없습니다.",
+ "SUBTITLE": "사전 메시지를 사용하여 고객과 소통하십시오. '캠페인 생성'을 클릭하여 시작하십시오."
},
"CREATE": {
- "TITLE": "Create a live chat campaign",
+ "TITLE": "실시간 채팅 캠페인 생성",
"CANCEL_BUTTON_TEXT": "취소",
"CREATE_BUTTON_TEXT": "만들기",
"FORM": {
"TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LABEL": "제목",
+ "PLACEHOLDER": "캠페인 제목을 입력하십시오.",
+ "ERROR": "제목이 필요합니다."
},
"MESSAGE": {
"LABEL": "메시지",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
+ "PLACEHOLDER": "캠페인 메시지를 입력하십시오.",
+ "ERROR": "메시지가 필요합니다."
},
"INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
+ "LABEL": "받은 메시지함 선택",
+ "PLACEHOLDER": "받은 메시지함 선택",
+ "ERROR": "받은 메시지함이 필요합니다."
},
"SENT_BY": {
"LABEL": "보낸 사람",
- "PLACEHOLDER": "Please select sender",
- "ERROR": "Sender is required"
+ "PLACEHOLDER": "발신자를 선택하십시오.",
+ "ERROR": "발신자가 필요합니다."
},
"END_POINT": {
"LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
+ "PLACEHOLDER": "URL을 입력하십시오.",
"ERROR": "올바른 URL을 입력하십시오."
},
"TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
+ "LABEL": "페이지 체류 시간(초)",
+ "PLACEHOLDER": "시간을 입력하십시오.",
+ "ERROR": "페이지 체류 시간이 필요합니다."
},
"OTHER_PREFERENCES": {
- "TITLE": "Other preferences",
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ "TITLE": "기타 설정",
+ "ENABLED": "캠페인 활성화",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "업무 시간에만 실행"
},
"BUTTONS": {
"CREATE": "만들기",
"CANCEL": "취소"
},
"API": {
- "SUCCESS_MESSAGE": "Live chat campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "SUCCESS_MESSAGE": "실시간 채팅 캠페인이 성공적으로 생성되었습니다.",
+ "ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
}
},
"EDIT": {
- "TITLE": "Edit live chat campaign",
+ "TITLE": "실시간 채팅 캠페인 수정",
"FORM": {
"API": {
- "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "SUCCESS_MESSAGE": "실시간 채팅 캠페인이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
}
}
},
"SMS": {
- "HEADER_TITLE": "SMS campaigns",
- "NEW_CAMPAIGN": "Create campaign",
+ "HEADER_TITLE": "SMS 캠페인",
+ "NEW_CAMPAIGN": "캠페인 생성",
"EMPTY_STATE": {
- "TITLE": "No SMS campaigns are available",
- "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ "TITLE": "사용 가능한 SMS 캠페인이 없습니다.",
+ "SUBTITLE": "SMS 캠페인을 시작하여 고객에게 직접 연락하십시오. 제안을 보내거나 공지를 쉽게 할 수 있습니다. '캠페인 생성'을 클릭하여 시작하십시오."
},
"CARD": {
"STATUS": {
- "COMPLETED": "Completed",
- "SCHEDULED": "Scheduled"
+ "COMPLETED": "완료됨",
+ "SCHEDULED": "예약됨"
},
"CAMPAIGN_DETAILS": {
- "SENT_FROM": "Sent from",
- "ON": "on"
+ "SENT_FROM": "발신",
+ "ON": "일시"
}
},
"CREATE": {
- "TITLE": "Create SMS campaign",
+ "TITLE": "SMS 캠페인 생성",
"CANCEL_BUTTON_TEXT": "취소",
"CREATE_BUTTON_TEXT": "만들기",
"FORM": {
"TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LABEL": "제목",
+ "PLACEHOLDER": "캠페인 제목을 입력하십시오.",
+ "ERROR": "제목이 필요합니다."
},
"MESSAGE": {
"LABEL": "메시지",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
+ "PLACEHOLDER": "캠페인 메시지를 입력하십시오.",
+ "ERROR": "메시지가 필요합니다."
},
"INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
+ "LABEL": "받은 메시지함 선택",
+ "PLACEHOLDER": "받은 메시지함 선택",
+ "ERROR": "받은 메시지함이 필요합니다."
},
"AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
+ "LABEL": "대상",
+ "PLACEHOLDER": "고객 라벨을 선택하십시오.",
+ "ERROR": "대상이 필요합니다."
},
"SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "ERROR": "Scheduled time is required"
+ "LABEL": "예약 시간",
+ "PLACEHOLDER": "시간을 선택하십시오.",
+ "ERROR": "예약 시간이 필요합니다."
},
"BUTTONS": {
"CREATE": "만들기",
"CANCEL": "취소"
},
"API": {
- "SUCCESS_MESSAGE": "SMS campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "SUCCESS_MESSAGE": "SMS 캠페인이 성공적으로 생성되었습니다.",
+ "ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
}
}
},
"WHATSAPP": {
"HEADER_TITLE": "WhatsApp 캠페인",
- "NEW_CAMPAIGN": "Create campaign",
+ "NEW_CAMPAIGN": "캠페인 생성",
"EMPTY_STATE": {
- "TITLE": "사용 가능한 WhatsApp 캠페인 없음",
- "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ "TITLE": "사용 가능한 WhatsApp 캠페인이 없습니다.",
+ "SUBTITLE": "WhatsApp 캠페인을 시작하여 고객에게 직접 연락하십시오. 제안을 보내거나 공지를 쉽게 할 수 있습니다. '캠페인 생성'을 클릭하여 시작하십시오."
},
"CARD": {
"STATUS": {
- "COMPLETED": "Completed",
- "SCHEDULED": "Scheduled"
+ "COMPLETED": "완료됨",
+ "SCHEDULED": "예약됨"
},
"CAMPAIGN_DETAILS": {
- "SENT_FROM": "Sent from",
- "ON": "on"
+ "SENT_FROM": "발신",
+ "ON": "일시"
}
},
"CREATE": {
- "TITLE": "Create WhatsApp campaign",
+ "TITLE": "WhatsApp 캠페인 생성",
"CANCEL_BUTTON_TEXT": "취소",
"CREATE_BUTTON_TEXT": "만들기",
"FORM": {
"TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LABEL": "제목",
+ "PLACEHOLDER": "캠페인 제목을 입력하십시오.",
+ "ERROR": "제목이 필요합니다."
},
"INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
+ "LABEL": "받은 메시지함 선택",
+ "PLACEHOLDER": "받은 메시지함 선택",
+ "ERROR": "받은 메시지함이 필요합니다."
},
"TEMPLATE": {
- "LABEL": "WhatsApp Template",
- "PLACEHOLDER": "Select a template",
- "INFO": "Select a template to use for this campaign.",
- "ERROR": "Template is required",
- "PREVIEW_TITLE": "Process {templateName}",
+ "LABEL": "WhatsApp 템플릿",
+ "PLACEHOLDER": "템플릿을 선택하십시오.",
+ "INFO": "이 캠페인에 사용할 템플릿을 선택하십시오.",
+ "ERROR": "템플릿이 필요합니다.",
+ "PREVIEW_TITLE": "{templateName} 처리",
"LANGUAGE": "언어",
- "CATEGORY": "Category",
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ "CATEGORY": "카테고리",
+ "VARIABLES_LABEL": "변수",
+ "VARIABLE_PLACEHOLDER": "{variable}의 값을 입력하십시오."
},
"AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
+ "LABEL": "대상",
+ "PLACEHOLDER": "고객 라벨을 선택하십시오.",
+ "ERROR": "대상이 필요합니다."
},
"SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "ERROR": "Scheduled time is required"
+ "LABEL": "예약 시간",
+ "PLACEHOLDER": "시간을 선택하십시오.",
+ "ERROR": "예약 시간이 필요합니다."
},
"BUTTONS": {
"CREATE": "만들기",
"CANCEL": "취소"
},
"API": {
- "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "SUCCESS_MESSAGE": "WhatsApp 캠페인이 성공적으로 생성되었습니다.",
+ "ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
}
}
},
"CONFIRM_DELETE": {
- "TITLE": "Are you sure to delete?",
- "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "TITLE": "정말로 삭제하시겠습니까?",
+ "DESCRIPTION": "삭제 작업은 영구적이며 되돌릴 수 없습니다.",
"CONFIRM": "삭제",
"API": {
- "SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "SUCCESS_MESSAGE": "캠페인이 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ko/cannedMgmt.json
index 58c8b4277..176e5f92e 100644
--- a/app/javascript/dashboard/i18n/locale/ko/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/cannedMgmt.json
@@ -1,76 +1,79 @@
{
"CANNED_MGMT": {
"HEADER": "미리 준비된 답변",
- "LEARN_MORE": "Learn more about canned responses",
- "DESCRIPTION": "미리 준비된 응답은 대화에 신속하게 응답할 수 있도록 도와주는 미리 작성된 응답입니다. 상담원은 대화 중에 '/' 문자 뒤에 단축 코드를 입력하여 미리 준비된 응답을 삽입할 수 있습니다. ",
+ "LEARN_MORE": "미리 준비된 답변에 대해 알아보기",
+ "DESCRIPTION": "미리 준비된 응답은 대화에 신속하게 응답할 수 있도록 도와주는 미리 작성된 응답 템플릿입니다. 에이전트는 대화 중에 '/' 문자 뒤에 단축 코드를 입력하여 미리 준비된 응답을 삽입할 수 있습니다. ",
+ "COUNT": "{n}개의 미리 준비된 응답 | {n}개의 미리 준비된 응답",
"HEADER_BTN_TXT": "미리 준비된 응답 추가",
- "LOADING": "Fetching canned responses...",
- "SEARCH_404": "이 쿼리와 일치하는 항목이 없음.",
+ "LOADING": "미리 준비된 응답을 가져오는 중...",
+ "SEARCH_PLACEHOLDER": "미리 준비된 응답 검색...",
+ "NO_RESULTS": "검색과 일치하는 미리 준비된 응답이 없습니다",
+ "SEARCH_404": "이 쿼리와 일치하는 항목이 없습니다.",
"LIST": {
"404": "이 계정에는 미리 준비된 답변이 없습니다.",
"TITLE": "미리 준비된 답변 관리",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "DESC": "미리 준비된 응답은 대화에 빠르게 답변을 보낼 수 있는 미리 정의된 응답 템플릿입니다.",
"TABLE_HEADER": {
- "SHORT_CODE": "Short code",
+ "SHORT_CODE": "단축 코드",
"CONTENT": "내용",
"ACTIONS": "액션"
}
},
"ADD": {
"TITLE": "미리 준비된 응답 추가",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "DESC": "미리 준비된 응답은 대화에 빠르게 답변을 보낼 수 있는 미리 정의된 응답 템플릿입니다.",
"CANCEL_BUTTON_TEXT": "취소",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a short code.",
- "ERROR": "Short Code is required."
+ "LABEL": "단축 코드",
+ "PLACEHOLDER": "단축 코드를 입력하십시오.",
+ "ERROR": "단축 코드가 필요합니다."
},
"CONTENT": {
"LABEL": "메시지",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "나중에 템플릿으로 사용할 메시지를 작성하십시오.",
+ "ERROR": "메시지가 필요합니다."
},
- "SUBMIT": "보내기"
+ "SUBMIT": "제출"
},
"API": {
- "SUCCESS_MESSAGE": "Canned response added successfully.",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요."
+ "SUCCESS_MESSAGE": "미리 준비된 응답이 성공적으로 추가되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 다시 시도하십시오."
}
},
"EDIT": {
- "TITLE": "Edit canned response",
+ "TITLE": "미리 준비된 응답 수정",
"CANCEL_BUTTON_TEXT": "취소",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a shortcode.",
- "ERROR": "Short code is required."
+ "LABEL": "단축 코드",
+ "PLACEHOLDER": "단축 코드를 입력하십시오.",
+ "ERROR": "단축 코드가 필요합니다."
},
"CONTENT": {
"LABEL": "메시지",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "나중에 템플릿으로 사용할 메시지를 작성하십시오.",
+ "ERROR": "메시지가 필요합니다."
},
- "SUBMIT": "보내기"
+ "SUBMIT": "제출"
},
"BUTTON_TEXT": "수정",
"API": {
- "SUCCESS_MESSAGE": "Canned response is updated successfully.",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요."
+ "SUCCESS_MESSAGE": "미리 준비된 응답이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 다시 시도하십시오."
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"API": {
- "SUCCESS_MESSAGE": "Canned response deleted successfully.",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요."
+ "SUCCESS_MESSAGE": "미리 준비된 응답이 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 다시 시도하십시오."
},
"CONFIRM": {
- "TITLE": "Confirm deletion",
+ "TITLE": "삭제 확인",
"MESSAGE": "삭제하시겠습니까? ",
"YES": "예, 삭제합니다. ",
- "NO": "아니요, 유지합니다 "
+ "NO": "아니요, 유지합니다. "
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/chatlist.json b/app/javascript/dashboard/i18n/locale/ko/chatlist.json
index 6ca051f43..c49ac12d9 100644
--- a/app/javascript/dashboard/i18n/locale/ko/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ko/chatlist.json
@@ -1,17 +1,17 @@
{
"CHAT_LIST": {
- "LOADING": "대화 가져오기",
+ "LOADING": "대화를 가져오는 중",
"LOAD_MORE_CONVERSATIONS": "더 많은 대화 불러오기",
- "EOF": "모든 대화 불러오기🎉",
+ "EOF": "모든 대화를 불러왔습니다 🎉",
"LIST": {
"404": "이 그룹에는 활성 대화가 없습니다."
},
- "FAILED_TO_SEND": "Failed to send",
+ "FAILED_TO_SEND": "전송 실패",
"TAB_HEADING": "대화",
"MENTION_HEADING": "멘션",
- "UNATTENDED_HEADING": "Unattended",
+ "UNATTENDED_HEADING": "미응대",
"SEARCH": {
- "INPUT": "사람 검색, 채팅, 저장된 응답..."
+ "INPUT": "사람, 채팅, 저장된 응답 검색..."
},
"FILTER_ALL": "모두",
"ASSIGNEE_TYPE_TABS": {
@@ -21,13 +21,13 @@
},
"CHAT_STATUS_FILTER_ITEMS": {
"open": {
- "TEXT": "열기"
+ "TEXT": "열림"
},
"resolved": {
"TEXT": "해결됨"
},
"pending": {
- "TEXT": "보내는 중"
+ "TEXT": "보류 중"
},
"snoozed": {
"TEXT": "일시 중지됨"
@@ -37,15 +37,15 @@
}
},
"VIEW_FILTER": "보기",
- "SORT_TOOLTIP_LABEL": "Sort conversations",
+ "SORT_TOOLTIP_LABEL": "대화 정렬",
"CHAT_SORT": {
"STATUS": "상태",
- "ORDER_BY": "Order by"
+ "ORDER_BY": "정렬 기준"
},
"CHAT_TIME_STAMP": {
"CREATED": {
- "LATEST": "만들어짐",
- "OLDEST": "에 만들어짐:"
+ "LATEST": "생성됨",
+ "OLDEST": "생성 일시:"
},
"LAST_ACTIVITY": {
"NOT_ACTIVE": "최근 활동:",
@@ -54,28 +54,31 @@
},
"SORT_ORDER_ITEMS": {
"last_activity_at_asc": {
- "TEXT": "Last activity: Oldest first"
+ "TEXT": "최근 활동: 오래된 순"
},
"last_activity_at_desc": {
- "TEXT": "Last activity: Newest first"
+ "TEXT": "최근 활동: 최신 순"
},
"created_at_desc": {
- "TEXT": "Created at: Newest first"
+ "TEXT": "생성 일시: 최신 순"
},
"created_at_asc": {
- "TEXT": "Created at: Oldest first"
+ "TEXT": "생성 일시: 오래된 순"
},
"priority_desc": {
- "TEXT": "Priority: Highest first"
+ "TEXT": "우선순위: 높은 순"
},
"priority_asc": {
- "TEXT": "Priority: Lowest first"
+ "TEXT": "우선순위: 낮은 순"
},
"waiting_since_asc": {
- "TEXT": "Pending Response: Longest first"
+ "TEXT": "응답 대기: 오래된 순"
},
"waiting_since_desc": {
- "TEXT": "Pending Response: Shortest first"
+ "TEXT": "응답 대기: 최신 순"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "우선순위: 높은 순, 생성일: 오래된 순"
}
},
"ATTACHMENTS": {
@@ -92,51 +95,51 @@
"CONTENT": "파일 첨부"
},
"location": {
- "CONTENT": "장소"
+ "CONTENT": "위치"
},
"ig_reel": {
"CONTENT": "Instagram Reel"
},
"fallback": {
- "CONTENT": "URL을 공유함"
+ "CONTENT": "URL을 공유했습니다"
},
"contact": {
- "CONTENT": "Shared contact"
+ "CONTENT": "연락처 공유"
},
"embed": {
- "CONTENT": "Embedded content"
+ "CONTENT": "임베디드 콘텐츠"
}
},
"CHAT_SORT_BY_FILTER": {
- "TITLE": "Sort conversation",
- "DROPDOWN_TITLE": "Sort by",
+ "TITLE": "대화 정렬",
+ "DROPDOWN_TITLE": "정렬 기준",
"ITEMS": {
"LATEST": {
- "NAME": "Last activity at",
+ "NAME": "최근 활동 일시",
"LABEL": "최근 활동"
},
"CREATED_AT": {
- "NAME": "에 만들어짐",
- "LABEL": "에 만들어짐"
+ "NAME": "생성 일시",
+ "LABEL": "생성 일시"
},
"LAST_USER_MESSAGE_AT": {
- "NAME": "Last user message at",
- "LABEL": "최근 메세지"
+ "NAME": "마지막 사용자 메시지 일시",
+ "LABEL": "마지막 메시지"
}
}
},
"RECEIVED_VIA_EMAIL": "이메일을 통해 수신됨",
"VIEW_TWEET_IN_TWITTER": "트위터에서 트윗 보기",
"REPLY_TO_TWEET": "트윗에 응답하기",
- "LINK_TO_STORY": "인스타그램 스토리로 가기",
- "SENT": "성공적으로 보내짐",
- "READ": "Read successfully",
- "DELIVERED": "Delivered successfully",
+ "LINK_TO_STORY": "인스타그램 스토리로 이동",
+ "SENT": "성공적으로 전송됨",
+ "READ": "성공적으로 읽음",
+ "DELIVERED": "성공적으로 전달됨",
"NO_MESSAGES": "메시지 없음",
- "NO_CONTENT": "콘텐츠 이용 불가",
- "HIDE_QUOTED_TEXT": "인용문 가리기",
- "SHOW_QUOTED_TEXT": "인용문 보이기",
- "MESSAGE_READ": "읽기",
- "SENDING": "Sending"
+ "NO_CONTENT": "콘텐츠를 사용할 수 없습니다.",
+ "HIDE_QUOTED_TEXT": "인용문 숨기기",
+ "SHOW_QUOTED_TEXT": "인용문 보기",
+ "MESSAGE_READ": "읽음",
+ "SENDING": "전송 중"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/companies.json b/app/javascript/dashboard/i18n/locale/ko/companies.json
index cf62d963a..521f55ba0 100644
--- a/app/javascript/dashboard/i18n/locale/ko/companies.json
+++ b/app/javascript/dashboard/i18n/locale/ko/companies.json
@@ -1,33 +1,33 @@
{
"COMPANIES": {
- "HEADER": "Companies",
+ "HEADER": "회사",
"SORT_BY": {
- "LABEL": "Sort by",
+ "LABEL": "정렬 기준",
"OPTIONS": {
"NAME": "이름",
- "DOMAIN": "Domain",
- "CREATED_AT": "에 만들어짐",
- "CONTACTS_COUNT": "Contacts count"
+ "DOMAIN": "도메인",
+ "CREATED_AT": "생성일",
+ "CONTACTS_COUNT": "연락처 수"
}
},
"ORDER": {
- "LABEL": "Order",
+ "LABEL": "순서",
"OPTIONS": {
- "ASCENDING": "Ascending",
- "DESCENDING": "Descending"
+ "ASCENDING": "오름차순",
+ "DESCENDING": "내림차순"
}
},
- "SEARCH_PLACEHOLDER": "Search companies...",
- "LOADING": "Loading companies...",
- "UNNAMED": "Unnamed Company",
- "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "SEARCH_PLACEHOLDER": "회사 검색...",
+ "LOADING": "회사 로딩 중...",
+ "UNNAMED": "이름 없는 회사",
+ "CONTACTS_COUNT": "{n} 연락처 | {n} 연락처",
"EMPTY_STATE": {
- "TITLE": "No companies found"
+ "TITLE": "회사를 찾을 수 없습니다"
}
},
"COMPANIES_LAYOUT": {
"PAGINATION_FOOTER": {
- "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ "SHOWING": "{totalItems}개 회사 중 {startItem} – {endItem} 표시 | {totalItems}개 회사 중 {startItem} – {endItem} 표시"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/components.json b/app/javascript/dashboard/i18n/locale/ko/components.json
index 3dab334a9..f457ed7d5 100644
--- a/app/javascript/dashboard/i18n/locale/ko/components.json
+++ b/app/javascript/dashboard/i18n/locale/ko/components.json
@@ -1,56 +1,56 @@
{
"PAGINATION_FOOTER": {
- "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
- "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ "SHOWING": "{totalItems}개 항목 중 {startItem} - {endItem} 표시 | {totalItems}개 항목 중 {startItem} - {endItem} 표시",
+ "CURRENT_PAGE_INFO": "{totalPages} 페이지 중 {currentPage} | {totalPages} 페이지 중 {currentPage}"
},
"COMBOBOX": {
- "PLACEHOLDER": "Select an option...",
- "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "PLACEHOLDER": "옵션을 선택하십시오...",
+ "EMPTY_SEARCH_RESULTS": "검색어 `{searchTerm}`에 대한 항목을 찾을 수 없습니다",
"EMPTY_STATE": "검색 결과가 없습니다.",
- "SEARCH_PLACEHOLDER": "Search...",
- "MORE": "+{count} more"
+ "SEARCH_PLACEHOLDER": "검색...",
+ "MORE": "+{count}개 더"
},
"DROPDOWN_MENU": {
- "SEARCH_PLACEHOLDER": "Search...",
+ "SEARCH_PLACEHOLDER": "검색...",
"EMPTY_STATE": "검색 결과가 없습니다.",
"SEARCHING": "검색중..."
},
"DIALOG": {
"BUTTONS": {
"CANCEL": "취소",
- "CONFIRM": "Confirm"
+ "CONFIRM": "확인"
}
},
"PHONE_INPUT": {
"SEARCH_PLACEHOLDER": "국가 검색",
- "ERROR": "Phone number should be empty or in E.164 format",
- "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ "ERROR": "전화번호는 비어 있거나 E.164 형식이어야 합니다",
+ "DIAL_CODE_ERROR": "목록에서 국가 번호를 선택하십시오"
},
"THUMBNAIL": {
"AUTHOR": {
- "NOT_AVAILABLE": "Author is not available"
+ "NOT_AVAILABLE": "작성자를 사용할 수 없습니다"
}
},
"BREADCRUMB": {
- "ARIA_LABEL": "Breadcrumb"
+ "ARIA_LABEL": "브레드크럼"
},
"SWITCH": {
- "TOGGLE": "Toggle switch"
+ "TOGGLE": "스위치 전환"
},
"LABEL": {
- "TAG_BUTTON": "tag"
+ "TAG_BUTTON": "태그"
},
"FEATURE_SPOTLIGHT": {
- "LEARN_MORE": "Learn more",
- "WATCH_VIDEO": "Watch video"
+ "LEARN_MORE": "더 알아보기",
+ "WATCH_VIDEO": "동영상 보기"
},
"DURATION_INPUT": {
- "MINUTES": "Minutes",
- "HOURS": "Hours",
- "DAYS": "Days",
- "PLACEHOLDER": "Enter duration"
+ "MINUTES": "분",
+ "HOURS": "시간",
+ "DAYS": "일",
+ "PLACEHOLDER": "기간을 입력하십시오"
},
"CHANNEL_SELECTOR": {
- "COMING_SOON": "Coming Soon!"
+ "COMING_SOON": "곧 출시 예정!"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/contact.json b/app/javascript/dashboard/i18n/locale/ko/contact.json
index b48b67b12..d7fc9e90e 100644
--- a/app/javascript/dashboard/i18n/locale/ko/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ko/contact.json
@@ -7,21 +7,21 @@
"COPY_SUCCESSFUL": "클립보드에 성공적으로 복사됨",
"COMPANY": "회사",
"LOCATION": "장소",
- "BROWSER_LANGUAGE": "언어 표시",
- "CONVERSATION_TITLE": "대화 자세히",
+ "BROWSER_LANGUAGE": "브라우저 언어",
+ "CONVERSATION_TITLE": "대화 상세 정보",
"VIEW_PROFILE": "프로필 보기",
"BROWSER": "브라우저",
"OS": "운영 체제",
"INITIATED_FROM": "시작 위치",
"INITIATED_AT": "시작 시간",
"IP_ADDRESS": "IP 주소",
- "CREATED_AT_LABEL": "Created",
+ "CREATED_AT_LABEL": "생성일",
"NEW_MESSAGE": "새 메시지",
- "CALL": "Call",
- "CALL_INITIATED": "Calling the contact…",
- "CALL_FAILED": "Unable to start the call. Please try again.",
+ "CALL": "통화",
+ "CALL_INITIATED": "연락처에 전화 거는 중...",
+ "CALL_FAILED": "통화를 시작할 수 없습니다. 다시 시도하십시오.",
"VOICE_INBOX_PICKER": {
- "TITLE": "Choose a voice inbox"
+ "TITLE": "음성 받은 메시지함 선택"
},
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "이 연락처와 관련된 이전 대화가 없습니다.",
@@ -40,33 +40,33 @@
"TITLE": "라벨 추가하기",
"PLACEHOLDER": "라벨 찾기",
"NO_RESULT": "라벨을 찾을 수 없습니다",
- "CREATE_LABEL": "Create new label"
+ "CREATE_LABEL": "새 라벨 만들기"
}
},
"MERGE_CONTACT": "연락처 합치기",
"CONTACT_ACTIONS": "연락처 활동",
- "MUTE_CONTACT": "Block Contact",
- "UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
- "UNMUTED_SUCCESS": "This contact is unblocked successfully.",
+ "MUTE_CONTACT": "연락처 차단",
+ "UNMUTE_CONTACT": "연락처 차단 해제",
+ "MUTED_SUCCESS": "이 연락처가 성공적으로 차단되었습니다. 향후 대화에 대한 알림을 받지 않습니다.",
+ "UNMUTED_SUCCESS": "이 연락처가 성공적으로 차단 해제되었습니다.",
"SEND_TRANSCRIPT": "대화기록 보내기",
"EDIT_LABEL": "수정",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "사용자 지정 특성",
"CONTACT_LABELS": "연락처 라벨",
"PREVIOUS_CONVERSATIONS": "이전 대화",
- "NO_RECORDS_FOUND": "No attributes found"
+ "NO_RECORDS_FOUND": "속성을 찾을 수 없습니다"
}
},
"EDIT_CONTACT": {
"BUTTON_LABEL": "연락처 수정",
"TITLE": "연락처 수정",
- "DESC": "연락처 수정 자세히"
+ "DESC": "연락처 정보 수정"
},
"DELETE_CONTACT": {
- "BUTTON_LABEL": "연락처 지우기",
- "TITLE": "연락처 지우기",
- "DESC": "연락처 설명 지우기",
+ "BUTTON_LABEL": "연락처 삭제",
+ "TITLE": "연락처 삭제",
+ "DESC": "연락처 정보 삭제",
"CONFIRM": {
"TITLE": "삭제 확인",
"MESSAGE": "삭제하시겠습니까? ",
@@ -80,7 +80,7 @@
},
"CONTACT_FORM": {
"FORM": {
- "SUBMIT": "보내기",
+ "SUBMIT": "제출",
"CANCEL": "취소",
"AVATAR": {
"LABEL": "연락처 아바타"
@@ -97,14 +97,14 @@
"PLACEHOLDER": "연락처의 이메일 주소 입력",
"LABEL": "이메일 주소",
"DUPLICATE": "이 이메일 주소는 다른 연락처에 사용 중입니다.",
- "ERROR": "올바른 전자 메일 주소를 입력하세요."
+ "ERROR": "올바른 이메일 주소를 입력하십시오."
},
"PHONE_NUMBER": {
"PLACEHOLDER": "연락처의 전화 번호 입력",
"LABEL": "전화 번호",
- "HELP": "전화번호는 E.164 형식이여야 합니다. 예: +1415555555 [+][국가 코드][지역 코드][전화번호]",
- "ERROR": "전화번호는 비어있거나 E.164 형식이여야 합니다",
- "DIAL_CODE_ERROR": "Please select a dial code from the list",
+ "HELP": "전화번호는 E.164 형식이어야 합니다. 예: +1415555555 [+][국가 코드][지역 코드][전화번호]. 드롭다운에서 국가 번호를 선택할 수 있습니다.",
+ "ERROR": "전화번호는 비어있거나 E.164 형식이어야 합니다",
+ "DIAL_CODE_ERROR": "목록에서 국가 번호를 선택하십시오",
"DUPLICATE": "이 전화번호는 다른 연락처에 사용 중입니다."
},
"LOCATION": {
@@ -116,32 +116,32 @@
"LABEL": "회사명"
},
"COUNTRY": {
- "PLACEHOLDER": "Enter the country name",
+ "PLACEHOLDER": "국가 이름 입력",
"LABEL": "국가 이름",
- "SELECT_PLACEHOLDER": "Select",
+ "SELECT_PLACEHOLDER": "선택",
"REMOVE": "제거",
- "SELECT_COUNTRY": "Select Country"
+ "SELECT_COUNTRY": "국가 선택"
},
"CITY": {
- "PLACEHOLDER": "Enter the city name",
- "LABEL": "City Name"
+ "PLACEHOLDER": "도시 이름 입력",
+ "LABEL": "도시 이름"
},
"SOCIAL_PROFILES": {
"FACEBOOK": {
"PLACEHOLDER": "페이스북 사용자 이름 입력",
- "LABEL": "페이스북"
+ "LABEL": "Facebook"
},
"TWITTER": {
"PLACEHOLDER": "트위터 사용자 이름 입력",
- "LABEL": "트위터"
+ "LABEL": "Twitter"
},
"LINKEDIN": {
"PLACEHOLDER": "링크드인 사용자 이름 입력",
- "LABEL": "링크드인"
+ "LABEL": "LinkedIn"
},
"GITHUB": {
"PLACEHOLDER": "깃허브 사용자 이름 입력",
- "LABEL": "깃허브"
+ "LABEL": "Github"
}
}
},
@@ -157,20 +157,20 @@
"NEW_CONVERSATION": {
"BUTTON_LABEL": "대화 시작",
"TITLE": "새 대화",
- "DESC": "새로운 메세지를 보내 대화를 시작하세요.",
- "NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.",
+ "DESC": "새로운 메시지를 보내 대화를 시작하십시오.",
+ "NO_INBOX": "이 연락처와 새 대화를 시작할 받은 메시지함을 찾을 수 없습니다.",
"FORM": {
"TO": {
- "LABEL": "~~에게"
+ "LABEL": "받는 사람"
},
"INBOX": {
"LABEL": "받은 메시지함",
- "PLACEHOLDER": "Choose source inbox",
+ "PLACEHOLDER": "소스 받은 메시지함 선택",
"ERROR": "받은 메시지함 선택"
},
"SUBJECT": {
- "LABEL": "Subject",
- "PLACEHOLDER": "Subject",
+ "LABEL": "제목",
+ "PLACEHOLDER": "제목",
"ERROR": "제목은 공백일 수 없습니다."
},
"MESSAGE": {
@@ -180,7 +180,7 @@
},
"ATTACHMENTS": {
"SELECT": "파일 선택",
- "HELP_TEXT": "Drag and drop files here or choose files to attach"
+ "HELP_TEXT": "여기에 파일을 끌어다 놓거나 파일을 선택하여 첨부하십시오"
},
"SUBMIT": "메시지 보내기",
"CANCEL": "취소",
@@ -199,8 +199,8 @@
"CUSTOM_ATTRIBUTES": {
"BUTTON": "사용자 지정 속성 추가하기",
"COPY_SUCCESSFUL": "클립보드에 성공적으로 복사됨",
- "SHOW_MORE": "Show all attributes",
- "SHOW_LESS": "Show less attributes",
+ "SHOW_MORE": "모든 속성 보기",
+ "SHOW_LESS": "속성 간략히 보기",
"ACTIONS": {
"COPY": "속성 복사하기",
"DELETE": "속성 삭제하기",
@@ -215,73 +215,73 @@
"CANCEL": "취소",
"NAME": {
"LABEL": "사용자 지정 속성 이름",
- "PLACEHOLDER": "Shopify id",
- "ERROR": "Invalid custom attribute name"
+ "PLACEHOLDER": "예: shopify id",
+ "ERROR": "잘못된 사용자 지정 속성 이름입니다"
},
"VALUE": {
- "LABEL": "Attribute value",
- "PLACEHOLDER": "Eg: 11901 "
+ "LABEL": "속성 값",
+ "PLACEHOLDER": "예: 11901 "
},
"ADD": {
- "TITLE": "Create new attribute ",
- "SUCCESS": "Attribute added successfully",
- "ERROR": "Unable to add attribute. Please try again later"
+ "TITLE": "새 속성 만들기 ",
+ "SUCCESS": "속성이 성공적으로 추가되었습니다",
+ "ERROR": "속성을 추가할 수 없습니다. 나중에 다시 시도하십시오"
},
"UPDATE": {
- "SUCCESS": "Attribute updated successfully",
- "ERROR": "Unable to update attribute. Please try again later"
+ "SUCCESS": "속성이 성공적으로 업데이트되었습니다",
+ "ERROR": "속성을 업데이트할 수 없습니다. 나중에 다시 시도하십시오"
},
"DELETE": {
- "SUCCESS": "Attribute deleted successfully",
- "ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS": "속성이 성공적으로 삭제되었습니다",
+ "ERROR": "속성을 삭제할 수 없습니다. 나중에 다시 시도하십시오"
},
"ATTRIBUTE_SELECT": {
"TITLE": "속성 추가하기",
- "PLACEHOLDER": "Search attributes",
- "NO_RESULT": "No attributes found"
+ "PLACEHOLDER": "속성 검색",
+ "NO_RESULT": "속성을 찾을 수 없습니다"
},
"ATTRIBUTE_TYPE": {
"LIST": {
- "PLACEHOLDER": "Select value",
- "SEARCH_INPUT_PLACEHOLDER": "Search value",
+ "PLACEHOLDER": "값 선택",
+ "SEARCH_INPUT_PLACEHOLDER": "값 검색",
"NO_RESULT": "검색 결과가 없습니다."
}
}
},
"VALIDATIONS": {
- "REQUIRED": "Valid value is required",
- "INVALID_URL": "잘못된 주소입니다.",
- "INVALID_INPUT": "Invalid Input"
+ "REQUIRED": "유효한 값이 필요합니다",
+ "INVALID_URL": "잘못된 URL입니다",
+ "INVALID_INPUT": "잘못된 입력입니다"
}
},
"MERGE_CONTACTS": {
- "TITLE": "Merge contacts",
- "DESCRIPTION": "Merge contacts to combine two profiles into one, including all attributes and conversations. In case of conflict, the Primary contact’ s attributes will take precedence.",
+ "TITLE": "연락처 합치기",
+ "DESCRIPTION": "두 개의 프로필을 하나로 합칩니다. 모든 속성과 대화가 포함됩니다. 충돌하는 경우 기본 연락처의 속성이 우선합니다.",
"PRIMARY": {
- "TITLE": "Primary contact",
- "HELP_LABEL": "To be deleted"
+ "TITLE": "기본 연락처",
+ "HELP_LABEL": "삭제 예정"
},
"PARENT": {
- "TITLE": "Contact to merge",
- "PLACEHOLDER": "Search for a contact",
- "HELP_LABEL": "To be kept"
+ "TITLE": "합칠 연락처",
+ "PLACEHOLDER": "연락처 검색",
+ "HELP_LABEL": "유지 예정"
},
"SUMMARY": {
- "TITLE": "Summary",
- "DELETE_WARNING": "Contact of
{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of
{primaryContactName} will be copied to
{parentContactName}."
+ "TITLE": "요약",
+ "DELETE_WARNING": "
{primaryContactName}의 연락처가 삭제됩니다.",
+ "ATTRIBUTE_WARNING": "
{primaryContactName}의 연락처 정보가
{parentContactName}(으)로 복사됩니다."
},
"SEARCH": {
- "ERROR_MESSAGE": "Something went wrong. Please try again later."
+ "ERROR_MESSAGE": "문제가 발생했습니다. 나중에 다시 시도하십시오."
},
"FORM": {
- "SUBMIT": " Merge contacts",
+ "SUBMIT": " 연락처 합치기",
"CANCEL": "취소",
"CHILD_CONTACT": {
- "ERROR": "Select a child contact to merge"
+ "ERROR": "합칠 하위 연락처를 선택하십시오"
},
- "SUCCESS_MESSAGE": "Contact merged successfully",
- "ERROR_MESSAGE": "Could not merge contacts, try again!"
+ "SUCCESS_MESSAGE": "연락처가 성공적으로 합쳐졌습니다",
+ "ERROR_MESSAGE": "연락처를 합칠 수 없습니다. 다시 시도하십시오!"
},
"DROPDOWN_ITEM": {
"ID": "(ID: {identifier})"
@@ -290,68 +290,68 @@
"CONTACTS_LAYOUT": {
"HEADER": {
"TITLE": "연락처",
- "SEARCH_TITLE": "Search contacts",
- "ACTIVE_TITLE": "Active contacts",
- "SEARCH_PLACEHOLDER": "Search...",
+ "SEARCH_TITLE": "연락처 검색",
+ "ACTIVE_TITLE": "활성 연락처",
+ "SEARCH_PLACEHOLDER": "검색...",
"MESSAGE_BUTTON": "메시지",
"SEND_MESSAGE": "메시지 보내기",
- "BLOCK_CONTACT": "Block contact",
- "UNBLOCK_CONTACT": "Unblock contact",
+ "BLOCK_CONTACT": "연락처 차단",
+ "UNBLOCK_CONTACT": "연락처 차단 해제",
"BREADCRUMB": {
"CONTACTS": "연락처"
},
"ACTIONS": {
"CONTACT_CREATION": {
- "ADD_CONTACT": "Add contact",
- "EXPORT_CONTACT": "Export contacts",
- "IMPORT_CONTACT": "Import contacts",
- "SAVE_CONTACT": "Save contact",
+ "ADD_CONTACT": "연락처 추가",
+ "EXPORT_CONTACT": "연락처 내보내기",
+ "IMPORT_CONTACT": "연락처 가져오기",
+ "SAVE_CONTACT": "연락처 저장",
"EMAIL_ADDRESS_DUPLICATE": "이 이메일 주소는 다른 연락처에 사용 중입니다.",
"PHONE_NUMBER_DUPLICATE": "이 전화번호는 다른 연락처에 사용 중입니다.",
"SUCCESS_MESSAGE": "연락처가 성공적으로 저장되었습니다.",
- "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ "ERROR_MESSAGE": "연락처를 저장할 수 없습니다. 나중에 다시 시도하십시오."
},
- "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
- "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
- "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
- "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "BLOCK_SUCCESS_MESSAGE": "이 연락처가 성공적으로 차단되었습니다",
+ "BLOCK_ERROR_MESSAGE": "연락처를 차단할 수 없습니다. 나중에 다시 시도하십시오.",
+ "UNBLOCK_SUCCESS_MESSAGE": "이 연락처가 성공적으로 차단 해제되었습니다",
+ "UNBLOCK_ERROR_MESSAGE": "연락처 차단을 해제할 수 없습니다. 나중에 다시 시도하십시오.",
"IMPORT_CONTACT": {
- "TITLE": "Import contacts",
+ "TITLE": "연락처 가져오기",
"DESCRIPTION": "CSV 파일을 통해 연락처 가져오기",
- "DOWNLOAD_LABEL": "간단한 CSV 파일 다운받기",
+ "DOWNLOAD_LABEL": "샘플 CSV 파일 다운로드",
"LABEL": "CSV 파일:",
- "CHOOSE_FILE": "Choose file",
+ "CHOOSE_FILE": "파일 선택",
"CHANGE": "변경",
"CANCEL": "취소",
"IMPORT": "가져오기",
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "SUCCESS_MESSAGE": "가져오기가 완료되면 이메일로 알림을 받으실 수 있습니다.",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
},
"EXPORT_CONTACT": {
- "TITLE": "Export contacts",
- "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
- "CONFIRM": "Export",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "TITLE": "연락처 내보내기",
+ "DESCRIPTION": "연락처의 상세 정보가 포함된 CSV 파일을 빠르게 내보내기",
+ "CONFIRM": "내보내기",
+ "SUCCESS_MESSAGE": "내보내기가 진행 중입니다. 내보내기 파일이 다운로드 준비되면 이메일로 알림을 받으실 수 있습니다.",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
},
"SORT_BY": {
- "LABEL": "Sort by",
+ "LABEL": "정렬 기준",
"OPTIONS": {
"NAME": "이름",
"EMAIL": "이메일",
- "PHONE_NUMBER": "휴대폰 번호",
+ "PHONE_NUMBER": "전화 번호",
"COMPANY": "회사",
"COUNTRY": "국가",
"CITY": "도시",
"LAST_ACTIVITY": "최근 활동",
- "CREATED_AT": "에 만들어짐"
+ "CREATED_AT": "생성일"
}
},
"ORDER": {
- "LABEL": "Ordering",
+ "LABEL": "정렬 순서",
"OPTIONS": {
- "ASCENDING": "Ascending",
- "DESCENDING": "Descending"
+ "ASCENDING": "오름차순",
+ "DESCENDING": "내림차순"
}
},
"FILTERS": {
@@ -359,128 +359,131 @@
"TITLE": "이 필터를 저장하시겠습니까?",
"CONFIRM": "필터 저장하기",
"LABEL": "이름",
- "PLACEHOLDER": "Enter the name of the filter",
- "ERROR": "Enter a valid name",
- "SUCCESS_MESSAGE": "Filter saved successfully",
- "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ "PLACEHOLDER": "필터 이름을 입력하십시오",
+ "ERROR": "유효한 이름을 입력하십시오",
+ "SUCCESS_MESSAGE": "필터가 성공적으로 저장되었습니다",
+ "ERROR_MESSAGE": "필터를 저장할 수 없습니다. 나중에 다시 시도하십시오."
},
"DELETE_SEGMENT": {
"TITLE": "삭제 확인",
- "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "DESCRIPTION": "이 필터를 삭제하시겠습니까?",
"CONFIRM": "예, 삭제합니다",
- "CANCEL": "No, Cancel",
- "SUCCESS_MESSAGE": "Filter deleted successfully",
- "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ "CANCEL": "아니요, 취소합니다",
+ "SUCCESS_MESSAGE": "필터가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "필터를 삭제할 수 없습니다. 나중에 다시 시도하십시오."
}
}
}
},
"PAGINATION_FOOTER": {
- "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ "SHOWING": "{totalItems}개의 연락처 중 {startItem} - {endItem} 표시"
},
"FILTER": {
"NAME": "이름",
"EMAIL": "이메일",
- "PHONE_NUMBER": "휴대폰 번호",
+ "PHONE_NUMBER": "전화 번호",
"IDENTIFIER": "식별자",
"COUNTRY": "국가",
"CITY": "도시",
- "CREATED_AT": "에 만들어짐",
+ "CREATED_AT": "생성일",
"LAST_ACTIVITY": "최근 활동",
- "REFERER_LINK": "참고 링크",
- "BLOCKED": "Blocked",
+ "REFERER_LINK": "참조 링크",
+ "BLOCKED": "차단됨",
"BLOCKED_TRUE": "참",
"BLOCKED_FALSE": "거짓",
"BUTTONS": {
- "CLEAR_FILTERS": "Clear filters",
- "UPDATE_SEGMENT": "Update segment",
+ "CLEAR_FILTERS": "필터 초기화",
+ "UPDATE_SEGMENT": "세그먼트 업데이트",
"APPLY_FILTERS": "필터 적용하기",
- "ADD_FILTER": "Add filter"
+ "ADD_FILTER": "필터 추가"
},
- "TITLE": "Filter contacts",
- "EDIT_SEGMENT": "Edit segment",
+ "TITLE": "연락처 필터",
+ "EDIT_SEGMENT": "세그먼트 수정",
"SEGMENT": {
- "LABEL": "Segment name",
- "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ "LABEL": "세그먼트 이름",
+ "INPUT_PLACEHOLDER": "세그먼트 이름을 입력하십시오"
},
"ACTIVE_FILTERS": {
- "MORE_FILTERS": "+ {count} more filters",
- "CLEAR_FILTERS": "Clear filters"
+ "MORE_FILTERS": "+ {count}개의 필터 더 보기",
+ "CLEAR_FILTERS": "필터 초기화"
}
},
"CARD": {
- "OF": "of",
+ "OF": "/",
"VIEW_DETAILS": "상세보기",
"EDIT_DETAILS_FORM": {
- "TITLE": "연락처 수정 자세히",
+ "TITLE": "연락처 정보 수정",
"FORM": {
"FIRST_NAME": {
- "PLACEHOLDER": "Enter the first name"
+ "PLACEHOLDER": "이름 입력"
},
"LAST_NAME": {
- "PLACEHOLDER": "Enter the last name"
+ "PLACEHOLDER": "성 입력"
},
"EMAIL_ADDRESS": {
- "PLACEHOLDER": "Enter the email address",
+ "PLACEHOLDER": "이메일 주소 입력",
"DUPLICATE": "이 이메일 주소는 다른 연락처에 사용 중입니다."
},
"PHONE_NUMBER": {
- "PLACEHOLDER": "Enter the phone number",
+ "PLACEHOLDER": "전화 번호 입력",
"DUPLICATE": "이 전화번호는 다른 연락처에 사용 중입니다."
},
"CITY": {
- "PLACEHOLDER": "Enter the city name"
+ "PLACEHOLDER": "도시 이름 입력"
},
"COUNTRY": {
- "PLACEHOLDER": "Select country"
+ "PLACEHOLDER": "국가 선택"
},
"BIO": {
- "PLACEHOLDER": "Enter the bio"
+ "PLACEHOLDER": "자기 소개 입력"
},
"COMPANY_NAME": {
"PLACEHOLDER": "회사명 입력"
}
},
- "UPDATE_BUTTON": "Update contact",
- "SUCCESS_MESSAGE": "Contact updated successfully",
- "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ "UPDATE_BUTTON": "연락처 업데이트",
+ "SUCCESS_MESSAGE": "연락처가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "연락처를 업데이트할 수 없습니다. 나중에 다시 시도하십시오."
},
"SOCIAL_MEDIA": {
- "TITLE": "Edit social links",
+ "TITLE": "소셜 링크 수정",
"FORM": {
"FACEBOOK": {
- "PLACEHOLDER": "Add Facebook"
+ "PLACEHOLDER": "Facebook 추가"
},
"GITHUB": {
- "PLACEHOLDER": "Add Github"
+ "PLACEHOLDER": "Github 추가"
},
"INSTAGRAM": {
- "PLACEHOLDER": "Add Instagram"
+ "PLACEHOLDER": "Instagram 추가"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Telegram 추가"
},
"TIKTOK": {
- "PLACEHOLDER": "Add TikTok"
+ "PLACEHOLDER": "TikTok 추가"
},
"LINKEDIN": {
- "PLACEHOLDER": "Add LinkedIn"
+ "PLACEHOLDER": "LinkedIn 추가"
},
"TWITTER": {
- "PLACEHOLDER": "Add Twitter"
+ "PLACEHOLDER": "Twitter 추가"
}
}
},
"DELETE_CONTACT": {
- "MESSAGE": "This action is permanent and irreversible.",
- "BUTTON": "Delete now"
+ "MESSAGE": "이 작업은 영구적이며 되돌릴 수 없습니다.",
+ "BUTTON": "지금 삭제"
}
},
"DETAILS": {
- "CREATED_AT": "Created {date}",
- "LAST_ACTIVITY": "Last active {date}",
- "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
- "DELETE_CONTACT": "연락처 지우기",
+ "CREATED_AT": "{date}에 생성됨",
+ "LAST_ACTIVITY": "마지막 활동 {date}",
+ "DELETE_CONTACT_DESCRIPTION": "이 연락처를 영구적으로 삭제합니다. 이 작업은 되돌릴 수 없습니다",
+ "DELETE_CONTACT": "연락처 삭제",
"DELETE_DIALOG": {
"TITLE": "삭제 확인",
- "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "DESCRIPTION": "이 연락처를 삭제하시겠습니까?",
"CONFIRM": "예, 삭제합니다",
"API": {
"SUCCESS_MESSAGE": "연락처가 성공적으로 삭제되었습니다",
@@ -489,64 +492,64 @@
},
"AVATAR": {
"UPLOAD": {
- "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
- "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ "ERROR_MESSAGE": "아바타를 업로드할 수 없습니다. 나중에 다시 시도하십시오.",
+ "SUCCESS_MESSAGE": "아바타가 성공적으로 업로드되었습니다"
},
"DELETE": {
- "SUCCESS_MESSAGE": "Avatar deleted successfully",
- "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ "SUCCESS_MESSAGE": "아바타가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "아바타를 삭제할 수 없습니다. 나중에 다시 시도하십시오."
}
}
},
"SIDEBAR": {
"TABS": {
- "ATTRIBUTES": "Attributes",
- "HISTORY": "History",
- "NOTES": "노트들",
- "MERGE": "Merge"
+ "ATTRIBUTES": "속성",
+ "HISTORY": "기록",
+ "NOTES": "노트",
+ "MERGE": "합치기"
},
"HISTORY": {
"EMPTY_STATE": "이 연락처와 관련된 이전 대화가 없습니다"
},
"ATTRIBUTES": {
- "SEARCH_PLACEHOLDER": "Search for attributes",
- "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
- "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "SEARCH_PLACEHOLDER": "속성 검색",
+ "UNUSED_ATTRIBUTES": "사용된 속성 {count}개 | 사용되지 않은 속성 {count}개",
+ "EMPTY_STATE": "이 계정에 사용할 수 있는 연락처 사용자 지정 속성이 없습니다. 설정에서 사용자 지정 속성을 만들 수 있습니다.",
"YES": "예",
"NO": "아니오",
"TRIGGER": {
- "SELECT": "Select value",
- "INPUT": "Enter value"
+ "SELECT": "값 선택",
+ "INPUT": "값 입력"
},
"VALIDATIONS": {
- "INVALID_NUMBER": "Invalid number",
- "REQUIRED": "Valid value is required",
- "INVALID_INPUT": "Invalid input",
- "INVALID_URL": "잘못된 주소입니다.",
- "INVALID_DATE": "Invalid date"
+ "INVALID_NUMBER": "잘못된 숫자입니다",
+ "REQUIRED": "유효한 값이 필요합니다",
+ "INVALID_INPUT": "잘못된 입력입니다",
+ "INVALID_URL": "잘못된 URL입니다",
+ "INVALID_DATE": "잘못된 날짜입니다"
},
- "NO_ATTRIBUTES": "No attributes found",
+ "NO_ATTRIBUTES": "속성을 찾을 수 없습니다",
"API": {
- "SUCCESS_MESSAGE": "Attribute updated successfully",
- "DELETE_SUCCESS_MESSAGE": "Attribute deleted successfully",
- "UPDATE_ERROR": "Unable to update attribute. Please try again later",
- "DELETE_ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS_MESSAGE": "속성이 성공적으로 업데이트되었습니다",
+ "DELETE_SUCCESS_MESSAGE": "속성이 성공적으로 삭제되었습니다",
+ "UPDATE_ERROR": "속성을 업데이트할 수 없습니다. 나중에 다시 시도하십시오",
+ "DELETE_ERROR": "속성을 삭제할 수 없습니다. 나중에 다시 시도하십시오"
}
},
"MERGE": {
"TITLE": "연락처 합치기",
- "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
- "PRIMARY": "Primary contact",
- "PRIMARY_HELP_LABEL": "To be saved",
- "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
- "PARENT": "To be merged",
- "PARENT_HELP_LABEL": "To be deleted",
- "EMPTY_STATE": "No contacts found",
- "PLACEHOLDER": "Search for primary contact",
- "SEARCH_PLACEHOLDER": "Search for a contact",
- "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
- "SUCCESS_MESSAGE": "Contact merged successfully",
- "ERROR_MESSAGE": "Could not merge contacts, try again!",
+ "DESCRIPTION": "모든 속성과 대화를 포함하여 두 개의 프로필을 하나로 합칩니다. 충돌하는 경우 기본 연락처의 속성이 우선합니다.",
+ "PRIMARY": "기본 연락처",
+ "PRIMARY_HELP_LABEL": "저장 예정",
+ "PRIMARY_REQUIRED_ERROR": "진행하기 전에 합칠 연락처를 선택하십시오",
+ "PARENT": "합칠 대상",
+ "PARENT_HELP_LABEL": "삭제 예정",
+ "EMPTY_STATE": "연락처를 찾을 수 없습니다",
+ "PLACEHOLDER": "기본 연락처 검색",
+ "SEARCH_PLACEHOLDER": "연락처 검색",
+ "SEARCH_ERROR_MESSAGE": "연락처를 검색할 수 없습니다. 나중에 다시 시도하십시오.",
+ "SUCCESS_MESSAGE": "연락처가 성공적으로 합쳐졌습니다",
+ "ERROR_MESSAGE": "연락처를 합칠 수 없습니다. 다시 시도하십시오!",
"IS_SEARCHING": "검색중...",
"BUTTONS": {
"CANCEL": "취소",
@@ -555,100 +558,101 @@
},
"NOTES": {
"PLACEHOLDER": "노트 추가하기",
- "WROTE": "wrote",
+ "WROTE": "작성함",
"YOU": "나",
- "SAVE": "Save note",
- "ADD_NOTE": "Add contact note",
- "EXPAND": "Expand",
- "COLLAPSE": "Collapse",
- "NO_NOTES": "No notes, you can add notes from the contact details page.",
- "EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above.",
- "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ "SAVE": "노트 저장",
+ "ADD_NOTE": "연락처 노트 추가",
+ "EXPAND": "펼치기",
+ "COLLAPSE": "접기",
+ "NO_NOTES": "노트가 없습니다. 연락처 상세 페이지에서 노트를 추가할 수 있습니다.",
+ "EMPTY_STATE": "이 연락처와 관련된 노트가 없습니다. 위의 입력란에 입력하여 노트를 추가할 수 있습니다.",
+ "CONVERSATION_EMPTY_STATE": "아직 노트가 없습니다. 노트 추가 버튼을 사용하여 작성하십시오."
}
},
"EMPTY_STATE": {
- "TITLE": "No contacts found in this account",
- "SUBTITLE": "Start adding new contacts by clicking on the button below",
- "BUTTON_LABEL": "Add contact",
- "SEARCH_EMPTY_STATE_TITLE": "검색과 일치하는 연락처 없음 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
- "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ "TITLE": "이 계정에 연락처가 없습니다",
+ "SUBTITLE": "아래 버튼을 클릭하여 새 연락처를 추가하십시오",
+ "BUTTON_LABEL": "연락처 추가",
+ "SEARCH_EMPTY_STATE_TITLE": "검색과 일치하는 연락처가 없습니다",
+ "LIST_EMPTY_STATE_TITLE": "이 보기에 사용 가능한 연락처가 없습니다",
+ "ACTIVE_EMPTY_STATE_TITLE": "현재 활성 상태인 연락처가 없습니다"
+ },
+ "LOAD_MORE": "더 보기"
},
"CONTACTS_BULK_ACTIONS": {
- "ASSIGN_LABELS": "Assign Labels",
- "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
- "ASSIGN_LABELS_FAILED": "Failed to assign labels",
- "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
- "NO_LABELS_FOUND": "No labels available yet.",
- "SELECTED_COUNT": "{count} selected",
- "CLEAR_SELECTION": "Clear selection",
- "SELECT_ALL": "Select all ({count})",
+ "ASSIGN_LABELS": "라벨 배정",
+ "ASSIGN_LABELS_SUCCESS": "라벨이 성공적으로 배정되었습니다.",
+ "ASSIGN_LABELS_FAILED": "라벨 배정에 실패했습니다",
+ "DESCRIPTION": "선택한 연락처에 추가할 라벨을 선택하십시오.",
+ "NO_LABELS_FOUND": "사용 가능한 라벨이 없습니다.",
+ "SELECTED_COUNT": "{count}개 선택됨",
+ "CLEAR_SELECTION": "선택 해제",
+ "SELECT_ALL": "전체 선택 ({count})",
"DELETE_CONTACTS": "삭제",
- "DELETE_SUCCESS": "Contacts deleted successfully.",
- "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_SUCCESS": "연락처가 성공적으로 삭제되었습니다.",
+ "DELETE_FAILED": "연락처 삭제에 실패했습니다.",
"DELETE_DIALOG": {
- "TITLE": "Delete selected contacts",
- "SINGULAR_TITLE": "Delete selected contact",
- "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
- "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
- "CONFIRM_MULTIPLE": "Delete contacts",
- "CONFIRM_SINGLE": "연락처 지우기"
+ "TITLE": "선택한 연락처 삭제",
+ "SINGULAR_TITLE": "선택한 연락처 삭제",
+ "DESCRIPTION": "선택한 {count}개의 연락처가 영구적으로 삭제됩니다. 이 작업은 되돌릴 수 없습니다.",
+ "SINGULAR_DESCRIPTION": "선택한 연락처가 영구적으로 삭제됩니다. 이 작업은 되돌릴 수 없습니다.",
+ "CONFIRM_MULTIPLE": "연락처 삭제",
+ "CONFIRM_SINGLE": "연락처 삭제"
}
},
"COMPOSE_NEW_CONVERSATION": {
"CONTACT_SEARCH": {
- "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ "ERROR_MESSAGE": "검색을 완료할 수 없습니다. 다시 시도하십시오."
},
"FORM": {
"GO_TO_CONVERSATION": "보기",
- "SUCCESS_MESSAGE": "The message was sent successfully!",
- "ERROR_MESSAGE": "An error occurred while creating the conversation. Please try again later.",
- "NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
+ "SUCCESS_MESSAGE": "메시지가 성공적으로 전송되었습니다!",
+ "ERROR_MESSAGE": "대화를 생성하는 중 오류가 발생했습니다. 나중에 다시 시도하십시오.",
+ "NO_INBOX_ALERT": "이 연락처와 대화를 시작할 수 있는 받은 메시지함이 없습니다.",
"CONTACT_SELECTOR": {
- "LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
- "CONTACT_CREATING": "Creating contact..."
+ "LABEL": "받는 사람:",
+ "TAG_INPUT_PLACEHOLDER": "이름, 이메일 또는 전화번호로 연락처 검색",
+ "CONTACT_CREATING": "연락처 생성 중..."
},
"INBOX_SELECTOR": {
- "LABEL": "Via:",
- "BUTTON": "Show inboxes"
+ "LABEL": "경유:",
+ "BUTTON": "받은 메시지함 보기"
},
"EMAIL_OPTIONS": {
- "SUBJECT_LABEL": "Subject :",
- "SUBJECT_PLACEHOLDER": "Enter your email subject here",
- "CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
- "BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
- "BCC_BUTTON": "Bcc"
+ "SUBJECT_LABEL": "제목:",
+ "SUBJECT_PLACEHOLDER": "이메일 제목을 입력하십시오",
+ "CC_LABEL": "참조:",
+ "CC_PLACEHOLDER": "이메일 주소로 연락처 검색",
+ "BCC_LABEL": "숨은 참조:",
+ "BCC_PLACEHOLDER": "이메일 주소로 연락처 검색",
+ "BCC_BUTTON": "숨은 참조"
},
"MESSAGE_EDITOR": {
"PLACEHOLDER": "메시지를 여기에 작성해주세요..."
},
"WHATSAPP_OPTIONS": {
- "LABEL": "Select template",
- "SEARCH_PLACEHOLDER": "Search templates",
- "EMPTY_STATE": "No templates found",
+ "LABEL": "템플릿 선택",
+ "SEARCH_PLACEHOLDER": "템플릿 검색",
+ "EMPTY_STATE": "템플릿을 찾을 수 없습니다",
"TEMPLATE_PARSER": {
- "TEMPLATE_NAME": "WhatsApp template: {templateName}",
- "VARIABLES": "Variables",
- "BACK": "Go back",
+ "TEMPLATE_NAME": "WhatsApp 템플릿: {templateName}",
+ "VARIABLES": "변수",
+ "BACK": "뒤로 가기",
"SEND_MESSAGE": "메시지 보내기"
}
},
"TWILIO_OPTIONS": {
- "LABEL": "Select template",
- "SEARCH_PLACEHOLDER": "Search templates",
- "EMPTY_STATE": "No templates found",
+ "LABEL": "템플릿 선택",
+ "SEARCH_PLACEHOLDER": "템플릿 검색",
+ "EMPTY_STATE": "템플릿을 찾을 수 없습니다",
"TEMPLATE_PARSER": {
- "BACK": "Go back",
+ "BACK": "뒤로 가기",
"SEND_MESSAGE": "메시지 보내기"
}
},
"ACTION_BUTTONS": {
- "DISCARD": "Discard",
- "SEND": "Send ({keyCode})"
+ "DISCARD": "취소",
+ "SEND": "보내기 ({keyCode})"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/contactFilters.json b/app/javascript/dashboard/i18n/locale/ko/contactFilters.json
index 4ba7ee034..7cf1557f5 100644
--- a/app/javascript/dashboard/i18n/locale/ko/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ko/contactFilters.json
@@ -1,20 +1,20 @@
{
"CONTACTS_FILTER": {
- "TITLE": "Filter Contacts",
- "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.",
- "EDIT_CUSTOM_SEGMENT": "Edit Segment",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.",
+ "TITLE": "연락처 필터",
+ "SUBTITLE": "아래에 필터를 추가하고 '제출'을 눌러 연락처를 필터링하십시오.",
+ "EDIT_CUSTOM_SEGMENT": "세그먼트 편집",
+ "CUSTOM_VIEWS_SUBTITLE": "필터를 추가하거나 제거하고 세그먼트를 업데이트하십시오.",
"ADD_NEW_FILTER": "필터 추가하기",
- "CLEAR_ALL_FILTERS": "Clear All Filters",
+ "CLEAR_ALL_FILTERS": "모든 필터 지우기",
"FILTER_DELETE_ERROR": "적어도 하나 이상의 필터가 있어야 저장됩니다.",
- "SUBMIT_BUTTON_LABEL": "보내기",
- "UPDATE_BUTTON_LABEL": "Update Segment",
+ "SUBMIT_BUTTON_LABEL": "제출",
+ "UPDATE_BUTTON_LABEL": "세그먼트 업데이트",
"CANCEL_BUTTON_LABEL": "취소",
"CLEAR_BUTTON_LABEL": "필터 제거하기",
"EMPTY_VALUE_ERROR": "값이 필요합니다.",
- "SEGMENT_LABEL": "Segment Name",
- "SEGMENT_QUERY_LABEL": "Segment Query",
- "TOOLTIP_LABEL": "Filter contacts",
+ "SEGMENT_LABEL": "세그먼트 이름",
+ "SEGMENT_QUERY_LABEL": "세그먼트 쿼리",
+ "TOOLTIP_LABEL": "연락처 필터",
"QUERY_DROPDOWN_LABELS": {
"AND": "와/과",
"OR": "혹은"
@@ -27,8 +27,8 @@
"is_present": "현존하는",
"is_not_present": "현존하지 않은",
"is_greater_than": "보다 큰",
- "is_lesser_than": "Is lesser than",
- "days_before": "x 일 전에"
+ "is_lesser_than": "보다 작은",
+ "days_before": "x일 전에"
},
"ERRORS": {
"VALUE_REQUIRED": "값이 필요합니다."
@@ -37,7 +37,7 @@
"NAME": "이름",
"EMAIL": "이메일",
"PHONE_NUMBER": "휴대폰 번호",
- "IDENTIFIER": "Identifier",
+ "IDENTIFIER": "식별자",
"CITY": "도시",
"COUNTRY": "국가",
"CUSTOM_ATTRIBUTE_LIST": "리스트",
@@ -45,10 +45,10 @@
"CUSTOM_ATTRIBUTE_NUMBER": "숫자",
"CUSTOM_ATTRIBUTE_LINK": "링크",
"CUSTOM_ATTRIBUTE_CHECKBOX": "체크박스",
- "CREATED_AT": "에 만들어짐",
- "LAST_ACTIVITY": "지난 활동",
- "REFERER_LINK": "Referrer link",
- "BLOCKED": "Blocked",
+ "CREATED_AT": "생성일",
+ "LAST_ACTIVITY": "최근 활동",
+ "REFERER_LINK": "리퍼러 링크",
+ "BLOCKED": "차단됨",
"LABELS": "라벨"
},
"GROUPS": {
diff --git a/app/javascript/dashboard/i18n/locale/ko/contentTemplates.json b/app/javascript/dashboard/i18n/locale/ko/contentTemplates.json
index 75eb0f17f..2eafc7472 100644
--- a/app/javascript/dashboard/i18n/locale/ko/contentTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/ko/contentTemplates.json
@@ -1,52 +1,52 @@
{
"CONTENT_TEMPLATES": {
"MODAL": {
- "TITLE": "Twilio Templates",
- "SUBTITLE": "Select the Twilio template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ "TITLE": "Twilio 템플릿",
+ "SUBTITLE": "보내려는 Twilio 템플릿을 선택하십시오",
+ "TEMPLATE_SELECTED_SUBTITLE": "템플릿 구성: {templateName}"
},
"PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "NO_CONTENT": "No content",
- "HEADER": "Header",
- "BODY": "Body",
- "FOOTER": "Footer",
- "BUTTONS": "Buttons",
- "CATEGORY": "Category",
- "MEDIA_CONTENT": "Media Content",
- "MEDIA_CONTENT_FALLBACK": "media content",
- "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
- "REFRESH_BUTTON": "Refresh templates",
- "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
- "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "SEARCH_PLACEHOLDER": "템플릿 검색",
+ "NO_TEMPLATES_FOUND": "다음에 대한 템플릿을 찾을 수 없습니다",
+ "NO_CONTENT": "내용 없음",
+ "HEADER": "헤더",
+ "BODY": "본문",
+ "FOOTER": "푸터",
+ "BUTTONS": "버튼",
+ "CATEGORY": "카테고리",
+ "MEDIA_CONTENT": "미디어 콘텐츠",
+ "MEDIA_CONTENT_FALLBACK": "미디어 콘텐츠",
+ "NO_TEMPLATES_AVAILABLE": "사용 가능한 Twilio 템플릿이 없습니다. 새로고침을 클릭하여 Twilio에서 템플릿을 동기화하십시오.",
+ "REFRESH_BUTTON": "템플릿 새로고침",
+ "REFRESH_SUCCESS": "템플릿 새로고침이 시작되었습니다. 업데이트하는 데 몇 분 정도 걸릴 수 있습니다.",
+ "REFRESH_ERROR": "템플릿 새로고침에 실패했습니다. 다시 시도하십시오.",
"LABELS": {
"LANGUAGE": "언어",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
+ "TEMPLATE_BODY": "템플릿 본문",
+ "CATEGORY": "카테고리"
},
"TYPES": {
- "MEDIA": "Media",
- "QUICK_REPLY": "Quick Reply",
- "CALL_TO_ACTION": "Call to Action",
+ "MEDIA": "미디어",
+ "QUICK_REPLY": "빠른 답장",
+ "CALL_TO_ACTION": "행동 유도",
"TEXT": "텍스트"
}
},
"PARSER": {
- "VARIABLES_LABEL": "Variables",
+ "VARIABLES_LABEL": "변수",
"LANGUAGE": "언어",
- "CATEGORY": "Category",
- "VARIABLE_PLACEHOLDER": "Enter {variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
- "MEDIA_HEADER_LABEL": "{type} Header",
- "MEDIA_URL_LABEL": "Enter full media URL",
+ "CATEGORY": "카테고리",
+ "VARIABLE_PLACEHOLDER": "{variable} 값을 입력하십시오",
+ "GO_BACK_LABEL": "뒤로 가기",
+ "SEND_MESSAGE_LABEL": "메시지 보내기",
+ "FORM_ERROR_MESSAGE": "보내기 전에 모든 변수를 입력하십시오",
+ "MEDIA_HEADER_LABEL": "{type} 헤더",
+ "MEDIA_URL_LABEL": "전체 미디어 URL을 입력하십시오",
"MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
},
"FORM": {
"BACK_BUTTON": "뒤로",
- "SEND_MESSAGE_BUTTON": "Send Message"
+ "SEND_MESSAGE_BUTTON": "메시지 보내기"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/conversation.json b/app/javascript/dashboard/i18n/locale/ko/conversation.json
index 00ef976ca..59f9bc0f7 100644
--- a/app/javascript/dashboard/i18n/locale/ko/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ko/conversation.json
@@ -1,114 +1,115 @@
{
"CONVERSATION": {
"SELECT_A_CONVERSATION": "왼쪽 창에서 대화를 선택하십시오.",
- "CSAT_REPLY_MESSAGE": "대화를 평가해 주세요",
- "404": "Sorry, we cannot find the conversation. Please try again",
- "SWITCH_VIEW_LAYOUT": "Switch the layout",
+ "CSAT_REPLY_MESSAGE": "대화를 평가해 주십시오",
+ "404": "죄송합니다. 대화를 찾을 수 없습니다. 다시 시도해 주십시오.",
+ "SWITCH_VIEW_LAYOUT": "레이아웃 전환",
"DASHBOARD_APP_TAB_MESSAGES": "메시지",
- "UNVERIFIED_SESSION": "The identity of this user is not verified",
- "NO_MESSAGE_1": "어라! 받은 메시지함에 고객의 메시지가 없는 것 같아요.",
+ "UNVERIFIED_SESSION": "이 사용자의 신원이 확인되지 않았습니다",
+ "NO_MESSAGE_1": "어라! 받은 메시지함에 고객의 메시지가 없는 것 같습니다.",
"NO_MESSAGE_2": " 페이지에 메시지를 보내기 위해서!",
- "NO_INBOX_1": "안녕! 아직 받은 메시지함을 하나도 추가하지 않은 것 같아요.",
+ "NO_INBOX_1": "안녕하세요! 아직 받은 메시지함을 하나도 추가하지 않은 것 같습니다.",
"NO_INBOX_2": " 시작하려면",
- "NO_INBOX_AGENT": "오! 어떤 받은 메시지함에도 속하지 않는 것 같습니다. 관리자에게 문의하십시오.",
+ "NO_INBOX_AGENT": "어떤 받은 메시지함에도 속하지 않는 것 같습니다. 관리자에게 문의하십시오.",
"SEARCH_MESSAGES": "대화에서 메시지 검색",
- "VIEW_ORIGINAL": "View original",
- "VIEW_TRANSLATED": "View translated",
+ "VIEW_ORIGINAL": "원본 보기",
+ "VIEW_TRANSLATED": "번역 보기",
"EMPTY_STATE": {
- "CMD_BAR": "to open command menu",
- "KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
+ "CMD_BAR": "명령 메뉴를 열려면",
+ "KEYBOARD_SHORTCUTS": "키보드 단축키를 보려면"
},
"SEARCH": {
"TITLE": "메시지 검색",
"RESULT_TITLE": "검색 결과",
"LOADING_MESSAGE": "데이터 처리 중...",
- "PLACEHOLDER": "검색할 텍스트를 입력하세요",
+ "PLACEHOLDER": "검색할 텍스트를 입력하십시오",
"NO_MATCHING_RESULTS": "검색 결과가 없습니다."
},
"UNREAD_MESSAGES": "안 읽은 메시지",
"UNREAD_MESSAGE": "안 읽은 메시지",
- "CLICK_HERE": "여기를 클릭하세요",
+ "CLICK_HERE": "여기를 클릭하십시오",
"LOADING_INBOXES": "받은 메시지함 불러오는 중",
"LOADING_CONVERSATIONS": "대화 불러오는 중",
- "CANNOT_REPLY": "당신은 답장을 할 수 없습니다",
+ "CANNOT_REPLY": "다음 사유로 답장할 수 없습니다",
"24_HOURS_WINDOW": "24시간 메시지 창 제한",
"48_HOURS_WINDOW": "48시간 메시지 창 제한",
- "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
- "NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
- "ASSIGN_TO_ME": "Assign to me",
- "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
- "BOT_HANDOFF_ACTION": "Mark open and assign to you",
- "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
- "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
- "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
- "TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
+ "API_HOURS_WINDOW": "이 대화에는 {hours}시간 이내에만 답장할 수 있습니다",
+ "NOT_ASSIGNED_TO_YOU": "이 대화는 귀하에게 배정되지 않았습니다. 이 대화를 자신에게 배정하시겠습니까?",
+ "ASSIGN_TO_ME": "나에게 배정",
+ "BOT_HANDOFF_MESSAGE": "현재 어시스턴트 또는 봇이 처리 중인 대화에 응답하고 있습니다.",
+ "BOT_HANDOFF_ACTION": "열림으로 표시하고 나에게 배정",
+ "BOT_HANDOFF_REOPEN_ACTION": "대화를 열림으로 표시",
+ "BOT_HANDOFF_SUCCESS": "대화가 귀하에게 인계되었습니다",
+ "BOT_HANDOFF_ERROR": "대화 인계에 실패했습니다. 다시 시도해 주십시오.",
+ "TWILIO_WHATSAPP_CAN_REPLY": "다음 사유로 인해 템플릿 메시지로만 이 대화에 답장할 수 있습니다",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24시간 메시지 창 제한",
- "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "이 Instagram 계정은 새 Instagram 채널 받은 메시지함으로 마이그레이션되었습니다. 모든 새 메시지는 해당 받은 메시지함에 표시됩니다. 이 대화에서는 더 이상 메시지를 보낼 수 없습니다.",
"REPLYING_TO": "회신할 대상:",
"REMOVE_SELECTION": "선택 항목 제거",
"DOWNLOAD": "다운로드",
"UNKNOWN_FILE_TYPE": "알 수 없는 파일",
- "SAVE_CONTACT": "Save Contact",
- "NO_CONTENT": "No content to display",
+ "SAVE_CONTACT": "연락처 저장",
+ "NO_CONTENT": "표시할 내용이 없습니다",
"SHARED_ATTACHMENT": {
- "CONTACT": "{sender} has shared a contact",
- "LOCATION": "{sender} has shared a location",
- "FILE": "{sender} has shared a file",
- "MEETING": "{sender} has started a meeting"
+ "CONTACT": "{sender}님이 연락처를 공유했습니다",
+ "LOCATION": "{sender}님이 위치를 공유했습니다",
+ "FILE": "{sender}님이 파일을 공유했습니다",
+ "MEETING": "{sender}님이 회의를 시작했습니다"
},
- "UPLOADING_ATTACHMENTS": "첨부 업로드 중...",
- "REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
- "UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
- "UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
- "SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
- "FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
- "NO_RESPONSE": "응답없음",
- "RESPONSE": "Response",
- "RATING_TITLE": "Rating",
- "FEEDBACK_TITLE": "Feedback",
- "REPLY_MESSAGE_NOT_FOUND": "Message not available",
+ "UPLOADING_ATTACHMENTS": "첨부 파일 업로드 중...",
+ "REPLIED_TO_STORY": "스토리에 답장했습니다",
+ "UNSUPPORTED_MESSAGE": "이 메시지는 지원되지 않습니다. 확인하려면 원래 플랫폼에서 열어 주십시오.",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "이 메시지는 지원되지 않습니다. Facebook Messenger 앱에서 이 메시지를 확인할 수 있습니다.",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "이 메시지는 지원되지 않습니다. Instagram 앱에서 이 메시지를 확인할 수 있습니다.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "이 메시지는 지원되지 않습니다. TikTok 앱에서 이 메시지를 확인할 수 있습니다.",
+ "SUCCESS_DELETE_MESSAGE": "메시지가 성공적으로 삭제되었습니다",
+ "FAIL_DELETE_MESSSAGE": "메시지를 삭제할 수 없습니다! 다시 시도해 주십시오.",
+ "NO_RESPONSE": "응답 없음",
+ "RESPONSE": "응답",
+ "RATING_TITLE": "평점",
+ "FEEDBACK_TITLE": "피드백",
+ "REPLY_MESSAGE_NOT_FOUND": "메시지를 사용할 수 없습니다",
"CARD": {
- "SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "SHOW_LABELS": "라벨 표시",
+ "HIDE_LABELS": "라벨 숨기기"
},
"VOICE_CALL": {
- "INCOMING_CALL": "Incoming call",
- "OUTGOING_CALL": "Outgoing call",
- "CALL_IN_PROGRESS": "Call in progress",
- "NO_ANSWER": "No answer",
- "MISSED_CALL": "Missed call",
- "CALL_ENDED": "Call ended",
- "NOT_ANSWERED_YET": "Not answered yet",
- "THEY_ANSWERED": "They answered",
- "YOU_ANSWERED": "You answered"
+ "INCOMING_CALL": "수신 전화",
+ "OUTGOING_CALL": "발신 전화",
+ "CALL_IN_PROGRESS": "통화 중",
+ "NO_ANSWER": "응답 없음",
+ "MISSED_CALL": "부재중 전화",
+ "CALL_ENDED": "통화 종료",
+ "NOT_ANSWERED_YET": "아직 응답하지 않았습니다",
+ "THEY_ANSWERED": "상대방이 응답했습니다",
+ "YOU_ANSWERED": "귀하가 응답했습니다"
},
"HEADER": {
"RESOLVE_ACTION": "해결함",
"REOPEN_ACTION": "다시 열기",
"OPEN_ACTION": "열기",
- "MORE_ACTIONS": "More actions",
+ "MORE_ACTIONS": "추가 작업",
"OPEN": "더보기",
"CLOSE": "닫기",
"DETAILS": "자세히",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
- "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply",
+ "SNOOZED_UNTIL": "다음까지 일시 중지",
+ "SNOOZED_UNTIL_TOMORROW": "내일까지 일시 중지",
+ "SNOOZED_UNTIL_NEXT_WEEK": "다음 주까지 일시 중지",
+ "SNOOZED_UNTIL_NEXT_REPLY": "다음 답장까지 일시 중지",
"SLA_STATUS": {
"FRT": "FRT {status}",
"NRT": "NRT {status}",
"RT": "RT {status}",
- "MISSED": "missed",
- "DUE": "due"
+ "MISSED": "초과",
+ "DUE": "마감 예정"
}
},
"RESOLVE_DROPDOWN": {
- "MARK_PENDING": "Mark as pending",
- "SNOOZE_UNTIL": "Snooze",
+ "MARK_PENDING": "보류로 표시",
+ "SNOOZE_UNTIL": "일시 중지",
"SNOOZE": {
- "TITLE": "Snooze until",
- "NEXT_REPLY": "Next reply",
+ "TITLE": "다음까지 일시 중지",
+ "NEXT_REPLY": "다음 답장",
"TOMORROW": "내일",
"NEXT_WEEK": "다음 주"
}
@@ -118,322 +119,334 @@
"TEAMS": "팀"
},
"CUSTOM_SNOOZE": {
- "TITLE": "Snooze until",
- "APPLY": "Snooze",
+ "TITLE": "다음까지 일시 중지",
+ "APPLY": "일시 중지",
"CANCEL": "취소"
},
"PRIORITY": {
- "TITLE": "Priority",
+ "TITLE": "우선순위",
"OPTIONS": {
"NONE": "없음",
- "URGENT": "Urgent",
- "HIGH": "High",
- "MEDIUM": "Medium",
- "LOW": "Low"
+ "URGENT": "긴급",
+ "HIGH": "높음",
+ "MEDIUM": "중간",
+ "LOW": "낮음"
},
"CHANGE_PRIORITY": {
"SELECT_PLACEHOLDER": "없음",
- "INPUT_PLACEHOLDER": "Select priority",
+ "INPUT_PLACEHOLDER": "우선순위 선택",
"NO_RESULTS": "검색 결과가 없습니다",
- "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
- "FAILED": "Couldn't change priority. Please try again."
+ "SUCCESSFUL": "대화 ID {conversationId}의 우선순위가 {priority}(으)로 변경되었습니다",
+ "FAILED": "우선순위를 변경할 수 없습니다. 다시 시도해 주십시오."
}
},
"DELETE_CONVERSATION": {
- "TITLE": "Delete conversation #{conversationId}",
- "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "TITLE": "대화 #{conversationId} 삭제",
+ "DESCRIPTION": "이 대화를 삭제하시겠습니까?",
"CONFIRM": "삭제"
},
"CARD_CONTEXT_MENU": {
- "PENDING": "Mark as pending",
- "RESOLVED": "Mark as resolved",
- "MARK_AS_UNREAD": "Mark as unread",
- "MARK_AS_READ": "Mark as read",
+ "PENDING": "보류로 표시",
+ "RESOLVED": "해결됨으로 표시",
+ "MARK_AS_UNREAD": "읽지 않음으로 표시",
+ "MARK_AS_READ": "읽음으로 표시",
"REOPEN": "대화 다시 열기",
"SNOOZE": {
- "TITLE": "Snooze",
- "NEXT_REPLY": "Until next reply",
+ "TITLE": "일시 중지",
+ "NEXT_REPLY": "다음 답장까지",
"TOMORROW": "내일까지",
"NEXT_WEEK": "다음 주까지"
},
- "ASSIGN_AGENT": "Assign agent",
- "ASSIGN_LABEL": "Assign label",
- "AGENTS_LOADING": "Loading agents...",
- "ASSIGN_TEAM": "Assign team",
- "DELETE": "Delete conversation",
- "OPEN_IN_NEW_TAB": "Open in new tab",
- "COPY_LINK": "Copy conversation link",
- "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
+ "ASSIGN_AGENT": "에이전트 배정",
+ "ASSIGN_LABEL": "라벨 배정",
+ "AGENTS_LOADING": "에이전트 불러오는 중...",
+ "ASSIGN_TEAM": "팀 배정",
+ "DELETE": "대화 삭제",
+ "OPEN_IN_NEW_TAB": "새 탭에서 열기",
+ "COPY_LINK": "대화 링크 복사",
+ "COPY_LINK_SUCCESS": "대화 링크가 클립보드에 복사되었습니다",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
- "FAILED": "Couldn't assign agent. Please try again."
+ "SUCCESFUL": "대화 ID {conversationId}이(가) \"{agentName}\"에게 배정되었습니다",
+ "FAILED": "에이전트를 배정할 수 없습니다. 다시 시도해 주십시오."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
- "FAILED": "Couldn't assign label. Please try again."
+ "SUCCESFUL": "라벨 #{labelName}이(가) 대화 ID {conversationId}에 배정되었습니다",
+ "FAILED": "라벨을 배정할 수 없습니다. 다시 시도해 주십시오."
+ },
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "라벨 #{labelName}이(가) 대화 ID {conversationId}에서 제거되었습니다",
+ "FAILED": "라벨을 제거할 수 없습니다. 다시 시도해 주십시오."
},
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
- "FAILED": "Couldn't assign team. Please try again."
+ "SUCCESFUL": "팀 \"{team}\"이(가) 대화 ID {conversationId}에 배정되었습니다",
+ "FAILED": "팀을 배정할 수 없습니다. 다시 시도해 주십시오."
}
}
},
"FOOTER": {
- "MESSAGE_SIGN_TOOLTIP": "Message signature",
- "ENABLE_SIGN_TOOLTIP": "Enable signature",
- "DISABLE_SIGN_TOOLTIP": "Disable signature",
- "MSG_INPUT": "줄바꿈을 하시려면 Shift + enter 클릭하십시오. '/'로 시작하여 미리 준비된 답변을 사용할 수 있습니다.",
- "PRIVATE_MSG_INPUT": "줄바꿈을 하시려면 Shift + enter 클릭하십시오. 에이전트만 볼 수 있습니다.",
- "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update",
- "WHATSAPP_TEMPLATES": "Whatsapp Templates"
+ "MESSAGE_SIGN_TOOLTIP": "메시지 서명",
+ "ENABLE_SIGN_TOOLTIP": "서명 활성화",
+ "DISABLE_SIGN_TOOLTIP": "서명 비활성화",
+ "MSG_INPUT": "줄바꿈을 하시려면 Shift + Enter를 누르십시오. '/'로 시작하여 미리 준비된 답변을 사용할 수 있습니다.",
+ "PRIVATE_MSG_INPUT": "줄바꿈을 하시려면 Shift + Enter를 누르십시오. 에이전트만 볼 수 있습니다.",
+ "MESSAGING_RESTRICTED": "이 대화에 답장할 수 없습니다",
+ "MESSAGING_RESTRICTED_WHATSAPP": "24시간 메시지 창 제한으로 인해 템플릿 메시지로만 답장할 수 있습니다",
+ "MESSAGING_RESTRICTED_API": "메시지 창 제한으로 인해 템플릿 메시지로만 답장할 수 있습니다",
+ "MESSAGE_SIGNATURE_NOT_CONFIGURED": "메시지 서명이 설정되지 않았습니다. 프로필 설정에서 설정해 주십시오.",
+ "COPILOT_MSG_INPUT": "Copilot에 추가 프롬프트를 입력하거나 다른 질문을 하십시오... Enter를 눌러 후속 메시지를 보내십시오",
+ "CLICK_HERE": "업데이트하려면 여기를 클릭하십시오",
+ "WHATSAPP_TEMPLATES": "WhatsApp 템플릿"
},
"REPLYBOX": {
"REPLY": "답글",
"PRIVATE_NOTE": "개인 노트",
"SEND": "보내기",
"CREATE": "노트 추가",
- "INSERT_READ_MORE": "Read more",
- "DISMISS_REPLY": "Dismiss reply",
- "REPLYING_TO": "Replying to:",
+ "INSERT_READ_MORE": "더 읽기",
+ "DISMISS_REPLY": "답글 취소",
+ "REPLYING_TO": "답글 대상:",
"TIP_EMOJI_ICON": "이모티콘 보기",
"TIP_ATTACH_ICON": "파일 첨부",
- "TIP_AUDIORECORDER_ICON": "Record audio",
- "TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
- "TIP_AUDIORECORDER_ERROR": "Could not open the audio",
- "DRAG_DROP": "Drag and drop here to attach",
- "START_AUDIO_RECORDING": "Start audio recording",
- "STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "TIP_AUDIORECORDER_ICON": "오디오 녹음",
+ "TIP_AUDIORECORDER_PERMISSION": "오디오 접근 허용",
+ "TIP_AUDIORECORDER_ERROR": "오디오를 열 수 없습니다",
+ "DRAG_DROP": "여기에 드래그 앤 드롭하여 첨부하십시오",
+ "START_AUDIO_RECORDING": "오디오 녹음 시작",
+ "STOP_AUDIO_RECORDING": "오디오 녹음 중지",
+ "COPILOT_THINKING": "Copilot이 생각하고 있습니다",
"EMAIL_HEAD": {
- "TO": "TO",
- "ADD_BCC": "Add bcc",
+ "TO": "받는 사람",
+ "ADD_BCC": "숨은 참조 추가",
"CC": {
"LABEL": "CC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "PLACEHOLDER": "이메일 주소를 쉼표로 구분하여 입력하십시오",
+ "ERROR": "올바른 이메일 주소를 입력하십시오"
},
"BCC": {
"LABEL": "BCC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "PLACEHOLDER": "이메일 주소를 쉼표로 구분하여 입력하십시오",
+ "ERROR": "올바른 이메일 주소를 입력하십시오"
}
},
"UNDEFINED_VARIABLES": {
- "TITLE": "Undefined variables",
- "MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?",
+ "TITLE": "정의되지 않은 변수",
+ "MESSAGE": "메시지에 정의되지 않은 변수가 {undefinedVariablesCount}개 있습니다: {undefinedVariables}. 그래도 메시지를 보내시겠습니까?",
"CONFIRM": {
"YES": "보내기",
"CANCEL": "취소"
}
},
"QUOTED_REPLY": {
- "ENABLE_TOOLTIP": "Include quoted email thread",
- "DISABLE_TOOLTIP": "Don't include quoted email thread",
- "REMOVE_PREVIEW": "Remove quoted email thread",
- "COLLAPSE": "Collapse preview",
- "EXPAND": "Expand preview"
+ "ENABLE_TOOLTIP": "인용된 이메일 스레드 포함",
+ "DISABLE_TOOLTIP": "인용된 이메일 스레드 포함하지 않음",
+ "REMOVE_PREVIEW": "인용된 이메일 스레드 제거",
+ "COLLAPSE": "미리보기 축소",
+ "EXPAND": "미리보기 확장"
}
},
- "VISIBLE_TO_AGENTS": "개인 노트: 귀하와 귀하의 팀만 볼 수 있음",
- "CHANGE_STATUS": "대화 상태가 변경됨",
- "CHANGE_STATUS_FAILED": "Conversation status change failed",
- "CHANGE_AGENT": "대화 담당자가 변경됨",
- "CHANGE_AGENT_FAILED": "Assignee change failed",
- "ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
- "ASSIGN_LABEL_FAILED": "Label assignment failed",
- "CHANGE_TEAM": "대화 담당자가 변경됨",
- "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
- "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
- "FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
- "MESSAGE_ERROR": "Unable to send this message, please try again later",
+ "VISIBLE_TO_AGENTS": "개인 노트: 귀하와 귀하의 팀만 볼 수 있습니다",
+ "CHANGE_STATUS": "대화 상태가 변경되었습니다",
+ "CHANGE_STATUS_FAILED": "대화 상태 변경에 실패했습니다",
+ "CHANGE_AGENT": "대화 담당자가 변경되었습니다",
+ "CHANGE_AGENT_FAILED": "담당자 변경에 실패했습니다",
+ "ASSIGN_LABEL_SUCCESFUL": "라벨이 성공적으로 배정되었습니다",
+ "ASSIGN_LABEL_FAILED": "라벨 배정에 실패했습니다",
+ "CHANGE_TEAM": "대화 팀이 변경되었습니다",
+ "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": "봇",
- "SEND_FAILED": "Couldn't send message! Try again",
- "TRY_AGAIN": "retry",
+ "NATIVE_APP": "네이티브 앱",
+ "NATIVE_APP_ADVISORY": "이 메시지는 네이티브 앱에서 전송되었습니다. 메시지 창을 유지하려면 Chatwoot에서 답장하십시오.",
+ "SEND_FAILED": "메시지를 보낼 수 없습니다! 다시 시도해 주십시오.",
+ "TRY_AGAIN": "재시도",
"ASSIGNMENT": {
"SELECT_AGENT": "에이전트 선택",
"REMOVE": "제거",
- "ASSIGN": "할당하다"
+ "ASSIGN": "배정"
},
"CONTEXT_MENU": {
"COPY": "복사",
- "REPLY_TO": "Reply to this message",
+ "REPLY_TO": "이 메시지에 답장",
"DELETE": "삭제",
- "CREATE_A_CANNED_RESPONSE": "Add to canned responses",
- "TRANSLATE": "Translate",
- "COPY_PERMALINK": "Copy link to the message",
- "LINK_COPIED": "Message URL copied to the clipboard",
+ "CREATE_A_CANNED_RESPONSE": "미리 준비된 답변에 추가",
+ "TRANSLATE": "번역",
+ "COPY_PERMALINK": "메시지 링크 복사",
+ "LINK_COPIED": "메시지 URL이 클립보드에 복사되었습니다",
"DELETE_CONFIRMATION": {
- "TITLE": "Are you sure you want to delete this message?",
- "MESSAGE": "You cannot undo this action",
+ "TITLE": "이 메시지를 삭제하시겠습니까?",
+ "MESSAGE": "이 작업은 취소할 수 없습니다",
"DELETE": "삭제",
"CANCEL": "취소"
}
},
"SIDEBAR": {
- "CONTACT": "Contact",
+ "CONTACT": "연락처",
"COPILOT": "Copilot"
},
"VOICE_WIDGET": {
- "INCOMING_CALL": "Incoming call",
- "OUTGOING_CALL": "Outgoing call",
- "CALL_IN_PROGRESS": "Call in progress",
- "NOT_ANSWERED_YET": "Not answered yet",
- "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
- "REJECT_CALL": "Reject",
- "JOIN_CALL": "Join call",
- "END_CALL": "End call"
+ "INCOMING_CALL": "수신 전화",
+ "OUTGOING_CALL": "발신 전화",
+ "CALL_IN_PROGRESS": "통화 중",
+ "NOT_ANSWERED_YET": "아직 응답하지 않았습니다",
+ "HANDLED_IN_ANOTHER_TAB": "다른 탭에서 처리 중입니다",
+ "REJECT_CALL": "거부",
+ "JOIN_CALL": "통화 참가",
+ "END_CALL": "통화 종료"
}
},
"EMAIL_TRANSCRIPT": {
"TITLE": "대화 내용 보내기",
- "DESC": "지정된 이메일 주소로 대화 내용 사본 보내기",
- "SUBMIT": "보내기",
+ "DESC": "지정된 이메일 주소로 대화 내용 사본을 보냅니다",
+ "SUBMIT": "제출",
"CANCEL": "취소",
- "SEND_EMAIL_SUCCESS": "대화 내용이 성공적으로 전송됨",
- "SEND_EMAIL_ERROR": "오류가 발생했습니다. 다시 시도하십시오.",
+ "SEND_EMAIL_SUCCESS": "대화 내용이 성공적으로 전송되었습니다",
+ "SEND_EMAIL_ERROR": "오류가 발생했습니다. 다시 시도해 주십시오.",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "현재 플랜에서는 이메일 대화 기록을 사용할 수 없습니다. 이 기능을 사용하려면 업그레이드하십시오.",
"FORM": {
- "SEND_TO_CONTACT": "고객에게 대화기록 보내기",
- "SEND_TO_AGENT": "할당된 에이전트로 스크립트 보내기",
- "SEND_TO_OTHER_EMAIL_ADDRESS": "다른 이메일 주소로 대화기록 보내기",
+ "SEND_TO_CONTACT": "고객에게 대화 기록 보내기",
+ "SEND_TO_AGENT": "배정된 에이전트에게 대화 기록 보내기",
+ "SEND_TO_OTHER_EMAIL_ADDRESS": "다른 이메일 주소로 대화 기록 보내기",
"EMAIL": {
- "PLACEHOLDER": "이메일 주소 입력",
- "ERROR": "올바른 전자 메일 주소를 입력하십시오."
+ "PLACEHOLDER": "이메일 주소를 입력하십시오",
+ "ERROR": "올바른 이메일 주소를 입력하십시오"
}
}
},
"ONBOARDING": {
"TITLE": "안녕하세요 👋, {installationName}에 오신 것을 환영합니다!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
- "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
- "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
- "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
+ "DESCRIPTION": "가입해 주셔서 감사합니다. {installationName}을(를) 최대한 활용하실 수 있도록 도와드리겠습니다. {installationName}에서 경험을 향상시키기 위해 할 수 있는 몇 가지를 소개합니다.",
+ "GREETING_MORNING": "👋 좋은 아침입니다, {name}님. {installationName}에 오신 것을 환영합니다.",
+ "GREETING_AFTERNOON": "👋 좋은 오후입니다, {name}님. {installationName}에 오신 것을 환영합니다.",
+ "GREETING_EVENING": "👋 좋은 저녁입니다, {name}님. {installationName}에 오신 것을 환영합니다.",
"READ_LATEST_UPDATES": "최근 업데이트 내용 보기",
"ALL_CONVERSATION": {
"TITLE": "모든 대화를 한 곳에서",
- "DESCRIPTION": "고객들과의 모든 대화를 하나의 대시보드에서 확인하세요. 대화들을 채널별, 라벨별, 상태별로 필터링 할 수 있습니다.",
- "NEW_LINK": "클릭하여 받은 메시지함을 생성하세요."
+ "DESCRIPTION": "고객들과의 모든 대화를 하나의 대시보드에서 확인하십시오. 대화를 채널별, 라벨별, 상태별로 필터링할 수 있습니다.",
+ "NEW_LINK": "클릭하여 받은 메시지함을 생성하십시오"
},
"TEAM_MEMBERS": {
- "TITLE": "팀 구성원들을 초대하세요.",
- "DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
- "NEW_LINK": "클릭하여 팀원을 초대하세요."
+ "TITLE": "팀 구성원을 초대하십시오",
+ "DESCRIPTION": "고객과 대화할 준비가 되셨다면, 팀원들을 초대하여 도움을 받으십시오. 에이전트 목록에 팀원의 이메일 주소를 추가하여 초대할 수 있습니다.",
+ "NEW_LINK": "클릭하여 팀원을 초대하십시오"
},
"LABELS": {
- "TITLE": "대화들을 라벨로 정리하기",
- "DESCRIPTION": "라벨들은 대화들을 분류할 수 있는 쉬운 방법을 제공합니다. 예를 들면 #support-enquiry, #billing-question 등과 같은 라벨을 생성해서 나중에 대화할 때 사용할 수 있습니다.",
- "NEW_LINK": "클릭하여 태그를 생성하세요."
+ "TITLE": "대화를 라벨로 정리하기",
+ "DESCRIPTION": "라벨은 대화를 분류할 수 있는 쉬운 방법을 제공합니다. 예를 들어 #support-enquiry, #billing-question 등과 같은 라벨을 생성하여 나중에 대화에서 사용할 수 있습니다.",
+ "NEW_LINK": "클릭하여 태그를 생성하십시오"
},
"CANNED_RESPONSES": {
- "TITLE": "Create canned responses",
- "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
- "NEW_LINK": "Click here to create a canned response"
+ "TITLE": "미리 준비된 답변 생성",
+ "DESCRIPTION": "미리 작성된 빠른 답변 템플릿을 통해 대화에 신속하게 응답할 수 있습니다. 에이전트가 '/' 문자와 단축 코드를 입력하여 답변을 삽입할 수 있습니다.",
+ "NEW_LINK": "클릭하여 미리 준비된 답변을 생성하십시오"
}
},
"CONVERSATION_SIDEBAR": {
- "ASSIGNEE_LABEL": "할당된 에이전트",
- "SELF_ASSIGN": "Assign to me",
- "TEAM_LABEL": "할당된 팀",
+ "ASSIGNEE_LABEL": "배정된 에이전트",
+ "SELF_ASSIGN": "나에게 배정",
+ "TEAM_LABEL": "배정된 팀",
"SELECT": {
"PLACEHOLDER": "없음"
},
"ACCORDION": {
- "CONTACT_DETAILS": "Contact Details",
- "CONVERSATION_ACTIONS": "Conversation Actions",
+ "CONTACT_DETAILS": "연락처 세부 정보",
+ "CONVERSATION_ACTIONS": "대화 작업",
"CONVERSATION_LABELS": "대화 라벨",
- "CONVERSATION_INFO": "Conversation Information",
- "CONTACT_NOTES": "Contact Notes",
- "CONTACT_ATTRIBUTES": "Contact Attributes",
+ "CONVERSATION_INFO": "대화 정보",
+ "CONTACT_NOTES": "연락처 메모",
+ "CONTACT_ATTRIBUTES": "연락처 속성",
"PREVIOUS_CONVERSATION": "이전 대화",
- "MACROS": "Macros",
- "LINEAR_ISSUES": "Linked Linear Issues",
- "SHOPIFY_ORDERS": "Shopify Orders"
+ "MACROS": "매크로",
+ "LINEAR_ISSUES": "연결된 Linear 이슈",
+ "SHOPIFY_ORDERS": "Shopify 주문"
},
"SHOPIFY": {
- "ORDER_ID": "Order #{id}",
- "ERROR": "Error loading orders",
- "NO_SHOPIFY_ORDERS": "No orders found",
+ "ORDER_ID": "주문 #{id}",
+ "ERROR": "주문 불러오기 오류",
+ "NO_SHOPIFY_ORDERS": "주문을 찾을 수 없습니다",
"FINANCIAL_STATUS": {
- "PENDING": "보내는 중",
- "AUTHORIZED": "Authorized",
- "PARTIALLY_PAID": "Partially Paid",
- "PAID": "Paid",
- "PARTIALLY_REFUNDED": "Partially Refunded",
- "REFUNDED": "Refunded",
- "VOIDED": "Voided"
+ "PENDING": "대기 중",
+ "AUTHORIZED": "승인됨",
+ "PARTIALLY_PAID": "일부 결제됨",
+ "PAID": "결제 완료",
+ "PARTIALLY_REFUNDED": "일부 환불됨",
+ "REFUNDED": "환불됨",
+ "VOIDED": "무효화됨"
},
"FULFILLMENT_STATUS": {
- "FULFILLED": "Fulfilled",
- "PARTIALLY_FULFILLED": "Partially Fulfilled",
- "UNFULFILLED": "Unfulfilled"
+ "FULFILLED": "이행 완료",
+ "PARTIALLY_FULFILLED": "일부 이행됨",
+ "UNFULFILLED": "미이행"
}
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Create attribute",
- "NO_RECORDS_FOUND": "No attributes found",
+ "ADD_BUTTON_TEXT": "속성 생성",
+ "NO_RECORDS_FOUND": "속성을 찾을 수 없습니다",
"UPDATE": {
- "SUCCESS": "Attribute updated successfully",
- "ERROR": "Unable to update attribute. Please try again later"
+ "SUCCESS": "속성이 성공적으로 업데이트되었습니다",
+ "ERROR": "속성을 업데이트할 수 없습니다. 나중에 다시 시도해 주십시오."
},
"ADD": {
- "TITLE": "추가하기",
- "SUCCESS": "Attribute added successfully",
- "ERROR": "Unable to add attribute. Please try again later"
+ "TITLE": "추가",
+ "SUCCESS": "속성이 성공적으로 추가되었습니다",
+ "ERROR": "속성을 추가할 수 없습니다. 나중에 다시 시도해 주십시오."
},
"DELETE": {
- "SUCCESS": "Attribute deleted successfully",
- "ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS": "속성이 성공적으로 삭제되었습니다",
+ "ERROR": "속성을 삭제할 수 없습니다. 나중에 다시 시도해 주십시오."
},
"ATTRIBUTE_SELECT": {
- "TITLE": "속성 추가하기",
- "PLACEHOLDER": "Search attributes",
- "NO_RESULT": "No attributes found"
+ "TITLE": "속성 추가",
+ "PLACEHOLDER": "속성 검색",
+ "NO_RESULT": "속성을 찾을 수 없습니다"
}
},
"EMAIL_HEADER": {
- "FROM": "From",
- "TO": "~~에게",
- "BCC": "Bcc",
- "CC": "Cc",
- "SUBJECT": "Subject",
- "EXPAND": "Expand email"
+ "FROM": "보낸 사람",
+ "TO": "받는 사람",
+ "BCC": "숨은 참조",
+ "CC": "참조",
+ "SUBJECT": "제목",
+ "EXPAND": "이메일 펼치기"
},
"CONVERSATION_PARTICIPANTS": {
- "SIDEBAR_MENU_TITLE": "Participating",
- "SIDEBAR_TITLE": "Conversation participants",
+ "SIDEBAR_MENU_TITLE": "참여 중",
+ "SIDEBAR_TITLE": "대화 참여자",
"NO_RECORDS_FOUND": "검색 결과가 없습니다",
- "ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+{count} others",
- "REMANING_PARTICIPANT_TEXT": "+{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
- "NO_PARTICIPANTS_TEXT": "No one is participating!.",
- "WATCH_CONVERSATION": "Join conversation",
- "YOU_ARE_WATCHING": "You are participating",
+ "ADD_PARTICIPANTS": "참여자 선택",
+ "REMANING_PARTICIPANTS_TEXT": "+{count}명",
+ "REMANING_PARTICIPANT_TEXT": "+{count}명",
+ "TOTAL_PARTICIPANTS_TEXT": "{count}명이 참여하고 있습니다.",
+ "TOTAL_PARTICIPANT_TEXT": "{count}명이 참여하고 있습니다.",
+ "NO_PARTICIPANTS_TEXT": "참여 중인 사람이 없습니다.",
+ "WATCH_CONVERSATION": "대화 참여",
+ "YOU_ARE_WATCHING": "참여 중입니다",
"API": {
- "ERROR_MESSAGE": "Could not update, try again!",
- "SUCCESS_MESSAGE": "Participants updated!"
+ "ERROR_MESSAGE": "업데이트할 수 없습니다. 다시 시도해 주십시오!",
+ "SUCCESS_MESSAGE": "참여자가 업데이트되었습니다!"
}
},
"TRANSLATE_MODAL": {
- "TITLE": "View translated content",
- "DESC": "You can view the translated content in each langauge.",
- "ORIGINAL_CONTENT": "Original Content",
- "TRANSLATED_CONTENT": "Translated Content",
- "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ "TITLE": "번역된 내용 보기",
+ "DESC": "각 언어별로 번역된 내용을 확인할 수 있습니다.",
+ "ORIGINAL_CONTENT": "원본 내용",
+ "TRANSLATED_CONTENT": "번역된 내용",
+ "NO_TRANSLATIONS_AVAILABLE": "이 내용에 대한 번역이 없습니다"
},
"TYPING": {
- "ONE": "{user} is typing",
- "TWO": "{user} and {secondUser} are typing",
- "MULTIPLE": "{user} and {count} others are typing"
+ "ONE": "{user}님이 입력하고 있습니다",
+ "TWO": "{user}님과 {secondUser}님이 입력하고 있습니다",
+ "MULTIPLE": "{user}님 외 {count}명이 입력하고 있습니다"
},
"COPILOT": {
- "TRY_THESE_PROMPTS": "Try these prompts"
+ "TRY_THESE_PROMPTS": "다음 프롬프트를 시도해 보십시오"
},
"GALLERY_VIEW": {
- "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
+ "ERROR_DOWNLOADING": "첨부 파일을 다운로드할 수 없습니다. 다시 시도해 주십시오."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/csatMgmt.json b/app/javascript/dashboard/i18n/locale/ko/csatMgmt.json
index 9e16dc2b3..9b13c89fd 100644
--- a/app/javascript/dashboard/i18n/locale/ko/csatMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/csatMgmt.json
@@ -1,13 +1,13 @@
{
"CSAT": {
- "TITLE": "Rate your conversation",
- "PLACEHOLDER": "Tell us more...",
+ "TITLE": "대화를 평가해 주십시오",
+ "PLACEHOLDER": "더 자세히 알려주십시오...",
"RATINGS": {
- "POOR": "😞 Poor",
- "FAIR": "😑 Fair",
- "AVERAGE": "😐 Average",
- "GOOD": "😀 Good",
- "EXCELLENT": "😍 Excellent"
+ "POOR": "😞 매우 나쁨",
+ "FAIR": "😑 나쁨",
+ "AVERAGE": "😐 보통",
+ "GOOD": "😀 좋음",
+ "EXCELLENT": "😍 매우 좋음"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/customRole.json b/app/javascript/dashboard/i18n/locale/ko/customRole.json
index 0127b3af0..87ff56ffc 100644
--- a/app/javascript/dashboard/i18n/locale/ko/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/ko/customRole.json
@@ -1,89 +1,92 @@
{
"CUSTOM_ROLE": {
- "HEADER": "Custom Roles",
- "LEARN_MORE": "Learn more about custom roles",
- "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
- "HEADER_BTN_TXT": "Add custom role",
- "LOADING": "Fetching custom roles...",
- "SEARCH_404": "이 쿼리와 일치하는 항목이 없음.",
+ "HEADER": "사용자 지정 역할",
+ "LEARN_MORE": "사용자 지정 역할에 대해 더 알아보기",
+ "DESCRIPTION": "사용자 지정 역할은 계정 소유자 또는 관리자가 만든 역할입니다. 이 역할은 에이전트에게 할당하여 계정 내 접근 권한 및 권한을 정의할 수 있습니다. 사용자 지정 역할은 조직의 요구 사항에 맞는 특정 권한 및 접근 수준으로 생성할 수 있습니다.",
+ "COUNT": "{n}개의 사용자 지정 역할 | {n}개의 사용자 지정 역할",
+ "HEADER_BTN_TXT": "사용자 지정 역할 추가",
+ "LOADING": "사용자 지정 역할을 불러오는 중...",
+ "SEARCH_PLACEHOLDER": "사용자 지정 역할 검색...",
+ "NO_RESULTS": "검색과 일치하는 사용자 지정 역할이 없습니다",
+ "SEARCH_404": "이 쿼리와 일치하는 항목이 없습니다.",
"PAYWALL": {
- "TITLE": "Upgrade to create custom roles",
- "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
- "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
- "UPGRADE_NOW": "Upgrade now",
- "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ "TITLE": "사용자 지정 역할을 만들려면 업그레이드하십시오",
+ "AVAILABLE_ON": "사용자 지정 역할 기능은 Business 및 Enterprise 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "팀 관리, 자동화, 사용자 지정 속성 등 고급 기능에 접근하려면 플랜을 업그레이드하십시오.",
+ "UPGRADE_NOW": "지금 업그레이드",
+ "CANCEL_ANYTIME": "언제든지 플랜을 변경하거나 취소할 수 있습니다"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
- "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
- "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ "AVAILABLE_ON": "사용자 지정 역할 기능은 유료 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "감사 로그, 에이전트 용량 등 고급 기능에 접근하려면 유료 플랜으로 업그레이드하십시오.",
+ "ASK_ADMIN": "업그레이드에 대해 관리자에게 문의하십시오."
},
"LIST": {
- "404": "There are no custom roles available in this account.",
- "TITLE": "Manage custom roles",
- "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "404": "이 계정에서 사용 가능한 사용자 지정 역할이 없습니다.",
+ "TITLE": "사용자 지정 역할 관리",
+ "DESC": "사용자 지정 역할은 계정 소유자 또는 관리자가 만든 역할입니다. 이 역할은 에이전트에게 할당하여 계정 내 접근 권한 및 권한을 정의할 수 있습니다. 사용자 지정 역할은 조직의 요구 사항에 맞는 특정 권한 및 접근 수준으로 생성할 수 있습니다.",
"TABLE_HEADER": {
"NAME": "이름",
- "DESCRIPTION": "내용",
- "PERMISSIONS": "Permissions",
+ "DESCRIPTION": "설명",
+ "PERMISSIONS": "권한",
"ACTIONS": "액션"
}
},
"PERMISSIONS": {
- "CONVERSATION_MANAGE": "Manage all conversations",
- "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
- "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
- "CONTACT_MANAGE": "Manage contacts",
- "REPORT_MANAGE": "Manage reports",
- "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ "CONVERSATION_MANAGE": "모든 대화 관리",
+ "CONVERSATION_UNASSIGNED_MANAGE": "배정되지 않은 대화 및 자신에게 배정된 대화 관리",
+ "CONVERSATION_PARTICIPATING_MANAGE": "참여 중인 대화 및 자신에게 배정된 대화 관리",
+ "CONTACT_MANAGE": "연락처 관리",
+ "REPORT_MANAGE": "보고서 관리",
+ "KNOWLEDGE_BASE_MANAGE": "지식 기반 관리"
},
"FORM": {
"NAME": {
"LABEL": "이름",
- "PLACEHOLDER": "Please enter a name.",
+ "PLACEHOLDER": "이름을 입력하십시오.",
"ERROR": "이름이 필요합니다."
},
"DESCRIPTION": {
- "LABEL": "내용",
- "PLACEHOLDER": "Please enter a description.",
+ "LABEL": "설명",
+ "PLACEHOLDER": "설명을 입력하십시오.",
"ERROR": "설명이 필요합니다."
},
"PERMISSIONS": {
- "LABEL": "Permissions",
- "ERROR": "Permissions are required."
+ "LABEL": "권한",
+ "ERROR": "권한이 필요합니다."
},
"CANCEL_BUTTON_TEXT": "취소",
"API": {
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요."
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주십시오."
}
},
"ADD": {
- "TITLE": "Add custom role",
- "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
- "SUBMIT": "보내기",
+ "TITLE": "사용자 지정 역할 추가",
+ "DESC": "사용자 지정 역할을 사용하면 조직의 요구 사항에 맞는 특정 권한 및 접근 수준으로 역할을 생성할 수 있습니다.",
+ "SUBMIT": "제출",
"API": {
- "SUCCESS_MESSAGE": "Custom role added successfully."
+ "SUCCESS_MESSAGE": "사용자 지정 역할이 성공적으로 추가되었습니다."
}
},
"EDIT": {
"BUTTON_TEXT": "수정",
- "TITLE": "Edit custom role",
- "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "TITLE": "사용자 지정 역할 편집",
+ "DESC": "사용자 지정 역할을 사용하면 조직의 요구 사항에 맞는 특정 권한 및 접근 수준으로 역할을 생성할 수 있습니다.",
"SUBMIT": "업데이트",
"API": {
- "SUCCESS_MESSAGE": "Custom role updated successfully."
+ "SUCCESS_MESSAGE": "사용자 지정 역할이 성공적으로 업데이트되었습니다."
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"API": {
- "SUCCESS_MESSAGE": "Custom role deleted successfully.",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요."
+ "SUCCESS_MESSAGE": "사용자 지정 역할이 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주십시오."
},
"CONFIRM": {
- "TITLE": "Confirm deletion",
+ "TITLE": "삭제 확인",
"MESSAGE": "삭제하시겠습니까? ",
- "YES": "예, 삭제합니다. ",
+ "YES": "예, 삭제합니다 ",
"NO": "아니요, 유지합니다 "
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/datePicker.json b/app/javascript/dashboard/i18n/locale/ko/datePicker.json
index 03ba71742..88b64f809 100644
--- a/app/javascript/dashboard/i18n/locale/ko/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/ko/datePicker.json
@@ -1,19 +1,24 @@
{
"DATE_PICKER": {
- "APPLY_BUTTON": "Apply",
- "CLEAR_BUTTON": "Clear",
+ "PREVIOUS_PERIOD": "이전 기간",
+ "NEXT_PERIOD": "다음 기간",
+ "WEEK_NUMBER": "{weekNumber}주차",
+ "APPLY_BUTTON": "적용",
+ "CLEAR_BUTTON": "초기화",
"DATE_RANGE_INPUT": {
- "START": "Start Date",
- "END": "End Date"
+ "START": "시작 날짜",
+ "END": "종료 날짜"
},
"DATE_RANGE_OPTIONS": {
- "TITLE": "DATE RANGE",
+ "TITLE": "날짜 범위",
"LAST_7_DAYS": "지난 7일",
"LAST_30_DAYS": "지난 30일",
- "LAST_3_MONTHS": "Last 3 months",
- "LAST_6_MONTHS": "Last 6 months",
- "LAST_YEAR": "Last year",
- "CUSTOM_RANGE": "Custom date range"
+ "LAST_3_MONTHS": "지난 3개월",
+ "LAST_6_MONTHS": "지난 6개월",
+ "LAST_YEAR": "지난 1년",
+ "THIS_WEEK": "이번 주",
+ "MONTH_TO_DATE": "이번 달",
+ "CUSTOM_RANGE": "사용자 지정 날짜 범위"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/emoji.json b/app/javascript/dashboard/i18n/locale/ko/emoji.json
index 252031c46..194929887 100644
--- a/app/javascript/dashboard/i18n/locale/ko/emoji.json
+++ b/app/javascript/dashboard/i18n/locale/ko/emoji.json
@@ -1,7 +1,7 @@
{
"EMOJI": {
- "PLACEHOLDER": "Search emojis",
- "NOT_FOUND": "No emoji match your search",
+ "PLACEHOLDER": "이모지 검색",
+ "NOT_FOUND": "검색과 일치하는 이모지가 없습니다",
"REMOVE": "제거"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/general.json b/app/javascript/dashboard/i18n/locale/ko/general.json
index 78f581d98..795526fb0 100644
--- a/app/javascript/dashboard/i18n/locale/ko/general.json
+++ b/app/javascript/dashboard/i18n/locale/ko/general.json
@@ -1,12 +1,19 @@
{
"GENERAL": {
- "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "SHOWING_RESULTS": "{totalCount}개 항목 중 {firstIndex}-{lastIndex} 표시",
"PHONE_INPUT": {
"PLACEHOLDER": "검색",
"EMPTY_STATE": "검색 결과가 없습니다"
},
"CLOSE": "닫기",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "이 기능은 베타 버전이며 개선하면서 변경될 수 있습니다.",
+ "ACCEPT": "수락",
+ "DISCARD": "취소",
+ "PREFERRED": "선호"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "예",
+ "NO": "아니오"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/generalSettings.json b/app/javascript/dashboard/i18n/locale/ko/generalSettings.json
index 3b9315802..aff03a370 100644
--- a/app/javascript/dashboard/i18n/locale/ko/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ko/generalSettings.json
@@ -1,37 +1,37 @@
{
"GENERAL_SETTINGS": {
"LIMIT_MESSAGES": {
- "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
- "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
- "AGENTS": "You have exceeded the agent limit. Your plan only allows {allowedAgents} agents.",
- "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ "CONVERSATION": "대화 제한을 초과했습니다. Hacker 플랜은 500개의 대화만 허용합니다.",
+ "INBOXES": "받은 메시지함 제한을 초과했습니다. Hacker 플랜은 웹사이트 실시간 채팅만 지원합니다. 이메일, WhatsApp 등의 추가 받은 메시지함은 유료 플랜이 필요합니다.",
+ "AGENTS": "에이전트 제한을 초과했습니다. 현재 플랜은 {allowedAgents}명의 에이전트만 허용합니다.",
+ "NON_ADMIN": "플랜을 업그레이드하고 모든 기능을 계속 사용하려면 관리자에게 문의하십시오."
},
"TITLE": "계정 설정",
"SUBMIT": "설정 업데이트",
"BACK": "뒤로",
- "DISMISS": "Dismiss",
+ "DISMISS": "닫기",
"UPDATE": {
"ERROR": "설정을 업데이트할 수 없습니다, 다시 시도하십시오!",
"SUCCESS": "계정 설정이 성공적으로 업데이트됨"
},
"ACCOUNT_DELETE_SECTION": {
- "TITLE": "Delete your Account",
- "NOTE": "Once you delete your account, all your data will be deleted.",
- "BUTTON_TEXT": "Delete Your Account",
+ "TITLE": "계정 삭제",
+ "NOTE": "계정을 삭제하면 모든 데이터가 삭제됩니다.",
+ "BUTTON_TEXT": "계정 삭제",
"CONFIRM": {
- "TITLE": "Delete Account",
- "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "TITLE": "계정 삭제",
+ "MESSAGE": "계정 삭제는 되돌릴 수 없습니다. 영구적으로 삭제하려면 아래에 계정 이름을 입력하십시오.",
"BUTTON_TEXT": "삭제",
"DISMISS": "취소",
- "PLACE_HOLDER": "Please type {accountName} to confirm"
+ "PLACE_HOLDER": "확인하려면 {accountName}을(를) 입력하십시오"
},
- "SUCCESS": "Account marked for deletion",
- "FAILURE": "Could not delete account, try again!",
+ "SUCCESS": "계정이 삭제 예정으로 표시되었습니다",
+ "FAILURE": "계정을 삭제할 수 없습니다. 다시 시도하십시오!",
"SCHEDULED_DELETION": {
- "TITLE": "Account Scheduled for Deletion",
- "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
- "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
- "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ "TITLE": "계정 삭제 예약됨",
+ "MESSAGE_MANUAL": "이 계정은 {deletionDate}에 삭제될 예정입니다. 관리자가 요청했습니다. 해당 날짜 이전에 삭제를 취소할 수 있습니다.",
+ "MESSAGE_INACTIVITY": "이 계정은 비활성으로 인해 {deletionDate}에 삭제될 예정입니다. 해당 날짜 이전에 삭제를 취소할 수 있습니다.",
+ "CLEAR_BUTTON": "예약된 삭제 취소"
}
},
"FORM": {
@@ -41,36 +41,36 @@
"NOTE": ""
},
"ACCOUNT_ID": {
- "TITLE": "Account ID",
- "NOTE": "This ID is required if you are building an API based integration"
+ "TITLE": "계정 ID",
+ "NOTE": "API 기반 통합을 구축하는 경우 이 ID가 필요합니다"
},
"AUTO_RESOLVE": {
- "TITLE": "Auto-resolve conversations",
- "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "TITLE": "대화 자동 해결",
+ "NOTE": "이 설정을 사용하면 일정 기간 비활성 후 대화를 자동으로 해결할 수 있습니다.",
"DURATION": {
- "LABEL": "Inactivity duration",
- "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "LABEL": "비활성 기간",
+ "HELP": "대화가 자동 해결되기까지의 비활성 기간",
"PLACEHOLDER": "30",
- "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "ERROR": "자동 해결 기간은 10분에서 999일 사이여야 합니다",
"API": {
- "SUCCESS": "Auto resolve settings updated successfully",
- "ERROR": "Failed to update auto resolve settings"
+ "SUCCESS": "자동 해결 설정이 성공적으로 업데이트되었습니다",
+ "ERROR": "자동 해결 설정을 업데이트하지 못했습니다"
}
},
"MESSAGE": {
- "LABEL": "Custom auto-resolution message",
- "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
- "HELP": "Message sent to the customer after conversation is auto-resolved"
+ "LABEL": "사용자 지정 자동 해결 메시지",
+ "PLACEHOLDER": "15일간 비활성으로 인해 시스템이 대화를 해결됨으로 표시했습니다",
+ "HELP": "대화가 자동 해결된 후 고객에게 전송되는 메시지"
},
- "PREFERENCES": "Preferences",
+ "PREFERENCES": "환경설정",
"LABEL": {
- "LABEL": "Add label after auto-resolution",
- "PLACEHOLDER": "Select a label"
+ "LABEL": "자동 해결 후 라벨 추가",
+ "PLACEHOLDER": "라벨 선택"
},
"IGNORE_WAITING": {
- "LABEL": "Skip conversations waiting for agent’s reply"
+ "LABEL": "에이전트 응답 대기 중인 대화 건너뛰기"
},
- "UPDATE_BUTTON": "Save Changes"
+ "UPDATE_BUTTON": "변경사항 저장"
},
"NAME": {
"LABEL": "계정 이름",
@@ -78,7 +78,7 @@
"ERROR": "올바른 계정 이름을 입력하십시오."
},
"LANGUAGE": {
- "LABEL": "Site language",
+ "LABEL": "사이트 언어",
"PLACEHOLDER": "당신의 계정 이름",
"ERROR": ""
},
@@ -93,61 +93,61 @@
"ERROR": ""
},
"AUTO_RESOLVE_IGNORE_WAITING": {
- "LABEL": "Exclude unattended conversations",
- "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ "LABEL": "미응답 대화 제외",
+ "HELP": "활성화하면 시스템이 아직 에이전트 응답을 기다리고 있는 대화의 해결을 건너뜁니다."
},
"AUDIO_TRANSCRIPTION": {
- "TITLE": "Transcribe Audio Messages",
- "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "TITLE": "음성 메시지 변환",
+ "NOTE": "대화에서 음성 메시지를 자동으로 텍스트로 변환합니다. 음성 메시지가 전송되거나 수신될 때마다 텍스트 변환본을 생성하여 메시지와 함께 표시합니다.",
"API": {
- "SUCCESS": "Audio transcription setting updated successfully",
- "ERROR": "Failed to update audio transcription setting"
+ "SUCCESS": "음성 변환 설정이 성공적으로 업데이트되었습니다",
+ "ERROR": "음성 변환 설정을 업데이트하지 못했습니다"
}
},
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Inactivity duration for resolution",
- "HELP": "Duration after a conversation should auto resolve if there is no activity",
+ "LABEL": "해결을 위한 비활성 기간",
+ "HELP": "활동이 없을 경우 대화를 자동 해결하는 기간",
"PLACEHOLDER": "30",
- "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "ERROR": "자동 해결 기간은 10분에서 999일 사이여야 합니다",
"API": {
- "SUCCESS": "Auto resolve settings updated successfully",
- "ERROR": "Failed to update auto resolve settings"
+ "SUCCESS": "자동 해결 설정이 성공적으로 업데이트되었습니다",
+ "ERROR": "자동 해결 설정을 업데이트하지 못했습니다"
},
"UPDATE_BUTTON": "업데이트",
- "MESSAGE_LABEL": "Custom resolution message",
- "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
- "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
+ "MESSAGE_LABEL": "사용자 지정 해결 메시지",
+ "MESSAGE_PLACEHOLDER": "15일간 비활성으로 인해 시스템이 대화를 해결됨으로 표시했습니다",
+ "MESSAGE_HELP": "비활성으로 인해 시스템이 자동으로 대화를 해결할 때 고객에게 전송되는 메시지입니다."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "계정에 대해 이메일을 통한 대화 연속성이 활성화되었습니다.",
- "CUSTOM_EMAIL_DOMAIN_ENABLED": "지금 사용자 지정 도메인에서 이메일을 받을 수 있다."
+ "CUSTOM_EMAIL_DOMAIN_ENABLED": "지금 사용자 지정 도메인에서 이메일을 받을 수 있습니다."
}
},
"UPDATE_CHATWOOT": "Chatwoot에 대한 {latestChatwootVersion} 업데이트를 사용할 수 있습니다. 인스턴스를 업데이트하십시오.",
- "LEARN_MORE": "Learn more",
- "PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
- "UPGRADE": "Upgrade to continue using Chatwoot",
- "LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
- "OPEN_BILLING": "Open billing"
+ "LEARN_MORE": "자세히 알아보기",
+ "PAYMENT_PENDING": "결제가 보류 중입니다. Chatwoot을 계속 사용하려면 결제 정보를 업데이트하십시오",
+ "UPGRADE": "Chatwoot을 계속 사용하려면 업그레이드하십시오",
+ "LIMITS_UPGRADE": "계정이 사용 제한을 초과했습니다. Chatwoot을 계속 사용하려면 플랜을 업그레이드하십시오",
+ "OPEN_BILLING": "청구서 열기"
},
"FORMS": {
"MULTISELECT": {
"ENTER_TO_SELECT": "선택하려면 Enter 키를 누르십시오.",
"ENTER_TO_REMOVE": "제거하려면 Enter 키를 누르십시오.",
- "NO_OPTIONS": "List is empty",
+ "NO_OPTIONS": "목록이 비어 있습니다",
"SELECT_ONE": "하나 선택",
- "SELECT": "Select"
+ "SELECT": "선택"
}
},
"NOTIFICATIONS_PAGE": {
"HEADER": "알림",
"MARK_ALL_DONE": "모두 완료 표시",
- "DELETE_TITLE": "deleted",
+ "DELETE_TITLE": "삭제됨",
"UNREAD_NOTIFICATION": {
- "TITLE": "Unread Notifications",
- "ALL_NOTIFICATIONS": "View all notifications",
- "LOADING_UNREAD_MESSAGE": "Loading unread notifications...",
- "EMPTY_MESSAGE": "You have no unread notifications"
+ "TITLE": "읽지 않은 알림",
+ "ALL_NOTIFICATIONS": "모든 알림 보기",
+ "LOADING_UNREAD_MESSAGE": "읽지 않은 알림을 불러오는 중...",
+ "EMPTY_MESSAGE": "읽지 않은 알림이 없습니다"
},
"LIST": {
"LOADING_MESSAGE": "알림을 불러오는 중...",
@@ -165,87 +165,88 @@
"assigned_conversation_new_message": "새 메시지",
"participating_conversation_new_message": "새 메시지",
"conversation_mention": "멘션",
- "sla_missed_first_response": "SLA Missed",
- "sla_missed_next_response": "SLA Missed",
- "sla_missed_resolution": "SLA Missed"
+ "sla_missed_first_response": "SLA 위반",
+ "sla_missed_next_response": "SLA 위반",
+ "sla_missed_resolution": "SLA 위반"
}
},
"NETWORK": {
"NOTIFICATION": {
"OFFLINE": "오프라인",
- "RECONNECTING": "Reconnecting...",
- "RECONNECT_SUCCESS": "Reconnected"
+ "RECONNECTING": "재연결 중...",
+ "RECONNECT_SUCCESS": "재연결됨"
},
"BUTTON": {
- "REFRESH": "Refresh"
+ "REFRESH": "새로고침"
}
},
"COMMAND_BAR": {
- "SEARCH_PLACEHOLDER": "Search or jump to",
+ "SEARCH_PLACEHOLDER": "검색 또는 바로가기",
+ "SNOOZE_PLACEHOLDER": "시간을 입력하세요. 예: 내일, 2시간 후, 다음 금요일, 1월 15일...",
"SECTIONS": {
- "GENERAL": "General",
+ "GENERAL": "일반",
"REPORTS": "보고서",
- "CONVERSATION": "Conversation",
- "BULK_ACTIONS": "Bulk Actions",
- "CHANGE_ASSIGNEE": "Change Assignee",
- "CHANGE_PRIORITY": "Change Priority",
- "CHANGE_TEAM": "Change Team",
- "SNOOZE_CONVERSATION": "Snooze Conversation",
- "ADD_LABEL": "Add label to the conversation",
- "REMOVE_LABEL": "Remove label from the conversation",
+ "CONVERSATION": "대화",
+ "BULK_ACTIONS": "일괄 작업",
+ "CHANGE_ASSIGNEE": "담당자 변경",
+ "CHANGE_PRIORITY": "우선순위 변경",
+ "CHANGE_TEAM": "팀 변경",
+ "SNOOZE_CONVERSATION": "대화 일시 중지",
+ "ADD_LABEL": "대화에 라벨 추가",
+ "REMOVE_LABEL": "대화에서 라벨 제거",
"SETTINGS": "설정",
- "AI_ASSIST": "AI Assist",
- "APPEARANCE": "Appearance",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "AI_ASSIST": "AI 어시스트",
+ "APPEARANCE": "외관",
+ "SNOOZE_NOTIFICATION": "알림 일시 중지"
},
"COMMANDS": {
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "GO_TO_REPORTS_OVERVIEW": "Go to Reports Overview",
- "GO_TO_CONVERSATION_REPORTS": "Go to Conversation Reports",
- "GO_TO_AGENT_REPORTS": "Go to Agent Reports",
- "GO_TO_LABEL_REPORTS": "Go to Label Reports",
- "GO_TO_INBOX_REPORTS": "Go to Inbox Reports",
- "GO_TO_TEAM_REPORTS": "Go to Team Reports",
- "GO_TO_SETTINGS_AGENTS": "Go to Agent Settings",
- "GO_TO_SETTINGS_TEAMS": "Go to Team Settings",
- "GO_TO_SETTINGS_INBOXES": "Go to Inbox Settings",
- "GO_TO_SETTINGS_LABELS": "Go to Label Settings",
- "GO_TO_SETTINGS_CANNED_RESPONSES": "Go to Canned Response Settings",
- "GO_TO_SETTINGS_APPLICATIONS": "Go to Application Settings",
- "GO_TO_SETTINGS_ACCOUNT": "Go to Account Settings",
- "GO_TO_SETTINGS_PROFILE": "Go to Profile Settings",
- "GO_TO_NOTIFICATIONS": "Go to Notifications",
- "ADD_LABELS_TO_CONVERSATION": "Add label to the conversation",
- "ASSIGN_AN_AGENT": "Assign an agent",
- "AI_ASSIST": "AI Assist",
- "ASSIGN_PRIORITY": "Assign priority",
- "ASSIGN_A_TEAM": "Assign a team",
- "MUTE_CONVERSATION": "Mute conversation",
- "UNMUTE_CONVERSATION": "Unmute conversation",
- "REMOVE_LABEL_FROM_CONVERSATION": "Remove label from the conversation",
- "REOPEN_CONVERSATION": "Reopen conversation",
- "RESOLVE_CONVERSATION": "Resolve conversation",
- "SEND_TRANSCRIPT": "Send an email transcript",
- "SNOOZE_CONVERSATION": "Snooze Conversation",
- "UNTIL_NEXT_REPLY": "Until next reply",
- "UNTIL_NEXT_WEEK": "Until next week",
- "UNTIL_TOMORROW": "Until tomorrow",
- "UNTIL_NEXT_MONTH": "Until next month",
- "AN_HOUR_FROM_NOW": "Until an hour from now",
- "UNTIL_CUSTOM_TIME": "Custom...",
- "CHANGE_APPEARANCE": "Change Appearance",
- "LIGHT_MODE": "Light",
- "DARK_MODE": "Dark",
- "SYSTEM_MODE": "System",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "GO_TO_CONVERSATION_DASHBOARD": "대화 대시보드로 이동",
+ "GO_TO_CONTACTS_DASHBOARD": "연락처 대시보드로 이동",
+ "GO_TO_REPORTS_OVERVIEW": "보고서 개요로 이동",
+ "GO_TO_CONVERSATION_REPORTS": "대화 보고서로 이동",
+ "GO_TO_AGENT_REPORTS": "에이전트 보고서로 이동",
+ "GO_TO_LABEL_REPORTS": "라벨 보고서로 이동",
+ "GO_TO_INBOX_REPORTS": "받은 메시지함 보고서로 이동",
+ "GO_TO_TEAM_REPORTS": "팀 보고서로 이동",
+ "GO_TO_SETTINGS_AGENTS": "에이전트 설정으로 이동",
+ "GO_TO_SETTINGS_TEAMS": "팀 설정으로 이동",
+ "GO_TO_SETTINGS_INBOXES": "받은 메시지함 설정으로 이동",
+ "GO_TO_SETTINGS_LABELS": "라벨 설정으로 이동",
+ "GO_TO_SETTINGS_CANNED_RESPONSES": "미리 준비된 응답 설정으로 이동",
+ "GO_TO_SETTINGS_APPLICATIONS": "애플리케이션 설정으로 이동",
+ "GO_TO_SETTINGS_ACCOUNT": "계정 설정으로 이동",
+ "GO_TO_SETTINGS_PROFILE": "프로필 설정으로 이동",
+ "GO_TO_NOTIFICATIONS": "알림으로 이동",
+ "ADD_LABELS_TO_CONVERSATION": "대화에 라벨 추가",
+ "ASSIGN_AN_AGENT": "에이전트 배정",
+ "AI_ASSIST": "AI 어시스트",
+ "ASSIGN_PRIORITY": "우선순위 배정",
+ "ASSIGN_A_TEAM": "팀 배정",
+ "MUTE_CONVERSATION": "대화 음소거",
+ "UNMUTE_CONVERSATION": "대화 음소거 해제",
+ "REMOVE_LABEL_FROM_CONVERSATION": "대화에서 라벨 제거",
+ "REOPEN_CONVERSATION": "대화 다시 열기",
+ "RESOLVE_CONVERSATION": "대화 해결",
+ "SEND_TRANSCRIPT": "이메일 대화록 전송",
+ "SNOOZE_CONVERSATION": "대화 일시 중지",
+ "UNTIL_NEXT_REPLY": "다음 답장까지",
+ "UNTIL_NEXT_WEEK": "다음 주까지",
+ "UNTIL_TOMORROW": "내일까지",
+ "UNTIL_NEXT_MONTH": "다음 달까지",
+ "AN_HOUR_FROM_NOW": "1시간 후까지",
+ "UNTIL_CUSTOM_TIME": "사용자 지정...",
+ "CHANGE_APPEARANCE": "외관 변경",
+ "LIGHT_MODE": "라이트",
+ "DARK_MODE": "다크",
+ "SYSTEM_MODE": "시스템",
+ "SNOOZE_NOTIFICATION": "알림 일시 중지"
}
},
"DASHBOARD_APPS": {
- "LOADING_MESSAGE": "Loading Dashboard App..."
+ "LOADING_MESSAGE": "대시보드 앱을 불러오는 중..."
},
"COMMON": {
- "OR": "Or",
+ "OR": "또는",
"CLICK_HERE": "여기를 클릭하세요"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/helpCenter.json b/app/javascript/dashboard/i18n/locale/ko/helpCenter.json
index 2ed7e8812..53d9e7358 100644
--- a/app/javascript/dashboard/i18n/locale/ko/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ko/helpCenter.json
@@ -1,622 +1,632 @@
{
"HELP_CENTER": {
- "TITLE": "Help Center",
+ "TITLE": "도움말 센터",
"NEW_PAGE": {
- "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
- "CREATE_PORTAL_BUTTON": "Create Portal"
+ "DESCRIPTION": "고객을 위한 셀프 서비스 도움말 센터 포털을 생성하십시오. 고객이 대기 없이 빠르게 답변을 찾을 수 있도록 도와줍니다. 문의를 간소화하고 에이전트 효율성을 높이며 고객 지원을 향상시킵니다.",
+ "CREATE_PORTAL_BUTTON": "포털 만들기"
},
"HEADER": {
- "FILTER": "Filter by",
- "SORT": "Sort by",
- "LOCALE": "Locale",
+ "FILTER": "필터",
+ "SORT": "정렬",
+ "LOCALE": "로케일",
"SETTINGS_BUTTON": "설정",
- "NEW_BUTTON": "New Article",
+ "NEW_BUTTON": "새 게시물",
"DROPDOWN_OPTIONS": {
- "PUBLISHED": "Published",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived"
+ "PUBLISHED": "게시됨",
+ "DRAFT": "임시 저장",
+ "ARCHIVED": "보관됨"
},
"TITLES": {
- "ALL_ARTICLES": "All Articles",
- "MINE": "My Articles",
- "DRAFT": "Draft Articles",
- "ARCHIVED": "Archived Articles"
+ "ALL_ARTICLES": "모든 게시물",
+ "MINE": "내 게시물",
+ "DRAFT": "임시 저장 게시물",
+ "ARCHIVED": "보관된 게시물"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "로케일 선택",
+ "PLACEHOLDER": "로케일 선택",
+ "NO_RESULT": "로케일을 찾을 수 없습니다",
+ "SEARCH_PLACEHOLDER": "로케일 검색"
}
},
"EDIT_HEADER": {
- "ALL_ARTICLES": "All Articles",
- "PUBLISH_BUTTON": "Publish",
- "MOVE_TO_ARCHIVE_BUTTON": "Move to archived",
- "PREVIEW": "Preview",
- "ADD_TRANSLATION": "Add translation",
- "OPEN_SIDEBAR": "Open sidebar",
- "CLOSE_SIDEBAR": "Close sidebar",
- "SAVING": "Saving...",
- "SAVED": "Saved"
+ "ALL_ARTICLES": "모든 게시물",
+ "PUBLISH_BUTTON": "게시",
+ "MOVE_TO_ARCHIVE_BUTTON": "보관함으로 이동",
+ "PREVIEW": "미리보기",
+ "ADD_TRANSLATION": "번역 추가",
+ "OPEN_SIDEBAR": "사이드바 열기",
+ "CLOSE_SIDEBAR": "사이드바 닫기",
+ "SAVING": "저장 중...",
+ "SAVED": "저장됨"
},
"ARTICLE_EDITOR": {
"IMAGE_UPLOAD": {
"TITLE": "이미지 업로드",
"UPLOADING": "업로드 중...",
- "SUCCESS": "Image uploaded successfully",
- "ERROR": "Error while uploading image",
- "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
- "ERROR_FILE_SIZE": "Image size should be less than {size}MB",
- "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
- "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ "SUCCESS": "이미지가 성공적으로 업로드되었습니다",
+ "ERROR": "이미지 업로드 중 오류가 발생했습니다",
+ "UN_AUTHORIZED_ERROR": "이미지를 업로드할 권한이 없습니다",
+ "ERROR_FILE_SIZE": "이미지 크기는 {size}MB 미만이어야 합니다",
+ "ERROR_FILE_FORMAT": "이미지 형식은 jpg, jpeg 또는 png여야 합니다",
+ "ERROR_FILE_DIMENSIONS": "이미지 크기는 2000 x 2000 미만이어야 합니다"
}
},
"ARTICLE_SETTINGS": {
- "TITLE": "Article Settings",
+ "TITLE": "게시물 설정",
"FORM": {
"CATEGORY": {
- "LABEL": "Category",
- "TITLE": "Select category",
- "PLACEHOLDER": "Select category",
- "NO_RESULT": "No category found",
- "SEARCH_PLACEHOLDER": "Search category"
+ "LABEL": "카테고리",
+ "TITLE": "카테고리 선택",
+ "PLACEHOLDER": "카테고리 선택",
+ "NO_RESULT": "카테고리를 찾을 수 없습니다",
+ "SEARCH_PLACEHOLDER": "카테고리 검색"
},
"AUTHOR": {
- "LABEL": "Author",
- "TITLE": "Select author",
- "PLACEHOLDER": "Select author",
- "NO_RESULT": "No authors found",
- "SEARCH_PLACEHOLDER": "Search author"
+ "LABEL": "작성자",
+ "TITLE": "작성자 선택",
+ "PLACEHOLDER": "작성자 선택",
+ "NO_RESULT": "작성자를 찾을 수 없습니다",
+ "SEARCH_PLACEHOLDER": "작성자 검색"
},
"META_TITLE": {
- "LABEL": "Meta title",
- "PLACEHOLDER": "Add a meta title"
+ "LABEL": "메타 제목",
+ "PLACEHOLDER": "메타 제목을 추가하십시오"
},
"META_DESCRIPTION": {
- "LABEL": "Meta description",
- "PLACEHOLDER": "Add your meta description for better SEO results..."
+ "LABEL": "메타 설명",
+ "PLACEHOLDER": "더 나은 SEO 결과를 위해 메타 설명을 추가하십시오..."
},
"META_TAGS": {
- "LABEL": "Meta tags",
- "PLACEHOLDER": "Add meta tags separated by comma..."
+ "LABEL": "메타 태그",
+ "PLACEHOLDER": "쉼표로 구분하여 메타 태그를 추가하십시오..."
}
},
"BUTTONS": {
- "ARCHIVE": "Archive article",
- "DELETE": "Delete article"
+ "ARCHIVE": "게시물 보관",
+ "DELETE": "게시물 삭제"
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for {query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
+ "UNCATEGORIZED": "미분류",
+ "SEARCH_RESULTS": "{query}에 대한 검색 결과",
+ "EMPTY_TEXT": "답장에 삽입할 게시물을 검색하십시오.",
"SEARCH_LOADER": "검색중...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "INSERT_ARTICLE": "삽입",
+ "NO_RESULT": "게시물을 찾을 수 없습니다",
+ "COPY_LINK": "게시물 링크를 클립보드에 복사",
+ "OPEN_LINK": "새 탭에서 게시물 열기",
+ "PREVIEW_LINK": "게시물 미리보기"
},
"PORTAL": {
- "HEADER": "Portals",
- "DEFAULT": "Default",
- "NEW_BUTTON": "New Portal",
- "ACTIVE_BADGE": "active",
- "CHOOSE_LOCALE_LABEL": "Choose a locale",
- "LOADING_MESSAGE": "Loading portals...",
- "ARTICLES_LABEL": "articles",
- "NO_PORTALS_MESSAGE": "There are no available portals",
- "ADD_NEW_LOCALE": "Add a new locale",
+ "HEADER": "포털",
+ "DEFAULT": "기본값",
+ "NEW_BUTTON": "새 포털",
+ "ACTIVE_BADGE": "활성",
+ "CHOOSE_LOCALE_LABEL": "로케일 선택",
+ "LOADING_MESSAGE": "포털을 불러오는 중...",
+ "ARTICLES_LABEL": "게시물",
+ "NO_PORTALS_MESSAGE": "사용 가능한 포털이 없습니다",
+ "ADD_NEW_LOCALE": "새 로케일 추가",
"POPOVER": {
- "TITLE": "Portals",
- "PORTAL_SETTINGS": "Portal settings",
- "SUBTITLE": "You have multiple portals and can have different locales for each portal.",
+ "TITLE": "포털",
+ "PORTAL_SETTINGS": "포털 설정",
+ "SUBTITLE": "여러 포털이 있으며 각 포털에 대해 다른 로케일을 사용할 수 있습니다.",
"CANCEL_BUTTON_LABEL": "취소",
- "CHOOSE_LOCALE_BUTTON": "Choose Locale"
+ "CHOOSE_LOCALE_BUTTON": "로케일 선택"
},
"PORTAL_SETTINGS": {
"LIST_ITEM": {
"HEADER": {
- "COUNT_LABEL": "articles",
- "ADD": "Add locale",
- "VISIT": "Visit site",
+ "COUNT_LABEL": "게시물",
+ "ADD": "로케일 추가",
+ "VISIT": "사이트 방문",
"SETTINGS": "설정",
"DELETE": "삭제"
},
"PORTAL_CONFIG": {
- "TITLE": "Portal Configurations",
+ "TITLE": "포털 설정",
"ITEMS": {
"NAME": "이름",
- "DOMAIN": "Custom domain",
- "SLUG": "Slug",
- "TITLE": "Portal title",
- "THEME": "Theme color",
- "SUB_TEXT": "Portal sub text"
+ "DOMAIN": "사용자 지정 도메인",
+ "SLUG": "슬러그",
+ "TITLE": "포털 제목",
+ "THEME": "테마 색상",
+ "SUB_TEXT": "포털 부제"
}
},
"AVAILABLE_LOCALES": {
- "TITLE": "Available locales",
+ "TITLE": "사용 가능한 로케일",
"TABLE": {
- "NAME": "Locale name",
- "CODE": "Locale code",
- "ARTICLE_COUNT": "No. of articles",
- "CATEGORIES": "No. of categories",
- "SWAP": "Swap",
+ "NAME": "로케일 이름",
+ "CODE": "로케일 코드",
+ "ARTICLE_COUNT": "게시물 수",
+ "CATEGORIES": "카테고리 수",
+ "SWAP": "교환",
"DELETE": "삭제",
- "DEFAULT_LOCALE": "Default"
+ "DEFAULT_LOCALE": "기본값"
}
}
},
"DELETE_PORTAL": {
- "TITLE": "Delete portal",
- "MESSAGE": "Are you sure you want to delete this portal",
- "YES": "Yes, delete portal",
- "NO": "No, keep portal",
+ "TITLE": "포털 삭제",
+ "MESSAGE": "이 포털을 삭제하시겠습니까?",
+ "YES": "예, 포털을 삭제합니다",
+ "NO": "아니요, 포털을 유지합니다",
"API": {
- "DELETE_SUCCESS": "Portal deleted successfully",
- "DELETE_ERROR": "Error while deleting portal"
+ "DELETE_SUCCESS": "포털이 성공적으로 삭제되었습니다",
+ "DELETE_ERROR": "포털 삭제 중 오류가 발생했습니다"
}
},
"SEND_CNAME_INSTRUCTIONS": {
"API": {
- "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
- "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ "SUCCESS_MESSAGE": "CNAME 안내가 성공적으로 전송되었습니다",
+ "ERROR_MESSAGE": "CNAME 안내 전송 중 오류가 발생했습니다"
}
}
},
"EDIT": {
- "HEADER_TEXT": "Edit portal",
+ "HEADER_TEXT": "포털 수정",
"TABS": {
"BASIC_SETTINGS": {
- "TITLE": "Basic information"
+ "TITLE": "기본 정보"
},
"CUSTOMIZATION_SETTINGS": {
- "TITLE": "Portal customization"
+ "TITLE": "포털 사용자 지정"
},
"CATEGORY_SETTINGS": {
- "TITLE": "Categories"
+ "TITLE": "카테고리"
},
"LOCALE_SETTINGS": {
- "TITLE": "Locales"
+ "TITLE": "로케일"
}
},
"CATEGORIES": {
- "TITLE": "Categories in",
- "NEW_CATEGORY": "New category",
+ "TITLE": "카테고리",
+ "NEW_CATEGORY": "새 카테고리",
"TABLE": {
"NAME": "이름",
- "DESCRIPTION": "내용",
- "LOCALE": "Locale",
- "ARTICLE_COUNT": "No. of articles",
+ "DESCRIPTION": "설명",
+ "LOCALE": "로케일",
+ "ARTICLE_COUNT": "게시물 수",
"ACTION_BUTTON": {
- "EDIT": "Edit category",
- "DELETE": "Delete category"
+ "EDIT": "카테고리 수정",
+ "DELETE": "카테고리 삭제"
},
- "EMPTY_TEXT": "No categories found"
+ "EMPTY_TEXT": "카테고리를 찾을 수 없습니다"
}
},
"EDIT_BASIC_INFO": {
- "BUTTON_TEXT": "Update basic settings"
+ "BUTTON_TEXT": "기본 설정 업데이트"
}
},
"ADD": {
"CREATE_FLOW": {
"BASIC": {
- "TITLE": "Help center information",
- "BODY": "Basic information about portal"
+ "TITLE": "도움말 센터 정보",
+ "BODY": "포털에 대한 기본 정보"
},
"CUSTOMIZATION": {
- "TITLE": "Help center customization",
- "BODY": "Customize portal"
+ "TITLE": "도움말 센터 사용자 지정",
+ "BODY": "포털 사용자 지정"
},
"FINISH": {
"TITLE": "Voila! 🎉",
- "BODY": "You're all set!"
+ "BODY": "모든 설정이 완료되었습니다!"
}
},
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "뒤로",
"BASIC_SETTINGS_PAGE": {
- "HEADER": "Create Portal",
- "TITLE": "Help center information",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "HEADER": "포털 만들기",
+ "TITLE": "도움말 센터 정보",
+ "CREATE_BASIC_SETTING_BUTTON": "포털 기본 설정 만들기"
},
"CUSTOMIZATION_PAGE": {
- "HEADER": "Portal customisation",
- "TITLE": "Help center customization",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "HEADER": "포털 사용자 지정",
+ "TITLE": "도움말 센터 사용자 지정",
+ "UPDATE_PORTAL_BUTTON": "포털 설정 업데이트"
},
"FINISH_PAGE": {
- "TITLE": "Voila!🎉 You're all set up!",
- "MESSAGE": "You can now see this created portal on your all portals page.",
- "FINISH": "Go to all portals page"
+ "TITLE": "Voila!🎉 모든 설정이 완료되었습니다!",
+ "MESSAGE": "이제 모든 포털 페이지에서 생성된 포털을 확인할 수 있습니다.",
+ "FINISH": "모든 포털 페이지로 이동"
}
},
"LOGO": {
- "LABEL": "Logo",
- "UPLOAD_BUTTON": "Upload logo",
- "HELP_TEXT": "This logo will be displayed on the portal header.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "LABEL": "로고",
+ "UPLOAD_BUTTON": "로고 업로드",
+ "HELP_TEXT": "이 로고는 포털 헤더에 표시됩니다.",
+ "IMAGE_UPLOAD_SUCCESS": "로고가 성공적으로 업로드되었습니다",
+ "IMAGE_UPLOAD_ERROR": "로고가 성공적으로 삭제되었습니다",
+ "IMAGE_DELETE_ERROR": "로고 삭제 중 오류가 발생했습니다"
},
"NAME": {
"LABEL": "이름",
- "PLACEHOLDER": "Portal name",
- "HELP_TEXT": "The name will be used in the public facing portal internally.",
+ "PLACEHOLDER": "포털 이름",
+ "HELP_TEXT": "이 이름은 내부적으로 공개 포털에 사용됩니다.",
"ERROR": "이름이 필요합니다"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Portal slug for urls",
- "ERROR": "Slug is required"
+ "LABEL": "슬러그",
+ "PLACEHOLDER": "URL용 포털 슬러그",
+ "ERROR": "슬러그가 필요합니다"
},
"DOMAIN": {
- "LABEL": "Custom Domain",
- "PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
- "ERROR": "Enter a valid domain URL"
+ "LABEL": "사용자 지정 도메인",
+ "PLACEHOLDER": "포털 사용자 지정 도메인",
+ "HELP_TEXT": "포털에 사용자 지정 도메인을 사용하려는 경우에만 추가하십시오. 예: {exampleURL}",
+ "ERROR": "유효한 도메인 URL을 입력하십시오"
},
"HOME_PAGE_LINK": {
- "LABEL": "Home Page Link",
- "PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
- "ERROR": "Enter a valid home page URL"
+ "LABEL": "홈페이지 링크",
+ "PLACEHOLDER": "포털 홈페이지 링크",
+ "HELP_TEXT": "포털에서 홈페이지로 돌아가는 데 사용되는 링크입니다. 예: {exampleURL}",
+ "ERROR": "유효한 홈페이지 URL을 입력하십시오"
},
"THEME_COLOR": {
- "LABEL": "Portal theme color",
- "HELP_TEXT": "This color will show as the theme color for the portal."
+ "LABEL": "포털 테마 색상",
+ "HELP_TEXT": "이 색상이 포털의 테마 색상으로 표시됩니다."
},
"PAGE_TITLE": {
- "LABEL": "Page Title",
- "PLACEHOLDER": "Portal page title",
- "HELP_TEXT": "The page title will be used in the public facing portal.",
- "ERROR": "Page title is required"
+ "LABEL": "페이지 제목",
+ "PLACEHOLDER": "포털 페이지 제목",
+ "HELP_TEXT": "페이지 제목은 공개 포털에서 사용됩니다.",
+ "ERROR": "페이지 제목이 필요합니다"
},
"HEADER_TEXT": {
- "LABEL": "Header Text",
- "PLACEHOLDER": "Portal header text",
- "HELP_TEXT": "The Portal header text will be used in the public facing portal.",
- "ERROR": "Portal header text is required"
+ "LABEL": "헤더 텍스트",
+ "PLACEHOLDER": "포털 헤더 텍스트",
+ "HELP_TEXT": "포털 헤더 텍스트는 공개 포털에서 사용됩니다.",
+ "ERROR": "포털 헤더 텍스트가 필요합니다"
},
"API": {
- "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.",
- "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.",
- "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.",
- "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again."
+ "SUCCESS_MESSAGE_FOR_BASIC": "포털이 성공적으로 생성되었습니다.",
+ "ERROR_MESSAGE_FOR_BASIC": "포털을 만들 수 없습니다. 다시 시도하십시오.",
+ "SUCCESS_MESSAGE_FOR_UPDATE": "포털이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE_FOR_UPDATE": "포털을 업데이트할 수 없습니다. 다시 시도하십시오."
}
},
"ADD_LOCALE": {
- "TITLE": "Add a new locale",
- "SUB_TITLE": "This adds a new locale to your available translation list.",
- "PORTAL": "Portal",
+ "TITLE": "새 로케일 추가",
+ "SUB_TITLE": "사용 가능한 번역 목록에 새 로케일을 추가합니다.",
+ "PORTAL": "포털",
"LOCALE": {
- "LABEL": "Locale",
- "PLACEHOLDER": "Choose a locale",
- "ERROR": "Locale is required"
+ "LABEL": "로케일",
+ "PLACEHOLDER": "로케일을 선택하십시오",
+ "ERROR": "로케일이 필요합니다"
},
"BUTTONS": {
- "CREATE": "Create locale",
+ "CREATE": "로케일 만들기",
"CANCEL": "취소"
},
"API": {
- "SUCCESS_MESSAGE": "Locale added successfully",
- "ERROR_MESSAGE": "Unable to add locale. Try again."
+ "SUCCESS_MESSAGE": "로케일이 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "로케일을 추가할 수 없습니다. 다시 시도하십시오."
}
},
"CHANGE_DEFAULT_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Default locale updated successfully",
- "ERROR_MESSAGE": "Unable to update default locale. Try again."
+ "SUCCESS_MESSAGE": "기본 로케일이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "기본 로케일을 업데이트할 수 없습니다. 다시 시도하십시오."
}
},
"DELETE_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Locale removed from portal successfully",
- "ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
+ "SUCCESS_MESSAGE": "포털에서 로케일이 성공적으로 제거되었습니다",
+ "ERROR_MESSAGE": "포털에서 로케일을 제거할 수 없습니다. 다시 시도하십시오."
}
}
},
"TABLE": {
- "LOADING_MESSAGE": "Loading articles...",
- "404": "No articles matches your search 🔍",
- "NO_ARTICLES": "There are no available articles",
+ "LOADING_MESSAGE": "게시물을 불러오는 중...",
+ "404": "검색과 일치하는 게시물이 없습니다 🔍",
+ "NO_ARTICLES": "사용 가능한 게시물이 없습니다",
"HEADERS": {
- "TITLE": "Title",
- "CATEGORY": "Category",
- "READ_COUNT": "Views",
+ "TITLE": "제목",
+ "CATEGORY": "카테고리",
+ "READ_COUNT": "조회수",
"STATUS": "상태",
- "LAST_EDITED": "Last edited"
+ "LAST_EDITED": "마지막 수정"
},
"COLUMNS": {
- "BY": "by",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "BY": "작성자",
+ "AUTHOR_NOT_AVAILABLE": "작성자를 사용할 수 없습니다"
}
},
"EDIT_ARTICLE": {
- "LOADING": "Loading article...",
- "TITLE_PLACEHOLDER": "Article title goes here",
- "CONTENT_PLACEHOLDER": "Write your article here",
+ "LOADING": "게시물을 불러오는 중...",
+ "TITLE_PLACEHOLDER": "게시물 제목을 입력하십시오",
+ "CONTENT_PLACEHOLDER": "게시물을 작성하십시오",
"API": {
- "ERROR": "Error while saving article"
+ "ERROR": "게시물 저장 중 오류가 발생했습니다"
}
},
"PUBLISH_ARTICLE": {
"API": {
- "ERROR": "Error while publishing article",
- "SUCCESS": "Article published successfully"
+ "ERROR": "게시물 게시 중 오류가 발생했습니다",
+ "SUCCESS": "게시물이 성공적으로 게시되었습니다"
}
},
"ARCHIVE_ARTICLE": {
"API": {
- "ERROR": "Error while archiving article",
- "SUCCESS": "Article archived successfully"
+ "ERROR": "게시물 보관 중 오류가 발생했습니다",
+ "SUCCESS": "게시물이 성공적으로 보관되었습니다"
}
},
"DRAFT_ARTICLE": {
"API": {
- "ERROR": "Error while drafting article",
- "SUCCESS": "Article drafted successfully"
+ "ERROR": "게시물 임시 저장 중 오류가 발생했습니다",
+ "SUCCESS": "게시물이 성공적으로 임시 저장되었습니다"
}
},
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
"TITLE": "삭제 확인",
- "MESSAGE": "Are you sure to delete the article?",
- "YES": "Yes, Delete",
+ "MESSAGE": "게시물을 삭제하시겠습니까?",
+ "YES": "예, 삭제합니다",
"NO": "아니요, 유지합니다."
}
},
"API": {
- "SUCCESS_MESSAGE": "Article deleted successfully",
- "ERROR_MESSAGE": "Error while deleting article"
+ "SUCCESS_MESSAGE": "게시물이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "게시물 삭제 중 오류가 발생했습니다"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "문서 순서를 변경할 수 없습니다. 다시 시도하십시오."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "카테고리 순서를 변경할 수 없습니다. 다시 시도하십시오."
}
},
"CREATE_ARTICLE": {
- "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
+ "ERROR_MESSAGE": "게시물 제목과 내용을 추가해야 설정을 업데이트할 수 있습니다"
},
"SIDEBAR": {
"SEARCH": {
- "PLACEHOLDER": "Search for articles"
+ "PLACEHOLDER": "게시물 검색"
}
},
"CATEGORY": {
"ADD": {
- "TITLE": "Create a category",
- "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "카테고리 만들기",
+ "SUB_TITLE": "카테고리는 공개 포털에서 게시물을 분류하는 데 사용됩니다.",
+ "PORTAL": "포털",
+ "LOCALE": "로케일",
"NAME": {
"LABEL": "이름",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "PLACEHOLDER": "카테고리 이름",
+ "HELP_TEXT": "카테고리 이름과 아이콘은 공개 포털에서 게시물을 분류하는 데 사용됩니다.",
"ERROR": "이름이 필요합니다"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "슬러그",
+ "PLACEHOLDER": "URL용 카테고리 슬러그",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "슬러그가 필요합니다"
},
"DESCRIPTION": {
- "LABEL": "내용",
- "PLACEHOLDER": "Give a short description about the category.",
+ "LABEL": "설명",
+ "PLACEHOLDER": "카테고리에 대한 간단한 설명을 입력하십시오.",
"ERROR": "설명이 필요합니다"
},
"BUTTONS": {
- "CREATE": "Create category",
+ "CREATE": "카테고리 만들기",
"CANCEL": "취소"
},
"API": {
- "SUCCESS_MESSAGE": "Category created successfully",
- "ERROR_MESSAGE": "Unable to create category"
+ "SUCCESS_MESSAGE": "카테고리가 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "카테고리를 생성할 수 없습니다"
}
},
"EDIT": {
- "TITLE": "Edit a category",
- "SUB_TITLE": "Editing a category will update the category in the public facing portal.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "카테고리 수정",
+ "SUB_TITLE": "카테고리를 수정하면 공개 포털의 카테고리가 업데이트됩니다.",
+ "PORTAL": "포털",
+ "LOCALE": "로케일",
"NAME": {
"LABEL": "이름",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "PLACEHOLDER": "카테고리 이름",
+ "HELP_TEXT": "카테고리 이름과 아이콘은 공개 포털에서 게시물을 분류하는 데 사용됩니다.",
"ERROR": "이름이 필요합니다"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "슬러그",
+ "PLACEHOLDER": "URL용 카테고리 슬러그",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "슬러그가 필요합니다"
},
"DESCRIPTION": {
- "LABEL": "내용",
- "PLACEHOLDER": "Give a short description about the category.",
+ "LABEL": "설명",
+ "PLACEHOLDER": "카테고리에 대한 간단한 설명을 입력하십시오.",
"ERROR": "설명이 필요합니다"
},
"BUTTONS": {
- "CREATE": "Update category",
+ "CREATE": "카테고리 업데이트",
"CANCEL": "취소"
},
"API": {
- "SUCCESS_MESSAGE": "Category updated successfully",
- "ERROR_MESSAGE": "Unable to update category"
+ "SUCCESS_MESSAGE": "카테고리가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "카테고리를 업데이트할 수 없습니다"
}
},
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Category deleted successfully",
- "ERROR_MESSAGE": "Unable to delete category"
+ "SUCCESS_MESSAGE": "카테고리가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "카테고리를 삭제할 수 없습니다"
}
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
+ "TITLE": "게시물 검색",
+ "PLACEHOLDER": "게시물 검색",
+ "NO_RESULT": "게시물을 찾을 수 없습니다",
"SEARCHING": "검색중...",
"SEARCH_BUTTON": "검색",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
+ "INSERT_ARTICLE": "링크 삽입",
+ "IFRAME_ERROR": "URL이 비어 있거나 유효하지 않습니다. 콘텐츠를 표시할 수 없습니다.",
+ "OPEN_ARTICLE_SEARCH": "도움말 센터에서 게시물 삽입",
+ "SUCCESS_ARTICLE_INSERTED": "게시물이 성공적으로 삽입되었습니다",
+ "PREVIEW_LINK": "게시물 미리보기",
"CANCEL": "닫기",
"BACK": "뒤로",
- "BACK_RESULTS": "Back to results"
+ "BACK_RESULTS": "결과로 돌아가기"
},
"UPGRADE_PAGE": {
- "TITLE": "Help Center",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "TITLE": "도움말 센터",
+ "DESCRIPTION": "사용자 친화적인 셀프 서비스 포털을 만드십시오. 사용자가 게시물에 접근하고 연중무휴 지원을 받을 수 있도록 도와줍니다. 이 기능을 활성화하려면 구독을 업그레이드하십시오.",
+ "SELF_HOSTED_DESCRIPTION": "사용자 친화적인 셀프 서비스 포털을 만드십시오. 사용자가 게시물에 접근하고 연중무휴 지원을 받을 수 있도록 도와줍니다. 이 기능을 활성화하려면 관리자에게 문의하십시오.",
"BUTTON": {
- "LEARN_MORE": "Learn more",
- "UPGRADE": "Upgrade"
+ "LEARN_MORE": "자세히 알아보기",
+ "UPGRADE": "업그레이드"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "다중 포털",
+ "DESCRIPTION": "동일한 계정을 사용하여 다양한 제품에 대한 여러 도움말 센터 포털을 만들 수 있습니다."
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "로케일 전체 지원",
+ "DESCRIPTION": "포털을 원하는 언어로 현지화할 수 있습니다. 모든 로케일을 지원하며 모든 게시물에 대해 번역을 허용합니다."
},
"SEO": {
- "TITLE": "SEO-friendly design",
- "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
+ "TITLE": "SEO 친화적 디자인",
+ "DESCRIPTION": "SEO 친화적 페이지를 통해 메타 태그를 사용자 지정하여 검색 엔진에서의 가시성을 높이십시오."
},
"API": {
- "TITLE": "Full API support",
- "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
+ "TITLE": "전체 API 지원",
+ "DESCRIPTION": "API를 사용하여 타사 프론트엔드 프레임워크와 함께 포털을 헤드리스 CMS로 사용하십시오."
}
}
},
- "LOADING": "Loading...",
+ "LOADING": "불러오는 중...",
"ARTICLES_PAGE": {
"ARTICLE_CARD": {
"CARD": {
- "VIEWS": "{count} view | {count} views",
+ "VIEWS": "{count}회 조회 | {count}회 조회",
"DROPDOWN_MENU": {
- "PUBLISH": "Publish",
- "DRAFT": "Draft",
- "ARCHIVE": "Archive",
+ "PUBLISH": "게시",
+ "DRAFT": "임시 저장",
+ "ARCHIVE": "보관",
"DELETE": "삭제"
},
"STATUS": {
- "DRAFT": "Draft",
- "PUBLISHED": "Published",
- "ARCHIVED": "Archived"
+ "DRAFT": "임시 저장",
+ "PUBLISHED": "게시됨",
+ "ARCHIVED": "보관됨"
},
"CATEGORY": {
- "UNCATEGORISED": "Uncategorised"
+ "UNCATEGORISED": "미분류"
}
}
},
"ARTICLES_HEADER": {
"TABS": {
- "ALL": "All articles",
+ "ALL": "모든 게시물",
"MINE": "나에게 할당",
- "DRAFT": "Draft",
- "PUBLISHED": "Published",
- "ARCHIVED": "Archived"
+ "DRAFT": "임시 저장",
+ "PUBLISHED": "게시됨",
+ "ARCHIVED": "보관됨"
},
"CATEGORY": {
- "ALL": "All categories"
+ "ALL": "모든 카테고리"
},
"LOCALE": {
- "ALL": "All locales"
+ "ALL": "모든 로케일"
},
- "NEW_ARTICLE": "New article"
+ "NEW_ARTICLE": "새 게시물"
},
"EMPTY_STATE": {
"ALL": {
- "TITLE": "Write an article",
- "SUBTITLE": "Write a rich article, let’s get started!",
- "BUTTON_LABEL": "New article"
+ "TITLE": "게시물 작성",
+ "SUBTITLE": "풍부한 게시물을 작성해 보세요!",
+ "BUTTON_LABEL": "새 게시물"
},
"MINE": {
- "TITLE": "You haven't written any articles here",
- "SUBTITLE": "All articles written by you show up here for quick access."
+ "TITLE": "아직 작성한 게시물이 없습니다",
+ "SUBTITLE": "작성한 모든 게시물이 여기에 빠른 액세스를 위해 표시됩니다."
},
"DRAFT": {
- "TITLE": "There are no articles in drafts",
- "SUBTITLE": "Draft articles will appear here"
+ "TITLE": "임시 저장된 게시물이 없습니다",
+ "SUBTITLE": "임시 저장된 게시물이 여기에 표시됩니다"
},
"PUBLISHED": {
- "TITLE": "There are no published articles",
- "SUBTITLE": "Published articles will appear here"
+ "TITLE": "게시된 게시물이 없습니다",
+ "SUBTITLE": "게시된 게시물이 여기에 표시됩니다"
},
"ARCHIVED": {
- "TITLE": "There are no articles in the archive",
- "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ "TITLE": "보관된 게시물이 없습니다",
+ "SUBTITLE": "보관된 게시물은 포털에 표시되지 않으며, 더 이상 사용되지 않거나 오래된 페이지를 표시하는 데 사용할 수 있습니다"
},
"CATEGORY": {
- "TITLE": "There are no articles in this category",
- "SUBTITLE": "Articles in this category will appear here"
+ "TITLE": "이 카테고리에 게시물이 없습니다",
+ "SUBTITLE": "이 카테고리의 게시물이 여기에 표시됩니다"
}
}
},
"CATEGORY_PAGE": {
"CATEGORY_HEADER": {
- "NEW_CATEGORY": "New category",
- "EDIT_CATEGORY": "Edit category",
- "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "NEW_CATEGORY": "새 카테고리",
+ "EDIT_CATEGORY": "카테고리 수정",
+ "CATEGORIES_COUNT": "{n}개 카테고리 | {n}개 카테고리",
"BREADCRUMB": {
- "CATEGORY_LOCALE": "Categories ({localeCode})",
- "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ "CATEGORY_LOCALE": "카테고리 ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount}개 게시물) | {categoryName} ({categoryCount}개 게시물)"
}
},
"CATEGORY_EMPTY_STATE": {
- "TITLE": "No categories found",
- "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ "TITLE": "카테고리를 찾을 수 없습니다",
+ "SUBTITLE": "카테고리가 여기에 표시됩니다. '새 카테고리' 버튼을 클릭하여 카테고리를 추가할 수 있습니다."
},
"CATEGORY_CARD": {
- "ARTICLES_COUNT": "{count} article | {count} articles"
+ "ARTICLES_COUNT": "{count}개 게시물 | {count}개 게시물"
},
"CATEGORY_DIALOG": {
"CREATE": {
"API": {
- "SUCCESS_MESSAGE": "Category created successfully",
- "ERROR_MESSAGE": "Unable to create category"
+ "SUCCESS_MESSAGE": "카테고리가 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "카테고리를 생성할 수 없습니다"
}
},
"EDIT": {
"API": {
- "SUCCESS_MESSAGE": "Category updated successfully",
- "ERROR_MESSAGE": "Unable to update category"
+ "SUCCESS_MESSAGE": "카테고리가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "카테고리를 업데이트할 수 없습니다"
}
},
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Category deleted successfully",
- "ERROR_MESSAGE": "Unable to delete category"
+ "SUCCESS_MESSAGE": "카테고리가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "카테고리를 삭제할 수 없습니다"
}
},
"HEADER": {
- "CREATE": "Create category",
- "EDIT": "Edit category",
- "DESCRIPTION": "Editing a category will update the category in the public facing portal.",
- "PORTAL": "Portal",
- "LOCALE": "Locale"
+ "CREATE": "카테고리 만들기",
+ "EDIT": "카테고리 수정",
+ "DESCRIPTION": "카테고리를 수정하면 공개 포털의 카테고리가 업데이트됩니다.",
+ "PORTAL": "포털",
+ "LOCALE": "로케일"
},
"FORM": {
"NAME": {
"LABEL": "이름",
- "PLACEHOLDER": "Category name",
+ "PLACEHOLDER": "카테고리 이름",
"ERROR": "이름이 필요합니다"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
- "ERROR": "Slug is required",
+ "LABEL": "슬러그",
+ "PLACEHOLDER": "URL용 카테고리 슬러그",
+ "ERROR": "슬러그가 필요합니다",
"HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
},
"DESCRIPTION": {
- "LABEL": "내용",
- "PLACEHOLDER": "Give a short description about the category.",
+ "LABEL": "설명",
+ "PLACEHOLDER": "카테고리에 대한 간단한 설명을 입력하십시오.",
"ERROR": "설명이 필요합니다"
}
},
@@ -628,238 +638,238 @@
}
},
"LOCALES_PAGE": {
- "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
- "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALES_COUNT": "사용 가능한 로케일 없음 | {n}개 로케일 | {n}개 로케일",
+ "NEW_LOCALE_BUTTON_TEXT": "새 로케일",
"LOCALE_CARD": {
- "ARTICLES_COUNT": "{count} article | {count} articles",
- "CATEGORIES_COUNT": "{count} category | {count} categories",
- "DEFAULT": "Default",
+ "ARTICLES_COUNT": "{count}개 게시물 | {count}개 게시물",
+ "CATEGORIES_COUNT": "{count}개 카테고리 | {count}개 카테고리",
+ "DEFAULT": "기본값",
"DROPDOWN_MENU": {
- "MAKE_DEFAULT": "Make default",
+ "MAKE_DEFAULT": "기본값으로 설정",
"DELETE": "삭제"
}
},
"ADD_LOCALE_DIALOG": {
- "TITLE": "Add a new locale",
- "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "TITLE": "새 로케일 추가",
+ "DESCRIPTION": "이 게시물이 작성될 언어를 선택하십시오. 번역 목록에 추가되며 나중에 더 추가할 수 있습니다.",
"COMBOBOX": {
- "PLACEHOLDER": "Select locale..."
+ "PLACEHOLDER": "로케일 선택..."
},
"API": {
- "SUCCESS_MESSAGE": "Locale added successfully",
- "ERROR_MESSAGE": "Unable to add locale. Try again."
+ "SUCCESS_MESSAGE": "로케일이 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "로케일을 추가할 수 없습니다. 다시 시도하십시오."
}
}
},
"EDIT_ARTICLE_PAGE": {
"HEADER": {
"STATUS": {
- "SAVING": "Saving...",
- "SAVED": "Saved"
+ "SAVING": "저장 중...",
+ "SAVED": "저장됨"
},
- "PREVIEW": "Preview",
- "PUBLISH": "Publish",
- "DRAFT": "Draft",
- "ARCHIVE": "Archive",
- "BACK_TO_ARTICLES": "Back to articles"
+ "PREVIEW": "미리보기",
+ "PUBLISH": "게시",
+ "DRAFT": "임시 저장",
+ "ARCHIVE": "보관",
+ "BACK_TO_ARTICLES": "게시물로 돌아가기"
},
"EDIT_ARTICLE": {
- "MORE_PROPERTIES": "More properties",
+ "MORE_PROPERTIES": "추가 속성",
"UNCATEGORIZED": "카테고리가 지정되지 않음",
- "EDITOR_PLACEHOLDER": "Write something..."
+ "EDITOR_PLACEHOLDER": "내용을 작성하십시오..."
},
"ARTICLE_PROPERTIES": {
- "ARTICLE_PROPERTIES": "Article properties",
- "META_DESCRIPTION": "Meta description",
- "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
- "META_TITLE": "Meta title",
- "META_TITLE_PLACEHOLDER": "Add meta title",
- "META_TAGS": "Meta tags",
- "META_TAGS_PLACEHOLDER": "Add meta tags"
+ "ARTICLE_PROPERTIES": "게시물 속성",
+ "META_DESCRIPTION": "메타 설명",
+ "META_DESCRIPTION_PLACEHOLDER": "메타 설명 추가",
+ "META_TITLE": "메타 제목",
+ "META_TITLE_PLACEHOLDER": "메타 제목 추가",
+ "META_TAGS": "메타 태그",
+ "META_TAGS_PLACEHOLDER": "메타 태그 추가"
},
"API": {
- "ERROR": "Error while saving article"
+ "ERROR": "게시물 저장 중 오류가 발생했습니다"
}
},
"PORTAL_SWITCHER": {
- "NEW_PORTAL": "New portal",
- "PORTALS": "Portals",
- "CREATE_PORTAL": "Create and manage multiple portals",
+ "NEW_PORTAL": "새 포털",
+ "PORTALS": "포털",
+ "CREATE_PORTAL": "여러 포털을 만들고 관리하십시오",
"ARTICLES": "게시물",
- "DOMAIN": "domain",
- "PORTAL_NAME": "Portal name"
+ "DOMAIN": "도메인",
+ "PORTAL_NAME": "포털 이름"
},
"CREATE_PORTAL_DIALOG": {
- "TITLE": "Create new portal",
- "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "TITLE": "새 포털 만들기",
+ "DESCRIPTION": "포털에 이름을 지정하고 사용자 친화적인 URL 슬러그를 만드십시오. 나중에 설정에서 둘 다 수정할 수 있습니다.",
"CONFIRM_BUTTON_LABEL": "만들기",
"NAME": {
"LABEL": "이름",
- "PLACEHOLDER": "User Guide | Chatwoot",
- "MESSAGE": "Choose an name for your portal.",
+ "PLACEHOLDER": "사용자 가이드 | Chatwoot",
+ "MESSAGE": "포털의 이름을 선택하십시오.",
"ERROR": "이름이 필요합니다"
},
"SLUG": {
- "LABEL": "Slug",
+ "LABEL": "슬러그",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required",
- "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ "ERROR": "슬러그가 필요합니다",
+ "FORMAT_ERROR": "유효한 슬러그를 입력하십시오. 예: user-guide"
}
},
"PORTAL_SETTINGS": {
"FORM": {
"AVATAR": {
- "LABEL": "Logo",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
- "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Unable to delete logo",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "LABEL": "로고",
+ "IMAGE_UPLOAD_ERROR": "이미지를 업로드할 수 없습니다! 다시 시도하십시오",
+ "IMAGE_UPLOAD_SUCCESS": "이미지가 성공적으로 추가되었습니다. 로고를 저장하려면 변경사항 저장을 클릭하십시오",
+ "IMAGE_DELETE_SUCCESS": "로고가 성공적으로 삭제되었습니다",
+ "IMAGE_DELETE_ERROR": "로고를 삭제할 수 없습니다",
+ "IMAGE_UPLOAD_SIZE_ERROR": "이미지 크기는 {size}MB 미만이어야 합니다"
},
"NAME": {
"LABEL": "이름",
- "PLACEHOLDER": "Portal name",
+ "PLACEHOLDER": "포털 이름",
"ERROR": "이름이 필요합니다"
},
"HEADER_TEXT": {
- "LABEL": "Header text",
- "PLACEHOLDER": "Portal header text"
+ "LABEL": "헤더 텍스트",
+ "PLACEHOLDER": "포털 헤더 텍스트"
},
"PAGE_TITLE": {
- "LABEL": "Page title",
- "PLACEHOLDER": "Portal page title"
+ "LABEL": "페이지 제목",
+ "PLACEHOLDER": "포털 페이지 제목"
},
"HOME_PAGE_LINK": {
- "LABEL": "Home page link",
- "PLACEHOLDER": "Portal home page link",
- "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ "LABEL": "홈페이지 링크",
+ "PLACEHOLDER": "포털 홈페이지 링크",
+ "ERROR": "유효한 URL을 입력하십시오. 홈페이지 링크는 'http://' 또는 'https://'로 시작해야 합니다."
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Portal slug"
+ "LABEL": "슬러그",
+ "PLACEHOLDER": "포털 슬러그"
},
"LIVE_CHAT_WIDGET": {
- "LABEL": "Live chat widget",
- "PLACEHOLDER": "Select live chat widget",
- "HELP_TEXT": "Select a live chat widget that will appear on your help center",
- "NONE_OPTION": "No widget"
+ "LABEL": "실시간 채팅 위젯",
+ "PLACEHOLDER": "실시간 채팅 위젯 선택",
+ "HELP_TEXT": "도움말 센터에 표시될 실시간 채팅 위젯을 선택하십시오",
+ "NONE_OPTION": "위젯 없음"
},
"BRAND_COLOR": {
- "LABEL": "Brand color"
+ "LABEL": "브랜드 색상"
},
- "SAVE_CHANGES": "Save changes"
+ "SAVE_CHANGES": "변경사항 저장"
},
"CONFIGURATION_FORM": {
"CUSTOM_DOMAIN": {
- "HEADER": "Custom domain",
- "LABEL": "Custom domain:",
- "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
- "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
- "PLACEHOLDER": "Portal custom domain",
+ "HEADER": "사용자 지정 도메인",
+ "LABEL": "사용자 지정 도메인:",
+ "DESCRIPTION": "포털을 사용자 지정 도메인에서 호스팅할 수 있습니다. 예를 들어, 웹사이트가 yourdomain.com이고 포털을 docs.yourdomain.com에서 사용하려면 이 필드에 입력하십시오.",
+ "STATUS_DESCRIPTION": "사용자 지정 포털은 확인되는 즉시 작동합니다.",
+ "PLACEHOLDER": "포털 사용자 지정 도메인",
"EDIT_BUTTON": "수정",
- "ADD_BUTTON": "Add custom domain",
+ "ADD_BUTTON": "사용자 지정 도메인 추가",
"STATUS": {
- "LIVE": "Live",
- "PENDING": "Awaiting verification",
- "ERROR": "Verification failed"
+ "LIVE": "활성",
+ "PENDING": "확인 대기 중",
+ "ERROR": "확인 실패"
},
"DIALOG": {
- "ADD_HEADER": "Add custom domain",
- "EDIT_HEADER": "Edit custom domain",
- "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
- "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
- "LABEL": "Custom domain",
- "PLACEHOLDER": "Portal custom domain",
- "ERROR": "Custom domain is required",
- "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ "ADD_HEADER": "사용자 지정 도메인 추가",
+ "EDIT_HEADER": "사용자 지정 도메인 수정",
+ "ADD_CONFIRM_BUTTON_LABEL": "도메인 추가",
+ "EDIT_CONFIRM_BUTTON_LABEL": "도메인 업데이트",
+ "LABEL": "사용자 지정 도메인",
+ "PLACEHOLDER": "포털 사용자 지정 도메인",
+ "ERROR": "사용자 지정 도메인이 필요합니다",
+ "FORMAT_ERROR": "유효한 도메인 URL을 입력하십시오. 예: docs.yourdomain.com"
},
"DNS_CONFIGURATION_DIALOG": {
- "HEADER": "DNS configuration",
- "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
- "COPY": "Successfully copied CNAME",
+ "HEADER": "DNS 설정",
+ "DESCRIPTION": "DNS 공급자 계정에 로그인하여 서브도메인에 대한 CNAME 레코드를 chatwoot.help로 가리키도록 추가하십시오",
+ "COPY": "CNAME이 성공적으로 복사되었습니다",
"SEND_INSTRUCTIONS": {
- "HEADER": "Send instructions",
- "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
- "PLACEHOLDER": "Enter their email",
- "ERROR": "Enter a valid email address",
+ "HEADER": "안내 전송",
+ "DESCRIPTION": "개발 팀의 담당자가 이 단계를 처리하도록 하려면 아래에 이메일 주소를 입력하시면 필요한 안내를 보내드립니다.",
+ "PLACEHOLDER": "이메일을 입력하십시오",
+ "ERROR": "유효한 이메일 주소를 입력하십시오",
"SEND_BUTTON": "보내기"
}
}
},
"DELETE_PORTAL": {
- "BUTTON": "Delete {portalName}",
- "HEADER": "Delete portal",
- "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "BUTTON": "{portalName} 삭제",
+ "HEADER": "포털 삭제",
+ "DESCRIPTION": "이 포털을 영구적으로 삭제합니다. 이 작업은 되돌릴 수 없습니다",
"DIALOG": {
- "HEADER": "Sure you want to delete {portalName}?",
- "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "HEADER": "{portalName}을(를) 삭제하시겠습니까?",
+ "DESCRIPTION": "이 작업은 되돌릴 수 없는 영구적인 작업입니다.",
"CONFIRM_BUTTON_LABEL": "삭제"
}
},
- "EDIT_CONFIGURATION": "Edit configuration"
+ "EDIT_CONFIGURATION": "설정 수정"
},
"API": {
"CREATE_PORTAL": {
- "SUCCESS_MESSAGE": "Portal created successfully",
- "ERROR_MESSAGE": "Unable to create portal"
+ "SUCCESS_MESSAGE": "포털이 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "포털을 생성할 수 없습니다"
},
"UPDATE_PORTAL": {
- "SUCCESS_MESSAGE": "Portal updated successfully",
- "ERROR_MESSAGE": "Unable to update portal"
+ "SUCCESS_MESSAGE": "포털이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "포털을 업데이트할 수 없습니다"
}
}
},
"PDF_UPLOAD": {
- "TITLE": "Upload PDF Document",
- "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
- "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
- "SELECT_FILE": "Select PDF File",
- "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
- "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "TITLE": "PDF 문서 업로드",
+ "DESCRIPTION": "PDF 문서를 업로드하여 AI를 사용해 자동으로 FAQ를 생성합니다",
+ "DRAG_DROP_TEXT": "PDF 파일을 여기에 끌어다 놓거나 클릭하여 선택하십시오",
+ "SELECT_FILE": "PDF 파일 선택",
+ "ADDITIONAL_CONTEXT_LABEL": "추가 컨텍스트 (선택 사항)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "FAQ 생성을 위한 추가 컨텍스트 또는 지침을 제공하십시오...",
"UPLOADING": "업로드 중...",
- "UPLOAD": "Upload & Process",
+ "UPLOAD": "업로드 및 처리",
"CANCEL": "취소",
- "ERROR_INVALID_TYPE": "Please select a valid PDF file",
- "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
- "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ "ERROR_INVALID_TYPE": "유효한 PDF 파일을 선택하십시오",
+ "ERROR_FILE_TOO_LARGE": "파일 크기는 512MB 미만이어야 합니다",
+ "ERROR_UPLOAD_FAILED": "PDF 업로드에 실패했습니다. 다시 시도하십시오."
},
"PDF_DOCUMENTS": {
- "TITLE": "PDF Documents",
- "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
- "UPLOAD_PDF": "Upload PDF",
- "UPLOAD_FIRST_PDF": "Upload your first PDF",
- "UPLOADED_BY": "Uploaded by",
- "GENERATE_FAQS": "Generate FAQs",
- "GENERATING": "Generating...",
- "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "TITLE": "PDF 문서",
+ "DESCRIPTION": "업로드된 PDF 문서를 관리하고 FAQ를 생성합니다",
+ "UPLOAD_PDF": "PDF 업로드",
+ "UPLOAD_FIRST_PDF": "첫 번째 PDF를 업로드하십시오",
+ "UPLOADED_BY": "업로드한 사람",
+ "GENERATE_FAQS": "FAQ 생성",
+ "GENERATING": "생성 중...",
+ "CONFIRM_DELETE": "{filename}을(를) 삭제하시겠습니까?",
"EMPTY_STATE": {
- "TITLE": "No PDF documents yet",
- "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ "TITLE": "아직 PDF 문서가 없습니다",
+ "DESCRIPTION": "PDF 문서를 업로드하여 AI를 사용해 자동으로 FAQ를 생성합니다"
},
"STATUS": {
- "UPLOADED": "Ready",
- "PROCESSING": "Processing",
- "PROCESSED": "Completed",
- "FAILED": "Failed"
+ "UPLOADED": "준비됨",
+ "PROCESSING": "처리 중",
+ "PROCESSED": "완료됨",
+ "FAILED": "실패"
}
},
"CONTENT_GENERATION": {
- "TITLE": "Content Generation",
- "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
- "UPLOAD_TITLE": "Upload PDF Document",
- "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
- "SELECT_FILE": "Select PDF File",
- "UPLOADING": "Processing document...",
- "UPLOAD_SUCCESS": "Document processed successfully!",
- "UPLOAD_ERROR": "Failed to upload document. Please try again.",
- "INVALID_FILE_TYPE": "Please select a valid PDF file",
- "FILE_TOO_LARGE": "File size must be less than 512MB",
- "GENERATED_CONTENT": "Generated FAQ Content",
- "PUBLISH_SELECTED": "Publish Selected",
- "PUBLISHING": "Publishing...",
- "FROM_DOCUMENT": "From document",
- "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
- "LOADING": "Loading generated content..."
+ "TITLE": "콘텐츠 생성",
+ "DESCRIPTION": "PDF 문서를 업로드하여 AI를 사용해 자동으로 FAQ 콘텐츠를 생성합니다",
+ "UPLOAD_TITLE": "PDF 문서 업로드",
+ "DRAG_DROP": "PDF 파일을 여기에 끌어다 놓거나 클릭하여 선택하십시오",
+ "SELECT_FILE": "PDF 파일 선택",
+ "UPLOADING": "문서 처리 중...",
+ "UPLOAD_SUCCESS": "문서가 성공적으로 처리되었습니다!",
+ "UPLOAD_ERROR": "문서 업로드에 실패했습니다. 다시 시도하십시오.",
+ "INVALID_FILE_TYPE": "유효한 PDF 파일을 선택하십시오",
+ "FILE_TOO_LARGE": "파일 크기는 512MB 미만이어야 합니다",
+ "GENERATED_CONTENT": "생성된 FAQ 콘텐츠",
+ "PUBLISH_SELECTED": "선택 항목 게시",
+ "PUBLISHING": "게시 중...",
+ "FROM_DOCUMENT": "문서에서",
+ "NO_CONTENT": "생성된 콘텐츠가 없습니다. PDF 문서를 업로드하여 시작하십시오.",
+ "LOADING": "생성된 콘텐츠를 불러오는 중..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/inbox.json b/app/javascript/dashboard/i18n/locale/ko/inbox.json
index dc5c04757..83bb5ff30 100644
--- a/app/javascript/dashboard/i18n/locale/ko/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/ko/inbox.json
@@ -1,94 +1,94 @@
{
"INBOX": {
"LIST": {
- "TITLE": "My Inbox",
- "DISPLAY_DROPDOWN": "Display",
- "LOADING": "Fetching notifications",
- "404": "There are no active notifications in this group.",
- "NO_NOTIFICATIONS": "No notifications",
- "NOTE": "Notifications from all subscribed inboxes",
- "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
- "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
+ "TITLE": "내 받은 메시지함",
+ "DISPLAY_DROPDOWN": "표시",
+ "LOADING": "알림을 가져오는 중",
+ "404": "이 그룹에 활성 알림이 없습니다.",
+ "NO_NOTIFICATIONS": "알림 없음",
+ "NOTE": "구독한 모든 받은 메시지함의 알림",
+ "NO_MESSAGES_AVAILABLE": "메시지를 가져올 수 없습니다",
+ "SNOOZED_UNTIL": "일시 중지 기한",
+ "SNOOZED_UNTIL_TOMORROW": "내일까지 일시 중지",
+ "SNOOZED_UNTIL_NEXT_WEEK": "다음 주까지 일시 중지"
},
"ACTION_HEADER": {
- "SNOOZE": "Snooze notification",
- "DELETE": "Delete notification",
+ "SNOOZE": "알림 일시 중지",
+ "DELETE": "알림 삭제",
"BACK": "뒤로"
},
"TYPES": {
- "CONVERSATION_MENTION": "You have been mentioned in a conversation",
- "CONVERSATION_CREATION": "New conversation created",
- "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
- "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
- "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
- "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
+ "CONVERSATION_MENTION": "대화에서 멘션되었습니다",
+ "CONVERSATION_CREATION": "새 대화가 생성되었습니다",
+ "CONVERSATION_ASSIGNMENT": "대화가 배정되었습니다",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "배정된 대화에 새 메시지가 있습니다",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "참여 중인 대화에 새 메시지가 있습니다",
+ "SLA_MISSED_FIRST_RESPONSE": "대화에 대한 SLA 최초 응답 목표를 놓쳤습니다",
+ "SLA_MISSED_NEXT_RESPONSE": "대화에 대한 SLA 다음 응답 목표를 놓쳤습니다",
+ "SLA_MISSED_RESOLUTION": "대화에 대한 SLA 해결 목표를 놓쳤습니다"
},
"TYPES_NEXT": {
- "CONVERSATION_MENTION": "Mentioned",
- "CONVERSATION_ASSIGNMENT": "Assigned to you",
- "CONVERSATION_CREATION": "New Conversation",
- "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
- "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
- "SLA_MISSED_RESOLUTION": "SLA breach",
+ "CONVERSATION_MENTION": "멘션됨",
+ "CONVERSATION_ASSIGNMENT": "배정됨",
+ "CONVERSATION_CREATION": "새 대화",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA 위반",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA 위반",
+ "SLA_MISSED_RESOLUTION": "SLA 위반",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "새 메시지",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "새 메시지",
- "SNOOZED_UNTIL": "Snoozed for {time}",
- "SNOOZED_ENDS": "Snooze ended"
+ "SNOOZED_UNTIL": "{time} 동안 일시 중지됨",
+ "SNOOZED_ENDS": "일시 중지 종료됨"
},
"NO_CONTENT": "콘텐츠 이용 불가",
"MENU_ITEM": {
- "MARK_AS_READ": "Mark as read",
- "MARK_AS_UNREAD": "Mark as unread",
- "SNOOZE": "Snooze",
+ "MARK_AS_READ": "읽음으로 표시",
+ "MARK_AS_UNREAD": "읽지 않음으로 표시",
+ "SNOOZE": "일시 중지",
"DELETE": "삭제",
- "MARK_ALL_READ": "전부 읽음으로 바꾸기",
- "DELETE_ALL": "Delete all",
- "DELETE_ALL_READ": "Delete all read"
+ "MARK_ALL_READ": "전부 읽음으로 표시",
+ "DELETE_ALL": "전부 삭제",
+ "DELETE_ALL_READ": "읽은 항목 전부 삭제"
},
"DISPLAY_MENU": {
- "SORT": "Sort",
- "DISPLAY": "Display :",
+ "SORT": "정렬",
+ "DISPLAY": "표시 :",
"SORT_OPTIONS": {
- "NEWEST": "Newest",
- "OLDEST": "Oldest",
- "PRIORITY": "Priority"
+ "NEWEST": "최신순",
+ "OLDEST": "오래된 순",
+ "PRIORITY": "우선순위"
},
"DISPLAY_OPTIONS": {
"SNOOZED": "일시 중지됨",
- "READ": "읽기",
+ "READ": "읽음",
"LABELS": "라벨",
- "CONVERSATION_ID": "Conversation ID"
+ "CONVERSATION_ID": "대화 ID"
}
},
"ALERTS": {
- "MARK_AS_READ": "Notification marked as read",
- "MARK_AS_UNREAD": "Notification marked as unread",
- "SNOOZE": "Notification snoozed",
- "DELETE": "Notification deleted",
- "MARK_ALL_READ": "All notifications marked as read",
- "DELETE_ALL": "All notifications deleted",
- "DELETE_ALL_READ": "All read notifications deleted"
+ "MARK_AS_READ": "알림이 읽음으로 표시되었습니다",
+ "MARK_AS_UNREAD": "알림이 읽지 않음으로 표시되었습니다",
+ "SNOOZE": "알림이 일시 중지되었습니다",
+ "DELETE": "알림이 삭제되었습니다",
+ "MARK_ALL_READ": "모든 알림이 읽음으로 표시되었습니다",
+ "DELETE_ALL": "모든 알림이 삭제되었습니다",
+ "DELETE_ALL_READ": "읽은 모든 알림이 삭제되었습니다"
},
"REAUTHORIZE": {
- "TITLE": "Reauthorization Required",
- "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
- "BUTTON_TEXT": "Reconnect WhatsApp",
- "LOADING_FACEBOOK": "Loading Facebook SDK...",
- "SUCCESS": "WhatsApp reconnected successfully",
- "ERROR": "Failed to reconnect WhatsApp. Please try again.",
- "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
- "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
- "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
- "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TITLE": "재인증 필요",
+ "DESCRIPTION": "WhatsApp 연결이 만료되었습니다. 메시지를 계속 수신하고 전송하려면 다시 연결하십시오.",
+ "BUTTON_TEXT": "WhatsApp 다시 연결",
+ "LOADING_FACEBOOK": "Facebook SDK를 불러오는 중...",
+ "SUCCESS": "WhatsApp이 성공적으로 다시 연결되었습니다",
+ "ERROR": "WhatsApp 다시 연결에 실패했습니다. 다시 시도하십시오.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp 앱 ID가 설정되지 않았습니다. 관리자에게 문의하십시오.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp 설정 ID가 구성되지 않았습니다. 관리자에게 문의하십시오.",
+ "CONFIGURATION_ERROR": "재인증 중 설정 오류가 발생했습니다.",
+ "FACEBOOK_LOAD_ERROR": "Facebook SDK를 불러오지 못했습니다. 다시 시도하십시오.",
"TROUBLESHOOTING": {
- "TITLE": "Troubleshooting",
- "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
- "COOKIES": "Third-party cookies must be enabled",
- "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ "TITLE": "문제 해결",
+ "POPUP_BLOCKED": "이 사이트에 대해 팝업이 허용되어 있는지 확인하십시오",
+ "COOKIES": "서드파티 쿠키가 활성화되어 있어야 합니다",
+ "ADMIN_ACCESS": "WhatsApp Business 계정에 대한 관리자 액세스 권한이 필요합니다"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json
index 9e6ec80de..6debf4ec2 100644
--- a/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json
@@ -1,12 +1,15 @@
{
"INBOX_MGMT": {
"HEADER": "받은 메시지함",
- "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
- "LEARN_MORE": "Learn more about inboxes",
- "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
- "CLICK_TO_RECONNECT": "Click here to reconnect.",
- "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
- "COMPLETE_REGISTRATION": "Complete Registration",
+ "DESCRIPTION": "채널은 고객이 귀하와 상호작용하기 위해 선택하는 커뮤니케이션 방식입니다. 받은 메시지함은 특정 채널에 대한 상호작용을 관리하는 곳입니다. 이메일, 라이브 채팅, 소셜 미디어 등 다양한 소스의 커뮤니케이션을 포함할 수 있습니다.",
+ "LEARN_MORE": "받은 메시지함에 대해 자세히 알아보기",
+ "COUNT": "{n}개의 받은 메시지함 | {n}개의 받은 메시지함",
+ "SEARCH_PLACEHOLDER": "받은 메시지함 검색...",
+ "NO_RESULTS": "검색과 일치하는 받은 메시지함이 없습니다",
+ "RECONNECTION_REQUIRED": "받은 메시지함의 연결이 끊어졌습니다. 재인증하기 전까지 새 메시지를 받을 수 없습니다.",
+ "CLICK_TO_RECONNECT": "다시 연결하려면 여기를 클릭하십시오.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "WhatsApp Business 등록이 완료되지 않았습니다. 다시 연결하기 전에 Meta Business Manager에서 표시 이름 상태를 확인하십시오.",
+ "COMPLETE_REGISTRATION": "등록 완료",
"LIST": {
"404": "이 계정에는 첨부된 받은 메시지함이 없습니다."
},
@@ -31,44 +34,44 @@
"ADD": {
"CHANNEL_NAME": {
"LABEL": "받은 메시지함 이름",
- "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)",
- "ERROR": "Please enter a valid inbox name"
+ "PLACEHOLDER": "받은 메시지함 이름을 입력하십시오 (예: Acme Inc)",
+ "ERROR": "올바른 받은 메시지함 이름을 입력하십시오."
},
"WEBSITE_NAME": {
"LABEL": "웹사이트 이름",
"PLACEHOLDER": "웹사이트 이름 입력 (예: Acme Inc)"
},
"FB": {
- "HELP": "추신: 로그인을 함으로써, 우리는 오직 당신의 페이지의 메시지에 접근할 수 있다. 당신의 사적인 메시지에 Chatwoot는 절대 접근할 수 없습니다.",
+ "HELP": "추신: 로그인을 함으로써, 우리는 오직 당신의 페이지의 메시지에 접근할 수 있습니다. 당신의 개인 메시지에 Chatwoot는 절대 접근할 수 없습니다.",
"CHOOSE_PAGE": "페이지 선택",
"CHOOSE_PLACEHOLDER": "목록에서 페이지 선택",
"INBOX_NAME": "받은 메시지함 이름",
"ADD_NAME": "받은 메시지함의 이름 추가",
- "PICK_NAME": "Pick a Name for your Inbox",
+ "PICK_NAME": "받은 메시지함의 이름을 선택하십시오",
"PICK_A_VALUE": "값 선택",
"CREATE_INBOX": "받은 메시지함 만들기"
},
"INSTAGRAM": {
- "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
- "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
- "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
- "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
- "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
- "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
- "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
+ "CONTINUE_WITH_INSTAGRAM": "Instagram으로 계속하기",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Instagram 프로필 연결",
+ "HELP": "Instagram 프로필을 채널로 추가하려면 'Instagram으로 계속하기'를 클릭하여 Instagram 프로필을 인증해야 합니다.",
+ "ERROR_MESSAGE": "Instagram에 연결하는 동안 오류가 발생했습니다. 다시 시도하십시오.",
+ "ERROR_AUTH": "Instagram에 연결하는 동안 오류가 발생했습니다. 다시 시도하십시오.",
+ "NEW_INBOX_SUGGESTION": "이 Instagram 계정은 이전에 다른 받은 메시지함에 연결되어 있었으며 현재 이곳으로 마이그레이션되었습니다. 모든 새 메시지가 여기에 표시됩니다. 이전 받은 메시지함에서는 더 이상 이 계정의 메시지를 보내거나 받을 수 없습니다.",
+ "DUPLICATE_INBOX_BANNER": "이 Instagram 계정은 새로운 Instagram 채널 받은 메시지함으로 마이그레이션되었습니다. 이 받은 메시지함에서는 더 이상 Instagram 메시지를 보내거나 받을 수 없습니다."
},
"TIKTOK": {
- "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
- "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
- "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
- "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
- "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
+ "CONTINUE_WITH_TIKTOK": "TikTok으로 계속하기",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "TikTok 프로필 연결",
+ "HELP": "TikTok 프로필을 채널로 추가하려면 'TikTok으로 계속하기'를 클릭하여 TikTok 프로필을 인증해야 합니다.",
+ "ERROR_MESSAGE": "TikTok에 연결하는 동안 오류가 발생했습니다. 다시 시도하십시오.",
+ "ERROR_AUTH": "TikTok에 연결하는 동안 오류가 발생했습니다. 다시 시도하십시오."
},
"TWITTER": {
- "HELP": "트위터 프로필을 채널로 추가하려면 '트위터로 로그인'을 클릭하여 트위터 프로필을 인증해야 합니다. ",
- "ERROR_MESSAGE": "트위터에 연결하는 동안 오류가 발생했습니다. 다시 시도해주세요.",
+ "HELP": "트위터 프로필을 채널로 추가하려면 '트위터로 로그인'을 클릭하여 트위터 프로필을 인증해야 합니다.",
+ "ERROR_MESSAGE": "트위터에 연결하는 동안 오류가 발생했습니다. 다시 시도하십시오.",
"TWEETS": {
- "ENABLE": "Create conversations from mentioned Tweets"
+ "ENABLE": "멘션된 트윗에서 대화 만들기"
}
},
"WEBSITE_CHANNEL": {
@@ -80,7 +83,7 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "웹훅 URL",
- "PLACEHOLDER": "Please enter your Webhook URL",
+ "PLACEHOLDER": "웹훅 URL을 입력하십시오.",
"ERROR": "올바른 URL을 입력하십시오."
},
"CHANNEL_DOMAIN": {
@@ -101,7 +104,7 @@
},
"CHANNEL_GREETING_TOGGLE": {
"LABEL": "채널 인사말 사용",
- "HELP_TEXT": "Automatically send a greeting message when a new conversation is created.",
+ "HELP_TEXT": "고객이 대화를 시작하고 첫 메시지를 보낼 때 인사말 메시지를 자동으로 전송합니다.",
"ENABLED": "사용함",
"DISABLED": "사용 안 함"
},
@@ -110,7 +113,7 @@
"IN_A_FEW_MINUTES": "몇 분 후에",
"IN_A_FEW_HOURS": "몇 시간 안에",
"IN_A_DAY": "며칠 안에",
- "HELP_TEXT": "이 응답 시간은 라이브 채팅 위젯에 표시됨"
+ "HELP_TEXT": "이 응답 시간은 라이브 채팅 위젯에 표시됩니다."
},
"WIDGET_COLOR": {
"LABEL": "위젯 색깔",
@@ -118,33 +121,33 @@
},
"SUBMIT_BUTTON": "받은 메시지함 만들기",
"API": {
- "ERROR_MESSAGE": "We were not able to create a website channel, please try again"
+ "ERROR_MESSAGE": "웹사이트 채널을 만들 수 없습니다. 다시 시도하십시오."
}
},
"TWILIO": {
- "TITLE": "Twilio SMS/WhatsApp Channel",
- "DESC": "Integrate Twilio and start supporting your customers via SMS or WhatsApp.",
+ "TITLE": "Twilio SMS/WhatsApp 채널",
+ "DESC": "Twilio를 통합하여 SMS 또는 WhatsApp으로 고객 지원을 시작하십시오.",
"ACCOUNT_SID": {
"LABEL": "계정 SID",
"PLACEHOLDER": "Twilio 계정 SID를 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
+ "USE_API_KEY": "API Key 인증 사용",
"LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
+ "PLACEHOLDER": "API Key SID를 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"API_KEY_SECRET": {
"LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
+ "PLACEHOLDER": "API Key Secret을 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"MESSAGING_SERVICE_SID": {
- "LABEL": "Messaging Service SID",
- "PLACEHOLDER": "Please enter your Twilio Messaging Service SID",
+ "LABEL": "메시징 서비스 SID",
+ "PLACEHOLDER": "Twilio Messaging Service SID를 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다.",
- "USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service"
+ "USE_MESSAGING_SERVICE": "Twilio Messaging Service 사용"
},
"CHANNEL_TYPE": {
"LABEL": "채널 유형",
@@ -157,13 +160,13 @@
},
"CHANNEL_NAME": {
"LABEL": "받은 메시지함 이름",
- "PLACEHOLDER": "Please enter a inbox name",
+ "PLACEHOLDER": "받은 메시지함 이름을 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"PHONE_NUMBER": {
"LABEL": "전화 번호",
"PLACEHOLDER": "메시지를 보낼 전화 번호를 입력하십시오.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "`+` 기호로 시작하고 공백이 없는 올바른 전화 번호를 입력하십시오."
},
"API_CALLBACK": {
"TITLE": "콜백 URL",
@@ -175,182 +178,182 @@
}
},
"SMS": {
- "TITLE": "SMS Channel",
- "DESC": "Start supporting your customers via SMS.",
+ "TITLE": "SMS 채널",
+ "DESC": "SMS를 통해 고객 지원을 시작하십시오.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API 공급자",
"TWILIO": "Twilio",
"BANDWIDTH": "Bandwidth"
},
"API": {
- "ERROR_MESSAGE": "We were not able to save the SMS channel"
+ "ERROR_MESSAGE": "SMS 채널을 저장할 수 없습니다."
},
"BANDWIDTH": {
"ACCOUNT_ID": {
- "LABEL": "Account ID",
- "PLACEHOLDER": "Please enter your Bandwidth Account ID",
+ "LABEL": "계정 ID",
+ "PLACEHOLDER": "Bandwidth 계정 ID를 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"API_KEY": {
"LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwidth API Key",
+ "PLACEHOLDER": "Bandwidth API Key를 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwidth API Secret",
+ "PLACEHOLDER": "Bandwidth API Secret을 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"APPLICATION_ID": {
- "LABEL": "Application ID",
- "PLACEHOLDER": "Please enter your Bandwidth Application ID",
+ "LABEL": "애플리케이션 ID",
+ "PLACEHOLDER": "Bandwidth 애플리케이션 ID를 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"INBOX_NAME": {
"LABEL": "받은 메시지함 이름",
- "PLACEHOLDER": "Please enter a inbox name",
+ "PLACEHOLDER": "받은 메시지함 이름을 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"PHONE_NUMBER": {
- "LABEL": "휴대폰 번호",
+ "LABEL": "전화 번호",
"PLACEHOLDER": "메시지를 보낼 전화 번호를 입력하십시오.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "`+` 기호로 시작하고 공백이 없는 올바른 전화 번호를 입력하십시오."
},
- "SUBMIT_BUTTON": "Create Bandwidth Channel",
+ "SUBMIT_BUTTON": "Bandwidth 채널 만들기",
"API": {
- "ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again"
+ "ERROR_MESSAGE": "Bandwidth 자격 증명을 인증할 수 없습니다. 다시 시도하십시오."
},
"API_CALLBACK": {
"TITLE": "콜백 URL",
- "SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here."
+ "SUBTITLE": "여기에 표시된 URL로 Bandwidth에서 메시지 콜백 URL을 구성해야 합니다."
}
}
},
"WHATSAPP": {
- "TITLE": "WhatsApp Channel",
- "DESC": "Start supporting your customers via WhatsApp.",
+ "TITLE": "WhatsApp 채널",
+ "DESC": "WhatsApp을 통해 고객 지원을 시작하십시오.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API 공급자",
"WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
- "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
- "TWILIO_DESC": "Connect via Twilio credentials",
+ "WHATSAPP_CLOUD_DESC": "Meta를 통한 빠른 설정",
+ "TWILIO_DESC": "Twilio 자격 증명으로 연결",
"360_DIALOG": "360Dialog"
},
"SELECT_PROVIDER": {
- "TITLE": "Select your API provider",
- "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ "TITLE": "API 공급자를 선택하십시오",
+ "DESCRIPTION": "WhatsApp 공급자를 선택하십시오. Meta를 통해 설정 없이 직접 연결하거나, Twilio 계정 자격 증명을 사용하여 연결할 수 있습니다."
},
"INBOX_NAME": {
"LABEL": "받은 메시지함 이름",
- "PLACEHOLDER": "Please enter an inbox name",
+ "PLACEHOLDER": "받은 메시지함 이름을 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"PHONE_NUMBER": {
- "LABEL": "휴대폰 번호",
+ "LABEL": "전화 번호",
"PLACEHOLDER": "메시지를 보낼 전화 번호를 입력하십시오.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "`+` 기호로 시작하고 공백이 없는 올바른 전화 번호를 입력하십시오."
},
"PHONE_NUMBER_ID": {
- "LABEL": "Phone number ID",
- "PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "전화 번호 ID",
+ "PLACEHOLDER": "Facebook 개발자 대시보드에서 받은 전화 번호 ID를 입력하십시오.",
+ "ERROR": "올바른 값을 입력하십시오."
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "Business Account ID",
- "PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "비즈니스 계정 ID",
+ "PLACEHOLDER": "Facebook 개발자 대시보드에서 받은 비즈니스 계정 ID를 입력하십시오.",
+ "ERROR": "올바른 값을 입력하십시오."
},
"WEBHOOK_VERIFY_TOKEN": {
- "LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "웹훅 인증 토큰",
+ "PLACEHOLDER": "Facebook 웹훅에 구성할 인증 토큰을 입력하십시오.",
+ "ERROR": "올바른 값을 입력하십시오."
},
"API_KEY": {
"LABEL": "API key",
- "SUBTITLE": "Configure the WhatsApp API key.",
+ "SUBTITLE": "WhatsApp API key를 구성하십시오.",
"PLACEHOLDER": "API key",
- "ERROR": "Please enter a valid value."
+ "ERROR": "올바른 값을 입력하십시오."
},
"API_CALLBACK": {
"TITLE": "콜백 URL",
- "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.",
+ "SUBTITLE": "아래에 표시된 값으로 Facebook 개발자 포털에서 웹훅 URL과 인증 토큰을 구성해야 합니다.",
"WEBHOOK_URL": "웹훅 URL",
- "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
+ "WEBHOOK_VERIFICATION_TOKEN": "웹훅 인증 토큰"
},
- "SUBMIT_BUTTON": "Create WhatsApp Channel",
+ "SUBMIT_BUTTON": "WhatsApp 채널 만들기",
"EMBEDDED_SIGNUP": {
- "TITLE": "Quick setup with Meta",
- "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "TITLE": "Meta를 통한 빠른 설정",
+ "DESC": "WhatsApp 임베디드 가입 플로우를 사용하여 새 번호를 빠르게 연결하십시오. Meta로 리디렉션되어 WhatsApp Business 계정에 로그인하게 됩니다. 관리자 액세스 권한이 있으면 설정이 원활하고 쉽게 진행됩니다.",
"BENEFITS": {
- "TITLE": "Benefits of Embedded Signup:",
- "EASY_SETUP": "No manual configuration required",
- "SECURE_AUTH": "Secure OAuth based authentication",
- "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ "TITLE": "임베디드 가입의 장점:",
+ "EASY_SETUP": "수동 구성이 필요 없습니다",
+ "SECURE_AUTH": "안전한 OAuth 기반 인증",
+ "AUTO_CONFIG": "자동 웹훅 및 전화 번호 구성"
},
"LEARN_MORE": {
- "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
- "LINK_TEXT": "this link"
+ "TEXT": "통합 가입, 요금 및 제한 사항에 대해 자세히 알아보려면 {link}을 방문하십시오.",
+ "LINK_TEXT": "이 링크"
},
- "SUBMIT_BUTTON": "Connect with WhatsApp Business",
- "AUTH_PROCESSING": "Authenticating with Meta",
- "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
- "PROCESSING": "Setting up your WhatsApp Business Account",
- "LOADING_SDK": "Loading Facebook SDK...",
- "CANCELLED": "WhatsApp Signup was cancelled",
- "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
- "WAITING_FOR_AUTH": "Waiting for authentication...",
- "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
- "SIGNUP_ERROR": "Signup error occurred",
- "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
- "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
- "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
- "MANUAL_LINK_TEXT": "manual setup flow"
+ "SUBMIT_BUTTON": "WhatsApp Business에 연결",
+ "AUTH_PROCESSING": "Meta로 인증 중",
+ "WAITING_FOR_BUSINESS_INFO": "Meta 창에서 비즈니스 설정을 완료하십시오...",
+ "PROCESSING": "WhatsApp Business 계정을 설정하는 중",
+ "LOADING_SDK": "Facebook SDK를 로드하는 중...",
+ "CANCELLED": "WhatsApp 가입이 취소되었습니다",
+ "SUCCESS_TITLE": "WhatsApp Business 계정이 연결되었습니다!",
+ "WAITING_FOR_AUTH": "인증 대기 중...",
+ "INVALID_BUSINESS_DATA": "Facebook에서 잘못된 비즈니스 데이터를 수신했습니다. 다시 시도하십시오.",
+ "SIGNUP_ERROR": "가입 오류가 발생했습니다",
+ "AUTH_NOT_COMPLETED": "인증이 완료되지 않았습니다. 프로세스를 다시 시작하십시오.",
+ "SUCCESS_FALLBACK": "WhatsApp Business 계정이 성공적으로 구성되었습니다",
+ "MANUAL_FALLBACK": "번호가 이미 WhatsApp Business Platform (API)에 연결되어 있거나, 자체 번호를 온보딩하는 기술 공급자인 경우 {link}을 사용하십시오",
+ "MANUAL_LINK_TEXT": "수동 설정 플로우"
},
"API": {
- "ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
+ "ERROR_MESSAGE": "WhatsApp 채널을 저장할 수 없습니다."
}
},
"VOICE": {
- "TITLE": "Voice Channel",
- "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "TITLE": "음성 채널",
+ "DESC": "Twilio Voice를 통합하여 전화 통화로 고객 지원을 시작하십시오.",
"PHONE_NUMBER": {
"LABEL": "전화 번호",
- "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
- "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ "PLACEHOLDER": "전화 번호를 입력하십시오 (예: +1234567890)",
+ "ERROR": "E.164 형식의 올바른 전화 번호를 입력하십시오 (예: +1234567890)"
},
"TWILIO": {
"ACCOUNT_SID": {
"LABEL": "계정 SID",
- "PLACEHOLDER": "Enter your Twilio Account SID",
- "REQUIRED": "Account SID is required"
+ "PLACEHOLDER": "Twilio 계정 SID를 입력하십시오.",
+ "REQUIRED": "계정 SID는 필수입니다."
},
"AUTH_TOKEN": {
"LABEL": "인증 토큰",
- "PLACEHOLDER": "Enter your Twilio Auth Token",
- "REQUIRED": "Auth Token is required"
+ "PLACEHOLDER": "Twilio 인증 토큰을 입력하십시오.",
+ "REQUIRED": "인증 토큰은 필수입니다."
},
"API_KEY_SID": {
"LABEL": "API Key SID",
- "PLACEHOLDER": "Enter your Twilio API Key SID",
- "REQUIRED": "API Key SID is required"
+ "PLACEHOLDER": "Twilio API Key SID를 입력하십시오.",
+ "REQUIRED": "API Key SID는 필수입니다."
},
"API_KEY_SECRET": {
"LABEL": "API Key Secret",
- "PLACEHOLDER": "Enter your Twilio API Key Secret",
- "REQUIRED": "API Key Secret is required"
+ "PLACEHOLDER": "Twilio API Key Secret을 입력하십시오.",
+ "REQUIRED": "API Key Secret은 필수입니다."
}
},
"CONFIGURATION": {
- "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
- "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
- "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
- "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ "TWILIO_VOICE_URL_TITLE": "Twilio 음성 URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "이 URL을 Twilio 전화 번호 및 TwiML 앱의 음성 URL로 구성하십시오.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio 상태 콜백 URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "이 URL을 Twilio 전화 번호의 상태 콜백 URL로 구성하십시오."
},
- "SUBMIT_BUTTON": "Create Voice Channel",
+ "SUBMIT_BUTTON": "음성 채널 만들기",
"API": {
- "ERROR_MESSAGE": "We were not able to create the voice channel"
+ "ERROR_MESSAGE": "음성 채널을 만들 수 없습니다."
}
},
"API_CHANNEL": {
@@ -363,17 +366,17 @@
},
"WEBHOOK_URL": {
"LABEL": "웹훅 URL",
- "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
+ "SUBTITLE": "이벤트 콜백을 받을 URL을 구성하십시오.",
"PLACEHOLDER": "웹훅 URL"
},
"SUBMIT_BUTTON": "API 채널 만들기",
"API": {
- "ERROR_MESSAGE": "우리는 API 채널을 저장할 수 없습니다."
+ "ERROR_MESSAGE": "API 채널을 저장할 수 없습니다."
}
},
"EMAIL_CHANNEL": {
"TITLE": "이메일 채널",
- "DESC": "Integrate your email inbox.",
+ "DESC": "이메일 받은 메시지함을 통합하십시오.",
"CHANNEL_NAME": {
"LABEL": "채널 이름",
"PLACEHOLDER": "채널 이름을 입력하십시오.",
@@ -381,117 +384,117 @@
},
"EMAIL": {
"LABEL": "이메일",
- "SUBTITLE": "고객이 지원 티켓을 보내는 이메일",
+ "SUBTITLE": "고객이 지원 요청을 보내는 이메일 주소를 입력하십시오.",
"PLACEHOLDER": "이메일"
},
"SUBMIT_BUTTON": "이메일 채널 만들기",
"API": {
"ERROR_MESSAGE": "이메일 채널을 저장할 수 없습니다."
},
- "FINISH_MESSAGE": "당신의 이메일 주소로 이메일 전달을 시작하십시오.",
- "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
- "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "FINISH_MESSAGE": "이메일 받은 메시지함이 성공적으로 생성되었습니다! 아래 주소로 이메일 전달을 시작하거나, SMTP 및 IMAP 자격 증명을 구성하여 이메일을 직접 보내고 받을 수 있습니다.",
+ "FINISH_MESSAGE_NO_FORWARDING": "이메일 받은 메시지함이 성공적으로 생성되었습니다! 이메일을 보내고 받으려면 SMTP 및 IMAP 자격 증명을 구성해야 합니다. 이 설정이 없으면 이메일이 처리되지 않습니다.",
+ "FORWARDING_ADDRESS_LABEL": "이 주소로 이메일 전달:",
"CONFIGURE_SMTP_IMAP_LINK": "여기를 클릭하세요",
- "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
+ "CONFIGURE_SMTP_IMAP_TEXT": " IMAP 및 SMTP 설정을 구성하십시오"
},
"LINE_CHANNEL": {
- "TITLE": "LINE Channel",
- "DESC": "Integrate with LINE channel and start supporting your customers.",
+ "TITLE": "LINE 채널",
+ "DESC": "LINE 채널과 통합하여 고객 지원을 시작하십시오.",
"CHANNEL_NAME": {
"LABEL": "채널 이름",
"PLACEHOLDER": "채널 이름을 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"LINE_CHANNEL_ID": {
- "LABEL": "LINE Channel ID",
- "PLACEHOLDER": "LINE Channel ID"
+ "LABEL": "LINE 채널 ID",
+ "PLACEHOLDER": "LINE 채널 ID"
},
"LINE_CHANNEL_SECRET": {
- "LABEL": "LINE Channel Secret",
- "PLACEHOLDER": "LINE Channel Secret"
+ "LABEL": "LINE 채널 Secret",
+ "PLACEHOLDER": "LINE 채널 Secret"
},
"LINE_CHANNEL_TOKEN": {
- "LABEL": "LINE Channel Token",
- "PLACEHOLDER": "LINE Channel Token"
+ "LABEL": "LINE 채널 Token",
+ "PLACEHOLDER": "LINE 채널 Token"
},
- "SUBMIT_BUTTON": "Create LINE Channel",
+ "SUBMIT_BUTTON": "LINE 채널 만들기",
"API": {
- "ERROR_MESSAGE": "We were not able to save the LINE channel"
+ "ERROR_MESSAGE": "LINE 채널을 저장할 수 없습니다."
},
"API_CALLBACK": {
"TITLE": "콜백 URL",
- "SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here."
+ "SUBTITLE": "여기에 표시된 URL로 LINE 애플리케이션에서 웹훅 URL을 구성해야 합니다."
}
},
"TELEGRAM_CHANNEL": {
- "TITLE": "Telegram Channel",
- "DESC": "Integrate with Telegram channel and start supporting your customers.",
+ "TITLE": "Telegram 채널",
+ "DESC": "Telegram 채널과 통합하여 고객 지원을 시작하십시오.",
"BOT_TOKEN": {
- "LABEL": "Bot Token",
- "SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.",
- "PLACEHOLDER": "Bot Token"
+ "LABEL": "봇 토큰",
+ "SUBTITLE": "Telegram BotFather에서 받은 봇 토큰을 구성하십시오.",
+ "PLACEHOLDER": "봇 토큰"
},
- "SUBMIT_BUTTON": "Create Telegram Channel",
+ "SUBMIT_BUTTON": "Telegram 채널 만들기",
"API": {
- "ERROR_MESSAGE": "We were not able to save the telegram channel"
+ "ERROR_MESSAGE": "Telegram 채널을 저장할 수 없습니다."
}
},
"AUTH": {
- "TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
- "TITLE_NEXT": "Complete the setup",
+ "TITLE": "채널 선택",
+ "DESC": "Chatwoot는 라이브 채팅 위젯, Facebook Messenger, WhatsApp, 이메일 등을 채널로 지원합니다. 사용자 정의 채널을 만들려면 API 채널을 사용하여 만들 수 있습니다. 시작하려면 아래에서 채널을 선택하십시오.",
+ "TITLE_NEXT": "설정 완료",
"TITLE_FINISH": "Voilà!",
"CHANNEL": {
"WEBSITE": {
- "TITLE": "홈페이지",
- "DESCRIPTION": "Create a live-chat widget"
+ "TITLE": "웹사이트",
+ "DESCRIPTION": "라이브 채팅 위젯 만들기"
},
"FACEBOOK": {
- "TITLE": "페이스북",
- "DESCRIPTION": "Connect your Facebook page"
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Facebook 페이지 연결"
},
"WHATSAPP": {
"TITLE": "WhatsApp",
- "DESCRIPTION": "Support your customers on WhatsApp"
+ "DESCRIPTION": "WhatsApp으로 고객 지원"
},
"EMAIL": {
"TITLE": "이메일",
- "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ "DESCRIPTION": "Gmail, Outlook 또는 기타 공급자와 연결"
},
"SMS": {
"TITLE": "SMS",
- "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ "DESCRIPTION": "Twilio 또는 Bandwidth로 SMS 채널 통합"
},
"API": {
"TITLE": "API",
- "DESCRIPTION": "Make a custom channel using our API"
+ "DESCRIPTION": "API를 사용하여 사용자 정의 채널 만들기"
},
"TELEGRAM": {
"TITLE": "Telegram",
- "DESCRIPTION": "Configure Telegram channel using Bot token"
+ "DESCRIPTION": "봇 토큰을 사용하여 Telegram 채널 구성"
},
"LINE": {
"TITLE": "Line",
- "DESCRIPTION": "Integrate your Line channel"
+ "DESCRIPTION": "Line 채널 통합"
},
"INSTAGRAM": {
"TITLE": "Instagram",
- "DESCRIPTION": "Connect your instagram account"
+ "DESCRIPTION": "Instagram 계정 연결"
},
"TIKTOK": {
"TITLE": "TikTok",
- "DESCRIPTION": "Connect your TikTok account"
+ "DESCRIPTION": "TikTok 계정 연결"
},
"VOICE": {
- "TITLE": "Voice",
- "DESCRIPTION": "Integrate with Twilio Voice"
+ "TITLE": "음성",
+ "DESCRIPTION": "Twilio Voice와 통합"
}
}
},
"AGENTS": {
"TITLE": "에이전트",
- "DESC": "여기서 에이전트를 추가하여 새로 만든 받은 메시지함을 관리할 수 있습니다. 선택된 에이전트만 받은 메시지함에 엑세스할 수 있습니다. 해당 받은 메시지함에 선택되지 않은 에이전트는 메시지를 보거나 응답할 수 없습니다.
추신: 관리자로서 모든 받은 문서에 대한 액세스 권한이 필요한 경우, 자신이 만든 모든 받은 문서에 자신을 에이전트로 추가해야 합니다.",
- "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
+ "DESC": "여기서 에이전트를 추가하여 새로 만든 받은 메시지함을 관리할 수 있습니다. 선택된 에이전트만 받은 메시지함에 액세스할 수 있습니다. 해당 받은 메시지함에 선택되지 않은 에이전트는 메시지를 보거나 응답할 수 없습니다.
추신: 관리자로서 모든 받은 메시지함에 대한 액세스 권한이 필요한 경우, 자신이 만든 모든 받은 메시지함에 자신을 에이전트로 추가해야 합니다.",
+ "VALIDATION_ERROR": "새 받은 메시지함에 에이전트를 한 명 이상 추가하십시오.",
"PICK_AGENTS": "받은 메시지함에 대한 에이전트 선택"
},
"DETAILS": {
@@ -499,34 +502,34 @@
"DESC": "아래 드롭다운에서 Chatwoot에 연결할 Facebook 페이지를 선택하십시오. 더 나은 식별을 위해 받은 메시지함에 사용자 정의 이름을 지정할 수 있습니다."
},
"FINISH": {
- "TITLE": "못 박았다!",
- "DESC": "Facebook 페이지를 Chatwoot와 성공적으로 통합하셨습니다. 다음부터 고객이 페이지에 메시지를 보낼 때, 대화는 받은 메시지함에 자동으로 나타납니다.
웹사이트에 쉽게 추가할 수 있는 위젯 스크립트도 제공하고 있습니다. 일단 당신의 웹사이트에 생방송으로 접속하면, 고객들은 어떠한 외부 도구의 도움 없이도 당신의 웹사이트에서 바로 당신에게 메시지를 보낼 수 있고, 대화는 바로 여기 Chatwoot에 나타납니다.<
멋지죠? 음, 우리는 그럴려고 노력합니다 :)"
+ "TITLE": "완료되었습니다!",
+ "DESC": "Facebook 페이지를 Chatwoot와 성공적으로 통합하셨습니다. 다음부터 고객이 페이지에 메시지를 보낼 때, 대화는 받은 메시지함에 자동으로 나타납니다.
웹사이트에 쉽게 추가할 수 있는 위젯 스크립트도 제공하고 있습니다. 일단 당신의 웹사이트에 생방송으로 접속하면, 고객들은 어떠한 외부 도구의 도움 없이도 당신의 웹사이트에서 바로 당신에게 메시지를 보낼 수 있고, 대화는 바로 여기 Chatwoot에 나타납니다.
멋지죠? 음, 우리는 그럴려고 노력합니다 :)"
},
"EMAIL_PROVIDER": {
- "TITLE": "Select your email provider",
- "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials."
+ "TITLE": "이메일 공급자를 선택하십시오",
+ "DESCRIPTION": "아래 목록에서 이메일 공급자를 선택하십시오. 목록에 이메일 공급자가 없는 경우, 기타 공급자 옵션을 선택하고 IMAP 및 SMTP 자격 증명을 입력하십시오."
},
"MICROSOFT": {
- "TITLE": "Microsoft Email",
- "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
- "EMAIL_PLACEHOLDER": "Enter email address",
- "SIGN_IN": "Sign in with Microsoft",
- "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ "TITLE": "Microsoft 이메일",
+ "DESCRIPTION": "시작하려면 Microsoft로 로그인 버튼을 클릭하십시오. 이메일 로그인 페이지로 리디렉션됩니다. 요청된 권한을 수락하면 받은 메시지함 생성 단계로 다시 리디렉션됩니다.",
+ "EMAIL_PLACEHOLDER": "이메일 주소 입력",
+ "SIGN_IN": "Microsoft로 로그인",
+ "ERROR_MESSAGE": "Microsoft에 연결하는 동안 오류가 발생했습니다. 다시 시도하십시오."
},
"GOOGLE": {
- "TITLE": "Google Email",
- "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
- "SIGN_IN": "Sign in with Google",
- "EMAIL_PLACEHOLDER": "Enter email address",
- "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
+ "TITLE": "Google 이메일",
+ "DESCRIPTION": "시작하려면 Google로 로그인 버튼을 클릭하십시오. 이메일 로그인 페이지로 리디렉션됩니다. 요청된 권한을 수락하면 받은 메시지함 생성 단계로 다시 리디렉션됩니다.",
+ "SIGN_IN": "Google로 로그인",
+ "EMAIL_PLACEHOLDER": "이메일 주소 입력",
+ "ERROR_MESSAGE": "Google에 연결하는 동안 오류가 발생했습니다. 다시 시도하십시오."
}
},
"DETAILS": {
- "LOADING_FB": "페이스북 인증하는 중...",
- "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
- "ERROR_FB_AUTH": "문제가 발생했습니다 페이지를 새로 고치십시오...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
- "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles
here.",
+ "LOADING_FB": "Facebook 인증하는 중...",
+ "ERROR_FB_LOADING": "Facebook SDK 로드 오류. 광고 차단기를 비활성화하고 다른 브라우저에서 다시 시도하십시오.",
+ "ERROR_FB_AUTH": "문제가 발생했습니다. 페이지를 새로 고치십시오...",
+ "ERROR_FB_UNAUTHORIZED": "이 작업을 수행할 권한이 없습니다.",
+ "ERROR_FB_UNAUTHORIZED_HELP": "전체 제어 권한으로 Facebook 페이지에 액세스할 수 있는지 확인하십시오. Facebook 역할에 대한 자세한 내용은
여기에서 확인할 수 있습니다.",
"CREATING_CHANNEL": "받은 메시지함을 만드는 중...",
"TITLE": "받은 메시지함 세부 구성",
"DESC": ""
@@ -536,22 +539,22 @@
"ADD_AGENTS": "받은 메시지함에 에이전트를 추가하는 중..."
},
"FINISH": {
- "TITLE": "받은 메시지함이 준비됨!",
- "MESSAGE": "이제 새로운 채널을 통해 고객과 대화할 수 있습니다. 행복한 지원",
- "BUTTON_TEXT": "나를 그곳으로 데려주세요.",
- "MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "웹사이트 채널 만들기를 완료하셨습니다. 아래 표시된 코드를 복사하여 웹사이트에 붙여 넣으십시오. 다음에 고객이 라이브 채팅을 사용할 때 대화는 받은 편지함에 자동으로 표시됩니다.",
- "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
- "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
- "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
+ "TITLE": "받은 메시지함이 준비되었습니다!",
+ "MESSAGE": "이제 새로운 채널을 통해 고객과 대화할 수 있습니다. 즐거운 지원 되십시오",
+ "BUTTON_TEXT": "이동하기",
+ "MORE_SETTINGS": "추가 설정",
+ "WEBSITE_SUCCESS": "웹사이트 채널 만들기를 완료하셨습니다. 아래 표시된 코드를 복사하여 웹사이트에 붙여 넣으십시오. 다음에 고객이 라이브 채팅을 사용할 때 대화는 받은 메시지함에 자동으로 표시됩니다.",
+ "WHATSAPP_QR_INSTRUCTION": "위의 QR 코드를 스캔하여 WhatsApp 받은 메시지함을 빠르게 테스트하십시오",
+ "MESSENGER_QR_INSTRUCTION": "위의 QR 코드를 스캔하여 Facebook Messenger 받은 메시지함을 빠르게 테스트하십시오",
+ "TELEGRAM_QR_INSTRUCTION": "위의 QR 코드를 스캔하여 Telegram 받은 메시지함을 빠르게 테스트하십시오"
},
"REAUTH": "재승인",
"VIEW": "보기",
"EDIT": {
"API": {
- "SUCCESS_MESSAGE": "받은 메시지함 설정이 성공적으로 업데이트됨",
- "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "자동 할당 업데이트 완료",
- "ERROR_MESSAGE": "We couldn't update inbox settings. Please try again later."
+ "SUCCESS_MESSAGE": "받은 메시지함 설정이 성공적으로 업데이트되었습니다.",
+ "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "자동 할당이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "받은 메시지함 설정을 업데이트할 수 없습니다. 나중에 다시 시도하십시오."
},
"EMAIL_COLLECT_BOX": {
"ENABLED": "사용함",
@@ -562,22 +565,22 @@
"DISABLED": "사용 안 함"
},
"SENDER_NAME_SECTION": {
- "TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "TITLE": "발신자 이름",
+ "SUB_TEXT": "에이전트로부터 이메일을 받을 때 고객에게 표시되는 이름을 선택하십시오.",
+ "FOR_EG": "예시:",
"FRIENDLY": {
- "TITLE": "Friendly",
+ "TITLE": "친근한",
"FROM": "에서",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "SUBTITLE": "발신자 이름에 답장을 보낸 에이전트의 이름을 추가하여 친근하게 만드십시오."
},
"PROFESSIONAL": {
- "TITLE": "Professional",
- "SUBTITLE": "Use only the configured business name as the sender name in the email header."
+ "TITLE": "전문적인",
+ "SUBTITLE": "이메일 헤더에서 구성된 비즈니스 이름만 발신자 이름으로 사용합니다."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
- "PLACEHOLDER": "Enter your business name",
- "SAVE_BUTTON_TEXT": "Save"
+ "BUTTON_TEXT": "+ 비즈니스 이름 구성",
+ "PLACEHOLDER": "비즈니스 이름을 입력하십시오.",
+ "SAVE_BUTTON_TEXT": "저장"
}
},
"ALLOW_MESSAGES_AFTER_RESOLVED": {
@@ -589,199 +592,261 @@
"DISABLED": "사용 안 함"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "사용함",
- "DISABLED": "사용 안 함"
+ "ENABLED": "같은 대화 다시 열기",
+ "DISABLED": "새 대화 만들기",
+ "ENABLED_DESCRIPTION": "연락처가 다시 메시지를 보내면 이전 대화가 다시 열립니다.",
+ "DISABLED_DESCRIPTION": "이전 대화가 해결된 후에는 매번 새 대화가 생성됩니다."
},
"ENABLE_HMAC": {
- "LABEL": "Enable"
+ "LABEL": "사용"
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
- "AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar",
+ "AVATAR_DELETE_BUTTON_TEXT": "아바타 삭제",
"CONFIRM": {
"TITLE": "삭제 확인",
"MESSAGE": "삭제하시겠습니까? ",
- "PLACE_HOLDER": "Please type {inboxName} to confirm",
+ "PLACE_HOLDER": "확인하려면 {inboxName}을 입력하십시오.",
"YES": "예, 삭제합니다. ",
- "NO": "아니요, 유지해주세요. "
+ "NO": "아니요, 유지합니다. "
},
"API": {
- "SUCCESS_MESSAGE": "받은 메시지함이 성공적으로 삭제됨.",
- "ERROR_MESSAGE": "받은 편지함을 삭제할 수 없음. 나중에 다시 시도해 주십시오.",
- "AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully",
- "AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later."
+ "SUCCESS_MESSAGE": "받은 메시지함이 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "받은 메시지함을 삭제할 수 없습니다. 나중에 다시 시도하십시오.",
+ "AVATAR_SUCCESS_MESSAGE": "받은 메시지함 아바타가 성공적으로 삭제되었습니다.",
+ "AVATAR_ERROR_MESSAGE": "받은 메시지함 아바타를 삭제할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"TABS": {
"SETTINGS": "설정",
"COLLABORATORS": "협력자",
- "CONFIGURATION": "설치",
- "CAMPAIGN": "Campaigns",
+ "CONFIGURATION": "구성",
+ "CAMPAIGN": "캠페인",
"PRE_CHAT_FORM": "대화 전 설문",
"BUSINESS_HOURS": "영업시간",
- "WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration",
- "ACCOUNT_HEALTH": "Account Health",
+ "WIDGET_BUILDER": "위젯 빌더",
+ "BOT_CONFIGURATION": "봇 구성",
+ "ACCOUNT_HEALTH": "계정 상태",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "채널 환경설정",
+ "WIDGET_FEATURES": "위젯 기능",
"ACCOUNT_HEALTH": {
- "TITLE": "Manage your WhatsApp account",
- "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
- "GO_TO_SETTINGS": "Go to Meta Business Manager",
- "NO_DATA": "Health data is not available",
+ "TITLE": "WhatsApp 계정 관리",
+ "DESCRIPTION": "WhatsApp 계정 상태, 메시지 제한 및 품질을 검토하십시오. 필요한 경우 설정을 업데이트하거나 문제를 해결하십시오.",
+ "GO_TO_SETTINGS": "Meta Business Manager로 이동",
+ "NO_DATA": "상태 데이터를 사용할 수 없습니다",
"FIELDS": {
"DISPLAY_PHONE_NUMBER": {
- "LABEL": "Display phone number",
- "TOOLTIP": "Phone number displayed to customers"
+ "LABEL": "표시 전화 번호",
+ "TOOLTIP": "고객에게 표시되는 전화 번호"
},
"VERIFIED_NAME": {
- "LABEL": "Business name",
- "TOOLTIP": "Business name verified by WhatsApp"
+ "LABEL": "비즈니스 이름",
+ "TOOLTIP": "WhatsApp에서 인증된 비즈니스 이름"
},
"DISPLAY_NAME_STATUS": {
- "LABEL": "Display name status",
- "TOOLTIP": "Status of your business name verification"
+ "LABEL": "표시 이름 상태",
+ "TOOLTIP": "비즈니스 이름 인증 상태"
},
"QUALITY_RATING": {
- "LABEL": "Quality rating",
- "TOOLTIP": "WhatsApp quality rating for your account"
+ "LABEL": "품질 등급",
+ "TOOLTIP": "계정의 WhatsApp 품질 등급"
},
"MESSAGING_LIMIT_TIER": {
- "LABEL": "Messaging limit tier",
- "TOOLTIP": "Daily messaging limit for your account"
+ "LABEL": "메시지 제한 등급",
+ "TOOLTIP": "계정의 일일 메시지 제한"
},
"ACCOUNT_MODE": {
- "LABEL": "Account mode",
- "TOOLTIP": "Current operating mode of your WhatsApp account"
+ "LABEL": "계정 모드",
+ "TOOLTIP": "WhatsApp 계정의 현재 운영 모드"
}
},
"VALUES": {
"TIERS": {
- "TIER_250": "250 customers per 24h",
- "TIER_1000": "1K customers per 24h",
- "TIER_1K": "1K customers per 24h",
- "TIER_10K": "10K customers per 24h",
- "TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h",
- "UNKNOWN": "Rating not available"
+ "TIER_250": "24시간당 고객 250명",
+ "TIER_1000": "24시간당 고객 1,000명",
+ "TIER_1K": "24시간당 고객 1,000명",
+ "TIER_10K": "24시간당 고객 10,000명",
+ "TIER_100K": "24시간당 고객 100,000명",
+ "TIER_UNLIMITED": "24시간당 무제한 고객",
+ "UNKNOWN": "등급을 사용할 수 없습니다"
},
"STATUSES": {
- "APPROVED": "Approved",
- "PENDING_REVIEW": "Pending Review",
- "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
- "REJECTED": "Rejected",
- "DECLINED": "Declined",
- "NON_EXISTS": "Non exists"
+ "APPROVED": "승인됨",
+ "PENDING_REVIEW": "검토 대기 중",
+ "AVAILABLE_WITHOUT_REVIEW": "검토 없이 사용 가능",
+ "REJECTED": "거부됨",
+ "DECLINED": "거절됨",
+ "NON_EXISTS": "존재하지 않음"
},
"MODES": {
- "SANDBOX": "Sandbox",
- "LIVE": "Live"
+ "SANDBOX": "샌드박스",
+ "LIVE": "라이브"
}
+ },
+ "WEBHOOK": {
+ "TITLE": "웹훅 구성",
+ "DESCRIPTION": "고객 메시지를 수신하려면 WhatsApp Business 계정에 웹훅 URL이 필요합니다",
+ "ACTION_REQUIRED": "웹훅이 구성되지 않았습니다",
+ "REGISTER_BUTTON": "웹훅 등록",
+ "REGISTER_SUCCESS": "웹훅이 성공적으로 등록되었습니다",
+ "REGISTER_ERROR": "웹훅 등록에 실패했습니다. 다시 시도하십시오.",
+ "CONFIGURED_SUCCESS": "웹훅이 성공적으로 구성되었습니다",
+ "URL_MISMATCH": "웹훅 URL이 일치하지 않습니다"
}
},
"SETTINGS": "설정",
"FEATURES": {
- "LABEL": "특징",
+ "LABEL": "기능",
"DISPLAY_FILE_PICKER": "위젯에 파일 선택기 표시",
"DISPLAY_EMOJI_PICKER": "위젯에 이모지 선택기 표시",
- "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget",
- "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot"
+ "ALLOW_END_CONVERSATION": "사용자가 위젯에서 대화를 종료할 수 있도록 허용",
+ "USE_INBOX_AVATAR_FOR_BOT": "봇에 받은 메시지함 이름 및 아바타 사용"
},
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "메신저 스크립트",
- "MESSENGER_SUB_HEAD": "이 버튼을 당신의 body 태그 안에 넣으세요.",
+ "MESSENGER_SUB_HEAD": "이 버튼을 body 태그 안에 넣으십시오.",
"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)"
+ "TITLE": "허용된 도메인",
+ "SUBTITLE": "쉼표로 구분된 와일드카드 또는 일반 도메인을 추가하십시오 (모두 허용하려면 비워 두십시오). 예: *.chatwoot.dev, chatwoot.com.",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
},
"INBOX_AGENTS": "에이전트",
"INBOX_AGENTS_SUB_TEXT": "받은 메시지함에서 에이전트 추가 또는 제거",
- "AGENT_ASSIGNMENT": "Conversation Assignment",
- "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
+ "AGENT_ASSIGNMENT": "대화 할당",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "대화 할당 설정 업데이트",
"UPDATE": "업데이트",
- "ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
- "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
+ "ENABLE_EMAIL_COLLECT_BOX": "이메일 수집 박스 사용",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "새 대화에서 이메일 수집 박스 사용 또는 사용 안 함",
"AUTO_ASSIGNMENT": "자동 할당 사용",
- "SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
- "ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
- "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "SENDER_NAME_SECTION": "이메일에 에이전트 이름 표시",
+ "SENDER_NAME_SECTION_TEXT": "이메일에 에이전트 이름 표시를 사용 또는 사용 안 함으로 설정합니다. 사용 안 함 시 비즈니스 이름이 표시됩니다.",
+ "ENABLE_CONTINUITY_VIA_EMAIL": "이메일을 통한 대화 연속성 사용",
+ "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "연락처 이메일 주소가 있는 경우 이메일을 통해 대화가 계속됩니다.",
+ "LOCK_TO_SINGLE_CONVERSATION": "단일 대화로 제한",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "이 받은 메시지함에서 동일한 연락처에 대한 다중 대화를 사용 또는 사용 안 함으로 설정",
"INBOX_UPDATE_TITLE": "받은 메시지함 설정",
"INBOX_UPDATE_SUB_TEXT": "받은 메시지함 설정 업데이트",
- "AUTO_ASSIGNMENT_SUB_TEXT": "받은 메시지에 추가된 에이전트에 새 대화를 자동으로 할당하거나 할당하지 않도록 설정하십시오.",
+ "AUTO_ASSIGNMENT_SUB_TEXT": "받은 메시지함에 추가된 에이전트에 새 대화를 자동으로 할당하거나 할당하지 않도록 설정하십시오.",
"HMAC_VERIFICATION": "사용자 신원 검증",
- "HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
- "HMAC_LINK_TO_DOCS": "You can read more here.",
- "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
- "HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
- "INBOX_IDENTIFIER": "Inbox Identifier",
- "INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
- "FORWARD_EMAIL_TITLE": "Forward to Email",
- "FORWARD_EMAIL_SUB_TEXT": "당신의 이메일 주소로 이메일 전달을 시작하십시오.",
- "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
- "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
- "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
- "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
+ "HMAC_DESCRIPTION": "이 키를 사용하여 사용자의 신원을 확인하는 데 사용할 수 있는 비밀 토큰을 생성할 수 있습니다.",
+ "HMAC_LINK_TO_DOCS": "자세한 내용은 여기에서 확인할 수 있습니다.",
+ "HMAC_MANDATORY_VERIFICATION": "사용자 신원 검증 강제 적용",
+ "HMAC_MANDATORY_DESCRIPTION": "사용 시, 검증할 수 없는 요청은 거부됩니다.",
+ "INBOX_IDENTIFIER": "받은 메시지함 식별자",
+ "INBOX_IDENTIFIER_SUB_TEXT": "여기에 표시된 `inbox_identifier` 토큰을 사용하여 API 클라이언트를 인증하십시오.",
+ "FORWARD_EMAIL_TITLE": "이메일 전달",
+ "FORWARD_EMAIL_SUB_TEXT": "다음 이메일 주소로 이메일 전달을 시작하십시오.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "이 설치에서 받은 메시지함으로의 이메일 전달이 현재 비활성화되어 있습니다. 이 기능을 사용하려면 관리자가 활성화해야 합니다. 관리자에게 문의하십시오.",
+ "ALLOW_MESSAGES_AFTER_RESOLVED": "대화 해결 후 메시지 허용",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "대화가 해결된 후에도 최종 사용자가 메시지를 보낼 수 있도록 허용합니다.",
+ "WHATSAPP_SECTION_SUBHEADER": "이 API Key는 WhatsApp API와의 통합에 사용됩니다.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "WhatsApp API와의 통합에 사용할 새 API key를 입력하십시오.",
"WHATSAPP_SECTION_TITLE": "API Key",
- "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
- "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "API Key 업데이트",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "여기에 새 API Key를 입력하십시오.",
"WHATSAPP_SECTION_UPDATE_BUTTON": "업데이트",
- "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
- "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
- "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
- "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
- "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
- "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
- "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp 임베디드 가입",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "이 받은 메시지함은 WhatsApp 임베디드 가입을 통해 연결되었습니다.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "이 받은 메시지함을 다시 구성하여 WhatsApp Business 설정을 업데이트할 수 있습니다.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "다시 구성",
+ "WHATSAPP_CONNECT_TITLE": "WhatsApp Business에 연결",
+ "WHATSAPP_CONNECT_SUBHEADER": "더 쉬운 관리를 위해 WhatsApp 임베디드 가입으로 업그레이드하십시오.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "향상된 기능과 더 쉬운 관리를 위해 이 받은 메시지함을 WhatsApp Business에 연결하십시오.",
"WHATSAPP_CONNECT_BUTTON": "연결",
- "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
- "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
- "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
- "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
- "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
- "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
- "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token",
- "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
- "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
- "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
- "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
- "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
- "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
+ "WHATSAPP_CONNECT_SUCCESS": "WhatsApp Business에 성공적으로 연결되었습니다!",
+ "WHATSAPP_CONNECT_ERROR": "WhatsApp Business에 연결하지 못했습니다. 다시 시도하십시오.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "WhatsApp Business가 성공적으로 다시 구성되었습니다!",
+ "WHATSAPP_RECONFIGURE_ERROR": "WhatsApp Business를 다시 구성하지 못했습니다. 다시 시도하십시오.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp 앱 ID가 구성되지 않았습니다. 관리자에게 문의하십시오.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp 구성 ID가 구성되지 않았습니다. 관리자에게 문의하십시오.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp 로그인이 취소되었습니다. 다시 시도하십시오.",
+ "WHATSAPP_WEBHOOK_TITLE": "웹훅 인증 토큰",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "이 토큰은 웹훅 엔드포인트의 진위를 확인하는 데 사용됩니다.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "템플릿 동기화",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "WhatsApp에서 메시지 템플릿을 수동으로 동기화하여 사용 가능한 템플릿을 업데이트하십시오.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "템플릿 동기화",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "템플릿 동기화가 성공적으로 시작되었습니다. 업데이트되기까지 몇 분 정도 걸릴 수 있습니다.",
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "대화 전 설문 설정 업데이트"
},
"HELP_CENTER": {
- "LABEL": "Help Center",
- "PLACEHOLDER": "Select Help Center",
- "SELECT_PLACEHOLDER": "Select Help Center",
- "REMOVE": "Remove Help Center",
- "SUB_TEXT": "Attach a Help Center with the inbox"
+ "LABEL": "도움말 센터",
+ "PLACEHOLDER": "도움말 센터 선택",
+ "SELECT_PLACEHOLDER": "도움말 센터 선택",
+ "NONE": "없음",
+ "REMOVE": "도움말 센터 제거",
+ "SUB_TEXT": "받은 메시지함에 도움말 센터 연결"
},
"AUTO_ASSIGNMENT": {
- "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit",
- "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
- "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
+ "MAX_ASSIGNMENT_LIMIT": "자동 할당 제한",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "0보다 큰 값을 입력하십시오.",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "이 받은 메시지함에서 에이전트에게 자동 할당될 수 있는 최대 대화 수를 제한합니다."
+ },
+ "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": "페이스북 연결이 만료되었습니다. 서비스를 계속하려면 페이스북 페이지를 다시 연결하십시오.",
+ "SUBTITLE": "Facebook 연결이 만료되었습니다. 서비스를 계속하려면 Facebook 페이지를 다시 연결하십시오.",
"MESSAGE_SUCCESS": "다시 연결 성공",
"MESSAGE_ERROR": "오류가 발생했습니다. 다시 시도하십시오."
},
"PRE_CHAT_FORM": {
"DESCRIPTION": "대화 전 설문을 통해, 실제 대화 전에 사용자 정보를 확보할 수 있습니다.",
- "SET_FIELDS": "Pre chat form fields",
+ "SET_FIELDS": "대화 전 설문 필드",
"SET_FIELDS_HEADER": {
- "FIELDS": "Fields",
- "LABEL": "Label",
- "PLACE_HOLDER": "Placeholder",
- "KEY": "Key",
- "TYPE": "Type",
- "REQUIRED": "Required"
+ "FIELDS": "필드",
+ "LABEL": "레이블",
+ "PLACE_HOLDER": "플레이스홀더",
+ "KEY": "키",
+ "TYPE": "유형",
+ "REQUIRED": "필수"
},
"ENABLE": {
"LABEL": "대화 전 설문 사용하기",
@@ -791,105 +856,121 @@
}
},
"PRE_CHAT_MESSAGE": {
- "LABEL": "Pre chat message",
- "PLACEHOLDER": "이 메시지가 대화전 설문과 함께 사용자에게 보여집니다."
+ "LABEL": "대화 전 메시지",
+ "PLACEHOLDER": "이 메시지가 대화 전 설문과 함께 사용자에게 보여집니다."
},
"REQUIRE_EMAIL": {
"LABEL": "대화 전 사용자들에게 이름과 이메일 주소를 요구합니다."
}
},
"CSAT": {
- "TITLE": "Enable CSAT",
- "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "TITLE": "CSAT 사용",
+ "SUBTITLE": "대화가 끝날 때 자동으로 CSAT 설문조사를 발송하여 고객이 지원 경험에 대해 어떻게 느끼는지 파악합니다. 만족도 추이를 추적하고 시간이 지남에 따라 개선할 영역을 식별합니다.",
"DISPLAY_TYPE": {
- "LABEL": "Display type"
+ "LABEL": "표시 유형"
},
"MESSAGE": {
"LABEL": "메시지",
- "PLACEHOLDER": "Please enter a message to show users with the form"
+ "PLACEHOLDER": "사용자에게 설문과 함께 표시할 메시지를 입력하십시오."
},
"BUTTON_TEXT": {
- "LABEL": "Button text",
- "PLACEHOLDER": "Please rate us"
+ "LABEL": "버튼 텍스트",
+ "PLACEHOLDER": "평가해 주십시오"
},
"LANGUAGE": {
"LABEL": "언어",
- "PLACEHOLDER": "Select template language"
+ "PLACEHOLDER": "템플릿 언어 선택"
},
"MESSAGE_PREVIEW": {
- "LABEL": "Message preview",
- "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ "LABEL": "메시지 미리보기",
+ "TOOLTIP": "WhatsApp 플랫폼에서 렌더링될 때 약간 다를 수 있습니다."
},
"TEMPLATE_STATUS": {
- "APPROVED": "Approved by WhatsApp",
- "PENDING": "Pending WhatsApp approval",
- "REJECTED": "Meta rejected the template",
- "DEFAULT": "Needs WhatsApp approval",
- "NOT_FOUND": "The template does not exist in the Meta platform."
+ "APPROVED": "WhatsApp에서 승인됨",
+ "PENDING": "WhatsApp 승인 대기 중",
+ "REJECTED": "Meta에서 템플릿을 거부했습니다",
+ "DEFAULT": "WhatsApp 승인이 필요합니다",
+ "NOT_FOUND": "Meta 플랫폼에 해당 템플릿이 존재하지 않습니다."
},
"TEMPLATE_CREATION": {
- "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
- "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ "SUCCESS_MESSAGE": "WhatsApp 템플릿이 성공적으로 생성되어 승인을 위해 전송되었습니다.",
+ "ERROR_MESSAGE": "WhatsApp 템플릿을 생성하지 못했습니다."
},
"TEMPLATE_UPDATE_DIALOG": {
- "TITLE": "Edit survey details",
- "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
- "CONFIRM": "Create new template",
- "CANCEL": "Go back"
+ "TITLE": "설문 세부 정보 편집",
+ "DESCRIPTION": "이전 템플릿을 삭제하고 WhatsApp 승인을 위해 다시 전송될 새 템플릿을 만듭니다.",
+ "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": "Survey rule",
- "DESCRIPTION_PREFIX": "Send the survey if the conversation",
- "DESCRIPTION_SUFFIX": "any of the labels",
+ "LABEL": "설문 규칙",
+ "DESCRIPTION_PREFIX": "대화가 다음 레이블 중 하나를",
+ "DESCRIPTION_SUFFIX": "경우 설문을 전송합니다",
"OPERATOR": {
- "CONTAINS": "포함된",
- "DOES_NOT_CONTAINS": "포함되지 않은"
+ "CONTAINS": "포함하는",
+ "DOES_NOT_CONTAINS": "포함하지 않는"
},
- "SELECT_PLACEHOLDER": "select labels"
+ "SELECT_PLACEHOLDER": "레이블 선택"
},
- "NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "NOTE": "참고: CSAT 설문조사는 대화당 한 번만 전송됩니다.",
+ "WHATSAPP_NOTE": "참고: 템플릿을 생성하여 WhatsApp 승인을 위해 전송합니다. 승인된 후 설문 규칙에 따라 대화당 한 번만 설문조사가 전송됩니다.",
"API": {
- "SUCCESS_MESSAGE": "CSAT settings updated successfully",
- "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ "SUCCESS_MESSAGE": "CSAT 설정이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "CSAT 설정을 업데이트할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"BUSINESS_HOURS": {
"TITLE": "영업시간 설정",
- "SUBTITLE": "라이브챗 위젯의 대화용 영업시간을 설정하세요.",
+ "SUBTITLE": "라이브챗 위젯의 대화용 영업시간을 설정하십시오.",
"WEEKLY_TITLE": "일주일 중 영업시간 설정",
"TIMEZONE_LABEL": "표준시간대 선택",
"UPDATE": "변경된 영업시간 적용",
"TOGGLE_AVAILABILITY": "이 받은 메시지함에 대해 영업시간 설정 적용",
- "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
- "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
+ "UNAVAILABLE_MESSAGE_LABEL": "방문자에게 표시할 부재 메시지",
+ "TOGGLE_HELP": "영업시간 설정을 사용하면 모든 에이전트가 오프라인이더라도 라이브 채팅 위젯에 근무 가능 시간이 표시됩니다. 근무 가능 시간 외에는 방문자에게 메시지와 대화 전 설문으로 안내할 수 있습니다.",
"DAY": {
+ "DAY": "요일",
+ "AVAILABILITY": "운영 시간",
+ "HOURS": "Hours",
"ENABLE": "아래 날짜에 대해 영업시간 설정 적용",
"UNAVAILABLE": "영업 종료",
- "HOURS": "시간",
"VALIDATION_ERROR": "영업시작 시간은 영업종료 시간보다 빨라야 합니다.",
"CHOOSE": "선택"
},
- "ALL_DAY": "All-Day"
+ "ALL_DAY": "종일"
},
"IMAP": {
"TITLE": "IMAP",
- "SUBTITLE": "Set your IMAP details",
- "NOTE_TEXT": "To enable SMTP, please configure IMAP.",
- "UPDATE": "Update IMAP settings",
- "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
+ "SUBTITLE": "IMAP 세부 정보를 설정하십시오.",
+ "NOTE_TEXT": "SMTP를 사용하려면 먼저 IMAP을 구성하십시오.",
+ "UPDATE": "IMAP 설정 업데이트",
+ "TOGGLE_AVAILABILITY": "이 받은 메시지함에 대해 IMAP 구성 사용",
+ "TOGGLE_HELP": "IMAP을 사용하면 이메일을 수신할 수 있습니다.",
"EDIT": {
- "SUCCESS_MESSAGE": "IMAP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update IMAP settings"
+ "SUCCESS_MESSAGE": "IMAP 설정이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "IMAP 설정을 업데이트할 수 없습니다."
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: imap.gmail.com)"
+ "LABEL": "주소",
+ "PLACE_HOLDER": "주소 (예: imap.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "포트",
+ "PLACE_HOLDER": "포트"
},
"LOGIN": {
"LABEL": "로그인",
@@ -899,29 +980,29 @@
"LABEL": "비밀번호",
"PLACE_HOLDER": "비밀번호"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "SSL 사용"
},
"MICROSOFT": {
"TITLE": "Microsoft",
- "SUBTITLE": "Reauthorize your MICROSOFT account"
+ "SUBTITLE": "Microsoft 계정을 재인증하십시오."
},
"SMTP": {
"TITLE": "SMTP",
- "SUBTITLE": "Set your SMTP details",
- "UPDATE": "Update SMTP settings",
- "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox",
- "TOGGLE_HELP": "Enabling SMTP will help the user to send email",
+ "SUBTITLE": "SMTP 세부 정보를 설정하십시오.",
+ "UPDATE": "SMTP 설정 업데이트",
+ "TOGGLE_AVAILABILITY": "이 받은 메시지함에 대해 SMTP 구성 사용",
+ "TOGGLE_HELP": "SMTP를 사용하면 이메일을 발송할 수 있습니다.",
"EDIT": {
- "SUCCESS_MESSAGE": "SMTP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update SMTP settings"
+ "SUCCESS_MESSAGE": "SMTP 설정이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "SMTP 설정을 업데이트할 수 없습니다."
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)"
+ "LABEL": "주소",
+ "PLACE_HOLDER": "주소 (예: smtp.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "포트",
+ "PLACE_HOLDER": "포트"
},
"LOGIN": {
"LABEL": "로그인",
@@ -932,23 +1013,23 @@
"PLACE_HOLDER": "비밀번호"
},
"DOMAIN": {
- "LABEL": "Domain",
- "PLACE_HOLDER": "Domain"
+ "LABEL": "도메인",
+ "PLACE_HOLDER": "도메인"
},
- "ENCRYPTION": "Encryption",
+ "ENCRYPTION": "암호화",
"SSL_TLS": "SSL/TLS",
"START_TLS": "STARTTLS",
- "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode",
- "AUTH_MECHANISM": "Authentication"
+ "OPEN_SSL_VERIFY_MODE": "Open SSL 인증 모드",
+ "AUTH_MECHANISM": "인증"
},
- "NOTE": "Note: ",
+ "NOTE": "참고: ",
"WIDGET_BUILDER": {
"WIDGET_OPTIONS": {
"AVATAR": {
- "LABEL": "Website Avatar",
+ "LABEL": "웹사이트 아바타",
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "SUCCESS_MESSAGE": "아바타가 성공적으로 삭제되었습니다.",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
}
@@ -956,53 +1037,54 @@
"WEBSITE_NAME": {
"LABEL": "웹사이트 이름",
"PLACE_HOLDER": "웹사이트 이름 입력 (예: Acme Inc)",
- "ERROR": "Please enter a valid website name"
+ "ERROR": "올바른 웹사이트 이름을 입력하십시오."
},
"WELCOME_HEADING": {
- "LABEL": "헤드라인 입력",
- "PLACE_HOLDER": "Hi there!"
+ "LABEL": "환영 헤드라인",
+ "PLACE_HOLDER": "안녕하세요!"
},
"WELCOME_TAGLINE": {
- "LABEL": "태그라인 입력",
+ "LABEL": "환영 태그라인",
"PLACE_HOLDER": "우리는 간단하게 우리와 연결되도록 합니다. 우리에게 무엇이든 물어보거나 피드백을 공유하십시오."
},
"REPLY_TIME": {
- "LABEL": "Reply Time",
+ "LABEL": "응답 시간",
"IN_A_FEW_MINUTES": "몇 분 후에",
"IN_A_FEW_HOURS": "몇 시간 안에",
- "IN_A_DAY": "며칠 안에"
+ "IN_A_DAY": "하루 안에"
},
"WIDGET_COLOR_LABEL": "위젯 색깔",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "버블",
+ "WIDGET_BUBBLE_POSITION_LABEL": "위젯 버블 위치",
+ "WIDGET_BUBBLE_TYPE_LABEL": "위젯 버블 유형",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "채팅하기",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "위젯 버블 런처 제목",
"PLACE_HOLDER": "채팅하기"
},
"UPDATE": {
- "BUTTON_TEXT": "Update Widget Settings",
+ "BUTTON_TEXT": "위젯 설정 업데이트",
"API": {
- "SUCCESS_MESSAGE": "Widget settings updated successfully",
- "ERROR_MESSAGE": "Unable to update widget settings"
+ "SUCCESS_MESSAGE": "위젯 설정이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "위젯 설정을 업데이트할 수 없습니다."
}
},
"WIDGET_VIEW_OPTION": {
- "PREVIEW": "Preview",
- "SCRIPT": "Script"
+ "PREVIEW": "미리보기",
+ "SCRIPT": "스크립트"
},
"WIDGET_BUBBLE_POSITION": {
- "LEFT": "Left",
- "RIGHT": "Right"
+ "LEFT": "왼쪽",
+ "RIGHT": "오른쪽"
},
"WIDGET_BUBBLE_TYPE": {
- "STANDARD": "Standard",
- "EXPANDED_BUBBLE": "Expanded Bubble"
+ "STANDARD": "표준",
+ "EXPANDED_BUBBLE": "확장 버블"
}
},
"WIDGET_SCREEN": {
- "DEFAULT": "Default",
- "CHAT": "Chat"
+ "DEFAULT": "기본",
+ "CHAT": "채팅"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "보통 몇 분 안에 응답",
@@ -1015,11 +1097,11 @@
},
"BODY": {
"TEAM_AVAILABILITY": {
- "ONLINE": "We are Online",
- "OFFLINE": "부재중"
+ "ONLINE": "현재 온라인입니다",
+ "OFFLINE": "현재 부재 중입니다"
},
- "USER_MESSAGE": "Hi",
- "AGENT_MESSAGE": "Hello"
+ "USER_MESSAGE": "안녕하세요",
+ "AGENT_MESSAGE": "안녕하십니까"
},
"BRANDING_TEXT": "Chatwoot 작동중",
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
@@ -1027,20 +1109,20 @@
"EMAIL_PROVIDERS": {
"MICROSOFT": {
"TITLE": "Microsoft",
- "DESCRIPTION": "Connect with Microsoft"
+ "DESCRIPTION": "Microsoft에 연결"
},
"GOOGLE": {
"TITLE": "Google",
- "DESCRIPTION": "Connect with Google"
+ "DESCRIPTION": "Google에 연결"
},
"OTHER_PROVIDERS": {
- "TITLE": "Other Providers",
- "DESCRIPTION": "Connect with Other Providers"
+ "TITLE": "기타 공급자",
+ "DESCRIPTION": "기타 공급자에 연결"
}
},
"CHANNELS": {
"MESSENGER": "Messenger",
- "WEB_WIDGET": "홈페이지",
+ "WEB_WIDGET": "웹사이트",
"TWITTER_PROFILE": "트위터",
"TWILIO_SMS": "Twilio SMS",
"WHATSAPP": "WhatsApp",
@@ -1051,7 +1133,7 @@
"API": "API 채널",
"INSTAGRAM": "Instagram",
"TIKTOK": "TikTok",
- "VOICE": "Voice"
+ "VOICE": "음성"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/integrationApps.json b/app/javascript/dashboard/i18n/locale/ko/integrationApps.json
index cf0cd9fec..81f8449ff 100644
--- a/app/javascript/dashboard/i18n/locale/ko/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ko/integrationApps.json
@@ -1,36 +1,40 @@
{
"INTEGRATION_APPS": {
- "FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
- "HEADER": "Applications",
+ "FETCHING": "통합을 가져오는 중",
+ "NO_HOOK_CONFIGURED": "이 계정에 구성된 {integrationId} 통합이 없습니다.",
+ "HEADER": "애플리케이션",
+ "COUNT": "{n}개의 통합 | {n}개의 통합",
+ "SEARCH_PLACEHOLDER": "검색...",
+ "NO_RESULTS": "검색과 일치하는 결과가 없습니다",
"STATUS": {
"ENABLED": "사용함",
"DISABLED": "사용 안 함"
},
"CONFIGURE": "구성",
- "ADD_BUTTON": "Add a new hook",
+ "ADD_BUTTON": "새 훅 추가",
"DELETE": {
"TITLE": {
- "INBOX": "Confirm deletion",
- "ACCOUNT": "Disconnect"
+ "INBOX": "삭제 확인",
+ "ACCOUNT": "연결 해제"
},
"MESSAGE": {
- "INBOX": "Are you sure to delete?",
- "ACCOUNT": "Are you sure to disconnect?"
+ "INBOX": "삭제하시겠습니까?",
+ "ACCOUNT": "연결을 해제하시겠습니까?"
},
"CONFIRM_BUTTON_TEXT": {
- "INBOX": "Yes, Delete",
- "ACCOUNT": "Yes, Disconnect"
+ "INBOX": "예, 삭제합니다",
+ "ACCOUNT": "예, 연결을 해제합니다"
},
"CANCEL_BUTTON_TEXT": "취소",
"API": {
- "SUCCESS_MESSAGE": "Hook deleted successfully",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "훅이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"LIST": {
- "FETCHING": "Fetching integration hooks",
+ "FETCHING": "통합 훅을 가져오는 중",
"INBOX": "받은 메시지함",
+ "ACTIONS": "액션",
"DELETE": {
"BUTTON_TEXT": "삭제"
}
@@ -38,25 +42,25 @@
"ADD": {
"FORM": {
"INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox"
+ "LABEL": "받은 메시지함 선택",
+ "PLACEHOLDER": "받은 메시지함 선택"
},
"SUBMIT": "만들기",
"CANCEL": "취소"
},
"API": {
- "SUCCESS_MESSAGE": "Integration hook added successfully",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "통합 훅이 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"CONNECT": {
"BUTTON_TEXT": "연결"
},
"DISCONNECT": {
- "BUTTON_TEXT": "Disconnect"
+ "BUTTON_TEXT": "연결 해제"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
+ "DIALOGFLOW": "Dialogflow는 대화형 인터페이스를 구축하기 위한 자연어 처리 플랫폼입니다. {installationName}와(과) 통합하면 봇이 먼저 문의를 처리하고 필요할 때 에이전트에게 전달할 수 있습니다. 리드 평가에 도움이 되고 FAQ 응답을 통해 에이전트 업무량을 줄여줍니다. Dialogflow를 추가하려면 Google Console에서 서비스 계정을 만들고 자격 증명을 공유하십시오. 자세한 내용은 문서를 참조하십시오"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/integrations.json b/app/javascript/dashboard/i18n/locale/ko/integrations.json
index 16add473d..ea3f5202e 100644
--- a/app/javascript/dashboard/i18n/locale/ko/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ko/integrations.json
@@ -1,417 +1,461 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
- "TITLE": "Delete Shopify Integration",
- "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ "TITLE": "Shopify 연동 삭제",
+ "MESSAGE": "Shopify 연동을 삭제하시겠습니까?"
},
"STORE_URL": {
- "TITLE": "Connect Shopify Store",
- "LABEL": "Store URL",
+ "TITLE": "Shopify 스토어 연결",
+ "LABEL": "스토어 URL",
"PLACEHOLDER": "your-store.myshopify.com",
- "HELP": "Enter your Shopify store's myshopify.com URL",
+ "HELP": "Shopify 스토어의 myshopify.com URL을 입력하십시오",
"CANCEL": "취소",
- "SUBMIT": "Connect Store"
+ "SUBMIT": "스토어 연결"
},
- "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ "ERROR": "Shopify에 연결하는 중 오류가 발생했습니다. 다시 시도하시거나 문제가 지속되면 지원팀에 문의하십시오."
},
"HEADER": "통합",
- "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
- "LEARN_MORE": "Learn more about integrations",
- "LOADING": "Fetching integrations",
+ "DESCRIPTION": "Chatwoot은 다양한 도구 및 서비스와 통합하여 팀의 효율성을 향상시킵니다. 아래 목록을 탐색하여 자주 사용하는 앱을 구성하십시오.",
+ "LEARN_MORE": "통합에 대해 자세히 알아보기",
+ "LOADING": "통합을 가져오는 중",
+ "SEARCH_PLACEHOLDER": "통합 검색...",
+ "NO_RESULTS": "검색과 일치하는 통합이 없습니다",
"CAPTAIN": {
- "DISABLED": "Captain is not enabled on your account.",
- "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
- "LOADING_CONSOLE": "Loading Captain Console...",
- "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ "DISABLED": "계정에서 Captain이 활성화되어 있지 않습니다.",
+ "CLICK_HERE_TO_CONFIGURE": "여기를 클릭하여 구성하십시오",
+ "LOADING_CONSOLE": "Captain 콘솔을 로드하는 중...",
+ "FAILED_TO_LOAD_CONSOLE": "Captain 콘솔을 로드하지 못했습니다. 페이지를 새로고침한 후 다시 시도하십시오."
},
"WEBHOOK": {
- "SUBSCRIBED_EVENTS": "Subscribed Events",
- "LEARN_MORE": "Learn more about webhooks",
+ "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": "웹훅 이벤트는 Chatwoot 계정에서 일어나는 일에 대한 실시간 정보를 제공합니다. 콜백을 구성하려면 유효한 URL을 입력하십시오.",
+ "DESC": "webhook 이벤트는 Chatwoot 계정에서 일어나는 일에 대한 실시간 정보를 제공합니다. 콜백을 구성하려면 유효한 URL을 입력하십시오.",
"SUBSCRIPTIONS": {
- "LABEL": "Events",
+ "LABEL": "이벤트",
"EVENTS": {
- "CONVERSATION_CREATED": "Conversation Created",
- "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed",
- "CONVERSATION_UPDATED": "Conversation Updated",
- "MESSAGE_CREATED": "Message created",
- "MESSAGE_UPDATED": "Message updated",
- "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
- "CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated",
- "CONVERSATION_TYPING_ON": "Conversation Typing On",
- "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
+ "CONVERSATION_CREATED": "대화 생성됨",
+ "CONVERSATION_STATUS_CHANGED": "대화 상태 변경됨",
+ "CONVERSATION_UPDATED": "대화 업데이트됨",
+ "MESSAGE_CREATED": "메시지 생성됨",
+ "MESSAGE_UPDATED": "메시지 업데이트됨",
+ "WEBWIDGET_TRIGGERED": "사용자가 실시간 채팅 위젯을 열었습니다",
+ "CONTACT_CREATED": "연락처 생성됨",
+ "CONTACT_UPDATED": "연락처 업데이트됨",
+ "CONVERSATION_TYPING_ON": "대화 입력 중",
+ "CONVERSATION_TYPING_OFF": "대화 입력 중지"
}
},
"NAME": {
- "LABEL": "Webhook Name",
- "PLACEHOLDER": "Enter the name of the webhook"
+ "LABEL": "webhook 이름",
+ "PLACEHOLDER": "webhook 이름을 입력하십시오"
},
"END_POINT": {
- "LABEL": "웹훅 URL",
- "PLACEHOLDER": "Example: {webhookExampleURL}",
+ "LABEL": "webhook URL",
+ "PLACEHOLDER": "예: {webhookExampleURL}",
"ERROR": "올바른 URL을 입력하십시오."
},
- "EDIT_SUBMIT": "Update webhook",
- "ADD_SUBMIT": "웹훅 만들기"
+ "EDIT_SUBMIT": "webhook 업데이트",
+ "ADD_SUBMIT": "webhook 만들기"
},
- "TITLE": "웹훅",
+ "TITLE": "webhook",
"CONFIGURE": "구성",
- "HEADER": "웹훅 설정",
- "HEADER_BTN_TXT": "새 웹훅 추가",
- "LOADING": "첨부된 웹훅을 가져오는 중",
- "SEARCH_404": "이 쿼리와 일치하는 항목이 없음",
- "SIDEBAR_TXT": "
라벨
라벨은 대화를 분류하고 우선순위를 정하는 데 도움이 된다. 사이드패널에서 대화에 라벨을 할당할 수 있다.
라벨은 계정에 연결되며 조직에서 사용자 정의 워크플로우를 만드는 데 사용할 수 있다. 라벨에 사용자 정의 색상을 지정할 수 있으며, 라벨을 쉽게 식별할 수 있다. 사이드바에 라벨을 표시하여 대화를 쉽게 필터링할 수 있다.
",
+ "HEADER": "webhook 설정",
+ "HEADER_BTN_TXT": "새 webhook 추가",
+ "LOADING": "연결된 webhook을 가져오는 중",
+ "SEARCH_404": "이 쿼리와 일치하는 항목이 없습니다",
+ "SIDEBAR_TXT": "
webhook
webhook은 모든 계정에 대해 정의할 수 있는 HTTP 콜백입니다. Chatwoot에서 메시지 생성과 같은 이벤트에 의해 트리거됩니다. 이 계정에 대해 하나 이상의 webhook을 만들 수 있습니다.
webhook을 만들려면 새 webhook 추가 버튼을 클릭하십시오. 삭제 버튼을 클릭하여 기존 webhook을 제거할 수도 있습니다.
",
"LIST": {
- "404": "이 계정에 구성된 웹훅이 없음.",
- "TITLE": "웹훅 관리",
+ "404": "이 계정에 구성된 webhook이 없습니다.",
+ "TITLE": "webhook 관리",
"TABLE_HEADER": {
- "WEBHOOK_ENDPOINT": "웹훅 엔드포인트",
+ "WEBHOOK_ENDPOINT": "webhook 엔드포인트",
"ACTIONS": "액션"
}
},
"EDIT": {
"BUTTON_TEXT": "수정",
- "TITLE": "Edit webhook",
+ "TITLE": "webhook 수정",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration updated successfully",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "webhook 구성이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"ADD": {
"CANCEL": "취소",
- "TITLE": "새 웹훅 추가",
+ "TITLE": "새 webhook 추가",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration added successfully",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "webhook 구성이 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"API": {
- "SUCCESS_MESSAGE": "웹훅이 성공적으로 삭제됨",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "webhook이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
},
"CONFIRM": {
"TITLE": "삭제 확인",
- "MESSAGE": "Are you sure to delete the webhook? ({webhookURL})",
- "YES": "예, 삭제합니다. ",
- "NO": "아니요, 유지합니다."
+ "MESSAGE": "webhook을 삭제하시겠습니까? ({webhookURL})",
+ "YES": "예, 삭제합니다 ",
+ "NO": "아니요, 유지합니다"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "삭제",
"DELETE_CONFIRMATION": {
- "TITLE": "Delete the integration",
- "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace."
+ "TITLE": "연동 삭제",
+ "MESSAGE": "연동을 삭제하시겠습니까? 삭제하면 Slack 워크스페이스의 대화에 대한 액세스가 사라집니다."
},
"HELP_TEXT": {
- "TITLE": "Using Slack Integration",
- "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
- "SELECTED": "selected"
+ "TITLE": "Slack 연동 사용 방법",
+ "BODY": "이 연동을 통해 모든 수신 대화가 Slack 워크스페이스의 ***{selectedChannelName}*** 채널에 동기화됩니다. 채널 내에서 바로 모든 고객 대화를 관리할 수 있으며 메시지를 놓치지 않습니다.\n\n이 연동의 주요 기능은 다음과 같습니다:\n\n**Slack 내에서 대화에 응답하기:** ***{selectedChannelName}*** Slack 채널에서 대화에 응답하려면 메시지를 입력하고 스레드로 전송하십시오. 이렇게 하면 Chatwoot을 통해 고객에게 응답이 생성됩니다. 매우 간단합니다!\n\n **비공개 메모 작성:** 답장 대신 비공개 메모를 작성하려면 메시지를 ***`note:`***로 시작하십시오. 이렇게 하면 메시지가 비공개로 유지되며 고객에게 표시되지 않습니다.\n\n**상담원 프로필 연결:** Slack에서 답장한 사람이 동일한 이메일로 Chatwoot에 상담원 프로필을 가지고 있는 경우, 답장이 자동으로 해당 상담원 프로필과 연결됩니다. 이를 통해 누가 언제 무엇을 말했는지 쉽게 추적할 수 있습니다. 반면 답장한 사람에게 연결된 상담원 프로필이 없는 경우, 고객에게는 봇 프로필에서 보낸 것으로 표시됩니다.",
+ "SELECTED": "선택됨"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
+ "OPTION_LABEL": "채널 선택",
"UPDATE": "업데이트",
- "BUTTON_TEXT": "Connect channel",
- "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
- "ATTENTION_REQUIRED": "Attention required",
- "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
+ "BUTTON_TEXT": "채널 연결",
+ "DESCRIPTION": "Slack 워크스페이스가 Chatwoot에 연결되었습니다. 그러나 현재 연동이 비활성 상태입니다. 연동을 활성화하고 채널을 Chatwoot에 연결하려면 아래 버튼을 클릭하십시오.\n\n**참고:** 비공개 채널을 연결하려는 경우, 이 단계를 진행하기 전에 Chatwoot 앱을 Slack 채널에 추가하십시오.",
+ "ATTENTION_REQUIRED": "주의가 필요합니다",
+ "EXPIRED": "Slack 연동이 만료되었습니다. Slack에서 메시지를 계속 수신하려면 연동을 삭제하고 워크스페이스를 다시 연결하십시오."
},
- "UPDATE_ERROR": "There was an error updating the integration, please try again",
- "UPDATE_SUCCESS": "The channel is connected successfully",
- "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again"
+ "UPDATE_ERROR": "연동을 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "UPDATE_SUCCESS": "채널이 성공적으로 연결되었습니다",
+ "FAILED_TO_FETCH_CHANNELS": "Slack에서 채널을 가져오는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"DYTE": {
- "CLICK_HERE_TO_JOIN": "Click here to join",
- "LEAVE_THE_ROOM": "Leave the room",
- "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer",
- "JOIN_ERROR": "There was an error joining the call, please try again",
- "CREATE_ERROR": "There was an error creating a meeting link, please try again"
+ "CLICK_HERE_TO_JOIN": "여기를 클릭하여 참여하십시오",
+ "LEAVE_THE_ROOM": "방 나가기",
+ "START_VIDEO_CALL_HELP_TEXT": "고객과 새 영상 통화를 시작합니다",
+ "JOIN_ERROR": "통화에 참여하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "CREATE_ERROR": "회의 링크를 생성하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"OPEN_AI": {
- "AI_ASSIST": "AI Assist",
- "WITH_AI": " {option} with AI ",
+ "AI_ASSIST": "AI 어시스트",
+ "WITH_AI": " AI로 {option} ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
- "SUMMARIZE": "Summarize",
- "REPHRASE": "Improve Writing",
- "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
- "SHORTEN": "Shorten",
- "EXPAND": "Expand",
- "MAKE_FRIENDLY": "Change message tone to friendly",
- "MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "REPLY_SUGGESTION": "답장 제안",
+ "SUMMARIZE": "요약",
+ "REPHRASE": "문장 개선",
+ "FIX_SPELLING_GRAMMAR": "맞춤법 및 문법 수정",
+ "SHORTEN": "줄이기",
+ "EXPAND": "확장",
+ "MAKE_FRIENDLY": "메시지 톤을 친근하게 변경",
+ "MAKE_FORMAL": "격식체 사용",
+ "SIMPLIFY": "간소화",
+ "CONFIDENT": "자신감 있는 톤 사용",
+ "PROFESSIONAL": "전문적인 톤 사용",
+ "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": "Draft content",
- "GENERATED_TITLE": "Generated content",
- "AI_WRITING": "AI is writing",
+ "DRAFT_TITLE": "초안 내용",
+ "GENERATED_TITLE": "생성된 내용",
+ "AI_WRITING": "AI가 작성 중입니다",
"BUTTONS": {
- "APPLY": "Use this suggestion",
+ "APPLY": "이 제안 사용",
"CANCEL": "취소"
}
},
"CTA_MODAL": {
- "TITLE": "Integrate with OpenAI",
- "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
- "KEY_PLACEHOLDER": "Enter your OpenAI API key",
+ "TITLE": "OpenAI와 통합",
+ "DESC": "OpenAI의 GPT 모델을 사용하여 대시보드에 고급 AI 기능을 도입하십시오. 시작하려면 OpenAI 계정의 API 키를 입력하십시오.",
+ "KEY_PLACEHOLDER": "OpenAI API 키를 입력하십시오",
"BUTTONS": {
- "NEED_HELP": "Need help?",
- "DISMISS": "Dismiss",
- "FINISH": "Finish Setup"
+ "NEED_HELP": "도움이 필요하십니까?",
+ "DISMISS": "닫기",
+ "FINISH": "설정 완료"
},
- "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
- "SUCCESS_MESSAGE": "OpenAI integration setup successfully"
+ "DISMISS_MESSAGE": "OpenAI 연동은 원하실 때 언제든지 설정할 수 있습니다.",
+ "SUCCESS_MESSAGE": "OpenAI 연동이 성공적으로 설정되었습니다"
},
- "TITLE": "Improve With AI",
- "SUMMARY_TITLE": "Summary with AI",
- "REPLY_TITLE": "Reply suggestion with AI",
- "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.",
+ "TITLE": "AI로 개선",
+ "SUMMARY_TITLE": "AI 요약",
+ "REPLY_TITLE": "AI 답장 제안",
+ "SUBTITLE": "현재 초안을 기반으로 AI를 사용하여 개선된 답장이 생성됩니다.",
"TONE": {
- "TITLE": "Tone",
+ "TITLE": "톤",
"OPTIONS": {
- "PROFESSIONAL": "Professional",
- "FRIENDLY": "Friendly"
+ "PROFESSIONAL": "전문적",
+ "FRIENDLY": "친근한"
}
},
"BUTTONS": {
- "GENERATE": "Generate",
- "GENERATING": "Generating...",
+ "GENERATE": "생성",
+ "GENERATING": "생성 중...",
"CANCEL": "취소"
},
- "GENERATE_ERROR": "There was an error processing the content, please try again"
+ "GENERATE_ERROR": "내용을 처리하는 중 오류가 발생했습니다. OpenAI API 키를 확인한 후 다시 시도하십시오."
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"API": {
- "SUCCESS_MESSAGE": "통합이 성공적으로 삭제됨."
+ "SUCCESS_MESSAGE": "통합이 성공적으로 삭제되었습니다"
}
},
"CONNECT": {
"BUTTON_TEXT": "연결"
},
"DASHBOARD_APPS": {
- "TITLE": "Dashboard Apps",
- "HEADER_BTN_TXT": "Add a new dashboard app",
- "SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
- "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
- "LEARN_MORE": "Learn more about Dashboard Apps",
+ "TITLE": "대시보드 앱",
+ "HEADER_BTN_TXT": "새 대시보드 앱 추가",
+ "SIDEBAR_TXT": "
대시보드 앱
대시보드 앱을 사용하면 조직이 Chatwoot 대시보드 내에 애플리케이션을 임베드하여 고객 지원 상담원에게 컨텍스트를 제공할 수 있습니다. 이 기능을 사용하면 독립적으로 애플리케이션을 만들고 대시보드 내에 임베드하여 사용자 정보, 주문 내역 또는 이전 결제 내역을 제공할 수 있습니다.
Chatwoot의 대시보드를 사용하여 애플리케이션을 임베드하면, 애플리케이션은 대화 및 연락처 컨텍스트를 윈도우 이벤트로 수신합니다. 컨텍스트를 수신하려면 페이지에서 메시지 이벤트에 대한 리스너를 구현하십시오.
새 대시보드 앱을 추가하려면 '새 대시보드 앱 추가' 버튼을 클릭하십시오.
",
+ "DESCRIPTION": "대시보드 앱을 사용하면 조직이 대시보드 내에 애플리케이션을 임베드하여 고객 지원 상담원에게 컨텍스트를 제공할 수 있습니다. 이 기능을 사용하면 독립적으로 애플리케이션을 만들고 임베드하여 사용자 정보, 주문 내역 또는 이전 결제 내역을 제공할 수 있습니다.",
+ "LEARN_MORE": "대시보드 앱에 대해 자세히 알아보기",
+ "COUNT": "{n}개의 대시보드 앱 | {n}개의 대시보드 앱",
+ "SEARCH_PLACEHOLDER": "대시보드 앱 검색...",
+ "NO_RESULTS": "검색과 일치하는 대시보드 앱이 없습니다",
"LIST": {
- "404": "There are no dashboard apps configured on this account yet",
- "LOADING": "Fetching dashboard apps...",
+ "404": "이 계정에 구성된 대시보드 앱이 아직 없습니다",
+ "LOADING": "대시보드 앱을 가져오는 중...",
"TABLE_HEADER": {
"NAME": "이름",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "엔드포인트",
+ "ACTIONS": "액션"
},
- "EDIT_TOOLTIP": "Edit app",
- "DELETE_TOOLTIP": "Delete app"
+ "EDIT_TOOLTIP": "앱 수정",
+ "DELETE_TOOLTIP": "앱 삭제"
},
"FORM": {
"TITLE_LABEL": "이름",
- "TITLE_PLACEHOLDER": "Enter a name for your dashboard app",
- "TITLE_ERROR": "A name for the dashboard app is required",
- "URL_LABEL": "Endpoint",
- "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted",
- "URL_ERROR": "A valid URL is required"
+ "TITLE_PLACEHOLDER": "대시보드 앱의 이름을 입력하십시오",
+ "TITLE_ERROR": "대시보드 앱의 이름은 필수입니다",
+ "URL_LABEL": "엔드포인트",
+ "URL_PLACEHOLDER": "앱이 호스팅되는 엔드포인트 URL을 입력하십시오",
+ "URL_ERROR": "유효한 URL이 필요합니다"
},
"CREATE": {
- "HEADER": "Add a new dashboard app",
+ "HEADER": "새 대시보드 앱 추가",
"FORM_SUBMIT": "보내기",
"FORM_CANCEL": "취소",
- "API_SUCCESS": "Dashboard app configured successfully",
- "API_ERROR": "We couldn't create an app. Please try again later"
+ "API_SUCCESS": "대시보드 앱이 성공적으로 구성되었습니다",
+ "API_ERROR": "앱을 만들 수 없었습니다. 나중에 다시 시도하십시오."
},
"UPDATE": {
- "HEADER": "Edit dashboard app",
+ "HEADER": "대시보드 앱 수정",
"FORM_SUBMIT": "업데이트",
"FORM_CANCEL": "취소",
- "API_SUCCESS": "Dashboard app updated successfully",
- "API_ERROR": "We couldn't update the app. Please try again later"
+ "API_SUCCESS": "대시보드 앱이 성공적으로 업데이트되었습니다",
+ "API_ERROR": "앱을 업데이트할 수 없었습니다. 나중에 다시 시도하십시오."
},
"DELETE": {
- "CONFIRM_YES": "Yes, delete it",
- "CONFIRM_NO": "No, keep it",
- "TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - {appName}?",
- "API_SUCCESS": "Dashboard app deleted successfully",
- "API_ERROR": "We couldn't delete the app. Please try again later"
+ "CONFIRM_YES": "예, 삭제합니다",
+ "CONFIRM_NO": "아니요, 유지합니다",
+ "TITLE": "삭제 확인",
+ "MESSAGE": "앱을 삭제하시겠습니까 - {appName}?",
+ "API_SUCCESS": "대시보드 앱이 성공적으로 삭제되었습니다",
+ "API_ERROR": "앱을 삭제할 수 없었습니다. 나중에 다시 시도하십시오."
}
},
"LINEAR": {
- "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
- "LOADING": "Fetching linear issues...",
- "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Linear 이슈 생성/연결",
+ "LOADING": "Linear 이슈를 가져오는 중...",
+ "LOADING_ERROR": "Linear 이슈를 가져오는 중 오류가 발생했습니다. 다시 시도하십시오.",
"CREATE": "만들기",
"LINK": {
- "SEARCH": "Search issues",
- "SELECT": "Select issue",
- "TITLE": "링크",
- "EMPTY_LIST": "No linear issues found",
- "LOADING": "Loading",
- "ERROR": "There was an error fetching the linear issues, please try again",
- "LINK_SUCCESS": "Issue linked successfully",
- "LINK_ERROR": "There was an error linking the issue, please try again",
- "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ "SEARCH": "이슈 검색",
+ "SELECT": "이슈 선택",
+ "TITLE": "연결",
+ "EMPTY_LIST": "Linear 이슈를 찾을 수 없습니다",
+ "LOADING": "로딩 중",
+ "ERROR": "Linear 이슈를 가져오는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "LINK_SUCCESS": "이슈가 성공적으로 연결되었습니다",
+ "LINK_ERROR": "이슈를 연결하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "LINK_TITLE": "대화 (#{conversationId}) - {name}"
},
"ADD_OR_LINK": {
- "TITLE": "Create/link linear issue",
- "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "TITLE": "Linear 이슈 생성/연결",
+ "DESCRIPTION": "대화에서 Linear 이슈를 생성하거나 기존 이슈를 연결하여 원활하게 추적할 수 있습니다.",
"FORM": {
"TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Enter title",
- "REQUIRED_ERROR": "Title is required"
+ "LABEL": "제목",
+ "PLACEHOLDER": "제목을 입력하십시오",
+ "REQUIRED_ERROR": "제목은 필수입니다"
},
"DESCRIPTION": {
- "LABEL": "내용",
- "PLACEHOLDER": "Enter description"
+ "LABEL": "설명",
+ "PLACEHOLDER": "설명을 입력하십시오"
},
"TEAM": {
- "LABEL": "Team",
+ "LABEL": "팀",
"PLACEHOLDER": "팀 선택",
- "SEARCH": "Search team",
- "REQUIRED_ERROR": "Team is required"
+ "SEARCH": "팀 검색",
+ "REQUIRED_ERROR": "팀은 필수입니다"
},
"ASSIGNEE": {
- "LABEL": "Assignee",
- "PLACEHOLDER": "Select assignee",
- "SEARCH": "Search assignee"
+ "LABEL": "담당자",
+ "PLACEHOLDER": "담당자 선택",
+ "SEARCH": "담당자 검색"
},
"PRIORITY": {
- "LABEL": "Priority",
- "PLACEHOLDER": "Select priority",
- "SEARCH": "Search priority"
+ "LABEL": "우선순위",
+ "PLACEHOLDER": "우선순위 선택",
+ "SEARCH": "우선순위 검색"
},
"LABEL": {
- "LABEL": "Label",
- "PLACEHOLDER": "Select label",
- "SEARCH": "Search label"
+ "LABEL": "라벨",
+ "PLACEHOLDER": "라벨 선택",
+ "SEARCH": "라벨 검색"
},
"STATUS": {
"LABEL": "상태",
- "PLACEHOLDER": "Select status",
- "SEARCH": "Search status"
+ "PLACEHOLDER": "상태 선택",
+ "SEARCH": "상태 검색"
},
"PROJECT": {
- "LABEL": "Project",
- "PLACEHOLDER": "Select project",
- "SEARCH": "Search project"
+ "LABEL": "프로젝트",
+ "PLACEHOLDER": "프로젝트 선택",
+ "SEARCH": "프로젝트 검색"
}
},
"CREATE": "만들기",
"CANCEL": "취소",
- "CREATE_SUCCESS": "Issue created successfully",
- "CREATE_ERROR": "There was an error creating the issue, please try again",
- "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
- "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ "CREATE_SUCCESS": "이슈가 성공적으로 생성되었습니다",
+ "CREATE_ERROR": "이슈를 생성하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "LOADING_TEAM_ERROR": "팀을 가져오는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "LOADING_TEAM_ENTITIES_ERROR": "팀 엔티티를 가져오는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"ISSUE": {
"STATUS": "상태",
- "PRIORITY": "Priority",
- "ASSIGNEE": "Assignee",
+ "PRIORITY": "우선순위",
+ "ASSIGNEE": "담당자",
"LABELS": "라벨",
- "CREATED_AT": "Created at {createdAt}"
+ "CREATED_AT": "생성일: {createdAt}"
},
"UNLINK": {
- "TITLE": "Unlink",
- "SUCCESS": "Issue unlinked successfully",
- "ERROR": "There was an error unlinking the issue, please try again"
+ "TITLE": "연결 해제",
+ "SUCCESS": "이슈 연결이 성공적으로 해제되었습니다",
+ "ERROR": "이슈 연결을 해제하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
- "NO_LINKED_ISSUES": "No linked issues found",
+ "NO_LINKED_ISSUES": "연결된 이슈가 없습니다",
"DELETE": {
- "TITLE": "Are you sure you want to delete the integration?",
- "MESSAGE": "Are you sure you want to delete the integration?",
- "CONFIRM": "Yes, delete",
+ "TITLE": "연동을 삭제하시겠습니까?",
+ "MESSAGE": "연동을 삭제하시겠습니까?",
+ "CONFIRM": "예, 삭제합니다",
"CANCEL": "취소"
},
"CTA": {
- "TITLE": "Connect to Linear",
- "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
- "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
- "BUTTON_TEXT": "Connect Linear workspace"
+ "TITLE": "Linear에 연결",
+ "AGENT_DESCRIPTION": "Linear 워크스페이스가 연결되어 있지 않습니다. 이 연동을 사용하려면 관리자에게 워크스페이스 연결을 요청하십시오.",
+ "DESCRIPTION": "Linear 워크스페이스가 연결되어 있지 않습니다. 이 연동을 사용하려면 아래 버튼을 클릭하여 워크스페이스를 연결하십시오.",
+ "BUTTON_TEXT": "Linear 워크스페이스 연결"
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
- "TITLE": "Are you sure you want to delete the Notion integration?",
- "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
- "CONFIRM": "Yes, delete",
+ "TITLE": "Notion 연동을 삭제하시겠습니까?",
+ "MESSAGE": "이 연동을 삭제하면 Notion 워크스페이스에 대한 액세스가 제거되고 모든 관련 기능이 중지됩니다.",
+ "CONFIRM": "예, 삭제합니다",
"CANCEL": "취소"
}
}
},
"CAPTAIN": {
"NAME": "Captain",
- "HEADER_KNOW_MORE": "Know more",
+ "HEADER_KNOW_MORE": "자세히 알아보기",
"ASSISTANT_SWITCHER": {
- "ASSISTANTS": "Assistants",
- "SWITCH_ASSISTANT": "Switch between assistants",
- "NEW_ASSISTANT": "Create Assistant",
- "EMPTY_LIST": "No assistants found, please create one to get started"
+ "ASSISTANTS": "어시스턴트",
+ "SWITCH_ASSISTANT": "어시스턴트 간 전환",
+ "NEW_ASSISTANT": "어시스턴트 만들기",
+ "EMPTY_LIST": "어시스턴트가 없습니다. 시작하려면 하나를 만드십시오."
},
"COPILOT": {
"TITLE": "Copilot",
- "TRY_THESE_PROMPTS": "Try these prompts",
- "PANEL_TITLE": "Get started with Copilot",
- "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
+ "TRY_THESE_PROMPTS": "다음 프롬프트를 시도하십시오",
+ "PANEL_TITLE": "Copilot 시작하기",
+ "KICK_OFF_MESSAGE": "빠른 요약이 필요하거나 이전 대화를 확인하거나 더 나은 답장을 작성하고 싶으신가요? Copilot이 도와드립니다.",
"SEND_MESSAGE": "메시지 보내기...",
- "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
- "LOADER": "Captain is thinking",
+ "EMPTY_MESSAGE": "응답을 생성하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "LOADER": "Captain이 생각 중입니다",
"YOU": "나",
- "USE": "Use this",
- "RESET": "Reset",
- "SHOW_STEPS": "Show steps",
- "SELECT_ASSISTANT": "Select Assistant",
+ "USE": "사용하기",
+ "RESET": "초기화",
+ "SHOW_STEPS": "단계 표시",
+ "SELECT_ASSISTANT": "어시스턴트 선택",
"PROMPTS": {
"SUMMARIZE": {
- "LABEL": "Summarize this conversation",
- "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ "LABEL": "이 대화 요약",
+ "CONTENT": "고객과 지원 상담원 간에 논의된 주요 사항을 요약하십시오. 고객의 우려 사항, 질문, 지원 상담원이 제공한 솔루션 또는 응답을 포함하십시오."
},
"SUGGEST": {
- "LABEL": "Suggest an answer",
- "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ "LABEL": "답변 제안",
+ "CONTENT": "고객의 문의를 분석하고 우려 사항이나 질문에 효과적으로 대응하는 답변을 작성하십시오. 답변이 명확하고 간결하며 유용한 정보를 제공하도록 하십시오."
},
"RATE": {
- "LABEL": "Rate this conversation",
- "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ "LABEL": "이 대화 평가",
+ "CONTENT": "대화가 고객의 요구를 얼마나 잘 충족하는지 검토하십시오. 톤, 명확성 및 효과를 기준으로 5점 만점으로 평가하십시오."
},
"HIGH_PRIORITY": {
- "LABEL": "High priority conversations",
- "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ "LABEL": "높은 우선순위 대화",
+ "CONTENT": "모든 높은 우선순위 열린 대화의 요약을 알려 주십시오. 대화 ID, 고객 이름(가능한 경우), 마지막 메시지 내용 및 배정된 상담원을 포함하십시오. 관련이 있는 경우 상태별로 그룹화하십시오."
},
"LIST_CONTACTS": {
- "LABEL": "List contacts",
- "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ "LABEL": "연락처 목록",
+ "CONTENT": "상위 10개 연락처 목록을 보여 주십시오. 이름, 이메일 또는 전화번호(가능한 경우), 마지막 접속 시간, 태그(있는 경우)를 포함하십시오."
}
}
},
"PLAYGROUND": {
"USER": "나",
- "ASSISTANT": "Assistant",
- "MESSAGE_PLACEHOLDER": "메시지 입력...",
- "HEADER": "Playground",
- "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
- "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
+ "ASSISTANT": "어시스턴트",
+ "MESSAGE_PLACEHOLDER": "메시지를 입력하십시오...",
+ "HEADER": "플레이그라운드",
+ "DESCRIPTION": "이 플레이그라운드를 사용하여 어시스턴트에게 메시지를 보내고 정확하고 빠르게 기대하는 톤으로 응답하는지 확인하십시오.",
+ "CREDIT_NOTE": "여기에서 보낸 메시지는 Captain 크레딧에 포함됩니다."
},
"PAYWALL": {
- "TITLE": "Upgrade to use Captain AI",
- "AVAILABLE_ON": "Captain is not available on the free plan.",
- "UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
- "UPGRADE_NOW": "Upgrade now",
- "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ "TITLE": "Captain AI를 사용하려면 업그레이드하십시오",
+ "AVAILABLE_ON": "Captain은 무료 요금제에서 사용할 수 없습니다.",
+ "UPGRADE_PROMPT": "어시스턴트, Copilot 등에 액세스하려면 요금제를 업그레이드하십시오.",
+ "UPGRADE_NOW": "지금 업그레이드",
+ "CANCEL_ANYTIME": "언제든지 요금제를 변경하거나 취소할 수 있습니다"
},
"ENTERPRISE_PAYWALL": {
- "UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
- "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ "AVAILABLE_ON": "Captain AI는 Enterprise 요금제에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "어시스턴트, Copilot 등에 액세스하려면 요금제를 업그레이드하십시오.",
+ "ASK_ADMIN": "업그레이드를 위해 관리자에게 문의하십시오."
},
"BANNER": {
- "RESPONSES": "You've used over 80% of your response limit. To continue using Captain AI, please upgrade.",
- "DOCUMENTS": "Document limit reached. Upgrade to continue using Captain AI."
+ "RESPONSES": "응답 한도의 80% 이상을 사용했습니다. Captain AI를 계속 사용하려면 업그레이드하십시오.",
+ "DOCUMENTS": "문서 한도에 도달했습니다. Captain AI를 계속 사용하려면 업그레이드하십시오."
},
"FORM": {
"CANCEL": "취소",
@@ -419,246 +463,246 @@
"EDIT": "업데이트"
},
"ASSISTANTS": {
- "HEADER": "Assistants",
- "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
- "ADD_NEW": "Create a new assistant",
+ "HEADER": "어시스턴트",
+ "NO_ASSISTANTS_AVAILABLE": "계정에 사용 가능한 어시스턴트가 없습니다.",
+ "ADD_NEW": "새 어시스턴트 만들기",
"DELETE": {
- "TITLE": "Are you sure to delete the assistant?",
- "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
- "CONFIRM": "Yes, delete",
- "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
- "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ "TITLE": "어시스턴트를 삭제하시겠습니까?",
+ "DESCRIPTION": "이 작업은 영구적입니다. 이 어시스턴트를 삭제하면 연결된 모든 받은 편지함에서 제거되고 생성된 모든 지식이 영구적으로 삭제됩니다.",
+ "CONFIRM": "예, 삭제합니다",
+ "SUCCESS_MESSAGE": "어시스턴트가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "어시스턴트를 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
- "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "FORM_DESCRIPTION": "아래 세부 정보를 입력하여 어시스턴트의 이름, 목적 및 지원할 제품을 지정하십시오.",
"CREATE": {
- "TITLE": "Create an assistant",
- "SUCCESS_MESSAGE": "The assistant has been successfully created",
- "ERROR_MESSAGE": "There was an error creating the assistant, please try again."
+ "TITLE": "어시스턴트 만들기",
+ "SUCCESS_MESSAGE": "어시스턴트가 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "어시스턴트를 생성하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"FORM": {
"UPDATE": "업데이트",
"SECTIONS": {
- "BASIC_INFO": "Basic Information",
- "SYSTEM_MESSAGES": "System Messages",
- "INSTRUCTIONS": "Instructions",
- "FEATURES": "특징",
- "TOOLS": "Tools "
+ "BASIC_INFO": "기본 정보",
+ "SYSTEM_MESSAGES": "시스템 메시지",
+ "INSTRUCTIONS": "지침",
+ "FEATURES": "기능",
+ "TOOLS": "도구 "
},
"NAME": {
"LABEL": "이름",
- "PLACEHOLDER": "Enter assistant name",
- "ERROR": "The name is required"
+ "PLACEHOLDER": "어시스턴트 이름을 입력하십시오",
+ "ERROR": "이름은 필수입니다"
},
"TEMPERATURE": {
- "LABEL": "Response Temperature",
- "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
+ "LABEL": "응답 온도",
+ "DESCRIPTION": "어시스턴트의 응답이 얼마나 창의적이거나 제한적이어야 하는지 조정합니다. 낮은 값은 더 집중적이고 결정론적인 응답을 생성하고, 높은 값은 더 창의적이고 다양한 출력을 허용합니다."
},
"DESCRIPTION": {
- "LABEL": "내용",
- "PLACEHOLDER": "Enter assistant description",
- "ERROR": "The description is required"
+ "LABEL": "설명",
+ "PLACEHOLDER": "어시스턴트 설명을 입력하십시오",
+ "ERROR": "설명은 필수입니다"
},
"PRODUCT_NAME": {
- "LABEL": "Product Name",
- "PLACEHOLDER": "Enter product name",
- "ERROR": "The product name is required"
+ "LABEL": "제품 이름",
+ "PLACEHOLDER": "제품 이름을 입력하십시오",
+ "ERROR": "제품 이름은 필수입니다"
},
"WELCOME_MESSAGE": {
- "LABEL": "Welcome Message",
- "PLACEHOLDER": "Enter welcome message"
+ "LABEL": "환영 메시지",
+ "PLACEHOLDER": "환영 메시지를 입력하십시오"
},
"HANDOFF_MESSAGE": {
- "LABEL": "Handoff Message",
- "PLACEHOLDER": "Enter handoff message"
+ "LABEL": "전환 메시지",
+ "PLACEHOLDER": "전환 메시지를 입력하십시오"
},
"RESOLUTION_MESSAGE": {
- "LABEL": "Resolution Message",
- "PLACEHOLDER": "Enter resolution message"
+ "LABEL": "해결 메시지",
+ "PLACEHOLDER": "해결 메시지를 입력하십시오"
},
"INSTRUCTIONS": {
- "LABEL": "Instructions",
- "PLACEHOLDER": "Enter instructions for the assistant"
+ "LABEL": "지침",
+ "PLACEHOLDER": "어시스턴트에 대한 지침을 입력하십시오"
},
"FEATURES": {
- "TITLE": "특징",
- "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"
+ "TITLE": "기능",
+ "ALLOW_CONVERSATION_FAQS": "해결된 대화에서 FAQ 생성",
+ "ALLOW_MEMORIES": "고객 상호작용에서 주요 세부 정보를 기억으로 캡처합니다.",
+ "ALLOW_CITATIONS": "응답에 출처 인용을 포함합니다"
}
},
"EDIT": {
- "TITLE": "Update the assistant",
- "SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
- "NOT_FOUND": "Could not find the assistant. Please try again."
+ "TITLE": "어시스턴트 업데이트",
+ "SUCCESS_MESSAGE": "어시스턴트가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "어시스턴트를 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "NOT_FOUND": "어시스턴트를 찾을 수 없습니다. 다시 시도하십시오."
},
"SETTINGS": {
"HEADER": "설정",
"BASIC_SETTINGS": {
- "TITLE": "Basic settings",
- "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ "TITLE": "기본 설정",
+ "DESCRIPTION": "대화를 종료하거나 상담원에게 전환할 때 어시스턴트가 표시하는 메시지를 맞춤 설정합니다."
},
"SYSTEM_SETTINGS": {
- "TITLE": "System settings",
- "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ "TITLE": "시스템 설정",
+ "DESCRIPTION": "대화를 종료하거나 상담원에게 전환할 때 어시스턴트가 표시하는 메시지를 맞춤 설정합니다."
},
"CONTROL_ITEMS": {
- "TITLE": "The Fun Stuff",
- "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "TITLE": "고급 설정",
+ "DESCRIPTION": "어시스턴트에 더 많은 제어 기능을 추가합니다. (쿼리 가드레일 → 시나리오 → 출력과 같은 흐름으로 구성됩니다) 이 기능들을 적극적으로 활용하십시오.",
"OPTIONS": {
"GUARDRAILS": {
- "TITLE": "Guardrails",
- "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ "TITLE": "가드레일",
+ "DESCRIPTION": "어시스턴트가 답변할 질문의 종류만 허용하여 주제에서 벗어나거나 부적절한 내용을 방지합니다."
},
"RESPONSE_GUIDELINES": {
- "TITLE": "Response guidelines",
- "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ "TITLE": "응답 가이드라인",
+ "DESCRIPTION": "어시스턴트 답변의 분위기와 구조를 설정합니다. 명확하고 친근하게? 짧고 간결하게? 상세하고 격식 있게?"
}
}
},
"DELETE": {
- "TITLE": "Delete Assistant",
- "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
- "BUTTON_TEXT": "Delete {assistantName}"
+ "TITLE": "어시스턴트 삭제",
+ "DESCRIPTION": "이 작업은 영구적입니다. 이 어시스턴트를 삭제하면 연결된 모든 받은 편지함에서 제거되고 생성된 모든 지식이 영구적으로 삭제됩니다.",
+ "BUTTON_TEXT": "{assistantName} 삭제"
}
},
"OPTIONS": {
- "EDIT_ASSISTANT": "Edit Assistant",
- "DELETE_ASSISTANT": "Delete Assistant",
- "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ "EDIT_ASSISTANT": "어시스턴트 수정",
+ "DELETE_ASSISTANT": "어시스턴트 삭제",
+ "VIEW_CONNECTED_INBOXES": "연결된 받은 편지함 보기"
},
"EMPTY_STATE": {
- "TITLE": "No assistants available",
- "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "TITLE": "사용 가능한 어시스턴트가 없습니다",
+ "SUBTITLE": "사용자에게 빠르고 정확한 응답을 제공하는 어시스턴트를 만드십시오. 도움말 문서와 이전 대화에서 학습할 수 있습니다.",
"FEATURE_SPOTLIGHT": {
- "TITLE": "Captain Assistant",
- "NOTE": "Captain Assistant engages directly with customers, learns from your help docs and past conversations, and delivers instant, accurate responses. It handles the initial queries, providing quick resolutions before transferring to an agent when needed."
+ "TITLE": "Captain 어시스턴트",
+ "NOTE": "Captain 어시스턴트는 고객과 직접 대화하며, 도움말 문서와 이전 대화에서 학습하여 즉각적이고 정확한 응답을 제공합니다. 초기 문의를 처리하여 빠른 해결을 제공하고 필요한 경우 상담원에게 전환합니다."
}
},
"GUARDRAILS": {
- "TITLE": "Guardrails",
- "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "TITLE": "가드레일",
+ "DESCRIPTION": "어시스턴트가 답변할 질문의 종류만 허용하여 주제에서 벗어나거나 부적절한 내용을 방지합니다.",
"BULK_ACTION": {
- "SELECTED": "{count} item selected | {count} items selected",
- "SELECT_ALL": "Select all ({count})",
- "UNSELECT_ALL": "Unselect all ({count})",
+ "SELECTED": "{count}개 항목 선택됨",
+ "SELECT_ALL": "전체 선택 ({count})",
+ "UNSELECT_ALL": "전체 선택 해제 ({count})",
"BULK_DELETE_BUTTON": "삭제"
},
"ADD": {
"SUGGESTED": {
- "TITLE": "Example guardrails",
- "ADD": "Add all",
- "ADD_SINGLE": "Add this",
- "SAVE": "Add and save (↵)",
- "PLACEHOLDER": "Type in another guardrail..."
+ "TITLE": "가드레일 예시",
+ "ADD": "모두 추가",
+ "ADD_SINGLE": "이것 추가",
+ "SAVE": "추가 및 저장 (↵)",
+ "PLACEHOLDER": "다른 가드레일을 입력하십시오..."
},
"NEW": {
- "TITLE": "Add a guardrail",
+ "TITLE": "가드레일 추가",
"CREATE": "만들기",
"CANCEL": "취소",
- "PLACEHOLDER": "Type in another guardrail...",
- "TEST_ALL": "Test all"
+ "PLACEHOLDER": "다른 가드레일을 입력하십시오...",
+ "TEST_ALL": "모두 테스트"
}
},
"LIST": {
- "SEARCH_PLACEHOLDER": "Search..."
+ "SEARCH_PLACEHOLDER": "검색..."
},
- "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
- "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "EMPTY_MESSAGE": "가드레일이 없습니다. 예시를 만들거나 추가하여 시작하십시오.",
+ "SEARCH_EMPTY_MESSAGE": "이 검색에 해당하는 가드레일이 없습니다.",
"API": {
"ADD": {
- "SUCCESS": "Guardrails added successfully",
- "ERROR": "There was an error adding guardrails, please try again."
+ "SUCCESS": "가드레일이 성공적으로 추가되었습니다",
+ "ERROR": "가드레일을 추가하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"UPDATE": {
- "SUCCESS": "Guardrails updated successfully",
- "ERROR": "There was an error updating guardrails, please try again."
+ "SUCCESS": "가드레일이 성공적으로 업데이트되었습니다",
+ "ERROR": "가드레일을 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"DELETE": {
- "SUCCESS": "Guardrails deleted successfully",
- "ERROR": "There was an error deleting guardrails, please try again."
+ "SUCCESS": "가드레일이 성공적으로 삭제되었습니다",
+ "ERROR": "가드레일을 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
}
}
},
"RESPONSE_GUIDELINES": {
- "TITLE": "Response Guidelines",
- "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "TITLE": "응답 가이드라인",
+ "DESCRIPTION": "어시스턴트 답변의 분위기와 구조를 설정합니다. 명확하고 친근하게? 짧고 간결하게? 상세하고 격식 있게?",
"BULK_ACTION": {
- "SELECTED": "{count} item selected | {count} items selected",
- "SELECT_ALL": "Select all ({count})",
- "UNSELECT_ALL": "Unselect all ({count})",
+ "SELECTED": "{count}개 항목 선택됨",
+ "SELECT_ALL": "전체 선택 ({count})",
+ "UNSELECT_ALL": "전체 선택 해제 ({count})",
"BULK_DELETE_BUTTON": "삭제"
},
"ADD": {
"SUGGESTED": {
- "TITLE": "Example response guidelines",
- "ADD": "Add all",
- "ADD_SINGLE": "Add this",
- "SAVE": "Add and save (↵)",
- "PLACEHOLDER": "Type in another response guideline..."
+ "TITLE": "응답 가이드라인 예시",
+ "ADD": "모두 추가",
+ "ADD_SINGLE": "이것 추가",
+ "SAVE": "추가 및 저장 (↵)",
+ "PLACEHOLDER": "다른 응답 가이드라인을 입력하십시오..."
},
"NEW": {
- "TITLE": "Add a response guideline",
+ "TITLE": "응답 가이드라인 추가",
"CREATE": "만들기",
"CANCEL": "취소",
- "PLACEHOLDER": "Type in another response guideline...",
- "TEST_ALL": "Test all"
+ "PLACEHOLDER": "다른 응답 가이드라인을 입력하십시오...",
+ "TEST_ALL": "모두 테스트"
}
},
"LIST": {
- "SEARCH_PLACEHOLDER": "Search..."
+ "SEARCH_PLACEHOLDER": "검색..."
},
- "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
- "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "EMPTY_MESSAGE": "응답 가이드라인이 없습니다. 예시를 만들거나 추가하여 시작하십시오.",
+ "SEARCH_EMPTY_MESSAGE": "이 검색에 해당하는 응답 가이드라인이 없습니다.",
"API": {
"ADD": {
- "SUCCESS": "Response Guidelines added successfully",
- "ERROR": "There was an error adding response guidelines, please try again."
+ "SUCCESS": "응답 가이드라인이 성공적으로 추가되었습니다",
+ "ERROR": "응답 가이드라인을 추가하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"UPDATE": {
- "SUCCESS": "Response Guidelines updated successfully",
- "ERROR": "There was an error updating response guidelines, please try again."
+ "SUCCESS": "응답 가이드라인이 성공적으로 업데이트되었습니다",
+ "ERROR": "응답 가이드라인을 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"DELETE": {
- "SUCCESS": "Response Guidelines deleted successfully",
- "ERROR": "There was an error deleting response guidelines, please try again."
+ "SUCCESS": "응답 가이드라인이 성공적으로 삭제되었습니다",
+ "ERROR": "응답 가이드라인을 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
}
}
},
"SCENARIOS": {
- "TITLE": "Scenarios",
- "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "TITLE": "시나리오",
+ "DESCRIPTION": "어시스턴트에게 컨텍스트를 제공하십시오. 예: \"사용자가 막혔을 때 할 일\" 또는 \"환불 요청 시 대응 방법\"",
"BULK_ACTION": {
- "SELECTED": "{count} item selected | {count} items selected",
- "SELECT_ALL": "Select all ({count})",
- "UNSELECT_ALL": "Unselect all ({count})",
+ "SELECTED": "{count}개 항목 선택됨",
+ "SELECT_ALL": "전체 선택 ({count})",
+ "UNSELECT_ALL": "전체 선택 해제 ({count})",
"BULK_DELETE_BUTTON": "삭제"
},
"ADD": {
"SUGGESTED": {
- "TITLE": "Example scenarios",
- "ADD": "Add all",
- "ADD_SINGLE": "Add this",
- "TOOLS_USED": "Tools used :"
+ "TITLE": "시나리오 예시",
+ "ADD": "모두 추가",
+ "ADD_SINGLE": "이것 추가",
+ "TOOLS_USED": "사용된 도구 :"
},
"NEW": {
- "CREATE": "Add a scenario",
- "TITLE": "Create a scenario",
+ "CREATE": "시나리오 추가",
+ "TITLE": "시나리오 만들기",
"FORM": {
"TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Enter a name for the scenario",
- "ERROR": "Scenario name is required"
+ "LABEL": "제목",
+ "PLACEHOLDER": "시나리오 이름을 입력하십시오",
+ "ERROR": "시나리오 이름은 필수입니다"
},
"DESCRIPTION": {
- "LABEL": "내용",
- "PLACEHOLDER": "Describe how and where this scenario will be used",
- "ERROR": "Scenario description is required"
+ "LABEL": "설명",
+ "PLACEHOLDER": "이 시나리오가 어떻게 그리고 어디에서 사용될지 설명하십시오",
+ "ERROR": "시나리오 설명은 필수입니다"
},
"INSTRUCTION": {
- "LABEL": "How to handle",
- "PLACEHOLDER": "Describe how and where this scenario will be handled",
- "ERROR": "Scenario content is required"
+ "LABEL": "처리 방법",
+ "PLACEHOLDER": "이 시나리오가 어떻게 그리고 어디에서 처리될지 설명하십시오",
+ "ERROR": "시나리오 내용은 필수입니다"
},
"CREATE": "만들기",
"CANCEL": "취소"
@@ -667,139 +711,139 @@
},
"UPDATE": {
"CANCEL": "취소",
- "UPDATE": "Update changes"
+ "UPDATE": "변경 사항 업데이트"
},
"LIST": {
- "SEARCH_PLACEHOLDER": "Search..."
+ "SEARCH_PLACEHOLDER": "검색..."
},
- "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
- "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "EMPTY_MESSAGE": "시나리오가 없습니다. 예시를 만들거나 추가하여 시작하십시오.",
+ "SEARCH_EMPTY_MESSAGE": "이 검색에 해당하는 시나리오가 없습니다.",
"API": {
"ADD": {
- "SUCCESS": "Scenarios added successfully",
- "ERROR": "There was an error adding scenarios, please try again."
+ "SUCCESS": "시나리오가 성공적으로 추가되었습니다",
+ "ERROR": "시나리오를 추가하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"UPDATE": {
- "SUCCESS": "Scenarios updated successfully",
- "ERROR": "There was an error updating scenarios, please try again."
+ "SUCCESS": "시나리오가 성공적으로 업데이트되었습니다",
+ "ERROR": "시나리오를 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"DELETE": {
- "SUCCESS": "Scenarios deleted successfully",
- "ERROR": "There was an error deleting scenarios, please try again."
+ "SUCCESS": "시나리오가 성공적으로 삭제되었습니다",
+ "ERROR": "시나리오를 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
}
}
}
},
"DOCUMENTS": {
- "HEADER": "Documents",
- "ADD_NEW": "Create a new document",
+ "HEADER": "문서",
+ "ADD_NEW": "새 문서 만들기",
"RELATED_RESPONSES": {
- "TITLE": "Related FAQs",
- "DESCRIPTION": "These FAQs are generated directly from the document."
+ "TITLE": "관련 FAQ",
+ "DESCRIPTION": "이 FAQ는 문서에서 직접 생성되었습니다."
},
- "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "FORM_DESCRIPTION": "문서의 URL을 입력하여 지식 소스로 추가하고 연결할 어시스턴트를 선택하십시오.",
"CREATE": {
- "TITLE": "Add a document",
- "SUCCESS_MESSAGE": "The document has been successfully created",
- "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ "TITLE": "문서 추가",
+ "SUCCESS_MESSAGE": "문서가 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "문서를 생성하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"FORM": {
"TYPE": {
- "LABEL": "Document Type",
+ "LABEL": "문서 유형",
"URL": "URL",
- "PDF": "PDF File"
+ "PDF": "PDF 파일"
},
"URL": {
"LABEL": "URL",
- "PLACEHOLDER": "Enter the URL of the document",
- "ERROR": "Please provide a valid URL for the document"
+ "PLACEHOLDER": "문서의 URL을 입력하십시오",
+ "ERROR": "문서에 대한 유효한 URL을 제공하십시오"
},
"PDF_FILE": {
- "LABEL": "PDF File",
- "CHOOSE_FILE": "Choose PDF file",
- "ERROR": "Please select a PDF file",
- "HELP_TEXT": "Maximum file size: 10MB",
- "INVALID_TYPE": "Please select a valid PDF file",
- "TOO_LARGE": "File size exceeds 10MB limit"
+ "LABEL": "PDF 파일",
+ "CHOOSE_FILE": "PDF 파일 선택",
+ "ERROR": "PDF 파일을 선택하십시오",
+ "HELP_TEXT": "최대 파일 크기: 10MB",
+ "INVALID_TYPE": "유효한 PDF 파일을 선택하십시오",
+ "TOO_LARGE": "파일 크기가 10MB 한도를 초과합니다"
},
"NAME": {
- "LABEL": "Document Name (Optional)",
- "PLACEHOLDER": "Enter a name for the document"
+ "LABEL": "문서 이름 (선택 사항)",
+ "PLACEHOLDER": "문서 이름을 입력하십시오"
}
},
"DELETE": {
- "TITLE": "Are you sure to delete the document?",
- "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
- "CONFIRM": "Yes, delete",
- "SUCCESS_MESSAGE": "The document has been successfully deleted",
- "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ "TITLE": "문서를 삭제하시겠습니까?",
+ "DESCRIPTION": "이 작업은 영구적입니다. 이 문서를 삭제하면 생성된 모든 지식이 영구적으로 삭제됩니다.",
+ "CONFIRM": "예, 삭제합니다",
+ "SUCCESS_MESSAGE": "문서가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "문서를 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"OPTIONS": {
- "VIEW_RELATED_RESPONSES": "View Related Responses",
- "DELETE_DOCUMENT": "Delete Document"
+ "VIEW_RELATED_RESPONSES": "관련 응답 보기",
+ "DELETE_DOCUMENT": "문서 삭제"
},
"EMPTY_STATE": {
- "TITLE": "No documents available",
- "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "TITLE": "사용 가능한 문서가 없습니다",
+ "SUBTITLE": "문서는 어시스턴트가 FAQ를 생성하는 데 사용됩니다. 어시스턴트에 컨텍스트를 제공하기 위해 문서를 가져올 수 있습니다.",
"FEATURE_SPOTLIGHT": {
- "TITLE": "Captain Document",
- "NOTE": "A document in Captain serves as a knowledge resource for the assistant. By connecting your help center or guides, Captain can analyze the content and provide accurate responses for customer inquiries."
+ "TITLE": "Captain 문서",
+ "NOTE": "Captain의 문서는 어시스턴트를 위한 지식 리소스로 활용됩니다. 도움말 센터나 가이드를 연결하면 Captain이 내용을 분석하여 고객 문의에 대한 정확한 응답을 제공할 수 있습니다."
}
}
},
"CUSTOM_TOOLS": {
- "HEADER": "Tools",
- "ADD_NEW": "Create a new tool",
+ "HEADER": "도구",
+ "ADD_NEW": "새 도구 만들기",
"EMPTY_STATE": {
- "TITLE": "No custom tools available",
- "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "TITLE": "사용 가능한 사용자 정의 도구가 없습니다",
+ "SUBTITLE": "사용자 정의 도구를 만들어 어시스턴트를 외부 API 및 서비스와 연결하고, 데이터를 가져오거나 사용자를 대신하여 작업을 수행할 수 있도록 하십시오.",
"FEATURE_SPOTLIGHT": {
- "TITLE": "Custom Tools",
- "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ "TITLE": "사용자 정의 도구",
+ "NOTE": "사용자 정의 도구를 사용하면 어시스턴트가 외부 API 및 서비스와 상호작용할 수 있습니다. 데이터를 가져오거나 작업을 수행하거나 기존 시스템과 통합하여 어시스턴트의 기능을 향상시키는 도구를 만드십시오."
}
},
- "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "FORM_DESCRIPTION": "외부 API와 연결하기 위해 사용자 정의 도구를 구성하십시오",
"OPTIONS": {
- "EDIT_TOOL": "Edit tool",
- "DELETE_TOOL": "Delete tool"
+ "EDIT_TOOL": "도구 수정",
+ "DELETE_TOOL": "도구 삭제"
},
"CREATE": {
- "TITLE": "Create Custom Tool",
- "SUCCESS_MESSAGE": "Custom tool created successfully",
- "ERROR_MESSAGE": "Failed to create custom tool"
+ "TITLE": "사용자 정의 도구 만들기",
+ "SUCCESS_MESSAGE": "사용자 정의 도구가 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "사용자 정의 도구를 생성하지 못했습니다"
},
"EDIT": {
- "TITLE": "Edit Custom Tool",
- "SUCCESS_MESSAGE": "Custom tool updated successfully",
- "ERROR_MESSAGE": "Failed to update custom tool"
+ "TITLE": "사용자 정의 도구 수정",
+ "SUCCESS_MESSAGE": "사용자 정의 도구가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "사용자 정의 도구를 업데이트하지 못했습니다"
},
"DELETE": {
- "TITLE": "Delete Custom Tool",
- "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
- "CONFIRM": "Yes, delete",
- "SUCCESS_MESSAGE": "Custom tool deleted successfully",
- "ERROR_MESSAGE": "Failed to delete custom tool"
+ "TITLE": "사용자 정의 도구 삭제",
+ "DESCRIPTION": "이 사용자 정의 도구를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
+ "CONFIRM": "예, 삭제합니다",
+ "SUCCESS_MESSAGE": "사용자 정의 도구가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "사용자 정의 도구를 삭제하지 못했습니다"
},
"FORM": {
"TITLE": {
- "LABEL": "Tool Name",
- "PLACEHOLDER": "Order Lookup",
- "ERROR": "Tool name is required"
+ "LABEL": "도구 이름",
+ "PLACEHOLDER": "주문 조회",
+ "ERROR": "도구 이름은 필수입니다"
},
"DESCRIPTION": {
- "LABEL": "내용",
- "PLACEHOLDER": "Looks up order details by order ID"
+ "LABEL": "설명",
+ "PLACEHOLDER": "주문 ID로 주문 세부 정보를 조회합니다"
},
"HTTP_METHOD": {
- "LABEL": "Method"
+ "LABEL": "메서드"
},
"ENDPOINT_URL": {
- "LABEL": "Endpoint URL",
+ "LABEL": "엔드포인트 URL",
"PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
- "ERROR": "Valid URL is required"
+ "ERROR": "유효한 URL이 필요합니다"
},
"AUTH_TYPE": {
- "LABEL": "Authentication Type"
+ "LABEL": "인증 유형"
},
"AUTH_TYPES": {
"NONE": "없음",
@@ -809,26 +853,26 @@
},
"AUTH_CONFIG": {
"BEARER_TOKEN": "Bearer Token",
- "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
- "USERNAME": "Username",
- "USERNAME_PLACEHOLDER": "Enter username",
+ "BEARER_TOKEN_PLACEHOLDER": "Bearer 토큰을 입력하십시오",
+ "USERNAME": "사용자 이름",
+ "USERNAME_PLACEHOLDER": "사용자 이름을 입력하십시오",
"PASSWORD": "비밀번호",
- "PASSWORD_PLACEHOLDER": "Enter password",
- "API_KEY": "Header Name",
+ "PASSWORD_PLACEHOLDER": "비밀번호를 입력하십시오",
+ "API_KEY": "헤더 이름",
"API_KEY_PLACEHOLDER": "X-API-Key",
- "API_VALUE": "Header Value",
- "API_VALUE_PLACEHOLDER": "Enter API key value"
+ "API_VALUE": "헤더 값",
+ "API_VALUE_PLACEHOLDER": "API 키 값을 입력하십시오"
},
"PARAMETERS": {
- "LABEL": "Parameters",
- "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ "LABEL": "매개변수",
+ "HELP_TEXT": "사용자 쿼리에서 추출할 매개변수를 정의하십시오"
},
- "ADD_PARAMETER": "Add Parameter",
+ "ADD_PARAMETER": "매개변수 추가",
"PARAM_NAME": {
- "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ "PLACEHOLDER": "매개변수 이름 (예: order_id)"
},
"PARAM_TYPE": {
- "PLACEHOLDER": "Type"
+ "PLACEHOLDER": "유형"
},
"PARAM_TYPES": {
"STRING": "String",
@@ -838,139 +882,139 @@
"OBJECT": "Object"
},
"PARAM_DESCRIPTION": {
- "PLACEHOLDER": "Description of the parameter"
+ "PLACEHOLDER": "매개변수에 대한 설명"
},
"PARAM_REQUIRED": {
- "LABEL": "Required"
+ "LABEL": "필수"
},
"REQUEST_TEMPLATE": {
- "LABEL": "Request Body Template (Optional)",
+ "LABEL": "요청 본문 템플릿 (선택 사항)",
"PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
},
"RESPONSE_TEMPLATE": {
- "LABEL": "Response Template (Optional)",
+ "LABEL": "응답 템플릿 (선택 사항)",
"PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
},
"ERRORS": {
- "PARAM_NAME_REQUIRED": "Parameter name is required"
+ "PARAM_NAME_REQUIRED": "매개변수 이름은 필수입니다"
}
}
},
"RESPONSES": {
- "HEADER": "FAQs",
- "PENDING_FAQS": "Pending FAQs",
- "ADD_NEW": "Create new FAQ",
+ "HEADER": "FAQ",
+ "PENDING_FAQS": "대기 중인 FAQ",
+ "ADD_NEW": "새 FAQ 만들기",
"DOCUMENTABLE": {
- "CONVERSATION": "Conversation #{id}"
+ "CONVERSATION": "대화 #{id}"
},
- "SELECTED": "{count} selected",
- "SELECT_ALL": "Select all ({count})",
- "UNSELECT_ALL": "Unselect all ({count})",
- "SEARCH_PLACEHOLDER": "Search FAQs...",
- "BULK_APPROVE_BUTTON": "Approve",
+ "SELECTED": "{count}개 선택됨",
+ "SELECT_ALL": "전체 선택 ({count})",
+ "UNSELECT_ALL": "전체 선택 해제 ({count})",
+ "SEARCH_PLACEHOLDER": "FAQ 검색...",
+ "BULK_APPROVE_BUTTON": "승인",
"BULK_DELETE_BUTTON": "삭제",
"BULK_APPROVE": {
- "SUCCESS_MESSAGE": "FAQs approved successfully",
- "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ "SUCCESS_MESSAGE": "FAQ가 성공적으로 승인되었습니다",
+ "ERROR_MESSAGE": "FAQ를 승인하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"BULK_DELETE": {
- "TITLE": "Delete FAQs?",
- "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
- "CONFIRM": "Yes, delete all",
- "SUCCESS_MESSAGE": "FAQs deleted successfully",
- "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ "TITLE": "FAQ를 삭제하시겠습니까?",
+ "DESCRIPTION": "선택한 FAQ를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
+ "CONFIRM": "예, 모두 삭제합니다",
+ "SUCCESS_MESSAGE": "FAQ가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "FAQ를 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"DELETE": {
- "TITLE": "Are you sure to delete the FAQ?",
+ "TITLE": "FAQ를 삭제하시겠습니까?",
"DESCRIPTION": "",
- "CONFIRM": "Yes, delete",
- "SUCCESS_MESSAGE": "FAQ deleted successfully",
- "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ "CONFIRM": "예, 삭제합니다",
+ "SUCCESS_MESSAGE": "FAQ가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "FAQ를 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"FILTER": {
- "ASSISTANT": "Assistant: {selected}",
- "STATUS": "Status: {selected}",
- "ALL_ASSISTANTS": "모두"
+ "ASSISTANT": "어시스턴트: {selected}",
+ "STATUS": "상태: {selected}",
+ "ALL_ASSISTANTS": "전체"
},
"STATUS": {
"TITLE": "상태",
- "PENDING": "보내는 중",
- "APPROVED": "Approved",
- "ALL": "모두"
+ "PENDING": "대기 중",
+ "APPROVED": "승인됨",
+ "ALL": "전체"
},
"PENDING_BANNER": {
- "TITLE": "Captain has found some FAQs your customers were looking for.",
- "ACTION": "Click here to review"
+ "TITLE": "Captain이 고객이 찾고 있던 FAQ를 발견했습니다.",
+ "ACTION": "여기를 클릭하여 검토하십시오"
},
- "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "FORM_DESCRIPTION": "지식 베이스에 질문과 해당 답변을 추가하고 연결할 어시스턴트를 선택하십시오.",
"CREATE": {
- "TITLE": "Add an FAQ",
- "SUCCESS_MESSAGE": "The response has been added successfully.",
- "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ "TITLE": "FAQ 추가",
+ "SUCCESS_MESSAGE": "응답이 성공적으로 추가되었습니다.",
+ "ERROR_MESSAGE": "응답을 추가하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"FORM": {
"QUESTION": {
- "LABEL": "Question",
- "PLACEHOLDER": "Enter the question here",
- "ERROR": "Please provide a valid question."
+ "LABEL": "질문",
+ "PLACEHOLDER": "여기에 질문을 입력하십시오",
+ "ERROR": "유효한 질문을 입력하십시오."
},
"ANSWER": {
- "LABEL": "Answer",
- "PLACEHOLDER": "Enter the answer here",
- "ERROR": "Please provide a valid answer."
+ "LABEL": "답변",
+ "PLACEHOLDER": "여기에 답변을 입력하십시오",
+ "ERROR": "유효한 답변을 입력하십시오."
}
},
"EDIT": {
- "TITLE": "Update the FAQ",
- "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
- "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ "TITLE": "FAQ 업데이트",
+ "SUCCESS_MESSAGE": "FAQ가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "FAQ를 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "APPROVE_SUCCESS_MESSAGE": "FAQ가 승인됨으로 표시되었습니다"
},
"OPTIONS": {
- "APPROVE": "Approve",
+ "APPROVE": "승인",
"EDIT_RESPONSE": "수정",
"DELETE_RESPONSE": "삭제"
},
"EMPTY_STATE": {
- "TITLE": "No FAQs Found",
- "NO_PENDING_TITLE": "There are no more pending FAQs to review",
- "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
- "CLEAR_SEARCH": "Clear active filters",
+ "TITLE": "FAQ를 찾을 수 없습니다",
+ "NO_PENDING_TITLE": "검토할 대기 중인 FAQ가 더 이상 없습니다",
+ "SUBTITLE": "FAQ는 어시스턴트가 고객의 질문에 빠르고 정확한 답변을 제공하는 데 도움이 됩니다. 콘텐츠에서 자동으로 생성되거나 수동으로 추가할 수 있습니다.",
+ "CLEAR_SEARCH": "활성 필터 지우기",
"FEATURE_SPOTLIGHT": {
"TITLE": "Captain FAQ",
- "NOTE": "Captain FAQs detects common customer questions—whether missing from your knowledge base or frequently asked—and generates relevant FAQs to improve support. You can review each suggestion and decide whether to approve or reject it."
+ "NOTE": "Captain FAQ는 지식 베이스에서 누락되었거나 자주 질문되는 일반적인 고객 질문을 감지하고 관련 FAQ를 생성하여 지원을 개선합니다. 각 제안을 검토하고 승인 또는 거부를 결정할 수 있습니다."
}
}
},
"INBOXES": {
- "HEADER": "Connected Inboxes",
- "ADD_NEW": "Connect a new inbox",
+ "HEADER": "연결된 받은 편지함",
+ "ADD_NEW": "새 받은 편지함 연결",
"OPTIONS": {
- "DISCONNECT": "Disconnect"
+ "DISCONNECT": "연결 해제"
},
"DELETE": {
- "TITLE": "Are you sure to disconnect the inbox?",
+ "TITLE": "받은 편지함 연결을 해제하시겠습니까?",
"DESCRIPTION": "",
- "CONFIRM": "Yes, delete",
- "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
- "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ "CONFIRM": "예, 삭제합니다",
+ "SUCCESS_MESSAGE": "받은 편지함이 성공적으로 연결 해제되었습니다.",
+ "ERROR_MESSAGE": "받은 편지함 연결을 해제하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
- "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "FORM_DESCRIPTION": "어시스턴트와 연결할 받은 편지함을 선택하십시오.",
"CREATE": {
- "TITLE": "Connect an Inbox",
- "SUCCESS_MESSAGE": "The inbox was successfully connected.",
- "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ "TITLE": "받은 편지함 연결",
+ "SUCCESS_MESSAGE": "받은 편지함이 성공적으로 연결되었습니다.",
+ "ERROR_MESSAGE": "받은 편지함을 연결하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"FORM": {
"INBOX": {
- "LABEL": "받은 메시지함",
- "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
- "ERROR": "An inbox selection is required."
+ "LABEL": "받은 편지함",
+ "PLACEHOLDER": "어시스턴트를 배포할 받은 편지함을 선택하십시오.",
+ "ERROR": "받은 편지함 선택은 필수입니다."
}
},
"EMPTY_STATE": {
- "TITLE": "No Connected Inboxes",
- "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ "TITLE": "연결된 받은 편지함이 없습니다",
+ "SUBTITLE": "받은 편지함을 연결하면 어시스턴트가 고객의 초기 질문을 처리한 후 상담원에게 전환할 수 있습니다."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ko/labelsMgmt.json
index fc00d38fd..d2c61e748 100644
--- a/app/javascript/dashboard/i18n/locale/ko/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/labelsMgmt.json
@@ -3,17 +3,21 @@
"HEADER": "라벨",
"HEADER_BTN_TXT": "라벨 추가",
"LOADING": "라벨을 가져오는 중",
- "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
- "LEARN_MORE": "Learn more about labels",
- "SEARCH_404": "이 쿼리와 일치하는 항목이 없음",
+ "DESCRIPTION": "라벨은 대화와 리드를 분류하고 우선순위를 지정하는 데 도움이 됩니다. 사이드 패널을 사용하여 대화 또는 연락처에 라벨을 할당할 수 있습니다.",
+ "LEARN_MORE": "라벨에 대해 자세히 알아보기",
+ "COUNT": "{n}개의 라벨 | {n}개의 라벨",
+ "SEARCH_PLACEHOLDER": "라벨 검색...",
+ "NO_RESULTS": "검색과 일치하는 라벨이 없습니다",
+ "SEARCH_404": "이 쿼리와 일치하는 항목이 없습니다",
"LIST": {
- "404": "이 계정에는 사용 가능한 라벨이 없다.",
+ "404": "이 계정에는 사용 가능한 라벨이 없습니다.",
"TITLE": "라벨 관리",
- "DESC": "라벨을 사용하여 대화를 그룹화할 수 있다.",
+ "DESC": "라벨을 사용하여 대화를 그룹화할 수 있습니다.",
"TABLE_HEADER": {
"NAME": "이름",
- "DESCRIPTION": "내용",
- "COLOR": "색깔"
+ "DESCRIPTION": "설명",
+ "COLOR": "색상",
+ "ACTION": "액션"
}
},
"FORM": {
@@ -25,11 +29,11 @@
"VALID_ERROR": "영어나, 숫자, - 와 _ 만 사용 가능합니다"
},
"DESCRIPTION": {
- "LABEL": "내용",
- "PLACEHOLDER": "라벨 내용"
+ "LABEL": "설명",
+ "PLACEHOLDER": "라벨 설명"
},
"COLOR": {
- "LABEL": "색깔"
+ "LABEL": "색상"
},
"SHOW_ON_SIDEBAR": {
"LABEL": "사이드바에 라벨 표시"
@@ -41,37 +45,37 @@
},
"SUGGESTIONS": {
"TOOLTIP": {
- "SINGLE_SUGGESTION": "Add label to conversation",
- "MULTIPLE_SUGGESTION": "Select this label",
- "DESELECT": "Deselect label",
- "DISMISS": "Dismiss suggestion"
+ "SINGLE_SUGGESTION": "대화에 라벨 추가",
+ "MULTIPLE_SUGGESTION": "이 라벨 선택",
+ "DESELECT": "라벨 선택 해제",
+ "DISMISS": "제안 닫기"
},
"POWERED_BY": "Chatwoot AI",
- "DISMISS": "Dismiss",
- "ADD_SELECTED_LABELS": "Add selected labels",
- "ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels",
- "SUGGESTED_LABELS": "Suggested labels"
+ "DISMISS": "닫기",
+ "ADD_SELECTED_LABELS": "선택한 라벨 추가",
+ "ADD_SELECTED_LABEL": "선택한 라벨 추가",
+ "ADD_ALL_LABELS": "모든 라벨 추가",
+ "SUGGESTED_LABELS": "제안된 라벨"
},
"ADD": {
"TITLE": "라벨 추가",
- "DESC": "라벨을 사용하여 대화를 그룹화할 수 있다.",
+ "DESC": "라벨을 사용하여 대화를 그룹화할 수 있습니다.",
"API": {
- "SUCCESS_MESSAGE": "라벨이 성공적으로 추가됨",
+ "SUCCESS_MESSAGE": "라벨이 성공적으로 추가되었습니다",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
},
"EDIT": {
"TITLE": "라벨 수정",
"API": {
- "SUCCESS_MESSAGE": "라벨이 성공적으로 업데이트됨",
+ "SUCCESS_MESSAGE": "라벨이 성공적으로 업데이트되었습니다",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"API": {
- "SUCCESS_MESSAGE": "라벨이 성공적으로 삭제됨.",
+ "SUCCESS_MESSAGE": "라벨이 성공적으로 삭제되었습니다",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
},
"CONFIRM": {
diff --git a/app/javascript/dashboard/i18n/locale/ko/login.json b/app/javascript/dashboard/i18n/locale/ko/login.json
index a9f56cfef..0c662c749 100644
--- a/app/javascript/dashboard/i18n/locale/ko/login.json
+++ b/app/javascript/dashboard/i18n/locale/ko/login.json
@@ -4,7 +4,7 @@
"EMAIL": {
"LABEL": "이메일",
"PLACEHOLDER": "example{'@'}companyname.com",
- "ERROR": "올바른 전자 메일 주소를 입력하십시오."
+ "ERROR": "올바른 이메일 주소를 입력하십시오."
},
"PASSWORD": {
"LABEL": "비밀번호",
@@ -12,29 +12,29 @@
},
"API": {
"SUCCESS_MESSAGE": "로그인 성공",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요.",
- "UNAUTH": "이름 또는 비밀번호가 올바르지 않습니다. 다시 시도해 주세요."
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 다시 시도하십시오.",
+ "UNAUTH": "이름 또는 비밀번호가 올바르지 않습니다. 다시 시도하십시오."
},
"OAUTH": {
- "GOOGLE_LOGIN": "Login with Google",
- "BUSINESS_ACCOUNTS_ONLY": "회사 이메일 주소를 사용하여 로그인하세요.",
+ "GOOGLE_LOGIN": "Google로 로그인",
+ "BUSINESS_ACCOUNTS_ONLY": "회사 이메일 주소를 사용하여 로그인하십시오.",
"NO_ACCOUNT_FOUND": "귀하의 이메일 주소로 계정을 찾을 수 없습니다."
},
- "FORGOT_PASSWORD": "암호를 잊으셨나요?",
- "CREATE_NEW_ACCOUNT": "계정 생성",
+ "FORGOT_PASSWORD": "비밀번호를 잊으셨습니까?",
+ "CREATE_NEW_ACCOUNT": "새 계정 만들기",
"SUBMIT": "로그인",
"SAML": {
- "LABEL": "Login via SSO",
- "TITLE": "Initiate Single Sign-on (SSO)",
- "SUBTITLE": "Enter your work email to access your organization",
- "BACK_TO_LOGIN": "Login via Password",
+ "LABEL": "SSO로 로그인",
+ "TITLE": "SSO(Single Sign-on) 시작",
+ "SUBTITLE": "조직에 액세스하려면 업무용 이메일을 입력하십시오",
+ "BACK_TO_LOGIN": "비밀번호로 로그인",
"WORK_EMAIL": {
- "LABEL": "Work Email",
- "PLACEHOLDER": "Enter your work email"
+ "LABEL": "업무용 이메일",
+ "PLACEHOLDER": "업무용 이메일을 입력하십시오"
},
- "SUBMIT": "Continue with SSO",
+ "SUBMIT": "SSO로 계속",
"API": {
- "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ "ERROR_MESSAGE": "SSO 인증에 실패했습니다. 자격 증명을 확인하고 다시 시도하십시오."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/macros.json b/app/javascript/dashboard/i18n/locale/ko/macros.json
index 397c1ce27..dfa9fba44 100644
--- a/app/javascript/dashboard/i18n/locale/ko/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ko/macros.json
@@ -1,111 +1,115 @@
{
"MACROS": {
- "HEADER": "Macros",
- "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
- "LEARN_MORE": "Learn more about macros",
- "HEADER_BTN_TXT": "Add a new macro",
- "HEADER_BTN_TXT_SAVE": "Save macro",
- "LOADING": "Fetching macros",
- "ERROR": "Something went wrong. Please try again",
- "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
+ "HEADER": "매크로",
+ "DESCRIPTION": "매크로는 고객 서비스 에이전트가 작업을 쉽게 완료할 수 있도록 도와주는 저장된 액션 모음입니다. 에이전트는 대화에 라벨 태그 지정, 이메일 대화 내용 전송, 사용자 정의 속성 업데이트 등의 액션을 정의하고, 클릭 한 번으로 이러한 액션을 실행할 수 있습니다.",
+ "LEARN_MORE": "매크로에 대해 자세히 알아보기",
+ "COUNT": "{n}개의 매크로 | {n}개의 매크로",
+ "HEADER_BTN_TXT": "새 매크로 추가",
+ "HEADER_BTN_TXT_SAVE": "매크로 저장",
+ "LOADING": "매크로를 불러오는 중",
+ "SEARCH_PLACEHOLDER": "매크로 검색...",
+ "NO_RESULTS": "검색과 일치하는 매크로가 없습니다",
+ "ERROR": "오류가 발생했습니다. 다시 시도해 주십시오.",
+ "ORDER_INFO": "매크로는 액션을 추가한 순서대로 실행됩니다. 각 노드 옆의 핸들을 드래그하여 순서를 변경할 수 있습니다.",
"ADD": {
"FORM": {
"NAME": {
- "LABEL": "Macro name",
- "PLACEHOLDER": "Enter a name for your macro",
- "ERROR": "Name is required for creating a macro"
+ "LABEL": "매크로 이름",
+ "PLACEHOLDER": "매크로 이름을 입력하십시오",
+ "ERROR": "매크로를 생성하려면 이름이 필요합니다"
},
"ACTIONS": {
"LABEL": "액션"
}
},
"API": {
- "SUCCESS_MESSAGE": "Macro added successfully",
- "ERROR_MESSAGE": "Unable to create macro, Please try again later"
+ "SUCCESS_MESSAGE": "매크로가 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "매크로를 생성할 수 없습니다. 나중에 다시 시도해 주십시오."
}
},
"LIST": {
"TABLE_HEADER": {
"NAME": "이름",
- "CREATED BY": "Created by",
- "LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "CREATED BY": "작성자",
+ "LAST_UPDATED_BY": "최종 수정자",
+ "VISIBILITY": "공개 범위",
+ "ACTIONS": "액션"
},
- "404": "No macros found"
+ "404": "매크로를 찾을 수 없습니다"
},
"DELETE": {
- "TOOLTIP": "Delete macro",
+ "TOOLTIP": "매크로 삭제",
"CONFIRM": {
"MESSAGE": "삭제하시겠습니까? ",
- "YES": "Yes, Delete",
+ "YES": "예, 삭제합니다",
"NO": "아니오"
},
"API": {
- "SUCCESS_MESSAGE": "Macro deleted successfully",
- "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
+ "SUCCESS_MESSAGE": "매크로가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "매크로를 삭제하는 중 오류가 발생했습니다. 나중에 다시 시도해 주십시오."
}
},
"EDIT": {
- "TOOLTIP": "Edit macro",
+ "TOOLTIP": "매크로 수정",
"API": {
- "SUCCESS_MESSAGE": "Macro updated successfully",
- "ERROR_MESSAGE": "Could not update Macro, Please try again later"
+ "SUCCESS_MESSAGE": "매크로가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "매크로를 업데이트할 수 없습니다. 나중에 다시 시도해 주십시오."
}
},
"EDITOR": {
- "START_FLOW": "Start Flow",
- "END_FLOW": "End Flow",
- "LOADING": "Fetching macro",
- "ADD_BTN_TOOLTIP": "Add new action",
- "DELETE_BTN_TOOLTIP": "Delete Action",
+ "START_FLOW": "흐름 시작",
+ "END_FLOW": "흐름 종료",
+ "LOADING": "매크로를 불러오는 중",
+ "ADD_BTN_TOOLTIP": "새 액션 추가",
+ "DELETE_BTN_TOOLTIP": "액션 삭제",
"VISIBILITY": {
- "LABEL": "Macro Visibility",
+ "LABEL": "매크로 공개 범위",
"GLOBAL": {
- "LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "LABEL": "공개",
+ "DESCRIPTION": "이 매크로는 이 계정의 모든 에이전트에게 공개됩니다."
},
"PERSONAL": {
- "LABEL": "Private",
- "DESCRIPTION": "This macro will be private to you and not be available to others."
+ "LABEL": "비공개",
+ "DESCRIPTION": "이 매크로는 본인에게만 표시되며 다른 사람에게는 공개되지 않습니다."
}
}
},
"EXECUTE": {
- "BUTTON_TOOLTIP": "Execute",
- "PREVIEW": "Preview Macro",
- "EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ "BUTTON_TOOLTIP": "실행",
+ "PREVIEW": "매크로 미리보기",
+ "EXECUTED_SUCCESSFULLY": "매크로가 성공적으로 실행되었습니다"
},
"ERRORS": {
- "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
- "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
- "VALUE_REQUIRED": "값이 필요합니다.",
- "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
- "ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
- "ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
- "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ "ATTRIBUTE_KEY_REQUIRED": "속성 키가 필요합니다",
+ "FILTER_OPERATOR_REQUIRED": "필터 연산자가 필요합니다",
+ "VALUE_REQUIRED": "값이 필요합니다",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "값은 1에서 998 사이여야 합니다",
+ "ACTION_PARAMETERS_REQUIRED": "액션 매개변수가 필요합니다",
+ "ATLEAST_ONE_CONDITION_REQUIRED": "최소 하나의 조건이 필요합니다",
+ "ATLEAST_ONE_ACTION_REQUIRED": "최소 하나의 액션이 필요합니다"
},
"ACTIONS": {
- "ASSIGN_TEAM": "Assign a Team",
- "ASSIGN_AGENT": "Assign an Agent",
- "ADD_LABEL": "Add a Label",
- "REMOVE_LABEL": "Remove a Label",
- "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
- "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "ASSIGN_TEAM": "팀 배정",
+ "ASSIGN_AGENT": "에이전트 배정",
+ "ADD_LABEL": "라벨 추가",
+ "REMOVE_LABEL": "라벨 제거",
+ "REMOVE_ASSIGNED_TEAM": "배정된 팀 제거",
+ "SEND_EMAIL_TRANSCRIPT": "이메일 대화 내용 전송",
"MUTE_CONVERSATION": "대화 음소거",
- "SNOOZE_CONVERSATION": "Snooze Conversation",
- "RESOLVE_CONVERSATION": "Resolve Conversation",
- "SEND_ATTACHMENT": "Send Attachment",
- "SEND_MESSAGE": "Send a Message",
- "CHANGE_PRIORITY": "Change Priority",
- "ADD_PRIVATE_NOTE": "Add a Private Note",
- "SEND_WEBHOOK_EVENT": "Send Webhook Event"
+ "SNOOZE_CONVERSATION": "대화 일시 중지",
+ "RESOLVE_CONVERSATION": "대화 해결",
+ "SEND_ATTACHMENT": "첨부 파일 전송",
+ "SEND_MESSAGE": "메시지 전송",
+ "CHANGE_PRIORITY": "우선순위 변경",
+ "ADD_PRIVATE_NOTE": "비공개 메모 추가",
+ "SEND_WEBHOOK_EVENT": "웹훅 이벤트 전송"
},
"PRIORITY_TYPES": {
"NONE": "없음",
- "LOW": "Low",
- "MEDIUM": "Medium",
- "HIGH": "High",
- "URGENT": "Urgent"
+ "LOW": "낮음",
+ "MEDIUM": "보통",
+ "HIGH": "높음",
+ "URGENT": "긴급"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/mfa.json b/app/javascript/dashboard/i18n/locale/ko/mfa.json
index c9ef842a2..e8368ce37 100644
--- a/app/javascript/dashboard/i18n/locale/ko/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/ko/mfa.json
@@ -1,106 +1,106 @@
{
"MFA_SETTINGS": {
- "TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
- "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
- "STATUS_TITLE": "Authentication Status",
- "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "TITLE": "2단계 인증",
+ "SUBTITLE": "TOTP 기반 인증으로 계정을 보호하십시오",
+ "DESCRIPTION": "시간 기반 일회용 비밀번호(TOTP)를 사용하여 계정에 추가 보안 계층을 적용합니다",
+ "STATUS_TITLE": "인증 상태",
+ "STATUS_DESCRIPTION": "2단계 인증 설정 및 백업 복구 코드를 관리합니다",
"ENABLED": "사용함",
"DISABLED": "사용 안 함",
- "STATUS_ENABLED": "Two-factor authentication is active",
- "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
- "ENABLE_BUTTON": "Enable Two-Factor Authentication",
- "ENHANCE_SECURITY": "Enhance Your Account Security",
- "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "STATUS_ENABLED": "2단계 인증이 활성화되어 있습니다",
+ "STATUS_ENABLED_DESC": "계정이 추가 보안 계층으로 보호되고 있습니다",
+ "ENABLE_BUTTON": "2단계 인증 사용하기",
+ "ENHANCE_SECURITY": "계정 보안 강화",
+ "ENHANCE_SECURITY_DESC": "2단계 인증은 비밀번호 외에 인증 앱의 인증 코드를 추가로 요구하여 보안을 강화합니다.",
"SETUP": {
"STEP_NUMBER_1": "1",
"STEP_NUMBER_2": "2",
- "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
- "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
- "LOADING_QR": "Loading...",
- "MANUAL_ENTRY": "Can't scan? Enter code manually",
- "SECRET_KEY": "Secret Key",
+ "STEP1_TITLE": "인증 앱으로 QR 코드를 스캔하십시오",
+ "STEP1_DESCRIPTION": "Google Authenticator, Authy 또는 TOTP 호환 앱을 사용하십시오",
+ "LOADING_QR": "로딩 중...",
+ "MANUAL_ENTRY": "스캔할 수 없습니까? 코드를 수동으로 입력하십시오",
+ "SECRET_KEY": "비밀 키",
"COPY": "복사",
- "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE": "인증 앱에서 6자리 코드를 입력하십시오",
"ENTER_CODE_PLACEHOLDER": "000000",
- "VERIFY_BUTTON": "Verify & Continue",
+ "VERIFY_BUTTON": "확인 후 계속",
"CANCEL": "취소",
- "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
- "INVALID_CODE": "Invalid verification code",
- "SECRET_COPIED": "Secret key copied to clipboard",
- "SUCCESS": "Two-factor authentication has been enabled successfully"
+ "ERROR_STARTING": "MFA가 활성화되지 않았습니다. 관리자에게 문의하십시오.",
+ "INVALID_CODE": "잘못된 인증 코드입니다",
+ "SECRET_COPIED": "비밀 키가 클립보드에 복사되었습니다",
+ "SUCCESS": "2단계 인증이 성공적으로 활성화되었습니다"
},
"BACKUP": {
- "TITLE": "Save Your Backup Codes",
- "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
- "IMPORTANT": "Important:",
- "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "TITLE": "백업 코드를 저장하십시오",
+ "DESCRIPTION": "이 코드를 안전하게 보관하십시오. 인증 앱에 접근할 수 없을 때 각 코드를 한 번씩 사용할 수 있습니다.",
+ "IMPORTANT": "중요:",
+ "IMPORTANT_NOTE": " 이 코드를 안전한 장소에 저장하십시오. 다시 확인할 수 없습니다.",
"DOWNLOAD": "다운로드",
- "COPY_ALL": "Copy All",
- "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
- "COMPLETE_SETUP": "Complete Setup",
- "CODES_COPIED": "Backup codes copied to clipboard"
+ "COPY_ALL": "모두 복사",
+ "CONFIRM": "백업 코드를 안전한 장소에 저장했으며 다시 확인할 수 없다는 것을 이해합니다",
+ "COMPLETE_SETUP": "설정 완료",
+ "CODES_COPIED": "백업 코드가 클립보드에 복사되었습니다"
},
"MANAGEMENT": {
- "BACKUP_CODES": "Backup Codes",
- "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
- "REGENERATE": "Regenerate Backup Codes",
- "DISABLE_MFA": "Disable 2FA",
- "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
- "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ "BACKUP_CODES": "백업 코드",
+ "BACKUP_CODES_DESC": "기존 코드를 분실했거나 사용한 경우 새 코드를 생성하십시오",
+ "REGENERATE": "백업 코드 재생성",
+ "DISABLE_MFA": "2FA 비활성화",
+ "DISABLE_MFA_DESC": "계정에서 2단계 인증을 제거합니다",
+ "DISABLE_BUTTON": "2단계 인증 비활성화"
},
"DISABLE": {
- "TITLE": "Disable Two-Factor Authentication",
- "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "TITLE": "2단계 인증 비활성화",
+ "DESCRIPTION": "2단계 인증을 비활성화하려면 비밀번호와 인증 코드를 입력해야 합니다.",
"PASSWORD": "비밀번호",
- "OTP_CODE": "Verification Code",
+ "OTP_CODE": "인증 코드",
"OTP_CODE_PLACEHOLDER": "000000",
- "CONFIRM": "Disable 2FA",
+ "CONFIRM": "2FA 비활성화",
"CANCEL": "취소",
- "SUCCESS": "Two-factor authentication has been disabled",
- "ERROR": "Failed to disable MFA. Please check your credentials."
+ "SUCCESS": "2단계 인증이 비활성화되었습니다",
+ "ERROR": "MFA 비활성화에 실패했습니다. 자격 증명을 확인해 주십시오."
},
"REGENERATE": {
- "TITLE": "Regenerate Backup Codes",
- "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
- "OTP_CODE": "Verification Code",
+ "TITLE": "백업 코드 재생성",
+ "DESCRIPTION": "기존 백업 코드가 무효화되고 새 코드가 생성됩니다. 계속하려면 인증 코드를 입력하십시오.",
+ "OTP_CODE": "인증 코드",
"OTP_CODE_PLACEHOLDER": "000000",
- "CONFIRM": "Generate New Codes",
+ "CONFIRM": "새 코드 생성",
"CANCEL": "취소",
- "NEW_CODES_TITLE": "New Backup Codes Generated",
- "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
- "CODES_IMPORTANT": "Important:",
- "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
- "DOWNLOAD_CODES": "Download Codes",
- "COPY_ALL_CODES": "Copy All Codes",
- "CODES_SAVED": "I've Saved My Codes",
- "SUCCESS": "New backup codes have been generated",
- "ERROR": "Failed to regenerate backup codes"
+ "NEW_CODES_TITLE": "새 백업 코드가 생성되었습니다",
+ "NEW_CODES_DESC": "기존 백업 코드가 무효화되었습니다. 이 새 코드를 안전한 장소에 저장하십시오.",
+ "CODES_IMPORTANT": "중요:",
+ "CODES_IMPORTANT_NOTE": " 각 코드는 한 번만 사용할 수 있습니다. 이 창을 닫기 전에 저장하십시오.",
+ "DOWNLOAD_CODES": "코드 다운로드",
+ "COPY_ALL_CODES": "모든 코드 복사",
+ "CODES_SAVED": "코드를 저장했습니다",
+ "SUCCESS": "새 백업 코드가 생성되었습니다",
+ "ERROR": "백업 코드 재생성에 실패했습니다"
}
},
"MFA_VERIFICATION": {
- "TITLE": "Two-Factor Authentication",
- "DESCRIPTION": "Enter your verification code to continue",
- "AUTHENTICATOR_APP": "Authenticator App",
- "BACKUP_CODE": "Backup Code",
- "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
- "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "TITLE": "2단계 인증",
+ "DESCRIPTION": "계속하려면 인증 코드를 입력하십시오",
+ "AUTHENTICATOR_APP": "인증 앱",
+ "BACKUP_CODE": "백업 코드",
+ "ENTER_OTP_CODE": "인증 앱에서 6자리 코드를 입력하십시오",
+ "ENTER_BACKUP_CODE": "백업 코드 중 하나를 입력하십시오",
"BACKUP_CODE_PLACEHOLDER": "000000",
- "VERIFY_BUTTON": "Verify",
- "TRY_ANOTHER_METHOD": "Try another verification method",
- "CANCEL_LOGIN": "Cancel and return to login",
- "HELP_TEXT": "Having trouble signing in?",
- "LEARN_MORE": "Learn more about 2FA",
+ "VERIFY_BUTTON": "확인",
+ "TRY_ANOTHER_METHOD": "다른 인증 방법 시도",
+ "CANCEL_LOGIN": "취소하고 로그인 페이지로 돌아가기",
+ "HELP_TEXT": "로그인에 문제가 있습니까?",
+ "LEARN_MORE": "2FA에 대해 자세히 알아보기",
"HELP_MODAL": {
- "TITLE": "Two-Factor Authentication Help",
- "AUTHENTICATOR_TITLE": "Using an Authenticator App",
- "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
- "BACKUP_TITLE": "Using a Backup Code",
- "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
- "CONTACT_TITLE": "Need More Help?",
- "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
- "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ "TITLE": "2단계 인증 도움말",
+ "AUTHENTICATOR_TITLE": "인증 앱 사용",
+ "AUTHENTICATOR_DESC": "인증 앱(Google Authenticator, Authy 등)을 열고 계정에 표시된 6자리 코드를 입력하십시오.",
+ "BACKUP_TITLE": "백업 코드 사용",
+ "BACKUP_DESC": "인증 앱에 접근할 수 없는 경우 2FA 설정 시 저장한 백업 코드 중 하나를 사용할 수 있습니다. 각 코드는 한 번만 사용할 수 있습니다.",
+ "CONTACT_TITLE": "추가 도움이 필요하십니까?",
+ "CONTACT_DESC_CLOUD": "인증 앱과 백업 코드 모두에 접근할 수 없는 경우 Chatwoot 지원팀에 문의하십시오.",
+ "CONTACT_DESC_SELF_HOSTED": "인증 앱과 백업 코드 모두에 접근할 수 없는 경우 관리자에게 문의하십시오."
},
- "VERIFICATION_FAILED": "Verification failed. Please try again."
+ "VERIFICATION_FAILED": "인증에 실패했습니다. 다시 시도해 주십시오."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/report.json b/app/javascript/dashboard/i18n/locale/ko/report.json
index b53d52e6f..5b923c682 100644
--- a/app/javascript/dashboard/i18n/locale/ko/report.json
+++ b/app/javascript/dashboard/i18n/locale/ko/report.json
@@ -3,9 +3,9 @@
"HEADER": "대화",
"LOADING_CHART": "차트 데이터 불러오는 중...",
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
- "DOWNLOAD_AGENT_REPORTS": "다운로드 에이전트 보고서",
- "DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
- "SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
+ "DOWNLOAD_CONVERSATION_REPORTS": "대화 보고서 다운로드",
+ "DATA_FETCHING_FAILED": "데이터를 가져오지 못했습니다. 나중에 다시 시도하십시오.",
+ "SUMMARY_FETCHING_FAILED": "요약을 가져오지 못했습니다. 나중에 다시 시도하십시오.",
"METRICS": {
"CONVERSATIONS": {
"NAME": "대화",
@@ -20,16 +20,16 @@
"DESC": "( 총 )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "첫 번째 응답 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "첫 번째 응답 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_TIME": {
"NAME": "해결 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "해결 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_COUNT": {
"NAME": "해결 수",
@@ -40,12 +40,12 @@
"DESC": "( 총 )"
},
"BOT_HANDOFF_COUNT": {
- "NAME": "Handoff Count",
+ "NAME": "핸드오프 수",
"DESC": "( 총 )"
},
"REPLY_TIME": {
- "NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "NAME": "고객 대기 시간",
+ "TOOLTIP_TEXT": "대기 시간은 {metricValue}입니다 ({conversationCount}개 응답 기준)",
"DESC": ""
}
},
@@ -53,86 +53,91 @@
"LAST_7_DAYS": "지난 7일",
"LAST_14_DAYS": "지난 14일",
"LAST_30_DAYS": "지난 30일",
- "THIS_MONTH": "This month",
- "LAST_MONTH": "Last month",
- "LAST_3_MONTHS": "Last 3 months",
- "LAST_6_MONTHS": "Last 6 months",
- "LAST_YEAR": "Last year",
- "CUSTOM_DATE_RANGE": "Custom date range"
+ "THIS_MONTH": "이번 달",
+ "LAST_MONTH": "지난 달",
+ "LAST_3_MONTHS": "지난 3개월",
+ "LAST_6_MONTHS": "지난 6개월",
+ "LAST_YEAR": "지난 1년",
+ "CUSTOM_DATE_RANGE": "사용자 지정 날짜 범위"
},
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "적용",
+ "PLACEHOLDER": "날짜 범위 선택"
},
- "GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By",
- "DURATION_FILTER_LABEL": "Duration",
+ "GROUP_BY_FILTER_DROPDOWN_LABEL": "그룹 기준",
+ "DURATION_FILTER_LABEL": "기간",
"GROUPING_OPTIONS": {
- "DAY": "Day",
- "WEEK": "Week",
- "MONTH": "Month",
- "YEAR": "Month"
+ "DAY": "일",
+ "WEEK": "주",
+ "MONTH": "월",
+ "YEAR": "년"
},
"GROUP_BY_DAY_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "일"
}
],
"GROUP_BY_WEEK_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "일"
},
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "주"
}
],
"GROUP_BY_MONTH_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "일"
},
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "주"
},
{
"id": 3,
- "groupBy": "Month"
+ "groupBy": "월"
}
],
"GROUP_BY_YEAR_OPTIONS": [
- {
- "id": 1,
- "groupBy": "Day"
- },
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "주"
},
{
"id": 3,
- "groupBy": "Month"
+ "groupBy": "월"
+ },
+ {
+ "id": 4,
+ "groupBy": "년"
}
],
"BUSINESS_HOURS": "영업시간",
"FILTER_ACTIONS": {
- "CLEAR_FILTER": "Clear filter",
+ "CLEAR_FILTER": "필터 지우기",
"EMPTY_LIST": "검색 결과가 없습니다"
},
"PAGINATION": {
- "RESULTS": "Showing {start} to {end} of {total} results",
- "PER_PAGE_TEMPLATE": "{size} / page"
+ "RESULTS": "{total}개 결과 중 {start}~{end} 표시",
+ "PER_PAGE_TEMPLATE": "{size} / 페이지"
}
},
"AGENT_REPORTS": {
- "HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "HEADER": "에이전트 개요",
+ "DESCRIPTION": "대화, 응답 시간, 해결 시간, 해결된 케이스 등 주요 지표로 에이전트 성과를 쉽게 추적할 수 있습니다. 에이전트 이름을 클릭하면 자세한 내용을 확인할 수 있습니다.",
"LOADING_CHART": "차트 데이터 불러오는 중...",
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
- "DOWNLOAD_AGENT_REPORTS": "다운로드 에이전트 보고서",
+ "DOWNLOAD_AGENT_REPORTS": "에이전트 보고서 다운로드",
"FILTER_DROPDOWN_LABEL": "에이전트 선택",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "에이전트 검색"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "대화",
@@ -147,16 +152,16 @@
"DESC": "( 총 )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "첫 번째 응답 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "첫 번째 응답 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_TIME": {
"NAME": "해결 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "해결 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_COUNT": {
"NAME": "해결 수",
@@ -174,33 +179,38 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "지난 3개월"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "지난 6개월"
},
{
"id": 4,
- "name": "Last year"
+ "name": "지난 1년"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "사용자 지정 날짜 범위"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "적용",
+ "PLACEHOLDER": "날짜 범위 선택"
}
},
"LABEL_REPORTS": {
- "HEADER": "Labels Overview",
- "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
+ "HEADER": "라벨 개요",
+ "DESCRIPTION": "대화, 응답 시간, 해결 시간, 해결된 케이스 등 주요 지표로 라벨 성과를 추적할 수 있습니다. 라벨 이름을 클릭하면 자세한 내용을 확인할 수 있습니다.",
"LOADING_CHART": "차트 데이터 불러오는 중...",
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
- "DOWNLOAD_LABEL_REPORTS": "Download label reports",
- "FILTER_DROPDOWN_LABEL": "Select Label",
+ "DOWNLOAD_LABEL_REPORTS": "라벨 보고서 다운로드",
+ "FILTER_DROPDOWN_LABEL": "라벨 선택",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "라벨 검색"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "대화",
@@ -215,16 +225,16 @@
"DESC": "( 총 )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "첫 번째 응답 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "첫 번째 응답 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_TIME": {
"NAME": "해결 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "해결 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_COUNT": {
"NAME": "해결 수",
@@ -242,35 +252,40 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "지난 3개월"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "지난 6개월"
},
{
"id": 4,
- "name": "Last year"
+ "name": "지난 1년"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "사용자 지정 날짜 범위"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "적용",
+ "PLACEHOLDER": "날짜 범위 선택"
}
},
"INBOX_REPORTS": {
- "HEADER": "Inbox Overview",
- "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
+ "HEADER": "받은 메시지함 개요",
+ "DESCRIPTION": "대화, 응답 시간, 해결 시간, 해결된 케이스 등 주요 지표로 받은 메시지함 성과를 한눈에 확인할 수 있습니다. 받은 메시지함 이름을 클릭하면 자세한 내용을 확인할 수 있습니다.",
"LOADING_CHART": "차트 데이터 불러오는 중...",
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
- "DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
- "FILTER_DROPDOWN_LABEL": "Select Inbox",
- "ALL_INBOXES": "All Inboxes",
- "SEARCH_INBOX": "Search Inbox",
+ "DOWNLOAD_INBOX_REPORTS": "받은 메시지함 보고서 다운로드",
+ "FILTER_DROPDOWN_LABEL": "받은 메시지함 선택",
+ "ALL_INBOXES": "모든 받은 메시지함",
+ "SEARCH_INBOX": "받은 메시지함 검색",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "받은 메시지함 검색"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "대화",
@@ -285,16 +300,16 @@
"DESC": "( 총 )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "첫 번째 응답 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "첫 번째 응답 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_TIME": {
"NAME": "해결 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "해결 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_COUNT": {
"NAME": "해결 수",
@@ -312,33 +327,41 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "지난 3개월"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "지난 6개월"
},
{
"id": 4,
- "name": "Last year"
+ "name": "지난 1년"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "사용자 지정 날짜 범위"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "적용",
+ "PLACEHOLDER": "날짜 범위 선택"
}
},
"TEAM_REPORTS": {
- "HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "HEADER": "팀 개요",
+ "DESCRIPTION": "대화, 응답 시간, 해결 시간, 해결된 케이스 등 필수 지표로 팀 성과를 한눈에 확인할 수 있습니다. 팀 이름을 클릭하면 자세한 내용을 확인할 수 있습니다.",
"LOADING_CHART": "차트 데이터 불러오는 중...",
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
- "DOWNLOAD_TEAM_REPORTS": "Download team reports",
- "FILTER_DROPDOWN_LABEL": "Select Team",
+ "DOWNLOAD_TEAM_REPORTS": "팀 보고서 다운로드",
+ "FILTER_DROPDOWN_LABEL": "팀 선택",
+ "FILTERS": {
+ "ADD_FILTER": "필터 추가",
+ "CLEAR_ALL": "모두 지우기",
+ "NO_FILTER": "사용 가능한 필터가 없습니다",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "팀 검색"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "대화",
@@ -353,16 +376,16 @@
"DESC": "( 총 )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "첫 번째 응답 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "첫 번째 응답 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_TIME": {
"NAME": "해결 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "해결 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_COUNT": {
"NAME": "해결 수",
@@ -380,203 +403,248 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "지난 3개월"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "지난 6개월"
},
{
"id": 4,
- "name": "Last year"
+ "name": "지난 1년"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "사용자 지정 날짜 범위"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "적용",
+ "PLACEHOLDER": "날짜 범위 선택"
}
},
"CSAT_REPORTS": {
- "HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
- "DOWNLOAD": "Download CSAT Reports",
- "DOWNLOAD_FAILED": "Failed to download CSAT Reports",
+ "HEADER": "CSAT 보고서",
+ "NO_RECORDS": "아직 응답이 없습니다",
+ "NO_RECORDS_DESCRIPTION": "고객이 피드백을 제공하기 시작하면 CSAT 설문 응답이 여기에 표시됩니다.",
+ "DOWNLOAD": "CSAT 보고서 다운로드",
+ "DOWNLOAD_FAILED": "CSAT 보고서 다운로드에 실패했습니다",
"FILTERS": {
+ "ADD_FILTER": "필터 추가",
+ "CLEAR_ALL": "모두 지우기",
+ "NO_FILTER": "사용 가능한 필터가 없습니다",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "에이전트 검색",
+ "INBOXES": "받은 메시지함 검색",
+ "TEAMS": "팀 검색",
+ "RATINGS": "평점 검색"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "에이전트"
+ },
+ "INBOXES": {
+ "LABEL": "받은 메시지함"
+ },
+ "TEAMS": {
+ "LABEL": "팀"
+ },
+ "RATINGS": {
+ "LABEL": "평점"
}
},
"TABLE": {
"HEADER": {
- "CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
- "RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "CONTACT_NAME": "연락처",
+ "AGENT_NAME": "에이전트",
+ "RATING": "평점",
+ "FEEDBACK_TEXT": "피드백 코멘트",
+ "CONVERSATION": "대화",
+ "CUSTOMER": "고객",
+ "RESPONSE": "응답",
+ "HANDLED_BY": "담당자"
+ },
+ "UNKNOWN_CUSTOMER": "알 수 없는 고객"
},
+ "NO_AGENT": "배정된 에이전트 없음",
+ "NO_FEEDBACK": "피드백이 제공되지 않았습니다",
"METRIC": {
"TOTAL_RESPONSES": {
- "LABEL": "Total responses",
- "TOOLTIP": "Total number of responses collected"
+ "LABEL": "총 응답 수",
+ "TOOLTIP": "수집된 총 응답 수"
},
"SATISFACTION_SCORE": {
- "LABEL": "Satisfaction score",
- "TOOLTIP": "Total number of positive responses / Total number of responses * 100"
+ "LABEL": "만족도 점수",
+ "TOOLTIP": "긍정적 응답 수 / 총 응답 수 * 100"
},
"RESPONSE_RATE": {
- "LABEL": "Response rate",
- "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ "LABEL": "응답률",
+ "TOOLTIP": "총 응답 수 / 발송된 CSAT 설문 메시지 수 * 100"
+ },
+ "RATING_DISTRIBUTION": "평점 분포"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "리뷰 메모",
+ "PLACEHOLDER": "이 평점에 대한 리뷰 메모를 추가하십시오...",
+ "SAVE": "저장",
+ "CANCEL": "취소",
+ "SAVING": "저장 중...",
+ "SAVED": "메모가 성공적으로 저장되었습니다",
+ "SAVE_ERROR": "메모 저장에 실패했습니다",
+ "UPDATED_BY": "{name}이(가) {time}에 업데이트함",
+ "UPDATED_BY_LABEL": "업데이트한 사람",
+ "PAYWALL": {
+ "TITLE": "리뷰 메모를 추가하려면 업그레이드하십시오",
+ "AVAILABLE_ON": "리뷰 메모 기능은 Business 및 Enterprise 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "리뷰 메모를 통해 모든 CSAT 응답에 내부 컨텍스트를 추가할 수 있습니다. 실제 상황을 기록하고, 패턴을 빠르게 파악하며, 피드백을 기반으로 더 나은 결정을 내리십시오.",
+ "UPGRADE_NOW": "지금 업그레이드",
+ "CANCEL_ANYTIME": "언제든지 플랜을 변경하거나 취소할 수 있습니다"
}
}
},
"BOT_REPORTS": {
- "HEADER": "Bot Reports",
+ "HEADER": "봇 보고서",
"METRIC": {
"TOTAL_CONVERSATIONS": {
- "LABEL": "No. of Conversations",
- "TOOLTIP": "Total number of conversations handled by the bot"
+ "LABEL": "대화 수",
+ "TOOLTIP": "봇이 처리한 총 대화 수"
},
"TOTAL_RESPONSES": {
- "LABEL": "Total Responses",
- "TOOLTIP": "Total number of responses sent by the bot"
+ "LABEL": "총 응답 수",
+ "TOOLTIP": "봇이 보낸 총 응답 수"
},
"RESOLUTION_RATE": {
- "LABEL": "Resolution Rate",
- "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ "LABEL": "해결률",
+ "TOOLTIP": "봇이 해결한 대화 수 / 봇이 처리한 총 대화 수 * 100"
},
"HANDOFF_RATE": {
- "LABEL": "Handoff Rate",
- "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
+ "LABEL": "핸드오프율",
+ "TOOLTIP": "에이전트에게 전달된 대화 수 / 봇이 처리한 총 대화 수 * 100"
}
}
},
"OVERVIEW_REPORTS": {
- "HEADER": "Overview",
- "LIVE": "Live",
+ "HEADER": "개요",
+ "LIVE": "실시간",
"ACCOUNT_CONVERSATIONS": {
- "HEADER": "Open Conversations",
- "LOADING_MESSAGE": "Loading conversation metrics...",
- "OPEN": "열기",
- "UNATTENDED": "Unattended",
- "UNASSIGNED": "지정되지 않음",
- "PENDING": "보내는 중"
+ "HEADER": "열린 대화",
+ "LOADING_MESSAGE": "대화 지표 불러오는 중...",
+ "OPEN": "열림",
+ "UNATTENDED": "미응대",
+ "UNASSIGNED": "미배정",
+ "PENDING": "보류 중"
},
"CONVERSATION_HEATMAP": {
- "HEADER": "Conversation Traffic",
- "NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "{count} conversation",
- "CONVERSATIONS": "{count} conversations",
- "DOWNLOAD_REPORT": "Download report"
+ "HEADER": "대화 트래픽",
+ "NO_CONVERSATIONS": "대화 없음",
+ "CONVERSATION": "{count}개 대화",
+ "CONVERSATIONS": "{count}개 대화",
+ "DOWNLOAD_REPORT": "보고서 다운로드"
},
"RESOLUTION_HEATMAP": {
- "HEADER": "Resolutions",
- "NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "{count} conversation",
- "CONVERSATIONS": "{count} conversations",
- "DOWNLOAD_REPORT": "Download report"
+ "HEADER": "해결",
+ "NO_CONVERSATIONS": "대화 없음",
+ "CONVERSATION": "{count}개 대화",
+ "CONVERSATIONS": "{count}개 대화",
+ "DOWNLOAD_REPORT": "보고서 다운로드"
},
"AGENT_CONVERSATIONS": {
- "HEADER": "Conversations by agents",
- "LOADING_MESSAGE": "Loading agent metrics...",
- "NO_AGENTS": "There are no conversations by agents",
+ "HEADER": "에이전트별 대화",
+ "LOADING_MESSAGE": "에이전트 지표 불러오는 중...",
+ "NO_AGENTS": "에이전트별 대화가 없습니다",
"TABLE_HEADER": {
"AGENT": "에이전트",
- "OPEN": "열기",
- "UNATTENDED": "Unattended",
+ "OPEN": "열림",
+ "UNATTENDED": "미응대",
"STATUS": "상태"
}
},
"TEAM_CONVERSATIONS": {
- "ALL_TEAMS": "All Teams",
- "HEADER": "Conversations by teams",
- "LOADING_MESSAGE": "Loading team metrics...",
- "NO_TEAMS": "There is no data available",
+ "ALL_TEAMS": "모든 팀",
+ "HEADER": "팀별 대화",
+ "LOADING_MESSAGE": "팀 지표 불러오는 중...",
+ "NO_TEAMS": "사용 가능한 데이터가 없습니다",
"TABLE_HEADER": {
- "TEAM": "Team",
- "OPEN": "열기",
- "UNATTENDED": "Unattended",
+ "TEAM": "팀",
+ "OPEN": "열림",
+ "UNATTENDED": "미응대",
"STATUS": "상태"
}
},
"AGENT_STATUS": {
- "HEADER": "Agent status",
+ "HEADER": "에이전트 상태",
"ONLINE": "온라인",
"BUSY": "바쁨",
"OFFLINE": "오프라인"
}
},
"DAYS_OF_WEEK": {
- "SUNDAY": "Sunday",
- "MONDAY": "Monday",
- "TUESDAY": "Tuesday",
- "WEDNESDAY": "Wednesday",
- "THURSDAY": "Thursday",
- "FRIDAY": "Friday",
- "SATURDAY": "Saturday"
+ "SUNDAY": "일요일",
+ "MONDAY": "월요일",
+ "TUESDAY": "화요일",
+ "WEDNESDAY": "수요일",
+ "THURSDAY": "목요일",
+ "FRIDAY": "금요일",
+ "SATURDAY": "토요일"
},
"SLA_REPORTS": {
- "HEADER": "SLA Reports",
- "NO_RECORDS": "SLA applied conversations are not available.",
- "LOADING": "Loading SLA data...",
- "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
- "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "HEADER": "SLA 보고서",
+ "NO_RECORDS": "SLA가 적용된 대화가 없습니다.",
+ "LOADING": "SLA 데이터 불러오는 중...",
+ "DOWNLOAD_SLA_REPORTS": "SLA 보고서 다운로드",
+ "DOWNLOAD_FAILED": "SLA 보고서 다운로드에 실패했습니다",
"DROPDOWN": {
- "ADD_FIlTER": "Add filter",
- "CLEAR_ALL": "Clear all",
- "CLEAR_FILTER": "Clear filter",
+ "ADD_FIlTER": "필터 추가",
+ "CLEAR_ALL": "모두 지우기",
+ "CLEAR_FILTER": "필터 지우기",
"EMPTY_LIST": "검색 결과가 없습니다",
- "NO_FILTER": "No filters available",
- "SEARCH": "Search filter",
+ "NO_FILTER": "사용 가능한 필터가 없습니다",
+ "SEARCH": "필터 검색",
"INPUT_PLACEHOLDER": {
- "SLA": "SLA name",
- "AGENTS": "Agent name",
- "INBOXES": "Inbox name",
+ "SLA": "SLA 이름",
+ "AGENTS": "에이전트 이름",
+ "INBOXES": "받은 메시지함 이름",
"LABELS": "라벨 이름",
- "TEAMS": "Team name"
+ "TEAMS": "팀 이름"
},
- "SLA": "SLA Policy",
+ "SLA": "SLA 정책",
"INBOXES": "받은 메시지함",
"AGENTS": "에이전트",
- "LABELS": "Label",
- "TEAMS": "Team"
+ "LABELS": "라벨",
+ "TEAMS": "팀"
},
- "WITH": "with",
+ "WITH": "포함",
"METRICS": {
"HIT_RATE": {
- "LABEL": "Hit Rate",
- "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ "LABEL": "달성률",
+ "TOOLTIP": "생성된 SLA 중 성공적으로 완료된 비율"
},
"NO_OF_MISSES": {
- "LABEL": "Number of Misses",
- "TOOLTIP": "Total SLA misses in a certain period"
+ "LABEL": "미달성 수",
+ "TOOLTIP": "특정 기간 내 총 SLA 미달성 수"
},
"NO_OF_CONVERSATIONS": {
- "LABEL": "Number of Conversations",
- "TOOLTIP": "Total number of conversations with SLA"
+ "LABEL": "대화 수",
+ "TOOLTIP": "SLA가 적용된 총 대화 수"
}
},
"TABLE": {
"HEADER": {
- "POLICY": "Policy",
- "CONVERSATION": "Conversation",
+ "POLICY": "정책",
+ "CONVERSATION": "대화",
"AGENT": "에이전트"
},
- "VIEW_DETAILS": "View Details"
+ "VIEW_DETAILS": "상세 보기"
}
},
"SUMMARY_REPORTS": {
"INBOX": "받은 메시지함",
"AGENT": "에이전트",
- "TEAM": "Team",
- "LABEL": "Label",
- "AVG_RESOLUTION_TIME": "Avg. Resolution Time",
- "AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
- "AVG_REPLY_TIME": "Avg. Customer Waiting Time",
+ "TEAM": "팀",
+ "LABEL": "라벨",
+ "AVG_RESOLUTION_TIME": "평균 해결 시간",
+ "AVG_FIRST_RESPONSE_TIME": "평균 첫 번째 응답 시간",
+ "AVG_REPLY_TIME": "평균 고객 대기 시간",
"RESOLUTION_COUNT": "해결 수",
- "CONVERSATIONS": "No. of conversations"
+ "CONVERSATIONS": "대화 수"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/resetPassword.json b/app/javascript/dashboard/i18n/locale/ko/resetPassword.json
index 4a17337be..5e57f706f 100644
--- a/app/javascript/dashboard/i18n/locale/ko/resetPassword.json
+++ b/app/javascript/dashboard/i18n/locale/ko/resetPassword.json
@@ -1,15 +1,15 @@
{
"RESET_PASSWORD": {
"TITLE": "비밀번호 재설정하기",
- "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.",
- "GO_BACK_TO_LOGIN": "If you want to go back to the login page,",
+ "DESCRIPTION": "비밀번호 재설정 안내를 받으려면 Chatwoot에 로그인할 때 사용하는 이메일 주소를 입력하십시오.",
+ "GO_BACK_TO_LOGIN": "로그인 페이지로 돌아가려면",
"EMAIL": {
"LABEL": "이메일",
"PLACEHOLDER": "이메일을 입력해 주세요.",
"ERROR": "올바른 이메일 주소를 입력하세요."
},
"API": {
- "SUCCESS_MESSAGE": "비밀번호 재설정 링크가 이메일로 전송됨.",
+ "SUCCESS_MESSAGE": "비밀번호 재설정 링크가 이메일로 전송되었습니다.",
"ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요."
},
"SUBMIT": "보내기"
diff --git a/app/javascript/dashboard/i18n/locale/ko/search.json b/app/javascript/dashboard/i18n/locale/ko/search.json
index 6546b02b4..90630a3de 100644
--- a/app/javascript/dashboard/i18n/locale/ko/search.json
+++ b/app/javascript/dashboard/i18n/locale/ko/search.json
@@ -1,68 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "All results",
+ "ALL": "모든 결과",
"CONTACTS": "연락처",
"CONVERSATIONS": "대화",
"MESSAGES": "메시지",
- "ARTICLES": "Articles"
+ "ARTICLES": "문서"
},
"SECTION": {
"CONTACTS": "연락처",
"CONVERSATIONS": "대화",
"MESSAGES": "메시지",
- "ARTICLES": "Articles"
+ "ARTICLES": "문서"
},
- "VIEW_MORE": "View more",
- "LOAD_MORE": "Load more",
- "SEARCHING_DATA": "Searching",
- "LOADING_DATA": "Loading",
- "EMPTY_STATE": "No {item} found for query '{query}'",
- "EMPTY_STATE_FULL": "No results found for query '{query}'",
- "PLACEHOLDER_KEYBINDING": "/to focus",
- "INPUT_PLACEHOLDER": "Type 3 or more characters to search",
- "RECENT_SEARCHES": "Recent searches",
- "CLEAR_ALL": "Clear all",
- "MOST_RECENT": "Most recent",
- "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
+ "VIEW_MORE": "더 보기",
+ "LOAD_MORE": "더 불러오기",
+ "SEARCHING_DATA": "검색 중",
+ "LOADING_DATA": "로딩 중",
+ "EMPTY_STATE": "'{query}' 검색어에 대한 {item}을(를) 찾을 수 없습니다",
+ "EMPTY_STATE_FULL": "'{query}' 검색어에 대한 결과를 찾을 수 없습니다",
+ "PLACEHOLDER_KEYBINDING": "/ 로 포커스",
+ "INPUT_PLACEHOLDER": "검색하려면 3자 이상 입력하십시오",
+ "RECENT_SEARCHES": "최근 검색",
+ "CLEAR_ALL": "모두 지우기",
+ "MOST_RECENT": "최근",
+ "EMPTY_STATE_DEFAULT": "더 나은 검색 결과를 위해 대화 ID, 이메일, 전화번호, 메시지로 검색하십시오. ",
"BOT_LABEL": "봇",
- "READ_MORE": "Read more",
- "READ_LESS": "Read less",
- "WROTE": "wrote:",
- "FROM": "From",
+ "READ_MORE": "더 읽기",
+ "READ_LESS": "접기",
+ "WROTE": "작성:",
+ "FROM": "보낸 사람",
"EMAIL": "이메일",
- "EMAIL_SUBJECT": "Subject",
- "PRIVATE": "Private note",
- "TRANSCRIPT": "Transcript",
- "CREATED_AT": "created {time}",
- "UPDATED_AT": "updated {time}",
+ "EMAIL_SUBJECT": "제목",
+ "PRIVATE": "비공개 메모",
+ "TRANSCRIPT": "대화 내용",
+ "CREATED_AT": "{time}에 생성됨",
+ "UPDATED_AT": "{time}에 업데이트됨",
"SORT_BY": {
- "RELEVANCE": "Relevance"
+ "RELEVANCE": "관련도"
},
"DATE_RANGE": {
"LAST_7_DAYS": "지난 7일",
"LAST_30_DAYS": "지난 30일",
"LAST_60_DAYS": "지난 60일",
"LAST_90_DAYS": "지난 90일",
- "CUSTOM_RANGE": "Custom range:",
- "CREATED_BETWEEN": "Created between",
- "AND": "and",
- "APPLY": "Apply",
- "BEFORE_DATE": "Before {date}",
- "AFTER_DATE": "After {date}",
- "TIME_RANGE": "Filter by time",
- "CLEAR_FILTER": "Clear filter"
+ "CUSTOM_RANGE": "사용자 지정 범위:",
+ "CREATED_BETWEEN": "생성 기간",
+ "AND": "~",
+ "APPLY": "적용",
+ "BEFORE_DATE": "{date} 이전",
+ "AFTER_DATE": "{date} 이후",
+ "TIME_RANGE": "기간별 필터",
+ "CLEAR_FILTER": "필터 지우기"
},
"FILTERS": {
- "FILTER_MESSAGE": "Filter messages by:",
- "FROM": "Sender",
+ "FILTER_MESSAGE": "메시지 필터 기준:",
+ "FROM": "발신자",
"IN": "받은 메시지함",
"AGENTS": "에이전트",
"CONTACTS": "연락처",
"INBOXES": "받은 메시지함",
- "NO_AGENTS": "에이전트를 찾을 수 없음",
- "NO_CONTACTS": "Start by searching to see results",
- "NO_INBOXES": "No inboxes found"
+ "NO_AGENTS": "에이전트를 찾을 수 없습니다",
+ "NO_CONTACTS": "검색을 시작하여 결과를 확인하십시오",
+ "NO_INBOXES": "받은 메시지함을 찾을 수 없습니다"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/setNewPassword.json b/app/javascript/dashboard/i18n/locale/ko/setNewPassword.json
index 1456ba40e..d015d3922 100644
--- a/app/javascript/dashboard/i18n/locale/ko/setNewPassword.json
+++ b/app/javascript/dashboard/i18n/locale/ko/setNewPassword.json
@@ -4,19 +4,19 @@
"PASSWORD": {
"LABEL": "비밀번호",
"PLACEHOLDER": "비밀번호",
- "ERROR": "비밀번호가 너무 짧음."
+ "ERROR": "비밀번호가 너무 짧습니다."
},
"CONFIRM_PASSWORD": {
"LABEL": "비밀번호 확인",
"PLACEHOLDER": "비밀번호 확인",
- "ERROR": "비밀번호가 일치하지 않음."
+ "ERROR": "비밀번호가 일치하지 않습니다."
},
"API": {
- "SUCCESS_MESSAGE": "비밀번호 변경 성공.",
+ "SUCCESS_MESSAGE": "비밀번호가 성공적으로 변경되었습니다.",
"ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요."
},
"CAPTCHA": {
- "ERROR": "Verification expired. Please solve captcha again."
+ "ERROR": "인증이 만료되었습니다. 캡차를 다시 완료해 주십시오."
},
"SUBMIT": "보내기"
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/settings.json b/app/javascript/dashboard/i18n/locale/ko/settings.json
index 889cbd52c..69a5e08f6 100644
--- a/app/javascript/dashboard/i18n/locale/ko/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ko/settings.json
@@ -3,14 +3,14 @@
"LINK": "프로필 설정",
"TITLE": "프로필 설정",
"BTN_TEXT": "프로필 업데이트",
- "DELETE_AVATAR": "Delete Avatar",
- "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully",
- "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again",
- "UPDATE_SUCCESS": "Your profile has been updated successfully",
- "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
- "AFTER_EMAIL_CHANGED": "프로필이 성공적으로 업데이트되었습니다. 로그인 자격 증명이 변경된 경우 다시 로그인하십시오.",
+ "DELETE_AVATAR": "아바타 삭제",
+ "AVATAR_DELETE_SUCCESS": "아바타가 성공적으로 삭제되었습니다",
+ "AVATAR_DELETE_FAILED": "아바타 삭제 중 오류가 발생했습니다. 다시 시도하십시오",
+ "UPDATE_SUCCESS": "프로필이 성공적으로 업데이트되었습니다",
+ "PASSWORD_UPDATE_SUCCESS": "비밀번호가 성공적으로 변경되었습니다",
+ "AFTER_EMAIL_CHANGED": "프로필이 성공적으로 업데이트되었습니다. 로그인 자격 증명이 변경되었으므로 다시 로그인하십시오.",
"FORM": {
- "PICTURE": "Profile Picture",
+ "PICTURE": "프로필 사진",
"AVATAR": "프로필 이미지",
"ERROR": "양식 오류를 수정하십시오",
"REMOVE_IMAGE": "제거",
@@ -18,168 +18,168 @@
"UPDATE_IMAGE": "이미지 업데이트",
"PROFILE_SECTION": {
"TITLE": "프로필",
- "NOTE": "당신의 이메일 주소는 당신의 신분이고 로그인에 사용됩니다."
+ "NOTE": "이메일 주소는 사용자 식별에 사용되며 로그인에 사용됩니다."
},
"SEND_MESSAGE": {
- "TITLE": "Hotkey to send messages",
- "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.",
- "UPDATE_SUCCESS": "Your settings have been updated successfully",
+ "TITLE": "메시지 전송 단축키",
+ "NOTE": "작성 스타일에 따라 단축키(Enter 또는 Cmd/Ctrl+Enter)를 선택할 수 있습니다.",
+ "UPDATE_SUCCESS": "설정이 성공적으로 업데이트되었습니다",
"CARD": {
"ENTER_KEY": {
"HEADING": "Enter (↵)",
- "CONTENT": "Send messages by pressing Enter key instead of clicking the send button."
+ "CONTENT": "전송 버튼을 클릭하는 대신 Enter 키를 눌러 메시지를 전송합니다."
},
"CMD_ENTER_KEY": {
"HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)",
- "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button."
+ "CONTENT": "전송 버튼을 클릭하는 대신 Cmd/Ctrl + Enter 키를 눌러 메시지를 전송합니다."
}
}
},
"INTERFACE_SECTION": {
- "TITLE": "Interface",
- "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "TITLE": "인터페이스",
+ "NOTE": "대시보드의 모양과 느낌을 사용자 정의합니다.",
"FONT_SIZE": {
- "TITLE": "Font size",
- "NOTE": "Adjust the text size across the dashboard based on your preference.",
- "UPDATE_SUCCESS": "Your font settings have been updated successfully",
- "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "TITLE": "글꼴 크기",
+ "NOTE": "선호도에 따라 대시보드 전체의 텍스트 크기를 조정합니다.",
+ "UPDATE_SUCCESS": "글꼴 설정이 성공적으로 업데이트되었습니다",
+ "UPDATE_ERROR": "글꼴 설정 업데이트 중 오류가 발생했습니다. 다시 시도하십시오",
"OPTIONS": {
- "SMALLER": "Smaller",
- "SMALL": "Small",
- "DEFAULT": "Default",
- "LARGE": "Large",
- "LARGER": "Larger",
- "EXTRA_LARGE": "Extra Large"
+ "SMALLER": "더 작게",
+ "SMALL": "작게",
+ "DEFAULT": "기본",
+ "LARGE": "크게",
+ "LARGER": "더 크게",
+ "EXTRA_LARGE": "매우 크게"
}
},
"LANGUAGE": {
- "TITLE": "Preferred Language",
- "NOTE": "Choose the language you want to use.",
- "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
- "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
- "USE_ACCOUNT_DEFAULT": "Use account default"
+ "TITLE": "선호 언어",
+ "NOTE": "사용할 언어를 선택하십시오.",
+ "UPDATE_SUCCESS": "언어 설정이 성공적으로 업데이트되었습니다",
+ "UPDATE_ERROR": "언어 설정 업데이트 중 오류가 발생했습니다. 다시 시도하십시오",
+ "USE_ACCOUNT_DEFAULT": "계정 기본값 사용"
}
},
"MESSAGE_SIGNATURE_SECTION": {
- "TITLE": "Personal message signature",
- "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
- "BTN_TEXT": "Save message signature",
- "API_ERROR": "Couldn't save signature! Try again",
- "API_SUCCESS": "Signature saved successfully",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "TITLE": "개인 메시지 서명",
+ "NOTE": "모든 받은 메시지함에서 보내는 모든 메시지 끝에 표시되는 고유한 메시지 서명을 만드십시오. 인라인 이미지도 포함할 수 있으며, 라이브 채팅, 이메일 및 API 받은 메시지함에서 지원됩니다.",
+ "BTN_TEXT": "메시지 서명 저장",
+ "API_ERROR": "서명을 저장할 수 없습니다! 다시 시도하십시오",
+ "API_SUCCESS": "서명이 성공적으로 저장되었습니다",
+ "IMAGE_UPLOAD_ERROR": "이미지를 업로드할 수 없습니다! 다시 시도하십시오",
+ "IMAGE_UPLOAD_SUCCESS": "이미지가 성공적으로 추가되었습니다. 저장을 클릭하여 서명을 저장하십시오",
+ "IMAGE_UPLOAD_SIZE_ERROR": "이미지 크기는 {size}MB 미만이어야 합니다"
},
"MESSAGE_SIGNATURE": {
- "LABEL": "Message Signature",
- "ERROR": "Message Signature cannot be empty",
- "PLACEHOLDER": "Insert your personal message signature here."
+ "LABEL": "메시지 서명",
+ "ERROR": "메시지 서명은 비워둘 수 없습니다",
+ "PLACEHOLDER": "여기에 개인 메시지 서명을 입력하십시오."
},
"PASSWORD_SECTION": {
"TITLE": "비밀번호",
- "NOTE": "암호를 업데이트하면 여러 장치의 로그인이 재설정됩니다.",
- "BTN_TEXT": "Change password"
+ "NOTE": "비밀번호를 업데이트하면 여러 기기의 로그인이 재설정됩니다.",
+ "BTN_TEXT": "비밀번호 변경"
},
"SECURITY_SECTION": {
- "TITLE": "Security",
- "NOTE": "Manage additional security features for your account.",
- "MFA_BUTTON": "Manage Two-Factor Authentication"
+ "TITLE": "보안",
+ "NOTE": "계정의 추가 보안 기능을 관리합니다.",
+ "MFA_BUTTON": "2단계 인증 관리"
},
"ACCESS_TOKEN": {
- "TITLE": "엑세스 토큰",
- "NOTE": "API 기반 통합을 구축하는 경우 이 토큰을 사용할 수 있음",
+ "TITLE": "액세스 토큰",
+ "NOTE": "API 기반 통합을 구축하는 경우 이 토큰을 사용할 수 있습니다",
"COPY": "복사",
- "RESET": "Reset",
- "CONFIRM_RESET": "Are you sure?",
- "CONFIRM_HINT": "Click again to confirm",
- "RESET_SUCCESS": "Access token regenerated successfully",
- "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ "RESET": "재설정",
+ "CONFIRM_RESET": "정말로 진행하시겠습니까?",
+ "CONFIRM_HINT": "확인하려면 다시 클릭하십시오",
+ "RESET_SUCCESS": "액세스 토큰이 성공적으로 재생성되었습니다",
+ "RESET_ERROR": "액세스 토큰을 재생성할 수 없습니다. 다시 시도하십시오"
},
"AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "Audio Alerts",
- "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
- "PLAY": "Play sound",
+ "TITLE": "오디오 알림",
+ "NOTE": "새 메시지 및 대화에 대한 대시보드 오디오 알림을 활성화합니다.",
+ "PLAY": "소리 재생",
"ALERT_TYPES": {
"NONE": "없음",
- "MINE": "Assigned",
+ "MINE": "배정됨",
"ALL": "모두",
- "ASSIGNED": "My assigned conversations",
- "UNASSIGNED": "Unassigned conversations",
- "NOTME": "Open conversations assigned to others"
+ "ASSIGNED": "내 배정된 대화",
+ "UNASSIGNED": "배정되지 않은 대화",
+ "NOTME": "다른 사람에게 배정된 열린 대화"
},
"ALERT_COMBINATIONS": {
- "NONE": "You haven't selected any options, you won't receive any audio alerts.",
- "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
- "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
- "NOTME": "You'll receive alerts for conversations assigned to others.",
- "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
- "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
- "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
- "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ "NONE": "옵션을 선택하지 않았습니다. 오디오 알림을 받지 않습니다.",
+ "ASSIGNED": "배정된 대화에 대한 알림을 받습니다.",
+ "UNASSIGNED": "배정되지 않은 대화에 대한 알림을 받습니다.",
+ "NOTME": "다른 사람에게 배정된 대화에 대한 알림을 받습니다.",
+ "ASSIGNED+UNASSIGNED": "배정된 대화 및 미배정 대화에 대한 알림을 받습니다.",
+ "ASSIGNED+NOTME": "배정된 대화 및 다른 사람에게 배정된 대화에 대한 알림을 받지만, 미배정 대화에 대해서는 받지 않습니다.",
+ "NOTME+UNASSIGNED": "미배정 대화 및 다른 사람에게 배정된 대화에 대한 알림을 받습니다.",
+ "ASSIGNED+NOTME+UNASSIGNED": "모든 대화에 대한 알림을 받습니다."
},
"ALERT_TYPE": {
- "TITLE": "Alert events for conversations",
+ "TITLE": "대화 알림 이벤트",
"NONE": "없음",
- "ASSIGNED": "Assigned Conversations",
- "ALL_CONVERSATIONS": "All Conversations"
+ "ASSIGNED": "배정된 대화",
+ "ALL_CONVERSATIONS": "모든 대화"
},
"DEFAULT_TONE": {
- "TITLE": "Alert tone:"
+ "TITLE": "알림 소리:"
},
"CONDITIONS": {
- "TITLE": "Alert conditions:",
- "CONDITION_ONE": "Send audio alerts only if the browser window is not active",
- "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
+ "TITLE": "알림 조건:",
+ "CONDITION_ONE": "브라우저 창이 활성화되지 않은 경우에만 오디오 알림 전송",
+ "CONDITION_TWO": "배정된 모든 대화를 읽을 때까지 30초마다 알림 전송"
},
- "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
- "READ_MORE": "Read more"
+ "SOUND_PERMISSION_ERROR": "브라우저에서 자동 재생이 비활성화되어 있습니다. 알림을 자동으로 들으려면 브라우저 설정에서 소리 권한을 활성화하거나 페이지와 상호 작용하십시오.",
+ "READ_MORE": "자세히 보기"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "이메일 알림",
- "NOTE": "여기서 이메일 알림 기본 설정 업데이트",
- "CONVERSATION_ASSIGNMENT": "대화가 할당될 때 이메일 알림 보내기",
+ "NOTE": "여기서 이메일 알림 기본 설정을 업데이트하십시오",
+ "CONVERSATION_ASSIGNMENT": "대화가 배정될 때 이메일 알림 보내기",
"CONVERSATION_CREATION": "새 대화가 생성될 때 이메일 알림 보내기",
"CONVERSATION_MENTION": "대화에서 멘션될 때 이메일 알림 보내기",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "할당된 대화에서 새 메시지가 생성될 때 이메일 알림 보내기",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation",
- "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
- "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
- "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "배정된 대화에서 새 메시지가 생성될 때 이메일 알림 보내기",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "참여 중인 대화에서 새 메시지가 생성될 때 이메일 알림 보내기",
+ "SLA_MISSED_FIRST_RESPONSE": "대화가 첫 응답 SLA를 놓쳤을 때 이메일 알림 보내기",
+ "SLA_MISSED_NEXT_RESPONSE": "대화가 다음 응답 SLA를 놓쳤을 때 이메일 알림 보내기",
+ "SLA_MISSED_RESOLUTION": "대화가 해결 SLA를 놓쳤을 때 이메일 알림 보내기"
},
"NOTIFICATIONS": {
- "TITLE": "Notification preferences",
- "TYPE_TITLE": "Notification type",
+ "TITLE": "알림 기본 설정",
+ "TYPE_TITLE": "알림 유형",
"EMAIL": "이메일",
- "PUSH": "Push notification",
+ "PUSH": "푸시 알림",
"TYPES": {
- "CONVERSATION_CREATED": "A new conversation is created",
- "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
- "CONVERSATION_MENTION": "You are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
- "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
- "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
- "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ "CONVERSATION_CREATED": "새 대화가 생성됨",
+ "CONVERSATION_ASSIGNED": "대화가 배정됨",
+ "CONVERSATION_MENTION": "대화에서 멘션됨",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "배정된 대화에서 새 메시지가 생성됨",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "참여 중인 대화에서 새 메시지가 생성됨",
+ "SLA_MISSED_FIRST_RESPONSE": "대화가 첫 응답 SLA를 놓침",
+ "SLA_MISSED_NEXT_RESPONSE": "대화가 다음 응답 SLA를 놓침",
+ "SLA_MISSED_RESOLUTION": "대화가 해결 SLA를 놓침"
},
- "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
+ "BROWSER_PERMISSION": "브라우저의 푸시 알림을 활성화하여 알림을 받을 수 있도록 하십시오"
},
"API": {
- "UPDATE_SUCCESS": "알림 기본 설정이 성공적으로 업데이트됨",
+ "UPDATE_SUCCESS": "알림 기본 설정이 성공적으로 업데이트되었습니다",
"UPDATE_ERROR": "기본 설정을 업데이트하는 동안 오류가 발생했습니다. 다시 시도하십시오."
},
"PUSH_NOTIFICATIONS_SECTION": {
"TITLE": "푸시 알림",
- "NOTE": "여기에서 푸시 알림 기본 설정 업데이트",
- "CONVERSATION_ASSIGNMENT": "대화가 할당되면 푸시 알림 보내기",
- "CONVERSATION_CREATION": "새 대화가 만들어질 때 푸시 알림 보내기",
+ "NOTE": "여기에서 푸시 알림 기본 설정을 업데이트하십시오",
+ "CONVERSATION_ASSIGNMENT": "대화가 배정될 때 푸시 알림 보내기",
+ "CONVERSATION_CREATION": "새 대화가 생성될 때 푸시 알림 보내기",
"CONVERSATION_MENTION": "대화에서 멘션될 때 푸시 알림 보내기",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "할당된 대화에서 새 메시지가 생성될 때 푸시 알림 보내기",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
- "HAS_ENABLED_PUSH": "이 브라우저에 대한 푸시를 사용 가능으로 설정하셨습니다.",
- "REQUEST_PUSH": "푸시 알림 사용",
- "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
- "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
- "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "배정된 대화에서 새 메시지가 생성될 때 푸시 알림 보내기",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "참여 중인 대화에서 새 메시지가 생성될 때 푸시 알림 보내기",
+ "HAS_ENABLED_PUSH": "이 브라우저에서 푸시 알림이 활성화되었습니다.",
+ "REQUEST_PUSH": "푸시 알림 활성화",
+ "SLA_MISSED_FIRST_RESPONSE": "대화가 첫 응답 SLA를 놓쳤을 때 푸시 알림 보내기",
+ "SLA_MISSED_NEXT_RESPONSE": "대화가 다음 응답 SLA를 놓쳤을 때 푸시 알림 보내기",
+ "SLA_MISSED_RESOLUTION": "대화가 해결 SLA를 놓쳤을 때 푸시 알림 보내기"
},
"PROFILE_IMAGE": {
"LABEL": "프로필 이미지"
@@ -190,100 +190,101 @@
"PLACEHOLDER": "전체 이름을 입력하십시오."
},
"DISPLAY_NAME": {
- "LABEL": "표기 이름",
+ "LABEL": "표시 이름",
"ERROR": "올바른 표시 이름을 입력하십시오.",
"PLACEHOLDER": "대화에서 표시되는 표시 이름을 입력하십시오."
},
"AVAILABILITY": {
- "LABEL": "유용성",
+ "LABEL": "상태",
"STATUS": {
"ONLINE": "온라인",
"BUSY": "바쁨",
"OFFLINE": "오프라인"
},
- "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
- "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
+ "SET_AVAILABILITY_SUCCESS": "상태가 성공적으로 설정되었습니다",
+ "SET_AVAILABILITY_ERROR": "상태를 설정할 수 없습니다. 다시 시도하십시오",
+ "IMPERSONATING_ERROR": "사용자를 대리하는 동안 상태를 변경할 수 없습니다"
},
"EMAIL": {
"LABEL": "이메일 주소",
- "ERROR": "올바른 전자 메일 주소를 입력하십시오.",
+ "ERROR": "올바른 이메일 주소를 입력하십시오.",
"PLACEHOLDER": "대화 중에 표시되는 이메일 주소를 입력하십시오."
},
"CURRENT_PASSWORD": {
- "LABEL": "Current password",
- "ERROR": "Please enter the current password",
- "PLACEHOLDER": "Please enter the current password"
+ "LABEL": "현재 비밀번호",
+ "ERROR": "현재 비밀번호를 입력하십시오",
+ "PLACEHOLDER": "현재 비밀번호를 입력하십시오"
},
"PASSWORD": {
- "LABEL": "New password",
+ "LABEL": "새 비밀번호",
"ERROR": "6글자 이상의 비밀번호를 입력하십시오.",
"PLACEHOLDER": "새 비밀번호를 입력하십시오."
},
"PASSWORD_CONFIRMATION": {
"LABEL": "새 비밀번호 확인",
- "ERROR": "비밀번호가 비밀번호와 일치하는지 확인",
- "PLACEHOLDER": "Please re-enter your new password"
+ "ERROR": "확인 비밀번호가 비밀번호와 일치해야 합니다",
+ "PLACEHOLDER": "새 비밀번호를 다시 입력하십시오."
}
}
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "변경",
- "CHANGE_ACCOUNTS": "Switch account",
- "SWITCH_ACCOUNT": "Switch account",
- "CONTACT_SUPPORT": "Contact support",
+ "CHANGE_ACCOUNTS": "계정 전환",
+ "SWITCH_ACCOUNT": "계정 전환",
+ "CONTACT_SUPPORT": "지원 문의",
"SELECTOR_SUBTITLE": "다음 목록에서 계정 선택",
- "PROFILE_SETTINGS": "Profile settings",
- "YEAR_IN_REVIEW": "Year in Review",
- "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
- "APPEARANCE": "Change appearance",
- "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
- "DOCS": "Read documentation",
- "CHANGELOG": "Changelog",
- "LOGOUT": "Log out"
+ "PROFILE_SETTINGS": "프로필 설정",
+ "YEAR_IN_REVIEW": "연간 리뷰",
+ "KEYBOARD_SHORTCUTS": "키보드 단축키",
+ "APPEARANCE": "모양 변경",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin 콘솔",
+ "DOCS": "문서 읽기",
+ "CHANGELOG": "변경 이력",
+ "LOGOUT": "로그아웃"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "일 평가판이 남아 있습니다.",
"TRAIL_BUTTON": "지금 구입하기",
- "DELETED_USER": "Deleted User",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "DELETED_USER": "삭제된 사용자",
+ "EMAIL_VERIFICATION_PENDING": "아직 이메일 주소를 인증하지 않은 것 같습니다. 받은 편지함에서 인증 이메일을 확인하십시오.",
+ "RESEND_VERIFICATION_MAIL": "인증 이메일 다시 보내기",
+ "EMAIL_VERIFICATION_SENT": "인증 이메일이 전송되었습니다. 받은 편지함을 확인하십시오.",
"ACCOUNT_SUSPENDED": {
- "TITLE": "Account Suspended",
- "MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ "TITLE": "계정 정지됨",
+ "MESSAGE": "계정이 정지되었습니다. 자세한 정보는 지원팀에 문의하십시오."
},
"NO_ACCOUNTS": {
- "TITLE": "No account found",
- "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
- "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
- "LOGOUT": "Log out"
+ "TITLE": "계정을 찾을 수 없습니다",
+ "MESSAGE_CLOUD": "현재 어떤 계정에도 속해 있지 않습니다. 오류라고 생각되시면 지원팀에 문의하십시오.",
+ "MESSAGE_SELF_HOSTED": "현재 어떤 계정에도 속해 있지 않습니다. 관리자에게 문의하십시오.",
+ "LOGOUT": "로그아웃"
}
},
"COMPONENTS": {
"CODE": {
"BUTTON_TEXT": "복사",
- "CODEPEN": "Open in CodePen",
- "COPY_SUCCESSFUL": "코드가 클립보드에 복사됨"
+ "CODEPEN": "CodePen에서 열기",
+ "COPY_SUCCESSFUL": "클립보드에 복사되었습니다"
},
"SHOW_MORE_BLOCK": {
- "SHOW_MORE": "Show More",
- "SHOW_LESS": "Show Less"
+ "SHOW_MORE": "더 보기",
+ "SHOW_LESS": "접기"
},
"FILE_BUBBLE": {
"DOWNLOAD": "다운로드",
"UPLOADING": "업로드 중...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "이 스토리는 더 이상 사용할 수 없습니다.",
+ "INSTAGRAM_STORY_REPLY": "스토리에 답장:"
},
"LOCATION_BUBBLE": {
- "SEE_ON_MAP": "See on map"
+ "SEE_ON_MAP": "지도에서 보기"
},
"FORM_BUBBLE": {
"SUBMIT": "보내기"
},
"MEDIA": {
- "IMAGE_UNAVAILABLE": "This image is no longer available.",
- "LOADING_FAILED": "Loading failed"
+ "IMAGE_UNAVAILABLE": "이 이미지는 더 이상 사용할 수 없습니다.",
+ "LOADING_FAILED": "로딩 실패"
}
},
"CONFIRM_EMAIL": "확인 중...",
@@ -293,227 +294,329 @@
}
},
"SIDEBAR": {
- "NO_ITEMS": "No items",
- "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
- "SWITCH": "Switch",
- "INBOX_VIEW": "Inbox View",
+ "NO_ITEMS": "항목 없음",
+ "CURRENTLY_VIEWING_ACCOUNT": "현재 보기:",
+ "SWITCH": "전환",
+ "INBOX_VIEW": "받은 메시지함 보기",
"CONVERSATIONS": "대화",
- "INBOX": "My Inbox",
- "ALL_CONVERSATIONS": "All Conversations",
+ "INBOX": "내 받은 메시지함",
+ "ALL_CONVERSATIONS": "모든 대화",
"MENTIONED_CONVERSATIONS": "멘션",
- "PARTICIPATING_CONVERSATIONS": "Participating",
- "UNATTENDED_CONVERSATIONS": "Unattended",
+ "PARTICIPATING_CONVERSATIONS": "참여 중",
+ "UNATTENDED_CONVERSATIONS": "미응답",
"REPORTS": "보고서",
"SETTINGS": "설정",
"CONTACTS": "연락처",
- "ACTIVE": "Active",
- "COMPANIES": "Companies",
- "ALL_COMPANIES": "All Companies",
+ "ACTIVE": "활성",
+ "COMPANIES": "회사",
+ "ALL_COMPANIES": "모든 회사",
"CAPTAIN": "Captain",
- "CAPTAIN_ASSISTANTS": "Assistants",
- "CAPTAIN_DOCUMENTS": "Documents",
- "CAPTAIN_RESPONSES": "FAQs",
- "CAPTAIN_TOOLS": "Tools",
- "CAPTAIN_SCENARIOS": "Scenarios",
- "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_ASSISTANTS": "어시스턴트",
+ "CAPTAIN_DOCUMENTS": "문서",
+ "CAPTAIN_RESPONSES": "FAQ",
+ "CAPTAIN_TOOLS": "도구",
+ "CAPTAIN_SCENARIOS": "시나리오",
+ "CAPTAIN_PLAYGROUND": "플레이그라운드",
"CAPTAIN_INBOXES": "받은 메시지함",
"CAPTAIN_SETTINGS": "설정",
"HOME": "홈",
"AGENTS": "에이전트",
"AGENT_BOTS": "봇",
- "AUDIT_LOGS": "Audit Logs",
+ "AUDIT_LOGS": "감사 로그",
"INBOXES": "받은 메시지함",
"NOTIFICATIONS": "알림",
"CANNED_RESPONSES": "미리 준비된 답변",
"INTEGRATIONS": "통합",
"PROFILE_SETTINGS": "프로필 설정",
"ACCOUNT_SETTINGS": "계정 설정",
- "APPLICATIONS": "Applications",
+ "APPLICATIONS": "애플리케이션",
"LABELS": "라벨",
- "CUSTOM_ATTRIBUTES": "사용자 지정 특성",
- "AUTOMATION": "Automation",
- "MACROS": "Macros",
+ "CUSTOM_ATTRIBUTES": "사용자 정의 속성",
+ "AUTOMATION": "자동화",
+ "MACROS": "매크로",
"TEAMS": "팀",
- "BILLING": "Billing",
- "CUSTOM_VIEWS_FOLDER": "Folders",
- "CUSTOM_VIEWS_SEGMENTS": "Segments",
- "ALL_CONTACTS": "All Contacts",
- "TAGGED_WITH": "Tagged with",
- "NEW_LABEL": "New label",
- "NEW_TEAM": "New team",
- "NEW_INBOX": "New inbox",
+ "BILLING": "청구",
+ "CUSTOM_VIEWS_FOLDER": "폴더",
+ "CUSTOM_VIEWS_SEGMENTS": "세그먼트",
+ "ALL_CONTACTS": "모든 연락처",
+ "TAGGED_WITH": "태그됨",
+ "NEW_LABEL": "새 라벨",
+ "NEW_TEAM": "새 팀",
+ "NEW_INBOX": "새 받은 메시지함",
"REPORTS_CONVERSATION": "대화",
"CSAT": "CSAT",
- "LIVE_CHAT": "Live Chat",
+ "LIVE_CHAT": "라이브 채팅",
"SMS": "SMS",
"WHATSAPP": "WhatsApp",
- "CAMPAIGNS": "Campaigns",
- "ONGOING": "Ongoing",
- "ONE_OFF": "One off",
+ "CAMPAIGNS": "캠페인",
+ "ONGOING": "진행 중",
+ "ONE_OFF": "일회성",
"REPORTS_SLA": "SLA",
"REPORTS_BOT": "봇",
"REPORTS_AGENT": "에이전트",
"REPORTS_LABEL": "라벨",
"REPORTS_INBOX": "받은 메시지함",
- "REPORTS_TEAM": "Team",
- "AGENT_ASSIGNMENT": "Agent Assignment",
- "SET_AVAILABILITY_TITLE": "Set yourself as",
- "SET_YOUR_AVAILABILITY": "영업시간 설정",
+ "REPORTS_TEAM": "팀",
+ "AGENT_ASSIGNMENT": "에이전트 배정",
+ "SET_AVAILABILITY_TITLE": "상태 설정",
+ "SET_YOUR_AVAILABILITY": "상태 설정",
"SLA": "SLA",
- "CUSTOM_ROLES": "Custom Roles",
+ "CUSTOM_ROLES": "사용자 정의 역할",
"BETA": "Beta",
- "REPORTS_OVERVIEW": "Overview",
- "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
+ "REPORTS_OVERVIEW": "개요",
+ "REAUTHORIZE": "받은 메시지함 연결이 만료되었습니다. 메시지를 계속 수신하고\n 발송하려면 다시 연결하십시오",
"HELP_CENTER": {
- "TITLE": "Help Center",
- "ARTICLES": "Articles",
- "CATEGORIES": "Categories",
- "LOCALES": "Locales",
+ "TITLE": "도움말 센터",
+ "ARTICLES": "게시물",
+ "CATEGORIES": "카테고리",
+ "LOCALES": "로케일",
"SETTINGS": "설정"
},
"CHANNELS": "채널",
"SET_AUTO_OFFLINE": {
- "TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.",
- "INFO_SHORT": "Automatically mark offline when you aren't using the app."
+ "TEXT": "자동 오프라인 표시",
+ "INFO_TEXT": "앱이나 대시보드를 사용하지 않을 때 시스템이 자동으로 오프라인으로 표시합니다.",
+ "INFO_SHORT": "앱을 사용하지 않을 때 자동으로 오프라인으로 표시합니다."
},
- "DOCS": "Read docs",
- "SECURITY": "Security"
+ "DOCS": "문서 읽기",
+ "SECURITY": "보안",
+ "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": "Billing",
- "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
+ "TITLE": "청구",
+ "DESCRIPTION": "여기에서 구독을 관리하고, 플랜을 업그레이드하여 팀에 더 많은 기능을 제공하십시오.",
"CURRENT_PLAN": {
- "TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **{plan}** plan with **{quantity}** licenses",
- "SEAT_COUNT": "Number of seats",
- "RENEWS_ON": "Renews on"
+ "TITLE": "현재 플랜",
+ "PLAN_NOTE": "현재 **{quantity}**개의 라이선스로 **{plan}** 플랜에 구독 중입니다",
+ "SEAT_COUNT": "시트 수",
+ "RENEWS_ON": "갱신일"
},
- "VIEW_PRICING": "View Pricing",
+ "VIEW_PRICING": "가격 보기",
"MANAGE_SUBSCRIPTION": {
- "TITLE": "Manage your subscription",
- "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
- "BUTTON_TXT": "Go to the billing portal"
+ "TITLE": "구독 관리",
+ "DESCRIPTION": "이전 청구서를 보거나, 청구 세부 정보를 수정하거나, 구독을 취소합니다.",
+ "BUTTON_TXT": "청구 포털로 이동"
},
"CAPTAIN": {
"TITLE": "Captain",
- "DESCRIPTION": "Manage usage and credits for Captain AI.",
- "BUTTON_TXT": "Buy more credits",
- "DOCUMENTS": "Documents",
- "RESPONSES": "Responses",
- "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
- "REFRESH_CREDITS": "Refresh"
+ "DESCRIPTION": "Captain AI의 사용량과 크레딧을 관리합니다.",
+ "BUTTON_TXT": "크레딧 추가 구매",
+ "DOCUMENTS": "문서",
+ "RESPONSES": "크레딧",
+ "UPGRADE": "무료 플랜에서는 Captain을 사용할 수 없습니다. 지금 업그레이드하여 어시스턴트, Copilot 등에 접근하십시오.",
+ "REFRESH_CREDITS": "새로고침"
},
"CHAT_WITH_US": {
- "TITLE": "Need help?",
- "DESCRIPTION": "Do you face any issues in billing? We are here to help.",
+ "TITLE": "도움이 필요하신가요?",
+ "DESCRIPTION": "청구에 문제가 있으신가요? 저희가 도와드리겠습니다.",
"BUTTON_TXT": "채팅하기"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again.",
+ "NO_BILLING_USER": "청구 계정이 구성 중입니다. 페이지를 새로고침하고 다시 시도하십시오.",
"TOPUP": {
- "BUY_CREDITS": "Buy more credits",
- "MODAL_TITLE": "Buy AI Credits",
- "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
- "CREDITS": "CREDITS",
- "ONE_TIME": "one-time",
- "POPULAR": "Most Popular",
- "NOTE_TITLE": "Note:",
- "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "BUY_CREDITS": "크레딧 추가 구매",
+ "MODAL_TITLE": "AI 크레딧 구매",
+ "MODAL_DESCRIPTION": "Captain AI를 위한 추가 크레딧을 구매합니다.",
+ "CREDITS": "크레딧",
+ "ONE_TIME": "일회성",
+ "POPULAR": "가장 인기",
+ "NOTE_TITLE": "참고:",
+ "NOTE_DESCRIPTION": "크레딧은 즉시 추가되며 6개월 후 만료됩니다. 크레딧을 사용하려면 활성 구독이 필요합니다. 구매한 크레딧은 월간 플랜 크레딧 이후에 소비됩니다.",
"CANCEL": "취소",
- "PURCHASE": "Purchase Credits",
- "LOADING": "Loading options...",
- "FETCH_ERROR": "Failed to load credit options. Please try again.",
- "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
- "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "PURCHASE": "크레딧 구매",
+ "LOADING": "옵션 로딩 중...",
+ "FETCH_ERROR": "크레딧 옵션을 로드하지 못했습니다. 다시 시도하십시오.",
+ "PURCHASE_ERROR": "구매 처리에 실패했습니다. 다시 시도하십시오.",
+ "PURCHASE_SUCCESS": "{credits} 크레딧이 계정에 성공적으로 추가되었습니다",
"CONFIRM": {
- "TITLE": "Confirm Purchase",
- "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
- "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
- "GO_BACK": "Go Back",
- "CONFIRM_PURCHASE": "Confirm Purchase"
+ "TITLE": "구매 확인",
+ "DESCRIPTION": "{amount}에 {credits} 크레딧을 구매하려고 합니다.",
+ "INSTANT_DEDUCTION_NOTE": "확인 즉시 저장된 카드에서 결제됩니다.",
+ "GO_BACK": "돌아가기",
+ "CONFIRM_PURCHASE": "구매 확인"
}
}
},
"SECURITY_SETTINGS": {
- "TITLE": "Security",
- "DESCRIPTION": "Manage your account security settings.",
- "LINK_TEXT": "Learn more about SAML SSO",
- "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "TITLE": "보안",
+ "DESCRIPTION": "계정 보안 설정을 관리합니다.",
+ "LINK_TEXT": "SAML SSO에 대해 자세히 알아보기",
+ "SAML_DISABLED_MESSAGE": "SAML SSO가 현재 비활성화되어 있습니다. 이 기능을 활성화하려면 관리자에게 문의하십시오.",
"SAML": {
"TITLE": "SAML SSO",
- "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "NOTE": "계정에 대한 SAML 싱글 사인온을 구성합니다. 사용자는 이메일/비밀번호 대신 ID 공급자를 통해 인증합니다.",
"ACS_URL": {
"LABEL": "ACS URL",
- "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ "TOOLTIP": "Assertion Consumer Service URL - SAML 응답 대상으로 IdP에서 이 URL을 구성하십시오"
},
"SSO_URL": {
"LABEL": "SSO URL",
- "HELP": "The URL where SAML authentication requests will be sent",
+ "HELP": "SAML 인증 요청이 전송되는 URL",
"PLACEHOLDER": "https://your-idp.com/saml/sso"
},
"CERTIFICATE": {
- "LABEL": "Signing certificate in PEM format",
- "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "LABEL": "PEM 형식의 서명 인증서",
+ "HELP": "SAML 응답을 확인하는 데 사용되는 ID 공급자의 공개 인증서",
"PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
},
"FINGERPRINT": {
- "LABEL": "Fingerprint",
- "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ "LABEL": "지문",
+ "TOOLTIP": "인증서의 SHA-1 지문 - IdP 구성에서 인증서를 확인하는 데 사용하십시오"
},
- "COPY_SUCCESS": "코드가 클립보드에 복사됨",
+ "COPY_SUCCESS": "클립보드에 복사되었습니다",
"SP_ENTITY_ID": {
- "LABEL": "SP Entity ID",
- "HELP": "Unique identifier for this application as a service provider (auto-generated).",
- "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ "LABEL": "SP 엔터티 ID",
+ "HELP": "서비스 제공자로서 이 애플리케이션의 고유 식별자 (자동 생성).",
+ "TOOLTIP": "서비스 제공자로서의 Chatwoot 고유 식별자 - IdP 설정에서 이를 구성하십시오"
},
"IDP_ENTITY_ID": {
- "LABEL": "Identity Provider Entity ID",
- "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "LABEL": "ID 공급자 엔터티 ID",
+ "HELP": "ID 공급자의 고유 식별자 (일반적으로 IdP 구성에서 찾을 수 있음)",
"PLACEHOLDER": "https://your-idp.com/saml"
},
- "UPDATE_BUTTON": "Update SAML Settings",
+ "UPDATE_BUTTON": "SAML 설정 업데이트",
"API": {
- "SUCCESS": "SAML settings updated successfully",
- "ERROR": "Failed to update SAML settings",
- "ERROR_LOADING": "Failed to load SAML settings",
- "DISABLED": "SAML settings disabled successfully"
+ "SUCCESS": "SAML 설정이 성공적으로 업데이트되었습니다",
+ "ERROR": "SAML 설정 업데이트에 실패했습니다",
+ "ERROR_LOADING": "SAML 설정을 로드하지 못했습니다",
+ "DISABLED": "SAML 설정이 성공적으로 비활성화되었습니다"
},
"VALIDATION": {
- "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
- "SSO_URL_ERROR": "Please enter a valid SSO URL",
- "CERTIFICATE_ERROR": "Certificate is required",
- "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ "REQUIRED_FIELDS": "SSO URL, ID 공급자 엔터티 ID 및 인증서는 필수 항목입니다",
+ "SSO_URL_ERROR": "올바른 SSO URL을 입력하십시오",
+ "CERTIFICATE_ERROR": "인증서가 필요합니다",
+ "IDP_ENTITY_ID_ERROR": "ID 공급자 엔터티 ID가 필요합니다"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
- "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
- "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ "AVAILABLE_ON": "SAML SSO 기능은 Enterprise 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "SAML 싱글 사인온 및 기타 고급 보안 기능에 접근하려면 Enterprise 플랜으로 업그레이드하십시오.",
+ "ASK_ADMIN": "업그레이드를 위해 관리자에게 문의하십시오."
},
"PAYWALL": {
- "TITLE": "Upgrade to enable SAML SSO",
- "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
- "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
- "UPGRADE_NOW": "Upgrade now",
- "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ "TITLE": "SAML SSO를 활성화하려면 업그레이드하십시오",
+ "AVAILABLE_ON": "SAML SSO 기능은 Enterprise 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "SAML 싱글 사인온 및 기타 고급 기능에 접근하려면 플랜을 업그레이드하십시오.",
+ "UPGRADE_NOW": "지금 업그레이드",
+ "CANCEL_ANYTIME": "언제든지 플랜을 변경하거나 취소할 수 있습니다"
},
"ATTRIBUTE_MAPPING": {
- "TITLE": "SAML Attribute Setup",
- "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ "TITLE": "SAML 속성 설정",
+ "DESCRIPTION": "다음 속성 매핑은 ID 공급자에서 구성해야 합니다"
},
"INFO_SECTION": {
- "TITLE": "Service Provider Information",
- "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ "TITLE": "서비스 제공자 정보",
+ "TOOLTIP": "이 값을 복사하여 SAML 연결을 설정하기 위해 ID 공급자에서 구성하십시오"
+ }
+ }
+ },
+ "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": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
+ "NO_ACCOUNT_WARNING": "Chatwoot 계정을 찾을 수 없습니다. 계속하려면 새 계정을 만드십시오.",
"NEW_ACCOUNT": "새 계정",
"SELECTOR_SUBTITLE": "새 계정 만들기",
"API": {
- "SUCCESS_MESSAGE": "계정이 성공적으로 생성됨",
- "EXIST_MESSAGE": "계정이 이미 있음",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "계정이 성공적으로 생성되었습니다",
+ "EXIST_MESSAGE": "계정이 이미 존재합니다",
+ "ERROR_MESSAGE": "서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
},
"FORM": {
"NAME": {
@@ -525,270 +628,293 @@
}
},
"KEYBOARD_SHORTCUTS": {
- "TOGGLE_MODAL": "View all shortcuts",
+ "TOGGLE_MODAL": "모든 단축키 보기",
"TITLE": {
- "OPEN_CONVERSATION": "Open conversation",
- "RESOLVE_AND_NEXT": "Resolve and move to next",
- "NAVIGATE_DROPDOWN": "Navigate dropdown items",
- "RESOLVE_CONVERSATION": "Resolve Conversation",
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "ADD_ATTACHMENT": "Add Attachment",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "TOGGLE_SIDEBAR": "Toggle Sidebar",
- "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
- "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
- "GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
- "SWITCH_TO_REPLY": "Switch to Reply",
- "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ "OPEN_CONVERSATION": "대화 열기",
+ "RESOLVE_AND_NEXT": "해결하고 다음으로 이동",
+ "NAVIGATE_DROPDOWN": "드롭다운 항목 탐색",
+ "RESOLVE_CONVERSATION": "대화 해결",
+ "GO_TO_CONVERSATION_DASHBOARD": "대화 대시보드로 이동",
+ "ADD_ATTACHMENT": "첨부 파일 추가",
+ "GO_TO_CONTACTS_DASHBOARD": "연락처 대시보드로 이동",
+ "TOGGLE_SIDEBAR": "사이드바 전환",
+ "GO_TO_REPORTS_SIDEBAR": "보고서 사이드바로 이동",
+ "MOVE_TO_NEXT_TAB": "대화 목록의 다음 탭으로 이동",
+ "GO_TO_SETTINGS": "설정으로 이동",
+ "SWITCH_TO_PRIVATE_NOTE": "비공개 메모로 전환",
+ "SWITCH_TO_REPLY": "답장으로 전환",
+ "TOGGLE_SNOOZE_DROPDOWN": "일시 중단 드롭다운 전환"
}
},
"ASSIGNMENT_POLICY": {
"INDEX": {
"HEADER": {
- "TITLE": "Agent assignment",
- "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ "TITLE": "에이전트 배정",
+ "DESCRIPTION": "받은 메시지함과 에이전트의 필요에 따라 작업 부하를 효과적으로 관리하고 대화를 라우팅하는 정책을 정의합니다. 자세히 알아보기"
},
"ASSIGNMENT_POLICY": {
- "TITLE": "Assignment policy",
- "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "TITLE": "배정 정책",
+ "DESCRIPTION": "받은 메시지함에서 대화가 배정되는 방식을 관리합니다.",
"FEATURES": [
- "Assign by conversations evenly or by available capacity",
- "Add fair distribution rules to avoid overloading any agent",
- "Add inboxes to a policy - one policy per inbox"
+ "대화를 균등하게 또는 가용 용량에 따라 배정",
+ "에이전트 과부하를 방지하기 위한 공정 분배 규칙 추가",
+ "정책에 받은 메시지함 추가 - 받은 메시지함당 하나의 정책"
]
},
"AGENT_CAPACITY_POLICY": {
- "TITLE": "Agent capacity policy",
- "DESCRIPTION": "Manage workload for agents.",
+ "TITLE": "에이전트 용량 정책",
+ "DESCRIPTION": "에이전트의 작업 부하를 관리합니다.",
"FEATURES": [
- "Define maximum conversations per inbox",
- "Create exceptions based on labels and time",
- "Add agents to a policy - one policy per agent"
+ "받은 메시지함당 최대 대화 수 정의",
+ "라벨 및 시간에 기반한 예외 생성",
+ "정책에 에이전트 추가 - 에이전트당 하나의 정책"
]
}
},
"AGENT_ASSIGNMENT_POLICY": {
"INDEX": {
"HEADER": {
- "TITLE": "Assignment policy",
- "CREATE_POLICY": "New policy"
+ "TITLE": "배정 정책",
+ "CREATE_POLICY": "새 정책"
},
"CARD": {
- "ORDER": "Order",
- "PRIORITY": "Priority",
- "ACTIVE": "Active",
- "INACTIVE": "Inactive",
- "POPOVER": "Added inboxes",
+ "ORDER": "순서",
+ "PRIORITY": "우선순위",
+ "ACTIVE": "활성",
+ "INACTIVE": "비활성",
+ "POPOVER": "추가된 받은 메시지함",
"EDIT": "수정"
},
- "NO_RECORDS_FOUND": "No assignment policies found"
+ "NO_RECORDS_FOUND": "배정 정책을 찾을 수 없습니다"
},
"CREATE": {
"HEADER": {
- "TITLE": "Create assignment policy"
+ "TITLE": "배정 정책 생성"
},
- "CREATE_BUTTON": "Create policy",
+ "CREATE_BUTTON": "정책 생성",
"API": {
- "SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "SUCCESS_MESSAGE": "배정 정책이 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "배정 정책 생성에 실패했습니다",
+ "INBOX_LINKED": "받은 메시지함이 정책에 연결되었습니다"
}
},
"EDIT": {
"HEADER": {
- "TITLE": "Edit assignment policy"
+ "TITLE": "배정 정책 수정"
},
- "EDIT_BUTTON": "Update policy",
+ "EDIT_BUTTON": "정책 업데이트",
"CONFIRM_ADD_INBOX_DIALOG": {
- "TITLE": "Add inbox",
- "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
- "CONFIRM_BUTTON_LABEL": "Continue",
+ "TITLE": "받은 메시지함 추가",
+ "DESCRIPTION": "{inboxName} 받은 메시지함이 이미 다른 정책에 연결되어 있습니다. 이 정책에 연결하시겠습니까? 다른 정책에서 연결이 해제됩니다.",
+ "CONFIRM_BUTTON_LABEL": "계속",
"CANCEL_BUTTON_LABEL": "취소"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "받은 메시지함을 정책에 연결",
+ "DESCRIPTION": "이 받은 메시지함을 배정 정책에 연결하시겠습니까?",
+ "LINK_BUTTON": "받은 메시지함 연결",
+ "CANCEL_BUTTON": "건너뛰기"
+ },
"API": {
- "SUCCESS_MESSAGE": "Assignment policy updated successfully",
- "ERROR_MESSAGE": "Failed to update assignment policy"
+ "SUCCESS_MESSAGE": "배정 정책이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "배정 정책 업데이트에 실패했습니다"
},
"INBOX_API": {
"ADD": {
- "SUCCESS_MESSAGE": "Inbox added to policy successfully",
- "ERROR_MESSAGE": "Failed to add inbox to policy"
+ "SUCCESS_MESSAGE": "받은 메시지함이 정책에 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "정책에 받은 메시지함 추가에 실패했습니다"
},
"REMOVE": {
- "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
- "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ "SUCCESS_MESSAGE": "받은 메시지함이 정책에서 성공적으로 제거되었습니다",
+ "ERROR_MESSAGE": "정책에서 받은 메시지함 제거에 실패했습니다"
}
}
},
"FORM": {
"NAME": {
- "LABEL": "Policy name:",
- "PLACEHOLDER": "Enter policy name"
+ "LABEL": "정책 이름:",
+ "PLACEHOLDER": "정책 이름을 입력하십시오"
},
"DESCRIPTION": {
- "LABEL": "내용:",
- "PLACEHOLDER": "Enter description"
+ "LABEL": "설명:",
+ "PLACEHOLDER": "설명을 입력하십시오"
},
"STATUS": {
"LABEL": "상태:",
- "PLACEHOLDER": "Select status",
- "ACTIVE": "Policy is active",
- "INACTIVE": "Policy is inactive"
+ "PLACEHOLDER": "상태 선택",
+ "ACTIVE": "정책이 활성 상태입니다",
+ "INACTIVE": "정책이 비활성 상태입니다"
},
"ASSIGNMENT_ORDER": {
- "LABEL": "Assignment order",
+ "LABEL": "배정 순서",
"ROUND_ROBIN": {
- "LABEL": "Round robin",
- "DESCRIPTION": "Assign conversations evenly among agents."
+ "LABEL": "라운드 로빈",
+ "DESCRIPTION": "에이전트 간에 대화를 균등하게 배정합니다."
},
"BALANCED": {
- "LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "LABEL": "균형",
+ "DESCRIPTION": "가용 용량에 따라 대화를 배정합니다.",
+ "PREMIUM_MESSAGE": "균형 배정 및 에이전트 용량 관리에 접근하려면 업그레이드하십시오.",
+ "PREMIUM_BADGE": "프리미엄"
}
},
"ASSIGNMENT_PRIORITY": {
- "LABEL": "Assignment priority",
+ "LABEL": "배정 우선순위",
"EARLIEST_CREATED": {
- "LABEL": "Earliest created",
- "DESCRIPTION": "The conversation that was created first gets assigned first."
+ "LABEL": "가장 먼저 생성됨",
+ "DESCRIPTION": "가장 먼저 생성된 대화가 먼저 배정됩니다."
},
"LONGEST_WAITING": {
- "LABEL": "Longest waiting",
- "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ "LABEL": "가장 오래 대기",
+ "DESCRIPTION": "가장 오래 대기한 대화가 먼저 배정됩니다."
}
},
"FAIR_DISTRIBUTION": {
- "LABEL": "Fair distribution policy",
- "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
- "INPUT_MAX": "Assign max",
- "DURATION": "Conversations per agent in every"
+ "LABEL": "공정 분배 정책",
+ "DESCRIPTION": "에이전트 과부하를 방지하기 위해 시간 창 내에서 에이전트당 배정할 수 있는 최대 대화 수를 설정합니다. 이 필수 필드의 기본값은 시간당 100개 대화입니다.",
+ "INPUT_MAX": "최대 배정",
+ "DURATION": "에이전트당 대화 수"
},
"INBOXES": {
- "LABEL": "Added inboxes",
- "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
- "ADD_BUTTON": "Add inbox",
+ "LABEL": "추가된 받은 메시지함",
+ "DESCRIPTION": "이 정책이 적용될 받은 메시지함을 추가합니다.",
+ "ADD_BUTTON": "받은 메시지함 추가",
"DROPDOWN": {
- "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
- "ADD_BUTTON": "추가하기"
+ "SEARCH_PLACEHOLDER": "추가할 받은 메시지함을 검색하고 선택하십시오",
+ "ADD_BUTTON": "추가"
},
- "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "EMPTY_STATE": "이 정책에 추가된 받은 메시지함이 없습니다. 시작하려면 받은 메시지함을 추가하십시오",
"API": {
- "SUCCESS_MESSAGE": "Inbox successfully added to policy",
- "ERROR_MESSAGE": "Failed to add inbox to policy"
+ "SUCCESS_MESSAGE": "받은 메시지함이 정책에 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "정책에 받은 메시지함 추가에 실패했습니다"
}
}
},
"DELETE_POLICY": {
- "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
- "ERROR_MESSAGE": "Failed to delete assignment policy"
+ "SUCCESS_MESSAGE": "배정 정책이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "배정 정책 삭제에 실패했습니다"
}
},
"AGENT_CAPACITY_POLICY": {
"INDEX": {
"HEADER": {
- "TITLE": "Agent capacity",
- "CREATE_POLICY": "New policy"
+ "TITLE": "에이전트 용량",
+ "CREATE_POLICY": "새 정책"
},
"CARD": {
- "POPOVER": "Added agents",
+ "POPOVER": "추가된 에이전트",
"EDIT": "수정"
},
- "NO_RECORDS_FOUND": "No agent capacity policies found"
+ "NO_RECORDS_FOUND": "에이전트 용량 정책을 찾을 수 없습니다"
},
"CREATE": {
"HEADER": {
- "TITLE": "Create agent capacity policy"
+ "TITLE": "에이전트 용량 정책 생성"
},
- "CREATE_BUTTON": "Create policy",
+ "CREATE_BUTTON": "정책 생성",
"API": {
- "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
- "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ "SUCCESS_MESSAGE": "에이전트 용량 정책이 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "에이전트 용량 정책 생성에 실패했습니다"
}
},
"EDIT": {
"HEADER": {
- "TITLE": "Edit agent capacity policy"
+ "TITLE": "에이전트 용량 정책 수정"
},
- "EDIT_BUTTON": "Update policy",
+ "EDIT_BUTTON": "정책 업데이트",
"CONFIRM_ADD_AGENT_DIALOG": {
- "TITLE": "Add agent",
- "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
- "CONFIRM_BUTTON_LABEL": "Continue",
+ "TITLE": "에이전트 추가",
+ "DESCRIPTION": "{agentName}이(가) 이미 다른 정책에 연결되어 있습니다. 이 정책에 연결하시겠습니까? 다른 정책에서 연결이 해제됩니다.",
+ "CONFIRM_BUTTON_LABEL": "계속",
"CANCEL_BUTTON_LABEL": "취소"
},
"API": {
- "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
- "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ "SUCCESS_MESSAGE": "에이전트 용량 정책이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "에이전트 용량 정책 업데이트에 실패했습니다"
},
"AGENT_API": {
"ADD": {
- "SUCCESS_MESSAGE": "Agent added to policy successfully",
- "ERROR_MESSAGE": "Failed to add agent to policy"
+ "SUCCESS_MESSAGE": "에이전트가 정책에 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "정책에 에이전트 추가에 실패했습니다"
},
"REMOVE": {
- "SUCCESS_MESSAGE": "Agent removed from policy successfully",
- "ERROR_MESSAGE": "Failed to remove agent from policy"
+ "SUCCESS_MESSAGE": "에이전트가 정책에서 성공적으로 제거되었습니다",
+ "ERROR_MESSAGE": "정책에서 에이전트 제거에 실패했습니다"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "받은 메시지함 제한이 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "받은 메시지함 제한 추가에 실패했습니다"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "받은 메시지함 제한이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "받은 메시지함 제한 업데이트에 실패했습니다"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "받은 메시지함 제한이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "받은 메시지함 제한 삭제에 실패했습니다"
}
}
},
"FORM": {
"NAME": {
- "LABEL": "Policy name:",
- "PLACEHOLDER": "Enter policy name"
+ "LABEL": "정책 이름:",
+ "PLACEHOLDER": "정책 이름을 입력하십시오"
},
"DESCRIPTION": {
- "LABEL": "내용:",
- "PLACEHOLDER": "Enter description"
+ "LABEL": "설명:",
+ "PLACEHOLDER": "설명을 입력하십시오"
},
"INBOX_CAPACITY_LIMIT": {
- "LABEL": "Inbox capacity limits",
- "ADD_BUTTON": "Add inbox",
+ "LABEL": "받은 메시지함 용량 제한",
+ "ADD_BUTTON": "받은 메시지함 추가",
"FIELD": {
- "SELECT_INBOX": "Select inbox",
- "MAX_CONVERSATIONS": "Max conversations",
- "SET_LIMIT": "Set limit"
+ "SELECT_INBOX": "받은 메시지함 선택",
+ "MAX_CONVERSATIONS": "최대 대화 수",
+ "SET_LIMIT": "제한 설정"
},
- "EMPTY_STATE": "No inbox limit set"
+ "EMPTY_STATE": "설정된 받은 메시지함 제한이 없습니다"
},
"EXCLUSION_RULES": {
- "LABEL": "Exclusion rules",
- "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "LABEL": "제외 규칙",
+ "DESCRIPTION": "다음 조건을 만족하는 대화는 에이전트 용량에 포함되지 않습니다",
"TAGS": {
- "LABEL": "Exclude conversations tagged with specific labels",
- "ADD_TAG": "add tag",
+ "LABEL": "특정 라벨이 태그된 대화 제외",
+ "ADD_TAG": "태그 추가",
"DROPDOWN": {
- "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ "SEARCH_PLACEHOLDER": "추가할 태그를 검색하고 선택하십시오"
},
- "EMPTY_STATE": "No tags added to this policy."
+ "EMPTY_STATE": "이 정책에 추가된 태그가 없습니다."
},
"DURATION": {
- "LABEL": "Exclude conversations older than a specified duration",
- "PLACEHOLDER": "Set time"
+ "LABEL": "지정된 기간보다 오래된 대화 제외",
+ "PLACEHOLDER": "시간 설정"
}
},
"USERS": {
- "LABEL": "Assigned agents",
- "DESCRIPTION": "Add agents for which this policy will be applicable.",
- "ADD_BUTTON": "Add agent",
+ "LABEL": "배정된 에이전트",
+ "DESCRIPTION": "이 정책이 적용될 에이전트를 추가합니다.",
+ "ADD_BUTTON": "에이전트 추가",
"DROPDOWN": {
- "SEARCH_PLACEHOLDER": "Search and select agents to add",
- "ADD_BUTTON": "추가하기"
+ "SEARCH_PLACEHOLDER": "추가할 에이전트를 검색하고 선택하십시오",
+ "ADD_BUTTON": "추가"
},
- "EMPTY_STATE": "No agents added",
+ "EMPTY_STATE": "추가된 에이전트가 없습니다",
"API": {
- "SUCCESS_MESSAGE": "Agent successfully added to policy",
- "ERROR_MESSAGE": "Failed to add agent to policy"
+ "SUCCESS_MESSAGE": "에이전트가 정책에 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "정책에 에이전트 추가에 실패했습니다"
}
}
},
"DELETE_POLICY": {
- "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
- "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ "SUCCESS_MESSAGE": "에이전트 용량 정책이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "에이전트 용량 정책 삭제에 실패했습니다"
}
},
"DELETE_POLICY": {
- "TITLE": "Delete policy",
- "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "TITLE": "정책 삭제",
+ "DESCRIPTION": "이 정책을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
"CONFIRM_BUTTON_LABEL": "삭제",
"CANCEL_BUTTON_LABEL": "취소"
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/signup.json b/app/javascript/dashboard/i18n/locale/ko/signup.json
index 89de09fdd..6e6e9e854 100644
--- a/app/javascript/dashboard/i18n/locale/ko/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ko/signup.json
@@ -1,49 +1,50 @@
{
"REGISTER": {
- "TRY_WOOT": "Create an account",
+ "TRY_WOOT": "계정 만들기",
+ "GET_STARTED": "Chatwoot 시작하기",
"TITLE": "회원가입",
- "TESTIMONIAL_HEADER": "All it takes is one step to move forward",
- "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
- "TERMS_ACCEPT": "By creating an account, you agree to our
T & C and
Privacy policy",
+ "TESTIMONIAL_HEADER": "앞으로 나아가기 위한 단 한 걸음",
+ "TESTIMONIAL_CONTENT": "고객과 소통하고, 유지하고, 새로운 고객을 찾는 것은 한 걸음이면 됩니다.",
+ "TERMS_ACCEPT": "계정을 생성하면
이용약관 및
개인정보 처리방침에 동의하는 것입니다",
"OAUTH": {
- "GOOGLE_SIGNUP": "Sign up with Google"
+ "GOOGLE_SIGNUP": "Google로 가입"
},
"COMPANY_NAME": {
- "LABEL": "Company name",
- "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
- "ERROR": "Company name is too short"
+ "LABEL": "회사 이름",
+ "PLACEHOLDER": "회사 이름을 입력하십시오. 예: Wayne Enterprises",
+ "ERROR": "회사 이름이 너무 짧습니다."
},
"FULL_NAME": {
"LABEL": "전체 이름",
- "PLACEHOLDER": "전체 이름을 입력합니다. 예: Taeyeon Kim",
- "ERROR": "계정 이름이 너무 짧음"
+ "PLACEHOLDER": "전체 이름을 입력하십시오. 예: Taeyeon Kim",
+ "ERROR": "전체 이름이 너무 짧습니다."
},
"EMAIL": {
"LABEL": "회사 이메일",
- "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
- "ERROR": "Please enter a valid work email address"
+ "PLACEHOLDER": "회사 이메일 주소를 입력하십시오. 예: bruce{'@'}wayne{'.'}enterprises",
+ "ERROR": "유효한 회사 이메일 주소를 입력하십시오."
},
"PASSWORD": {
"LABEL": "비밀번호",
"PLACEHOLDER": "비밀번호",
- "ERROR": "비밀번호가 너무 짧음",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
- "REQUIREMENTS_LENGTH": "At least 6 characters long",
- "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
- "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
- "REQUIREMENTS_NUMBER": "At least one number",
- "REQUIREMENTS_SPECIAL": "At least one special character"
+ "ERROR": "비밀번호가 너무 짧습니다.",
+ "IS_INVALID_PASSWORD": "비밀번호에는 최소 대문자 1개, 소문자 1개, 숫자 1개, 특수문자 1개가 포함되어야 합니다.",
+ "REQUIREMENTS_LENGTH": "최소 6자 이상",
+ "REQUIREMENTS_UPPERCASE": "최소 대문자 1개",
+ "REQUIREMENTS_LOWERCASE": "최소 소문자 1개",
+ "REQUIREMENTS_NUMBER": "최소 숫자 1개",
+ "REQUIREMENTS_SPECIAL": "최소 특수문자 1개"
},
"CONFIRM_PASSWORD": {
"LABEL": "비밀번호 확인",
"PLACEHOLDER": "비밀번호 확인",
- "ERROR": "비밀번호가 일치하지 않음."
+ "ERROR": "비밀번호가 일치하지 않습니다."
},
"API": {
- "SUCCESS_MESSAGE": "Registration Successful",
- "ERROR_MESSAGE": "Woot Server에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "회원가입이 완료되었습니다",
+ "ERROR_MESSAGE": "Chatwoot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
},
- "SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "이미 계정이 있습니까?"
+ "SUBMIT": "계정 만들기",
+ "HAVE_AN_ACCOUNT": "이미 계정이 있으십니까?"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/sla.json b/app/javascript/dashboard/i18n/locale/ko/sla.json
index 5889af6b5..70d473a7b 100644
--- a/app/javascript/dashboard/i18n/locale/ko/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ko/sla.json
@@ -1,37 +1,46 @@
{
"SLA": {
- "HEADER": "Service Level Agreements",
- "ADD_ACTION": "Add SLA",
- "ADD_ACTION_LONG": "Create a new SLA Policy",
- "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
- "LEARN_MORE": "Learn more about SLA",
- "LOADING": "Fetching SLAs",
+ "HEADER": "서비스 수준 계약",
+ "ADD_ACTION": "SLA 추가",
+ "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": "Upgrade to create SLAs",
- "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
- "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
- "UPGRADE_NOW": "Upgrade now",
- "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ "TITLE": "SLA를 생성하려면 업그레이드하십시오",
+ "AVAILABLE_ON": "SLA 기능은 Business 및 Enterprise 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "팀 관리, 자동화, 사용자 정의 속성 등 고급 기능에 접근하려면 플랜을 업그레이드하십시오.",
+ "UPGRADE_NOW": "지금 업그레이드",
+ "CANCEL_ANYTIME": "언제든지 플랜을 변경하거나 취소할 수 있습니다"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
- "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
- "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ "AVAILABLE_ON": "SLA 기능은 유료 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "감사 로그, 에이전트 용량 등 고급 기능에 접근하려면 유료 플랜으로 업그레이드하십시오.",
+ "ASK_ADMIN": "업그레이드에 대해 관리자에게 문의하십시오."
},
"LIST": {
- "404": "There are no SLAs available in this account.",
+ "404": "이 계정에 사용 가능한 SLA가 없습니다.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "영업시간"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
- "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "DESC_1": "Enterprise 고객이 제기한 즉각적인 대응이 필요한 이슈입니다.",
"TITLE_2": "Enterprise P1",
- "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ "DESC_2": "Enterprise 고객이 제기한 신속한 확인이 필요한 이슈입니다."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "영업시간 적용",
+ "BUSINESS_HOURS_OFF": "영업시간 미적용",
"RESPONSE_TYPES": {
- "FRT": "First response time threshold",
- "NRT": "Next response time threshold",
- "RT": "Resolution time threshold",
+ "FRT": "첫 번째 응답 시간 임계값",
+ "NRT": "다음 응답 시간 임계값",
+ "RT": "해결 시간 임계값",
"SHORT_HAND": {
"FRT": "FRT",
"NRT": "NRT",
@@ -41,22 +50,22 @@
},
"FORM": {
"NAME": {
- "LABEL": "SLA Name",
- "PLACEHOLDER": "SLA Name",
- "REQUIRED_ERROR": "SLA name is required",
+ "LABEL": "SLA 이름",
+ "PLACEHOLDER": "SLA 이름",
+ "REQUIRED_ERROR": "SLA 이름은 필수입니다",
"MINIMUM_LENGTH_ERROR": "최소 두글자 이상이여야 합니다",
"VALID_ERROR": "영어나, 숫자, - 와 _ 만 사용 가능합니다"
},
"DESCRIPTION": {
"LABEL": "내용",
- "PLACEHOLDER": "SLA for premium customers"
+ "PLACEHOLDER": "프리미엄 고객을 위한 SLA"
},
"FIRST_RESPONSE_TIME": {
- "LABEL": "First Response Time",
+ "LABEL": "첫 번째 응답 시간",
"PLACEHOLDER": "5"
},
"NEXT_RESPONSE_TIME": {
- "LABEL": "Next Response Time",
+ "LABEL": "다음 응답 시간",
"PLACEHOLDER": "5"
},
"RESOLUTION_TIME": {
@@ -65,10 +74,10 @@
},
"BUSINESS_HOURS": {
"LABEL": "영업시간",
- "PLACEHOLDER": "Only during business hours"
+ "PLACEHOLDER": "영업시간 중에만"
},
"THRESHOLD_TIME": {
- "INVALID_FORMAT_ERROR": "Threshold should be a number and greater than zero"
+ "INVALID_FORMAT_ERROR": "임계값은 0보다 큰 숫자여야 합니다"
},
"EDIT": "수정",
"CREATE": "만들기",
@@ -76,33 +85,33 @@
"CANCEL": "취소"
},
"ADD": {
- "TITLE": "Add SLA",
- "DESC": "Friendly promises for great service!",
+ "TITLE": "SLA 추가",
+ "DESC": "훌륭한 서비스를 위한 친절한 약속!",
"API": {
- "SUCCESS_MESSAGE": "SLA added successfully",
+ "SUCCESS_MESSAGE": "SLA가 성공적으로 추가되었습니다",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
},
"DELETE": {
- "TITLE": "Delete SLA",
+ "TITLE": "SLA 삭제",
"API": {
- "SUCCESS_MESSAGE": "SLA deleted successfully",
+ "SUCCESS_MESSAGE": "SLA가 성공적으로 삭제되었습니다",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
},
"CONFIRM": {
"TITLE": "삭제 확인",
- "MESSAGE": "Are you sure you want to delete ",
+ "MESSAGE": "정말 삭제하시겠습니까? ",
"YES": "예, 삭제합니다. ",
"NO": "아니요, 유지해주세요. "
}
},
"EVENTS": {
- "TITLE": "SLA Misses",
+ "TITLE": "SLA 위반",
"FRT": "첫 번째 응답 시간",
- "NRT": "Next response time",
- "RT": "Resolution time",
- "SHOW_MORE": "{count} more",
- "HIDE": "Hide {count} rows"
+ "NRT": "다음 응답 시간",
+ "RT": "해결 시간",
+ "SHOW_MORE": "{count}개 더 보기",
+ "HIDE": "{count}개 행 숨기기"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/snooze.json b/app/javascript/dashboard/i18n/locale/ko/snooze.json
new file mode 100644
index 000000000..226447d27
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ko/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "시간",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "지금부터",
+ "NEXT_YEAR": "내년",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "내일",
+ "DAY_AFTER_TOMORROW": "모레",
+ "NEXT_WEEK": "다음 주",
+ "NEXT_MONTH": "다음 달",
+ "THIS_WEEKEND": "이번 주말",
+ "NEXT_WEEKEND": "다음 주말"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ko/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ko/teamsSettings.json
index d5a6e96ee..07aef17b4 100644
--- a/app/javascript/dashboard/i18n/locale/ko/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ko/teamsSettings.json
@@ -2,11 +2,14 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "팀 생성하기",
"HEADER": "팀",
- "LOADING": "Fetching teams",
- "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
- "LEARN_MORE": "Learn more about teams",
+ "LOADING": "팀을 불러오는 중",
+ "DESCRIPTION": "팀을 사용하면 에이전트를 업무 담당에 따라 그룹으로 구성할 수 있습니다. 에이전트는 여러 팀에 소속될 수 있습니다. 협업 시 특정 팀에 대화를 배정할 수 있습니다.",
+ "LEARN_MORE": "팀에 대해 자세히 알아보기",
+ "COUNT": "{n}개의 팀 | {n}개의 팀",
+ "SEARCH_PLACEHOLDER": "팀 검색...",
+ "NO_RESULTS": "검색과 일치하는 팀이 없습니다",
"LIST": {
- "404": "계정에 연결된 에이전트가 없습니다.",
+ "404": "계정에 생성된 팀이 없습니다.",
"EDIT_TEAM": "팀 수정하기",
"NONE": "없음"
},
@@ -79,7 +82,7 @@
"SELECT_ALL": "모든 에이전트 선택",
"SELECTED_COUNT": "{total} 에이전트 중 {selected} 선택됨.",
"BUTTON_TEXT": "에이전트 추가",
- "AGENT_VALIDATION_ERROR": "Select at least one agent."
+ "AGENT_VALIDATION_ERROR": "최소 한 명의 에이전트를 선택하십시오."
},
"FINISH": {
"TITLE": "준비가 완료되었습니다!",
@@ -93,8 +96,8 @@
"ERROR_MESSAGE": "팀을 삭제할 수 없습니다. 다시 시도해주세요."
},
"CONFIRM": {
- "TITLE": "Are you sure you want to delete the team?",
- "PLACE_HOLDER": "Please type {teamName} to confirm",
+ "TITLE": "정말 팀을 삭제하시겠습니까?",
+ "PLACE_HOLDER": "확인하려면 {teamName}을(를) 입력하십시오",
"MESSAGE": "팀을 삭제하면 팀에 할당된 대화들에 대한 할당이 모두 해제됩니다.",
"YES": "삭제 ",
"NO": "취소"
@@ -105,15 +108,15 @@
"UPDATE": "팀 내용 업데이트",
"CREATE": "팀 생성",
"NAME": {
- "LABEL": "Team name",
- "PLACEHOLDER": "Example: Sales, Customer Support"
+ "LABEL": "팀 이름",
+ "PLACEHOLDER": "예: 영업, 고객 지원"
},
"DESCRIPTION": {
- "LABEL": "Team Description",
- "PLACEHOLDER": "Short description about this team."
+ "LABEL": "팀 설명",
+ "PLACEHOLDER": "이 팀에 대한 간단한 설명."
},
"AUTO_ASSIGN": {
- "LABEL": "Allow auto assign for this team."
+ "LABEL": "이 팀에 자동 배정을 허용합니다."
},
"SUBMIT_CREATE": "팀 생성"
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/ko/whatsappTemplates.json
index d42a0f1aa..5442cb517 100644
--- a/app/javascript/dashboard/i18n/locale/ko/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/ko/whatsappTemplates.json
@@ -1,47 +1,47 @@
{
"WHATSAPP_TEMPLATES": {
"MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ "TITLE": "Whatsapp 템플릿",
+ "SUBTITLE": "전송할 Whatsapp 템플릿을 선택하십시오",
+ "TEMPLATE_SELECTED_SUBTITLE": "템플릿 구성: {templateName}"
},
"PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "HEADER": "Header",
- "BODY": "Body",
- "FOOTER": "Footer",
- "BUTTONS": "Buttons",
- "CATEGORY": "Category",
- "MEDIA_CONTENT": "Media Content",
- "MEDIA_CONTENT_FALLBACK": "media content",
- "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
- "REFRESH_BUTTON": "Refresh templates",
- "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
- "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "SEARCH_PLACEHOLDER": "템플릿 검색",
+ "NO_TEMPLATES_FOUND": "다음에 대한 템플릿을 찾을 수 없습니다",
+ "HEADER": "헤더",
+ "BODY": "본문",
+ "FOOTER": "푸터",
+ "BUTTONS": "버튼",
+ "CATEGORY": "카테고리",
+ "MEDIA_CONTENT": "미디어 콘텐츠",
+ "MEDIA_CONTENT_FALLBACK": "미디어 콘텐츠",
+ "NO_TEMPLATES_AVAILABLE": "사용 가능한 WhatsApp 템플릿이 없습니다. 새로고침을 클릭하여 WhatsApp에서 템플릿을 동기화하십시오.",
+ "REFRESH_BUTTON": "템플릿 새로고침",
+ "REFRESH_SUCCESS": "템플릿 새로고침이 시작되었습니다. 업데이트에 몇 분 정도 소요될 수 있습니다.",
+ "REFRESH_ERROR": "템플릿 새로고침에 실패했습니다. 다시 시도해 주십시오.",
"LABELS": {
"LANGUAGE": "언어",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
+ "TEMPLATE_BODY": "템플릿 본문",
+ "CATEGORY": "카테고리"
}
},
"PARSER": {
- "VARIABLES_LABEL": "Variables",
+ "VARIABLES_LABEL": "변수",
"LANGUAGE": "언어",
- "CATEGORY": "Category",
- "VARIABLE_PLACEHOLDER": "Enter {variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
- "MEDIA_HEADER_LABEL": "{type} Header",
- "OTP_CODE": "Enter 4-8 digit OTP",
- "EXPIRY_MINUTES": "Enter expiry minutes",
- "BUTTON_PARAMETERS": "Button Parameters",
- "BUTTON_LABEL": "Button {index}",
- "COUPON_CODE": "Enter coupon code (max 15 chars)",
- "MEDIA_URL_LABEL": "Enter {type} URL",
- "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
- "BUTTON_PARAMETER": "Enter button parameter"
+ "CATEGORY": "카테고리",
+ "VARIABLE_PLACEHOLDER": "{variable} 값을 입력하십시오",
+ "GO_BACK_LABEL": "뒤로 가기",
+ "SEND_MESSAGE_LABEL": "메시지 전송",
+ "FORM_ERROR_MESSAGE": "전송하기 전에 모든 변수를 입력하십시오",
+ "MEDIA_HEADER_LABEL": "{type} 헤더",
+ "OTP_CODE": "4~8자리 OTP를 입력하십시오",
+ "EXPIRY_MINUTES": "만료 시간(분)을 입력하십시오",
+ "BUTTON_PARAMETERS": "버튼 매개변수",
+ "BUTTON_LABEL": "버튼 {index}",
+ "COUPON_CODE": "쿠폰 코드를 입력하십시오 (최대 15자)",
+ "MEDIA_URL_LABEL": "{type} URL을 입력하십시오",
+ "DOCUMENT_NAME_PLACEHOLDER": "문서 파일명을 입력하십시오 (예: Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "버튼 매개변수를 입력하십시오"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/yearInReview.json b/app/javascript/dashboard/i18n/locale/ko/yearInReview.json
index 7f47d005f..67db86a8a 100644
--- a/app/javascript/dashboard/i18n/locale/ko/yearInReview.json
+++ b/app/javascript/dashboard/i18n/locale/ko/yearInReview.json
@@ -1,64 +1,64 @@
{
"YEAR_IN_REVIEW": {
- "TITLE": "Year in Review",
- "LOADING": "Loading your year in review...",
- "ERROR": "Failed to load year in review",
+ "TITLE": "연간 리뷰",
+ "LOADING": "연간 리뷰를 불러오는 중...",
+ "ERROR": "연간 리뷰를 불러오지 못했습니다",
"CLOSE": "닫기",
"CONVERSATIONS": {
- "TITLE": "You have handled",
+ "TITLE": "처리한 대화 수",
"SUBTITLE": "대화",
- "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "FALLBACK": "올해는 숫자가 아니라 꾸준히 함께했다는 것이 중요합니다.",
"COMPARISON": {
- "0_50": "You showed up, and that's how every good inbox begins.",
- "50_100": "You kept the replies flowing and the conversations alive.",
- "100_500": "You handled serious volume and kept everything on track.",
- "500_2000": "You kept things moving while the volume kept climbing.",
- "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
- "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ "0_50": "첫 걸음을 내딛었습니다. 모든 훌륭한 받은 메시지함은 이렇게 시작됩니다.",
+ "50_100": "답변을 이어가며 대화를 활발하게 유지했습니다.",
+ "100_500": "상당한 양을 처리하면서도 모든 것을 순조롭게 관리했습니다.",
+ "500_2000": "볼륨이 계속 늘어나는 가운데에서도 흐름을 유지했습니다.",
+ "2000_10000": "많은 트래픽을 거뜬히 소화했습니다.",
+ "10000_PLUS": "도시 하나에 해당하는 고객이 문을 두드렸는데, 당신은 쉬워 보이게 해냈습니다."
}
},
"BUSIEST_DAY": {
- "TITLE": "Your busiest day was",
- "MESSAGE": "{count} conversations that day.",
+ "TITLE": "가장 바빴던 날은",
+ "MESSAGE": "그날 {count}건의 대화가 있었습니다.",
"COMPARISON": {
- "0_5": "A warm-up lap that barely woke the inbox.",
- "5_10": "Enough action to justify a second cup of coffee.",
- "10_25": "Things got busy and the inbox stayed on its toes.",
- "25_50": "A proper rush that barely broke a sweat.",
- "50_100": "Controlled chaos, handled like a normal Tuesday.",
- "100_500": "Absolute dumpster fire, somehow still shipping replies.",
- "500_PLUS": "The inbox lost all chill and never slowed down."
+ "0_5": "받은 메시지함을 간신히 깨운 워밍업 수준이었습니다.",
+ "5_10": "커피 한 잔 더 마실 이유가 생길 만큼의 활동이었습니다.",
+ "10_25": "바빠지기 시작했고 받은 메시지함이 긴장하기 시작했습니다.",
+ "25_50": "제대로 된 러시였지만 거뜬히 해냈습니다.",
+ "50_100": "통제된 혼란, 평범한 화요일처럼 처리했습니다.",
+ "100_500": "완전한 폭풍이었지만 어떻게든 답변을 보냈습니다.",
+ "500_PLUS": "받은 메시지함이 완전히 쉴 틈 없이 쏟아져 들어왔습니다."
}
},
"PERSONALITY": {
- "TITLE": "Your support personality is",
+ "TITLE": "당신의 지원 성격 유형은",
"MESSAGES": {
- "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
- "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
- "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
- "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ "SWIFT_HELPER": "평균 {time} 만에 답변했습니다. 대부분의 알림보다 빠릅니다.",
+ "QUICK_RESPONDER": "평균 {time} 만에 답변했습니다. 받은 메시지함이 거의 기다리지 않았습니다.",
+ "STEADY_SUPPORT": "평균 {time} 만에 답변했습니다. 차분한 속도, 견실한 답변.",
+ "THOUGHTFUL_ADVISOR": "평균 {time} 만에 답변했습니다. 정확한 답변을 위해 시간을 들였습니다."
}
},
"THANK_YOU": {
- "TITLE": "Congratulations on surviving the inbox of {year}.",
- "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ "TITLE": "{year}년 받은 메시지함을 잘 견뎌내신 것을 축하합니다.",
+ "MESSAGE": "올 한 해 고객 지원에 보여주신 놀라운 헌신에 감사드립니다. 여러분의 노력이 진정한 변화를 만들어냈으며, 이 여정을 함께해 주셔서 감사합니다. {nextYear}년에도 함께 더 나은 한 해를 만들어 나갑시다!"
},
"SHARE_MODAL": {
- "TITLE": "Share Your Year in Review",
- "PREPARING": "Preparing your image...",
+ "TITLE": "연간 리뷰 공유하기",
+ "PREPARING": "이미지를 준비하는 중...",
"DOWNLOAD": "다운로드",
- "SHARE_TITLE": "My {year} Year in Review",
- "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "SHARE_TITLE": "나의 {year}년 연간 리뷰",
+ "SHARE_TEXT": "Chatwoot과 함께한 나의 {year}년 연간 리뷰를 확인해 보세요!",
"BRANDING": "Made with Chatwoot"
},
"BANNER": {
- "TITLE": "Your {year} Year in Review is here",
- "BUTTON": "See your impact"
+ "TITLE": "{year}년 연간 리뷰가 도착했습니다",
+ "BUTTON": "나의 성과 보기"
},
"NAVIGATION": {
- "PREVIOUS": "Previous",
- "NEXT": "Next",
- "SHARE": "대화 공유하기"
+ "PREVIOUS": "이전",
+ "NEXT": "다음",
+ "SHARE": "공유하기"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/agentBots.json b/app/javascript/dashboard/i18n/locale/lt/agentBots.json
index 46731005a..7812085bc 100644
--- a/app/javascript/dashboard/i18n/locale/lt/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/lt/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Įkeliama redagavimo priemonė...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "Sistema",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Gaunami Botai...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Veiksmai"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/lt/agentMgmt.json b/app/javascript/dashboard/i18n/locale/lt/agentMgmt.json
index 4959e6395..bb9782bb8 100644
--- a/app/javascript/dashboard/i18n/locale/lt/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lt/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administratorius",
"AGENT": "Agentas"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Su šia paskyra nėra susietų agentų",
"TITLE": "Valdyti agentus jūsų komandoje",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Nepavyko prisijungti prie Woot serverio, bandykite dar kartą vėliau"
}
},
+ "SEARCH_PLACEHOLDER": "Ieškoti agentų...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Nieko nerasta."
},
diff --git a/app/javascript/dashboard/i18n/locale/lt/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/lt/attributesMgmt.json
index a0e656e51..25aec4546 100644
--- a/app/javascript/dashboard/i18n/locale/lt/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lt/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Gaunami personalizuoti požymiai",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Ieškoti požymių...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Pokalbis",
"CONTACT": "Kontaktas"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/lt/automation.json b/app/javascript/dashboard/i18n/locale/lt/automation.json
index 2f6fbbfbc..3a1e1549a 100644
--- a/app/javascript/dashboard/i18n/locale/lt/automation.json
+++ b/app/javascript/dashboard/i18n/locale/lt/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automatizacija",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Pridėti automatizavimo taisyklę",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Gaunamos automatizavimo taisyklės",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Pridėti automatizavimo taisyklę",
"SUBMIT": "Sukurti",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Vardas",
- "DESCRIPTION": "Aprašymas",
"ACTIVE": "Aktyvus",
- "CREATED_ON": "Sukurta"
+ "CREATED_ON": "Sukurta",
+ "ACTIONS": "Veiksmai"
},
"404": "Nerasta jokių automatizavimo taisyklių"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Pakeisti Prioritetą",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Atidaryti pokalbį"
+ "OPEN_CONVERSATION": "Atidaryti pokalbį",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/lt/bulkActions.json b/app/javascript/dashboard/i18n/locale/lt/bulkActions.json
index a7b2bf175..9275066da 100644
--- a/app/javascript/dashboard/i18n/locale/lt/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/lt/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Pokalbio būsena atnaujinta sėkmingai.",
"UPDATE_FAILED": "Nepavyko atnaujinti pokalbių. Bandykite dar kartą."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Priskirti etiketes",
"NO_LABELS_FOUND": "Etikečių nerasta",
diff --git a/app/javascript/dashboard/i18n/locale/lt/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/lt/cannedMgmt.json
index f2eae76c2..e17c7f3ed 100644
--- a/app/javascript/dashboard/i18n/locale/lt/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lt/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Atsakymų ruošiniai",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Pridėti atsakymo ruošinį",
"LOADING": "Atsakymų ruošinių gavimas...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Šią užklausą atitinkančių elementų nėra.",
"LIST": {
"404": "Šioje paskyroje nėra galimų atsakymų ruošinių.",
diff --git a/app/javascript/dashboard/i18n/locale/lt/chatlist.json b/app/javascript/dashboard/i18n/locale/lt/chatlist.json
index 5338e964d..858f590e1 100644
--- a/app/javascript/dashboard/i18n/locale/lt/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/lt/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Laukia atsakymo: nuo trumpiausio"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/lt/contact.json b/app/javascript/dashboard/i18n/locale/lt/contact.json
index bc7433609..9538b4a71 100644
--- a/app/javascript/dashboard/i18n/locale/lt/contact.json
+++ b/app/javascript/dashboard/i18n/locale/lt/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Nė vienas kontaktas neatitinka jūsų paieškos 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Priskirti etiketes",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Kam:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Tema :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/lt/conversation.json b/app/javascript/dashboard/i18n/locale/lt/conversation.json
index 6d8fca82f..96ff486bf 100644
--- a/app/javascript/dashboard/i18n/locale/lt/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/lt/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Ši žinutė nepalaikoma. Jūs galite peržiūrėti šią žinutę Facebook Messenger programėlėje.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Ši žinutė nepalaikoma. Jūs galite peržiūrėti šią žinutę Instagram programėlėje.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Pranešimas ištrintas sėkmingai",
"FAIL_DELETE_MESSSAGE": "Nepavyko ištrinti pranešimo! Bandykite dar kartą",
"NO_RESPONSE": "Nėra atsakymo",
@@ -173,8 +174,12 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Nepavyko priskirti etiketės. Prašau, pabandykite dar kartą."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "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ą."
}
}
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Išjungti parašą",
"MSG_INPUT": "Spauksite Shift + Enter, pradėjimui iš naujos eilutės. Pradėkite nuo „/“, kad pasirinktumėte Atsakymo Ruošinį.",
"PRIVATE_MSG_INPUT": "Spauksite Shift + Enter, pradėjimui iš naujos eilutės. Tai bus matoma tik Agentams",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Pranešimo parašas nesukonfigūruotas, sukonfigūruokite jį profilio nustatymuose.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Spausti čia kad atnaujinti",
"WHATSAPP_TEMPLATES": "Whatsapp Šablonai"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Norėdami pridėti, vilkite ir numeskite čia",
"START_AUDIO_RECORDING": "Pradėti audio įrašymą",
"STOP_AUDIO_RECORDING": "Baigti audio įrašymą",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "Kam",
"ADD_BCC": "Pridėti bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Failas viršija {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB priedo apribojimą",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Nepavyko išsiųsti šio pranešimo, bandykite dar kartą vėliau",
"SENT_BY": "Siuntėjas:",
"BOT": "Botas",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Nepavyko išsiųsti pranešimo! Bandykite dar kartą",
"TRY_AGAIN": "kartoti",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Atšaukti",
"SEND_EMAIL_SUCCESS": "Pokalbio stenograma sėkmingai išsiųsta",
"SEND_EMAIL_ERROR": "Įvyko klaida, prašau pabandykite dar kartą",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Siųsti stenogramą klientui",
"SEND_TO_AGENT": "Siųsti stenogramą priskirtam agentui",
diff --git a/app/javascript/dashboard/i18n/locale/lt/customRole.json b/app/javascript/dashboard/i18n/locale/lt/customRole.json
index e64798916..86676a903 100644
--- a/app/javascript/dashboard/i18n/locale/lt/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/lt/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Šią užklausą atitinkančių elementų nėra.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/lt/datePicker.json b/app/javascript/dashboard/i18n/locale/lt/datePicker.json
index 307e936c4..a3b5ba2d8 100644
--- a/app/javascript/dashboard/i18n/locale/lt/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/lt/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Taikyti",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Paskutinius 3 mėnesius",
"LAST_6_MONTHS": "Paskutinius 6 mėnesius",
"LAST_YEAR": "Paskutinius metus",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Pritaikytas datos intervalas"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/general.json b/app/javascript/dashboard/i18n/locale/lt/general.json
index e311da0ba..fa4f890e7 100644
--- a/app/javascript/dashboard/i18n/locale/lt/general.json
+++ b/app/javascript/dashboard/i18n/locale/lt/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Uždaryti",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Taip",
+ "NO": "Ne"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/generalSettings.json b/app/javascript/dashboard/i18n/locale/lt/generalSettings.json
index 5ac0b32d3..e484d1705 100644
--- a/app/javascript/dashboard/i18n/locale/lt/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/lt/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Ieškoti ar pereiti į",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Pagrindinis",
"REPORTS": "Ataskaitos",
diff --git a/app/javascript/dashboard/i18n/locale/lt/helpCenter.json b/app/javascript/dashboard/i18n/locale/lt/helpCenter.json
index 25b96ba2f..e418a2cd9 100644
--- a/app/javascript/dashboard/i18n/locale/lt/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/lt/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Trinant straipsnį įvyko klaida"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Pridėkite straipsnio antraštę ir turinį, tada tik jūs galėsite atnaujinti nustatymus"
},
diff --git a/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json
index 366129760..325c45273 100644
--- a/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Gautų laiškų aplankai",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Naudokite tik sukonfigūruotą įmonės pavadinimą kaip siuntėjo vardą el. pašto antraštėje."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Sukonfigūruokite įmonės pavadinimą",
+ "BUTTON_TEXT": "Sukonfigūruokite įmonės pavadinimą",
"PLACEHOLDER": "Įveskite įmonės pavadinimą",
"SAVE_BUTTON_TEXT": "Išsaugoti"
}
@@ -589,8 +592,10 @@
"DISABLED": "Išjungta"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Leisti",
- "DISABLED": "Išjungta"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Leisti"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Įjungti/išjungti agento vardo rodymą el. pašte, jei išjungta, bus rodomas įmonės pavadinimas",
"ENABLE_CONTINUITY_VIA_EMAIL": "Leisti pokalbio tęstinumą el. paštu",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Jei kontaktinis el. pašto adresas yra pasiekiamas, pokalbiai bus tęsiami el. paštu.",
- "LOCK_TO_SINGLE_CONVERSATION": "Laikykitės vieno pokalbio",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Leisti arba neleisti kelis pokalbius tam pačiam kontaktui šiame gautų laiškų aplanke",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Gautų Laiškų Aplanko Nustatymai",
"INBOX_UPDATE_SUB_TEXT": "Atnaujinkite gautų laiškų aplanko nustatymus",
"AUTO_ASSIGNMENT_SUB_TEXT": "Įjunkite arba išjunkite automatinį naujų pokalbių priskyrimą agentams, pridėtiems prie šio gautų laiškų aplanko.",
@@ -758,6 +775,7 @@
"LABEL": "Palaikymo centras",
"PLACEHOLDER": "Pasirinkti Pagalbos Centrą",
"SELECT_PLACEHOLDER": "Pasirinkti Pagalbos Centrą",
+ "NONE": "Nėra",
"REMOVE": "Pašalinti Pagalbos Centrą",
"SUB_TEXT": "Pridėkite pagalbos centrą prie gautų laiškų aplanko"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Įveskite reikšmę, didesnę nei 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Apribokite maksimalų pokalbių skaičių iš šio gautų laiškų aplanko, kuriuos galima automatiškai priskirti agentui"
},
+ "ASSIGNMENT": {
+ "TITLE": "Pokalbio paskirstymas",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktyvus",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Atšaukti",
+ "CONFIRM_DELETE": "Ištrinti",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Pakartotinai autorizuoti",
"SUBTITLE": "Jūsų ryšys su Facebook nutrūko. Jei norite toliau nauditis paslaugomis, iš naujo prisijunkite prie Facebook puslapio",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Grįžti"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Pranešimas lankytojams apie nepasiekiamumą",
"TOGGLE_HELP": "Nustačius darbo laiką, bus rodomos darbo valandos chato valdiklyje, net jei visi agentai neprisijungę. Ne darbo valandomis lankytojai gali būti įspėti pranešimu ir išankstinio pokalbio forma.",
"DAY": {
+ "DAY": "Diena",
+ "AVAILABILITY": "Prieinamumas",
+ "HOURS": "Hours",
"ENABLE": "Įgalinti pasiekiamumą šiai dienai",
"UNAVAILABLE": "Nepasiekiamas",
- "HOURS": "valandos",
"VALIDATION_ERROR": "Pradžios laikas turi būti prieš pabaigos laiką.",
"CHOOSE": "Pasirinkti"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Per dieną"
},
"WIDGET_COLOR_LABEL": "Valdiklio Spalva",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Padėtis",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Tipas",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tipas:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Pabendraukite su mumis",
- "LABEL": "Widget Bubble Paleidimo programos pavadinimas",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Pabendraukite su mumis"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Pagal nutylėjimą",
- "CHAT": "Pokalbis internetu"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Paprastai atsako per kelias minutes",
diff --git a/app/javascript/dashboard/i18n/locale/lt/integrationApps.json b/app/javascript/dashboard/i18n/locale/lt/integrationApps.json
index f449fbc05..f3da604a5 100644
--- a/app/javascript/dashboard/i18n/locale/lt/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/lt/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Integracijų gavimas",
"NO_HOOK_CONFIGURED": "Šioje paskyroje nesukonfigūruota jokių {integrationId} integracijų.",
"HEADER": "Programos",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Leisti",
"DISABLED": "Išjungta"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Integravimo webhook gavimas",
"INBOX": "Gautų laiškų aplankas",
+ "ACTIONS": "Veiksmai",
"DELETE": {
"BUTTON_TEXT": "Ištrinti"
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/integrations.json b/app/javascript/dashboard/i18n/locale/lt/integrations.json
index 466e83cce..ab6defb7f 100644
--- a/app/javascript/dashboard/i18n/locale/lt/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/lt/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Prenumeruoti įvykiai",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Atšaukti",
"DESC": "Webhook įvykiai suteikia jums realaus laiko informaciją apie tai, kas vyksta jūsų Chatwoot paskyroje. Norėdami sukonfigūruoti atgalinį skambinimą, įveskite tinkamą URL.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Ištrinti",
"DELETE_CONFIRMATION": {
"TITLE": "Ištrinkite integraciją",
@@ -145,7 +160,29 @@
"EXPAND": "Išskleisti",
"MAKE_FRIENDLY": "Pakeisti pranešimo toną į draugišką",
"MAKE_FORMAL": "Naudokite oficialų toną",
- "SIMPLIFY": "Supaprastinti"
+ "SIMPLIFY": "Supaprastinti",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesionalas",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Draugiškas"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Turinio juodraštis",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Informacinio skydelio programos
Informacinio skydelio programos leidžia organizacijoms įterpti programą į Chatwood valdymo skydelį, kad klientų aptarnavimo agentams būtų suteiktas kontekstas. Ši funkcija leidžia savarankiškai kurti programą ir įterpti informaciją apie vartotoją, jo užsakymus ar mokėjimų istoriją.
Kai įterpiate programą naudodami Chatwood valdymo skydelį, programa gaus pokalbio kontekstą ir įvykio nuorodas. Įdiekite pranešimo įvykio nuorodas savo puslapyje, kad gautumėte kontekstą.
Jei norite pridėti naują informacinio skydelio programą, spustelėkite mygtuką \"Pridėti naują skydelio programą\".
",
"DESCRIPTION": "Informacinio skydelio programos leidžia organizacijoms įterpti programą į valdymo skydelį, kad klientų aptarnavimo agentams būtų suteiktas kontekstas. Ši funkcija leidžia savarankiškai kurti programą ir įterpti informaciją apie vartotoją, jo užsakymus ar mokėjimų istoriją.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Šioje paskyroje nėra sukonfigūruotų informacinio skydelio programų",
"LOADING": "Gaunamos informacinio skydelio programos...",
"TABLE_HEADER": {
"NAME": "Vardas",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Veiksmai"
},
"EDIT_TOOLTIP": "Redaguoti programą",
"DELETE_TOOLTIP": "Ištrinti programą"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/lt/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/lt/labelsMgmt.json
index 5c19249b4..c4d420f47 100644
--- a/app/javascript/dashboard/i18n/locale/lt/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lt/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Gaunamos etiketės",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Ieškoti etikečių...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Šią užklausą atitinkančių elementų nėra",
"LIST": {
"404": "Šioje paskyroje nėra galimų etikečių.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Vardas",
"DESCRIPTION": "Aprašymas",
- "COLOR": "Spalva"
+ "COLOR": "Spalva",
+ "ACTION": "Veiksmai"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/lt/macros.json b/app/javascript/dashboard/i18n/locale/lt/macros.json
index 19532d650..6dba5c1ff 100644
--- a/app/javascript/dashboard/i18n/locale/lt/macros.json
+++ b/app/javascript/dashboard/i18n/locale/lt/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Makrokomandos",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Pridėti naują makrokomandą",
"HEADER_BTN_TXT_SAVE": "Išsaugoti makrokomandą",
"LOADING": "Gaunama makrokomanda",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Kažkas nepavyko. Bandykite dar kartą",
"ORDER_INFO": "Makrokomandos bus paleistos ta tvarka, kuria pridėsite veiksmus. Galite juos pertvarkyti vilkdami už rankenos šalia kiekvieno mazgo.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Vardas",
"CREATED BY": "Sukurtas",
"LAST_UPDATED_BY": "Paskutinį kartą atnaujino",
- "VISIBILITY": "Matomumas"
+ "VISIBILITY": "Matomumas",
+ "ACTIONS": "Veiksmai"
},
"404": "Nerasta makrokomandų"
},
diff --git a/app/javascript/dashboard/i18n/locale/lt/mfa.json b/app/javascript/dashboard/i18n/locale/lt/mfa.json
index 08cef978f..5f7033c94 100644
--- a/app/javascript/dashboard/i18n/locale/lt/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/lt/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/lt/report.json b/app/javascript/dashboard/i18n/locale/lt/report.json
index cbd0536d9..68897e463 100644
--- a/app/javascript/dashboard/i18n/locale/lt/report.json
+++ b/app/javascript/dashboard/i18n/locale/lt/report.json
@@ -3,7 +3,7 @@
"HEADER": "Pokalbiai",
"LOADING_CHART": "Įkeliami diagramos duomenys...",
"NO_ENOUGH_DATA": "Negavome pakankamai duomenų, kad galėtume sugeneruoti ataskaitą. Bandykite dar kartą vėliau.",
- "DOWNLOAD_AGENT_REPORTS": "Parsisiųsti agentų ataskaitas",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Nepavyko gauti duomenų, bandykite dar kartą vėliau.",
"SUMMARY_FETCHING_FAILED": "Nepavyko gauti suvestinės, bandykite dar kartą vėliau.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agentų apžvalga",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Įkeliami diagramos duomenys...",
"NO_ENOUGH_DATA": "Negavome pakankamai duomenų, kad galėtume sugeneruoti ataskaitą. Bandykite dar kartą vėliau.",
"DOWNLOAD_AGENT_REPORTS": "Parsisiųsti agentų ataskaitas",
"FILTER_DROPDOWN_LABEL": "Pasirinkti agentą",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Ieškoti agentų"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Pokalbiai",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Negavome pakankamai duomenų, kad galėtume sugeneruoti ataskaitą. Bandykite dar kartą vėliau.",
"DOWNLOAD_LABEL_REPORTS": "Parsisiųsti etiketės ataskaitas",
"FILTER_DROPDOWN_LABEL": "Pažymėti Etiketę",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Ieškoti etikečių"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Pokalbiai",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Pasirinkti gautų laiškų aplanką",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Pokalbiai",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Komandos apžvalga",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Įkeliami diagramos duomenys...",
"NO_ENOUGH_DATA": "Negavome pakankamai duomenų, kad galėtume sugeneruoti ataskaitą. Bandykite dar kartą vėliau.",
"DOWNLOAD_TEAM_REPORTS": "Parsisiųsti komandos ataskaitas",
"FILTER_DROPDOWN_LABEL": "Pasirinkite komandą",
+ "FILTERS": {
+ "ADD_FILTER": "Pridėti Filtrą",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Ieškoti komandų"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Pokalbiai",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Ataskaitas",
- "NO_RECORDS": "Nėra CSAT apklausos atsakymų.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Parsisiųsti CSAT ataskaitas",
"DOWNLOAD_FAILED": "Nepavyko parsisiųsti CSAT ataskaitų",
"FILTERS": {
+ "ADD_FILTER": "Pridėti Filtrą",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Ieškoti agentų",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Ieškoti komandų",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Pasirinkti Agentus"
+ "LABEL": "Agentas"
+ },
+ "INBOXES": {
+ "LABEL": "Gautų laiškų aplankas"
+ },
+ "TEAMS": {
+ "LABEL": "Komanda"
+ },
+ "RATINGS": {
+ "LABEL": "Reitingas"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontaktas",
- "AGENT_NAME": "Priskirtas agentas",
+ "AGENT_NAME": "Agentas",
"RATING": "Reitingas",
- "FEEDBACK_TEXT": "Facebook komentaras"
- }
+ "FEEDBACK_TEXT": "Facebook komentaras",
+ "CONVERSATION": "Pokalbis",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Iš viso atsakymų",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Atsakymo įvertinimas",
"TOOLTIP": "Bendras atsakymų skaičius / Bendras skaičius išsiųstų CSAT apklausų pranešimų * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Išsaugoti",
+ "CANCEL": "Atšaukti",
+ "SAVING": "Išsaugoma...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/lt/settings.json b/app/javascript/dashboard/i18n/locale/lt/settings.json
index 69bb73e0f..64f0ea307 100644
--- a/app/javascript/dashboard/i18n/locale/lt/settings.json
+++ b/app/javascript/dashboard/i18n/locale/lt/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Parsisiųsti",
"UPLOADING": "Įkeliama...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Šis pasakojimas nebepasiekiamas."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Šis pasakojimas nebepasiekiamas.",
+ "INSTAGRAM_STORY_REPLY": "Atsakė į tavo pasakojimą:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Pamatyti žemėlapyje"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Skaityti dokumentus",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funkcijos",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Atsiskaitymas",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Ieškoti požymių"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Išspręsti pokalbį",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Išspręsti pokalbį",
+ "CANCEL": "Atšaukti"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Taip",
+ "NO": "Ne"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Oi! Nepavyko rasti jokių Chatwoot paskyrų. Jei norite tęsti, susikurkite naują paskyrą.",
"NEW_ACCOUNT": "Nauja Paskyra",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Atšaukti"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/lt/signup.json b/app/javascript/dashboard/i18n/locale/lt/signup.json
index a1798ba20..8b8a93759 100644
--- a/app/javascript/dashboard/i18n/locale/lt/signup.json
+++ b/app/javascript/dashboard/i18n/locale/lt/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Sukurti paskyrą",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registras",
"TESTIMONIAL_HEADER": "Tereikia vieno žingsnio, kad judėtume į priekį",
"TESTIMONIAL_CONTENT": "Liko vienas žingsnis, kad įtrauktumėte savo klientus, išlaikytumėte juos ir rastumėte naujų.",
diff --git a/app/javascript/dashboard/i18n/locale/lt/sla.json b/app/javascript/dashboard/i18n/locale/lt/sla.json
index 6a4b26990..2607e682f 100644
--- a/app/javascript/dashboard/i18n/locale/lt/sla.json
+++ b/app/javascript/dashboard/i18n/locale/lt/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/lt/snooze.json b/app/javascript/dashboard/i18n/locale/lt/snooze.json
new file mode 100644
index 000000000..1ad74ff46
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lt/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "valandos",
+ "DAY": "diena",
+ "DAYS": "days",
+ "WEEK": "diena",
+ "WEEKS": "weeks",
+ "MONTH": "savaitė",
+ "MONTHS": "months",
+ "YEAR": "mėnuo",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "rytoj",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "kitą savaitę",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "diena",
+ "DAY": "diena"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lt/teamsSettings.json b/app/javascript/dashboard/i18n/locale/lt/teamsSettings.json
index f66ac725d..916d6d5e2 100644
--- a/app/javascript/dashboard/i18n/locale/lt/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/lt/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Ieškoti komandų...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Šioje paskyroje nėra sukurtų komandų.",
"EDIT_TEAM": "Redaguoti komandą",
diff --git a/app/javascript/dashboard/i18n/locale/lv/agentBots.json b/app/javascript/dashboard/i18n/locale/lv/agentBots.json
index bc51df4f1..32199bec2 100644
--- a/app/javascript/dashboard/i18n/locale/lv/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/lv/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Notiek redaktora ielāde...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Uzzināt vairāk par aģentiem robotiem",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "Sistēma",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Notiek robotu iegūšana...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Darbības"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/lv/agentMgmt.json b/app/javascript/dashboard/i18n/locale/lv/agentMgmt.json
index e75c6d3f1..6266161be 100644
--- a/app/javascript/dashboard/i18n/locale/lv/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lv/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrators",
"AGENT": "Aģents"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Šim kontam nav piesaistīts neviens aģents",
"TITLE": "Pārvaldīt Jūsu komandas aģentus",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Nevar izveidot savienojumu ar Woot serveri. Lūdzu, vēlāk pamēģiniet vēlreiz"
}
},
+ "SEARCH_PLACEHOLDER": "Meklēt aģentus...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Nav atrasts."
},
diff --git a/app/javascript/dashboard/i18n/locale/lv/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/lv/attributesMgmt.json
index a61d705bb..92bfdfea6 100644
--- a/app/javascript/dashboard/i18n/locale/lv/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lv/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Notiek pielāgotu īpašību iegūšana",
"DESCRIPTION": "Pielāgots atribūts ļauj izsekot papildu informāciju par jūsu kontaktpersonām vai sarunām, piemēram, abonēšanas plānu vai viņu pirmā pirkuma datumu. Varat pievienot dažāda veida pielāgotus atribūtus, piemēram, tekstu, sarakstus vai skaitļus, lai tvertu konkrētu jums nepieciešamo informāciju.",
"LEARN_MORE": "Uzzināt vairāk par pielāgotajiem atribūtiem",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Meklēt īpašības...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Saruna",
"CONTACT": "Kontaktpersona"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Iespējot regex pārbaudi"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/lv/automation.json b/app/javascript/dashboard/i18n/locale/lv/automation.json
index 4afc3d0b1..2e7ec674b 100644
--- a/app/javascript/dashboard/i18n/locale/lv/automation.json
+++ b/app/javascript/dashboard/i18n/locale/lv/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automatizācija",
"DESCRIPTION": "Automatizācija var aizstāt un racionalizēt esošos procesus, kuriem nepieciešama manuāla piepūle, piemēram, etiķešu pievienošana un sarunu piešķiršana vispiemērotākajam aģentam. Tas ļauj komandai koncentrēties uz savām stiprajām pusēm, vienlaikus samazinot laiku, kas pavadīts ikdienas uzdevumiem.",
"LEARN_MORE": "Uzzināt vairāk par automatizāciju",
- "HEADER_BTN_TXT": "Pievienot Automatizācijas Noteikumu",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Notiek automatizācijas noteikumu iegūšana",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Pievienot Automatizācijas Noteikumu",
"SUBMIT": "Izveidot",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Nosaukums",
- "DESCRIPTION": "Apraksts",
"ACTIVE": "Aktīvs",
- "CREATED_ON": "Izveidots"
+ "CREATED_ON": "Izveidots",
+ "ACTIONS": "Darbības"
},
"404": "Automatizācijas noteikumi nav atrasti"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Pievienot Privātu Piezīmi",
"CHANGE_PRIORITY": "Mainīt prioritāti",
"ADD_SLA": "Pievienot SLA",
- "OPEN_CONVERSATION": "Atvērt sarunu"
+ "OPEN_CONVERSATION": "Atvērt sarunu",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/lv/bulkActions.json b/app/javascript/dashboard/i18n/locale/lv/bulkActions.json
index 6c8c3c42f..100cf7f47 100644
--- a/app/javascript/dashboard/i18n/locale/lv/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/lv/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Sarunas statuss ir veiksmīgi atjaunināts.",
"UPDATE_FAILED": "Neizdevās atjaunināt sarunas. Lūdzu mēģiniet vēlreiz."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Piešķirt etiķetes",
"NO_LABELS_FOUND": "Etiķetes nav atrastas",
diff --git a/app/javascript/dashboard/i18n/locale/lv/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/lv/cannedMgmt.json
index 1f41be12b..a9a19ddd4 100644
--- a/app/javascript/dashboard/i18n/locale/lv/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lv/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Sagatavotās Atbildes",
"LEARN_MORE": "Uzzināt vairāk par sagatavotajām atbildēm",
"DESCRIPTION": "Sagatavotās atbildes ir iepriekš uzrakstītas atbilžu veidnes, kas palīdz ātri atbildēt uz sarunu. Lai sarunas laikā ievietotu gatavu atbildi, aģenti var ierakstīt rakstzīmi “/”, kam seko īskods. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Pievienot sagatavoto atbildi",
"LOADING": "Notiek sagatavoto atbilžu iegūšana...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Šim vaicājumam nav atbilstošu vienumu.",
"LIST": {
"404": "Šajā kontā nav pieejama neviena sagatavota atbilde.",
diff --git a/app/javascript/dashboard/i18n/locale/lv/chatlist.json b/app/javascript/dashboard/i18n/locale/lv/chatlist.json
index 224663998..2da60cf93 100644
--- a/app/javascript/dashboard/i18n/locale/lv/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/lv/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Gaida atbildi: Īsākā vispirms"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/lv/contact.json b/app/javascript/dashboard/i18n/locale/lv/contact.json
index 61c7c65d1..fa9e6755e 100644
--- a/app/javascript/dashboard/i18n/locale/lv/contact.json
+++ b/app/javascript/dashboard/i18n/locale/lv/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Pievienot Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Neviena kontaktpersona neatbilst jūsu meklēšanas vaicājumam 🔍",
"LIST_EMPTY_STATE_TITLE": "Šajā skatā nav pieejama neviena kontaktpersona 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Ielādēt vairāk"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Piešķirt Etiķetes",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "Nav pieejamas iesūtnes, lai sāktu sarunu ar šo kontaktpersonu.",
"CONTACT_SELECTOR": {
"LABEL": "Kam:",
- "TAG_INPUT_PLACEHOLDER": "Meklēt kontaktpersonu pēc vārda, e-pasta vai tālruņa numura",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Notiek kontaktpersonas izveide..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Tēma :",
"SUBJECT_PLACEHOLDER": "Ievadiet šeit sava e-pasta tēmu",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Meklēt kontaktpersonu pēc e-pasta adreses",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Meklēt kontaktpersonu pēc e-pasta adreses",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/lv/conversation.json b/app/javascript/dashboard/i18n/locale/lv/conversation.json
index d3528c104..c59a0e7a7 100644
--- a/app/javascript/dashboard/i18n/locale/lv/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/lv/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "Šis ziņojums netiek atbalstīts. Šo ziņojumu varat apskatīt Facebook/Instagram lietotnē.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Šis ziņojums netiek atbalstīts. Šo ziņojumu Jūs varat apskatīt lietotnē Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Šis ziņojums netiek atbalstīts. Šo ziņojumu Jūs varat apskatīt lietotnē Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Ziņojums veiksmīgi izdzēsts",
"FAIL_DELETE_MESSSAGE": "Nevarēja izdzēst ziņojumu! Mēģiniet vēlreiz",
"NO_RESPONSE": "Nav atbildes",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Sarunai ar id {conversationId} piešķirta etiķete #{labelName}",
"FAILED": "Nevarēja piešķirt etiķeti. Lūdzu, mēģiniet vēlreiz."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Sarunai ar id {conversationId} tika piešķirta komanda \"{team}\"",
"FAILED": "Nevarēja piešķirt komandu. Lūdzu, mēģiniet vēlreiz."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Atspējot parakstu",
"MSG_INPUT": "Shift + Enter, lai pārietu uz jaunu rindu. Sāciet ar '/' lai izvēlētos sagatavotu atbildi.",
"PRIVATE_MSG_INPUT": "Shift + Enter, lai pārietu uz jaunu rindu. Ziņojums būs redzams tikai Aģentiem",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Ziņojuma paraksts nav nokonfigurēts. Lūdzu, nokonfigurējiet to profila iestatījumos.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Noklikšķiniet šeit, lai atjauninātu",
"WHATSAPP_TEMPLATES": "WhatsApp Veidnes"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Velciet un nometiet šeit, lai pievienotu",
"START_AUDIO_RECORDING": "Sākt audio ierakstīšanu",
"STOP_AUDIO_RECORDING": "Apturēt audio ierakstīšanu",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "KAM",
"ADD_BCC": "Pievienot bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Fails pārsniedz {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB pielikuma ierobežojumu",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Nevar nosūtīt šo ziņojumu. Lūdzu, vēlāk mēģiniet vēlreiz",
"SENT_BY": "Sūtīja:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Nevarēja nosūtīt ziņojumu! Mēģiniet vēlreiz",
"TRY_AGAIN": "mēģināt vēlreiz",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Atcelt",
"SEND_EMAIL_SUCCESS": "Sarunas transkripts tika veiksmīgi nosūtīts",
"SEND_EMAIL_ERROR": "Radās kļūda. Lūdzu, mēģiniet vēlreiz",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Nosūtīt transkriptu klientam",
"SEND_TO_AGENT": "Nosūtīt transkriptu piešķirtajam aģentam",
diff --git a/app/javascript/dashboard/i18n/locale/lv/customRole.json b/app/javascript/dashboard/i18n/locale/lv/customRole.json
index 6a03477ec..61e1fb05c 100644
--- a/app/javascript/dashboard/i18n/locale/lv/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/lv/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Pielāgotas lomas",
"LEARN_MORE": "Uzzināt vairāk par pielāgotām lomām",
"DESCRIPTION": "Pielāgotas lomas ir lomas, kuras izveido konta īpašnieks vai administrators. Šīs lomas var piešķirt aģentiem, lai definētu viņu piekļuvi un atļaujas kontā. Pielāgotas lomas var izveidot ar īpašām atļaujām un piekļuves līmeņiem, lai tie atbilstu organizācijas prasībām.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Pievienot pielāgotu lomu",
"LOADING": "Notiek pielāgotu lomu iegūšana...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Šim vaicājumam nav atbilstošu vienumu.",
"PAYWALL": {
"TITLE": "Pārejiet uz maksas versiju, lai izveidotu pielāgotas lomas",
diff --git a/app/javascript/dashboard/i18n/locale/lv/datePicker.json b/app/javascript/dashboard/i18n/locale/lv/datePicker.json
index b1e7894ab..31a6bdb14 100644
--- a/app/javascript/dashboard/i18n/locale/lv/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/lv/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Pielietot",
"CLEAR_BUTTON": "Notīrīt",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Pēdējie 3 mēneši",
"LAST_6_MONTHS": "Pēdējie 6 mēneši",
"LAST_YEAR": "Pagājušais gads",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Pielāgots datumu diapazons"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/general.json b/app/javascript/dashboard/i18n/locale/lv/general.json
index 758ec1d08..2cf4e0261 100644
--- a/app/javascript/dashboard/i18n/locale/lv/general.json
+++ b/app/javascript/dashboard/i18n/locale/lv/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Aizvērt",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Izmest",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Jā",
+ "NO": "Nē"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/generalSettings.json b/app/javascript/dashboard/i18n/locale/lv/generalSettings.json
index 7cf56963e..e327cd11c 100644
--- a/app/javascript/dashboard/i18n/locale/lv/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/lv/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Meklēt vai pāriet uz",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Vispārēji",
"REPORTS": "Pārskati",
diff --git a/app/javascript/dashboard/i18n/locale/lv/helpCenter.json b/app/javascript/dashboard/i18n/locale/lv/helpCenter.json
index 7a55537c2..e13b42c50 100644
--- a/app/javascript/dashboard/i18n/locale/lv/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/lv/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Dzēšot rakstu, radās kļūda"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Lūdzu, pievienojiet raksta virsrakstu un saturu. Tikai tad Jūs varat atjaunināt iestatījumus"
},
diff --git a/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json
index 1080f8983..6bbd93a6b 100644
--- a/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Iesūtnes",
"DESCRIPTION": "Kanāls ir saziņas veids, ko klients izvēlas saziņai ar jums. Iesūtne ir vieta, kur pārvaldāt mijiedarbības ar noteiktu kanālu. Tas var ietvert saziņu no dažādiem avotiem, piemēram, e-pasta, tiešsaistes tērzēšanas un sociālajiem medijiem.",
"LEARN_MORE": "Uzzināt vairāk par iesūtnēm",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Jūsu iesūtne ir atvienota. Jūs nesaņemsiet jaunus ziņojumus, kamēr nebūsiet tos atkārtoti autorizējis.",
"CLICK_TO_RECONNECT": "Noklikšķiniet šeit, lai atkārtoti izveidotu savienojumu.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Izmantot tikai konfigurēto uzņēmuma nosaukumu kā sūtītāja vārdu e-pasta galvenē."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Konfigurēt uzņēmuma nosaukumu",
+ "BUTTON_TEXT": "Konfigurēt uzņēmuma nosaukumu",
"PLACEHOLDER": "Ievadiet uzņēmuma nosaukumu",
"SAVE_BUTTON_TEXT": "Saglabāt"
}
@@ -589,8 +592,10 @@
"DISABLED": "Atspējots"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Iespējots",
- "DISABLED": "Atspējots"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Iespējot"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Iespējot/Atspējot aģenta vārda rādīšanu e-pastā. Ja tas ir atspējots, tiks rādīts uzņēmuma nosaukums",
"ENABLE_CONTINUITY_VIA_EMAIL": "Iespējot sarunas nepārtrauktību, izmantojot e-pastu",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Sarunas turpināsies pa e-pastu, ja saziņas e-pasta adrese ir pieejama.",
- "LOCK_TO_SINGLE_CONVERSATION": "Pieturēties pie vienas sarunas",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Iespējot vai atspējot vairākas sarunas vienai un tai pašai kontaktpersonai šajā iesūtnē",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Iesūtnes Iestatījumi",
"INBOX_UPDATE_SUB_TEXT": "Atjaunināt Jūsu iesūtnes iestatījumus",
"AUTO_ASSIGNMENT_SUB_TEXT": "Iespējot vai atspējot jaunu sarunu automātisku piešķiršanu šai iesūtnei pievienotajiem aģentiem.",
@@ -758,6 +775,7 @@
"LABEL": "Palīdzības centrs",
"PLACEHOLDER": "Izvēlēties Palīdzības Centru",
"SELECT_PLACEHOLDER": "Izvēlēties Palīdzības Centru",
+ "NONE": "Nav",
"REMOVE": "Noņemt Palīdzības Centru",
"SUB_TEXT": "Pievienot Palīdzības Centru ar iesūtni"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Lūdzu, ievadiet vērtību, kas ir lielāka par 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Ierobežo maksimālo sarunu skaitu no šīs iesūtnes, ko var automātiski piešķirt aģentam"
},
+ "ASSIGNMENT": {
+ "TITLE": "Sarunas Piešķiršana",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktīvs",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Atcelt",
+ "CONFIRM_DELETE": "Dzēst",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Atkārtoti autorizēties",
"SUBTITLE": "Jūsu Facebook savienojuma derīguma termiņš ir beidzies. Lūdzu, atkārtoti pievienojiet savu Facebook lapu, lai turpinātu pakalpojumus",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Atgriezties"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Ziņojums nav pieejams priekš apmeklētājiem",
"TOGGLE_HELP": "Iespējojot uzņēmuma pieejamību, tiešraides tērzēšanas logrīkā tiks rādīts darba laiks, pat ja visi aģenti būs bezsaistē. Ārpus darba laika apmeklētājus var brīdināt ar ziņojumu un pirms tērzēšanas veidlapu.",
"DAY": {
+ "DAY": "Diena",
+ "AVAILABILITY": "Pieejamība",
+ "HOURS": "Hours",
"ENABLE": "Iespējot pieejamību šai dienai",
"UNAVAILABLE": "Nav pieejams",
- "HOURS": "darba laiks",
"VALIDATION_ERROR": "Sākuma laikam jābūt pirms slēgšanas laika.",
"CHOOSE": "Izvēlēties"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Dienas laikā"
},
"WIDGET_COLOR_LABEL": "Logrīka Krāsa",
- "WIDGET_BUBBLE_POSITION_LABEL": "Logrīka Burbuļa Pozīcija",
- "WIDGET_BUBBLE_TYPE_LABEL": "Logrīka Burbuļa Tips",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tips:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Tērzējiet ar mums",
- "LABEL": "Logrīka Burbuļa Palaidēja Nosaukums",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Tērzējiet ar mums"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Noklusējums",
- "CHAT": "Tērzēšana"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Parasti atbild dažu minūšu laikā",
diff --git a/app/javascript/dashboard/i18n/locale/lv/integrationApps.json b/app/javascript/dashboard/i18n/locale/lv/integrationApps.json
index 6bf03aa8b..ef3f3729c 100644
--- a/app/javascript/dashboard/i18n/locale/lv/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/lv/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Notiek Integrāciju Iegūšana",
"NO_HOOK_CONFIGURED": "Šajā kontā nav nokonfigurēta neviena {integrationId} integrācija.",
"HEADER": "Lietojumprogrammas",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Meklēt...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Iespējots",
"DISABLED": "Atspējots"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Notiek integrāciju hook iegūšana",
"INBOX": "Iesūtne",
+ "ACTIONS": "Darbības",
"DELETE": {
"BUTTON_TEXT": "Dzēst"
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/integrations.json b/app/javascript/dashboard/i18n/locale/lv/integrations.json
index f45afff1c..bd97b0d4f 100644
--- a/app/javascript/dashboard/i18n/locale/lv/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/lv/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrējas ar vairākiem rīkiem un pakalpojumiem, lai uzlabotu jūsu komandas efektivitāti. Izpētiet tālāk esošo sarakstu, lai konfigurētu savas iecienītākās lietotnes.",
"LEARN_MORE": "Uzzināt vairāk par integrācijām",
"LOADING": "Integrāciju iegūšana",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain jūsu kontā nav iespējots.",
"CLICK_HERE_TO_CONFIGURE": "Noklikšķiniet šeit, lai konfigurētu",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Abonētie Notikumi",
"LEARN_MORE": "Uzzināt vairāk par webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Atcelt",
"DESC": "Webhook notikumi sniedz Jums reāllaika informāciju par to, kas notiek jūsu Chatwoot kontā. Lūdzu, ievadiet derīgu URL, lai nokonfigurētu atzvanīšanu.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Dzēst",
"DELETE_CONFIRMATION": {
"TITLE": "Dzēst integrāciju",
@@ -145,7 +160,29 @@
"EXPAND": "Izvērst",
"MAKE_FRIENDLY": "Mainīt ziņojuma toni uz draudzīgu",
"MAKE_FORMAL": "Izmantot formālu toni",
- "SIMPLIFY": "Vienkāršot"
+ "SIMPLIFY": "Vienkāršot",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesionāls",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Draudzīgs"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Melnraksta saturs",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Informācijas Paneļa Lietotnes
Informācijas paneļa lietotnes ļauj organizācijām iegult lietojumprogrammu Chatwoot informācijas panelī, lai nodrošinātu kontekstu klientu atbalsta aģentiem. Šī funkcija ļauj Jums izveidot lietojumprogrammu neatkarīgi un iegult to informācijas panelī, lai sniegtu informāciju par lietotāju, viņu pasūtījumiem vai viņu iepriekšējo maksājumu vēsturi.
Kad iegulsiet lietojumprogrammu, izmantojot Chatwoot informācijas paneli, Jūsu lietojumprogramma iegūs sarunas un kontaktpersonas kontekstu kā loga notikumu. Ieviesiet savā lapā ziņojuma notikuma uztvērēju, lai saņemtu kontekstu.
Lai pievienotu jaunu informācijas paneļa lietotni, noklikšķiniet uz pogas 'Pievienot jaunu informācijas paneļa lietotni'.
",
"DESCRIPTION": "Informācijas paneļa lietotnes ļauj organizācijām iegult lietojumprogrammu informācijas panelī, lai nodrošinātu kontekstu klientu atbalsta aģentiem. Šī funkcija ļauj Jums neatkarīgi izveidot lietojumprogrammu un iegult to, lai sniegtu informāciju par lietotāju, viņu pasūtījumiem vai iepriekšējo maksājumu vēsturi.",
"LEARN_MORE": "Uzzināt vairāk par Informācijas paneļa Lietotnēm",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Šajā kontā vēl nav nokonfigurēta neviena informācijas paneļa lietotne",
"LOADING": "Notiek informācijas paneļa lietotņu iegūšana...",
"TABLE_HEADER": {
"NAME": "Nosaukums",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Darbības"
},
"EDIT_TOOLTIP": "Rediģēt lietotni",
"DELETE_TOOLTIP": "Dzēst lietotni"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Lineārs",
"ADD_OR_LINK_BUTTON": "Izveidot/Saistīt lineāru problēmu",
"LOADING": "Notiek lineāru problēmu iegūšana...",
"LOADING_ERROR": "Lineāru problēmu iegūšanas laikā radās kļūda. Lūdzu, mēģiniet vēlreiz",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "Jūs varat jebkurā laikā mainīt vai atcelt savu versiju"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Modernizējiet savu abonementu, lai iegūtu piekļuvi viruālajiem asistentiem un copilot.",
"ASK_ADMIN": "Lai pārietu uz maksas versiju, lūdzu sazinieties ar savu administratoru."
},
diff --git a/app/javascript/dashboard/i18n/locale/lv/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/lv/labelsMgmt.json
index c520ba043..28cd4c76c 100644
--- a/app/javascript/dashboard/i18n/locale/lv/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lv/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Notiek etiķešu iegūšana",
"DESCRIPTION": "Etiķetes palīdz kategorizēt sarunas, interesentus un noteikt to prioritātes. Etiķeti, sarunai vai kontaktpersonai, varat piešķirt Izmantojot sānu paneli.",
"LEARN_MORE": "Uzzināt vairāk par etiķetēm",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Meklēt etiķetes...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Šim vaicājumam nav atbilstošu vienumu",
"LIST": {
"404": "Šajā kontā nav izveidotas etiķetes.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Nosaukums",
"DESCRIPTION": "Apraksts",
- "COLOR": "Krāsa"
+ "COLOR": "Krāsa",
+ "ACTION": "Darbības"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/lv/macros.json b/app/javascript/dashboard/i18n/locale/lv/macros.json
index 29ecd5d48..677acc6dd 100644
--- a/app/javascript/dashboard/i18n/locale/lv/macros.json
+++ b/app/javascript/dashboard/i18n/locale/lv/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "Makro ir saglabātu darbību kopa, kas palīdz klientu apkalpošanas aģentiem viegli veikt uzdevumus. Aģenti var definēt darbību kopu, piemēram, sarunas marķēšanu ar etiķeti, sarunas transkripta nosūtīšanu uz e-pastu, pielāgota atribūta atjaunināšanu utt., un viņi var veikt šīs darbības ar vienu klikšķi.",
"LEARN_MORE": "Uzzināt vairāk par makro",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Pievienot jaunu makro",
"HEADER_BTN_TXT_SAVE": "Saglabāt makro",
"LOADING": "Notiek makro iegūšana",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Radās kļūda. Lūdzu, mēģiniet vēlreiz",
"ORDER_INFO": "Makro darbosies tādā secībā, kādā Jūs pievienosit savas darbības. Jūs varat tos pārkārtot, velkot tos aiz roktura kas atrodas blakus katram mezglam.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Nosaukums",
"CREATED BY": "Izveidoja",
"LAST_UPDATED_BY": "Pēdējo reizi atjaunināja",
- "VISIBILITY": "Redzamība"
+ "VISIBILITY": "Redzamība",
+ "ACTIONS": "Darbības"
},
"404": "Nav atrasts neviens makro"
},
diff --git a/app/javascript/dashboard/i18n/locale/lv/mfa.json b/app/javascript/dashboard/i18n/locale/lv/mfa.json
index 0bf3f0163..837a5b5b5 100644
--- a/app/javascript/dashboard/i18n/locale/lv/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/lv/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/lv/report.json b/app/javascript/dashboard/i18n/locale/lv/report.json
index 305da8164..c9e32d7d2 100644
--- a/app/javascript/dashboard/i18n/locale/lv/report.json
+++ b/app/javascript/dashboard/i18n/locale/lv/report.json
@@ -3,7 +3,7 @@
"HEADER": "Sarunas",
"LOADING_CHART": "Notiek diagrammas datu ielāde...",
"NO_ENOUGH_DATA": "Mēs neesam saņēmuši pietiekami daudz datu punktu, lai izveidotu pārskatu. Lūdzu, vēlāk mēģiniet vēlreiz.",
- "DOWNLOAD_AGENT_REPORTS": "Lejupielādēt aģentu pārskatus",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Neizdevās izgūt datus. Lūdzu, vēlāk mēģiniet vēlreiz.",
"SUMMARY_FETCHING_FAILED": "Neizdevās izgūt kopsavilkumu. Lūdzu, vēlāk mēģiniet vēlreiz.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Aģentu Pārskats",
- "DESCRIPTION": "Ērti izsekojiet aģenta darbībai, izmantojot galvenos rādītājus, piemēram, sarunas, atbildes laikus, atrisināšanas laikus un atrisinātos gadījumus. Noklikšķiniet uz aģenta vārda, lai uzzinātu vairāk.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Notiek diagrammas datu ielāde...",
"NO_ENOUGH_DATA": "Mēs neesam saņēmuši pietiekami daudz datu punktu, lai izveidotu pārskatu. Lūdzu, vēlāk mēģiniet vēlreiz.",
"DOWNLOAD_AGENT_REPORTS": "Lejupielādēt aģentu pārskatus",
"FILTER_DROPDOWN_LABEL": "Izvēlieties Aģentu",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Meklēt aģentus"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Sarunas",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Mēs neesam saņēmuši pietiekami daudz datu punktu, lai izveidotu pārskatu. Lūdzu, vēlāk mēģiniet vēlreiz.",
"DOWNLOAD_LABEL_REPORTS": "Lejupielādēt etiķešu pārskatus",
"FILTER_DROPDOWN_LABEL": "Izvēlieties Etiķeti",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Meklēt etiķetes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Sarunas",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Izvēlieties Iesūtni",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Sarunas",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Komandas Pārskats",
- "DESCRIPTION": "Iegūstiet pārskatu par savas komandas veiktspēju, izmantojot būtiskus rādītājus, tostarp sarunas, atbildes laikus, atrisināšanas laikus un atrisinātos gadījumus. Lai iegūtu sīkāku informāciju, noklikšķiniet uz komandas nosaukuma.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Notiek diagrammas datu ielāde...",
"NO_ENOUGH_DATA": "Mēs neesam saņēmuši pietiekami daudz datu punktu, lai izveidotu pārskatu. Lūdzu, vēlāk mēģiniet vēlreiz.",
"DOWNLOAD_TEAM_REPORTS": "Lejupielādēt komandas pārskatus",
"FILTER_DROPDOWN_LABEL": "Izvēlieties Komandu",
+ "FILTERS": {
+ "ADD_FILTER": "Pievienot filtru",
+ "CLEAR_ALL": "Notīrīt visu",
+ "NO_FILTER": "Nav pieejami filtri",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Meklēt komandas"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Sarunas",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Pārskati",
- "NO_RECORDS": "CSAT aptaujas atbildes nav pieejamas.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Lejupielādēt CSAT Pārskatus",
"DOWNLOAD_FAILED": "Neizdevās lejupielādēt CSAT Pārskatus",
"FILTERS": {
+ "ADD_FILTER": "Pievienot filtru",
+ "CLEAR_ALL": "Notīrīt visu",
+ "NO_FILTER": "Nav pieejami filtri",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Meklēt aģentus",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Meklēt komandas",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Izvēlieties Aģentus"
+ "LABEL": "Aģents"
+ },
+ "INBOXES": {
+ "LABEL": "Iesūtne"
+ },
+ "TEAMS": {
+ "LABEL": "Komanda"
+ },
+ "RATINGS": {
+ "LABEL": "Vērtējums"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontaktpersona",
- "AGENT_NAME": "Piešķirtais aģents",
+ "AGENT_NAME": "Aģents",
"RATING": "Vērtējums",
- "FEEDBACK_TEXT": "Atsauksmes komentārs"
- }
+ "FEEDBACK_TEXT": "Atsauksmes komentārs",
+ "CONVERSATION": "Saruna",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Atbilde",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Kopējais atbilžu skaits",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Atbildes ātrums",
"TOOLTIP": "Kopējais atbilžu skaits / Kopējais nosūtīto CSAT aptaujas ziņojumu skaits * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Saglabāt",
+ "CANCEL": "Atcelt",
+ "SAVING": "Notiek saglabāšana...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Pāriet uz maksas versiju tagad",
+ "CANCEL_ANYTIME": "Jūs varat jebkurā laikā mainīt vai atcelt savu versiju"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/lv/settings.json b/app/javascript/dashboard/i18n/locale/lv/settings.json
index 2e6e77d86..77c7101c8 100644
--- a/app/javascript/dashboard/i18n/locale/lv/settings.json
+++ b/app/javascript/dashboard/i18n/locale/lv/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Lejupielādēt",
"UPLOADING": "Notiek augšupielāde...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Šis stāsts vairs nav pieejams."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Šis stāsts vairs nav pieejams.",
+ "INSTAGRAM_STORY_REPLY": "Atbildēja uz Jūsu stāstu:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Skatīt kartē"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automātiski atzīmēt bezsaistē, kad neizmantojat lietotni."
},
"DOCS": "Lasīt dokumentus",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Asistents",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Īpašības",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Norēķini",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Meklēt īpašības"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Atrisināt sarunu",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Atrisināt sarunu",
+ "CANCEL": "Atcelt"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Izvēlieties opciju"
+ },
+ "CHECKBOX": {
+ "YES": "Jā",
+ "NO": "Nē"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Pāriet uz maksas versiju tagad",
+ "CANCEL_ANYTIME": "Jūs varat jebkurā laikā mainīt vai atcelt savu versiju"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Lai pārietu uz maksas versiju, lūdzu sazinieties ar savu administratoru."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Ak, vai! Mēs nevarējām atrast nevienu chatwoot kontu. Lūdzu, izveidojiet jaunu kontu, lai turpinātu.",
"NEW_ACCOUNT": "Jauns Konts",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Atcelt"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/lv/signup.json b/app/javascript/dashboard/i18n/locale/lv/signup.json
index 768f6e298..65cd1d0c6 100644
--- a/app/javascript/dashboard/i18n/locale/lv/signup.json
+++ b/app/javascript/dashboard/i18n/locale/lv/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Izveidot kontu",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Reģistrēt",
"TESTIMONIAL_HEADER": "Viss, kas nepieciešams, ir viens solis, lai virzītos uz priekšu",
"TESTIMONIAL_CONTENT": "Jūs esat viena soļa attālumā no klientu piesaistīšanas, noturēšanas un jaunu klientu atrašanas.",
diff --git a/app/javascript/dashboard/i18n/locale/lv/sla.json b/app/javascript/dashboard/i18n/locale/lv/sla.json
index 3aa0c43aa..502a317f0 100644
--- a/app/javascript/dashboard/i18n/locale/lv/sla.json
+++ b/app/javascript/dashboard/i18n/locale/lv/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Izveidot jaunu SLA politiku",
"DESCRIPTION": "Pakalpojuma līmeņa līgumi (SLA) ir līgumi, kas nosaka skaidras cerības starp jūsu komandu un klientiem. Tie nosaka atbildes un atrisināšanas laika standartus, veidojot pārskatatbildības sistēmu un nodrošinot konsekventu, augstas kvalitātes pieredzi.",
"LEARN_MORE": "Uzzināt vairāk par SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Notiek SLA iegūšana",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Pārejiet uz maksas versiju, lai izveidotu SLA",
"AVAILABLE_ON": "SLA funkcija ir pieejama tikai Business un Enterprise versijās.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "Šim kontam nav piesaistīti SLA līgumi.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Uzņēmuma klientu izvirzītās problēmas, kurām nepieciešama tūlītēja uzmanība.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Uzņēmuma klientu izvirzītās problēmas, uz kurām ātri jāreaģē."
},
- "BUSINESS_HOURS_ON": "Darba laiks ieslēgts",
- "BUSINESS_HOURS_OFF": "Darba laiks izslēgts",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "Pirmās atbildes laika slieksnis",
"NRT": "Nākamās atbildes laika slieksnis",
diff --git a/app/javascript/dashboard/i18n/locale/lv/snooze.json b/app/javascript/dashboard/i18n/locale/lv/snooze.json
new file mode 100644
index 000000000..35bcb5168
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lv/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "darba laiks",
+ "DAY": "diena",
+ "DAYS": "days",
+ "WEEK": "nedēļa",
+ "WEEKS": "weeks",
+ "MONTH": "mēnesis",
+ "MONTHS": "months",
+ "YEAR": "mēnesis",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "rītdiena",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "nākamā nedēļa",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "no",
+ "AFTER": "after",
+ "WEEK": "nedēļa",
+ "DAY": "diena"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lv/teamsSettings.json b/app/javascript/dashboard/i18n/locale/lv/teamsSettings.json
index fcaec6192..0176b02c5 100644
--- a/app/javascript/dashboard/i18n/locale/lv/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/lv/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Notiek komandu iegūšana",
"DESCRIPTION": "Komandas ļauj organizēt aģentus grupās, pamatojoties uz viņu pienākumiem. Aģents var piederēt vairākām komandām. Kad strādājat sadarbojoties, varat piešķirt sarunas noteiktām komandām.",
"LEARN_MORE": "Uzzināt vairāk par komandām",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Meklēt komandas...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Šajā kontā nav izveidota neviena komanda.",
"EDIT_TEAM": "Rediģēt komandu",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Nevarēja saglabāt komandas informāciju. Lūdzu, mēģiniet vēlreiz."
},
"AGENTS": {
- "AGENT": "AĢENTS",
- "EMAIL": "Epasts",
+ "AGENT": "Aģents",
+ "EMAIL": "E-pasts",
"BUTTON_TEXT": "Pievienot aģentus",
"ADD_AGENTS": "Notiek aģentu pievienošana Jūsu komandai...",
"SELECT": "izvēlēties",
diff --git a/app/javascript/dashboard/i18n/locale/ml/agentBots.json b/app/javascript/dashboard/i18n/locale/ml/agentBots.json
index 0bbe3b7f0..a2187f99b 100644
--- a/app/javascript/dashboard/i18n/locale/ml/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ml/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "വെബ്ഹുക്ക് യുആർഎൽ"
+ "URL": "വെബ്ഹുക്ക് യുആർഎൽ",
+ "ACTIONS": "പ്രവർത്തനങ്ങൾ"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/ml/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ml/agentMgmt.json
index 6174a0aee..a8cb5b653 100644
--- a/app/javascript/dashboard/i18n/locale/ml/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ml/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "അഡ്മിനിസ്ട്രേറ്റർ",
"AGENT": "ഏജന്റ്"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "ഈ അക്കൗണ്ടുമായി ബന്ധപ്പെട്ട ഏജന്റുകളൊന്നുമില്ല",
"TITLE": "നിങ്ങളുടെ ടീമിലെ ഏജന്റുമാരെ മാനേജുചെയ്യുക",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "വൂട്ട് സെർവറിലേക്ക് കണക്റ്റുചെയ്യാനായില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക"
}
},
+ "SEARCH_PLACEHOLDER": "ഏജന്റുകളെ തിരയുക...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "ഒരു ഫലവും കണ്ടെത്താനായില്ല."
},
diff --git a/app/javascript/dashboard/i18n/locale/ml/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ml/attributesMgmt.json
index decabcf47..ec5062839 100644
--- a/app/javascript/dashboard/i18n/locale/ml/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ml/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "സംഭാഷണം",
"CONTACT": "ബന്ധപ്പെടുക"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/ml/automation.json b/app/javascript/dashboard/i18n/locale/ml/automation.json
index b6fb7df4a..d177a6211 100644
--- a/app/javascript/dashboard/i18n/locale/ml/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ml/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "സൃഷ്ടിക്കുക",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "പേര്",
- "DESCRIPTION": "വിവരണം",
"ACTIVE": "സജീവമാണ്",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "പ്രവർത്തനങ്ങൾ"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/ml/bulkActions.json b/app/javascript/dashboard/i18n/locale/ml/bulkActions.json
index 5001d61c7..337ad7305 100644
--- a/app/javascript/dashboard/i18n/locale/ml/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ml/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "ലേബലുകളൊന്നും കണ്ടെത്തിയില്ല",
diff --git a/app/javascript/dashboard/i18n/locale/ml/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ml/cannedMgmt.json
index 6e66761bb..a52931335 100644
--- a/app/javascript/dashboard/i18n/locale/ml/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ml/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "ക്യാൻഡ് പ്രതികരണങ്ങൾ",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "ഈ ചോദ്യവുമായി പൊരുത്തപ്പെടുന്ന ഇനങ്ങളൊന്നുമില്ല.",
"LIST": {
"404": "ഈ അക്കൗണ്ടിൽ ക്യാൻഡ് പ്രതികരണങ്ങളൊന്നും ലഭ്യമല്ല.",
diff --git a/app/javascript/dashboard/i18n/locale/ml/chatlist.json b/app/javascript/dashboard/i18n/locale/ml/chatlist.json
index cbe3f820c..8874a1c4a 100644
--- a/app/javascript/dashboard/i18n/locale/ml/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ml/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ml/contact.json b/app/javascript/dashboard/i18n/locale/ml/contact.json
index 0217995ea..a7f37fb06 100644
--- a/app/javascript/dashboard/i18n/locale/ml/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ml/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "കോൺടാക്റ്റുകളൊന്നും നിങ്ങളുടെ തിരയലുമായി പൊരുത്തപ്പെടുന്നില്ല",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/ml/conversation.json b/app/javascript/dashboard/i18n/locale/ml/conversation.json
index 2b8a41dde..4508078aa 100644
--- a/app/javascript/dashboard/i18n/locale/ml/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ml/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "പുതിയ ലൈനിനു വേണ്ടി ഷിഫ്റ്റ് + എന്റർ അടിക്കുക. ഒരു ക്യാൻഡ് പ്രതികരണം തിരഞ്ഞു എടുക്കാൻ വേണ്ടി '/ ' വച്ച് ടൈപ്പ് ചെയ്തു തുടങ്ങുക.",
"PRIVATE_MSG_INPUT": "പുതിയ ലൈനിനു വേണ്ടി ഷിഫ്റ്റ് + എന്റർ അടിക്കുക. ഇത് ഏജന്റുമാർക്ക് മാത്രമേ ദൃശ്യമാകൂ",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "അയച്ചത്:",
"BOT": "ബോട്ട്",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "സന്ദേശം അയയ്ക്കാനായില്ല! വീണ്ടും ശ്രമിക്കുക",
"TRY_AGAIN": "വീണ്ടും ശ്രമിക്കുക",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "റദ്ദാക്കുക",
"SEND_EMAIL_SUCCESS": "ചാറ്റ് ട്രാൻസ്ക്രിപ്റ്റ് വിജയകരമായി അയച്ചു",
"SEND_EMAIL_ERROR": "ഒരു പിശക് ഉണ്ടായിരുന്നു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "ഉപഭോക്താവിന് ട്രാൻസ്ക്രിപ്റ്റ് അയയ്ക്കുക",
"SEND_TO_AGENT": "നിയുക്ത ഏജന്റിന് ട്രാൻസ്ക്രിപ്റ്റ് അയയ്ക്കുക",
diff --git a/app/javascript/dashboard/i18n/locale/ml/customRole.json b/app/javascript/dashboard/i18n/locale/ml/customRole.json
index 102876482..28ff309ef 100644
--- a/app/javascript/dashboard/i18n/locale/ml/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/ml/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "ഈ ചോദ്യവുമായി പൊരുത്തപ്പെടുന്ന ഇനങ്ങളൊന്നുമില്ല.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/ml/datePicker.json b/app/javascript/dashboard/i18n/locale/ml/datePicker.json
index 55c6777ba..55f2f471e 100644
--- a/app/javascript/dashboard/i18n/locale/ml/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/ml/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "അപേക്ഷിക്കുക",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "കഴിഞ്ഞ 3 മാസം",
"LAST_6_MONTHS": "കഴിഞ്ഞ 6 മാസം",
"LAST_YEAR": "കഴിഞ്ഞ വർഷം",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "ഇഷ്ടാനുസൃത തീയതി ശ്രേണി"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/general.json b/app/javascript/dashboard/i18n/locale/ml/general.json
index 60a70e9c4..33a6e0240 100644
--- a/app/javascript/dashboard/i18n/locale/ml/general.json
+++ b/app/javascript/dashboard/i18n/locale/ml/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "അടയ്ക്കുക",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/generalSettings.json b/app/javascript/dashboard/i18n/locale/ml/generalSettings.json
index f95147b6e..065a7d6f0 100644
--- a/app/javascript/dashboard/i18n/locale/ml/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ml/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "റിപ്പോർട്ടുകൾ",
diff --git a/app/javascript/dashboard/i18n/locale/ml/helpCenter.json b/app/javascript/dashboard/i18n/locale/ml/helpCenter.json
index b61f61835..686b60185 100644
--- a/app/javascript/dashboard/i18n/locale/ml/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ml/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json
index 278a964f3..19a7247bc 100644
--- a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "ഇൻബോക്സുകൾ",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "പ്രവർത്തനരഹിതമാക്കി"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "പ്രവർത്തനക്ഷമമാക്കി",
- "DISABLED": "പ്രവർത്തനരഹിതമാക്കി"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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": "ക്രമീകരണങ്ങൾ",
@@ -694,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": "ഈ ഇൻബോക്സിൽ നിന്ന് ഏജന്റുമാരെ ചേർക്കുക അല്ലെങ്കിൽ നീക്കംചെയ്യുക",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "ഇമെയിൽ വഴി സംഭാഷണ തുടർച്ച പ്രവർത്തനക്ഷമമാക്കുക",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "ബന്ധപ്പെടാനുള്ള ഇമെയിൽ വിലാസം ലഭ്യമാണെങ്കിൽ സംഭാഷണങ്ങൾ ഇമെയിൽ വഴി തുടരും.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "പുതിയ സംഭാഷണങ്ങളിൽ ലഭ്യമായ ഏജന്റുമാരുടെ ഓട്ടോമാറ്റിക് അസൈൻമെന്റ് പ്രാപ്തമാക്കുകയോ അപ്രാപ്തമാക്കുകയോ ചെയ്യുക",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "സജീവമാണ്",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "റദ്ദാക്കുക",
+ "CONFIRM_DELETE": "ഇല്ലാതാക്കുക",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "വീണ്ടും അംഗീകാരം നൽകുക",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "ദിവസം",
+ "AVAILABILITY": "ലഭ്യത",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "വിജറ്റ് നിറം",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "ഞങ്ങളുമായി ചാറ്റുചെയ്യുക",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "ഞങ്ങളുമായി ചാറ്റുചെയ്യുക"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "സാധാരണയായി കുറച്ച് മിനിറ്റിനുള്ളിൽ മറുപടി നൽകുന്നു",
diff --git a/app/javascript/dashboard/i18n/locale/ml/integrationApps.json b/app/javascript/dashboard/i18n/locale/ml/integrationApps.json
index d75175417..62ed01e91 100644
--- a/app/javascript/dashboard/i18n/locale/ml/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ml/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "പ്രവർത്തനക്ഷമമാക്കി",
"DISABLED": "പ്രവർത്തനരഹിതമാക്കി"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "ഇൻബോക്സ്",
+ "ACTIONS": "പ്രവർത്തനങ്ങൾ",
"DELETE": {
"BUTTON_TEXT": "ഇല്ലാതാക്കുക"
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/integrations.json b/app/javascript/dashboard/i18n/locale/ml/integrations.json
index a9024de8f..aad75b091 100644
--- a/app/javascript/dashboard/i18n/locale/ml/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ml/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "റദ്ദാക്കുക",
"DESC": "നിങ്ങളുടെ ചാറ്റ് വൂട്ട് അക്കൗണ്ടിൽ എന്താണ് സംഭവിക്കുന്നതെന്നതിനെക്കുറിച്ചുള്ള തത്സമയ വിവരങ്ങൾ വെബ്ഹൂക്ക് ഇവന്റുകൾ നൽകുന്നു. ഒരു കോൾബാക്ക് കോൺഫിഗർ ചെയ്യുന്നതിന് സാധുവായ ഒരു യുആർഎൽ നൽകുക.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "ഇല്ലാതാക്കുക",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "പേര്",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "പ്രവർത്തനങ്ങൾ"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/ml/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ml/labelsMgmt.json
index e1882fe53..2f6842bbe 100644
--- a/app/javascript/dashboard/i18n/locale/ml/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ml/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "ലേബലുകൾ ലഭ്യമാക്കുന്നു",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "ലേബലുകൾ തിരയുക...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "ഈ ചോദ്യവുമായി പൊരുത്തപ്പെടുന്ന ഇനങ്ങളൊന്നുമില്ല",
"LIST": {
"404": "ഈ അക്കൗണ്ടിൽ ലേബലുകളൊന്നും ലഭ്യമല്ല.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "പേര്",
"DESCRIPTION": "വിവരണം",
- "COLOR": "നിറം"
+ "COLOR": "നിറം",
+ "ACTION": "പ്രവർത്തനങ്ങൾ"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ml/macros.json b/app/javascript/dashboard/i18n/locale/ml/macros.json
index afd84e332..2f1d1cbbf 100644
--- a/app/javascript/dashboard/i18n/locale/ml/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ml/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "പേര്",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "പ്രവർത്തനങ്ങൾ"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/ml/mfa.json b/app/javascript/dashboard/i18n/locale/ml/mfa.json
index 7afedc201..e68c9aea4 100644
--- a/app/javascript/dashboard/i18n/locale/ml/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/ml/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/ml/report.json b/app/javascript/dashboard/i18n/locale/ml/report.json
index fbbcca17c..60473893c 100644
--- a/app/javascript/dashboard/i18n/locale/ml/report.json
+++ b/app/javascript/dashboard/i18n/locale/ml/report.json
@@ -3,7 +3,7 @@
"HEADER": "സംഭാഷണങ്ങൾ",
"LOADING_CHART": "ചാർട്ട് ഡാറ്റ ലോഡു ചെയ്യുകയാണ്...",
"NO_ENOUGH_DATA": "റിപ്പോർട്ട് സൃഷ്ടിക്കുന്നതിന് ആവശ്യമായ ഡാറ്റ ഞങ്ങൾക്ക് ലഭിച്ചിട്ടില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക.",
- "DOWNLOAD_AGENT_REPORTS": "ഏജന്റ് റിപ്പോർട്ടുകൾ ഡൗൺലോഡ് ചെയ്യുക",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "ഏജന്റുമാരുടെ അവലോകനം",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "ചാർട്ട് ഡാറ്റ ലോഡു ചെയ്യുകയാണ്...",
"NO_ENOUGH_DATA": "റിപ്പോർട്ട് സൃഷ്ടിക്കുന്നതിന് ആവശ്യമായ ഡാറ്റ ഞങ്ങൾക്ക് ലഭിച്ചിട്ടില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക.",
"DOWNLOAD_AGENT_REPORTS": "ഏജന്റ് റിപ്പോർട്ടുകൾ ഡൗൺലോഡ് ചെയ്യുക",
"FILTER_DROPDOWN_LABEL": "ഏജന്റ് തിരഞ്ഞെടുക്കുക",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "ഏജന്റുകളെ തിരയുക"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "സംഭാഷണങ്ങൾ",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "റിപ്പോർട്ട് സൃഷ്ടിക്കുന്നതിന് ആവശ്യമായ ഡാറ്റ ഞങ്ങൾക്ക് ലഭിച്ചിട്ടില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക.",
"DOWNLOAD_LABEL_REPORTS": "ലേബൽ റിപ്പോർട്ടുകൾ ഡൗൺലോഡ് ചെയ്യുക",
"FILTER_DROPDOWN_LABEL": "ലേബൽ തിരഞ്ഞെടുക്കുക",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "ലേബലുകൾ തിരയുക"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "സംഭാഷണങ്ങൾ",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "ഇൻബോക്സ് തിരഞ്ഞെടുക്കുക",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "സംഭാഷണങ്ങൾ",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "ടീം അവലോകനം",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "ചാർട്ട് ഡാറ്റ ലോഡു ചെയ്യുകയാണ്...",
"NO_ENOUGH_DATA": "റിപ്പോർട്ട് സൃഷ്ടിക്കുന്നതിന് ആവശ്യമായ ഡാറ്റ ഞങ്ങൾക്ക് ലഭിച്ചിട്ടില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക.",
"DOWNLOAD_TEAM_REPORTS": "ടീം റിപ്പോർട്ടുകൾ ഡൗൺലോഡ് ചെയ്യുക",
"FILTER_DROPDOWN_LABEL": "ടീം തിരഞ്ഞെടുക്കുക",
+ "FILTERS": {
+ "ADD_FILTER": "ഫിൽട്ടർ ചേർക്കുക",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "ടീമുകളെ തിരയുക"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "സംഭാഷണങ്ങൾ",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT റിപ്പോർട്ടുകൾ",
- "NO_RECORDS": "CSAT സർവേ പ്രതികരണങ്ങളൊന്നും ലഭ്യമല്ല.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "ഫിൽട്ടർ ചേർക്കുക",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "ഏജന്റുകളെ തിരയുക",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "ടീമുകളെ തിരയുക",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "ഏജന്റ്"
+ },
+ "INBOXES": {
+ "LABEL": "ഇൻബോക്സ്"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "ബന്ധപ്പെടുക",
- "AGENT_NAME": "നിയോഗിച്ച ഏജന്റ്",
+ "AGENT_NAME": "ഏജന്റ്",
"RATING": "റേറ്റിംഗ്",
- "FEEDBACK_TEXT": "ഫീഡ്ബാക്ക് അഭിപ്രായം"
- }
+ "FEEDBACK_TEXT": "ഫീഡ്ബാക്ക് അഭിപ്രായം",
+ "CONVERSATION": "സംഭാഷണം",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "ആകെ പ്രതികരണങ്ങൾ",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "പ്രതികരണ നിരക്ക്",
"TOOLTIP": "മൊത്തം പ്രതികരണങ്ങളുടെ എണ്ണം / അയച്ച CSAT സർവേ സന്ദേശങ്ങളുടെ ആകെ എണ്ണം * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "റദ്ദാക്കുക",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/ml/settings.json b/app/javascript/dashboard/i18n/locale/ml/settings.json
index 10aa54f4b..c71cb0ff6 100644
--- a/app/javascript/dashboard/i18n/locale/ml/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ml/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "ഡൗൺലോഡ്",
"UPLOADING": "അപ്ലോഡുചെയ്യുന്നു...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "റദ്ദാക്കുക"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "പുതിയ അക്കൗണ്ട്",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "റദ്ദാക്കുക"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ml/signup.json b/app/javascript/dashboard/i18n/locale/ml/signup.json
index 27ff6f388..1d757d213 100644
--- a/app/javascript/dashboard/i18n/locale/ml/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ml/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "രജിസ്റ്റർ",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/ml/sla.json b/app/javascript/dashboard/i18n/locale/ml/sla.json
index 6e4b6667a..cf9fba6b0 100644
--- a/app/javascript/dashboard/i18n/locale/ml/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ml/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/ml/snooze.json b/app/javascript/dashboard/i18n/locale/ml/snooze.json
new file mode 100644
index 000000000..fea5ee21b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ml/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "ദിവസം",
+ "DAYS": "days",
+ "WEEK": "ദിവസം",
+ "WEEKS": "weeks",
+ "MONTH": "ആഴ്ച",
+ "MONTHS": "months",
+ "YEAR": "മാസം",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "ദിവസം",
+ "DAY": "ദിവസം"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ml/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ml/teamsSettings.json
index 169ef9c15..5648756f9 100644
--- a/app/javascript/dashboard/i18n/locale/ml/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ml/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "ടീമുകളെ തിരയുക...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,7 +67,7 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
+ "AGENT": "ഏജന്റ്",
"EMAIL": "ഇമെയിൽ",
"BUTTON_TEXT": "ഏജന്റുമാരെ ചേർക്കുക",
"ADD_AGENTS": "Adding Agents to your Team...",
diff --git a/app/javascript/dashboard/i18n/locale/ms/agentBots.json b/app/javascript/dashboard/i18n/locale/ms/agentBots.json
index 5e0cd93d9..cd283f015 100644
--- a/app/javascript/dashboard/i18n/locale/ms/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ms/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Tindakan-tindakan"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/ms/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ms/agentMgmt.json
index 8d383f511..9b0625a04 100644
--- a/app/javascript/dashboard/i18n/locale/ms/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ms/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Pentadbir",
"AGENT": "Ejen"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Tiada ejen yang dikaitkan ke akaun ini",
"TITLE": "Tadbir ejen dalam pasukan anda",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Masalah untuk hubungi Woot Server, Sila cuba sebentar lagi"
}
},
+ "SEARCH_PLACEHOLDER": "Cari ejen...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Tiada dijumpa."
},
diff --git a/app/javascript/dashboard/i18n/locale/ms/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ms/attributesMgmt.json
index 9c474b4ee..d26e05844 100644
--- a/app/javascript/dashboard/i18n/locale/ms/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ms/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Mendapatkan atribut penyesuian",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/ms/automation.json b/app/javascript/dashboard/i18n/locale/ms/automation.json
index 3a0c84e2a..0849b9757 100644
--- a/app/javascript/dashboard/i18n/locale/ms/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ms/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Nama",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Tindakan-tindakan"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/ms/bulkActions.json b/app/javascript/dashboard/i18n/locale/ms/bulkActions.json
index 7856642f2..c95d32a13 100644
--- a/app/javascript/dashboard/i18n/locale/ms/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ms/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/ms/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ms/cannedMgmt.json
index 817d3bd9a..f24445cb3 100644
--- a/app/javascript/dashboard/i18n/locale/ms/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ms/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/ms/chatlist.json b/app/javascript/dashboard/i18n/locale/ms/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/ms/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ms/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ms/contact.json b/app/javascript/dashboard/i18n/locale/ms/contact.json
index e247ac251..3acc6b7f7 100644
--- a/app/javascript/dashboard/i18n/locale/ms/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ms/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/ms/conversation.json b/app/javascript/dashboard/i18n/locale/ms/conversation.json
index 11c34769d..b61f9d9d0 100644
--- a/app/javascript/dashboard/i18n/locale/ms/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ms/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Batalkan",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/ms/customRole.json b/app/javascript/dashboard/i18n/locale/ms/customRole.json
index 207363a59..df47b9045 100644
--- a/app/javascript/dashboard/i18n/locale/ms/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/ms/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/ms/datePicker.json b/app/javascript/dashboard/i18n/locale/ms/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/ms/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/ms/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/general.json b/app/javascript/dashboard/i18n/locale/ms/general.json
index 2998bcd27..7a1f5321c 100644
--- a/app/javascript/dashboard/i18n/locale/ms/general.json
+++ b/app/javascript/dashboard/i18n/locale/ms/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/generalSettings.json b/app/javascript/dashboard/i18n/locale/ms/generalSettings.json
index 5b62bba3f..a0a651d49 100644
--- a/app/javascript/dashboard/i18n/locale/ms/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ms/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/ms/helpCenter.json b/app/javascript/dashboard/i18n/locale/ms/helpCenter.json
index 81674aa07..ce4cd2663 100644
--- a/app/javascript/dashboard/i18n/locale/ms/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ms/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json
index 558244207..c42e5a306 100644
--- a/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Batalkan",
+ "CONFIRM_DELETE": "Padamkan",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
diff --git a/app/javascript/dashboard/i18n/locale/ms/integrationApps.json b/app/javascript/dashboard/i18n/locale/ms/integrationApps.json
index b65579e97..d6ac6547f 100644
--- a/app/javascript/dashboard/i18n/locale/ms/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ms/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Tindakan-tindakan",
"DELETE": {
"BUTTON_TEXT": "Padamkan"
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/integrations.json b/app/javascript/dashboard/i18n/locale/ms/integrations.json
index 50cb231ba..b94568463 100644
--- a/app/javascript/dashboard/i18n/locale/ms/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ms/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Batalkan",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Padamkan",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Nama",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Tindakan-tindakan"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/ms/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ms/labelsMgmt.json
index 156a6ff39..c90decd96 100644
--- a/app/javascript/dashboard/i18n/locale/ms/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ms/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Nama",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Tindakan-tindakan"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ms/macros.json b/app/javascript/dashboard/i18n/locale/ms/macros.json
index 48099f5f9..b7c423925 100644
--- a/app/javascript/dashboard/i18n/locale/ms/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ms/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Nama",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Tindakan-tindakan"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/ms/mfa.json b/app/javascript/dashboard/i18n/locale/ms/mfa.json
index 4e0b282be..345442d5b 100644
--- a/app/javascript/dashboard/i18n/locale/ms/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/ms/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/ms/report.json b/app/javascript/dashboard/i18n/locale/ms/report.json
index a70387666..e990aa448 100644
--- a/app/javascript/dashboard/i18n/locale/ms/report.json
+++ b/app/javascript/dashboard/i18n/locale/ms/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Cari ejen"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Cari pasukan"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Cari ejen",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Cari pasukan",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Ejen"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Ejen",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Batalkan",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/ms/settings.json b/app/javascript/dashboard/i18n/locale/ms/settings.json
index 8c52e3f0b..5b0595e5d 100644
--- a/app/javascript/dashboard/i18n/locale/ms/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ms/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Batalkan"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Batalkan"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ms/signup.json b/app/javascript/dashboard/i18n/locale/ms/signup.json
index 7d72e3245..1790362d3 100644
--- a/app/javascript/dashboard/i18n/locale/ms/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ms/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/ms/sla.json b/app/javascript/dashboard/i18n/locale/ms/sla.json
index 1cc1c0338..126cee48e 100644
--- a/app/javascript/dashboard/i18n/locale/ms/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ms/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/ms/snooze.json b/app/javascript/dashboard/i18n/locale/ms/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ms/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ms/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ms/teamsSettings.json
index ee50a9ab2..83132e93a 100644
--- a/app/javascript/dashboard/i18n/locale/ms/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ms/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Cari pasukan...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "Emel",
+ "AGENT": "Ejen",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/ne/agentBots.json b/app/javascript/dashboard/i18n/locale/ne/agentBots.json
index d3a0bb991..dc92016ab 100644
--- a/app/javascript/dashboard/i18n/locale/ne/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ne/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json
index 448994e69..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/ne/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ne/attributesMgmt.json
index 78886f451..e83950b14 100644
--- a/app/javascript/dashboard/i18n/locale/ne/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ne/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/ne/automation.json b/app/javascript/dashboard/i18n/locale/ne/automation.json
index 713ae7e82..d980098f4 100644
--- a/app/javascript/dashboard/i18n/locale/ne/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ne/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/ne/bulkActions.json b/app/javascript/dashboard/i18n/locale/ne/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/ne/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ne/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/ne/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ne/cannedMgmt.json
index 9cab6693e..2a9dd154c 100644
--- a/app/javascript/dashboard/i18n/locale/ne/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ne/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/ne/chatlist.json b/app/javascript/dashboard/i18n/locale/ne/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/ne/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ne/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ne/contact.json b/app/javascript/dashboard/i18n/locale/ne/contact.json
index 22109f9c6..9e9edc528 100644
--- a/app/javascript/dashboard/i18n/locale/ne/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ne/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/ne/conversation.json b/app/javascript/dashboard/i18n/locale/ne/conversation.json
index 45560d95f..74462e090 100644
--- a/app/javascript/dashboard/i18n/locale/ne/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ne/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/ne/customRole.json b/app/javascript/dashboard/i18n/locale/ne/customRole.json
index 5588f67f2..ef93efc1f 100644
--- a/app/javascript/dashboard/i18n/locale/ne/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/ne/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/ne/datePicker.json b/app/javascript/dashboard/i18n/locale/ne/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/ne/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/ne/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/general.json b/app/javascript/dashboard/i18n/locale/ne/general.json
index c46aeae1a..9a0a7881e 100644
--- a/app/javascript/dashboard/i18n/locale/ne/general.json
+++ b/app/javascript/dashboard/i18n/locale/ne/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "बन्दा गार्नुहोस्",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/generalSettings.json b/app/javascript/dashboard/i18n/locale/ne/generalSettings.json
index d924bffbd..fab8020e2 100644
--- a/app/javascript/dashboard/i18n/locale/ne/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ne/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/ne/helpCenter.json b/app/javascript/dashboard/i18n/locale/ne/helpCenter.json
index 760e2b6dd..327a70ced 100644
--- a/app/javascript/dashboard/i18n/locale/ne/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ne/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json
index 887963cae..face31740 100644
--- a/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "हामीसँग कुराकानी गर्नुहोस्",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "हामीसँग कुराकानी गर्नुहोस्"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "धेरै जसो केहि मिनेटमा जवाफ हुन्छ",
diff --git a/app/javascript/dashboard/i18n/locale/ne/integrationApps.json b/app/javascript/dashboard/i18n/locale/ne/integrationApps.json
index b91b434f7..828f4ea67 100644
--- a/app/javascript/dashboard/i18n/locale/ne/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ne/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/integrations.json b/app/javascript/dashboard/i18n/locale/ne/integrations.json
index c0ea2dbff..01b083d51 100644
--- a/app/javascript/dashboard/i18n/locale/ne/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ne/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/ne/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ne/labelsMgmt.json
index 705b18d0e..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/ne/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ne/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ne/macros.json b/app/javascript/dashboard/i18n/locale/ne/macros.json
index fcb409f34..e12f0ca73 100644
--- a/app/javascript/dashboard/i18n/locale/ne/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ne/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/ne/mfa.json b/app/javascript/dashboard/i18n/locale/ne/mfa.json
index 9cef374f8..ce507418f 100644
--- a/app/javascript/dashboard/i18n/locale/ne/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/ne/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/ne/report.json b/app/javascript/dashboard/i18n/locale/ne/report.json
index a2ad6bd4a..45c40de58 100644
--- a/app/javascript/dashboard/i18n/locale/ne/report.json
+++ b/app/javascript/dashboard/i18n/locale/ne/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/ne/settings.json b/app/javascript/dashboard/i18n/locale/ne/settings.json
index c12f56091..fda4d0f31 100644
--- a/app/javascript/dashboard/i18n/locale/ne/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ne/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "डाउनलोड",
"UPLOADING": "अपलोड गर्दै...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancel"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ne/signup.json b/app/javascript/dashboard/i18n/locale/ne/signup.json
index aa96873e1..746ca0999 100644
--- a/app/javascript/dashboard/i18n/locale/ne/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ne/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/ne/sla.json b/app/javascript/dashboard/i18n/locale/ne/sla.json
index 0da7873be..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/ne/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ne/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/ne/snooze.json b/app/javascript/dashboard/i18n/locale/ne/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ne/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ne/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ne/teamsSettings.json
index f0a950fd1..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/ne/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ne/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/nl/agentBots.json b/app/javascript/dashboard/i18n/locale/nl/agentBots.json
index e0eb22829..616105130 100644
--- a/app/javascript/dashboard/i18n/locale/nl/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/nl/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "Systeem",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Acties"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/nl/agentMgmt.json b/app/javascript/dashboard/i18n/locale/nl/agentMgmt.json
index 4eb1a71dd..306e6c34c 100644
--- a/app/javascript/dashboard/i18n/locale/nl/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/nl/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Beheerder",
"AGENT": "Medewerker"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Er zijn geen medewerkers gekoppeld aan dit account",
"TITLE": "Beheer medewerkers in uw team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Kan geen verbinding maken met Woot Server, probeer het later opnieuw"
}
},
+ "SEARCH_PLACEHOLDER": "Zoek agenten...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Geen resultaten gevonden."
},
diff --git a/app/javascript/dashboard/i18n/locale/nl/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/nl/attributesMgmt.json
index 006c4a456..49668e198 100644
--- a/app/javascript/dashboard/i18n/locale/nl/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/nl/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Aangepaste attributen ophalen",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Attributen zoeken...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Gesprek",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/nl/automation.json b/app/javascript/dashboard/i18n/locale/nl/automation.json
index fdef5df6f..096c2e072 100644
--- a/app/javascript/dashboard/i18n/locale/nl/automation.json
+++ b/app/javascript/dashboard/i18n/locale/nl/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Automatiseringsregel toevoegen",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Automatiseringsregels ophalen",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Automatiseringsregel toevoegen",
"SUBMIT": "Aanmaken",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Naam",
- "DESCRIPTION": "Beschrijving",
"ACTIVE": "Actief",
- "CREATED_ON": "Aangemaakt op"
+ "CREATED_ON": "Aangemaakt op",
+ "ACTIONS": "Acties"
},
"404": "Geen automatiseringsregels gevonden"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/nl/bulkActions.json b/app/javascript/dashboard/i18n/locale/nl/bulkActions.json
index 9751d9dd6..5cbd9c99b 100644
--- a/app/javascript/dashboard/i18n/locale/nl/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/nl/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Gespreksstatus succesvol bijgewerkt.",
"UPDATE_FAILED": "Update van gesprekken mislukt, probeer het opnieuw."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Labels toewijzen",
"NO_LABELS_FOUND": "Geen labels gevonden",
diff --git a/app/javascript/dashboard/i18n/locale/nl/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/nl/cannedMgmt.json
index 7d1ef8560..cc0344a27 100644
--- a/app/javascript/dashboard/i18n/locale/nl/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/nl/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Standaard antwoorden",
"LEARN_MORE": "Meer informatie over standaard antwoorden",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Standaard antwoord toevoegen",
"LOADING": "Standaard antwoorden ophalen...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Er zijn geen items die overeenkomen met deze zoekopdracht.",
"LIST": {
"404": "Er zijn geen standaard antwoorden beschikbaar in dit account.",
diff --git a/app/javascript/dashboard/i18n/locale/nl/chatlist.json b/app/javascript/dashboard/i18n/locale/nl/chatlist.json
index a7333bea7..6a27f5aef 100644
--- a/app/javascript/dashboard/i18n/locale/nl/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/nl/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/nl/contact.json b/app/javascript/dashboard/i18n/locale/nl/contact.json
index 342a7a171..f83af005a 100644
--- a/app/javascript/dashboard/i18n/locale/nl/contact.json
+++ b/app/javascript/dashboard/i18n/locale/nl/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Er zijn geen contacten die overeenkomen met je zoekopdracht 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Label toewijzen",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Aan:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Onderwerp :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "CC:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "BCC:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "BCC"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/nl/conversation.json b/app/javascript/dashboard/i18n/locale/nl/conversation.json
index 8466f1ca5..afda6332e 100644
--- a/app/javascript/dashboard/i18n/locale/nl/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/nl/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Bericht succesvol verwijderd",
"FAIL_DELETE_MESSSAGE": "Kon bericht niet verwijderen! Probeer het opnieuw",
"NO_RESPONSE": "Geen reactie",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Handtekening deactiveren",
"MSG_INPUT": "Shift + enter voor nieuwe regel. Begin met '/' om een standaard antwoord te selecteren.",
"PRIVATE_MSG_INPUT": "Shift + nieuwe regel invoeren. Dit is alleen zichtbaar voor medewerkers",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Berichtondertekening is niet geconfigureerd, configureer deze in de profielinstellingen.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Klik hier om bij te werken",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Sleep hierheen om toe te voegen",
"START_AUDIO_RECORDING": "Start audio-opname",
"STOP_AUDIO_RECORDING": "Stop audio-opname",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "AAN",
"ADD_BCC": "Voeg bcc toe",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Verzonden door:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Kon bericht niet verzenden! Probeer het opnieuw",
"TRY_AGAIN": "opnieuw proberen",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Annuleren",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "Er is een fout opgetreden, probeer het opnieuw",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/nl/customRole.json b/app/javascript/dashboard/i18n/locale/nl/customRole.json
index ad0333c5e..cb2cfbb15 100644
--- a/app/javascript/dashboard/i18n/locale/nl/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/nl/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Er zijn geen items die overeenkomen met deze zoekopdracht.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/nl/datePicker.json b/app/javascript/dashboard/i18n/locale/nl/datePicker.json
index 92a28fa2b..f11782951 100644
--- a/app/javascript/dashboard/i18n/locale/nl/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/nl/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/general.json b/app/javascript/dashboard/i18n/locale/nl/general.json
index f3a6a4c01..fbd78ad73 100644
--- a/app/javascript/dashboard/i18n/locale/nl/general.json
+++ b/app/javascript/dashboard/i18n/locale/nl/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Sluiten",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/generalSettings.json b/app/javascript/dashboard/i18n/locale/nl/generalSettings.json
index 3ddf3e240..6c7ffa63f 100644
--- a/app/javascript/dashboard/i18n/locale/nl/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/nl/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Algemeen",
"REPORTS": "Rapporten",
diff --git a/app/javascript/dashboard/i18n/locale/nl/helpCenter.json b/app/javascript/dashboard/i18n/locale/nl/helpCenter.json
index 9215963f8..12e9ee530 100644
--- a/app/javascript/dashboard/i18n/locale/nl/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/nl/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Kan artikelen niet herordenen. Probeer het opnieuw."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json
index e2d663281..7da073a5c 100644
--- a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxen",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Opslaan"
}
@@ -589,8 +592,10 @@
"DISABLED": "Uitgeschakeld"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Ingeschakeld",
- "DISABLED": "Uitgeschakeld"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Instellingen Postvak In",
"INBOX_UPDATE_SUB_TEXT": "Update uw inbox instellingen",
"AUTO_ASSIGNMENT_SUB_TEXT": "In- of uitschakelen van de automatische toewijzing van nieuwe gesprekken aan de agenten die aan deze inbox zijn toegevoegd.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "Geen",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Actief",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Annuleren",
+ "CONFIRM_DELETE": "Verwijderen",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Autoriseer",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Ga terug"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In één dag"
},
"WIDGET_COLOR_LABEL": "Kleur van widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat met ons",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat met ons"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Reageert meestal binnen een paar minuten",
diff --git a/app/javascript/dashboard/i18n/locale/nl/integrationApps.json b/app/javascript/dashboard/i18n/locale/nl/integrationApps.json
index 2f30935d6..a42f4f1de 100644
--- a/app/javascript/dashboard/i18n/locale/nl/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/nl/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Integraties ophalen",
"NO_HOOK_CONFIGURED": "Er zijn geen {integrationId} integraties geconfigureerd in dit account.",
"HEADER": "Applicaties",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Ingeschakeld",
"DISABLED": "Uitgeschakeld"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Ophalen van integratie-hooks",
"INBOX": "Postvak In",
+ "ACTIONS": "Acties",
"DELETE": {
"BUTTON_TEXT": "Verwijderen"
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/integrations.json b/app/javascript/dashboard/i18n/locale/nl/integrations.json
index 648875252..efd004144 100644
--- a/app/javascript/dashboard/i18n/locale/nl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/nl/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Annuleren",
"DESC": "Webhook events bieden je realtime informatie over wat er gebeurt in je Chatwoot account. Voer een geldige URL in om een callback te configureren.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Verwijderen",
"DELETE_CONFIRMATION": {
"TITLE": "Integratie verwijderen",
@@ -145,7 +160,29 @@
"EXPAND": "Uitklappen",
"MAKE_FRIENDLY": "Wijzig berichttoon naar vriendelijk",
"MAKE_FORMAL": "Gebruik formele toon",
- "SIMPLIFY": "Vereenvoudigen"
+ "SIMPLIFY": "Vereenvoudigen",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professioneel",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Vriendelijk"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Concept inhoud",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Naam",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Acties"
},
"EDIT_TOOLTIP": "Bewerk app",
"DELETE_TOOLTIP": "App verwijderen"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/nl/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/nl/labelsMgmt.json
index a97d34515..b0922ba8b 100644
--- a/app/javascript/dashboard/i18n/locale/nl/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/nl/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Labels ophalen",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Zoek op labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Er zijn geen items die overeenkomen met deze zoekopdracht",
"LIST": {
"404": "Er zijn geen labels beschikbaar in dit account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Naam",
"DESCRIPTION": "Beschrijving",
- "COLOR": "Kleur"
+ "COLOR": "Kleur",
+ "ACTION": "Acties"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/nl/macros.json b/app/javascript/dashboard/i18n/locale/nl/macros.json
index d1c3015a4..68c86c814 100644
--- a/app/javascript/dashboard/i18n/locale/nl/macros.json
+++ b/app/javascript/dashboard/i18n/locale/nl/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macro's",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Naam",
"CREATED BY": "Aangemaakt door",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Zichtbaarheid"
+ "VISIBILITY": "Zichtbaarheid",
+ "ACTIONS": "Acties"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/nl/mfa.json b/app/javascript/dashboard/i18n/locale/nl/mfa.json
index 9caa33f7a..047815c08 100644
--- a/app/javascript/dashboard/i18n/locale/nl/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/nl/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/nl/report.json b/app/javascript/dashboard/i18n/locale/nl/report.json
index d10ce7d5e..e3eb2f484 100644
--- a/app/javascript/dashboard/i18n/locale/nl/report.json
+++ b/app/javascript/dashboard/i18n/locale/nl/report.json
@@ -3,7 +3,7 @@
"HEADER": "Gesprekken",
"LOADING_CHART": "Kaartgegevens laden...",
"NO_ENOUGH_DATA": "We hebben niet genoeg datapunten ontvangen om een rapport te genereren, probeer het later opnieuw.",
- "DOWNLOAD_AGENT_REPORTS": "Medewerkerrapporten downloaden",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Kaartgegevens laden...",
"NO_ENOUGH_DATA": "We hebben niet genoeg datapunten ontvangen om een rapport te genereren, probeer het later opnieuw.",
"DOWNLOAD_AGENT_REPORTS": "Medewerkerrapporten downloaden",
"FILTER_DROPDOWN_LABEL": "Selecteer medewerker",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Zoek agenten"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Gesprekken",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We hebben niet genoeg datapunten ontvangen om een rapport te genereren, probeer het later opnieuw.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Zoek op labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Gesprekken",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Selecteer een inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Gesprekken",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Kaartgegevens laden...",
"NO_ENOUGH_DATA": "We hebben niet genoeg datapunten ontvangen om een rapport te genereren, probeer het later opnieuw.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Filter toevoegen",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Teams zoeken"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Gesprekken",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Filter toevoegen",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Zoek agenten",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Teams zoeken",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Medewerker"
+ },
+ "INBOXES": {
+ "LABEL": "Postvak In"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Beoordeling"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Medewerker",
"RATING": "Beoordeling",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Gesprek",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Opslaan",
+ "CANCEL": "Annuleren",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/nl/settings.json b/app/javascript/dashboard/i18n/locale/nl/settings.json
index de235af95..6e63dc21f 100644
--- a/app/javascript/dashboard/i18n/locale/nl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/nl/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Downloaden",
"UPLOADING": "Uploaden...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Dit verhaal is niet meer beschikbaar."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Dit verhaal is niet meer beschikbaar.",
+ "INSTAGRAM_STORY_REPLY": "Reageerde op jouw verhaal:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Attributen zoeken"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Annuleren"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Annuleren"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/nl/signup.json b/app/javascript/dashboard/i18n/locale/nl/signup.json
index 4d6155c30..b575d4c3f 100644
--- a/app/javascript/dashboard/i18n/locale/nl/signup.json
+++ b/app/javascript/dashboard/i18n/locale/nl/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Nieuw account aanmaken",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registreren",
"TESTIMONIAL_HEADER": "Er is maar één stap nodig om vooruit te komen",
"TESTIMONIAL_CONTENT": "U bent één stap verwijderd van het communiceren met uw klanten, ze te behouden en nieuwe te vinden.",
diff --git a/app/javascript/dashboard/i18n/locale/nl/sla.json b/app/javascript/dashboard/i18n/locale/nl/sla.json
index 7d3fa65eb..ad96ae140 100644
--- a/app/javascript/dashboard/i18n/locale/nl/sla.json
+++ b/app/javascript/dashboard/i18n/locale/nl/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/nl/snooze.json b/app/javascript/dashboard/i18n/locale/nl/snooze.json
new file mode 100644
index 000000000..80a89c28a
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/nl/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "dag",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "volgende",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "morgen",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "volgende week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "dag"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/nl/teamsSettings.json b/app/javascript/dashboard/i18n/locale/nl/teamsSettings.json
index ebfa7f84c..3a23bfca3 100644
--- a/app/javascript/dashboard/i18n/locale/nl/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/nl/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Teams zoeken...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,7 +67,7 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
+ "AGENT": "Medewerker",
"EMAIL": "E-mailadres",
"BUTTON_TEXT": "Voeg agenten toe",
"ADD_AGENTS": "Adding Agents to your Team...",
diff --git a/app/javascript/dashboard/i18n/locale/no/agentBots.json b/app/javascript/dashboard/i18n/locale/no/agentBots.json
index 188098606..1f4b57d74 100644
--- a/app/javascript/dashboard/i18n/locale/no/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/no/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Handlinger"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/no/agentMgmt.json b/app/javascript/dashboard/i18n/locale/no/agentMgmt.json
index 42a65eb79..e287f5972 100644
--- a/app/javascript/dashboard/i18n/locale/no/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/no/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Det er ingen agenter tilknyttet denne kontoen",
"TITLE": "Administrer agentene i ditt team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere"
}
},
+ "SEARCH_PLACEHOLDER": "Søk etter agenter...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Ingen resultater funnet."
},
diff --git a/app/javascript/dashboard/i18n/locale/no/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/no/attributesMgmt.json
index 7d1375fb8..564c84716 100644
--- a/app/javascript/dashboard/i18n/locale/no/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/no/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/no/automation.json b/app/javascript/dashboard/i18n/locale/no/automation.json
index b73eff766..4e1b0b39e 100644
--- a/app/javascript/dashboard/i18n/locale/no/automation.json
+++ b/app/javascript/dashboard/i18n/locale/no/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Opprett",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Navn",
- "DESCRIPTION": "Beskrivelse",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Handlinger"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/no/bulkActions.json b/app/javascript/dashboard/i18n/locale/no/bulkActions.json
index c3b4f429a..c0dfaf83f 100644
--- a/app/javascript/dashboard/i18n/locale/no/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/no/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/no/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/no/cannedMgmt.json
index 3c58401ba..f32cc0b98 100644
--- a/app/javascript/dashboard/i18n/locale/no/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/no/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Forhåndslagde svar",
"LEARN_MORE": "Lær mer om standard svar",
"DESCRIPTION": "Forbudte svar er forhåndskrevne svarmaler som hjelper deg raskt å svare på en samtale. Agenter kan skrive inn '/'-tegnet etterfulgt av en kortkode for å sette inn et standard svar under en samtale. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Legge til standard svar",
"LOADING": "Henter standard svar...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Det finnes ingen elementer som samsvarer med denne spørringen.",
"LIST": {
"404": "Det er ingen forhåndslagde svar tilgjengelig i denne kontoen.",
diff --git a/app/javascript/dashboard/i18n/locale/no/chatlist.json b/app/javascript/dashboard/i18n/locale/no/chatlist.json
index fa878aaf4..5d7535cfe 100644
--- a/app/javascript/dashboard/i18n/locale/no/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/no/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/no/contact.json b/app/javascript/dashboard/i18n/locale/no/contact.json
index e612011ca..47ebc64c6 100644
--- a/app/javascript/dashboard/i18n/locale/no/contact.json
+++ b/app/javascript/dashboard/i18n/locale/no/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Ingen kontakter samsvarer med søket ditt 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/no/conversation.json b/app/javascript/dashboard/i18n/locale/no/conversation.json
index f282e5833..65b4d4fb9 100644
--- a/app/javascript/dashboard/i18n/locale/no/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/no/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for ny linje. Start med '/' for å velge et forhåndslagd svar.",
"PRIVATE_MSG_INPUT": "Skift + enter for ny linje. Dette vil kun være synlig for agenter",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sendt av:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Avbryt",
"SEND_EMAIL_SUCCESS": "Kopi av samtalen ble sendt",
"SEND_EMAIL_ERROR": "Det oppstod en feil. Prøv igjen",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send kopi av samtalen til kunden",
"SEND_TO_AGENT": "Send kopi av samtalen til den tildelte agenten",
diff --git a/app/javascript/dashboard/i18n/locale/no/customRole.json b/app/javascript/dashboard/i18n/locale/no/customRole.json
index 1c596f041..776ee6ac5 100644
--- a/app/javascript/dashboard/i18n/locale/no/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/no/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Det finnes ingen elementer som samsvarer med denne spørringen.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/no/datePicker.json b/app/javascript/dashboard/i18n/locale/no/datePicker.json
index 69f4ec400..fc172eba8 100644
--- a/app/javascript/dashboard/i18n/locale/no/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/no/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/general.json b/app/javascript/dashboard/i18n/locale/no/general.json
index f16393ccd..38d116cec 100644
--- a/app/javascript/dashboard/i18n/locale/no/general.json
+++ b/app/javascript/dashboard/i18n/locale/no/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Lukk",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/generalSettings.json b/app/javascript/dashboard/i18n/locale/no/generalSettings.json
index aacb3a470..75c5d1a2d 100644
--- a/app/javascript/dashboard/i18n/locale/no/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/no/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Rapporter",
diff --git a/app/javascript/dashboard/i18n/locale/no/helpCenter.json b/app/javascript/dashboard/i18n/locale/no/helpCenter.json
index ac2901adc..08a3bd4da 100644
--- a/app/javascript/dashboard/i18n/locale/no/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/no/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json
index 4e6a60af7..b12fce2ca 100644
--- a/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Innbokser",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Deaktivert"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Aktivert",
- "DISABLED": "Deaktivert"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Innboksinnstillinger",
"INBOX_UPDATE_SUB_TEXT": "Oppdater innboksinnstillinger",
"AUTO_ASSIGNMENT_SUB_TEXT": "Aktiver eller deaktiver automatisk tildeling av nye samtaler til agenter som er lagt til i denne innboksen.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Avbryt",
+ "CONFIRM_DELETE": "Slett",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reautoriser",
"SUBTITLE": "Facebook-tilkoblingen din er utløpt, koble til Facebook-siden din for å fortsette tjenester",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Tilgjengelighet",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Om en dag"
},
"WIDGET_COLOR_LABEL": "Widget farge",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat med oss",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat med oss"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Svarer vanligvis innen et par timer",
diff --git a/app/javascript/dashboard/i18n/locale/no/integrationApps.json b/app/javascript/dashboard/i18n/locale/no/integrationApps.json
index 52c7571ce..54cf485da 100644
--- a/app/javascript/dashboard/i18n/locale/no/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/no/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Aktivert",
"DISABLED": "Deaktivert"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Handlinger",
"DELETE": {
"BUTTON_TEXT": "Slett"
}
diff --git a/app/javascript/dashboard/i18n/locale/no/integrations.json b/app/javascript/dashboard/i18n/locale/no/integrations.json
index 0266ca280..57cc1bcff 100644
--- a/app/javascript/dashboard/i18n/locale/no/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/no/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Avbryt",
"DESC": "Webhook-hendelser gir deg sanntidsinformasjon om hva som skjer i din Chatwoot-konto. Skriv inn en gyldig nettadresse for å konfigurere en callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Slett",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Navn",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Handlinger"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/no/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/no/labelsMgmt.json
index 5d27dcdbc..842b5663e 100644
--- a/app/javascript/dashboard/i18n/locale/no/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/no/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Henter etiketter",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Det finnes ingen elementer som samsvarer med denne spørringen",
"LIST": {
"404": "Det er ingen etiketter tilgjengelig i denne kontoen.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Navn",
"DESCRIPTION": "Beskrivelse",
- "COLOR": "Farge"
+ "COLOR": "Farge",
+ "ACTION": "Handlinger"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/no/macros.json b/app/javascript/dashboard/i18n/locale/no/macros.json
index b5b1e663e..8ff0ac6ea 100644
--- a/app/javascript/dashboard/i18n/locale/no/macros.json
+++ b/app/javascript/dashboard/i18n/locale/no/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Navn",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Handlinger"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/no/mfa.json b/app/javascript/dashboard/i18n/locale/no/mfa.json
index b097a4685..f13c9dadd 100644
--- a/app/javascript/dashboard/i18n/locale/no/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/no/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/no/report.json b/app/javascript/dashboard/i18n/locale/no/report.json
index 9dcfa688b..7595695cd 100644
--- a/app/javascript/dashboard/i18n/locale/no/report.json
+++ b/app/javascript/dashboard/i18n/locale/no/report.json
@@ -3,7 +3,7 @@
"HEADER": "Samtaler",
"LOADING_CHART": "Laster inn diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke mottatt nok data for å generere rapporten, vennligst prøv igjen senere.",
- "DOWNLOAD_AGENT_REPORTS": "Last ned agentrapporter",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Laster inn diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke mottatt nok data for å generere rapporten, vennligst prøv igjen senere.",
"DOWNLOAD_AGENT_REPORTS": "Last ned agentrapporter",
"FILTER_DROPDOWN_LABEL": "Velg agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Søk etter agenter"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Vi har ikke mottatt nok data for å generere rapporten, vennligst prøv igjen senere.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Laster inn diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke mottatt nok data for å generere rapporten, vennligst prøv igjen senere.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Søk blant grupper"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Søk etter agenter",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Søk blant grupper",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Avbryt",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/no/settings.json b/app/javascript/dashboard/i18n/locale/no/settings.json
index a1c73b8bb..e246d5abb 100644
--- a/app/javascript/dashboard/i18n/locale/no/settings.json
+++ b/app/javascript/dashboard/i18n/locale/no/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Last ned",
"UPLOADING": "Laster opp...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Denne historien er ikke lenger tilgjengelig."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Denne historien er ikke lenger tilgjengelig.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funksjoner",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Avbryt"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "Ny konto",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Avbryt"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/no/signup.json b/app/javascript/dashboard/i18n/locale/no/signup.json
index 4e941c374..d0d67474b 100644
--- a/app/javascript/dashboard/i18n/locale/no/signup.json
+++ b/app/javascript/dashboard/i18n/locale/no/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registrer",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/no/sla.json b/app/javascript/dashboard/i18n/locale/no/sla.json
index eb912c47c..8f8101127 100644
--- a/app/javascript/dashboard/i18n/locale/no/sla.json
+++ b/app/javascript/dashboard/i18n/locale/no/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/no/snooze.json b/app/javascript/dashboard/i18n/locale/no/snooze.json
new file mode 100644
index 000000000..90ccbe0da
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/no/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "dag",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "dag"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/no/teamsSettings.json b/app/javascript/dashboard/i18n/locale/no/teamsSettings.json
index c9d03a904..5234a8cbd 100644
--- a/app/javascript/dashboard/i18n/locale/no/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/no/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Søk blant grupper...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "E-POST",
+ "AGENT": "Agent",
+ "EMAIL": "E-post",
"BUTTON_TEXT": "Legg til agenter",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/pl/agentBots.json b/app/javascript/dashboard/i18n/locale/pl/agentBots.json
index 6060d7e43..e2cd736f9 100644
--- a/app/javascript/dashboard/i18n/locale/pl/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/pl/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Ładowanie edytora...",
"DESCRIPTION": "Boty agentów są jak najbardziej fantastyczni członkowie Twojego zespołu. Mogą zajmować się drobnymi sprawami, dzięki czemu Ty możesz skupić się na tym, co naprawdę ważne. Wypróbuj je! Możesz zarządzać swoimi botami z tej strony lub tworzyć nowe za pomocą przycisku 'Dodaj bota'.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Pobieranie botów...",
"TABLE_HEADER": {
"DETAILS": "Szczegóły bota",
- "URL": "Adres URL webhooka"
+ "URL": "Adres URL webhooka",
+ "ACTIONS": "Akcje"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/pl/agentMgmt.json b/app/javascript/dashboard/i18n/locale/pl/agentMgmt.json
index c4573928e..4d27494ca 100644
--- a/app/javascript/dashboard/i18n/locale/pl/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pl/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Nie ma agentów powiązanych z tym kontem",
"TITLE": "Zarządzaj agentami w zespole",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Nie można połączyć się z serwerem Woot, proszę spróbować później"
}
},
+ "SEARCH_PLACEHOLDER": "Szukaj agentów...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Nie znaleziono wyników."
},
diff --git a/app/javascript/dashboard/i18n/locale/pl/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/pl/attributesMgmt.json
index 74b127a23..c6fefcfdd 100644
--- a/app/javascript/dashboard/i18n/locale/pl/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pl/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Pobieranie atrybutów niestandardowych",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Wyszukaj atrybuty...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Rozmowa",
"CONTACT": "Kontakt"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Włącz walidację regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/pl/automation.json b/app/javascript/dashboard/i18n/locale/pl/automation.json
index 63bcba5fd..b953f738d 100644
--- a/app/javascript/dashboard/i18n/locale/pl/automation.json
+++ b/app/javascript/dashboard/i18n/locale/pl/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automatyzacja",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Dodaj regułę automatyzacji",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Pobieranie reguł automatyzacji",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Dodaj regułę automatyzacji",
"SUBMIT": "Stwórz",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Imię",
- "DESCRIPTION": "Opis",
"ACTIVE": "Aktywne",
- "CREATED_ON": "Utworzona dnia"
+ "CREATED_ON": "Utworzona dnia",
+ "ACTIONS": "Akcje"
},
"404": "Nie znaleziono reguł automatyzacji"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Zmień priorytet",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Otwórz rozmowę"
+ "OPEN_CONVERSATION": "Otwórz rozmowę",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/pl/bulkActions.json b/app/javascript/dashboard/i18n/locale/pl/bulkActions.json
index dc20e5fd7..5a6da3513 100644
--- a/app/javascript/dashboard/i18n/locale/pl/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/pl/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Status rozmowy został pomyślnie zaktualizowany.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "Brak wyników",
diff --git a/app/javascript/dashboard/i18n/locale/pl/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/pl/cannedMgmt.json
index 80abbd726..3db8ce741 100644
--- a/app/javascript/dashboard/i18n/locale/pl/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pl/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Przygotowane odpowiedzi",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Brak wyników pasujących do wyszukiwania.",
"LIST": {
"404": "Brak dostępnych Gotowych odpowiedzi na tym koncie.",
diff --git a/app/javascript/dashboard/i18n/locale/pl/chatlist.json b/app/javascript/dashboard/i18n/locale/pl/chatlist.json
index eb1f040e6..7f37c06e8 100644
--- a/app/javascript/dashboard/i18n/locale/pl/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/pl/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/pl/contact.json b/app/javascript/dashboard/i18n/locale/pl/contact.json
index 110e17ce0..cd772f762 100644
--- a/app/javascript/dashboard/i18n/locale/pl/contact.json
+++ b/app/javascript/dashboard/i18n/locale/pl/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Brak kontaktów pasujących do wyszukiwania 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Przypisz etykiety",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Do:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Temat :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/pl/conversation.json b/app/javascript/dashboard/i18n/locale/pl/conversation.json
index 62b4a1065..499bbe5d7 100644
--- a/app/javascript/dashboard/i18n/locale/pl/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/pl/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Wiadomość usunięta pomyślnie",
"FAIL_DELETE_MESSSAGE": "Nie można usunąć wiadomości! Spróbuj ponownie",
"NO_RESPONSE": "Brak odpowiedzi",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Nie można przypisać etykiety. Spróbuj ponownie."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Przypisano zespół \"{team}\" do konwersacji o identyfikatorze {conversationId}",
"FAILED": "Nie można przypisać zespołu. Spróbuj ponownie."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Wyłącz podpis",
"MSG_INPUT": "Shift + enter dla nowej linii. Zacznij od '/' aby wybrać Gotową odpowiedź.",
"PRIVATE_MSG_INPUT": "Shift + enter dla nowej linii. Będzie widoczne tylko dla agentów",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Podpis wiadomości nie jest skonfigurowany, należy go skonfigurować w ustawieniach profilu.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Kliknij tutaj, aby zaktualizować",
"WHATSAPP_TEMPLATES": "Szablony WhatsApp"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Przeciągnij i upuść tutaj, aby dołączyć",
"START_AUDIO_RECORDING": "Rozpocznij nagrywanie audio",
"STOP_AUDIO_RECORDING": "Zatrzymaj nagrywanie audio",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "DO",
"ADD_BCC": "Dodaj Bcc",
@@ -246,10 +255,13 @@
"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:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Nie można wysłać wiadomości! Spróbuj ponownie",
"TRY_AGAIN": "spróbuj ponownie",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Anuluj",
"SEND_EMAIL_SUCCESS": "Transkrypt rozmowy został pomyślnie wysłany",
"SEND_EMAIL_ERROR": "Wystąpił błąd, spróbuj ponownie",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Wyślij transkrypt do klienta",
"SEND_TO_AGENT": "Wyślij transkrypt do przypisanego agenta",
diff --git a/app/javascript/dashboard/i18n/locale/pl/customRole.json b/app/javascript/dashboard/i18n/locale/pl/customRole.json
index 3514e09fc..041af0367 100644
--- a/app/javascript/dashboard/i18n/locale/pl/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/pl/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Brak wyników pasujących do wyszukiwania.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/pl/datePicker.json b/app/javascript/dashboard/i18n/locale/pl/datePicker.json
index 6a3ca9491..60161ce95 100644
--- a/app/javascript/dashboard/i18n/locale/pl/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/pl/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Zastosuj",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Ostatnie 3 miesiące",
"LAST_6_MONTHS": "Ostatnie 6 miesięcy",
"LAST_YEAR": "Ostatni rok",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Niestandardowy zakres dat"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/general.json b/app/javascript/dashboard/i18n/locale/pl/general.json
index 9a0d9b7b6..e3657bf9c 100644
--- a/app/javascript/dashboard/i18n/locale/pl/general.json
+++ b/app/javascript/dashboard/i18n/locale/pl/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Zamknij",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Tak",
+ "NO": "Nie"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/generalSettings.json b/app/javascript/dashboard/i18n/locale/pl/generalSettings.json
index 3798b6f7b..e47ea01db 100644
--- a/app/javascript/dashboard/i18n/locale/pl/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pl/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Szukaj lub przejdź do",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Ogólne",
"REPORTS": "Raporty",
diff --git a/app/javascript/dashboard/i18n/locale/pl/helpCenter.json b/app/javascript/dashboard/i18n/locale/pl/helpCenter.json
index e1f2ce056..46884b314 100644
--- a/app/javascript/dashboard/i18n/locale/pl/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/pl/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Błąd podczas usuwania artykułu"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Proszę dodać tytuł i treść artykułu, aby móc zaktualizować ustawienia"
},
diff --git a/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json
index c30424272..00a176ad5 100644
--- a/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Zarządzanie skrzynkami",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -236,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",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Zapisz"
}
@@ -589,8 +592,10 @@
"DISABLED": "Wyłączone"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Włączone",
- "DISABLED": "Wyłączone"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Włącz"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Włącz ciągłość rozmowy przez e-mail",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Rozmowy będą kontynuowane przez e-mail, jeśli adres e-mail kontaktu jest dostępny.",
- "LOCK_TO_SINGLE_CONVERSATION": "Blokada do pojedynczej rozmowy",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Włączanie lub wyłączanie wielu wątków dla tego samego kontaktu w tej skrzynce odbiorczej",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Ustawienia skrzynki odbiorczej",
"INBOX_UPDATE_SUB_TEXT": "Zaktualizuj ustawienia skrzynki odbiorczej",
"AUTO_ASSIGNMENT_SUB_TEXT": "Włącz lub wyłącz automatyczne przypisywanie nowych rozmów do agentów dodanych do tej skrzynki odbiorczej.",
@@ -758,6 +775,7 @@
"LABEL": "Centrum pomocy",
"PLACEHOLDER": "Wybierz Centrum pomocy",
"SELECT_PLACEHOLDER": "Wybierz Centrum pomocy",
+ "NONE": "Brak",
"REMOVE": "Usuń Centrum pomocy",
"SUB_TEXT": "Dołącz Centrum pomocy do skrzynki odbiorczej"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Wprowadź wartość większą niż 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Ogranicz maksymalną liczbę wątków z tej skrzynki odbiorczej, które mogą zostać automatycznie przypisane do agenta"
},
+ "ASSIGNMENT": {
+ "TITLE": "Zadanie konwersacji",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktywne",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Anuluj",
+ "CONFIRM_DELETE": "Usuń",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Ponowna autoryzacja",
"SUBTITLE": "Twoje połączenie z Facebookiem wygasło, połącz się z nim ponownie, aby kontynuować świadczenie usług",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Powróć"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Wiadomość niedostępna dla odwiedzających",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Dzień",
+ "AVAILABILITY": "Dostępność",
+ "HOURS": "Hours",
"ENABLE": "Włącz dostępność w tym dniu",
"UNAVAILABLE": "Niedostępny",
- "HOURS": "godzin",
"VALIDATION_ERROR": "Czas rozpoczęcia powinien być przed czasem zakończenia.",
"CHOOSE": "Wybierz"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "W ciągu dnia"
},
"WIDGET_COLOR_LABEL": "Kolor widżetu",
- "WIDGET_BUBBLE_POSITION_LABEL": "Pozycja bąbelka widgetu",
- "WIDGET_BUBBLE_TYPE_LABEL": "Typ bąbelka widgetu",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Typ:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Porozmawiaj z nami",
- "LABEL": "Tytuł programu uruchamiającego bąbelki widżetów",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Porozmawiaj z nami"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Domyślny",
- "CHAT": "Czat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Zwykle odpowiadamy w ciągu paru minut",
diff --git a/app/javascript/dashboard/i18n/locale/pl/integrationApps.json b/app/javascript/dashboard/i18n/locale/pl/integrationApps.json
index 863ad8274..09432ca15 100644
--- a/app/javascript/dashboard/i18n/locale/pl/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/pl/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Pobieranie integracji",
"NO_HOOK_CONFIGURED": "W tym koncie nie skonfigurowano integracji {integrationId}.",
"HEADER": "Aplikacje",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Włączone",
"DISABLED": "Wyłączone"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Pobieranie hooków integracyjnych",
"INBOX": "Skrzynka odbiorcza",
+ "ACTIONS": "Akcje",
"DELETE": {
"BUTTON_TEXT": "Usuń"
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/integrations.json b/app/javascript/dashboard/i18n/locale/pl/integrations.json
index d5fe93b75..ef33baaec 100644
--- a/app/javascript/dashboard/i18n/locale/pl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/pl/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subskrybowane wydarzenia",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Anuluj",
"DESC": "Webhooki dostarczają informacje o tym, co dzieje się w Twoim koncie Chatwoot. Wprowadź poprawny adres URL, aby skonfigurować webhook.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Usuń",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesjonalna",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Przyjazna"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Aplikacje na pulpicie
Aplikacje na pulpicie umożliwiają organizacjom osadzenie aplikacji wewnątrz panelu Chatwoot w celu dostarczenia kontekstu dla agentów obsługi klienta. Ta funkcja umożliwia tworzenie niezależnej aplikacji i osadzanie jej w celu dostarczania informacji o użytkowniku, jego zamówieniach lub historii płatności.
Kiedy osadzisz swoją aplikację za pomocą pulpitu Chatwoot, Twoja aplikacja otrzyma kontekst rozmowy i kontaktu jako zdarzenie okna. W swojej stronie zaimplementuj nasłuchiwanie zdarzenia wiadomości, aby otrzymać kontekst.
Aby dodać nową aplikację na pulpicie, kliknij przycisk 'Dodaj nową aplikację na pulpicie'.
",
"DESCRIPTION": "Aplikacje na pulpicie umożliwiają organizacjom osadzenie aplikacji wewnątrz panelu w celu dostarczenia kontekstu dla agentów obsługi klienta. Ta funkcja umożliwia tworzenie niezależnej aplikacji i osadzanie jej w celu dostarczania informacji o użytkowniku, jego zamówieniach lub historii płatności.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Na tym koncie nie skonfigurowano jeszcze aplikacji na pulpicie",
"LOADING": "Pobieranie aplikacji na pulpicie...",
"TABLE_HEADER": {
"NAME": "Imię",
- "ENDPOINT": "Punkt końcowy"
+ "ENDPOINT": "Punkt końcowy",
+ "ACTIONS": "Akcje"
},
"EDIT_TOOLTIP": "Edytuj aplikację",
"DELETE_TOOLTIP": "Usuń aplikację"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/pl/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/pl/labelsMgmt.json
index 2bc9ed53c..64ecf52de 100644
--- a/app/javascript/dashboard/i18n/locale/pl/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pl/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Pobieranie etykiet",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Szukaj etykiet...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Brak elementów pasujących do tego zapytania",
"LIST": {
"404": "Brak etykiet na tym koncie.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Imię",
"DESCRIPTION": "Opis",
- "COLOR": "Kolor"
+ "COLOR": "Kolor",
+ "ACTION": "Akcje"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/pl/macros.json b/app/javascript/dashboard/i18n/locale/pl/macros.json
index dab2bcea1..38dc1c920 100644
--- a/app/javascript/dashboard/i18n/locale/pl/macros.json
+++ b/app/javascript/dashboard/i18n/locale/pl/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Makra",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Dodaj nowe makro",
"HEADER_BTN_TXT_SAVE": "Zapisz makro",
"LOADING": "Pobieranie makr",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Wystąpił błąd. Spróbuj ponownie",
"ORDER_INFO": "Makra będą uruchamiane w kolejności, w jakiej dodajesz czynności. Możesz zmieniać ich kolejność, przeciągając je za uchwyt obok każdego węzła.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Imię",
"CREATED BY": "Utworzone przez",
"LAST_UPDATED_BY": "Ostatnio zaktualizowane przez",
- "VISIBILITY": "Widoczność"
+ "VISIBILITY": "Widoczność",
+ "ACTIONS": "Akcje"
},
"404": "Nie znaleziono makr"
},
diff --git a/app/javascript/dashboard/i18n/locale/pl/mfa.json b/app/javascript/dashboard/i18n/locale/pl/mfa.json
index 3c3738b00..b44d1c883 100644
--- a/app/javascript/dashboard/i18n/locale/pl/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/pl/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/pl/report.json b/app/javascript/dashboard/i18n/locale/pl/report.json
index 9a82f5b8b..8304ab2e5 100644
--- a/app/javascript/dashboard/i18n/locale/pl/report.json
+++ b/app/javascript/dashboard/i18n/locale/pl/report.json
@@ -3,7 +3,7 @@
"HEADER": "Raporty rozmów",
"LOADING_CHART": "Ładowanie danych wykresów...",
"NO_ENOUGH_DATA": "Nie ma wystarczającej ilości danych do wygenerowania raportu. Spróbuj ponownie później.",
- "DOWNLOAD_AGENT_REPORTS": "Pobierz raporty agenta",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Nie udało się pobrać danych, spróbuj ponownie później.",
"SUMMARY_FETCHING_FAILED": "Nie udało się pobrać podsumowania, spróbuj ponownie później.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Przegląd agentów",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Ładowanie danych wykresów...",
"NO_ENOUGH_DATA": "Nie ma wystarczającej ilości danych do wygenerowania raportu. Spróbuj ponownie później.",
"DOWNLOAD_AGENT_REPORTS": "Pobierz raporty agenta",
"FILTER_DROPDOWN_LABEL": "Wybierz agenta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Szukaj agentów"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Rozmowy",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Nie ma wystarczającej ilości danych do wygenerowania raportu. Spróbuj ponownie później.",
"DOWNLOAD_LABEL_REPORTS": "Pobierz raporty etykiety",
"FILTER_DROPDOWN_LABEL": "Wybierz etykietę",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Szukaj etykiet"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Rozmowy",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Wybierz skrzynkę odbiorczą",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Rozmowy",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Przegląd zespołu",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Ładowanie danych wykresów...",
"NO_ENOUGH_DATA": "Nie ma wystarczającej ilości danych do wygenerowania raportu. Spróbuj ponownie później.",
"DOWNLOAD_TEAM_REPORTS": "Pobierz raporty zespołu",
"FILTER_DROPDOWN_LABEL": "Wybierz zespół",
+ "FILTERS": {
+ "ADD_FILTER": "Dodaj filtr",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Szukaj zespołów"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Rozmowy",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Raporty CSAT",
- "NO_RECORDS": "Brak dostępnych odpowiedzi w ankiecie CSAT.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Pobierz raporty CSAT",
"DOWNLOAD_FAILED": "Nie udało się pobrać raportów CSAT",
"FILTERS": {
+ "ADD_FILTER": "Dodaj filtr",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Szukaj agentów",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Szukaj zespołów",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Wybierz agentów"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Skrzynka odbiorcza"
+ },
+ "TEAMS": {
+ "LABEL": "Zespół"
+ },
+ "RATINGS": {
+ "LABEL": "Ocena"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontakt",
- "AGENT_NAME": "Przypisany agent",
+ "AGENT_NAME": "Agent",
"RATING": "Ocena",
- "FEEDBACK_TEXT": "Tekst opinii"
- }
+ "FEEDBACK_TEXT": "Tekst opinii",
+ "CONVERSATION": "Rozmowa",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Łącznie odpowiedzi",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Wskaźnik odpowiedzi",
"TOOLTIP": "Wskaźnik odpowiedzi: (Całkowita liczba odpowiedzi / Całkowita liczba wysłanych ankiet CSAT) * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Zapisz",
+ "CANCEL": "Anuluj",
+ "SAVING": "Zapisywanie...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/pl/settings.json b/app/javascript/dashboard/i18n/locale/pl/settings.json
index fddff538b..42e1ad81c 100644
--- a/app/javascript/dashboard/i18n/locale/pl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/pl/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Pobierz",
"UPLOADING": "Przesyłanie...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Ta historia nie jest już dostępna."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Ta historia nie jest już dostępna.",
+ "INSTAGRAM_STORY_REPLY": "Odpowiedziałeś na swoją historię:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Zobacz na mapie"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Czytaj dokumentację",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funkcje",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Rozliczenia",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Wyszukaj atrybuty"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Zamknij rozmowę",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Zamknij rozmowę",
+ "CANCEL": "Anuluj"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Tak",
+ "NO": "Nie"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Ups! Nie znaleziono żadnych kont Chatwoot. Aby kontynuować, utwórz nowe konto.",
"NEW_ACCOUNT": "Nowe konto",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Anuluj"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/pl/signup.json b/app/javascript/dashboard/i18n/locale/pl/signup.json
index e14216283..5548df85d 100644
--- a/app/javascript/dashboard/i18n/locale/pl/signup.json
+++ b/app/javascript/dashboard/i18n/locale/pl/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Utwórz konto",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Rejestracja",
"TESTIMONIAL_HEADER": "Wszystko czego potrzebujesz to jeden krok do przodu",
"TESTIMONIAL_CONTENT": "Jesteś tylko jeden krok od zaangażowania swoich klientów, zatrzymania ich i znalezienia nowych.",
diff --git a/app/javascript/dashboard/i18n/locale/pl/sla.json b/app/javascript/dashboard/i18n/locale/pl/sla.json
index 7870322e0..3a279fe3a 100644
--- a/app/javascript/dashboard/i18n/locale/pl/sla.json
+++ b/app/javascript/dashboard/i18n/locale/pl/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/pl/snooze.json b/app/javascript/dashboard/i18n/locale/pl/snooze.json
new file mode 100644
index 000000000..b8cfa436a
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pl/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "godzin",
+ "DAY": "dnia",
+ "DAYS": "days",
+ "WEEK": "day",
+ "WEEKS": "weeks",
+ "MONTH": "week",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "jutro",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "następny tydzień",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "day",
+ "DAY": "dnia"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pl/teamsSettings.json b/app/javascript/dashboard/i18n/locale/pl/teamsSettings.json
index 41132aa79..10127a363 100644
--- a/app/javascript/dashboard/i18n/locale/pl/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pl/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Szukaj zespołów...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Na tym koncie nie ma żadnych zespołów.",
"EDIT_TEAM": "Edytuj zespół",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Nie udało się zapisać szczegółów zespołu. Spróbuj ponownie."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "E-mail",
"BUTTON_TEXT": "Dodaj agentów",
"ADD_AGENTS": "Dodaj agenta do swojego zespołu...",
"SELECT": "wybierz",
diff --git a/app/javascript/dashboard/i18n/locale/pt/agentBots.json b/app/javascript/dashboard/i18n/locale/pt/agentBots.json
index e2feb9296..b6aab197c 100644
--- a/app/javascript/dashboard/i18n/locale/pt/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/pt/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "A carregar editor...",
"DESCRIPTION": "Os Agentes Bots são como os membros mais fabulosos da sua equipa. Tratam das pequenas coisas, para que se possa concentrar no que realmente importa. Experimente. Pode gerir os seus bots nesta página ou criar novos, utilizando o botão \"Adicionar Bot\".",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "Bot do sistema",
"GLOBAL_BOT_BADGE": "Sistema",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "A carregar bots...",
"TABLE_HEADER": {
"DETAILS": "Detalhes do bot",
- "URL": "URL do Webhook"
+ "URL": "URL do Webhook",
+ "ACTIONS": "Ações"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json b/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json
index d9c7c5fff..8960de958 100644
--- a/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrador",
"AGENT": "Agente"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Não há agentes associados a esta conta",
"TITLE": "Gerir agentes na sua equipa",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor, tente novamente mais tarde"
}
},
+ "SEARCH_PLACEHOLDER": "Procurar agentes...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Nenhum resultado encontrado."
},
diff --git a/app/javascript/dashboard/i18n/locale/pt/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/pt/attributesMgmt.json
index 242c17440..b08f977e3 100644
--- a/app/javascript/dashboard/i18n/locale/pt/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "A obter atributos personalizados",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Pesquisar atributos...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversa",
"CONTACT": "Contacto"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Ativar validação de regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/pt/automation.json b/app/javascript/dashboard/i18n/locale/pt/automation.json
index b97cf76cc..d4560a440 100644
--- a/app/javascript/dashboard/i18n/locale/pt/automation.json
+++ b/app/javascript/dashboard/i18n/locale/pt/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automatização",
"DESCRIPTION": "A automação pode substituir e racionalizar os processos existentes que requerem esforço manual, como a adição de etiquetas e a atribuição de conversas ao agente mais adequado. Isto permite que a equipa se foque em tarefas maiores, reduzindo o tempo gasto em tarefas rotineiras.",
"LEARN_MORE": "Saber mais sobre automação",
- "HEADER_BTN_TXT": "Adicionar regra de automação",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "A procurar regras de automação",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Adicionar regra de automação",
"SUBMIT": "Criar",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Nome:",
- "DESCRIPTION": "Descrição",
"ACTIVE": "Ativa",
- "CREATED_ON": "Criado em"
+ "CREATED_ON": "Criado em",
+ "ACTIONS": "Ações"
},
"404": "Nenhuma regra de automação encontrada"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Adicionar uma Nota Privada",
"CHANGE_PRIORITY": "Alterar prioridade",
"ADD_SLA": "Adicionar SLA",
- "OPEN_CONVERSATION": "Abrir conversa"
+ "OPEN_CONVERSATION": "Abrir conversa",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/pt/bulkActions.json b/app/javascript/dashboard/i18n/locale/pt/bulkActions.json
index dc587fc41..41aeafa27 100644
--- a/app/javascript/dashboard/i18n/locale/pt/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/pt/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Estado da conversa atualizado com sucesso.",
"UPDATE_FAILED": "Falha ao atualizar conversas. Por favor, tente novamente."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Atribuir etiquetas",
"NO_LABELS_FOUND": "Nenhuma etiqueta encontrada",
diff --git a/app/javascript/dashboard/i18n/locale/pt/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/pt/cannedMgmt.json
index 78f63bc9d..d42eb7bc9 100644
--- a/app/javascript/dashboard/i18n/locale/pt/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Respostas prontas",
"LEARN_MORE": "Saber mais sobre respostas prontas",
"DESCRIPTION": "Respostas prontas são modelos de resposta pré-escritos que o ajudam a responder rapidamente a uma conversa. Os agentes podem inserir o caractere '/' seguido do código curto para inserir uma resposta pronta durante uma conversa. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Adicionar resposta pronta",
"LOADING": "A obter respostas prontas...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Não há itens correspondentes a esta consulta.",
"LIST": {
"404": "Não há respostas prontas disponíveis nesta conta.",
diff --git a/app/javascript/dashboard/i18n/locale/pt/chatlist.json b/app/javascript/dashboard/i18n/locale/pt/chatlist.json
index ae730b3a8..055cdddb3 100644
--- a/app/javascript/dashboard/i18n/locale/pt/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/pt/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Resposta pendente: Mais curta primeiro"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/pt/contact.json b/app/javascript/dashboard/i18n/locale/pt/contact.json
index 3da11e755..4b171b530 100644
--- a/app/javascript/dashboard/i18n/locale/pt/contact.json
+++ b/app/javascript/dashboard/i18n/locale/pt/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Nenhum contacto corresponde à sua pesquisa 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "Neste momento não há contactos ativos 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Atribuir etiquetas",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Para:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Assunto :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/pt/conversation.json b/app/javascript/dashboard/i18n/locale/pt/conversation.json
index 2846cfec8..a48bfd83f 100644
--- a/app/javascript/dashboard/i18n/locale/pt/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/pt/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Esta mensagem não é suportada. Pode ver esta mensagem na app Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Esta mensagem não é suportada. Pode ver esta mensagem na app do Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Mensagem apagada com sucesso",
"FAIL_DELETE_MESSSAGE": "Não foi possível apagar a mensagem! Por favor, tente novamente",
"NO_RESPONSE": "Sem resposta",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Não foi possível atribuir etiqueta. Por favor, tente novamente."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Equipa \"{team}\" atribuída a conversa de ID {conversationId}",
"FAILED": "Não foi possível atribuir equipa. Por favor, tente novamente."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Desativar assinatura",
"MSG_INPUT": "Shift + Enter para nova linha. Comece com '/' para selecionar uma resposta pronta.",
"PRIVATE_MSG_INPUT": "Shift + Enter para nova linha. Esta mensagem apenas será visível para agentes",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "A assinatura da mensagem não está configurada. Por favor, configure-a nas configurações do perfil.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Clique aqui para atualizar",
"WHATSAPP_TEMPLATES": "Template do WhatsApp"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Arrastar e soltar aqui para anexar",
"START_AUDIO_RECORDING": "Iniciar gravação de áudio",
"STOP_AUDIO_RECORDING": "Parar gravação de áudio",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "PARA",
"ADD_BCC": "Adicionar Bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversa apagada",
"FAIL_DELETE_CONVERSATION": "Não foi possível apagar a conversa! Tente novamente",
"FILE_SIZE_LIMIT": "O ficheiro excede o tamanho limite para anexos de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Não foi possível enviar esta mensagem, por favor, tente novamente mais tarde",
"SENT_BY": "Enviado por:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Não foi possível enviar a mensagem! Tente novamente",
"TRY_AGAIN": "Tentar novamente",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancelar",
"SEND_EMAIL_SUCCESS": "A transcrição da conversa foi enviada com sucesso",
"SEND_EMAIL_ERROR": "Ocorreu um erro, por favor, tente novamente",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Enviar a transcrição ao cliente",
"SEND_TO_AGENT": "Enviar a transcrição para o agente atribuído",
diff --git a/app/javascript/dashboard/i18n/locale/pt/customRole.json b/app/javascript/dashboard/i18n/locale/pt/customRole.json
index e8dbf535f..02e81fc3e 100644
--- a/app/javascript/dashboard/i18n/locale/pt/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/pt/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Funções personalizadas",
"LEARN_MORE": "Aprenda mais sobre funções personalizadas",
"DESCRIPTION": "Funções personalizadas são funções criadas pelo proprietário ou administrador da conta. Essas funções podem ser atribuídas a agentes para definir seu acesso e permissões dentro da conta. Funções personalizadas podem ser criadas com permissões e níveis de acesso específicos para atender aos requisitos da organização.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Adicionar função personalizada",
"LOADING": "Buscando funções personalizadas...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Não há itens correspondentes a esta consulta.",
"PAYWALL": {
"TITLE": "Atualize para criar funções personalizadas",
diff --git a/app/javascript/dashboard/i18n/locale/pt/datePicker.json b/app/javascript/dashboard/i18n/locale/pt/datePicker.json
index f193922f4..582984b4c 100644
--- a/app/javascript/dashboard/i18n/locale/pt/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/pt/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Confirmar",
"CLEAR_BUTTON": "Limpar",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Últimos 3 meses",
"LAST_6_MONTHS": "Últimos 6 meses",
"LAST_YEAR": "Último ano",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Intervalo de tempo personalizado"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/general.json b/app/javascript/dashboard/i18n/locale/pt/general.json
index e75cad80f..5e5e293bd 100644
--- a/app/javascript/dashboard/i18n/locale/pt/general.json
+++ b/app/javascript/dashboard/i18n/locale/pt/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Fechar",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Aceitar",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferido"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Sim",
+ "NO": "Não"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/generalSettings.json b/app/javascript/dashboard/i18n/locale/pt/generalSettings.json
index b7b27c15a..24e9ced0d 100644
--- a/app/javascript/dashboard/i18n/locale/pt/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pt/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Pesquisar ou passar para",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Geral",
"REPORTS": "Relatórios",
diff --git a/app/javascript/dashboard/i18n/locale/pt/helpCenter.json b/app/javascript/dashboard/i18n/locale/pt/helpCenter.json
index 1413196f2..c723d178f 100644
--- a/app/javascript/dashboard/i18n/locale/pt/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/pt/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Erro ao excluir artigo"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Adicione o título do artigo e o conteúdo em seguida, posteriomente as configurações apenas serão editáveis por si"
},
diff --git a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json
index e31d85eee..5d271023e 100644
--- a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Caixas de Entrada",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "A sua caixa de entrada está desconectada. Não serão recebidas novas mensagens até nova autorização.",
"CLICK_TO_RECONNECT": "Clique aqui para reconectar.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -236,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",
@@ -575,7 +578,7 @@
"SUBTITLE": "Usar apenas o nome da empresa como nome do remetente no cabeçalho do e-mail."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure o nome da sua empresa",
+ "BUTTON_TEXT": "Configure o nome da sua empresa",
"PLACEHOLDER": "Insira o nome da sua empresa",
"SAVE_BUTTON_TEXT": "Guardar"
}
@@ -589,8 +592,10 @@
"DISABLED": "Desativado"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Ativado",
- "DISABLED": "Desativado"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Ativar"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Ativar/Desativar exibição do nome do agente no e-mail. Se estiver desativado, exibirá o nome da empresa",
"ENABLE_CONTINUITY_VIA_EMAIL": "Ativar continuidade das conversas por e-mail",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "As conversas irão continuar por e-mail se o endereço de e-mail do contacto estiver disponível.",
- "LOCK_TO_SINGLE_CONVERSATION": "Bloquear conversa única",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Ativar ou desativar múltiplas conversas para o mesmo contacto nesta caixa de entrada",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Configurações da caixa de entrada",
"INBOX_UPDATE_SUB_TEXT": "Atualize as suas configurações da caixa de entrada",
"AUTO_ASSIGNMENT_SUB_TEXT": "Ativar ou desativar a atribuição automática de novas conversas aos agentes adicionados a essa caixa de entrada.",
@@ -758,6 +775,7 @@
"LABEL": "Centro de suporte",
"PLACEHOLDER": "Selecione centro de suporte",
"SELECT_PLACEHOLDER": "Selecione centro de suporte",
+ "NONE": "Nenhuma",
"REMOVE": "Remover centro de suporte",
"SUB_TEXT": "Associe um centro de suporte à caixa de entrada"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Por favor, insira um valor maior que 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limitar o número máximo de conversas desta caixa de entrada que pode ser atribuído automaticamente a um agente"
},
+ "ASSIGNMENT": {
+ "TITLE": "Atribuição da conversa",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Ativa",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancelar",
+ "CONFIRM_DELETE": "Excluir",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reautorizar",
"SUBTITLE": "A sua conexão ao Facebook expirou, por favor, reconecte a página para poder continuar a utilizar os serviços",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Voltar"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Regra do inquérito",
"DESCRIPTION_PREFIX": "Enviar o inquérito se a conversa",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "selecionar etiquetas"
},
"NOTE": "Nota: Os inquéritos CSAT são enviados apenas uma vez por conversa",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "Definições de CSAT atualizadas com sucesso",
"ERROR_MESSAGE": "Não foi possível atualizar as definições de CSAT. Por favor, tente novamente mais tarde."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Mensagem indisponível para os visitantes",
"TOGGLE_HELP": "Permitir a disponibilidade de negócios mostrará as horas disponíveis no widget de live-chat, mesmo que todos os agentes estejam offline. Em caso de contactos fora do horário disponível, os clientes podem ser avisados com uma mensagem e um formulário de pré-chat.",
"DAY": {
+ "DAY": "Dia",
+ "AVAILABILITY": "Disponibilidade",
+ "HOURS": "Horas",
"ENABLE": "Ativar a disponibilidade para este dia",
"UNAVAILABLE": "Indisponível",
- "HOURS": "horas",
"VALIDATION_ERROR": "A hora de abertura deve ser anterior à hora de encerramento.",
"CHOOSE": "Escolher"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Dentro de um dia"
},
"WIDGET_COLOR_LABEL": "Cor do widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Posição do balão de widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "Tipo de balão de widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tipo:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Fale connosco",
- "LABEL": "Título do inicializador do balão de widget",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Fale connosco"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Padrão",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Normalmente respondemos em poucos minutos",
diff --git a/app/javascript/dashboard/i18n/locale/pt/integrationApps.json b/app/javascript/dashboard/i18n/locale/pt/integrationApps.json
index 4d1d90717..64f22381b 100644
--- a/app/javascript/dashboard/i18n/locale/pt/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/pt/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "A procurar integrações",
"NO_HOOK_CONFIGURED": "Não há integrações {integrationId} configuradas nesta conta.",
"HEADER": "Aplicações",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Ativado",
"DISABLED": "Desativado"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "A procurar hooks de integração",
"INBOX": "Caixa de entrada",
+ "ACTIONS": "Ações",
"DELETE": {
"BUTTON_TEXT": "Excluir"
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/integrations.json b/app/javascript/dashboard/i18n/locale/pt/integrations.json
index 59aea1d3b..ef4a96329 100644
--- a/app/javascript/dashboard/i18n/locale/pt/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/pt/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "O Chatwoot integra-se com várias ferramentas e serviços para melhorar a eficiência da sua equipa. Explore a lista abaixo para configurar as suas aplicações favoritas. ",
"LEARN_MORE": "Saber mais sobre integrações",
"LOADING": "A procurar integrações",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Capitão não está ativo na sua conta.",
"CLICK_HERE_TO_CONFIGURE": "Clique aqui para configurar",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Eventos subscritos",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancelar",
"DESC": "Os eventos Webhook fornecem informações em tempo real sobre o que está a acontecer na sua conta Chatwoot. Por favor, insira um URL válido para configurar uma chamada de retorno.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Excluir",
"DELETE_CONFIRMATION": {
"TITLE": "Excluir a integração",
@@ -145,7 +160,29 @@
"EXPAND": "Expandir",
"MAKE_FRIENDLY": "Alterar o tom de mensagem para amigável",
"MAKE_FORMAL": "Usar tom formal",
- "SIMPLIFY": "Simplificar"
+ "SIMPLIFY": "Simplificar",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profissional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Amigável"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Conteúdo do rascunho",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Apps de dashboard
Apps de dashboard permitem que as organizações incorporem uma aplicação dentro do dashboard do Chatwoot para fornecer o contexto aos agentes de suporte ao cliente. Este recurso permite-lhe criar uma aplicação independente e incorporá-la dentro do dashboard para fornecer informações de utilizador, os seus pedidos ou o seu histórico de pagamentos.
Quando a sua aplicação é incorporada usando o dashboard do Chatwoot, a sua aplicação irá obter o contexto da conversa e do contato como um evento de janela. Implemente um listener para o evento de mensagem na sua página para receber o contexto.
Para adicionar uma nova app ao dashboard, clique no botão 'Adicionar nova app ao dashboard'.
",
"DESCRIPTION": "Apps de dashboard permitem que as organizações incorporem um aplicação dentro do dashboard do Chatwoot para fornecer o contexto aos agentes de suporte ao cliente. Este recurso permite-lhe criar uma aplicação independente e incorporá-la dentro do dashboard para fornecer informações de utilizador, os seus pedidos ou o seu histórico de pagamentos.",
"LEARN_MORE": "Saber mais sobre apps de dashboard",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Não há apps de dashboard configuradas nesta conta.",
"LOADING": "A obter apps de dashboard...",
"TABLE_HEADER": {
"NAME": "Nome:",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Ações"
},
"EDIT_TOOLTIP": "Editar app",
"DELETE_TOOLTIP": "Apagar app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Criar/Vincular problema linear",
"LOADING": "A procurar problemas lineares...",
"LOADING_ERROR": "Houve um erro ao procurar problemas lineares, por favor, tente novamente",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Noção",
"DELETE": {
"TITLE": "Tem a certeza que pretende apagar a integração Notion?",
"MESSAGE": "Apagar esta integração removerá o acesso ao seu workspace Notion e encerrará todas as funcionalidades relacionadas.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "Pode alterar ou cancelar o plano a qualquer momento"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Por favor, entre em contato com o administrador para atualização."
},
diff --git a/app/javascript/dashboard/i18n/locale/pt/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/pt/labelsMgmt.json
index 3a7df368d..8bbb99538 100644
--- a/app/javascript/dashboard/i18n/locale/pt/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "A procurar etiquetas",
"DESCRIPTION": "As etiquetas ajudam-no a categorizar e priorizar conversas e leads. Pode atribuir uma etiqueta a uma conversa ou entrar em contacto usando o painel lateral.",
"LEARN_MORE": "Saber mais sobre etiquetas",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Procurar etiquetas...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Não existem itens correspondentes à sua pesquisa",
"LIST": {
"404": "Não há etiquetas disponíveis nesta conta.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Nome:",
"DESCRIPTION": "Descrição",
- "COLOR": "Cor"
+ "COLOR": "Cor",
+ "ACTION": "Ações"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/pt/macros.json b/app/javascript/dashboard/i18n/locale/pt/macros.json
index 95c132fe7..2676b53d0 100644
--- a/app/javascript/dashboard/i18n/locale/pt/macros.json
+++ b/app/javascript/dashboard/i18n/locale/pt/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "Uma macro é um conjunto de ações guardadas que ajudam os agentes de apoio ao cliente a completarem tarefas facilmente. Os agentes podem definir um conjunto de ações, como adicionar uma etiqueta a uma conversa, enviar uma transcrição de e-mail, atualizar um atributo personalizado, etc., e, posteriormente, executarem essas ações com um único clique.",
"LEARN_MORE": "Saber mais sobre macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Adicionar nova macro",
"HEADER_BTN_TXT_SAVE": "Guardar macro",
"LOADING": "A procurar macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Ocorreu um erro! Por favor, tente novamente",
"ORDER_INFO": "As macros serão executadas pela ordem em que adicionar as suas ações. Pode reorganizá-las arrastando-as pelo identificador ao lado de cada nó.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Nome:",
"CREATED BY": "Criada por",
"LAST_UPDATED_BY": "Ultima atualização por",
- "VISIBILITY": "Visibilidade"
+ "VISIBILITY": "Visibilidade",
+ "ACTIONS": "Ações"
},
"404": "Nenhuma macro encontrada"
},
diff --git a/app/javascript/dashboard/i18n/locale/pt/mfa.json b/app/javascript/dashboard/i18n/locale/pt/mfa.json
index 2fb38bcdf..f72c7120d 100644
--- a/app/javascript/dashboard/i18n/locale/pt/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/pt/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/pt/report.json b/app/javascript/dashboard/i18n/locale/pt/report.json
index 43b97d46d..a58b672da 100644
--- a/app/javascript/dashboard/i18n/locale/pt/report.json
+++ b/app/javascript/dashboard/i18n/locale/pt/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversas",
"LOADING_CHART": "A carregar dados...",
"NO_ENOUGH_DATA": "Não recebemos pontos de dados suficientes para gerar o relatório. Por favor, tente novamente mais tarde.",
- "DOWNLOAD_AGENT_REPORTS": "Descarregar relatórios de agentes",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Baixar relatórios de conversas",
"DATA_FETCHING_FAILED": "Não foi possível obter dados. Por favor, tente mais tarde.",
"SUMMARY_FETCHING_FAILED": "Não foi possível obter o resumo. Por favor, tente mais tarde.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Visão geral de agentes",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "A carregar dados...",
"NO_ENOUGH_DATA": "Não recebemos pontos de dados suficientes para gerar o relatório. Por favor, tente novamente mais tarde.",
"DOWNLOAD_AGENT_REPORTS": "Descarregar relatórios de agentes",
"FILTER_DROPDOWN_LABEL": "Selecionar agente",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Procurar agentes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Não recebemos pontos de dados suficientes para gerar o relatório. Por favor, tente novamente mais tarde.",
"DOWNLOAD_LABEL_REPORTS": "Descarregar relatórios de etiquetas",
"FILTER_DROPDOWN_LABEL": "Selecionar etiqueta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Procurar etiquetas"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Escolher caixa de entrada",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Visão geral da equipa",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "A carregar dados...",
"NO_ENOUGH_DATA": "Não recebemos pontos de dados suficientes para gerar o relatório. Por favor, tente novamente mais tarde.",
"DOWNLOAD_TEAM_REPORTS": "Descarregar relatórios de equipa",
"FILTER_DROPDOWN_LABEL": "Selecionar equipa",
+ "FILTERS": {
+ "ADD_FILTER": "Adicionar filtro",
+ "CLEAR_ALL": "Limpar tudo",
+ "NO_FILTER": "Sem filtros disponíveis",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Procurar equipas"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Relatórios CSAT",
- "NO_RECORDS": "Não há respostas de questionários CSAT disponíveis.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Descarregar relatórios CSAT",
"DOWNLOAD_FAILED": "Falha ao descarregar os relatórios CSAT",
"FILTERS": {
+ "ADD_FILTER": "Adicionar filtro",
+ "CLEAR_ALL": "Limpar tudo",
+ "NO_FILTER": "Sem filtros disponíveis",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Procurar agentes",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Procurar equipas",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Escolher agentes"
+ "LABEL": "Agente"
+ },
+ "INBOXES": {
+ "LABEL": "Caixa de entrada"
+ },
+ "TEAMS": {
+ "LABEL": "Equipa"
+ },
+ "RATINGS": {
+ "LABEL": "Avaliar"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contacto",
- "AGENT_NAME": "Agente atribuído",
+ "AGENT_NAME": "Agente",
"RATING": "Classificação",
- "FEEDBACK_TEXT": "Comentário de feedback"
- }
+ "FEEDBACK_TEXT": "Comentário de feedback",
+ "CONVERSATION": "Conversa",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total de respostas",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Taxa de resposta",
"TOOLTIP": "Número total de respostas / Número total de mensagens de questionários CSAT enviadas * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Guardar",
+ "CANCEL": "Cancelar",
+ "SAVING": "A guardar...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Fazer upgrade agora",
+ "CANCEL_ANYTIME": "Pode alterar ou cancelar o plano a qualquer momento"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/pt/settings.json b/app/javascript/dashboard/i18n/locale/pt/settings.json
index 561e95409..34c16c5d4 100644
--- a/app/javascript/dashboard/i18n/locale/pt/settings.json
+++ b/app/javascript/dashboard/i18n/locale/pt/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "BAIXAR",
"UPLOADING": "A carregar...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Esta história já não está disponível."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Esta história já não está disponível.",
+ "INSTAGRAM_STORY_REPLY": "Respondeu à sua história:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Veja no mapa"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Ler documentos",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Características",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Cobrança",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Pesquisar atributos"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolver conversa",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolver conversa",
+ "CANCEL": "Cancelar"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Sim",
+ "NO": "Não"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Fazer upgrade agora",
+ "CANCEL_ANYTIME": "Pode alterar ou cancelar o plano a qualquer momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Por favor, entre em contato com o administrador para atualização."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Não conseguimos encontrar nenhuma conta do Chatwoot. Por favor, crie uma nova conta para continuar.",
"NEW_ACCOUNT": "Nova conta",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancelar"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/pt/signup.json b/app/javascript/dashboard/i18n/locale/pt/signup.json
index 14aaa883c..f293b3969 100644
--- a/app/javascript/dashboard/i18n/locale/pt/signup.json
+++ b/app/javascript/dashboard/i18n/locale/pt/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Criar uma conta",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Cadastrar",
"TESTIMONIAL_HEADER": "Tudo que precisa é um passo para avançar",
"TESTIMONIAL_CONTENT": "Está a um passo de fidelizar os seus clientes, mantê-los e encontrar novos.",
diff --git a/app/javascript/dashboard/i18n/locale/pt/sla.json b/app/javascript/dashboard/i18n/locale/pt/sla.json
index dfd56315c..ac6a79de6 100644
--- a/app/javascript/dashboard/i18n/locale/pt/sla.json
+++ b/app/javascript/dashboard/i18n/locale/pt/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Criar uma nova Política de SLA",
"DESCRIPTION": "Service Level Agreements (SLA) são contratos que definem expectativas claras entre a sua equipa e os clientes. Estabelecem normas para tempos de resposta e de resolução, criando um quadro de responsabilização e garantindo uma experiência coerente e de qualidade.",
"LEARN_MORE": "Saiba mais sobre SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "A carregar SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade para criar SLAs",
"AVAILABLE_ON": "O recurso SLA apenas está disponível nos planos Business e Enterprise.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "Não há SLAs disponíveis nesta conta.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Empresa P0",
"DESC_1": "Questões levantadas pelos clientes empresariais que requerem atenção imediata.",
"TITLE_2": "Empresa P1",
"DESC_2": "Questões levantadas pelos clientes empresariais, que têm de ser rapidamente reconhecidas."
},
- "BUSINESS_HOURS_ON": "Horário comercial ativado",
- "BUSINESS_HOURS_OFF": "Horário comercial desativado",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "Limite de tempo da primeira resposta",
"NRT": "Limite de tempo da próxima resposta",
diff --git a/app/javascript/dashboard/i18n/locale/pt/snooze.json b/app/javascript/dashboard/i18n/locale/pt/snooze.json
new file mode 100644
index 000000000..eee4ea309
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutos",
+ "HOUR": "hour",
+ "HOURS": "horas",
+ "DAY": "dia",
+ "DAYS": "dias",
+ "WEEK": "semana",
+ "WEEKS": "weeks",
+ "MONTH": "mês",
+ "MONTHS": "months",
+ "YEAR": "ano",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "amanhã",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "próxima semana",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "semana",
+ "DAY": "dia"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt/teamsSettings.json b/app/javascript/dashboard/i18n/locale/pt/teamsSettings.json
index b50283cd7..9fc2ad793 100644
--- a/app/javascript/dashboard/i18n/locale/pt/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pt/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Procurar equipas...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Não há equipas configuradas para esta conta.",
"EDIT_TEAM": "Editar equipa",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Não foi possível guardar os detalhes da equipa. Tente novamente."
},
"AGENTS": {
- "AGENT": "AGENTE",
- "EMAIL": "E-mail:",
+ "AGENT": "Agente",
+ "EMAIL": "E-mail",
"BUTTON_TEXT": "Adicionar agentes",
"ADD_AGENTS": "Acrescentando Agentes à sua equipa...",
"SELECT": "escolher",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/agentBots.json b/app/javascript/dashboard/i18n/locale/pt_BR/agentBots.json
index 6292cee86..8c1663bd9 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Carregando Editor...",
"DESCRIPTION": "Robôs agentes são como os membros mais fabulosos de seu time. Eles podem lidar com as pequenas coisas, assim você pode focar nas coisas que importam. Dê uma chance a eles. Você pode gerenciar seus robôs a partir desta página ou criar novos usando o botão 'Criar Robô'.",
"LEARN_MORE": "Aprenda sobre os robôs agentes",
+ "COUNT": "{n} robô | {n} robôs",
+ "SEARCH_PLACEHOLDER": "Pesquisar robôs...",
+ "NO_RESULTS": "Nenhum robô encontrado correspondente à sua busca",
"GLOBAL_BOT": "Robô do sistema",
"GLOBAL_BOT_BADGE": "Sistema",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Buscando robôs...",
"TABLE_HEADER": {
"DETAILS": "Detalhe do Robô",
- "URL": "URL do Webhook"
+ "URL": "URL do Webhook",
+ "ACTIONS": "Ações"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json
index 87c112cec..7a7dc8c68 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrador",
"AGENT": "Agente"
},
+ "COUNT": "{n} agente | {n} agentes",
"LIST": {
"404": "Não existem agentes associados a esta conta",
"TITLE": "Gerenciar agentes de seu time",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
}
},
+ "SEARCH_PLACEHOLDER": "Pesquisar agentes...",
+ "NO_RESULTS": "Nenhum agente encontrado correspondente à sua busca",
"SEARCH": {
"NO_RESULTS": "Nenhum resultado encontrado."
},
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/attributesMgmt.json
index 71530e68d..751175d9c 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Buscando atributos personalizados",
"DESCRIPTION": "Um atributo personalizado controla detalhes adicionais sobre seus contatos ou conversas — como o plano de assinatura ou a data de sua primeira compra. Você pode adicionar diferentes tipos de atributos personalizados, como texto, listas ou números, para capturar as informações específicas que você precisa.",
"LEARN_MORE": "Saiba mais sobre atributos personalizados",
+ "COUNT": "{n} atributo | {n} atributos",
+ "SEARCH_PLACEHOLDER": "Pesquisar atributos...",
+ "NO_RESULTS": "Nenhum atributo encontrado correspondente à sua busca",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversas",
"CONTACT": "Contato"
@@ -54,15 +57,19 @@
"IN_VALID": "Chave inválida"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
+ "LABEL": "Expressão Regex",
"PLACEHOLDER": "Por favor, insira o padrão de expressão regular para atributo personalizado. (Opcional)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
+ "LABEL": "Orientação de validação Regex",
"PLACEHOLDER": "Por favor, insira uma dica para o padrão de expressão regular. (Opcional)"
},
"ENABLE_REGEX": {
"LABEL": "Habilitar validação do regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pré-chat",
+ "RESOLUTION": "Resolução"
}
},
"API": {
@@ -119,11 +126,11 @@
"NOT_FOUND": "Não há atributos personalizados configurados"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
+ "LABEL": "Expressão Regex",
"PLACEHOLDER": "Por favor, insira o padrão de expressão regular para atributo personalizado. (Opcional)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
+ "LABEL": "Orientação de validação Regex",
"PLACEHOLDER": "Por favor, insira uma dica para o padrão de expressão regular. (Opcional)"
},
"ENABLE_REGEX": {
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/auditLogs.json b/app/javascript/dashboard/i18n/locale/pt_BR/auditLogs.json
index 51996b6c7..7c71eed03 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/auditLogs.json
@@ -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})"
},
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/automation.json b/app/javascript/dashboard/i18n/locale/pt_BR/automation.json
index 90bd1bcc8..d0b98c8c0 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/automation.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automação",
"DESCRIPTION": "A automação pode substituir e simplificar processos existentes que requerem esforço manual, como a adição de etiquetas e a atribuição de conversas ao agente mais adequado. Isso permite que o time se concentre em seus pontos fortes e reduza o tempo gasto em tarefas rotineiras.",
"LEARN_MORE": "Aprenda mais sobre automação",
- "HEADER_BTN_TXT": "Adicionar regra de automação",
+ "COUNT": "{n} automação | {n} automações",
+ "HEADER_BTN_TXT": "Criar Automação",
"LOADING": "Buscando regras de automação",
+ "SEARCH_PLACEHOLDER": "Pesquisar regras de automação...",
+ "NO_RESULTS": "Nenhuma regra de automação encontrada correspondente à sua busca",
"ADD": {
"TITLE": "Adicionar regra de automação",
"SUBMIT": "Criar",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Nome",
- "DESCRIPTION": "Descrição",
"ACTIVE": "Ativo",
- "CREATED_ON": "Criado em"
+ "CREATED_ON": "Criado em",
+ "ACTIONS": "Ações"
},
"404": "Nenhuma regra de automação encontrada"
},
@@ -156,7 +159,8 @@
"ADD_PRIVATE_NOTE": "Adicionar uma Nota Privada",
"CHANGE_PRIORITY": "Alterar Prioridade",
"ADD_SLA": "Adicionar SLA",
- "OPEN_CONVERSATION": "Abrir conversa"
+ "OPEN_CONVERSATION": "Abrir conversa",
+ "PENDING_CONVERSATION": "Marcar conversa como pendente"
},
"MESSAGE_TYPES": {
"INCOMING": "Mensagem Recebida",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json b/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json
index 2f17d25a0..f66223231 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Status da conversa atualizado com sucesso.",
"UPDATE_FAILED": "Falha ao atualizar conversas. Por favor, tente novamente."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Não é possível resolver a conversa devido à ausência de atributos obrigatórios",
+ "PARTIAL_SUCCESS": "Algumas conversas exigem atributos obrigatórios antes da resolução e foram ignoradas"
+ },
"LABELS": {
"ASSIGN_LABELS": "Atribuir rótulo",
"NO_LABELS_FOUND": "Nenhuma etiqueta encontrada",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/cannedMgmt.json
index 0f73cfd16..e2809f511 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Respostas Prontas",
"LEARN_MORE": "Saiba mais sobre respostas prontas",
"DESCRIPTION": "Respostas prontas são modelos de resposta pré-escritas que te ajudam a responder rapidamente a uma conversa. Os agentes podem digitar o caractere ' /' seguido pelo atalho para inserir uma resposta pronta durante uma conversa. ",
+ "COUNT": "{n} resposta pronta | {n} respostas prontas",
"HEADER_BTN_TXT": "Adicionar resposta pronta",
"LOADING": "Buscando respostas prontas...",
+ "SEARCH_PLACEHOLDER": "Pesquisar respostas prontas...",
+ "NO_RESULTS": "Nenhuma resposta pronta encontrada correspondente à sua busca",
"SEARCH_404": "Não há itens correspondentes a esta consulta.",
"LIST": {
"404": "Não há respostas prontas disponíveis nesta conta.",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json b/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json
index 30364e366..ff4711143 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Resposta pendente: Curtas primeiro"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Prioridade: Maior primeiro, Criação: Mais antiga primeiro"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/companies.json b/app/javascript/dashboard/i18n/locale/pt_BR/companies.json
index 56f6856bd..050919739 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/companies.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/companies.json
@@ -7,11 +7,11 @@
"NAME": "Nome",
"DOMAIN": "Domínio",
"CREATED_AT": "Criado em",
- "CONTACTS_COUNT": "Contacts count"
+ "CONTACTS_COUNT": "Quantidade de contatos"
}
},
"ORDER": {
- "LABEL": "Order",
+ "LABEL": "Ordem",
"OPTIONS": {
"ASCENDING": "Crescente",
"DESCENDING": "Decrescente"
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/components.json b/app/javascript/dashboard/i18n/locale/pt_BR/components.json
index 748b9eab5..8c46d6e5e 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/components.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/components.json
@@ -42,7 +42,7 @@
},
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Saiba mais",
- "WATCH_VIDEO": "Watch video"
+ "WATCH_VIDEO": "Assistir ao vídeo"
},
"DURATION_INPUT": {
"MINUTES": "Minutos",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/contact.json b/app/javascript/dashboard/i18n/locale/pt_BR/contact.json
index 821a79fe7..ad519829e 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/contact.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/contact.json
@@ -198,7 +198,7 @@
"CONTACTS_PAGE": {
"LIST": {
"TABLE_HEADER": {
- "SOCIAL_PROFILES": "Social Profiles"
+ "SOCIAL_PROFILES": "Perfis Sociais"
}
}
},
@@ -344,7 +344,7 @@
"LABEL": "Classificar por",
"OPTIONS": {
"NAME": "Nome",
- "EMAIL": "e-mail",
+ "EMAIL": "E-mail",
"PHONE_NUMBER": "Número de telefone",
"COMPANY": "Empresa",
"COUNTRY": "País/região",
@@ -386,7 +386,7 @@
},
"FILTER": {
"NAME": "Nome",
- "EMAIL": "e-mail",
+ "EMAIL": "E-mail",
"PHONE_NUMBER": "Número de telefone",
"IDENTIFIER": "Identificador",
"COUNTRY": "País/região",
@@ -463,6 +463,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Adicionar Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Adicionar Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Adicionar TikTok"
},
@@ -579,26 +582,27 @@
"SEARCH_EMPTY_STATE_TITLE": "Nenhum contato corresponde à sua pesquisa 🔍",
"LIST_EMPTY_STATE_TITLE": "Não há contatos disponíveis nesta visualização 📋",
"ACTIVE_EMPTY_STATE_TITLE": "Nenhum contato está ativo no momento 🌙"
- }
+ },
+ "LOAD_MORE": "Carregar mais"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Atribuir rótulo",
"ASSIGN_LABELS_SUCCESS": "Rótulos atribuídos com sucesso.",
- "ASSIGN_LABELS_FAILED": "Failed to assign labels",
- "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
- "NO_LABELS_FOUND": "No labels available yet.",
+ "ASSIGN_LABELS_FAILED": "Falha ao atribuir etiquetas",
+ "DESCRIPTION": "Selecione as etiquetas que deseja adicionar aos contatos selecionados.",
+ "NO_LABELS_FOUND": "Nenhuma etiqueta disponível ainda.",
"SELECTED_COUNT": "{count} selecionado",
- "CLEAR_SELECTION": "Clear selection",
+ "CLEAR_SELECTION": "Limpar seleção",
"SELECT_ALL": "Selecionar todos ({count})",
"DELETE_CONTACTS": "Excluir",
- "DELETE_SUCCESS": "Contacts deleted successfully.",
- "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_SUCCESS": "Contatos excluídos com sucesso.",
+ "DELETE_FAILED": "Falha ao excluir os contatos.",
"DELETE_DIALOG": {
- "TITLE": "Delete selected contacts",
- "SINGULAR_TITLE": "Delete selected contact",
- "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
- "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
- "CONFIRM_MULTIPLE": "Delete contacts",
+ "TITLE": "Excluir os contatos selecionados",
+ "SINGULAR_TITLE": "Excluir o contato selecionado",
+ "DESCRIPTION": "Isso excluirá permanentemente {count} contatos selecionados. Esta ação não pode ser desfeita.",
+ "SINGULAR_DESCRIPTION": "Isso excluirá permanentemente o contato selecionado. Esta ação não pode ser desfeita.",
+ "CONFIRM_MULTIPLE": "Excluir contatos",
"CONFIRM_SINGLE": "Excluir contato"
}
},
@@ -615,7 +619,7 @@
"NO_INBOX_ALERT": "Não há caixas de entrada disponíveis para iniciar uma conversa com este contato.",
"CONTACT_SELECTOR": {
"LABEL": "Para:",
- "TAG_INPUT_PLACEHOLDER": "Pesquisar um contato com o nome, e-mail ou número de telefone",
+ "TAG_INPUT_PLACEHOLDER": "Digite pelo menos 2 caracteres para pesquisar por nome, e-mail ou número de telefone",
"CONTACT_CREATING": "Criando contato..."
},
"INBOX_SELECTOR": {
@@ -626,9 +630,9 @@
"SUBJECT_LABEL": "Assunto:",
"SUBJECT_PLACEHOLDER": "Digite o assunto do seu e-mail aqui",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Pesquisar por um contato com seu endereço de e-mail",
+ "CC_PLACEHOLDER": "Digite pelo menos 2 caracteres para pesquisar por e-mail",
"BCC_LABEL": "CCO:",
- "BCC_PLACEHOLDER": "Pesquisar por um contato com seu endereço de e-mail",
+ "BCC_PLACEHOLDER": "Digite pelo menos 2 caracteres para pesquisar por e-mail",
"BCC_BUTTON": "CCO"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json b/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json
index 784f797ef..711e3b909 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json
@@ -32,7 +32,7 @@
"LOADING_CONVERSATIONS": "Carregando conversas",
"CANNOT_REPLY": "Você não pode responder porque",
"24_HOURS_WINDOW": "Restrições de janela de mensagem de 24 horas",
- "48_HOURS_WINDOW": "Restrição de janela de mensagem de 48 horas",
+ "48_HOURS_WINDOW": "Restrição da janela de mensagens de 48 horas",
"API_HOURS_WINDOW": "Você só pode responder a esta conversa em {hours} horas",
"NOT_ASSIGNED_TO_YOU": "Esta conversa não está atribuída a você. Gostaria de atribuir esta conversa a você mesmo?",
"ASSIGN_TO_ME": "Atribuir a mim",
@@ -66,6 +66,7 @@
"UNSUPPORTED_MESSAGE_WHATSAPP": "Esta mensagem não é suportada. Você pode ver esta mensagem no aplicativo do WhatsApp.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Esta mensagem não é suportada. Você pode ver esta mensagem no aplicativo Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Esta mensagem não é suportada. Você pode ver esta mensagem no aplicativo do Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "Esta mensagem não é compatível. Você pode visualizá-la no aplicativo do TikTok.",
"SUCCESS_DELETE_MESSAGE": "Mensagem excluída com sucesso",
"FAIL_DELETE_MESSSAGE": "Não foi possível excluir a mensagem! Tente novamente",
"NO_RESPONSE": "Sem resposta",
@@ -178,6 +179,10 @@
"SUCCESFUL": "Etiqueta #{labelName} atribuída para a conversa {conversationId}",
"FAILED": "Não foi possível atribuir etiqueta. Por favor, tente novamente."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Etiqueta #{labelName} removida da conversa com id {conversationId}",
+ "FAILED": "Não foi possível remover a etiqueta. Por favor, tente novamente."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Time {team} atribuído para o id de conversa {conversationId}",
"FAILED": "Não foi possível atribuir time. Por favor, tente novamente."
@@ -194,9 +199,13 @@
"SIGNATURE_LABEL_BOTTOM_TOOLTIP": "A assinatura será enviada no final da mensagem",
"MSG_INPUT": "Shift + enter para nova linha. Digite '/' para selecionar uma Resposta Pronta.",
"PRIVATE_MSG_INPUT": "A mensagem será visível apenas para agentes",
+ "MESSAGING_RESTRICTED": "Você não pode responder esta conversa",
+ "MESSAGING_RESTRICTED_WHATSAPP": "Você só pode responder usando uma mensagem de modelo devido à restrição da janela de 24 horas",
+ "MESSAGING_RESTRICTED_API": "Você só pode responder usando uma mensagem de template devido à restrição da janela de mensagens",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "A assinatura da mensagem não está configurada. Por favor, configure-a nas configurações do perfil.",
+ "COPILOT_MSG_INPUT": "Forneça instruções adicionais ao Copiloto ou pergunte algo mais... Pressione Enter para enviar",
"CLICK_HERE": "Clique aqui para atualizar",
- "WHATSAPP_TEMPLATES": "Templates do Whatsapp",
+ "WHATSAPP_TEMPLATES": "Modelos do Whatsapp",
"ANNOUNCEMENT_MODE_RESTRICTED": "Apenas administradores têm permissão para enviar mensagens neste grupo",
"GROUP_LEFT_RESTRICTED": "Você não faz mais parte deste grupo e não pode enviar mensagens nele",
"GROUPS_DISABLED_RESTRICTED": "As mensagens de grupo estão desativadas — ative gratuitamente"
@@ -218,7 +227,7 @@
"DRAG_DROP": "Arraste e solte aqui para anexar",
"START_AUDIO_RECORDING": "Iniciar gravação de áudio",
"STOP_AUDIO_RECORDING": "Parar gravação de áudio",
- "": "",
+ "COPILOT_THINKING": "O Copiloto está pensando",
"EMAIL_HEAD": {
"TO": "Para",
"ADD_BCC": "Adicionar cco",
@@ -261,10 +270,13 @@
"SUCCESS_DELETE_CONVERSATION": "Conversa excluída com sucesso",
"FAIL_DELETE_CONVERSATION": "Não foi possível excluir a conversa! Tente novamente",
"FILE_SIZE_LIMIT": "O arquivo excede os {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB do limite para anexos",
+ "FILE_TYPE_NOT_SUPPORTED": "O tipo de arquivo {fileName} não é suportado nesta conversa",
"MESSAGE_ERROR": "Não foi possível enviar esta mensagem, por favor, tente novamente mais tarde",
"SENT_BY": "Enviado por:",
"BOT": "Robôs",
"WHATSAPP": "WhatsApp",
+ "NATIVE_APP": "Aplicativo nativo",
+ "NATIVE_APP_ADVISORY": "Esta mensagem foi enviada a partir do aplicativo nativo. Responda pelo Chatwoot para manter a janela de mensagens ativa.",
"SEND_FAILED": "Não foi possível enviar a mensagem! Tente novamente",
"TRY_AGAIN": "tentar novamente",
"ASSIGNMENT": {
@@ -327,6 +339,7 @@
"CANCEL": "Cancelar",
"SEND_EMAIL_SUCCESS": "A transcrição do chat foi enviada com sucesso",
"SEND_EMAIL_ERROR": "Ocorreu um erro, por favor tente novamente",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "A transcrição de e-mail não está disponível no seu plano atual. Por favor, atualize para usar este recurso.",
"FORM": {
"SEND_TO_CONTACT": "Envie a transcrição para o cliente",
"SEND_TO_AGENT": "Envie a transcrição para o agente designado",
@@ -383,25 +396,25 @@
"PREVIOUS_CONVERSATION": "Conversas anteriores",
"MACROS": "Macros",
"LINEAR_ISSUES": "Problemas do Linear vinculados",
- "SHOPIFY_ORDERS": "Shopify Orders"
+ "SHOPIFY_ORDERS": "Pedidos do Shopify"
},
"SHOPIFY": {
- "ORDER_ID": "Order #{id}",
- "ERROR": "Error loading orders",
- "NO_SHOPIFY_ORDERS": "No orders found",
+ "ORDER_ID": "Pedido #{id}",
+ "ERROR": "Erro ao carregar pedidos",
+ "NO_SHOPIFY_ORDERS": "Nenhum pedido encontrado",
"FINANCIAL_STATUS": {
"PENDING": "Pendentes",
- "AUTHORIZED": "Authorized",
- "PARTIALLY_PAID": "Partially Paid",
- "PAID": "Paid",
- "PARTIALLY_REFUNDED": "Partially Refunded",
- "REFUNDED": "Refunded",
- "VOIDED": "Voided"
+ "AUTHORIZED": "Autorizado",
+ "PARTIALLY_PAID": "Parcialmente pago",
+ "PAID": "Pago",
+ "PARTIALLY_REFUNDED": "Parcialmente Reembolsado",
+ "REFUNDED": "Reembolsado",
+ "VOIDED": "Anulado"
},
"FULFILLMENT_STATUS": {
- "FULFILLED": "Fulfilled",
- "PARTIALLY_FULFILLED": "Partially Fulfilled",
- "UNFULFILLED": "Unfulfilled"
+ "FULFILLED": "Concluído",
+ "PARTIALLY_FULFILLED": "Parcialmente Concluído",
+ "UNFULFILLED": "Não concluído"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/customRole.json b/app/javascript/dashboard/i18n/locale/pt_BR/customRole.json
index 9632739e4..954a906de 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Funções Personalizadas",
"LEARN_MORE": "Aprenda mais sobre funções personalizadas",
"DESCRIPTION": "Funções personalizadas são funções criadas pelo proprietário ou administrador da conta. Essas funções podem ser atribuídas a agentes para definir seu acesso e permissões dentro da conta. Funções personalizadas podem ser criadas com permissões e níveis de acesso específicos para atender aos requisitos da organização.",
+ "COUNT": "{n} função personalizada | {n} funções personalizadas",
"HEADER_BTN_TXT": "Adicionar função personalizada",
"LOADING": "Buscando funções personalizadas...",
+ "SEARCH_PLACEHOLDER": "Pesquisar funções personalizadas...",
+ "NO_RESULTS": "Nenhuma função personalizada encontrada correspondente à sua busca",
"SEARCH_404": "Não há itens correspondentes a esta consulta.",
"PAYWALL": {
"TITLE": "Atualize para criar funções personalizadas",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/datePicker.json b/app/javascript/dashboard/i18n/locale/pt_BR/datePicker.json
index 1cda53e77..e08507c5c 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Período anterior",
+ "NEXT_PERIOD": "Próximo período",
+ "WEEK_NUMBER": "Semana #{weekNumber}",
"APPLY_BUTTON": "Aplicar",
"CLEAR_BUTTON": "Limpar",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Últimos 3 meses",
"LAST_6_MONTHS": "Últimos 6 meses",
"LAST_YEAR": "Ano passado",
+ "THIS_WEEK": "Esta semana",
+ "MONTH_TO_DATE": "Este mês",
"CUSTOM_RANGE": "Intervalo de tempo personalizado"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/general.json b/app/javascript/dashboard/i18n/locale/pt_BR/general.json
index c62e1ae56..0a97e6220 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/general.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Fechar",
"BETA": "Beta",
- "BETA_DESCRIPTION": "Este recurso está em fase BETA e deve sofre alterações assim que Nós melhorarmos ele."
+ "BETA_DESCRIPTION": "Este recurso está em fase BETA e deve sofre alterações assim que Nós melhorarmos ele.",
+ "ACCEPT": "Aceitar",
+ "DISCARD": "Descartar",
+ "PREFERRED": "Preferido"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Sim",
+ "NO": "Não"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json b/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json
index 28bdffdd9..0376c205f 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Pesquisar ou pular para",
+ "SNOOZE_PLACEHOLDER": "Digite um horário, por exemplo: amanhã, 2 horas, próxima sexta-feira, 15 de jan...",
"SECTIONS": {
"GENERAL": "Geral",
"REPORTS": "Relatórios",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json b/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json
index 572b897d8..90f5e2cde 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json
@@ -70,11 +70,11 @@
"SEARCH_PLACEHOLDER": "Pesquisar autor"
},
"META_TITLE": {
- "LABEL": "Meta title",
+ "LABEL": "Meta título",
"PLACEHOLDER": "Adicionar um meta title"
},
"META_DESCRIPTION": {
- "LABEL": "Meta description",
+ "LABEL": "Meta descrição",
"PLACEHOLDER": "Adicione suas meta descriptions para melhorar os resultados de SEO..."
},
"META_TAGS": {
@@ -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": {
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Erro enquanto excluía o artigo"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Não foi possível reordenar os artigos. Por favor, tente novamente."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Não foi possível reordenar as categorias. Por favor, tente novamente."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Por favor, adicione o cabeçalho e o conteúdo do artigo, só então você pode atualizar as configurações"
},
@@ -672,7 +682,7 @@
"ARTICLE_PROPERTIES": "Propriedades do artigo",
"META_DESCRIPTION": "Meta descrição",
"META_DESCRIPTION_PLACEHOLDER": "Adicionar meta descrição",
- "META_TITLE": "Meta title",
+ "META_TITLE": "Meta título",
"META_TITLE_PLACEHOLDER": "Adicionar meta título",
"META_TAGS": "Meta tags",
"META_TAGS_PLACEHOLDER": "Adicionar meta tags"
@@ -742,7 +752,7 @@
"LABEL": "Widget de chat ao vivo",
"PLACEHOLDER": "Selecionar widget de chat ao vivo",
"HELP_TEXT": "Selecione um widget de chat ao vivo que aparecerá no centro de ajuda",
- "NONE_OPTION": "No widget"
+ "NONE_OPTION": "Sem widget"
},
"BRAND_COLOR": {
"LABEL": "Cor da Marca"
@@ -826,55 +836,55 @@
}
},
"PDF_UPLOAD": {
- "TITLE": "Upload PDF Document",
- "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "TITLE": "Enviar Documento PDF",
+ "DESCRIPTION": "Envie um documento PDF para gerar FAQs automaticamente com IA",
"DRAG_DROP_TEXT": "Arraste e solte seu arquivo PDF aqui, clique para selecionar",
- "SELECT_FILE": "Select PDF File",
- "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
- "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "SELECT_FILE": "Selecionar Arquivo PDF",
+ "ADDITIONAL_CONTEXT_LABEL": "Contexto Adicional (Opcional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Forneça qualquer contexto ou instruções adicionais para a geração de FAQs...",
"UPLOADING": "Enviando...",
- "UPLOAD": "Upload & Process",
+ "UPLOAD": "Enviar e Processar",
"CANCEL": "Cancelar",
- "ERROR_INVALID_TYPE": "Please select a valid PDF file",
- "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_INVALID_TYPE": "Por favor, selecione um arquivo PDF válido",
+ "ERROR_FILE_TOO_LARGE": "O tamanho do arquivo deve ser menor que 512MB",
"ERROR_UPLOAD_FAILED": "Falha ao carregar o arquivo PDF. Por favor, tente novamente."
},
"PDF_DOCUMENTS": {
- "TITLE": "PDF Documents",
- "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
- "UPLOAD_PDF": "Upload PDF",
- "UPLOAD_FIRST_PDF": "Upload your first PDF",
- "UPLOADED_BY": "Uploaded by",
- "GENERATE_FAQS": "Generate FAQs",
+ "TITLE": "Documentos PDF",
+ "DESCRIPTION": "Gerencie os documentos PDF enviados e gere FAQs a partir deles",
+ "UPLOAD_PDF": "Enviar PDF",
+ "UPLOAD_FIRST_PDF": "Envie seu primeiro PDF",
+ "UPLOADED_BY": "Enviado por",
+ "GENERATE_FAQS": "Gerar FAQs",
"GENERATING": "Gerando...",
"CONFIRM_DELETE": "Tem certeza que deseja excluir {filename}?",
"EMPTY_STATE": {
- "TITLE": "No PDF documents yet",
- "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ "TITLE": "Nenhum documento PDF ainda",
+ "DESCRIPTION": "Envie documentos PDF para gerar FAQs automaticamente com IA"
},
"STATUS": {
- "UPLOADED": "Ready",
- "PROCESSING": "Processing",
+ "UPLOADED": "Pronto",
+ "PROCESSING": "Processando",
"PROCESSED": "Concluído",
- "FAILED": "Failed"
+ "FAILED": "Falha"
}
},
"CONTENT_GENERATION": {
- "TITLE": "Content Generation",
- "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
- "UPLOAD_TITLE": "Upload PDF Document",
+ "TITLE": "Geração de Conteúdo",
+ "DESCRIPTION": "Envie documentos PDF para gerar conteúdo de FAQ automaticamente com IA",
+ "UPLOAD_TITLE": "Enviar Documento PDF",
"DRAG_DROP": "Arraste e solte seu arquivo PDF aqui, clique para selecionar",
"SELECT_FILE": "Selecionar Arquivo PDF",
- "UPLOADING": "Processing document...",
- "UPLOAD_SUCCESS": "Document processed successfully!",
- "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "UPLOADING": "Processando documento...",
+ "UPLOAD_SUCCESS": "Documento processado com sucesso!",
+ "UPLOAD_ERROR": "Falha ao enviar o documento. Tente novamente.",
"INVALID_FILE_TYPE": "Por favor, selecione um arquivo PDF válido",
- "FILE_TOO_LARGE": "File size must be less than 512MB",
- "GENERATED_CONTENT": "Generated FAQ Content",
- "PUBLISH_SELECTED": "Publish Selected",
- "PUBLISHING": "Publishing...",
- "FROM_DOCUMENT": "From document",
- "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "FILE_TOO_LARGE": "O tamanho do arquivo deve ser menor que 512MB",
+ "GENERATED_CONTENT": "Conteúdo gerado do FAQ",
+ "PUBLISH_SELECTED": "Publicar Selecionados",
+ "PUBLISHING": "Publicando...",
+ "FROM_DOCUMENT": "A partir do documento",
+ "NO_CONTENT": "Nenhum conteúdo gerado disponível. Envie um documento PDF para começar.",
"LOADING": "Carregando conteúdo gerado..."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json
index 3beedf32e..792dc7cda 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Caixas de Entrada",
"DESCRIPTION": "Um canal é o modo de comunicação que seu cliente escolhe para interagir com você. Uma caixa de entrada é onde você gerencia interações para um canal específico. Pode incluir comunicações de várias fontes, como e-mail, chat ao vivo e mídia social.",
"LEARN_MORE": "Saiba mais sobre as caixas de entrada",
+ "COUNT": "{n} caixa de entrada | {n} caixas de entrada",
+ "SEARCH_PLACEHOLDER": "Pesquisar caixas de entrada...",
+ "NO_RESULTS": "Nenhuma caixa de entrada encontrada correspondente à sua busca",
"RECONNECTION_REQUIRED": "Sua caixa de entrada está desconectada. Você não receberá novas mensagens até reautorizar.",
"CLICK_TO_RECONNECT": "Clique aqui para reconectar.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Seu registro no WhatsApp Business não foi concluído. Verifique o status do seu nome de exibição no Meta Business Manager antes de reconectar.",
@@ -61,8 +64,8 @@
"CONTINUE_WITH_TIKTOK": "Continuar com TikTok",
"CONNECT_YOUR_TIKTOK_PROFILE": "Conecte seu perfil do TikTok",
"HELP": "Para adicionar seu perfil do TikTok como um canal, é necessário autenticar seu perfil clicando em 'Continuar com TikTok'. ",
- "ERROR_MESSAGE": "Ocorreu um erro ao conectar com o TikTok. Tente novamente",
- "ERROR_AUTH": "Ocorreu um erro ao conectar com o TikTok. Tente novamente"
+ "ERROR_MESSAGE": "Ocorreu um erro ao conectar com o TikTok, por favor, tente novamente",
+ "ERROR_AUTH": "Ocorreu um erro ao conectar com o TikTok, por favor, tente novamente"
},
"TWITTER": {
"HELP": "Para adicionar seu perfil do Twitter como um canal, você precisa autenticar seu perfil do Twitter clicando em 'Entrar com o Twitter' ",
@@ -330,7 +333,7 @@
"TITLE": "Configuração rápida com Meta",
"DESC": "Use o fluxo de inscrição incorporada do WhatsApp para conectar rapidamente novos números. Você será redirecionado para a Meta para entrar na sua conta do WhatsApp Business. Ter acesso de administrador ajudará a tornar a configuração simples e fácil.",
"BENEFITS": {
- "TITLE": "Benefícios da inscrição incorporada:",
+ "TITLE": "Benefícios do Cadastro Incorporado:",
"EASY_SETUP": "Nenhuma configuração manual é necessária",
"SECURE_AUTH": "Autenticação segura baseada em OAuth",
"AUTO_CONFIG": "Configuração automática de webhook e número de telefone"
@@ -344,7 +347,7 @@
"WAITING_FOR_BUSINESS_INFO": "Por favor, complete a configuração do negócio na janela da Meta...",
"PROCESSING": "Configurando sua conta do WhatsApp Business",
"LOADING_SDK": "Carregando SDK do Facebook...",
- "CANCELLED": "A inscrição no WhatsApp foi cancelada",
+ "CANCELLED": "O cadastro do WhatsApp foi cancelado",
"SUCCESS_TITLE": "Conta do WhatsApp Business conectada!",
"WAITING_FOR_AUTH": "Aguardando autenticação...",
"INVALID_BUSINESS_DATA": "Dados de negócio inválidos recebidos do Facebook. Por favor, tente novamente.",
@@ -443,7 +446,7 @@
},
"FINISH_MESSAGE": "Comece a encaminhar seus e-mails para o seguinte endereço de e-mail.",
"FINISH_MESSAGE_NO_FORWARDING": "Sua caixa de entrada de e-mail foi criada com sucesso! É necessário configurar as credenciais de SMTP e IMAP para enviar e receber e-mails. Sem essas configurações, nenhum e-mail será processado.",
- "FORWARDING_ADDRESS_LABEL": "Encaminhe os e-mails para este endereço:",
+ "FORWARDING_ADDRESS_LABEL": "Encaminhar e-mails para este endereço:",
"CONFIGURE_SMTP_IMAP_LINK": "Clique aqui",
"CONFIGURE_SMTP_IMAP_TEXT": " para configurar IMAP e SMTP"
},
@@ -508,7 +511,7 @@
"DESCRIPTION": "Atenda seus clientes no WhatsApp"
},
"EMAIL": {
- "TITLE": "e-mail",
+ "TITLE": "E-mail",
"DESCRIPTION": "Conectar com Gmail, Outlook ou outros provedores"
},
"SMS": {
@@ -642,8 +645,10 @@
"DISABLED": "Desativado"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Ativado",
- "DISABLED": "Desativado"
+ "ENABLED": "Reabrir a mesma conversa",
+ "DISABLED": "Criar novas conversas",
+ "ENABLED_DESCRIPTION": "Quando um contado enviar mensagem novamente, a conversa anterior será reaberta.",
+ "DISABLED_DESCRIPTION": "Uma nova conversa será criada toda vez que a anterior estiver resolvida."
},
"ENABLE_HMAC": {
"LABEL": "Ativar"
@@ -678,6 +683,8 @@
"ACCOUNT_HEALTH": "Saúde da conta",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Preferências do Canal",
+ "WIDGET_FEATURES": "Recursos do widget",
"ACCOUNT_HEALTH": {
"TITLE": "Gerencie sua conta do WhatsApp",
"DESCRIPTION": "Revise o status da sua conta do WhatsApp, os limites de mensagens e a qualidade. Atualize as configurações ou resolva problemas, se necessário",
@@ -731,6 +738,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",
@@ -747,7 +764,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",
@@ -761,8 +778,8 @@
"SENDER_NAME_SECTION_TEXT": "Ativar/Desativar exibição do nome do agente no e-mail, se estiver desativado, exibirá o nome da empresa",
"ENABLE_CONTINUITY_VIA_EMAIL": "Habilitar continuidade das conversas por e-mail",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "As conversas continuarão sobre o e-mail se o endereço de e-mail de contato estiver disponível.",
- "LOCK_TO_SINGLE_CONVERSATION": "Bloquear para conversa única",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Ativar ou desativar várias conversas para o mesmo contato nesta caixa de entrada",
+ "LOCK_TO_SINGLE_CONVERSATION": "Roteamento de Conversa",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configurar a criação de conversas para contatos existentes",
"INBOX_UPDATE_TITLE": "Configurações da Caixa de Entrada",
"INBOX_UPDATE_SUB_TEXT": "Atualize suas configurações de caixa de entrada",
"AUTO_ASSIGNMENT_SUB_TEXT": "Ativar ou desativar a atribuição automática de novas conversas aos agentes adicionados a essa caixa de entrada.",
@@ -789,7 +806,7 @@
"WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "Você pode reconfigurar esta caixa de entrada para atualizar suas configurações do WhatsApp Business.",
"WHATSAPP_RECONFIGURE_BUTTON": "Reconfigurar",
"WHATSAPP_CONNECT_TITLE": "Conectar ao WhatsApp Business",
- "WHATSAPP_CONNECT_SUBHEADER": ".",
+ "WHATSAPP_CONNECT_SUBHEADER": "Atualize para o cadastro integrado do WhatsApp para um gerenciamento mais fácil.",
"WHATSAPP_CONNECT_DESCRIPTION": "Conecte esta caixa de entrada ao WhatsApp Business para ter recursos aprimorados e um gerenciamento mais fácil.",
"WHATSAPP_CONNECT_BUTTON": "Conectar",
"WHATSAPP_CONNECT_SUCCESS": "Conectado com sucesso ao WhatsApp Business!",
@@ -833,6 +850,7 @@
"LABEL": "Centro de Ajuda",
"PLACEHOLDER": "Selecionar Centro de Ajuda",
"SELECT_PLACEHOLDER": "Selecionar Centro de Ajuda",
+ "NONE": "Nenhuma",
"REMOVE": "Remover Centro de Ajuda",
"SUB_TEXT": "Anexe um Centro de Ajuda com a caixa de entrada"
},
@@ -841,6 +859,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Por favor, insira um valor maior que 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limitar o número máximo de conversas desta caixa de entrada que pode ser atribuído automaticamente a um agente"
},
+ "ASSIGNMENT": {
+ "TITLE": "Atribuição de conversa",
+ "DESCRIPTION": "Atribua automaticamente as conversas recebidas aos agentes disponíveis com base nas políticas de atribuição",
+ "ENABLE_AUTO_ASSIGNMENT": "Ativar atribuição automática de conversas",
+ "DEFAULT_RULES_TITLE": "Regras de atribuição padrão",
+ "DEFAULT_RULES_DESCRIPTION": "Utilizando o comportamento de atribuição padrão para todas as conversas",
+ "DEFAULT_RULE_1": "Conversas criadas mais antigas primeiro",
+ "DEFAULT_RULE_2": "Distribuição em rodízio",
+ "CUSTOMIZE_WITH_POLICY": "Personalizar com política de atribuição",
+ "USING_POLICY": "Utilizando política de atribuição personalizada para esta caixa de entrada",
+ "CUSTOMIZE_POLICY": "Personalizar com política de atribuição",
+ "DELETE_POLICY": "Excluir política",
+ "POLICY_LABEL": "Política de atribuição",
+ "ASSIGNMENT_ORDER_LABEL": "Ordem de Atribuição",
+ "ASSIGNMENT_METHOD_LABEL": "Método de Atribuição",
+ "POLICY_STATUS": {
+ "ACTIVE": "Ativo",
+ "INACTIVE": "Inativa"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Criado recentemente",
+ "LONGEST_WAITING": "Maior tempo de espera"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Rodízio",
+ "BALANCED": "Atribuição equilibrada"
+ },
+ "UPGRADE_PROMPT": "Políticas de atribuição personalizadas estão disponíveis no plano Business",
+ "UPGRADE_TO_BUSINESS": "Atualizar para o Business",
+ "DEFAULT_POLICY_LINKED": "Política padrão vinculada",
+ "DEFAULT_POLICY_DESCRIPTION": "Vincule uma política de atribuição personalizada para definir como as conversas serão atribuídas aos agentes nesta caixa de entrada.",
+ "LINK_EXISTING_POLICY": "Vincular política existente",
+ "CREATE_NEW_POLICY": "Criar nova política",
+ "NO_POLICIES": "Nenhuma política de atribuição encontrada",
+ "VIEW_ALL_POLICIES": "Ver todas as políticas",
+ "CURRENT_BEHAVIOR": "Atualmente utilizando o comportamento de atribuição padrão:",
+ "LINK_SUCCESS": "Política de atribuição vinculada com sucesso",
+ "LINK_ERROR": "Falha ao vincular a política de atribuição"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Excluir política de atribuição?",
+ "DELETE_CONFIRM_MESSAGE": "Tem certeza de que deseja remover esta política de atribuição desta caixa de entrada? A caixa de entrada voltará às regras de atribuição padrão.",
+ "CANCEL": "Cancelar",
+ "CONFIRM_DELETE": "Excluir",
+ "DELETE_SUCCESS": "Política de atribuição removida com sucesso",
+ "DELETE_ERROR": "Falha ao remover a política de atribuição"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reautorizar",
"SUBTITLE": "Sua conexão com o Facebook expirou, reconecte sua página do Facebook para continuar",
@@ -893,7 +958,7 @@
},
"MESSAGE_PREVIEW": {
"LABEL": "Pré-visualização da mensagem",
- "TOOLTIP": "Isso pode variar ligeiramente quando exibido na plataforma do WhatsApp."
+ "TOOLTIP": "Isso pode variar um pouco quando exibido na plataforma do WhatsApp."
},
"TEMPLATE_STATUS": {
"APPROVED": "Aprovado pelo WhatsApp",
@@ -934,7 +999,7 @@
},
"TEMPLATE_UPDATE_DIALOG": {
"TITLE": "Editar detalhes da pesquisa",
- "DESCRIPTION": "Vamos excluir o modelo anterior e criar um que será enviado novamente para aprovação do WhatsApp",
+ "DESCRIPTION": "Vamos excluir o modelo anterior e criar outro, que será enviado novamente para aprovação do WhatsApp",
"CONFIRM": "Criar novo modelo",
"CANCEL": "Voltar atrás"
},
@@ -952,6 +1017,20 @@
"UNCLEAR": "Precisa de esclarecimento"
}
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Verificar adequação em utilidade",
+ "HELPER_NOTE": "Verifique esta mensagem antes do envio para melhorar a adequação à categoria Utilidade. O sistema cria um modelo CSAT dedicado com botões para coleta de avaliação e o envia como Utilidade; a Meta ainda pode reclassificá-lo como Marketing com base no conteúdo.",
+ "RESULT_LABEL": "Previsão de categoria da Meta",
+ "GUIDANCE_NOTE": "Esta é uma verificação orientativa, não uma garantia de aprovação pela Meta.",
+ "SUGGESTION_LABEL": "Reescrita sugerida adequada para Utilidade",
+ "APPLY": "Usar esta sugestão",
+ "ERROR_MESSAGE": "Não foi possível analisar a mensagem. Por favor, tente novamente.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Provável Utilidade",
+ "LIKELY_MARKETING": "Provável Marketing",
+ "UNCLEAR": "Precisa de esclarecimento"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Regra de pesquisa",
"DESCRIPTION_PREFIX": "Enviar a pesquisa se a conversa",
@@ -979,9 +1058,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Mensagem indisponível para visitantes",
"TOGGLE_HELP": "Permitir a disponibilidade de negócios mostrará as horas disponíveis no widget de bate-papo ao vivo, mesmo que todos os agentes estejam offline. Os vistores disponíveis horários externos podem ser avisados com uma mensagem e um formulário de pré-bate-papo.",
"DAY": {
+ "DAY": "Dia",
+ "AVAILABILITY": "Disponibilidade",
+ "HOURS": "Horas",
"ENABLE": "Permitir a disponibilidade para este dia",
"UNAVAILABLE": "Indisponível",
- "HOURS": "horas",
"VALIDATION_ERROR": "Hora inicial deve ser antes de hora de fechamento.",
"CHOOSE": "Selecione"
},
@@ -1088,11 +1169,12 @@
"IN_A_DAY": "Em um dia"
},
"WIDGET_COLOR_LABEL": "Cor do Widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Posição do Balão do Widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "Tipo de Balão do Widget",
+ "WIDGET_BUBBLE": "Bolha",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Posição:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tipo:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Fale conosco no chat",
- "LABEL": "Título do disparador da Bolha do Widget",
+ "LABEL": "Título do Iniciador",
"PLACE_HOLDER": "Fale conosco no chat"
},
"UPDATE": {
@@ -1117,7 +1199,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Padrão",
- "CHAT": "Chat"
+ "CHAT": "Modo do chat"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Normalmente responde em alguns minutos",
@@ -1162,7 +1244,7 @@
"WHATSAPP_BAILEYS": "WhatsApp - Baileys",
"WHATSAPP_ZAPI": "WhatsApp - Z-API",
"SMS": "SMS",
- "EMAIL": "e-mail",
+ "EMAIL": "E-mail",
"TELEGRAM": "Telegram",
"LINE": "Line",
"API": "Canal da API",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/index.js b/app/javascript/dashboard/i18n/locale/pt_BR/index.js
index 1ca6d217c..481b01501 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/index.js
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/index.js
@@ -9,9 +9,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';
@@ -28,6 +30,7 @@ import kanban from './kanban.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';
@@ -35,8 +38,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,
@@ -50,9 +56,11 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
...components,
...contact,
...contactFilters,
+ ...contentTemplates,
...conversation,
...csatMgmt,
...customRole,
@@ -69,6 +77,7 @@ export default {
...labelsMgmt,
...login,
...macros,
+ ...mfa,
...report,
...resetPassword,
...search,
@@ -76,6 +85,9 @@ export default {
...settings,
...signup,
...sla,
+ ...snooze,
...teamsSettings,
+ ...webhooks,
...whatsappTemplates,
+ ...yearInReview,
};
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/integrationApps.json b/app/javascript/dashboard/i18n/locale/pt_BR/integrationApps.json
index 7a7e2ffc0..a4443a46c 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Buscando integrações",
"NO_HOOK_CONFIGURED": "Não há integrações {integrationId} configuradas nesta conta.",
"HEADER": "Aplicações",
+ "COUNT": "{n} integração | {n} integrações",
+ "SEARCH_PLACEHOLDER": "Pesquisar...",
+ "NO_RESULTS": "Nenhum resultado encontrado correspondente à sua busca",
"STATUS": {
"ENABLED": "Ativado",
"DISABLED": "Desativado"
@@ -12,7 +15,7 @@
"DELETE": {
"TITLE": {
"INBOX": "Confirmar exclusão",
- "ACCOUNT": "Desconectado"
+ "ACCOUNT": "Desconectar"
},
"MESSAGE": {
"INBOX": "Você tem certeza que deseja excluir?",
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Buscando integrações",
"INBOX": "Caixa de Entrada",
+ "ACTIONS": "Ações",
"DELETE": {
"BUTTON_TEXT": "Excluir"
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json b/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json
index a36f156e7..9013e1eb1 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json
@@ -1,24 +1,27 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
- "TITLE": "Delete Shopify Integration",
- "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ "TITLE": "Excluir Integração com o Shopify",
+ "MESSAGE": "Tem certeza que você deseja excluir a integração com o Shopify?"
},
"STORE_URL": {
- "TITLE": "Connect Shopify Store",
- "LABEL": "Store URL",
+ "TITLE": "Conectar Loja Shopify",
+ "LABEL": "URL da Loja",
"PLACEHOLDER": "your-store.myshopify.com",
- "HELP": "Enter your Shopify store's myshopify.com URL",
+ "HELP": "Insira a URL meushopify.com da sua loja Shopify",
"CANCEL": "Cancelar",
- "SUBMIT": "Connect Store"
+ "SUBMIT": "Conectar Loja"
},
- "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ "ERROR": "Ocorreu um erro ao tentar conectar com o Shopify. Por favor, tente novamente ou entre em contato com o suporte se o problema persistir."
},
"HEADER": "Integrações",
"DESCRIPTION": "Chatwoot se integra com várias ferramentas e serviços para melhorar a eficiência de seu time. Explore a lista abaixo para configurar seus aplicativos favoritos.",
"LEARN_MORE": "Aprenda mais sobre integrações",
"LOADING": "Obtendo integrações",
+ "SEARCH_PLACEHOLDER": "Pesquisar integrações...",
+ "NO_RESULTS": "Nenhuma integração encontrada correspondente à sua busca",
"CAPTAIN": {
"DISABLED": "O capitão não está ativado na sua conta.",
"CLICK_HERE_TO_CONFIGURE": "Clique aqui para configurar",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Eventos Inscritos",
"LEARN_MORE": "Saiba mais sobre webhooks",
+ "SECRET": {
+ "LABEL": "Segredo",
+ "COPY": "Copiar segredo para a área de transferência",
+ "COPY_SUCCESS": "Segredo copiado para a área de transferência",
+ "TOGGLE": "Alternar visibilidade do segredo",
+ "CREATED_DESC": "Seu webhook foi criado. Use o segredo abaixo para verificar as assinaturas do webhook. Copie-o agora — você também poderá encontrá-lo posteriormente no formulário de edição do webhook.",
+ "DONE": "Concluído"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Pesquisar webhooks...",
+ "NO_RESULTS": "Nenhum webhook encontrado correspondente à sua busca",
"FORM": {
"CANCEL": "Cancelar",
"DESC": "Webhook Os eventos fornecem informações em tempo real sobre o que está acontecendo na sua conta do Chatwoot. Digite um URL válido para configurar um retorno de chamada.",
@@ -114,6 +128,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Excluir",
"DELETE_CONFIRMATION": {
"TITLE": "Excluir integração",
@@ -156,10 +171,28 @@
"MAKE_FRIENDLY": "Alterar o tom de mensagem para amigável",
"MAKE_FORMAL": "Usar tom formal",
"SIMPLIFY": "Simplificar",
- "CONFIDENT": "Usar tom confiante",
- "PROFESSIONAL": "Usar tom profissional",
- "CASUAL": "Usar tom casual",
- "STRAIGHTFORWARD": "Usar tom direto"
+ "CONFIDENT": "Use um tom confiante",
+ "PROFESSIONAL": "Use um tom profissional",
+ "CASUAL": "Use um tom casual",
+ "STRAIGHTFORWARD": "Use um tom direto"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Melhorar resposta",
+ "IMPROVE_REPLY_SELECTION": "Melhorar a seleção",
+ "CHANGE_TONE": {
+ "TITLE": "Alterar tom",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profissional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Direto",
+ "CONFIDENT": "Confiante",
+ "FRIENDLY": "Amigável"
+ }
+ },
+ "GRAMMAR": "Corrigir gramática e ortografia",
+ "SUGGESTION": "Sugerir uma resposta",
+ "SUMMARIZE": "Resumir a conversa",
+ "ASK_COPILOT": "Perguntar ao Copiloto"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Conteúdo do rascunho",
@@ -218,12 +251,16 @@
"SIDEBAR_TXT": "
Painel de Aplicativos
O Painel de Aplicativos permite que as organizações incorporem um aplicativo dentro do Painel de Aplicativos do Chatwoot para fornecer o contexto para agentes de suporte ao cliente. Este recurso permite-lhe criar uma aplicação independente e incorporá-la dentro da dashboard para fornecer informações do usuário, seus pedidos ou seu histórico de pagamentos anteriores.
Quando você incorpora seu aplicativo usando o Painel de Aplicativos do Chatwoot, sua aplicação irá obter o contexto da conversa e entrar em contato como um evento de janela. Implementar um ouvinte para o evento de mensagem em sua página receber o contexto.
Para adicionar um novo aplicativo no Painel de Aplicativos, clique no botão 'Adicionar um novo aplicativo'.
",
"DESCRIPTION": "O Painel de Aplicativos permite que organizações incorporem um aplicativo dentro do painel para fornecer o contexto para agentes de suporte ao cliente. Este recurso permite que você crie uma aplicação independente e incorpore para fornecer informações de usuário, seus pedidos ou seu histórico de pagamentos anteriores.",
"LEARN_MORE": "Saiba mais sobre o Painel de Aplicativos",
+ "COUNT": "{n} painel de aplicativo | {n} painéis de aplicativos",
+ "SEARCH_PLACEHOLDER": "Pesquisar painéis de aplicativos...",
+ "NO_RESULTS": "Nenhum painel de aplicativo encontrado correspondente à sua busca",
"LIST": {
"404": "Ainda não há aplicativos nesta conta",
"LOADING": "Buscando aplicativos...",
"TABLE_HEADER": {
"NAME": "Nome",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Ações"
},
"EDIT_TOOLTIP": "Alterar aplicativo",
"DELETE_TOOLTIP": "Excluir aplicativo"
@@ -264,6 +301,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Criar/Ligar Issue Linear",
"LOADING": "Buscando problemas lineares...",
"LOADING_ERROR": "Houve um erro ao buscar as entidades do time, por favor, tente novamente",
@@ -358,6 +396,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Você tem certeza que deseja excluir a integração com Notion?",
"MESSAGE": "Excluir essa integração removerá o acesso ao seu espaço de trabalho Notion e encerrará todas as funcionalidades relacionadas.",
@@ -368,12 +407,12 @@
},
"CAPTAIN": {
"NAME": "Capitão",
- "HEADER_KNOW_MORE": "Know more",
+ "HEADER_KNOW_MORE": "Saiba mais",
"ASSISTANT_SWITCHER": {
"ASSISTANTS": "Assistentes",
- "SWITCH_ASSISTANT": "Switch between assistants",
- "NEW_ASSISTANT": "Create Assistant",
- "EMPTY_LIST": "No assistants found, please create one to get started"
+ "SWITCH_ASSISTANT": "Alternar entre assistentes",
+ "NEW_ASSISTANT": "Criar Assistente",
+ "EMPTY_LIST": "Nenhum assistente encontrado. Crie um para começar"
},
"COPILOT": {
"TITLE": "Copiloto",
@@ -427,6 +466,7 @@
"CANCEL_ANYTIME": "Você pode alterar ou cancelar seu plano a qualquer momento"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "O Capitão IA está disponível apenas nos planos Enterprise.",
"UPGRADE_PROMPT": "Atualize seu plano para ter acesso aos nossos assistentes, copilotos e muito mais.",
"ASK_ADMIN": "Entre em contato com seu administrador para fazer a atualização."
},
@@ -552,8 +592,8 @@
"TITLE": "Não há assistentes disponíveis",
"SUBTITLE": "Crie um assistente para fornecer respostas rápidas e precisas aos seus usuários. Ele pode aprender com seus artigos de ajuda e conversas passadas.",
"FEATURE_SPOTLIGHT": {
- "TITLE": "Captain Assistant",
- "NOTE": "Captain Assistant engages directly with customers, learns from your help docs and past conversations, and delivers instant, accurate responses. It handles the initial queries, providing quick resolutions before transferring to an agent when needed."
+ "TITLE": "Assistente Capitão",
+ "NOTE": "O Assistente Capitão interage diretamente com os clientes, aprende com seus documentos de ajuda e conversas anteriores e fornece respostas instantâneas e precisas. Ele lida com as solicitações iniciais, oferecendo resoluções rápidas antes de transferir para um agente quando necessário."
}
},
"GUARDRAILS": {
@@ -763,8 +803,8 @@
"TITLE": "Nenhum documento disponível",
"SUBTITLE": "Os documentos são usados pelo seu assistente para gerar perguntas frequentes. Pode importar documentos para fornecer um contexto para seu assistente.",
"FEATURE_SPOTLIGHT": {
- "TITLE": "Captain Document",
- "NOTE": "A document in Captain serves as a knowledge resource for the assistant. By connecting your help center or guides, Captain can analyze the content and provide accurate responses for customer inquiries."
+ "TITLE": "Documento do Capitão",
+ "NOTE": "Um documento no Capitão serve como um recurso de conhecimento para o assistente. Ao conectar sua central de ajuda ou guias, o Capitão pode analisar o conteúdo e fornecer respostas precisas para as dúvidas dos clientes."
}
}
},
@@ -779,48 +819,48 @@
"NOTE": "Ferramentas personalizadas permitem seu assistente interagir com APIs e serviços externos. Crie ferramentas para obter dados, realizar ações ou integre com seus sistemas existentes para melhorar as capacidades do seu assistente."
}
},
- "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "FORM_DESCRIPTION": "Configure sua ferramenta personalizada para se conectar a APIs externas",
"OPTIONS": {
- "EDIT_TOOL": "Edit tool",
- "DELETE_TOOL": "Delete tool"
+ "EDIT_TOOL": "Editar ferramenta",
+ "DELETE_TOOL": "Excluir ferramenta"
},
"CREATE": {
- "TITLE": "Create Custom Tool",
- "SUCCESS_MESSAGE": "Custom tool created successfully",
- "ERROR_MESSAGE": "Failed to create custom tool"
+ "TITLE": "Criar Ferramenta Personalizada",
+ "SUCCESS_MESSAGE": "Ferramenta personalizada criada com sucesso",
+ "ERROR_MESSAGE": "Falha ao criar a ferramenta personalizada"
},
"EDIT": {
- "TITLE": "Edit Custom Tool",
- "SUCCESS_MESSAGE": "Custom tool updated successfully",
- "ERROR_MESSAGE": "Failed to update custom tool"
+ "TITLE": "Editar Ferramenta Personalizada",
+ "SUCCESS_MESSAGE": "Ferramenta personalizada atualizada com sucesso",
+ "ERROR_MESSAGE": "Falha ao atualizar a ferramenta personalizada"
},
"DELETE": {
- "TITLE": "Delete Custom Tool",
+ "TITLE": "Excluir ferramenta personalizada",
"DESCRIPTION": "Tem certeza que deseja excluir está ferramenta customizável? Está ação não pode ser desfeita.",
"CONFIRM": "Sim, excluir",
- "SUCCESS_MESSAGE": "Custom tool deleted successfully",
- "ERROR_MESSAGE": "Failed to delete custom tool"
+ "SUCCESS_MESSAGE": "Ferramenta personalizada excluída com sucesso",
+ "ERROR_MESSAGE": "Falha ao excluir a ferramenta personalizada"
},
"FORM": {
"TITLE": {
"LABEL": "Nome da Ferramenta",
- "PLACEHOLDER": "Order Lookup",
+ "PLACEHOLDER": "Consulta de pedido",
"ERROR": "Nome da ferramente obrigatória"
},
"DESCRIPTION": {
"LABEL": "Descrição",
- "PLACEHOLDER": "Looks up order details by order ID"
+ "PLACEHOLDER": "Consulta os detalhes do pedido pelo ID do pedido"
},
"HTTP_METHOD": {
- "LABEL": "Method"
+ "LABEL": "Método"
},
"ENDPOINT_URL": {
- "LABEL": "Endpoint URL",
+ "LABEL": "URL do endpoint",
"PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
- "ERROR": "Valid URL is required"
+ "ERROR": "É necessário informar uma URL válida"
},
"AUTH_TYPE": {
- "LABEL": "Authentication Type"
+ "LABEL": "Tipo de Autenticação"
},
"AUTH_TYPES": {
"NONE": "Nenhuma",
@@ -830,23 +870,23 @@
},
"AUTH_CONFIG": {
"BEARER_TOKEN": "Bearer Token",
- "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
- "USERNAME": "Username",
- "USERNAME_PLACEHOLDER": "Enter username",
+ "BEARER_TOKEN_PLACEHOLDER": "Insira seu bearer token",
+ "USERNAME": "Nome de usuário",
+ "USERNAME_PLACEHOLDER": "Informe o nome de usuário",
"PASSWORD": "Senha",
- "PASSWORD_PLACEHOLDER": "Enter password",
- "API_KEY": "Header Name",
+ "PASSWORD_PLACEHOLDER": "Informe a senha",
+ "API_KEY": "Nome do Cabeçalho",
"API_KEY_PLACEHOLDER": "X-API-Key",
- "API_VALUE": "Header Value",
- "API_VALUE_PLACEHOLDER": "Enter API key value"
+ "API_VALUE": "Valor do Cabeçalho",
+ "API_VALUE_PLACEHOLDER": "Insira o valor da chave de API"
},
"PARAMETERS": {
- "LABEL": "Parameters",
- "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ "LABEL": "Parâmetros",
+ "HELP_TEXT": "Defina os parâmetros que serão extraídos das consultas dos usuários"
},
- "ADD_PARAMETER": "Add Parameter",
+ "ADD_PARAMETER": "Adicionar Parâmetro",
"PARAM_NAME": {
- "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ "PLACEHOLDER": "Nome do parâmetro (ex.: order_id)"
},
"PARAM_TYPE": {
"PLACEHOLDER": "Tipo"
@@ -859,27 +899,27 @@
"OBJECT": "Object"
},
"PARAM_DESCRIPTION": {
- "PLACEHOLDER": "Description of the parameter"
+ "PLACEHOLDER": "Descrição do parâmetro"
},
"PARAM_REQUIRED": {
"LABEL": "Obrigatório"
},
"REQUEST_TEMPLATE": {
- "LABEL": "Request Body Template (Optional)",
+ "LABEL": "Modelo do Corpo da Requisição (Opcional)",
"PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
},
"RESPONSE_TEMPLATE": {
- "LABEL": "Response Template (Optional)",
+ "LABEL": "Modelo de Resposta (Opcional)",
"PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
},
"ERRORS": {
- "PARAM_NAME_REQUIRED": "Parameter name is required"
+ "PARAM_NAME_REQUIRED": "O nome do parâmetro é obrigatório"
}
}
},
"RESPONSES": {
"HEADER": "FAQs",
- "PENDING_FAQS": "Pending FAQs",
+ "PENDING_FAQS": "FAQs pendentes",
"ADD_NEW": "Criar nova FAQ",
"DOCUMENTABLE": {
"CONVERSATION": "Conversação #{id}"
@@ -920,8 +960,8 @@
"ALL": "Todos"
},
"PENDING_BANNER": {
- "TITLE": "Captain has found some FAQs your customers were looking for.",
- "ACTION": "Click here to review"
+ "TITLE": "O Capitão encontrou algumas FAQs que seus clientes estavam procurando.",
+ "ACTION": "Clique aqui para revisar"
},
"FORM_DESCRIPTION": "Adicione uma pergunta e sua resposta correspondente à base de conhecimento e selecione o assistente ao qual deve estar associado.",
"CREATE": {
@@ -954,12 +994,12 @@
},
"EMPTY_STATE": {
"TITLE": "Nenhuma FAQ encontrada",
- "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "NO_PENDING_TITLE": "Não há mais FAQs pendentes para revisão",
"SUBTITLE": "Perguntas Frequentes ajudam seu assistente a fornecer respostas rápidas e precisas para perguntas de seus clientes. Eles podem ser gerados automaticamente a partir do seu conteúdo ou podem ser adicionados manualmente.",
- "CLEAR_SEARCH": "Clear active filters",
+ "CLEAR_SEARCH": "Limpar filtros ativos",
"FEATURE_SPOTLIGHT": {
- "TITLE": "Captain FAQ",
- "NOTE": "Captain FAQs detects common customer questions—whether missing from your knowledge base or frequently asked—and generates relevant FAQs to improve support. You can review each suggestion and decide whether to approve or reject it."
+ "TITLE": "FAQ do Capitão",
+ "NOTE": "As FAQs do Capitão identificam as perguntas mais comuns dos clientes — tanto as que ainda não existem na sua base de conhecimento quanto as mais recorrentes — e gera FAQs relevantes para melhorar o atendimento. Você pode revisar cada sugestão e decidir se aprova ou rejeita."
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/labelsMgmt.json
index 57ec75f43..d12760252 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Buscando etiquetas",
"DESCRIPTION": "As etiquetas ajudam você a categorizar e priorizar conversas e leads. Você pode atribuir uma etiqueta a uma conversa ou contato usando o painel lateral.",
"LEARN_MORE": "Aprenda mais sobre etiquetas",
+ "COUNT": "{n} etiqueta | {n} etiquetas",
+ "SEARCH_PLACEHOLDER": "Pesquisar etiquetas...",
+ "NO_RESULTS": "Nenhuma etiqueta encontrada correspondente à sua busca",
"SEARCH_404": "Não existem itens correspondentes a esta consulta",
"LIST": {
"404": "Não há etiquetas disponíveis nesta conta.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Nome",
"DESCRIPTION": "Descrição",
- "COLOR": "Cor"
+ "COLOR": "Cor",
+ "ACTION": "Ações"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/login.json b/app/javascript/dashboard/i18n/locale/pt_BR/login.json
index 10822f103..14b3ddf21 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/login.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/login.json
@@ -34,7 +34,7 @@
},
"SUBMIT": "Continuar com SSO",
"API": {
- "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ "ERROR_MESSAGE": "A autenticação SSO falhou. Verifique suas credenciais e tente novamente."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/macros.json b/app/javascript/dashboard/i18n/locale/pt_BR/macros.json
index 81f30c4f1..0e99eb521 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/macros.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "Uma macro é um conjunto de ações salvas que ajudam os agentes de atendimento ao cliente a concluir tarefas com facilidade. Os agentes podem definir um conjunto de ações, como etiquetar uma conversa com um rótulo, enviar uma transcrição de e-mail, atualizar um atributo personalizado, etc., e podem executar essas ações com um único clique.",
"LEARN_MORE": "Aprenda mais sobre macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Adicionar uma nova macro",
"HEADER_BTN_TXT_SAVE": "Salvar macro",
"LOADING": "Obtendo macros",
+ "SEARCH_PLACEHOLDER": "Pesquisar macros...",
+ "NO_RESULTS": "Nenhum macro encontrado correspondente à sua busca",
"ERROR": "Algo deu errado. Por favor, tente novamente",
"ORDER_INFO": "As macros serão executadas na ordem que você adicionar suas ações. Você pode reorganizá-las arrastando-as pelo identificador ao lado de cada nó.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Nome",
"CREATED BY": "Criada por",
"LAST_UPDATED_BY": "Ultima atualização por",
- "VISIBILITY": "Visibilidade"
+ "VISIBILITY": "Visibilidade",
+ "ACTIONS": "Ações"
},
"404": "Nenhuma macro encontrada"
},
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/mfa.json b/app/javascript/dashboard/i18n/locale/pt_BR/mfa.json
index 67a158090..9a84d2144 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/mfa.json
@@ -1,106 +1,106 @@
{
"MFA_SETTINGS": {
- "TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
- "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
- "STATUS_TITLE": "Authentication Status",
- "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "TITLE": "Autenticação em Dois Fatores",
+ "SUBTITLE": "Proteja sua conta contra acessos não autorizados com autenticação baseada em TOTP. Isso adiciona uma camada extra de segurança à sua conta.",
+ "DESCRIPTION": "Adicione uma camada extra de segurança à sua conta usando uma senha temporária baseada em tempo (TOTP)",
+ "STATUS_TITLE": "Estado da Autenticação",
+ "STATUS_DESCRIPTION": "Gerencie as configurações de autenticação em dois fatores e os códigos de recuperação",
"ENABLED": "Ativado",
"DISABLED": "Desativado",
- "STATUS_ENABLED": "Two-factor authentication is active",
- "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
- "ENABLE_BUTTON": "Enable Two-Factor Authentication",
- "ENHANCE_SECURITY": "Enhance Your Account Security",
- "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "STATUS_ENABLED": "A autenticação em dois fatores está ativa",
+ "STATUS_ENABLED_DESC": "Sua conta está protegida com uma camada extra de segurança",
+ "ENABLE_BUTTON": "Habilitar autenticação em dois fatores",
+ "ENHANCE_SECURITY": "Reforce a Segurança da Sua Conta",
+ "ENHANCE_SECURITY_DESC": "A autenticação em dois fatores adiciona uma camada extra de segurança ao exigir um código de verificação do seu aplicativo autenticador, além da sua senha.",
"SETUP": {
"STEP_NUMBER_1": "1",
"STEP_NUMBER_2": "2",
- "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
- "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "STEP1_TITLE": "Escaneie o Código QR com seu Aplicativo Autenticador",
+ "STEP1_DESCRIPTION": "Use o Google Authenticator, Authy ou qualquer outro aplicativo compatível com TOTP",
"LOADING_QR": "Carregando...",
- "MANUAL_ENTRY": "Can't scan? Enter code manually",
- "SECRET_KEY": "Secret Key",
+ "MANUAL_ENTRY": "Não consegue escanear? Digite o código manualmente",
+ "SECRET_KEY": "Chave secreta",
"COPY": "Copiar",
- "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE": "Insira o código de 6 dígitos do seu aplicativo autenticador",
"ENTER_CODE_PLACEHOLDER": "000000",
- "VERIFY_BUTTON": "Verify & Continue",
+ "VERIFY_BUTTON": "Verificar e Continuar",
"CANCEL": "Cancelar",
- "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "ERROR_STARTING": "O MFA não está habilitado. Entre em contato com o administrador.",
"INVALID_CODE": "Código de verificação inválido",
- "SECRET_COPIED": "Secret key copied to clipboard",
- "SUCCESS": "Two-factor authentication has been enabled successfully"
+ "SECRET_COPIED": "Chave secreta copiada para a área de transferência",
+ "SUCCESS": "A autenticação em dois fatores foi ativada com sucesso"
},
"BACKUP": {
- "TITLE": "Save Your Backup Codes",
- "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
- "IMPORTANT": "Important:",
- "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "TITLE": "Salve Seus Códigos de Recuperação",
+ "DESCRIPTION": "Guarde esses códigos com segurança. Cada um pode ser usado uma única vez caso você perca o acesso ao seu aplicativo autenticador",
+ "IMPORTANT": "Importante:",
+ "IMPORTANT_NOTE": " Salve esses códigos em um local seguro. Você não poderá vê-los novamente.",
"DOWNLOAD": "Baixar",
- "COPY_ALL": "Copy All",
- "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
- "COMPLETE_SETUP": "Complete Setup",
- "CODES_COPIED": "Backup codes copied to clipboard"
+ "COPY_ALL": "Copiar Todos",
+ "CONFIRM": "Salvei meus códigos de recuperação em um local seguro e entendo que não poderei vê-los novamente",
+ "COMPLETE_SETUP": "Finalizar Configuração",
+ "CODES_COPIED": "Códigos de recuperação copiados para a área de transferência"
},
"MANAGEMENT": {
- "BACKUP_CODES": "Backup Codes",
- "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
- "REGENERATE": "Regenerate Backup Codes",
- "DISABLE_MFA": "Disable 2FA",
- "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
- "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ "BACKUP_CODES": "Códigos de Recuperação",
+ "BACKUP_CODES_DESC": "Gere novos códigos caso tenha perdido ou já utilizado os códigos existentes",
+ "REGENERATE": "Gerar novos códigos de recuperação",
+ "DISABLE_MFA": "Desabilitar 2FA",
+ "DISABLE_MFA_DESC": "Remover a autenticação em dois fatores da sua conta",
+ "DISABLE_BUTTON": "Desabilitar Autenticação em Dois Fatores"
},
"DISABLE": {
- "TITLE": "Disable Two-Factor Authentication",
- "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "TITLE": "Desabilitar Autenticação em Dois Fatores",
+ "DESCRIPTION": "Você precisará informar sua senha e um código de verificação para desativar a autenticação em dois fatores.",
"PASSWORD": "Senha",
- "OTP_CODE": "Verification Code",
+ "OTP_CODE": "Código de Verificação",
"OTP_CODE_PLACEHOLDER": "000000",
- "CONFIRM": "Disable 2FA",
+ "CONFIRM": "Desabilitar 2FA",
"CANCEL": "Cancelar",
- "SUCCESS": "Two-factor authentication has been disabled",
- "ERROR": "Failed to disable MFA. Please check your credentials."
+ "SUCCESS": "A autenticação em dois fatores foi desabilitada",
+ "ERROR": "Falha ao desabilitar o MFA. Verifique suas credenciais."
},
"REGENERATE": {
- "TITLE": "Regenerate Backup Codes",
- "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
- "OTP_CODE": "Verification Code",
+ "TITLE": "Gerar Novos Códigos de Recuperação",
+ "DESCRIPTION": "Isso invalidará seus códigos de recuperação atuais e gerará novos. Informe o código de verificação para continuar.",
+ "OTP_CODE": "Código de Verificação",
"OTP_CODE_PLACEHOLDER": "000000",
- "CONFIRM": "Generate New Codes",
+ "CONFIRM": "Gerar Novos Códigos",
"CANCEL": "Cancelar",
- "NEW_CODES_TITLE": "New Backup Codes Generated",
- "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
- "CODES_IMPORTANT": "Important:",
- "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
- "DOWNLOAD_CODES": "Download Codes",
- "COPY_ALL_CODES": "Copy All Codes",
- "CODES_SAVED": "I've Saved My Codes",
- "SUCCESS": "New backup codes have been generated",
- "ERROR": "Failed to regenerate backup codes"
+ "NEW_CODES_TITLE": "Novos Códigos de Recuperação Gerados",
+ "NEW_CODES_DESC": "Seus códigos de recuperação antigos foram invalidados. Salve estes novos códigos em um local seguro.",
+ "CODES_IMPORTANT": "Importante:",
+ "CODES_IMPORTANT_NOTE": " Cada código só pode ser usado apenas uma vez. Salve-os antes de fechar esta janela.",
+ "DOWNLOAD_CODES": "Baixar Códigos",
+ "COPY_ALL_CODES": "Copiar Todos os Códigos",
+ "CODES_SAVED": "Eu Já Salvei Meus Códigos",
+ "SUCCESS": "Novos códigos de recuperação foram gerados",
+ "ERROR": "Falha ao gerar novos códigos de recuperação"
}
},
"MFA_VERIFICATION": {
- "TITLE": "Two-Factor Authentication",
- "DESCRIPTION": "Enter your verification code to continue",
- "AUTHENTICATOR_APP": "Authenticator App",
- "BACKUP_CODE": "Backup Code",
- "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
- "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "TITLE": "Autenticação em Dois Fatores",
+ "DESCRIPTION": "Informe o código de verificação para continuar",
+ "AUTHENTICATOR_APP": "Aplicativo Autenticador",
+ "BACKUP_CODE": "Código de Recuperação",
+ "ENTER_OTP_CODE": "Insira o código de 6 dígitos do seu aplicativo autenticador",
+ "ENTER_BACKUP_CODE": "Insira um dos seus códigos de recuperação",
"BACKUP_CODE_PLACEHOLDER": "000000",
- "VERIFY_BUTTON": "Verify",
- "TRY_ANOTHER_METHOD": "Try another verification method",
- "CANCEL_LOGIN": "Cancel and return to login",
- "HELP_TEXT": "Having trouble signing in?",
- "LEARN_MORE": "Learn more about 2FA",
+ "VERIFY_BUTTON": "Verificar",
+ "TRY_ANOTHER_METHOD": "Tentar outro método de verificação",
+ "CANCEL_LOGIN": "Cancelar e voltar para o login",
+ "HELP_TEXT": "Está com dificuldade para entrar?",
+ "LEARN_MORE": "Saiba mais sobre o 2FA",
"HELP_MODAL": {
- "TITLE": "Two-Factor Authentication Help",
- "AUTHENTICATOR_TITLE": "Using an Authenticator App",
- "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
- "BACKUP_TITLE": "Using a Backup Code",
- "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
- "CONTACT_TITLE": "Need More Help?",
- "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
- "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ "TITLE": "Ajuda com Autenticação em Dois Fatores",
+ "AUTHENTICATOR_TITLE": "Usando um Aplicativo de Autenticação",
+ "AUTHENTICATOR_DESC": "Abra seu aplicativo autenticador (Google Authenticator, Authy etc.) e digite o código de 6 dígitos exibido para a sua conta.",
+ "BACKUP_TITLE": "Usando um Código de Backup",
+ "BACKUP_DESC": "Se você não tiver acesso ao seu aplicativo autenticador, pode usar um dos códigos de backup que salvou ao configurar o 2FA. Cada código só pode ser usado uma vez.",
+ "CONTACT_TITLE": "Precisa de Mais Ajuda?",
+ "CONTACT_DESC_CLOUD": "Se você perdeu o acesso tanto ao aplicativo autenticador quanto aos códigos de backup, entre em contato com o suporte do Chatwoot para obter ajuda.",
+ "CONTACT_DESC_SELF_HOSTED": "Se você perdeu o acesso tanto ao aplicativo autenticador quanto aos códigos de backup, entre em contato com o administrador para obter ajuda."
},
- "VERIFICATION_FAILED": "Verification failed. Please try again."
+ "VERIFICATION_FAILED": "Falha na verificação. Tente novamente."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/report.json b/app/javascript/dashboard/i18n/locale/pt_BR/report.json
index 426e895c1..e3d59d222 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/report.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversas",
"LOADING_CHART": "Carregando dados do gráfico...",
"NO_ENOUGH_DATA": "Não existem dados suficientes para gerar o relatório. Tente novamente mais tarde.",
- "DOWNLOAD_AGENT_REPORTS": "Baixar relatórios de agentes",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Baixar relatórios de conversas",
"DATA_FETCHING_FAILED": "Falha ao buscar dados, tente novamente mais tarde.",
"SUMMARY_FETCHING_FAILED": "Não foi possível obter o resumo. Tente novamente mais tarde.",
"METRICS": {
@@ -53,8 +53,8 @@
"LAST_7_DAYS": "Últimos 7 dias",
"LAST_14_DAYS": "Últimos 14 dias",
"LAST_30_DAYS": "Últimos 30 dias",
- "THIS_MONTH": "This month",
- "LAST_MONTH": "Last month",
+ "THIS_MONTH": "Este mês",
+ "LAST_MONTH": "Último mês",
"LAST_3_MONTHS": "Últimos 3 meses",
"LAST_6_MONTHS": "Últimos 6 meses",
"LAST_YEAR": "Ano passado",
@@ -123,16 +123,21 @@
},
"PAGINATION": {
"RESULTS": "Exibindo {start} — {end} de {total} resultados",
- "PER_PAGE_TEMPLATE": "{size} / page"
+ "PER_PAGE_TEMPLATE": "{size} / página"
}
},
"AGENT_REPORTS": {
"HEADER": "Visão Geral de Agentes",
- "DESCRIPTION": "Acompanhe facilmente o desempenho do agente com métricas-chave, como conversas, tempos de resposta, tempos de resolução e casos resolvidos. Clique no nome de um agente para saber mais.",
+ "DESCRIPTION": "Acompanhe facilmente o desempenho dos agentes com métricas-chave, como conversas, tempos de resposta, tempos de resolução e casos resolvidos. Clique no nome de um agente para saber mais.",
"LOADING_CHART": "Carregando dados do gráfico...",
"NO_ENOUGH_DATA": "Não existem dados suficientes para gerar o relatório. Tente novamente mais tarde.",
"DOWNLOAD_AGENT_REPORTS": "Baixar relatórios de agentes",
"FILTER_DROPDOWN_LABEL": "Selecione Agente",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Pesquisar agentes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Não existem dados suficientes para gerar o relatório. Tente novamente mais tarde.",
"DOWNLOAD_LABEL_REPORTS": "Baixar relatórios de etiquetas",
"FILTER_DROPDOWN_LABEL": "Selecionar etiqueta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Pesquisar etiquetas"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
@@ -269,8 +279,13 @@
"NO_ENOUGH_DATA": "Não existem dados suficientes para gerar o relatório. Tente novamente mais tarde.",
"DOWNLOAD_INBOX_REPORTS": "Baixar relatórios de entrada",
"FILTER_DROPDOWN_LABEL": "Selecionar caixa de entrada",
- "ALL_INBOXES": "All Inboxes",
- "SEARCH_INBOX": "Search Inbox",
+ "ALL_INBOXES": "Todas as caixas de entrada",
+ "SEARCH_INBOX": "Pesquisar caixa de entrada",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Pesquisar caixas de entrada"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Resumo do Time",
- "DESCRIPTION": "Obtenha um instantâneo do desempenho de seu time com métricas essenciais, incluindo conversas, tempos de resposta, tempos de resolução e casos resolvidos. Clique no nome do time para mais detalhes.",
+ "DESCRIPTION": "Tenha uma visão geral do desempenho dos seus times com métricas essenciais, incluindo conversas, tempos de resposta, tempos de resolução e casos resolvidos. Clique no nome do time para ver mais detalhes.",
"LOADING_CHART": "Carregando dados do gráfico...",
"NO_ENOUGH_DATA": "Não existem dados suficientes para gerar o relatório. Tente novamente mais tarde.",
"DOWNLOAD_TEAM_REPORTS": "Baixar relatórios de time",
"FILTER_DROPDOWN_LABEL": "Selecionar Time",
+ "FILTERS": {
+ "ADD_FILTER": "Adicionar filtro",
+ "CLEAR_ALL": "Limpar tudo",
+ "NO_FILTER": "Não há filtros disponíveis",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Pesquisar times"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Relatórios CSAT",
- "NO_RECORDS": "Não há respostas de pesquisa em CSAT disponíveis.",
+ "NO_RECORDS": "Ainda não há respostas",
+ "NO_RECORDS_DESCRIPTION": "As respostas da pesquisa de CSAT aparecerão aqui assim que os clientes começarem a fornecer comentários.",
"DOWNLOAD": "Baixar relatórios de CSAT",
"DOWNLOAD_FAILED": "Falha ao baixar Relatórios CSAT",
"FILTERS": {
+ "ADD_FILTER": "Adicionar filtro",
+ "CLEAR_ALL": "Limpar tudo",
+ "NO_FILTER": "Não há filtros disponíveis",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Pesquisar agentes",
+ "INBOXES": "Pesquisar caixas de entrada",
+ "TEAMS": "Pesquisar times",
+ "RATINGS": "Pesquisar avaliações"
+ },
"AGENTS": {
- "PLACEHOLDER": "Escolher agentes"
+ "LABEL": "Agente"
+ },
+ "INBOXES": {
+ "LABEL": "Caixa de Entrada"
+ },
+ "TEAMS": {
+ "LABEL": "Time"
+ },
+ "RATINGS": {
+ "LABEL": "Classificação"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contato",
- "AGENT_NAME": "Agente atribuído",
+ "AGENT_NAME": "Agente",
"RATING": "Classificação",
- "FEEDBACK_TEXT": "Comentário do feedback"
- }
+ "FEEDBACK_TEXT": "Comentário do feedback",
+ "CONVERSATION": "Conversas",
+ "CUSTOMER": "Cliente",
+ "RESPONSE": "Resposta",
+ "HANDLED_BY": "Atendido por"
+ },
+ "UNKNOWN_CUSTOMER": "Cliente desconhecido"
},
+ "NO_AGENT": "Nenhum agente atribuído",
+ "NO_FEEDBACK": "Nenhum comentário fornecido",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total de respostas",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Taxa de resposta",
"TOOLTIP": "Número total de respostas / Número total de mensagens CSAT de pesquisa enviadas * 100"
+ },
+ "RATING_DISTRIBUTION": "Distribuição de avaliações"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Notas da avaliação",
+ "PLACEHOLDER": "Adicione notas sobre esta avaliação...",
+ "SAVE": "Salvar",
+ "CANCEL": "Cancelar",
+ "SAVING": "Salvando...",
+ "SAVED": "Notas salvas com sucesso",
+ "SAVE_ERROR": "Falha ao salvar as notas",
+ "UPDATED_BY": "Atualizado por {name} {time}",
+ "UPDATED_BY_LABEL": "Atualizado por",
+ "PAYWALL": {
+ "TITLE": "Atualize para adicionar notas de avaliação",
+ "AVAILABLE_ON": "O recurso de notas de avaliação está disponível apenas nos planos Business e Enterprise.",
+ "UPGRADE_PROMPT": "Adicione contexto interno a cada resposta de CSAT com notas de avaliação. Registre o que realmente aconteceu, identifique padrões mais rapidamente e tome decisões melhores a partir do seu feedback.",
+ "UPGRADE_NOW": "Atualizar agora",
+ "CANCEL_ANYTIME": "Você pode alterar ou cancelar seu plano a qualquer momento"
}
}
},
@@ -473,7 +541,7 @@
"DOWNLOAD_REPORT": "Baixar relatório"
},
"RESOLUTION_HEATMAP": {
- "HEADER": "Resolutions",
+ "HEADER": "Resoluções",
"NO_CONVERSATIONS": "Não há conversas",
"CONVERSATION": "{count} conversa",
"CONVERSATIONS": "{count} conversas",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/search.json b/app/javascript/dashboard/i18n/locale/pt_BR/search.json
index 3160501f4..8a0909620 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/search.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/search.json
@@ -35,7 +35,7 @@
"PRIVATE": "Nota privada",
"TRANSCRIPT": "Transcrição",
"CREATED_AT": "criado {time}",
- "UPDATED_AT": "atualizado em {time}",
+ "UPDATED_AT": "atualizado {time}",
"SORT_BY": {
"RELEVANCE": "Relevância"
},
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/settings.json b/app/javascript/dashboard/i18n/locale/pt_BR/settings.json
index a015ccf93..946a0bec5 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/settings.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/settings.json
@@ -109,7 +109,7 @@
},
"SECURITY_SECTION": {
"TITLE": "Segurança",
- "NOTE": "Manage additional security features for your account.",
+ "NOTE": "Gerencie recursos adicionais de segurança para sua conta.",
"MFA_BUTTON": "Gerenciar autenticação de dois fatores "
},
"ACCESS_TOKEN": {
@@ -176,7 +176,7 @@
"NOTIFICATIONS": {
"TITLE": "Preferências de notificação",
"TYPE_TITLE": "Tipo de notificação",
- "EMAIL": "e-mail",
+ "EMAIL": "E-mail",
"PUSH": "Notificação ",
"TYPES": {
"CONVERSATION_CREATED": "Uma nova conversa foi criada",
@@ -281,9 +281,9 @@
"MESSAGE": "Sua conta está suspensa. Entre em contato com a equipe de suporte para obter mais informações."
},
"NO_ACCOUNTS": {
- "TITLE": "No account found",
- "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
- "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "TITLE": "Nenhuma conta encontrada",
+ "MESSAGE_CLOUD": "Você não faz parte de nenhuma conta no momento. Se acreditar que isso é um engano, entre em contato com nossa equipe de suporte.",
+ "MESSAGE_SELF_HOSTED": "Você não faz parte de nenhuma conta no momento. Entre em contato com o seu administrador.",
"LOGOUT": "Encerrar sessão"
}
},
@@ -300,7 +300,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Baixar",
"UPLOADING": "Enviando...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Este story não está mais disponível."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Este story não está mais disponível.",
+ "INSTAGRAM_STORY_REPLY": "Respondido ao seu story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Ver Localização"
@@ -386,7 +387,7 @@
"REPORTS_LABEL": "Etiquetas",
"REPORTS_INBOX": "Caixa de Entrada",
"REPORTS_TEAM": "Time",
- "AGENT_ASSIGNMENT": "Agent Assignment",
+ "AGENT_ASSIGNMENT": "Atribuição de Agentes",
"SET_AVAILABILITY_TITLE": "Defina como",
"SET_YOUR_AVAILABILITY": "Disponibilidade",
"SLA": "SLA",
@@ -409,9 +410,57 @@
},
"DOCS": "Ler documentos",
"SECURITY": "Segurança",
- "CAPTAIN_AI": "Captain",
+ "CAPTAIN_AI": "Capitão",
"CONVERSATION_WORKFLOW": "Fluxo de Conversa"
},
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Configurações do Capitão",
+ "DESCRIPTION": "Configure seus modelos e recursos de IA para o Capitão. O Capitão utiliza um modelo de cobrança baseado em créditos; você será cobrado em créditos por cada ação que o Capitão realizar, dependendo do modelo selecionado.",
+ "LOADING": "Carregando configurações do Capitão...",
+ "LINK_TEXT": "Saiba mais sobre os Créditos do Capitão",
+ "NOT_ENABLED": "O Capitão não está habilitado para a sua conta. Atualize seu plano para acessar os recursos do Capitão.",
+ "MODEL_CONFIG": {
+ "TITLE": "Configuração do Modelo",
+ "DESCRIPTION": "Selecione modelos de IA para diferentes recursos.",
+ "SELECT_MODEL": "Selecionar modelo",
+ "CREDITS_PER_MESSAGE": "{credits} crédito/mensagem",
+ "COMING_SOON": "Em breve",
+ "EDITOR": {
+ "TITLE": "Recursos do Editor",
+ "DESCRIPTION": "Potencializa a escrita inteligente, correções gramaticais, ajustes de tom e aprimoramento de conteúdo no editor de mensagens."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistente",
+ "DESCRIPTION": "Gerencia respostas automatizadas, resumos de conversas e sugestões inteligentes de resposta para interações com clientes."
+ },
+ "COPILOT": {
+ "TITLE": "Copiloto",
+ "DESCRIPTION": "Fornece sugestões contextuais em tempo real, recomendações da base de conhecimento e insights proativos durante as conversas."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funcionalidades",
+ "DESCRIPTION": "Ative ou desative recursos com tecnologia de IA.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcrição de Áudio",
+ "DESCRIPTION": "Converte automaticamente mensagens de voz e gravações de chamadas em transcrições de texto pesquisáveis."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Indexação de Pesquisa da Central de Ajuda",
+ "DESCRIPTION": "Use IA para realizar buscas com reconhecimento de contexto nos artigos da sua central de ajuda."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Sugestão de Etiquetas",
+ "DESCRIPTION": "Sugere automaticamente rótulos e etiquetas relevantes para as conversas, com base na análise de conteúdo e no contexto.",
+ "MODEL_TITLE": "Modelo de Sugestão de Etiquetas",
+ "MODEL_DESCRIPTION": "Selecione o modelo de IA a ser utilizado para analisar as conversas e sugerir etiquetas apropriadas"
+ }
+ },
+ "API": {
+ "SUCCESS": "Configurações do Capitão atualizadas com sucesso.",
+ "ERROR": "Falha ao atualizar as configurações do Capitão. Por favor, tente novamente."
+ }
+ },
"BILLING_SETTINGS": {
"TITLE": "Cobrança",
"DESCRIPTION": "Gerencie sua assinatura aqui, faça o upgrade do seu plano e obtenha mais para seu time.",
@@ -445,9 +494,9 @@
"TOPUP": {
"BUY_CREDITS": "Comprar mais créditos",
"MODAL_TITLE": "Comprar Créditos de IA",
- "MODAL_DESCRIPTION": "Comprar créditos adicionais para o Capitão AI.",
+ "MODAL_DESCRIPTION": "Comprar créditos adicionais para o Capitão IA.",
"CREDITS": "CRÉDITOS",
- "ONE_TIME": "única vez",
+ "ONE_TIME": "único",
"POPULAR": "Mais populares",
"NOTE_TITLE": "Nota:",
"NOTE_DESCRIPTION": "Créditos são adicionados imediatamente e expiram em 6 meses. Uma assinatura ativa é necessária para usar créditos. Créditos adquiridos são consumidos após seus créditos do plano mensal.",
@@ -458,11 +507,11 @@
"PURCHASE_ERROR": "Falha ao processar a compra. Por favor, tente novamente.",
"PURCHASE_SUCCESS": "Foram adicionados {credits} créditos com sucesso à sua conta",
"CONFIRM": {
- "TITLE": "Confirmar compra",
+ "TITLE": "Confirmar Compra",
"DESCRIPTION": "Você está prestes a comprar {credits} créditos por {amount}.",
"INSTANT_DEDUCTION_NOTE": "Seu cartão salvo será cobrado imediatamente após a confirmação.",
"GO_BACK": "Voltar",
- "CONFIRM_PURCHASE": "Confirmar compra"
+ "CONFIRM_PURCHASE": "Confirmar Compra"
}
}
},
@@ -473,68 +522,120 @@
"SAML_DISABLED_MESSAGE": "O SSO via SAML está desativado no momento. Entre em contato com o administrador para habilitar esse recurso.",
"SAML": {
"TITLE": "SAML SSO",
- "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "NOTE": "Configure o login único via SAML para sua conta. Os usuários se autenticarão por meio do seu provedor de identidade em vez de usar e-mail e senha.",
"ACS_URL": {
"LABEL": "ACS URL",
- "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ "TOOLTIP": "URL do Assertion Consumer Service - Configure esta URL no seu IdP como o destino para as respostas SAML"
},
"SSO_URL": {
"LABEL": "SSO URL",
- "HELP": "The URL where SAML authentication requests will be sent",
+ "HELP": "A URL para onde as solicitações de autenticação SAML serão enviadas",
"PLACEHOLDER": "https://your-idp.com/saml/sso"
},
"CERTIFICATE": {
- "LABEL": "Signing certificate in PEM format",
- "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "LABEL": "Certificado de assinatura no formato PEM",
+ "HELP": "O certificado público do seu provedor de identidade, usado para verificar as respostas SAML",
"PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
},
"FINGERPRINT": {
- "LABEL": "Fingerprint",
- "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ "LABEL": "Impressão digital",
+ "TOOLTIP": "Impressão digital SHA-1 do certificado - use-a para verificar o certificado na configuração do seu IdP"
},
"COPY_SUCCESS": "Código copiado para área de transferência com sucesso",
"SP_ENTITY_ID": {
"LABEL": "SP Entity ID",
- "HELP": "Unique identifier for this application as a service provider (auto-generated).",
- "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ "HELP": "Identificador exclusivo desta aplicação como provedor de serviço (gerado automaticamente).",
+ "TOOLTIP": "Identificador exclusivo do Chatwoot como Provedor de Serviço - configure-o nas configurações do seu IdP"
},
"IDP_ENTITY_ID": {
- "LABEL": "Identity Provider Entity ID",
- "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
- "PLACEHOLDER": "https://your-idp.com/saml"
+ "LABEL": "ID da Entidade do Provedor de Identidade",
+ "HELP": "Identificador exclusivo do seu provedor de identidade (geralmente encontrado na configuração do IdP)",
+ "PLACEHOLDER": "https://seu-idp.com/saml"
},
- "UPDATE_BUTTON": "Update SAML Settings",
+ "UPDATE_BUTTON": "Atualizar configurações de SAML",
"API": {
- "SUCCESS": "SAML settings updated successfully",
- "ERROR": "Failed to update SAML settings",
- "ERROR_LOADING": "Failed to load SAML settings",
- "DISABLED": "SAML settings disabled successfully"
+ "SUCCESS": "Configurações de SAML atualizadas com sucesso",
+ "ERROR": "Falha ao atualizar as configurações de SAML",
+ "ERROR_LOADING": "Falha ao carregar as configurações de SAML",
+ "DISABLED": "Configurações de SAML desativadas com sucesso"
},
"VALIDATION": {
- "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
- "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "REQUIRED_FIELDS": "A URL de SSO, o ID da Entidade do Provedor de Identidade e o Certificado são campos obrigatórios",
+ "SSO_URL_ERROR": "Por favor, insira uma URL de SSO válida",
"CERTIFICATE_ERROR": "O certificado é necessário",
- "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ "IDP_ENTITY_ID_ERROR": "O ID da Entidade do Provedor de Identidade é obrigatório"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
- "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "AVAILABLE_ON": "O recurso de SSO via SAML está disponível apenas nos planos Enterprise.",
+ "UPGRADE_PROMPT": "Atualize para um plano Enterprise para ter acesso ao login único via SAML e outros recursos avançados de segurança.",
"ASK_ADMIN": "Entre em contato com seu administrador para fazer a atualização."
},
"PAYWALL": {
- "TITLE": "Upgrade to enable SAML SSO",
- "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
- "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "TITLE": "Atualizar para habilitar o SSO via SAML",
+ "AVAILABLE_ON": "O recurso de SSO via SAML está disponível apenas nos planos Enterprise.",
+ "UPGRADE_PROMPT": "Atualize seu plano para ter acesso ao login único via SAML e outros recursos avançados.",
"UPGRADE_NOW": "Atualizar agora",
"CANCEL_ANYTIME": "Você pode alterar ou cancelar seu plano a qualquer momento"
},
"ATTRIBUTE_MAPPING": {
- "TITLE": "SAML Attribute Setup",
- "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ "TITLE": "Configuração de Atributos SAML",
+ "DESCRIPTION": "Os seguintes mapeamentos de atributos devem ser configurados no seu provedor de identidade"
},
"INFO_SECTION": {
- "TITLE": "Service Provider Information",
- "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ "TITLE": "Informações do Provedor de Serviço",
+ "TOOLTIP": "Copie esses valores e configure-os no seu Provedor de Identidade para estabelecer a conexão SAML"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Fluxos de Conversa",
+ "DESCRIPTION": "Configure regras e campos obrigatórios para a resolução de conversas."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Atributos obrigatórios para resolução",
+ "DESCRIPTION": "Ao resolver uma conversa, os agentes serão solicitados a preencher esses atributos caso ainda não o tenham feito.",
+ "NO_ATTRIBUTES": "Nenhum atributo adicionado ainda",
+ "ADD": {
+ "TITLE": "Adicionar Atributos",
+ "SEARCH_PLACEHOLDER": "Pesquisar atributos"
+ },
+ "SAVE": {
+ "SUCCESS": "Atributos obrigatórios atualizados",
+ "ERROR": "Não foi possível atualizar os atributos obrigatórios. Por favor, tente novamente"
+ },
+ "MODAL": {
+ "TITLE": "Resolver conversa",
+ "DESCRIPTION": "Por favor, preencha os seguintes atributos personalizados antes de resolver esta conversa",
+ "ACTIONS": {
+ "RESOLVE": "Resolver conversa",
+ "CANCEL": "Cancelar"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Escreva uma nota...",
+ "NUMBER": "Insira um número",
+ "LINK": "Adicione um link",
+ "DATE": "Selecione uma data",
+ "LIST": "Selecione uma opção"
+ },
+ "CHECKBOX": {
+ "YES": "Sim",
+ "NO": "Não"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Atualize para usar os atributos obrigatórios",
+ "AVAILABLE_ON": "O recurso de atributos obrigatórios da conversa está disponível nos planos Business e Enterprise.",
+ "UPGRADE_PROMPT": "Atualize seu plano para solicitar que os agentes preencham os atributos obrigatórios antes da resolução da conversa.",
+ "UPGRADE_NOW": "Atualizar agora",
+ "CANCEL_ANYTIME": "Você pode alterar ou cancelar seu plano a qualquer momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "O recurso de atributos obrigatórios de conversa está disponível nos planos pagos.",
+ "UPGRADE_PROMPT": "Atualize para um plano pago para exigir atributos obrigatórios antes da resolução da conversa.",
+ "ASK_ADMIN": "Entre em contato com seu administrador para fazer a atualização."
}
}
},
@@ -578,84 +679,91 @@
"ASSIGNMENT_POLICY": {
"INDEX": {
"HEADER": {
- "TITLE": "Agent assignment",
- "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ "TITLE": "Atribuição de agentes",
+ "DESCRIPTION": "Defina políticas para gerenciar a carga de trabalho de forma eficaz e encaminhar conversas com base nas necessidades das caixas de entrada e dos agentes. Saiba mais aqui"
},
"ASSIGNMENT_POLICY": {
- "TITLE": "Assignment policy",
- "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "TITLE": "Política de atribuição",
+ "DESCRIPTION": "Gerencie como as conversas são atribuídas nas caixas de entrada.",
"FEATURES": [
- "Assign by conversations evenly or by available capacity",
- "Add fair distribution rules to avoid overloading any agent",
- "Add inboxes to a policy - one policy per inbox"
+ "Atribuir conversas de forma uniforme ou com base na capacidade disponível",
+ "Adicione regras de distribuição justa para evitar sobrecarregar qualquer agente",
+ "Adicione caixas de entrada a uma política - uma política por caixa de entrada"
]
},
"AGENT_CAPACITY_POLICY": {
- "TITLE": "Agent capacity policy",
- "DESCRIPTION": "Manage workload for agents.",
+ "TITLE": "Política de capacidade dos agentes",
+ "DESCRIPTION": "Gerencie a carga de trabalho dos agentes.",
"FEATURES": [
- "Define maximum conversations per inbox",
- "Create exceptions based on labels and time",
- "Add agents to a policy - one policy per agent"
+ "Defina o número máximo de conversas por caixa de entrada",
+ "Criar exceções com base em rótulos e tempo",
+ "Adicione agentes a uma política - uma política por agente"
]
}
},
"AGENT_ASSIGNMENT_POLICY": {
"INDEX": {
"HEADER": {
- "TITLE": "Assignment policy",
- "CREATE_POLICY": "New policy"
+ "TITLE": "Política de atribuição",
+ "CREATE_POLICY": "Nova política"
},
"CARD": {
- "ORDER": "Order",
+ "ORDER": "Ordem",
"PRIORITY": "Prioridade",
"ACTIVE": "Ativo",
- "INACTIVE": "Inactive",
- "POPOVER": "Added inboxes",
+ "INACTIVE": "Inativa",
+ "POPOVER": "Caixas de entrada adicionadas",
"EDIT": "Alterar"
},
- "NO_RECORDS_FOUND": "No assignment policies found"
+ "NO_RECORDS_FOUND": "Nenhuma política de atribuição encontrada"
},
"CREATE": {
"HEADER": {
- "TITLE": "Create assignment policy"
+ "TITLE": "Criar política de atribuição"
},
- "CREATE_BUTTON": "Create policy",
+ "CREATE_BUTTON": "Criar política",
"API": {
- "SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "SUCCESS_MESSAGE": "Política de atribuição criada com sucesso",
+ "ERROR_MESSAGE": "Falha ao criar a política de atribuição",
+ "INBOX_LINKED": "A caixa de entrada foi vinculada à política"
}
},
"EDIT": {
"HEADER": {
- "TITLE": "Edit assignment policy"
+ "TITLE": "Editar política de atribuição"
},
- "EDIT_BUTTON": "Update policy",
+ "EDIT_BUTTON": "Atualizar política",
"CONFIRM_ADD_INBOX_DIALOG": {
- "TITLE": "Add inbox",
- "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
- "CONFIRM_BUTTON_LABEL": "Continue",
+ "TITLE": "Adicionar caixa de entrada",
+ "DESCRIPTION": "A caixa de entrada {inboxName} já está vinculada a outra política. Tem certeza de que deseja vinculá-la a esta política? Ela será desvinculada da outra.",
+ "CONFIRM_BUTTON_LABEL": "Continuar",
"CANCEL_BUTTON_LABEL": "Cancelar"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Vincular caixa de entrada à política",
+ "DESCRIPTION": "Deseja vincular esta caixa de entrada à política de atribuição?",
+ "LINK_BUTTON": "Vincular caixa de entrada",
+ "CANCEL_BUTTON": "Pular"
+ },
"API": {
- "SUCCESS_MESSAGE": "Assignment policy updated successfully",
- "ERROR_MESSAGE": "Failed to update assignment policy"
+ "SUCCESS_MESSAGE": "Política de atribuição atualizada com sucesso",
+ "ERROR_MESSAGE": "Falha ao atualizar a política de atribuição"
},
"INBOX_API": {
"ADD": {
- "SUCCESS_MESSAGE": "Inbox added to policy successfully",
- "ERROR_MESSAGE": "Failed to add inbox to policy"
+ "SUCCESS_MESSAGE": "Caixa de entrada adicionada à política com sucesso",
+ "ERROR_MESSAGE": "Falha ao adicionar a caixa de entrada à política"
},
"REMOVE": {
- "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
- "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ "SUCCESS_MESSAGE": "Caixa de entrada removida da política com sucesso",
+ "ERROR_MESSAGE": "Caixa de entrada removida da política com sucesso"
}
}
},
"FORM": {
"NAME": {
- "LABEL": "Policy name:",
- "PLACEHOLDER": "Enter policy name"
+ "LABEL": "Nome da política:",
+ "PLACEHOLDER": "Informe o nome da política"
},
"DESCRIPTION": {
"LABEL": "Descrição:",
@@ -663,164 +771,180 @@
},
"STATUS": {
"LABEL": "Status:",
- "PLACEHOLDER": "Selecione Status",
- "ACTIVE": "Policy is active",
- "INACTIVE": "Policy is inactive"
+ "PLACEHOLDER": "Selecionar status",
+ "ACTIVE": "Política ativa",
+ "INACTIVE": "Política inativa"
},
"ASSIGNMENT_ORDER": {
- "LABEL": "Assignment order",
+ "LABEL": "Ordem de atribuição",
"ROUND_ROBIN": {
- "LABEL": "Round robin",
- "DESCRIPTION": "Assign conversations evenly among agents."
+ "LABEL": "Rodízio",
+ "DESCRIPTION": "Distribuir as conversas de forma uniforme entre os agentes."
},
"BALANCED": {
- "LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "LABEL": "Equilibrado",
+ "DESCRIPTION": "Atribuir conversas com base na capacidade disponível.",
+ "PREMIUM_MESSAGE": "Atualize o plano para acessar a atribuição equilibrada e o gerenciamento de capacidade dos agentes.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
- "LABEL": "Assignment priority",
+ "LABEL": "Prioridade de atribuição",
"EARLIEST_CREATED": {
- "LABEL": "Earliest created",
- "DESCRIPTION": "The conversation that was created first gets assigned first."
+ "LABEL": "Criado recentemente",
+ "DESCRIPTION": "A conversa criada primeiro será atribuída primeiro."
},
"LONGEST_WAITING": {
- "LABEL": "Longest waiting",
- "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ "LABEL": "Maior tempo de espera",
+ "DESCRIPTION": "A conversa que está aguardando há mais tempo é atribuída primeiro."
}
},
"FAIR_DISTRIBUTION": {
- "LABEL": "Fair distribution policy",
- "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
- "INPUT_MAX": "Assign max",
- "DURATION": "Conversations per agent in every"
+ "LABEL": "Política de distribuição justa",
+ "DESCRIPTION": "Defina o número máximo de conversas que podem ser atribuídas por agente dentro de um período, para evitar sobrecarregar qualquer agente. Este campo obrigatório tem como padrão 100 conversas por hora.",
+ "INPUT_MAX": "Máximo de atribuições",
+ "DURATION": "Conversas por agente a cada"
},
"INBOXES": {
- "LABEL": "Added inboxes",
- "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
- "ADD_BUTTON": "Add inbox",
+ "LABEL": "Caixas de entrada adicionadas",
+ "DESCRIPTION": "Adicionar caixas de entrada às quais esta política será aplicada.",
+ "ADD_BUTTON": "Adicionar caixa de entrada",
"DROPDOWN": {
- "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "SEARCH_PLACEHOLDER": "Pesquisar e selecionar caixas de entrada para adicionar",
"ADD_BUTTON": "Adicionar"
},
- "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "EMPTY_STATE": "Nenhuma caixa de entrada adicionada a esta política. Adicione uma caixa de entrada para começar",
"API": {
- "SUCCESS_MESSAGE": "Inbox successfully added to policy",
- "ERROR_MESSAGE": "Failed to add inbox to policy"
+ "SUCCESS_MESSAGE": "Caixa de entrada adicionada à política com sucesso",
+ "ERROR_MESSAGE": "Falha ao adicionar a caixa de entrada à política"
}
}
},
"DELETE_POLICY": {
- "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
- "ERROR_MESSAGE": "Failed to delete assignment policy"
+ "SUCCESS_MESSAGE": "Política de atribuição excluída com sucesso",
+ "ERROR_MESSAGE": "Falha ao excluir a política de atribuição"
}
},
"AGENT_CAPACITY_POLICY": {
"INDEX": {
"HEADER": {
- "TITLE": "Agent capacity",
- "CREATE_POLICY": "New policy"
+ "TITLE": "Capacidade do agente",
+ "CREATE_POLICY": "Nova política"
},
"CARD": {
- "POPOVER": "Added agents",
+ "POPOVER": "Agentes adicionados",
"EDIT": "Alterar"
},
- "NO_RECORDS_FOUND": "No agent capacity policies found"
+ "NO_RECORDS_FOUND": "Nenhuma política de capacidade dos agentes encontrada"
},
"CREATE": {
"HEADER": {
- "TITLE": "Create agent capacity policy"
+ "TITLE": "Criar política de capacidade dos agentes"
},
- "CREATE_BUTTON": "Create policy",
+ "CREATE_BUTTON": "Criar política",
"API": {
- "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
- "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ "SUCCESS_MESSAGE": "Política de capacidade dos agentes criada com sucesso",
+ "ERROR_MESSAGE": "Falha ao criar a política de capacidade dos agentes"
}
},
"EDIT": {
"HEADER": {
- "TITLE": "Edit agent capacity policy"
+ "TITLE": "Editar política de capacidade dos agentes"
},
- "EDIT_BUTTON": "Update policy",
+ "EDIT_BUTTON": "Atualizar política",
"CONFIRM_ADD_AGENT_DIALOG": {
- "TITLE": "Add agent",
- "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
- "CONFIRM_BUTTON_LABEL": "Continue",
+ "TITLE": "Adicionar agente",
+ "DESCRIPTION": "{agentName} já está vinculado a outra política. Tem certeza de que deseja vinculá-lo a esta política? Ele será desvinculado da outra.",
+ "CONFIRM_BUTTON_LABEL": "Continuar",
"CANCEL_BUTTON_LABEL": "Cancelar"
},
"API": {
- "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
- "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ "SUCCESS_MESSAGE": "Política de capacidade dos agentes atualizada com sucesso",
+ "ERROR_MESSAGE": "Falha ao atualizar a política de capacidade dos agentes"
},
"AGENT_API": {
"ADD": {
- "SUCCESS_MESSAGE": "Agent added to policy successfully",
- "ERROR_MESSAGE": "Failed to add agent to policy"
+ "SUCCESS_MESSAGE": "Agente adicionado à política com sucesso",
+ "ERROR_MESSAGE": "Falha ao adicionar o agente à política"
},
"REMOVE": {
- "SUCCESS_MESSAGE": "Agent removed from policy successfully",
- "ERROR_MESSAGE": "Failed to remove agent from policy"
+ "SUCCESS_MESSAGE": "Agente removido da política com sucesso",
+ "ERROR_MESSAGE": "Falha ao remover o agente da política"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Limite de caixa de entrada adicionado com sucesso",
+ "ERROR_MESSAGE": "Falha ao adicionar limite de caixa de entrada"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Limite de caixa de entrada atualizado com sucesso",
+ "ERROR_MESSAGE": "Falha ao atualizar limite da caixa de entrada"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Limite da caixa de entrada excluído com sucesso",
+ "ERROR_MESSAGE": "Falha ao excluir o limite da caixa de entrada"
}
}
},
"FORM": {
"NAME": {
- "LABEL": "Policy name:",
- "PLACEHOLDER": "Enter policy name"
+ "LABEL": "Nome da política:",
+ "PLACEHOLDER": "Informe o nome da política"
},
"DESCRIPTION": {
"LABEL": "Descrição:",
"PLACEHOLDER": "Insira a descrição"
},
"INBOX_CAPACITY_LIMIT": {
- "LABEL": "Inbox capacity limits",
- "ADD_BUTTON": "Add inbox",
+ "LABEL": "Limites de capacidade da caixa de entrada",
+ "ADD_BUTTON": "Adicionar caixa de entrada",
"FIELD": {
- "SELECT_INBOX": "Select inbox",
- "MAX_CONVERSATIONS": "Max conversations",
- "SET_LIMIT": "Set limit"
+ "SELECT_INBOX": "Selecionar caixa de entrada",
+ "MAX_CONVERSATIONS": "Máximo de conversas",
+ "SET_LIMIT": "Definir limite"
},
- "EMPTY_STATE": "No inbox limit set"
+ "EMPTY_STATE": "Nenhum limite de caixa de entrada definido"
},
"EXCLUSION_RULES": {
- "LABEL": "Exclusion rules",
- "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "LABEL": "Regras de exclusão",
+ "DESCRIPTION": "Conversas que atendam às seguintes condições não serão contabilizadas na capacidade do agente",
"TAGS": {
- "LABEL": "Exclude conversations tagged with specific labels",
- "ADD_TAG": "add tag",
+ "LABEL": "Excluir conversas marcadas com rótulos específicos",
+ "ADD_TAG": "adicionar etiqueta",
"DROPDOWN": {
- "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ "SEARCH_PLACEHOLDER": "Pesquise e selecione etiquetas para adicionar"
},
- "EMPTY_STATE": "No tags added to this policy."
+ "EMPTY_STATE": "Nenhuma etiqueta adicionada a esta política."
},
"DURATION": {
- "LABEL": "Exclude conversations older than a specified duration",
- "PLACEHOLDER": "Set time"
+ "LABEL": "Excluir conversas mais antigas que um período especificado",
+ "PLACEHOLDER": "Definir duração"
}
},
"USERS": {
- "LABEL": "Assigned agents",
- "DESCRIPTION": "Add agents for which this policy will be applicable.",
- "ADD_BUTTON": "Add agent",
+ "LABEL": "Agentes atribuídos",
+ "DESCRIPTION": "Adicione os agentes aos quais esta política será aplicada.",
+ "ADD_BUTTON": "Adicionar agente",
"DROPDOWN": {
- "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "SEARCH_PLACEHOLDER": "Pesquise e selecione agentes para adicionar",
"ADD_BUTTON": "Adicionar"
},
- "EMPTY_STATE": "No agents added",
+ "EMPTY_STATE": "Nenhum agente adicionado",
"API": {
- "SUCCESS_MESSAGE": "Agent successfully added to policy",
- "ERROR_MESSAGE": "Failed to add agent to policy"
+ "SUCCESS_MESSAGE": "Agente adicionado à política com sucesso",
+ "ERROR_MESSAGE": "Falha ao adicionar o agente à política"
}
}
},
"DELETE_POLICY": {
- "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
- "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ "SUCCESS_MESSAGE": "Política de capacidade de agentes excluída com sucesso",
+ "ERROR_MESSAGE": "Falha ao excluir a política de capacidade de agentes"
}
},
"DELETE_POLICY": {
- "TITLE": "Delete policy",
- "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "TITLE": "Excluir política",
+ "DESCRIPTION": "Tem certeza de que deseja excluir esta política? Essa ação não pode ser desfeita.",
"CONFIRM_BUTTON_LABEL": "Excluir",
"CANCEL_BUTTON_LABEL": "Cancelar"
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/signup.json b/app/javascript/dashboard/i18n/locale/pt_BR/signup.json
index 0f43aaa24..d859806bd 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/signup.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Criar uma conta",
+ "GET_STARTED": "Comece a utilizar Chatwoot",
"TITLE": "Registrar",
"TESTIMONIAL_HEADER": "Tudo o que ele leva é um passo para avançar",
"TESTIMONIAL_CONTENT": "Você está a um passo de engajar seus clientes, mantê-los e encontrar novos.",
@@ -28,11 +29,11 @@
"PLACEHOLDER": "Senha",
"ERROR": "A senha é muito curta.",
"IS_INVALID_PASSWORD": "A senha deve conter pelo menos 1 letra maiúscula, 1 letra minúscula, 1 número e 1 caractere especial.",
- "REQUIREMENTS_LENGTH": "At least 6 characters long",
- "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
- "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
- "REQUIREMENTS_NUMBER": "At least one number",
- "REQUIREMENTS_SPECIAL": "At least one special character"
+ "REQUIREMENTS_LENGTH": "Pelo menos 6 caracteres",
+ "REQUIREMENTS_UPPERCASE": "Pelo menos uma letra maiúscula",
+ "REQUIREMENTS_LOWERCASE": "Pelo menos uma letra minúscula",
+ "REQUIREMENTS_NUMBER": "Pelo menos um número",
+ "REQUIREMENTS_SPECIAL": "Pelo menos um caractere especial"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirmar senha",
@@ -40,7 +41,7 @@
"ERROR": "As senhas não coincidem."
},
"API": {
- "SUCCESS_MESSAGE": "Registration Successful",
+ "SUCCESS_MESSAGE": "Cadastro Realizado Com Sucesso",
"ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot. Por favor, tente novamente."
},
"SUBMIT": "Criar conta",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/sla.json b/app/javascript/dashboard/i18n/locale/pt_BR/sla.json
index fae59d198..cbceb9146 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/sla.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Criar uma nova Política de SLA",
"DESCRIPTION": "Acordo de Nível de Serviço (SLAs em inglês) são acordos que definem expectativas claras entre seu time e os clientes. Estabelecem normas para tempos de resposta e de resolução, criando um quadro de responsabilização e garantindo uma experiência coerente e de qualidade.",
"LEARN_MORE": "Saiba mais sobre SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Buscando SLAs",
+ "SEARCH_PLACEHOLDER": "Pesquisar SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "Nenhuma SLA encontrada correspondente à sua busca"
+ },
"PAYWALL": {
"TITLE": "Atualize para criar SLAs",
"AVAILABLE_ON": "O recurso SLA está disponível apenas nos planos Business e Enterprise.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "Não há SLAs disponíveis nesta conta.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Horário comercial"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Questões levantadas por clientes empresariais que requerem atenção imediata.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Questões levantadas por clientes empresariais que precisam ser reconhecidas rapidamente."
},
- "BUSINESS_HOURS_ON": "Horários de funcionamento",
- "BUSINESS_HOURS_OFF": "Horário comercial desligado",
+ "BUSINESS_HOURS_ON": "Ativado",
+ "BUSINESS_HOURS_OFF": "Desativado",
"RESPONSE_TYPES": {
"FRT": "Próximo limite de tempo de resposta",
"NRT": "Próximo limite de tempo de resposta",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/snooze.json b/app/javascript/dashboard/i18n/locale/pt_BR/snooze.json
new file mode 100644
index 000000000..e2ae05f2c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minuto",
+ "MINUTES": "minutos",
+ "HOUR": "hora",
+ "HOURS": "horas",
+ "DAY": "dia",
+ "DAYS": "dias",
+ "WEEK": "semana",
+ "WEEKS": "semanas",
+ "MONTH": "mês",
+ "MONTHS": "meses",
+ "YEAR": "ano",
+ "YEARS": "anos"
+ },
+ "HALF": "metade",
+ "NEXT": "próximo",
+ "THIS": "este",
+ "AT": "às",
+ "IN": "em",
+ "FROM_NOW": "a partir de agora",
+ "NEXT_YEAR": "próximo ano",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "amanhã",
+ "DAY_AFTER_TOMORROW": "depois de amanhã",
+ "NEXT_WEEK": "próxima semana",
+ "NEXT_MONTH": "próximo mês",
+ "THIS_WEEKEND": "esta semana",
+ "NEXT_WEEKEND": "próximo fim de semana"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "manhã",
+ "AFTERNOON": "tarde",
+ "EVENING": "noite",
+ "NIGHT": "madrugada",
+ "NOON": "meio-dia",
+ "MIDNIGHT": "meia-noite"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "um",
+ "TWO": "dois",
+ "THREE": "três",
+ "FOUR": "quatro",
+ "FIVE": "cinco",
+ "SIX": "seis",
+ "SEVEN": "sete",
+ "EIGHT": "oito",
+ "NINE": "nove",
+ "TEN": "dez",
+ "TWELVE": "doze",
+ "FIFTEEN": "quinze",
+ "TWENTY": "vinte",
+ "THIRTY": "trinta"
+ },
+ "ORDINALS": {
+ "FIRST": "primeiro",
+ "SECOND": "segundo",
+ "THIRD": "terceiro",
+ "FOURTH": "quarto",
+ "FIFTH": "quinto"
+ },
+ "OF": "de",
+ "AFTER": "depois",
+ "WEEK": "semana",
+ "DAY": "dia"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/teamsSettings.json b/app/javascript/dashboard/i18n/locale/pt_BR/teamsSettings.json
index 325c835a6..b24f89da3 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Buscando times",
"DESCRIPTION": "Os times permitem que você organize agentes em grupos com base em suas responsabilidades. Um agente pode pertencer a vários times. Ao trabalhar de forma colaborativa, você pode atribuir conversas a times específicos.",
"LEARN_MORE": "Saiba mais sobre times",
+ "COUNT": "{n} time | {n} times",
+ "SEARCH_PLACEHOLDER": "Pesquisar times...",
+ "NO_RESULTS": "Nenhum time encontrado correspondente à sua busca",
"LIST": {
"404": "Não existem agentes associados a esta conta.",
"EDIT_TEAM": "Editar time",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Não foi possível salvar os detalhes do time. Tente novamente."
},
"AGENTS": {
- "AGENT": "AGENTE",
- "EMAIL": "E-mail",
+ "AGENT": "Agente",
+ "EMAIL": "e-mail",
"BUTTON_TEXT": "Adicionar agentes",
"ADD_AGENTS": "Adicionando agentes à sua caixa de entrada...",
"SELECT": "Selecionar",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/pt_BR/whatsappTemplates.json
index a5587d239..935334ca6 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/whatsappTemplates.json
@@ -40,7 +40,7 @@
"BUTTON_LABEL": "Botão {index}",
"COUPON_CODE": "Digite o código do cupom (máx. 15 caracteres)",
"MEDIA_URL_LABEL": "Digite a URL {type}",
- "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "DOCUMENT_NAME_PLACEHOLDER": "Informe o nome do arquivo do documento (ex.: Comprovante_2025.pdf)",
"BUTTON_PARAMETER": "Insira o parâmetro do botão"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/yearInReview.json b/app/javascript/dashboard/i18n/locale/pt_BR/yearInReview.json
index b62ec1875..31c4f15be 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/yearInReview.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/yearInReview.json
@@ -1,6 +1,6 @@
{
"YEAR_IN_REVIEW": {
- "TITLE": "Retrospectiva do ano",
+ "TITLE": "Retrospectiva do Ano",
"LOADING": "Carregando sua retrospectiva do ano...",
"ERROR": "Falha ao carregar a retrospectiva do ano",
"CLOSE": "Fechar",
diff --git a/app/javascript/dashboard/i18n/locale/ro/agentBots.json b/app/javascript/dashboard/i18n/locale/ro/agentBots.json
index 02c271f25..258c290fe 100644
--- a/app/javascript/dashboard/i18n/locale/ro/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ro/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "Sistem",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "URL Webhook"
+ "URL": "URL Webhook",
+ "ACTIONS": "Actiuni"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/ro/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ro/agentMgmt.json
index 5871683d4..0df3fc280 100644
--- a/app/javascript/dashboard/i18n/locale/ro/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ro/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Nu există agenți asociați acestui cont",
"TITLE": "Gestionează agenții din echipa ta",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Nu s-a putut conecta la Woot Server, încercați din nou mai târziu"
}
},
+ "SEARCH_PLACEHOLDER": "Agenți de căutare...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Niciun rezultat găsit."
},
diff --git a/app/javascript/dashboard/i18n/locale/ro/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ro/attributesMgmt.json
index 2e5d6271a..03d961959 100644
--- a/app/javascript/dashboard/i18n/locale/ro/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ro/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Preluarea atributelor particularizate",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Cauta atribute...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversație",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/ro/automation.json b/app/javascript/dashboard/i18n/locale/ro/automation.json
index e222fe9a9..a2eba8964 100644
--- a/app/javascript/dashboard/i18n/locale/ro/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ro/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automatizare",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Adaugă Regulă de Automatizare",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Preluarea regulilor de automatizare",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Adaugă Regulă de Automatizare",
"SUBMIT": "Creeaza",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Nume",
- "DESCRIPTION": "Descriere",
"ACTIVE": "Activ",
- "CREATED_ON": "Creat in"
+ "CREATED_ON": "Creat in",
+ "ACTIONS": "Actiuni"
},
"404": "Nu s-au găsit reguli de automatizare"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Modificarea priorității",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Deschiderea conversației"
+ "OPEN_CONVERSATION": "Deschiderea conversației",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/ro/bulkActions.json b/app/javascript/dashboard/i18n/locale/ro/bulkActions.json
index f74467707..b83cf47cf 100644
--- a/app/javascript/dashboard/i18n/locale/ro/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ro/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Statusul conversației a fost actualizat.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "Nu s-au găsit etichete",
diff --git a/app/javascript/dashboard/i18n/locale/ro/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ro/cannedMgmt.json
index fc7f8f075..4b13b2cc3 100644
--- a/app/javascript/dashboard/i18n/locale/ro/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ro/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Răspunsuri predefinite",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Nu există elemente care să corespundă acestei interogări.",
"LIST": {
"404": "Nu există răspunsuri predefinite disponibile în acest cont.",
diff --git a/app/javascript/dashboard/i18n/locale/ro/chatlist.json b/app/javascript/dashboard/i18n/locale/ro/chatlist.json
index 6716cbd93..16ff7b373 100644
--- a/app/javascript/dashboard/i18n/locale/ro/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ro/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ro/contact.json b/app/javascript/dashboard/i18n/locale/ro/contact.json
index 3bd52ac70..77ad5b119 100644
--- a/app/javascript/dashboard/i18n/locale/ro/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ro/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Niciun contact nu se potrivește cu căutarea ta 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Atribuiți etichete",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Către:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subiect :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/ro/conversation.json b/app/javascript/dashboard/i18n/locale/ro/conversation.json
index ff48ec626..a6d388dca 100644
--- a/app/javascript/dashboard/i18n/locale/ro/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ro/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Mesaj şters cu succes",
"FAIL_DELETE_MESSSAGE": "Mesajul nu a putut fi șters! Încercați din nou",
"NO_RESPONSE": "Niciun răspuns",
@@ -173,8 +174,12 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Nu s-a putut atribui eticheta. Vă rugăm încercați din nou."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "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."
}
}
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Dezactivarea semnăturii",
"MSG_INPUT": "Shift + enter pentru linie nouă. Începe cu '/' pentru a selecta un răspuns predeterminat.",
"PRIVATE_MSG_INPUT": "Shift + enter pentru linie nouă. Acest lucru va fi vizibil doar pentru Agenți",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Semnătura mesajului nu este configurată, vă rugăm să o configurați în setările profilului.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click aici pentru a actualiza",
"WHATSAPP_TEMPLATES": "Șabloane WhatsApp"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Trageți și plasați aici pentru atașare",
"START_AUDIO_RECORDING": "Pornirea înregistrării audio",
"STOP_AUDIO_RECORDING": "Mesaj audio",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Adaugă bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Fișierul depășește limita de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Mesajul nu poate fi trimis, te rugăm să încerci din nou mai târziu",
"SENT_BY": "Trimis de:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Nu a putut trimite mesaj! Încearcă din nou",
"TRY_AGAIN": "reîncercare",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Renunță",
"SEND_EMAIL_SUCCESS": "Transscrisul de chat a fost trimis cu succes",
"SEND_EMAIL_ERROR": "A apărut o eroare, încercați din nou",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Trimite transcrierea către client",
"SEND_TO_AGENT": "Trimite transcrierea către agentul atribuit",
diff --git a/app/javascript/dashboard/i18n/locale/ro/customRole.json b/app/javascript/dashboard/i18n/locale/ro/customRole.json
index 8d11d6e10..a01e8f34e 100644
--- a/app/javascript/dashboard/i18n/locale/ro/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/ro/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Nu există elemente care să corespundă acestei interogări.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/ro/datePicker.json b/app/javascript/dashboard/i18n/locale/ro/datePicker.json
index ab745096f..35ac5b3f7 100644
--- a/app/javascript/dashboard/i18n/locale/ro/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/ro/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Aplică",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Ultimele 3 luni",
"LAST_6_MONTHS": "Ultimele 6 luni",
"LAST_YEAR": "Anul trecut",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Interval de date particularizat"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ro/general.json b/app/javascript/dashboard/i18n/locale/ro/general.json
index 04919710f..9effcd994 100644
--- a/app/javascript/dashboard/i18n/locale/ro/general.json
+++ b/app/javascript/dashboard/i18n/locale/ro/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Închide",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Da",
+ "NO": "Nu"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ro/generalSettings.json b/app/javascript/dashboard/i18n/locale/ro/generalSettings.json
index 87f6bba40..8e2a8a3ab 100644
--- a/app/javascript/dashboard/i18n/locale/ro/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ro/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Căutarea sau saltul la",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Rapoarte",
diff --git a/app/javascript/dashboard/i18n/locale/ro/helpCenter.json b/app/javascript/dashboard/i18n/locale/ro/helpCenter.json
index 0eb367788..9a2c2ab2b 100644
--- a/app/javascript/dashboard/i18n/locale/ro/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ro/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Eroare la ștergerea articolului"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Vă rugăm să adăugați titlul articolului și conținutul pentru a putea actualiza setările"
},
diff --git a/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json
index 5b11a23e0..d673a4829 100644
--- a/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Căsuțe",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Salvează"
}
@@ -589,8 +592,10 @@
"DISABLED": "Dezactivat"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Activat",
- "DISABLED": "Dezactivat"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Permite"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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": "Setări",
@@ -694,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ți",
"INBOX_AGENTS_SUB_TEXT": "Adaugă sau elimină agenți din acest inbox",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Activați continuitatea conversației prin e-mail",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversațiile vor continua prin e-mail dacă adresa de e-mail de contact este disponibilă.",
- "LOCK_TO_SINGLE_CONVERSATION": "Blocarea la o singură conversație",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Activarea sau dezactivarea mai multor conversații pentru aceeași persoană de contact în acest inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Setări Inbox",
"INBOX_UPDATE_SUB_TEXT": "Actualizează setările de inbox",
"AUTO_ASSIGNMENT_SUB_TEXT": "Activează sau dezactivează atribuirea automată a conversațiilor noi la agenții adăugați la această căsuță poștală.",
@@ -758,6 +775,7 @@
"LABEL": "Asistenta",
"PLACEHOLDER": "Selectați Centrul de ajutor",
"SELECT_PLACEHOLDER": "Selectați Centrul de ajutor",
+ "NONE": "Nimic",
"REMOVE": "Eliminarea Centrului de ajutor",
"SUB_TEXT": "Atașarea unui Centru de ajutor cu inboxul"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Vă rugăm să introduceți o valoare mai mare de 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limitați numărul maxim de conversații din acest inbox care pot fi atribuite automat unui agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Atribuirea conversației",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Activ",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Renunță",
+ "CONFIRM_DELETE": "Şterge",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reautorizează",
"SUBTITLE": "Conexiunea ta de Facebook a expirat, te rugăm să-ți reconectezi pagina de Facebook pentru a continua serviciile",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Mergeți înapoi"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Mesaj indisponibil pentru vizitatori",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Zi",
+ "AVAILABILITY": "Disponibilitate",
+ "HOURS": "Hours",
"ENABLE": "Activați disponibilitatea pentru această zi",
"UNAVAILABLE": "Indisponibil",
- "HOURS": "ore",
"VALIDATION_ERROR": "Ora de începere ar trebui să fie înainte de ora închiderii.",
"CHOOSE": "Alege"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Într-o zi"
},
"WIDGET_COLOR_LABEL": "Culoare widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Poziția",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Tip",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tip:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Discută cu noi",
- "LABEL": "Widget Bubble Launcher Titlu",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Discută cu noi"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Implicit",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "De obicei, răspunsurile în câteva minute",
diff --git a/app/javascript/dashboard/i18n/locale/ro/integrationApps.json b/app/javascript/dashboard/i18n/locale/ro/integrationApps.json
index fa12043aa..74260f3e3 100644
--- a/app/javascript/dashboard/i18n/locale/ro/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ro/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Preluarea integrărilor",
"NO_HOOK_CONFIGURED": "Nu există integrări {integrationId} configurate în acest cont.",
"HEADER": "Aplicatii",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Activat",
"DISABLED": "Dezactivat"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Preluarea cârligelor de integrare",
"INBOX": "Inbox",
+ "ACTIONS": "Actiuni",
"DELETE": {
"BUTTON_TEXT": "Şterge"
}
diff --git a/app/javascript/dashboard/i18n/locale/ro/integrations.json b/app/javascript/dashboard/i18n/locale/ro/integrations.json
index cb5ffc802..50a0a7b22 100644
--- a/app/javascript/dashboard/i18n/locale/ro/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ro/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Evenimente subscrise",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Renunță",
"DESC": "Evenimentele Webhook vă oferă informații în timp real despre ce se întâmplă în contul dvs. Chatwoot. Introduceți un URL valid pentru a configura un callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Şterge",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesională",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Amical"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Aplicații tablou de bord
Aplicațiile tablou de bord permit organizațiilor să încorporeze o aplicație în tabloul de bord Chatwoot pentru a oferi contextul pentru agenții de asistență pentru clienți. Această caracteristică vă permite să creați o aplicație independent și să o încorporați în interiorul tabloului de bord pentru a furniza informații despre utilizator, comenzile lor sau istoricul plăților anterioare.
Când încorporați aplicația utilizând tabloul de bord în Chatwoot, aplicația va primi contextul conversației și al contactului ca eveniment de fereastră. Implementați un ascultător pentru evenimentul mesajului de pe pagina dvs., pentru a primi contextul.
Pentru a adăuga o nouă aplicație de tablou de bord, faceți clic pe butonul \"Adăugați o nouă aplicație de tablou de bord\".
",
"DESCRIPTION": "Aplicațiile tablou de bord permit organizațiilor să încorporeze o aplicație în interiorul tabloului de bord pentru a oferi contextul agenților de asistență pentru clienți. Această caracteristică vă permite să creați o aplicație independent și să o încorporați pentru a furniza informații despre utilizator, comenzile lor sau istoricul plăților anterioare.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Nu există încă aplicații de tablou de bord configurate pe acest cont",
"LOADING": "Preluarea aplicațiilor de tablou de bord...",
"TABLE_HEADER": {
"NAME": "Nume",
- "ENDPOINT": "Punct final"
+ "ENDPOINT": "Punct final",
+ "ACTIONS": "Actiuni"
},
"EDIT_TOOLTIP": "Editarea aplicației",
"DELETE_TOOLTIP": "Ștergerea aplicației"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/ro/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ro/labelsMgmt.json
index dd4a7c1fa..e24102933 100644
--- a/app/javascript/dashboard/i18n/locale/ro/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ro/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Preluarea etichetelor",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Căutare etichete...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Nu există elemente care să corespundă acestei interogări",
"LIST": {
"404": "Nu există răspunsuri predefinite disponibile în acest cont.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Nume",
"DESCRIPTION": "Descriere",
- "COLOR": "Culoare"
+ "COLOR": "Culoare",
+ "ACTION": "Actiuni"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ro/macros.json b/app/javascript/dashboard/i18n/locale/ro/macros.json
index 443a3cbd7..da1edfd78 100644
--- a/app/javascript/dashboard/i18n/locale/ro/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ro/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macrocomenzi",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Adaugă un nou webhook",
"HEADER_BTN_TXT_SAVE": "Salvarea macrocomenzii",
"LOADING": "Preluarea macrocomenzilor",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Ceva nu a mers bine. Vă rugăm să încercați din nou",
"ORDER_INFO": "Macrocomenzile vor rula în ordinea în care adăugați acțiunile. Le puteți rearanja trăgându-le de mânerul de lângă fiecare nod.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Nume",
"CREATED BY": "Creat de",
"LAST_UPDATED_BY": "Ultima actualizare de către",
- "VISIBILITY": "Vizibilitate"
+ "VISIBILITY": "Vizibilitate",
+ "ACTIONS": "Actiuni"
},
"404": "Nu s-au găsit macrocomenzi"
},
diff --git a/app/javascript/dashboard/i18n/locale/ro/mfa.json b/app/javascript/dashboard/i18n/locale/ro/mfa.json
index 89f9dacf8..420e46f5a 100644
--- a/app/javascript/dashboard/i18n/locale/ro/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/ro/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/ro/report.json b/app/javascript/dashboard/i18n/locale/ro/report.json
index a41f15393..fb1f2d9d4 100644
--- a/app/javascript/dashboard/i18n/locale/ro/report.json
+++ b/app/javascript/dashboard/i18n/locale/ro/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversații",
"LOADING_CHART": "Încărcare date grafic...",
"NO_ENOUGH_DATA": "Nu am primit suficiente date pentru a genera raportul. Vă rugăm să încercați din nou mai târziu.",
- "DOWNLOAD_AGENT_REPORTS": "Descărcați rapoartele agenților",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Preluarea datelor a eșuat, te rugăm să încerci din nou mai târziu.",
"SUMMARY_FETCHING_FAILED": "Preluarea rezumatului a eșuat, te rugăm să încerci mai târziu.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Prezentare generală a agenților",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Încărcare date grafic...",
"NO_ENOUGH_DATA": "Nu am primit suficiente date pentru a genera raportul. Vă rugăm să încercați din nou mai târziu.",
"DOWNLOAD_AGENT_REPORTS": "Descărcați rapoartele agenților",
"FILTER_DROPDOWN_LABEL": "Selectează agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Agenți de căutare"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversații",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Nu am primit suficiente date pentru a genera raportul. Vă rugăm să încercați din nou mai târziu.",
"DOWNLOAD_LABEL_REPORTS": "Descărcarea rapoartelor de etichete",
"FILTER_DROPDOWN_LABEL": "Selectați etichetă",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Căutare etichete"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversații",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Selectați Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversații",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Prezentare generală a echipei",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Încărcare date grafic...",
"NO_ENOUGH_DATA": "Nu am primit suficiente date pentru a genera raportul. Vă rugăm să încercați din nou mai târziu.",
"DOWNLOAD_TEAM_REPORTS": "Descărcați rapoartele echipei",
"FILTER_DROPDOWN_LABEL": "Selectați echipa",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Echipele de căutare"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversații",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Rapoarte CSAT",
- "NO_RECORDS": "Nu există răspunsuri predefinite disponibile în acest cont.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Descărcați rapoartele CSAT",
"DOWNLOAD_FAILED": "Descărcarea rapoartelor CSAT a eșuat",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Agenți de căutare",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Echipele de căutare",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Alege agenți"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Echipa"
+ },
+ "RATINGS": {
+ "LABEL": "Evaluare"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Agent atribuit",
+ "AGENT_NAME": "Agent",
"RATING": "Evaluare",
- "FEEDBACK_TEXT": "Comentariu feedback"
- }
+ "FEEDBACK_TEXT": "Comentariu feedback",
+ "CONVERSATION": "Conversație",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Răspunsuri totale",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Rata de răspuns",
"TOOLTIP": "Numărul total de răspunsuri / Numărul total de mesaje de sondaj CSAT trimise * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Salvează",
+ "CANCEL": "Renunță",
+ "SAVING": "Se salvează...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/ro/settings.json b/app/javascript/dashboard/i18n/locale/ro/settings.json
index ee90bd7d3..14b7b9730 100644
--- a/app/javascript/dashboard/i18n/locale/ro/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ro/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Descărcare",
"UPLOADING": "Încărcare...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Această poveste nu mai este disponibilă."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Această poveste nu mai este disponibilă.",
+ "INSTAGRAM_STORY_REPLY": "A răspuns la povestea ta:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Vezi pe hartă"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Citiți Documente",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Caracteristici",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Facturare",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Cauta atribute"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Rezolvarea conversației",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Rezolvarea conversației",
+ "CANCEL": "Renunță"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Da",
+ "NO": "Nu"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! Nu am putut găsi niciun cont Chatwoot. Vă rugăm să creați un cont nou pentru a continua.",
"NEW_ACCOUNT": "Cont Nou",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Renunță"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ro/signup.json b/app/javascript/dashboard/i18n/locale/ro/signup.json
index ab33b8ddf..85d124949 100644
--- a/app/javascript/dashboard/i18n/locale/ro/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ro/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Creează cont",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Inregistrare",
"TESTIMONIAL_HEADER": "Tot ce trebuie este un pas pentru a merge mai departe",
"TESTIMONIAL_CONTENT": "Ești la un pas de a-ți angaja clienții, de a-i păstra și de a găsi altele noi.",
diff --git a/app/javascript/dashboard/i18n/locale/ro/sla.json b/app/javascript/dashboard/i18n/locale/ro/sla.json
index 21c9c9d63..de03f053d 100644
--- a/app/javascript/dashboard/i18n/locale/ro/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ro/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/ro/snooze.json b/app/javascript/dashboard/i18n/locale/ro/snooze.json
new file mode 100644
index 000000000..7c94fc68e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ro/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "ore",
+ "DAY": "zi",
+ "DAYS": "days",
+ "WEEK": "zi",
+ "WEEKS": "weeks",
+ "MONTH": "săptămână",
+ "MONTHS": "months",
+ "YEAR": "luna",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "mâine",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "săptămâna viitoare",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "zi",
+ "DAY": "zi"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ro/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ro/teamsSettings.json
index fa8c107bf..05774501f 100644
--- a/app/javascript/dashboard/i18n/locale/ro/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ro/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Echipele de căutare...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Nu există echipe create în acest cont.",
"EDIT_TEAM": "Editează echipa",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Nu a putut salva detaliile echipei. Încearcă din nou."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "E-MAIL",
+ "AGENT": "Agent",
+ "EMAIL": "E-mail",
"BUTTON_TEXT": "Adaugă Agent",
"ADD_AGENTS": "Adăugarea agenților în echipa ta...",
"SELECT": "selectează",
diff --git a/app/javascript/dashboard/i18n/locale/ru/agentBots.json b/app/javascript/dashboard/i18n/locale/ru/agentBots.json
index 0dee90036..9fa37d636 100644
--- a/app/javascript/dashboard/i18n/locale/ru/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ru/agentBots.json
@@ -3,8 +3,11 @@
"HEADER": "Боты",
"LOADING_EDITOR": "Загрузка редактора...",
"DESCRIPTION": "Боты — это ваши незаменимые помощники. Они берут на себя рутину, чтобы вы могли сосредоточиться на важном. Попробуйте! Управлять ботами можно на этой странице, а новых — создавать с помощью кнопки «Добавить бота».",
- "LEARN_MORE": "Learn about agent bots",
- "GLOBAL_BOT": "Система",
+ "LEARN_MORE": "Подробнее о ботах-агентах",
+ "COUNT": "{n} бот | {n} боты",
+ "SEARCH_PLACEHOLDER": "Поиск ботов...",
+ "NO_RESULTS": "Не найдено ботов, соответствующих вашему запросу",
+ "GLOBAL_BOT": "Системный бот",
"GLOBAL_BOT_BADGE": "Система",
"AVATAR": {
"SUCCESS_DELETE": "Аватар бота был успешно удалён",
@@ -12,11 +15,11 @@
},
"BOT_CONFIGURATION": {
"TITLE": "Выберите бота агента",
- "DESC": "Назначить бота агента на источник. Они могут отвечать на первоначальные сообщения и передавать их агенту в случае необходимости.",
+ "DESC": "Назначьте бота агента для источника. Он может обрабатывать первоначальные диалоги и передавать их живому агенту при необходимости.",
"SUBMIT": "Обновить",
"DISCONNECT": "Отключить бота",
- "SUCCESS_MESSAGE": "Оператор успешно обновлен ботом.",
- "DISCONNECTED_SUCCESS_MESSAGE": "Успешное отключение робота агента.",
+ "SUCCESS_MESSAGE": "Бот агента успешно обновлён.",
+ "DISCONNECTED_SUCCESS_MESSAGE": "Бот агента успешно отключён.",
"ERROR_MESSAGE": "Не удалось обновить бота агента. Пожалуйста, повторите попытку позже.",
"DISCONNECTED_ERROR_MESSAGE": "Не удалось отключить бота агента. Пожалуйста, повторите попытку позже.",
"SELECT_PLACEHOLDER": "Выбрать бота"
@@ -34,7 +37,8 @@
"LOADING": "Получение ботов...",
"TABLE_HEADER": {
"DETAILS": "Детали бота",
- "URL": "URL вебхука"
+ "URL": "URL вебхука",
+ "ACTIONS": "Действия"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/ru/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ru/agentMgmt.json
index 17eb0f150..d8f0809b0 100644
--- a/app/javascript/dashboard/i18n/locale/ru/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ru/agentMgmt.json
@@ -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": "Результаты не найдены."
},
diff --git a/app/javascript/dashboard/i18n/locale/ru/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ru/attributesMgmt.json
index a9fae7b84..402663784 100644
--- a/app/javascript/dashboard/i18n/locale/ru/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ru/attributesMgmt.json
@@ -5,8 +5,11 @@
"LOADING": "Получение пользовательских атрибутов",
"DESCRIPTION": "Пользовательский атрибут отслеживает дополнительную информацию о ваших контактах или разговорах, таких как план подписки или дата их первой покупки. Вы можете добавить различные типы пользовательских атрибутов, такие как текст, списки или цифры, чтобы захватить нужную вам информацию.",
"LEARN_MORE": "Узнайте больше о пользовательских атрибутах",
+ "COUNT": "{n} атрибут | {n} атрибутов",
+ "SEARCH_PLACEHOLDER": "Поиск по атрибутам...",
+ "NO_RESULTS": "Не найдено атрибутов, соответствующих вашему запросу",
"ATTRIBUTE_MODELS": {
- "CONVERSATION": "Диалоги",
+ "CONVERSATION": "Диалог",
"CONTACT": "Контакт"
},
"ATTRIBUTE_TYPES": {
@@ -23,7 +26,7 @@
"CANCEL_BUTTON_TEXT": "Отменить",
"FORM": {
"NAME": {
- "LABEL": "Отображать имя",
+ "LABEL": "Отображаемое имя",
"PLACEHOLDER": "Введите отображаемое имя пользовательского атрибута",
"ERROR": "Необходимо указать имя"
},
@@ -54,15 +57,19 @@
"IN_VALID": "Неверный ключ"
},
"REGEX_PATTERN": {
- "LABEL": "Шаблон Regex",
- "PLACEHOLDER": "Пожалуйста, введите пользовательский атрибут шаблона регулярного выражения. (Опционально)"
+ "LABEL": "Шаблон регулярного выражения",
+ "PLACEHOLDER": "Пожалуйста, введите шаблон регулярного выражения для пользовательского атрибута. (Опционально)"
},
"REGEX_CUE": {
- "LABEL": "Предложенное регулярное выражение",
- "PLACEHOLDER": "Пожалуйста, введите подсказку для регулярного выражения. (Опционально)"
+ "LABEL": "Подсказка регулярного выражения",
+ "PLACEHOLDER": "Пожалуйста, введите подсказку для шаблона регулярного выражения. (Опционально)"
},
"ENABLE_REGEX": {
"LABEL": "Включить проверку регулярных выражений"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Пре-чат",
+ "RESOLUTION": "Завершение диалога"
}
},
"API": {
@@ -73,8 +80,8 @@
"DELETE": {
"BUTTON_TEXT": "Удалить",
"API": {
- "SUCCESS_MESSAGE": "Пользовательский атрибут успешно добавлен.",
- "ERROR_MESSAGE": "Не возможно удалить пользовательский атрибут. Попробуйте еще раз."
+ "SUCCESS_MESSAGE": "Пользовательский атрибут успешно удалён.",
+ "ERROR_MESSAGE": "Невозможно удалить пользовательский атрибут. Попробуйте ещё раз."
},
"CONFIRM": {
"TITLE": "Вы уверены, что хотите удалить - {attributeName}",
@@ -100,7 +107,7 @@
},
"TABS": {
"HEADER": "Пользовательские атрибуты",
- "CONVERSATION": "Диалоги",
+ "CONVERSATION": "Диалог",
"CONTACT": "Контакт"
},
"LIST": {
@@ -119,20 +126,20 @@
"NOT_FOUND": "Нет настроенных пользовательских атрибутов"
},
"REGEX_PATTERN": {
- "LABEL": "Шаблон Regex",
- "PLACEHOLDER": "Пожалуйста, введите пользовательский атрибут шаблона регулярного выражения. (Опционально)"
+ "LABEL": "Шаблон регулярного выражения",
+ "PLACEHOLDER": "Пожалуйста, введите шаблон регулярного выражения для пользовательского атрибута. (Опционально)"
},
"REGEX_CUE": {
- "LABEL": "Предложенное регулярное выражение",
- "PLACEHOLDER": "Пожалуйста, введите подсказку для регулярного выражения. (Опционально)"
+ "LABEL": "Подсказка регулярного выражения",
+ "PLACEHOLDER": "Пожалуйста, введите подсказку для шаблона регулярного выражения. (Опционально)"
},
"ENABLE_REGEX": {
"LABEL": "Включить проверку регулярных выражений"
}
},
"BADGES": {
- "PRE_CHAT": "Pre-chat",
- "RESOLUTION": "Resolution"
+ "PRE_CHAT": "Пре-чат",
+ "RESOLUTION": "Завершение диалога"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/auditLogs.json b/app/javascript/dashboard/i18n/locale/ru/auditLogs.json
index f851a525c..8818396c2 100644
--- a/app/javascript/dashboard/i18n/locale/ru/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ru/auditLogs.json
@@ -2,18 +2,18 @@
"AUDIT_LOGS": {
"HEADER": "Журнал аудита",
"HEADER_BTN_TXT": "Добавить журнал аудита",
- "LOADING": "Получение журнала аудита",
- "DESCRIPTION": "Журнал аудита ведет запись действий в вашей учетной записи, позволяя отслеживать и проверять действия учетной записи, команды или сервисов.",
+ "LOADING": "Загрузка журнала аудита",
+ "DESCRIPTION": "Журнал аудита фиксирует действия в вашей учетной записи, позволяя отслеживать и проверять действия пользователей, команд и сервисов.",
"LEARN_MORE": "Узнать больше о журнале аудита",
- "SEARCH_404": "Нет элементов, соответствующих вашему запросу",
- "SIDEBAR_TXT": "
Журнал аудита
Журнал аудита — это следы событий и действий в системе Chatwoot.
",
+ "SEARCH_404": "По вашему запросу ничего не найдено",
+ "SIDEBAR_TXT": "
Журнал аудита
Журнал аудита фиксирует события и действия в системе Chatwoot.
",
"LIST": {
- "404": "В этой учетной записи нет доступных журналов аудита.",
+ "404": "В этой учетной записи нет записей журнала аудита.",
"TITLE": "Управление журналом аудита",
- "DESC": "Журнал аудита — это следы событий и действий в системе Chatwoot.",
+ "DESC": "Журнал аудита фиксирует события и действия в системе Chatwoot.",
"TABLE_HEADER": {
- "ACTIVITY": "Пользователь",
- "TIME": "Действия",
+ "ACTIVITY": "Действие",
+ "TIME": "Время",
"IP_ADDRESS": "IP-адрес"
}
},
@@ -28,9 +28,9 @@
"DELETE": "{agentName} удалил правило автоматизации (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "{agentName} Пригашен {invitee} права аккаунта {role}",
+ "ADD": "{agentName} пригласил {invitee} с ролью {role}",
"EDIT": {
- "SELF": "{agentName} изменить {attributes} на {values}",
+ "SELF": "{agentName} изменил {attributes} на {values}",
"OTHER": "{agentName} изменил {attributes} пользователя {user} на {values}",
"DELETED": "{agentName} изменил {attributes} удаленного пользователя на {values}"
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/automation.json b/app/javascript/dashboard/i18n/locale/ru/automation.json
index 5c9e187b3..644c92c67 100644
--- a/app/javascript/dashboard/i18n/locale/ru/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ru/automation.json
@@ -1,10 +1,13 @@
{
"AUTOMATION": {
"HEADER": "Автоматизация",
- "DESCRIPTION": "Автоматизация может заменить и упростить существующие процессы, которые требуют ручной работы, такие как добавление меток и распределение разговоров на наиболее подходящего агента. Это позволяет команде сосредоточиться на своих сильных сторонах, сокращая время, затраченное на рутинные задачи.",
- "LEARN_MORE": "Узнайте больше об автоматизации",
- "HEADER_BTN_TXT": "Добавить правило автоматизации",
+ "DESCRIPTION": "Автоматизация позволяет заменить и упростить процессы, требующие ручной работы, такие как добавление меток и назначение диалогов наиболее подходящим агентам. Это помогает команде сосредоточиться на ключевых задачах и сократить время на рутину.",
+ "LEARN_MORE": "Узнать больше об автоматизации",
+ "COUNT": "{n} автоматизация | {n} автоматизаций",
+ "HEADER_BTN_TXT": "Создать автоматизацию",
"LOADING": "Получение правил автоматизации",
+ "SEARCH_PLACEHOLDER": "Поиск правил автоматизации...",
+ "NO_RESULTS": "Не найдено правил автоматизации, соответствующих вашему запросу",
"ADD": {
"TITLE": "Добавить правило автоматизации",
"SUBMIT": "Создать",
@@ -13,16 +16,16 @@
"NAME": {
"LABEL": "Название правила",
"PLACEHOLDER": "Введите название правила",
- "ERROR": "Необходимо указать имя"
+ "ERROR": "Необходимо указать название"
},
"DESC": {
"LABEL": "Описание",
"PLACEHOLDER": "Введите описание правила",
- "ERROR": "Необходимо описание"
+ "ERROR": "Необходимо указать описание"
},
"EVENT": {
"LABEL": "Событие",
- "PLACEHOLDER": "Пожалуйста, выберите один",
+ "PLACEHOLDER": "Пожалуйста, выберите одно",
"ERROR": "Необходимо указать событие"
},
"CONDITIONS": {
@@ -36,15 +39,15 @@
"ACTION_BUTTON_LABEL": "Добавить действие",
"API": {
"SUCCESS_MESSAGE": "Правило автоматизации успешно добавлено",
- "ERROR_MESSAGE": "Не удалось создать правило автоматизации, пожалуйста, повторите попытку позже"
+ "ERROR_MESSAGE": "Не удалось создать правило автоматизации. Пожалуйста, попробуйте позже"
}
},
"LIST": {
"TABLE_HEADER": {
- "NAME": "Имя",
- "DESCRIPTION": "Описание",
+ "NAME": "Название",
"ACTIVE": "Активно",
- "CREATED_ON": "Создано"
+ "CREATED_ON": "Дата создания",
+ "ACTIONS": "Действия"
},
"404": "Правила автоматизации не найдены"
},
@@ -54,29 +57,29 @@
"CANCEL_BUTTON_TEXT": "Отменить",
"CONFIRM": {
"TITLE": "Подтвердите удаление",
- "MESSAGE": "Вы точно хотите удалить ",
+ "MESSAGE": "Вы уверены, что хотите удалить ",
"YES": "Да, удалить ",
- "NO": "Нет, не удалять "
+ "NO": "Нет, оставить "
},
"API": {
"SUCCESS_MESSAGE": "Правило автоматизации успешно удалено",
- "ERROR_MESSAGE": "Не удалось удалить правило автоматизации, пожалуйста, повторите попытку позже"
+ "ERROR_MESSAGE": "Не удалось удалить правило автоматизации. Пожалуйста, попробуйте позже"
}
},
"EDIT": {
- "TITLE": "Изменить правило автоматизации",
+ "TITLE": "Редактировать правило автоматизации",
"SUBMIT": "Обновить",
"CANCEL_BUTTON_TEXT": "Отменить",
"API": {
"SUCCESS_MESSAGE": "Правило автоматизации успешно обновлено",
- "ERROR_MESSAGE": "Не удалось обновить правило автоматизации, повторите попытку позже"
+ "ERROR_MESSAGE": "Не удалось обновить правило автоматизации. Пожалуйста, попробуйте позже"
}
},
"CLONE": {
- "TOOLTIP": "Копировать",
+ "TOOLTIP": "Дублировать",
"API": {
- "SUCCESS_MESSAGE": "Правило автоматизации успешно скопировано",
- "ERROR_MESSAGE": "Не удалось скопировать правило автоматизации, повторите попытку позже"
+ "SUCCESS_MESSAGE": "Правило автоматизации успешно дублировано",
+ "ERROR_MESSAGE": "Не удалось дублировать правило автоматизации. Пожалуйста, попробуйте позже"
}
},
"FORM": {
@@ -87,51 +90,51 @@
"RESET_MESSAGE": "Изменение типа события сбросит условия и события, добавленные вами ниже"
},
"CONDITION": {
- "DELETE_MESSAGE": "Вам нужно иметь по крайней мере одно условие для сохранения",
- "CONTACT_CUSTOM_ATTR_LABEL": "Контактные пользовательские атрибуты",
- "CONVERSATION_CUSTOM_ATTR_LABEL": "Пользовательские атрибуты разговора"
+ "DELETE_MESSAGE": "Для сохранения необходимо указать хотя бы одно условие",
+ "CONTACT_CUSTOM_ATTR_LABEL": "Пользовательские атрибуты контакта",
+ "CONVERSATION_CUSTOM_ATTR_LABEL": "Пользовательские атрибуты диалога"
},
"ACTION": {
- "DELETE_MESSAGE": "Вам нужно иметь по крайней мере одно условие для сохранения",
- "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Напишите здесь ваше сообщение",
+ "DELETE_MESSAGE": "Для сохранения необходимо указать хотя бы одно действие",
+ "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Введите сообщение",
"TEAM_DROPDOWN_PLACEHOLDER": "Выберите команды",
"EMAIL_INPUT_PLACEHOLDER": "Введите адрес электронной почты",
"URL_INPUT_PLACEHOLDER": "Введите URL-адрес"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Включить правило автоматизации",
- "DEACTIVATION_TITLE": "Выключить правило автоматизации",
- "ACTIVATION_DESCRIPTION": "Это действие запустит правило автоматизации '{automationName}'. Вы уверены, что хотите продолжить?",
- "DEACTIVATION_DESCRIPTION": "Это действие отключит правило автоматизации '{automationName}'. Вы уверены, что хотите продолжить?",
+ "DEACTIVATION_TITLE": "Отключить правило автоматизации",
+ "ACTIVATION_DESCRIPTION": "Это действие включит правило автоматизации «{automationName}». Продолжить?",
+ "DEACTIVATION_DESCRIPTION": "Это действие отключит правило автоматизации «{automationName}». Продолжить?",
"ACTIVATION_SUCCESFUL": "Правило автоматизации успешно включено",
"DEACTIVATION_SUCCESFUL": "Правило автоматизации успешно отключено",
- "ACTIVATION_ERROR": "Не удалось включить правило автоматизации, пожалуйста, повторите попытку позже",
- "DEACTIVATION_ERROR": "Не удалось отключить правило автоматизации, пожалуйста, повторите попытку позже",
+ "ACTIVATION_ERROR": "Не удалось включить правило автоматизации. Пожалуйста, попробуйте позже",
+ "DEACTIVATION_ERROR": "Не удалось отключить правило автоматизации. Пожалуйста, попробуйте позже",
"CONFIRMATION_LABEL": "Да",
"CANCEL_LABEL": "Нет"
},
"ATTACHMENT": {
- "UPLOAD_ERROR": "Не удалось загрузить вложение, попробуйте еще раз",
- "LABEL_IDLE": "Загрузка вложений",
- "LABEL_UPLOADING": "Загружаем...",
+ "UPLOAD_ERROR": "Не удалось загрузить вложение. Пожалуйста, попробуйте ещё раз",
+ "LABEL_IDLE": "Загрузить вложение",
+ "LABEL_UPLOADING": "Загрузка...",
"LABEL_UPLOADED": "Успешно загружено",
- "LABEL_UPLOAD_FAILED": "Загрузка не удалась"
+ "LABEL_UPLOAD_FAILED": "Ошибка загрузки"
},
"ERRORS": {
- "ATTRIBUTE_KEY_REQUIRED": "Необходимо ввести ключ атрибута",
- "FILTER_OPERATOR_REQUIRED": "Требуется оператор фильтра",
+ "ATTRIBUTE_KEY_REQUIRED": "Необходимо указать ключ атрибута",
+ "FILTER_OPERATOR_REQUIRED": "Необходимо указать оператор фильтра",
"VALUE_REQUIRED": "Необходимо указать значение",
- "VALUE_MUST_BE_BETWEEN_1_AND_998": "Значение должно быть между 1 и 998",
- "ACTION_PARAMETERS_REQUIRED": "Требуются параметры действий",
- "ATLEAST_ONE_CONDITION_REQUIRED": "Требуется хотя бы одно условие",
- "ATLEAST_ONE_ACTION_REQUIRED": "Требуется хотя бы одно действие"
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Значение должно быть в диапазоне от 1 до 998",
+ "ACTION_PARAMETERS_REQUIRED": "Необходимо указать параметры действия",
+ "ATLEAST_ONE_CONDITION_REQUIRED": "Необходимо указать хотя бы одно условие",
+ "ATLEAST_ONE_ACTION_REQUIRED": "Необходимо указать хотя бы одно действие"
},
- "NONE_OPTION": "Ничего",
+ "NONE_OPTION": "Нет",
"EVENTS": {
"CONVERSATION_CREATED": "Диалог создан",
"CONVERSATION_UPDATED": "Диалог обновлён",
"MESSAGE_CREATED": "Сообщение создано",
- "CONVERSATION_RESOLVED": "Диалог решён",
+ "CONVERSATION_RESOLVED": "Диалог завершён",
"CONVERSATION_OPENED": "Диалог открыт"
},
"ACTIONS": {
@@ -140,45 +143,46 @@
"ADD_LABEL": "Добавить метку",
"REMOVE_LABEL": "Удалить метку",
"SEND_EMAIL_TO_TEAM": "Отправить Email команде",
- "SEND_EMAIL_TRANSCRIPT": "Отправить историю переписки на email",
- "MUTE_CONVERSATION": "Заглушить диалог",
- "SNOOZE_CONVERSATION": "Включить звук диалога",
- "RESOLVE_CONVERSATION": "Решить диалог",
- "SEND_WEBHOOK_EVENT": "Отправить событие Webhook",
+ "SEND_EMAIL_TRANSCRIPT": "Отправить историю переписки по Email",
+ "MUTE_CONVERSATION": "Отключить уведомления",
+ "SNOOZE_CONVERSATION": "Отложить диалог",
+ "RESOLVE_CONVERSATION": "Завершить диалог",
+ "SEND_WEBHOOK_EVENT": "Отправить Webhook-событие",
"SEND_ATTACHMENT": "Отправить вложение",
"SEND_MESSAGE": "Отправить сообщение",
- "ADD_PRIVATE_NOTE": "Добавить личную заметку",
+ "ADD_PRIVATE_NOTE": "Добавить приватную заметку",
"CHANGE_PRIORITY": "Изменить приоритет",
"ADD_SLA": "Добавить SLA",
- "OPEN_CONVERSATION": "Открыть беседу"
+ "OPEN_CONVERSATION": "Открыть диалог",
+ "PENDING_CONVERSATION": "Пометить разговор как ожидающий"
},
"MESSAGE_TYPES": {
"INCOMING": "Входящее сообщение",
"OUTGOING": "Исходящее сообщение"
},
"PRIORITY_TYPES": {
- "NONE": "Ничего",
- "LOW": "Низкая",
- "MEDIUM": "Средняя",
- "HIGH": "Высокая",
- "URGENT": "Срочность"
+ "NONE": "Нет",
+ "LOW": "Низкий",
+ "MEDIUM": "Средний",
+ "HIGH": "Высокий",
+ "URGENT": "Срочный"
},
"ATTRIBUTES": {
"MESSAGE_TYPE": "Тип сообщения",
"MESSAGE_CONTAINS": "Сообщение содержит",
"EMAIL": "Email",
- "INBOX": "Электронная почта",
- "CONVERSATION_LANGUAGE": "Язык сообщения",
+ "INBOX": "Источник",
+ "CONVERSATION_LANGUAGE": "Язык диалога",
"PHONE_NUMBER": "Номер телефона",
"STATUS": "Статус",
"BROWSER_LANGUAGE": "Язык браузера",
"MAIL_SUBJECT": "Тема письма",
"COUNTRY_NAME": "Страна",
- "REFERER_LINK": "Реферальная ссылка",
- "ASSIGNEE_NAME": "Назначено",
+ "REFERER_LINK": "Источник перехода",
+ "ASSIGNEE_NAME": "Назначенный агент",
"TEAM_NAME": "Команда",
"PRIORITY": "Приоритет",
- "LABELS": "Категории"
+ "LABELS": "Метки"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/bulkActions.json b/app/javascript/dashboard/i18n/locale/ru/bulkActions.json
index a11844008..6efb69f6e 100644
--- a/app/javascript/dashboard/i18n/locale/ru/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ru/bulkActions.json
@@ -1,7 +1,7 @@
{
"BULK_ACTION": {
"CONVERSATIONS_SELECTED": "{conversationCount} бесед выбрано",
- "AGENT_SELECT_LABEL": "Выбрать Агента",
+ "AGENT_SELECT_LABEL": "Выбрать агента",
"ASSIGN_CONFIRMATION_LABEL": "Вы уверены, что хотите назначить {conversationCount} {conversationLabel}",
"UNASSIGN_CONFIRMATION_LABEL": "Вы уверены, что хотите отменить назначение {conversationCount} {conversationLabel}?",
"GO_BACK_LABEL": "Вернуться",
@@ -14,7 +14,7 @@
"ASSIGN_FAILED": "Не удалось назначить диалоги, попробуйте еще раз.",
"RESOLVE_SUCCESFUL": "Беседы успешно завершены.",
"RESOLVE_FAILED": "Не удалось завершить диалоги, попробуйте еще раз.",
- "ALL_CONVERSATIONS_SELECTED_ALERT": "Беседы, видимые на этой странице, выбраны.",
+ "ALL_CONVERSATIONS_SELECTED_ALERT": "Выбраны только беседы, видимые на этой странице.",
"AGENT_LIST_LOADING": "Загрузка агентов",
"UPDATE": {
"CHANGE_STATUS": "Изменить статус",
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Статус беседы успешно обновлен.",
"UPDATE_FAILED": "Не удалось обновить диалоги, попробуйте еще раз."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Невозможно завершить диалоги: отсутствуют обязательные атрибуты",
+ "PARTIAL_SUCCESS": "Некоторые диалоги были пропущены: перед завершением необходимо заполнить обязательные атрибуты"
+ },
"LABELS": {
"ASSIGN_LABELS": "Назначить метки",
"NO_LABELS_FOUND": "Метки не найдены",
@@ -34,7 +38,7 @@
"NONE": "Ничего",
"NO_TEAMS_AVAILABLE": "Нет команд, добавленных в этот аккаунт.",
"ASSIGN_SELECTED_TEAMS": "Назначить выбранную команду.",
- "ASSIGN_SUCCESFUL": "Команды, назначены успешно.",
+ "ASSIGN_SUCCESFUL": "Команды успешно назначены.",
"ASSIGN_FAILED": "Не удалось назначить команду, попробуйте еще раз."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ru/cannedMgmt.json
index dfd34fde8..f0e3d37df 100644
--- a/app/javascript/dashboard/i18n/locale/ru/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ru/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Шаблонные ответы",
"LEARN_MORE": "Подробнее о шаблонных ответах",
"DESCRIPTION": "Шаблоны ответов - это предварительно написанные шаблоны ответов, которые помогут вам быстро в диалог. Агенты могут ввести символ '/', за которым следует команда, чтобы вставить готовый ответ во время диалога. ",
+ "COUNT": "{n} шаблонный ответ | {n} шаблонных ответов",
"HEADER_BTN_TXT": "Добавить шаблонный ответ",
"LOADING": "Загружаем шаблонные ответы...",
+ "SEARCH_PLACEHOLDER": "Поиск шаблонных ответов...",
+ "NO_RESULTS": "Не найдены шаблонные ответы, соответствующие вашему запросу",
"SEARCH_404": "Нет категорий, соответствующих запросу.",
"LIST": {
"404": "У вас нет шаблонных ответов.",
diff --git a/app/javascript/dashboard/i18n/locale/ru/chatlist.json b/app/javascript/dashboard/i18n/locale/ru/chatlist.json
index e5bd927fc..ac97ef2aa 100644
--- a/app/javascript/dashboard/i18n/locale/ru/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ru/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Ожидающие ответа: сначала новые"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Приоритет: Сначала высокие, Создано: Сначала старые"
}
},
"ATTACHMENTS": {
@@ -104,7 +107,7 @@
"CONTENT": "Общий контакт"
},
"embed": {
- "CONTENT": "Embedded content"
+ "CONTENT": "Встроенный контент"
}
},
"CHAT_SORT_BY_FILTER": {
diff --git a/app/javascript/dashboard/i18n/locale/ru/companies.json b/app/javascript/dashboard/i18n/locale/ru/companies.json
index 85c9cf86e..87c460e21 100644
--- a/app/javascript/dashboard/i18n/locale/ru/companies.json
+++ b/app/javascript/dashboard/i18n/locale/ru/companies.json
@@ -7,7 +7,7 @@
"NAME": "Имя",
"DOMAIN": "Домен",
"CREATED_AT": "Дата создания",
- "CONTACTS_COUNT": "Contacts count"
+ "CONTACTS_COUNT": "Количество контактов"
}
},
"ORDER": {
@@ -20,7 +20,7 @@
"SEARCH_PLACEHOLDER": "Поиск компаний...",
"LOADING": "Загрузка компаний...",
"UNNAMED": "Безымянная компания",
- "CONTACTS_COUNT": "{n} контакт | {n} контакта(-ов)",
+ "CONTACTS_COUNT": "{n} Контакт | {n} Контакта | Контактов",
"EMPTY_STATE": {
"TITLE": "Компаний не найдено"
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/contact.json b/app/javascript/dashboard/i18n/locale/ru/contact.json
index 3022657ce..029e658d1 100644
--- a/app/javascript/dashboard/i18n/locale/ru/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ru/contact.json
@@ -18,8 +18,8 @@
"CREATED_AT_LABEL": "Создан",
"NEW_MESSAGE": "Новое сообщение",
"CALL": "Вызов",
- "CALL_INITIATED": "Calling the contact…",
- "CALL_FAILED": "Unable to start the call. Please try again.",
+ "CALL_INITIATED": "Вызов контакта…",
+ "CALL_FAILED": "Не удалось начать вызов. Повторите попытку.",
"VOICE_INBOX_PICKER": {
"TITLE": "Выберите голосовую почту"
},
@@ -457,8 +457,11 @@
"INSTAGRAM": {
"PLACEHOLDER": "Добавить Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Добавить Telegram"
+ },
"TIKTOK": {
- "PLACEHOLDER": "Add TikTok"
+ "PLACEHOLDER": "Добавить TikTok"
},
"LINKEDIN": {
"PLACEHOLDER": "Добавить LinkedIn"
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Нет контактов по вашему запросу 🔍",
"LIST_EMPTY_STATE_TITLE": "Нет контактов в этом виде 📋",
"ACTIVE_EMPTY_STATE_TITLE": "В данный момент нет активных контактов 🌙"
- }
+ },
+ "LOAD_MORE": "Загрузить ещё"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Назначить метки",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "Нет доступных входящих для начала разговора с этим контактом.",
"CONTACT_SELECTOR": {
"LABEL": "Кому:",
- "TAG_INPUT_PLACEHOLDER": "Поиск контакта с именем, email или номером телефона",
+ "TAG_INPUT_PLACEHOLDER": "Введите не менее 2 символов для поиска по имени, электронной почте или номеру телефона",
"CONTACT_CREATING": "Создание контакта..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Тема :",
"SUBJECT_PLACEHOLDER": "Введите тему email",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Поиск контакта с email адресом",
+ "CC_PLACEHOLDER": "Введите не менее 2 символов для поиска по электронной почте",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Поиск контакта с email адресом",
+ "BCC_PLACEHOLDER": "Введите не менее 2 символов для поиска по электронной почте",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/ru/conversation.json b/app/javascript/dashboard/i18n/locale/ru/conversation.json
index 9d4901b9b..41a91d075 100644
--- a/app/javascript/dashboard/i18n/locale/ru/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ru/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "Это сообщение не поддерживается. Вы можете просмотреть это сообщение в приложении Facebook / Instagram.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Это сообщение не поддерживается. Вы можете просмотреть это сообщение в приложении Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Это сообщение не поддерживается. Вы можете просмотреть это сообщение в приложении Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "Это сообщение не поддерживается. Вы можете просмотреть это сообщение в приложении TikTok.",
"SUCCESS_DELETE_MESSAGE": "Сообщение успешно удалено",
"FAIL_DELETE_MESSSAGE": "Не удалось удалить сообщение! Попробуйте еще раз",
"NO_RESPONSE": "Нет ответа",
@@ -173,8 +174,12 @@
"SUCCESFUL": "Назначена метка #{labelName} диалогу {conversationId}",
"FAILED": "Не удалось назначить метку. Пожалуйста, попробуйте еще раз."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Удалена метка #{labelName} из диалога с ID {conversationId}",
+ "FAILED": "Не удалось удалить метку. Пожалуйста, попробуйте еще раз."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Назначена метка #{team} в разговор id {conversationId}",
+ "SUCCESFUL": "Назначена команда \"{team}\" разговору с ID {conversationId}",
"FAILED": "Не удалось назначить команду. Пожалуйста, попробуйте еще раз."
}
}
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Отключить подпись",
"MSG_INPUT": "Shift + enter чтобы начать новую строку. Начните с '/', чтобы выбрать шаблонный ответ.",
"PRIVATE_MSG_INPUT": "Shift + enter для новой строки. Это будет видно только Операторам",
+ "MESSAGING_RESTRICTED": "Вы не можете отвечать в этот диалог",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Подпись сообщения не настроена, пожалуйста настройте её в настройках профиля.",
+ "COPILOT_MSG_INPUT": "Задайте Copilot дополнительные промпты или спросите что-нибудь другое... Нажмите Enter, чтобы дополнить информацию",
"CLICK_HERE": "Нажмите здесь, чтобы обновить",
"WHATSAPP_TEMPLATES": "Шаблоны Whatsapp"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Перетащите сюда, чтобы прикрепить",
"START_AUDIO_RECORDING": "Начать запись аудио",
"STOP_AUDIO_RECORDING": "Остановить запись аудио",
- "": "",
+ "COPILOT_THINKING": "Copilot думает",
"EMAIL_HEAD": {
"TO": "ДО",
"ADD_BCC": "Добавить bcc",
@@ -247,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": {
@@ -281,10 +293,10 @@
"OUTGOING_CALL": "Исходящий звонок",
"CALL_IN_PROGRESS": "Идёт звонок",
"NOT_ANSWERED_YET": "Пока нет ответа",
- "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
- "REJECT_CALL": "Reject",
- "JOIN_CALL": "Join call",
- "END_CALL": "End call"
+ "HANDLED_IN_ANOTHER_TAB": "Обрабатывается в другой вкладке",
+ "REJECT_CALL": "Отклонить",
+ "JOIN_CALL": "Присоединиться к звонку",
+ "END_CALL": "Завершить звонок"
}
},
"EMAIL_TRANSCRIPT": {
@@ -294,6 +306,7 @@
"CANCEL": "Отменить",
"SEND_EMAIL_SUCCESS": "Субтитры чата успешно отправлены",
"SEND_EMAIL_ERROR": "Произошла ошибка, попробуйте еще раз",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Отправка транскрипта на электронную почту не поддерживается вашим планом. Пожалуйста, обновите план, чтобы получить доступ к этой функции.",
"FORM": {
"SEND_TO_CONTACT": "Отправить субтитры клиенту",
"SEND_TO_AGENT": "Отправить транскрипт назначенному агенту",
diff --git a/app/javascript/dashboard/i18n/locale/ru/customRole.json b/app/javascript/dashboard/i18n/locale/ru/customRole.json
index 31abacb30..2cd2ced06 100644
--- a/app/javascript/dashboard/i18n/locale/ru/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/ru/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Пользовательские роли",
"LEARN_MORE": "Узнать больше о пользовательских ролях",
"DESCRIPTION": "Пользовательские роли — это роли, созданные владельцем учетной записи или администратором. Эти роли могут быть назначены агентам для определения их доступа и прав доступа к аккаунту. Пользовательские роли могут быть созданы с определенными разрешениями и уровнями доступа в соответствии с требованиями организации.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Добавить роль",
"LOADING": "Загрузка пользовательских ролей...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Нет категорий, соответствующих запросу.",
"PAYWALL": {
"TITLE": "Обновитесь для создания пользовательских роли",
diff --git a/app/javascript/dashboard/i18n/locale/ru/datePicker.json b/app/javascript/dashboard/i18n/locale/ru/datePicker.json
index d270c37df..f2482e2eb 100644
--- a/app/javascript/dashboard/i18n/locale/ru/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/ru/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Применить",
"CLEAR_BUTTON": "Сбросить",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Последние 3 месяца",
"LAST_6_MONTHS": "Последние 6 месяцев",
"LAST_YEAR": "За прошлый год",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Настраиваемый диапазон даты"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/general.json b/app/javascript/dashboard/i18n/locale/ru/general.json
index 1e3c9d512..23f41885e 100644
--- a/app/javascript/dashboard/i18n/locale/ru/general.json
+++ b/app/javascript/dashboard/i18n/locale/ru/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Закрыть",
"BETA": "Бета",
- "BETA_DESCRIPTION": "Эта функция находится в бета-версии и может измениться по мере её улучшения."
+ "BETA_DESCRIPTION": "Эта функция находится в бета-версии и может измениться по мере её улучшения.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Сбросить",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Да",
+ "NO": "Нет"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/generalSettings.json b/app/javascript/dashboard/i18n/locale/ru/generalSettings.json
index fc3e14a1d..66a41b21a 100644
--- a/app/javascript/dashboard/i18n/locale/ru/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ru/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Искать или перейти к",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Главное",
"REPORTS": "Отчёты",
diff --git a/app/javascript/dashboard/i18n/locale/ru/helpCenter.json b/app/javascript/dashboard/i18n/locale/ru/helpCenter.json
index 748d86257..8f88b2b7f 100644
--- a/app/javascript/dashboard/i18n/locale/ru/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ru/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Ошибка при удалении статьи"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Пожалуйста, добавьте заголовок статьи и контент, а затем только вы можете обновить настройки"
},
diff --git a/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json
index 1cffc97e6..fd760c604 100644
--- a/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json
@@ -3,7 +3,10 @@
"HEADER": "Источники",
"DESCRIPTION": "Канал — это способ коммуникации, который ваш клиент выбирает для связи с вами. Входящие — это место, где вы управляете диалогами для определенного канала. Он может включать диалоги из различных источников, таких как электронная почта, онлайн чат или социальные сети.",
"LEARN_MORE": "Узнать больше о «Входящих»",
- "RECONNECTION_REQUIRED": "Входящие сообщения отключены. Вы не будете получать новые сообщения пока не пройдете авторизацию повторно.",
+ "COUNT": "Найдено источников: {n}",
+ "SEARCH_PLACEHOLDER": "Поиск источников...",
+ "NO_RESULTS": "Не найдено источников, соответствующих вашему запросу",
+ "RECONNECTION_REQUIRED": "Входящие сообщения отключены. Вы не будете получать новые сообщения, пока не пройдете авторизацию повторно.",
"CLICK_TO_RECONNECT": "Нажмите здесь для повторного подключения.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Ваша регистрация в WhatsApp Business не завершена. Пожалуйста, проверьте статус отображения в Meta Business Manager перед повторным подключением.",
"COMPLETE_REGISTRATION": "Завершить регистрацию",
@@ -58,17 +61,17 @@
"DUPLICATE_INBOX_BANNER": "Этот аккаунт Instagram был перенесен в новый почтовый ящик Instagram. Вы больше не сможете отправлять и получать сообщения Instagram из этого ящика."
},
"TIKTOK": {
- "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
- "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
- "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
- "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
- "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
+ "CONTINUE_WITH_TIKTOK": "Продолжить в TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Подключить ваш профиль TikTok",
+ "HELP": "Чтобы добавить ваш профиль TikTok в качестве источника, вам нужно авторизоваться в вашем профиле TikTok, нажав на 'Продолжить в TikTok' ",
+ "ERROR_MESSAGE": "Произошла ошибка при подключении к TikTok, попробуйте еще раз",
+ "ERROR_AUTH": "Произошла ошибка при подключении к TikTok, попробуйте еще раз"
},
"TWITTER": {
"HELP": "Чтобы добавить свой Twitter профиль в качестве источника, вам нужно авторизоваться при помощи входа через Twitter ",
"ERROR_MESSAGE": "Произошла ошибка при подключении к Twitter, попробуйте еще раз",
"TWEETS": {
- "ENABLE": "Создать беседы из твитов с упоминанем"
+ "ENABLE": "Создать беседы из твитов с упоминанием"
}
},
"WEBSITE_CHANNEL": {
@@ -123,7 +126,7 @@
},
"TWILIO": {
"TITLE": "Twilio SMS/WhatsApp канал",
- "DESC": "Интегрируйте Twilio и начните поддерживать ваших клиентов через SMS или Whatsapp.",
+ "DESC": "Интегрируйте Twilio и начните поддерживать ваших клиентов через SMS или WhatsApp.",
"ACCOUNT_SID": {
"LABEL": "SID аккаунта",
"PLACEHOLDER": "Пожалуйста, введите SID вашего аккаунта Twilio",
@@ -222,7 +225,7 @@
},
"API_CALLBACK": {
"TITLE": "URL",
- "SUBTITLE": "Вы должны настроить URL колбеков в Bandwidth используя этот URL."
+ "SUBTITLE": "Вы должны настроить URL колбеков в Bandwidth, используя этот URL."
}
}
},
@@ -231,7 +234,7 @@
"DESC": "Начните поддерживать своих клиентов через WhatsApp.",
"PROVIDERS": {
"LABEL": "Поставщик API",
- "WHATSAPP_EMBEDDED": "WhatsApp Бизнес",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
"WHATSAPP_CLOUD_DESC": "Быстрая настройка через Meta",
@@ -275,7 +278,7 @@
},
"API_CALLBACK": {
"TITLE": "URL",
- "SUBTITLE": "Вы должны настроить URL-адрес webhook и токен проверки на портале разработчика Facebook с значениями, показанными ниже.",
+ "SUBTITLE": "Вы должны настроить URL-адрес webhook и токен проверки на портале разработчика Facebook со значениями, показанными ниже.",
"WEBHOOK_URL": "URL вебхука",
"WEBHOOK_VERIFICATION_TOKEN": "Токен авторизации Webhook"
},
@@ -389,10 +392,10 @@
"ERROR_MESSAGE": "Не удалось сохранить источник"
},
"FINISH_MESSAGE": "Начните пересылать свои письма на этот email.",
- "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
- "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "FINISH_MESSAGE_NO_FORWARDING": "Ваш почтовый ящик был успешно создан! Вам необходимо настроить учетные данные SMTP и IMAP для отправки и получения писем. Без этих настроек письма обрабатываться не будут.",
+ "FORWARDING_ADDRESS_LABEL": "Пересылайте письма на этот адрес:",
"CONFIGURE_SMTP_IMAP_LINK": "Нажмите здесь",
- "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
+ "CONFIGURE_SMTP_IMAP_TEXT": " чтобы настроить параметры IMAP и SMTP"
},
"LINE_CHANNEL": {
"TITLE": "Канал LINE",
@@ -438,7 +441,7 @@
},
"AUTH": {
"TITLE": "Выберите источник",
- "DESC": "Chatwoot поддерживает виджет чата, страницу Facebook, профиль Twitter, Whatsapp, Email и т. д., как канал связи с пользователями. Если вы хотите настроить пользовательский канал, вы можете создать его с помощью канала API. Выберите один канал из списка ниже, чтобы продолжить.",
+ "DESC": "Chatwoot поддерживает виджет чата, страницу Facebook, профиль Twitter, WhatsApp, Email и т. д., как канал связи с пользователями. Если вы хотите настроить пользовательский канал, вы можете создать его с помощью канала API. Выберите один канал из списка ниже, чтобы продолжить.",
"TITLE_NEXT": "Завершить установку",
"TITLE_FINISH": "Voilà!",
"CHANNEL": {
@@ -480,7 +483,7 @@
},
"TIKTOK": {
"TITLE": "TikTok",
- "DESCRIPTION": "Connect your TikTok account"
+ "DESCRIPTION": "Подключите ваш аккаунт TikTok"
},
"VOICE": {
"TITLE": "Голосовая связь",
@@ -496,11 +499,11 @@
},
"DETAILS": {
"TITLE": "Настройки источника",
- "DESC": "Выберите страницу Facebook, которую вы хотите подключить к чату из списка. Для удобства ыы также можете указать имя вашего источника."
+ "DESC": "Выберите страницу Facebook, которую вы хотите подключить к чату из списка. Для удобства вы также можете указать имя вашего источника."
},
"FINISH": {
"TITLE": "Готово!",
- "DESC": "Вы успешно подключили страницу Facebook к Chatwoot. В следующий раз когда покупатель напишет вашей странице, диалог автоматически отобразится здесь.
Мы также предоставляем вам скрипт виджета, который вы можете легко добавить на ваш сайт. Как только вы добавите его на сайт, клиенты смогут отправлять вам сообщения прямо с вашего сайта без помощи какого-либо внешнего инструмента и диалог появится прямо здесь, в Chatwoot.
Круто, да"
+ "DESC": "Вы успешно подключили страницу Facebook к Chatwoot. В следующий раз, когда покупатель напишет вашей странице, диалог автоматически отобразится здесь.
Мы также предоставляем вам скрипт виджета, который вы можете легко добавить на ваш сайт. Как только вы добавите его на сайт, клиенты смогут отправлять вам сообщения прямо с вашего сайта без помощи какого-либо внешнего инструмента и диалог появится прямо здесь, в Chatwoot.
Круто, да"
},
"EMAIL_PROVIDER": {
"TITLE": "Выберите почтового провайдера",
@@ -536,7 +539,7 @@
"ADD_AGENTS": "Добавление операторов в ваш источник..."
},
"FINISH": {
- "TITLE": "Истоник готов!",
+ "TITLE": "Источник готов!",
"MESSAGE": "Теперь вы можете взаимодействовать с вашими клиентами через ваш новый канал. Удачной поддержки",
"BUTTON_TEXT": "Перейти",
"MORE_SETTINGS": "Больше параметров",
@@ -575,7 +578,7 @@
"SUBTITLE": "Используйте только сконфигурированное бизнес-имя отправителя в заголовке электронной почты."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Настройте название вашей компании",
+ "BUTTON_TEXT": "Настройте название вашей компании",
"PLACEHOLDER": "Введите название вашей компании",
"SAVE_BUTTON_TEXT": "Сохранить"
}
@@ -589,8 +592,10 @@
"DISABLED": "Выключено"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Включено",
- "DISABLED": "Выключено"
+ "ENABLED": "Переоткрывать тот же диалог",
+ "DISABLED": "Создавать новые диалоги",
+ "ENABLED_DESCRIPTION": "Когда контакт напишет снова, предыдущий диалог будет открыт повторно.",
+ "DISABLED_DESCRIPTION": "После завершения предыдущего диалога при каждом новом сообщении контакта будет создаваться новый диалог."
},
"ENABLE_HMAC": {
"LABEL": "Включить"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Здоровье аккаунта",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Настройки канала",
+ "WIDGET_FEATURES": "Функции виджета",
"ACCOUNT_HEALTH": {
"TITLE": "Управление учетной записью WhatsApp",
"DESCRIPTION": "Проверьте состояние учетной записи WhatsApp, ограничения на сообщения и качество. Обновите настройки или решите проблемы при необходимости",
@@ -637,7 +644,7 @@
},
"VERIFIED_NAME": {
"LABEL": "Название компании",
- "TOOLTIP": "Название компании, подтвержденные WhatsApp"
+ "TOOLTIP": "Название компании, подтверждённое WhatsApp"
},
"DISPLAY_NAME_STATUS": {
"LABEL": "Отображаемое имя статуса",
@@ -664,7 +671,7 @@
"TIER_10K": "10тыс. клиентов в сутки",
"TIER_100K": "100тыс. клиентов в сутки",
"TIER_UNLIMITED": "Неограниченно клиентов в сутки",
- "UNKNOWN": "Рейтинг не доступен"
+ "UNKNOWN": "Рейтинг недоступен"
},
"STATUSES": {
"APPROVED": "Одобрено",
@@ -678,6 +685,16 @@
"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": "Настройки",
@@ -694,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": "Добавить или удалить агентов из этого источника",
@@ -702,14 +719,14 @@
"AGENT_ASSIGNMENT_SUB_TEXT": "Обновить настройки назначения для бесед",
"UPDATE": "Обновить",
"ENABLE_EMAIL_COLLECT_BOX": "Включить ящик сбора почты",
- "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Включение или отключение ящик для сбора почты в новой беседе",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Включение или отключение ящика для сбора почты в новой беседе",
"AUTO_ASSIGNMENT": "Включить автоназначение",
"SENDER_NAME_SECTION": "Включить имя агента в электронной почте",
"SENDER_NAME_SECTION_TEXT": "Включить/выключить отображение имени Сотрудника в электронной почте, если отключено, он будет показывать бизнес-имя",
"ENABLE_CONTINUITY_VIA_EMAIL": "Включить непрерывность диалогов по электронной почте",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Диалоги будут продолжаться по электронной почте, если доступен контактный адрес электронной почты.",
- "LOCK_TO_SINGLE_CONVERSATION": "Заблокировать один диалог",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Включение или отключение нескольких диалогов для одного и того же контакта в этой папке «Входящие»",
+ "LOCK_TO_SINGLE_CONVERSATION": "Маршрутизация диалогов",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Настройте создание диалогов для существующих контактов",
"INBOX_UPDATE_TITLE": "Настройки источника",
"INBOX_UPDATE_SUB_TEXT": "Изменить настройки источника",
"AUTO_ASSIGNMENT_SUB_TEXT": "Включить или отключить автоматическое назначение новых разговоров к агентам, добавленным к этому источнику.",
@@ -722,7 +739,7 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Используйте токен `inbox_identifier` для аутентификации ваших клиентов API.",
"FORWARD_EMAIL_TITLE": "Переслать на Email",
"FORWARD_EMAIL_SUB_TEXT": "Начните пересылать свои письма на этот email.",
- "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Пересылка писем в этот почтовый ящик в данной установке отключена. Чтобы использовать эту функцию, администратор должен включить её. Пожалуйста, свяжитесь с ним для продолжения.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Разрешить отправлять сообщения после завершения диалога",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Разрешить пользователям отправлять сообщения даже после того, как диалог будет завершен.",
"WHATSAPP_SECTION_SUBHEADER": "Этот ключ API используется для интеграции с API WhatsApp.",
@@ -740,7 +757,7 @@
"WHATSAPP_CONNECT_DESCRIPTION": "Подключите этот почтовый ящик к WhatsApp Business для расширения функций и упрощения управления.",
"WHATSAPP_CONNECT_BUTTON": "Подключить",
"WHATSAPP_CONNECT_SUCCESS": "Успешно подключено к WhatsApp Business!",
- "WHATSAPP_CONNECT_ERROR": "Не удалось подключиться WhatsApp Business. Пожалуйста, попробуйте еще раз.",
+ "WHATSAPP_CONNECT_ERROR": "Не удалось подключиться к WhatsApp Business. Пожалуйста, попробуйте еще раз.",
"WHATSAPP_RECONFIGURE_SUCCESS": "Успешная перенастройка WhatsApp Business!",
"WHATSAPP_RECONFIGURE_ERROR": "Не удалось перенастроить WhatsApp Business. Пожалуйста, попробуйте еще раз.",
"WHATSAPP_APP_ID_MISSING": "WhatsApp App ID не настроен. Пожалуйста, обратитесь к администратору.",
@@ -758,6 +775,7 @@
"LABEL": "Центр поддержки",
"PLACEHOLDER": "Выберите справочный центр",
"SELECT_PLACEHOLDER": "Выберите справочный центр",
+ "NONE": "Ничего",
"REMOVE": "Удалить справочный центр",
"SUB_TEXT": "Прикрепить справочный центр с помощью папки \"Входящие\""
},
@@ -766,6 +784,53 @@
"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 для продолжения работы",
@@ -809,37 +874,51 @@
"PLACEHOLDER": "Добавьте сообщение, которое будет отображено в форме обратной связи"
},
"BUTTON_TEXT": {
- "LABEL": "Button text",
- "PLACEHOLDER": "Please rate us"
+ "LABEL": "Текст кнопки",
+ "PLACEHOLDER": "Пожалуйста, оцените нас"
},
"LANGUAGE": {
"LABEL": "Язык",
- "PLACEHOLDER": "Select template language"
+ "PLACEHOLDER": "Выберите язык шаблона"
},
"MESSAGE_PREVIEW": {
- "LABEL": "Message preview",
- "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ "LABEL": "Предварительный просмотр сообщения",
+ "TOOLTIP": "Отображение может немного отличаться на платформе WhatsApp."
},
"TEMPLATE_STATUS": {
- "APPROVED": "Approved by WhatsApp",
- "PENDING": "Pending WhatsApp approval",
- "REJECTED": "Meta rejected the template",
- "DEFAULT": "Needs WhatsApp approval",
- "NOT_FOUND": "The template does not exist in the Meta platform."
+ "APPROVED": "Одобрено WhatsApp",
+ "PENDING": "Ожидает одобрения WhatsApp",
+ "REJECTED": "Шаблон отклонён Meta",
+ "DEFAULT": "Требуется одобрение WhatsApp",
+ "NOT_FOUND": "Шаблон не существует на платформе Meta."
},
"TEMPLATE_CREATION": {
- "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
- "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ "SUCCESS_MESSAGE": "Шаблон WhatsApp успешно создан и отправлен на одобрение",
+ "ERROR_MESSAGE": "Не удалось создать шаблон WhatsApp"
},
"TEMPLATE_UPDATE_DIALOG": {
- "TITLE": "Edit survey details",
- "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
- "CONFIRM": "Create new template",
+ "TITLE": "Редактировать детали опроса",
+ "DESCRIPTION": "Мы удалим предыдущий шаблон и создадим новый, который будет повторно отправлен на одобрение WhatsApp",
+ "CONFIRM": "Создать новый шаблон",
"CANCEL": "Вернуться"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Проверить соответствие категории Utility",
+ "HELPER_NOTE": "Проверьте сообщение перед отправкой, чтобы повысить вероятность категории Utility. Система создаёт отдельный CSAT-шаблон с кнопками для отчётности и отправляет его на одобрение как Utility; в зависимости от содержания Meta всё равно может переклассифицировать его в Marketing.",
+ "RESULT_LABEL": "Прогноз категории Meta",
+ "GUIDANCE_NOTE": "Это лишь подсказка и не гарантирует одобрение Meta.",
+ "SUGGESTION_LABEL": "Предлагаемая формулировка для категории Utility",
+ "APPLY": "Использовать этот вариант",
+ "ERROR_MESSAGE": "Не удалось проанализировать сообщение. Пожалуйста, попробуйте ещё раз.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Вероятно Utility",
+ "LIKELY_MARKETING": "Вероятно Marketing",
+ "UNCLEAR": "Нужны уточнения"
+ }
+ },
"SURVEY_RULE": {
- "LABEL": "Условие опросы",
- "DESCRIPTION_PREFIX": "Отправить опрос если диалог",
+ "LABEL": "Условие опроса",
+ "DESCRIPTION_PREFIX": "Отправить опрос, если диалог",
"DESCRIPTION_SUFFIX": "метки",
"OPERATOR": {
"CONTAINS": "содержит",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "Выбрать метки"
},
"NOTE": "Примечание: опросы CSAT отправляются только один раз для диалога",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Примечание: при сохранении система создаёт в WhatsApp отдельный CSAT-шаблон, который используется для сбора оценки и обратной связи в отчётах, и отправляет его на одобрение как Utility. В зависимости от содержания Meta всё равно может классифицировать его как Marketing. После одобрения опросы отправляются только один раз для каждого диалога в соответствии с правилом опроса.",
"API": {
"SUCCESS_MESSAGE": "Настройки CSAT успешно обновлены",
"ERROR_MESSAGE": "Не удалось обновить CSAT настройки. Повторите попытку позже."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Сообщение для посетителей о недоступности",
"TOGGLE_HELP": "Включение доступности для бизнеса покажет часы работы в виджете онлайн общения, даже если все менеджеры не в сети. Вне доступных часов работы - посетители могут быть предупреждены сообщением и формой предварительного чата.",
"DAY": {
+ "DAY": "День",
+ "AVAILABILITY": "Доступность",
+ "HOURS": "Часов",
"ENABLE": "Я работаю в этот день",
"UNAVAILABLE": "Я не работаю в этот день",
- "HOURS": "часы",
"VALIDATION_ERROR": "Время начала должно предшествовать времени окончания.",
"CHOOSE": "Выбрать"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Через день"
},
"WIDGET_COLOR_LABEL": "Цвет виджета",
- "WIDGET_BUBBLE_POSITION_LABEL": "Позиция конструктора виджетов",
- "WIDGET_BUBBLE_TYPE_LABEL": "Тип рамки для виджета",
+ "WIDGET_BUBBLE": "Пузырёк",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Положение:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Тип:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Пообщайтесь с нами",
- "LABEL": "Название виджета",
+ "LABEL": "Заголовок кнопки запуска",
"PLACE_HOLDER": "Пообщайтесь с нами"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "По умолчанию",
- "CHAT": "Чат"
+ "CHAT": "Режим чата"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Обычно отвечаем в течение нескольких минут",
diff --git a/app/javascript/dashboard/i18n/locale/ru/integrationApps.json b/app/javascript/dashboard/i18n/locale/ru/integrationApps.json
index d709e122e..56b05c243 100644
--- a/app/javascript/dashboard/i18n/locale/ru/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ru/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Загрузка интеграций",
"NO_HOOK_CONFIGURED": "В этой учетной записи не настроено ни одной {integrationId} интеграции.",
"HEADER": "Приложения",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Поиск...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Включено",
"DISABLED": "Выключено"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Получение хуков",
"INBOX": "Электронная почта",
+ "ACTIONS": "Действия",
"DELETE": {
"BUTTON_TEXT": "Удалить"
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/integrations.json b/app/javascript/dashboard/i18n/locale/ru/integrations.json
index d27942627..3bda183ae 100644
--- a/app/javascript/dashboard/i18n/locale/ru/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ru/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot интегрируется с несколькими инструментами и сервисами, чтобы повысить эффективность вашей команды. Изучите список ниже, чтобы настроить ваши любимые приложения.",
"LEARN_MORE": "Узнать больше об интеграциях",
"LOADING": "Получение интеграций",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Капитан не включен на вашем аккаунте.",
"CLICK_HERE_TO_CONFIGURE": "Нажмите здесь, чтобы настроить",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "События с подпиской",
"LEARN_MORE": "Узнать больше о вебхуках",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Отменить",
"DESC": "Вебхуки позволяют получить вам информацию о том, что происходит в вашей учетной записи Chatwoot. Пожалуйста, введите корректный URL.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Удалить",
"DELETE_CONFIRMATION": {
"TITLE": "Удалить интеграцию",
@@ -145,7 +160,29 @@
"EXPAND": "Развернуть",
"MAKE_FRIENDLY": "Изменить тон сообщения на дружеский",
"MAKE_FORMAL": "Использовать официальный тон",
- "SIMPLIFY": "Упростить"
+ "SIMPLIFY": "Упростить",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Профессиональный",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Дружелюбный"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Содержание черновика",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Панель приложений
Панель приложений, позволяют организациям встраивать приложение в панель управления Chatwoot, чтобы предоставлять контекст для агентов службы поддержки клиентов. Эта функция позволяет вам создать приложение независимо и встроить его в панель инструментов для предоставления информации о пользователях, их заказах или их предыдущей истории платежей.
Когда вы встраиваете свое приложение с помощью панели инструментов в Chatwoot, ваше приложение будет получить контекст разговора и связей событий. Реализуйте связи для события сообщения на своей странице, чтобы получать контекст.
Чтобы добавить новое приложение панели приложений, нажмите кнопку \"Добавить приложение\".
",
"DESCRIPTION": "Панель приложений, позволяют организациям встраивать приложение внутри панели управления для обеспечения контекста агентов по поддержке клиентов. Эта функция позволяет создать приложение независимо и встраивать информацию о пользователе, его заказах или их истории платежей.",
"LEARN_MORE": "Подробнее об интеграциях",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "В этой панели приложений не настроено ни одной интеграции",
"LOADING": "Загрузка приложений...",
"TABLE_HEADER": {
"NAME": "Имя",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Действия"
},
"EDIT_TOOLTIP": "Редактировать приложение",
"DELETE_TOOLTIP": "Удалить приложение"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Создать/Связать Задачу",
"LOADING": "Загрузка связанных задач...",
"LOADING_ERROR": "Ошибка получения данных о связанных задачах, пожалуйста попробуйте еще раз",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Вы уверены, что хотите удалить интеграцию с Notion?",
"MESSAGE": "Удаление этой интеграции приведет к удалению доступа к вашему проекту Notion и остановит все связанные функции.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "Вы можете изменить или отменить ваш тарифный план в любое время"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Обновите тарифный план, чтобы получить доступ к нашим ассистентам, copilot и другим функциям.",
"ASK_ADMIN": "Пожалуйста, обратитесь к вашему администратору для обновления."
},
diff --git a/app/javascript/dashboard/i18n/locale/ru/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ru/labelsMgmt.json
index b92bc0b62..454ec658f 100644
--- a/app/javascript/dashboard/i18n/locale/ru/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ru/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Загрузка категорий",
"DESCRIPTION": "Категории помогают вам классифицировать и приоритизировать разговоры и лидеров. Вы можете назначить категорию для разговора или контакта с помощью боковой панели.",
"LEARN_MORE": "Узнать больше о категориях",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Поиск меток...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Нет категорий, соответствующих запросу",
"LIST": {
"404": "У вас нет категорий.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Имя",
"DESCRIPTION": "Описание",
- "COLOR": "Цвет"
+ "COLOR": "Цвет",
+ "ACTION": "Действия"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ru/macros.json b/app/javascript/dashboard/i18n/locale/ru/macros.json
index 11f8e45b0..e85de7261 100644
--- a/app/javascript/dashboard/i18n/locale/ru/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ru/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Макрос",
"DESCRIPTION": "Макрос — это набор сохраненных действий, которые помогают агентам службы поддержки легко выполнять задачи. Агенты могут определить ряд действий, таких как добавление метки к беседе, отправка транскрипта электронной почты, обновление пользовательского атрибута и т. д., и выполнять их одним щелчком мыши.",
"LEARN_MORE": "Узнать больше о макросах",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Добавить новый макрос",
"HEADER_BTN_TXT_SAVE": "Сохранить макрос",
"LOADING": "Получение макроса",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Что-то пошло не так. Попробуйте еще раз",
"ORDER_INFO": "Макросы будут выполняться в том порядке, в котором вы добавите ваши действия. Вы можете изменить их порядок, перетаскивая их ручкой рядом с каждым узлом.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Имя",
"CREATED BY": "Создан",
"LAST_UPDATED_BY": "Обновлено",
- "VISIBILITY": "Видимость"
+ "VISIBILITY": "Видимость",
+ "ACTIONS": "Действия"
},
"404": "Макросы не найдены"
},
diff --git a/app/javascript/dashboard/i18n/locale/ru/mfa.json b/app/javascript/dashboard/i18n/locale/ru/mfa.json
index 632c74935..c0861212f 100644
--- a/app/javascript/dashboard/i18n/locale/ru/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/ru/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Двухфакторная аутентификация",
- "SUBTITLE": "Защитите ваш аккаунт с помощью аутентификации на базе TOTP",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Добавьте дополнительный уровень безопасности для вашего аккаунта, используя одноразовый пароль (TOTP)",
"STATUS_TITLE": "Статус аутентификации",
"STATUS_DESCRIPTION": "Управление настройками двухфакторной аутентификации и резервными кодами",
diff --git a/app/javascript/dashboard/i18n/locale/ru/report.json b/app/javascript/dashboard/i18n/locale/ru/report.json
index abb9be29b..6183528d1 100644
--- a/app/javascript/dashboard/i18n/locale/ru/report.json
+++ b/app/javascript/dashboard/i18n/locale/ru/report.json
@@ -3,7 +3,7 @@
"HEADER": "Диалоги",
"LOADING_CHART": "Загрузка данных графика...",
"NO_ENOUGH_DATA": "Недостаточно данных для создания отчета, пожалуйста, повторите попытку позже.",
- "DOWNLOAD_AGENT_REPORTS": "Сказать отчёт по агентам",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Не удалось загрузить данные. Пожалуйста, попробуйте позже.",
"SUMMARY_FETCHING_FAILED": "Не удалось загрузить сводку. Пожалуйста, попробуйте позже.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Обзор агентов",
- "DESCRIPTION": "Легко отслеживайте эффективность работы агентов с помощью ключевых метрик, таких как количество бесед, время ответа, время решения проблем и количество решённых случаев. Нажмите на имя агента, чтобы узнать подробности.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Загрузка данных графика...",
"NO_ENOUGH_DATA": "Недостаточно данных для создания отчета, пожалуйста, повторите попытку позже.",
"DOWNLOAD_AGENT_REPORTS": "Сказать отчёт по агентам",
"FILTER_DROPDOWN_LABEL": "Выбрать Агента",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Поиск агентов"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Диалоги",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Недостаточно данных для создания отчета, пожалуйста, повторите попытку позже.",
"DOWNLOAD_LABEL_REPORTS": "Скачать отчет по меткам",
"FILTER_DROPDOWN_LABEL": "Выбрать метку",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Поиск меток"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Диалоги",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Выбрать \"Входящий\" канал",
"ALL_INBOXES": "Все входящие",
"SEARCH_INBOX": "Поиск входящих",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Диалоги",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Обзор команды",
- "DESCRIPTION": "Получите обзор работы вашей команды с основными метриками, такими как количество бесед, время ответа, время решения проблем и количество решённых случаев. Нажмите на имя команды для подробностей.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Загрузка данных графика...",
"NO_ENOUGH_DATA": "Недостаточно данных для создания отчета, пожалуйста, повторите попытку позже.",
"DOWNLOAD_TEAM_REPORTS": "Скачать отчет по команде",
"FILTER_DROPDOWN_LABEL": "Выберите команду",
+ "FILTERS": {
+ "ADD_FILTER": "Добавить фильтр",
+ "CLEAR_ALL": "Очистить всё",
+ "NO_FILTER": "Нет доступных фильтров",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Поиск команд"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Диалоги",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Отчёты CSAT",
- "NO_RECORDS": "Нет ответов на опрос CSAT.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Скачать отчёты CSAT",
"DOWNLOAD_FAILED": "Не удалось загрузить CSAT отчёты",
"FILTERS": {
+ "ADD_FILTER": "Добавить фильтр",
+ "CLEAR_ALL": "Очистить всё",
+ "NO_FILTER": "Нет доступных фильтров",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Поиск агентов",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Поиск команд",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Выберите Операторов"
+ "LABEL": "Оператор"
+ },
+ "INBOXES": {
+ "LABEL": "Электронная почта"
+ },
+ "TEAMS": {
+ "LABEL": "Команда"
+ },
+ "RATINGS": {
+ "LABEL": "Оценка"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Контакт",
- "AGENT_NAME": "Назначенный сотрудник",
+ "AGENT_NAME": "Оператор",
"RATING": "Оценка",
- "FEEDBACK_TEXT": "Комментарий отзыва"
- }
+ "FEEDBACK_TEXT": "Комментарий отзыва",
+ "CONVERSATION": "Диалоги",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Ответ",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Всего ответов",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Доля откликов",
"TOOLTIP": "Общее количество ответов / Общее количество отправленных сообщений CSAT опросов * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Сохранить",
+ "CANCEL": "Отменить",
+ "SAVING": "Сохранение...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Обновить сейчас",
+ "CANCEL_ANYTIME": "Вы можете изменить или отменить ваш тарифный план в любое время"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/ru/settings.json b/app/javascript/dashboard/i18n/locale/ru/settings.json
index ca21552db..cc7f6e985 100644
--- a/app/javascript/dashboard/i18n/locale/ru/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ru/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Скачать",
"UPLOADING": "Загружаем...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Эта история больше недоступна."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Эта история больше недоступна.",
+ "INSTAGRAM_STORY_REPLY": "Ответил на вашу историю:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Просмотреть на карте"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Автоматически отмечать оффлайн, когда вы не используете приложение."
},
"DOCS": "Открыть документацию",
- "SECURITY": "Безопасность"
+ "SECURITY": "Безопасность",
+ "CAPTAIN_AI": "Капитан",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Ассистент",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Возможности",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Платёж",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Поиск по атрибутам"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Решить разговор",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Решить разговор",
+ "CANCEL": "Отменить"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Выберите параметр"
+ },
+ "CHECKBOX": {
+ "YES": "Да",
+ "NO": "Нет"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Обновить сейчас",
+ "CANCEL_ANYTIME": "Вы можете изменить или отменить ваш тарифный план в любое время"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Пожалуйста, обратитесь к вашему администратору для обновления."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Ой! Мы не смогли найти ни одного аккаунта в Chatwoot. Пожалуйста, создайте новый аккаунт, чтобы продолжить.",
"NEW_ACCOUNT": "Новый аккаунт",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Создать политику",
"API": {
"SUCCESS_MESSAGE": "Связанная политика успешно создана",
- "ERROR_MESSAGE": "Не удалось создать связанную политику"
+ "ERROR_MESSAGE": "Не удалось создать связанную политику",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Продолжить",
"CANCEL_BUTTON_LABEL": "Отменить"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Связанная политика успешно обновлена",
"ERROR_MESSAGE": "Не удалось обновить связанную политику"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Сбалансированный",
- "DESCRIPTION": "Назначить диалоги на основе доступной пропускной способности."
+ "DESCRIPTION": "Назначить диалоги на основе доступной пропускной способности.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Агент успешно удален из политики",
"ERROR_MESSAGE": "Не удалось удалить агента из политики"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ru/signup.json b/app/javascript/dashboard/i18n/locale/ru/signup.json
index b1e2829b1..b3856ea82 100644
--- a/app/javascript/dashboard/i18n/locale/ru/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ru/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Создать новый аккаунт",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Регистрация",
"TESTIMONIAL_HEADER": "Все, что нужно сделать, это один шаг для продвижения вперед",
"TESTIMONIAL_CONTENT": "Вы находитесь на расстоянии всего одного шага от привлечения своих клиентов, удержав их и находя новые.",
diff --git a/app/javascript/dashboard/i18n/locale/ru/sla.json b/app/javascript/dashboard/i18n/locale/ru/sla.json
index 2a0dbac8a..144fcf264 100644
--- a/app/javascript/dashboard/i18n/locale/ru/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ru/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Создать новую политику SLA",
"DESCRIPTION": "Соглашения об уровне обслуживания (SLA) — это контракты, которые определяют четкие ожидания между вашей командой и клиентами. Они устанавливают стандарты времени ответа и разрешения проблем, создавая основу для подотчетности и обеспечивая последовательный, высококачественный опыт.",
"LEARN_MORE": "Узнать больше о SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Загрузка SLA",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Обновите тарифный план для создания SLA",
"AVAILABLE_ON": "Функция SLA доступна только в тарифных планах Business и Enterprise.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "В этой учетной записи нет доступных SLA.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Проблемы, поднятые корпоративными клиентами, требующие немедленного внимания.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Проблемы, поднятые корпоративными клиентами, требующие быстрого подтверждения."
},
- "BUSINESS_HOURS_ON": "Рабочие часы включены",
- "BUSINESS_HOURS_OFF": "Рабочие часы отключены",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "Порог времени первого ответа",
"NRT": "Порог времени следующего ответа",
diff --git a/app/javascript/dashboard/i18n/locale/ru/snooze.json b/app/javascript/dashboard/i18n/locale/ru/snooze.json
new file mode 100644
index 000000000..e8fd1d093
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ru/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "минут",
+ "HOUR": "hour",
+ "HOURS": "часы",
+ "DAY": "день",
+ "DAYS": "дней",
+ "WEEK": "день",
+ "WEEKS": "weeks",
+ "MONTH": "неделя",
+ "MONTHS": "months",
+ "YEAR": "месяц",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "завтра",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "на следующей неделе",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "из",
+ "AFTER": "after",
+ "WEEK": "день",
+ "DAY": "день"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ru/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ru/teamsSettings.json
index 23da13f1d..761484052 100644
--- a/app/javascript/dashboard/i18n/locale/ru/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ru/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Получение команд",
"DESCRIPTION": "Команды позволяют вам организовывать агентов в группы, основываясь на их обязанностях. Агент может состоять в нескольких командах. При совместной работе вы можете назначить разговоры конкретным командам.",
"LEARN_MORE": "Узнать больше о командах",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Поиск команд...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "В этом аккаунте нет ни одной команды.",
"EDIT_TEAM": "Редактировать команду",
diff --git a/app/javascript/dashboard/i18n/locale/sh/agentBots.json b/app/javascript/dashboard/i18n/locale/sh/agentBots.json
index d3a0bb991..dc92016ab 100644
--- a/app/javascript/dashboard/i18n/locale/sh/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/sh/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/sh/agentMgmt.json b/app/javascript/dashboard/i18n/locale/sh/agentMgmt.json
index 448994e69..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/sh/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sh/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/sh/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/sh/attributesMgmt.json
index 78886f451..e83950b14 100644
--- a/app/javascript/dashboard/i18n/locale/sh/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sh/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/sh/automation.json b/app/javascript/dashboard/i18n/locale/sh/automation.json
index 43245a1d5..22a9735f4 100644
--- a/app/javascript/dashboard/i18n/locale/sh/automation.json
+++ b/app/javascript/dashboard/i18n/locale/sh/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/sh/bulkActions.json b/app/javascript/dashboard/i18n/locale/sh/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/sh/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/sh/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/sh/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/sh/cannedMgmt.json
index 3ff246f06..246d3f5b3 100644
--- a/app/javascript/dashboard/i18n/locale/sh/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sh/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/sh/chatlist.json b/app/javascript/dashboard/i18n/locale/sh/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/sh/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/sh/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/sh/contact.json b/app/javascript/dashboard/i18n/locale/sh/contact.json
index 8e9d1dec9..48d45d737 100644
--- a/app/javascript/dashboard/i18n/locale/sh/contact.json
+++ b/app/javascript/dashboard/i18n/locale/sh/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/sh/conversation.json b/app/javascript/dashboard/i18n/locale/sh/conversation.json
index 59ad61c1d..7b7e325ab 100644
--- a/app/javascript/dashboard/i18n/locale/sh/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/sh/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/sh/customRole.json b/app/javascript/dashboard/i18n/locale/sh/customRole.json
index b7b48b5e7..f7c1709bd 100644
--- a/app/javascript/dashboard/i18n/locale/sh/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/sh/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/sh/datePicker.json b/app/javascript/dashboard/i18n/locale/sh/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/sh/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/sh/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sh/general.json b/app/javascript/dashboard/i18n/locale/sh/general.json
index 283cf79c4..bdc7cb8a4 100644
--- a/app/javascript/dashboard/i18n/locale/sh/general.json
+++ b/app/javascript/dashboard/i18n/locale/sh/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sh/generalSettings.json b/app/javascript/dashboard/i18n/locale/sh/generalSettings.json
index d924bffbd..fab8020e2 100644
--- a/app/javascript/dashboard/i18n/locale/sh/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sh/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/sh/helpCenter.json b/app/javascript/dashboard/i18n/locale/sh/helpCenter.json
index 0ab8d62ff..69a72f163 100644
--- a/app/javascript/dashboard/i18n/locale/sh/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/sh/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json
index a71d8a8d4..efc0c69a3 100644
--- a/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
diff --git a/app/javascript/dashboard/i18n/locale/sh/integrationApps.json b/app/javascript/dashboard/i18n/locale/sh/integrationApps.json
index b91b434f7..828f4ea67 100644
--- a/app/javascript/dashboard/i18n/locale/sh/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/sh/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/sh/integrations.json b/app/javascript/dashboard/i18n/locale/sh/integrations.json
index 983953180..a1ce02d11 100644
--- a/app/javascript/dashboard/i18n/locale/sh/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sh/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/sh/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/sh/labelsMgmt.json
index 705b18d0e..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/sh/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sh/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/sh/macros.json b/app/javascript/dashboard/i18n/locale/sh/macros.json
index fcb409f34..e12f0ca73 100644
--- a/app/javascript/dashboard/i18n/locale/sh/macros.json
+++ b/app/javascript/dashboard/i18n/locale/sh/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/sh/mfa.json b/app/javascript/dashboard/i18n/locale/sh/mfa.json
index f7556fdcf..b03917bcd 100644
--- a/app/javascript/dashboard/i18n/locale/sh/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/sh/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/sh/report.json b/app/javascript/dashboard/i18n/locale/sh/report.json
index a2ad6bd4a..45c40de58 100644
--- a/app/javascript/dashboard/i18n/locale/sh/report.json
+++ b/app/javascript/dashboard/i18n/locale/sh/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/sh/settings.json b/app/javascript/dashboard/i18n/locale/sh/settings.json
index 920da6f53..cf56caf3d 100644
--- a/app/javascript/dashboard/i18n/locale/sh/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sh/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancel"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/sh/signup.json b/app/javascript/dashboard/i18n/locale/sh/signup.json
index b0e5f5d27..4a90fd322 100644
--- a/app/javascript/dashboard/i18n/locale/sh/signup.json
+++ b/app/javascript/dashboard/i18n/locale/sh/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/sh/sla.json b/app/javascript/dashboard/i18n/locale/sh/sla.json
index 0da7873be..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/sh/sla.json
+++ b/app/javascript/dashboard/i18n/locale/sh/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/sh/snooze.json b/app/javascript/dashboard/i18n/locale/sh/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/sh/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/sh/teamsSettings.json b/app/javascript/dashboard/i18n/locale/sh/teamsSettings.json
index f0a950fd1..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/sh/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sh/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/sk/agentBots.json b/app/javascript/dashboard/i18n/locale/sk/agentBots.json
index ff05c0419..a0941f1e3 100644
--- a/app/javascript/dashboard/i18n/locale/sk/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/sk/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Akcie"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/sk/agentMgmt.json b/app/javascript/dashboard/i18n/locale/sk/agentMgmt.json
index 22a6ec461..74fd83a13 100644
--- a/app/javascript/dashboard/i18n/locale/sk/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sk/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrátor",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "K tomuto účtu nie sú priradení žiadni agenti",
"TITLE": "Spravujte agentov vo svojom tíme",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Nepodarilo sa pripojiť k serveru Woot, skúste to prosím neskôr"
}
},
+ "SEARCH_PLACEHOLDER": "Hľadať agentov...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Žiadne výsledky neboli nájdené."
},
diff --git a/app/javascript/dashboard/i18n/locale/sk/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/sk/attributesMgmt.json
index 8a2f1ae90..84ec0078c 100644
--- a/app/javascript/dashboard/i18n/locale/sk/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sk/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Hľadať atribúty...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/sk/automation.json b/app/javascript/dashboard/i18n/locale/sk/automation.json
index 1b945a0c1..9f7b79407 100644
--- a/app/javascript/dashboard/i18n/locale/sk/automation.json
+++ b/app/javascript/dashboard/i18n/locale/sk/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Meno",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Akcie"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/sk/bulkActions.json b/app/javascript/dashboard/i18n/locale/sk/bulkActions.json
index 7dee27773..878d7af8f 100644
--- a/app/javascript/dashboard/i18n/locale/sk/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/sk/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "Žiadne označenia neboli nájdené",
diff --git a/app/javascript/dashboard/i18n/locale/sk/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/sk/cannedMgmt.json
index d489c1762..ccd9c012c 100644
--- a/app/javascript/dashboard/i18n/locale/sk/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sk/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Uložené odpovede",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Neexistujú žiadne položky, ktoré by zodpovedali tejto požiadavke.",
"LIST": {
"404": "Žiadne uložené odpovede nie sú k dispozícii pre tento účet.",
diff --git a/app/javascript/dashboard/i18n/locale/sk/chatlist.json b/app/javascript/dashboard/i18n/locale/sk/chatlist.json
index 7a133b29b..d57ee9be7 100644
--- a/app/javascript/dashboard/i18n/locale/sk/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/sk/chatlist.json
@@ -69,13 +69,16 @@
"TEXT": "Priority: Highest first"
},
"priority_asc": {
- "TEXT": ""
+ "TEXT": "Priorita: od najnižšej"
},
"waiting_since_asc": {
"TEXT": "Pending Response: Longest first"
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/sk/contact.json b/app/javascript/dashboard/i18n/locale/sk/contact.json
index 574ae2c03..a22fa9fde 100644
--- a/app/javascript/dashboard/i18n/locale/sk/contact.json
+++ b/app/javascript/dashboard/i18n/locale/sk/contact.json
@@ -164,7 +164,7 @@
"LABEL": "Pre"
},
"INBOX": {
- "LABEL": "",
+ "LABEL": "Cez Inbox",
"PLACEHOLDER": "Vyberte zdrojovú schránku",
"ERROR": "Vybrať schránku"
},
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Žiadny kontakt nezodpovedá vášmu vyhľadávaniu 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Pre:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Predmet :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Kópia:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Skrytá kópia:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Skrytá kópia"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/sk/conversation.json b/app/javascript/dashboard/i18n/locale/sk/conversation.json
index b2952230d..739cf7ef8 100644
--- a/app/javascript/dashboard/i18n/locale/sk/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/sk/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Správa bola úspešne odstránená",
"FAIL_DELETE_MESSSAGE": "Správu sa nepodarilo vymazať! Skúste to znova",
"NO_RESPONSE": "Žiadna odpoveď",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter pre nový riadok. Ak chcete vybrať Uloženú odpoveď, začnite klávesou '/'.",
"PRIVATE_MSG_INPUT": "Shift + enter pre nový riadok. Toto bude viditeľné len pre agentov",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Potiahnite sem na pripojenie",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Pridať skrytú kópiu",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Zrušiť",
"SEND_EMAIL_SUCCESS": "Prepis chatu bol úspešne odoslaný",
"SEND_EMAIL_ERROR": "Vyskytla sa chyba, skúste to prosím znova",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Odoslať prepis chatu zákazníkovi",
"SEND_TO_AGENT": "Odoslať prepis pridelenému agentovi",
diff --git a/app/javascript/dashboard/i18n/locale/sk/customRole.json b/app/javascript/dashboard/i18n/locale/sk/customRole.json
index 1b8a99424..cbc1d6c93 100644
--- a/app/javascript/dashboard/i18n/locale/sk/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/sk/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Neexistujú žiadne položky, ktoré by zodpovedali tejto požiadavke.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/sk/datePicker.json b/app/javascript/dashboard/i18n/locale/sk/datePicker.json
index 82b17722e..3309f60a8 100644
--- a/app/javascript/dashboard/i18n/locale/sk/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/sk/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Použiť",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Posledné 3 mesiace",
"LAST_6_MONTHS": "Posledných 6 mesiacov",
"LAST_YEAR": "Posledný rok",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Vlastný rozsah dátumov"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sk/general.json b/app/javascript/dashboard/i18n/locale/sk/general.json
index b117898d4..f73a747d9 100644
--- a/app/javascript/dashboard/i18n/locale/sk/general.json
+++ b/app/javascript/dashboard/i18n/locale/sk/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Zatvoriť",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Áno",
+ "NO": "Nie"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sk/generalSettings.json b/app/javascript/dashboard/i18n/locale/sk/generalSettings.json
index 8b08c54e2..53695a3a8 100644
--- a/app/javascript/dashboard/i18n/locale/sk/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sk/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Hľadať alebo ísť na",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Všeobecné",
"REPORTS": "Reporty",
diff --git a/app/javascript/dashboard/i18n/locale/sk/helpCenter.json b/app/javascript/dashboard/i18n/locale/sk/helpCenter.json
index 0c9f1c823..d5227a810 100644
--- a/app/javascript/dashboard/i18n/locale/sk/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/sk/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json
index 9e2fb73d3..8fb7b0fef 100644
--- a/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Vypnuté"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Zapnuté",
- "DISABLED": "Vypnuté"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Zapnúť"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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": "Nastavenia",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "Žiadne",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Zrušiť",
+ "CONFIRM_DELETE": "Vymazať",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Znova autorizovať",
"SUBTITLE": "Vaše pripojenie k Facebooku vypršalo, pre pokračovanie v službách prosím znovu pripojte svoju stránku na Facebooku",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Správa pre návštevníkov pri nedostupnosti",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Dostupnosť",
+ "HOURS": "Hours",
"ENABLE": "Povolenie dostupnosti pre tento deň",
"UNAVAILABLE": "Neodstupné",
- "HOURS": "hodiny",
"VALIDATION_ERROR": "Začiatočný čas by mal byť pred zatváracím časom.",
"CHOOSE": "Vybrať"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "O deň"
},
"WIDGET_COLOR_LABEL": "Farba widgetu",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Četujte s nami",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Četujte s nami"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Zvyčajne odpovedá do niekoľkých minút",
diff --git a/app/javascript/dashboard/i18n/locale/sk/integrationApps.json b/app/javascript/dashboard/i18n/locale/sk/integrationApps.json
index 94a78c219..4a6b20120 100644
--- a/app/javascript/dashboard/i18n/locale/sk/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/sk/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Zapnuté",
"DISABLED": "Vypnuté"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Schránka",
+ "ACTIONS": "Akcie",
"DELETE": {
"BUTTON_TEXT": "Vymazať"
}
diff --git a/app/javascript/dashboard/i18n/locale/sk/integrations.json b/app/javascript/dashboard/i18n/locale/sk/integrations.json
index df29ccdbc..0fb7b149e 100644
--- a/app/javascript/dashboard/i18n/locale/sk/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sk/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Zrušiť",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Vymazať",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Meno",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Akcie"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/sk/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/sk/labelsMgmt.json
index cd2a86fbc..9d5f890c3 100644
--- a/app/javascript/dashboard/i18n/locale/sk/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sk/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Hľadaj označenia...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Neexistujú žiadne položky, ktoré by zodpovedali tejto požiadavke",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Meno",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Akcie"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/sk/macros.json b/app/javascript/dashboard/i18n/locale/sk/macros.json
index c72181013..784ba59a2 100644
--- a/app/javascript/dashboard/i18n/locale/sk/macros.json
+++ b/app/javascript/dashboard/i18n/locale/sk/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Meno",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Akcie"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/sk/mfa.json b/app/javascript/dashboard/i18n/locale/sk/mfa.json
index 134c98d4a..4ff8d73d5 100644
--- a/app/javascript/dashboard/i18n/locale/sk/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/sk/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/sk/report.json b/app/javascript/dashboard/i18n/locale/sk/report.json
index 65d7182d0..e7c7b4e25 100644
--- a/app/javascript/dashboard/i18n/locale/sk/report.json
+++ b/app/javascript/dashboard/i18n/locale/sk/report.json
@@ -3,7 +3,7 @@
"HEADER": "Rozhovory",
"LOADING_CHART": "Načítanie grafu...",
"NO_ENOUGH_DATA": "Na vygenerovanie reportu sme nedostali dostatok dát, skúste to prosím neskôr.",
- "DOWNLOAD_AGENT_REPORTS": "Stiahnutie reportov o agentoch",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Prehľad agentov",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Načítanie grafu...",
"NO_ENOUGH_DATA": "Na vygenerovanie reportu sme nedostali dostatok dát, skúste to prosím neskôr.",
"DOWNLOAD_AGENT_REPORTS": "Stiahnutie reportov o agentoch",
"FILTER_DROPDOWN_LABEL": "Vybrat agenta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Hľadať agentov"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Rozhovory",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Na vygenerovanie reportu sme nedostali dostatok dát, skúste to prosím neskôr.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Hľadaj označenia"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Rozhovory",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Rozhovory",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Načítanie grafu...",
"NO_ENOUGH_DATA": "Na vygenerovanie reportu sme nedostali dostatok dát, skúste to prosím neskôr.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Hľadať tímy"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Rozhovory",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Hľadať agentov",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Hľadať tímy",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Schránka"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Hodnotenia"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Hodnotenia",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Zrušiť",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/sk/settings.json b/app/javascript/dashboard/i18n/locale/sk/settings.json
index 8c135b325..2bef21ec6 100644
--- a/app/javascript/dashboard/i18n/locale/sk/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sk/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Stiahnuť",
"UPLOADING": "Nahrávanie...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Hľadať atribúty"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Zrušiť"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Áno",
+ "NO": "Nie"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Zrušiť"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/sk/signup.json b/app/javascript/dashboard/i18n/locale/sk/signup.json
index 7dedca246..a03da76e4 100644
--- a/app/javascript/dashboard/i18n/locale/sk/signup.json
+++ b/app/javascript/dashboard/i18n/locale/sk/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registrovať",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/sk/sla.json b/app/javascript/dashboard/i18n/locale/sk/sla.json
index 73df8c8d2..4fa490557 100644
--- a/app/javascript/dashboard/i18n/locale/sk/sla.json
+++ b/app/javascript/dashboard/i18n/locale/sk/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/sk/snooze.json b/app/javascript/dashboard/i18n/locale/sk/snooze.json
new file mode 100644
index 000000000..69ef70d73
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/sk/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hodiny",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "zajtra",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "ďalší ťýždeň",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/sk/teamsSettings.json b/app/javascript/dashboard/i18n/locale/sk/teamsSettings.json
index b0acc8b2a..b8353ed3b 100644
--- a/app/javascript/dashboard/i18n/locale/sk/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sk/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Hľadať tímy...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Nepodarilo sa uložiť údaje o tíme. Skúste to znova."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Pridať agentov",
"ADD_AGENTS": "Pridávajú sa agenti do tímu...",
"SELECT": "vybrať",
diff --git a/app/javascript/dashboard/i18n/locale/sl/agentBots.json b/app/javascript/dashboard/i18n/locale/sl/agentBots.json
index f6beeebe8..bc8736c9d 100644
--- a/app/javascript/dashboard/i18n/locale/sl/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/sl/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Nalaganje urejevalnika ...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Pridobivanje botov ...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/sl/agentMgmt.json b/app/javascript/dashboard/i18n/locale/sl/agentMgmt.json
index 448994e69..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/sl/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sl/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/sl/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/sl/attributesMgmt.json
index f2a66668e..7d8528687 100644
--- a/app/javascript/dashboard/i18n/locale/sl/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sl/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/sl/automation.json b/app/javascript/dashboard/i18n/locale/sl/automation.json
index 4ce97216f..63e6f72b2 100644
--- a/app/javascript/dashboard/i18n/locale/sl/automation.json
+++ b/app/javascript/dashboard/i18n/locale/sl/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Dodaj",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/sl/bulkActions.json b/app/javascript/dashboard/i18n/locale/sl/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/sl/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/sl/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/sl/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/sl/cannedMgmt.json
index f55eb624c..c21c80802 100644
--- a/app/javascript/dashboard/i18n/locale/sl/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sl/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/sl/chatlist.json b/app/javascript/dashboard/i18n/locale/sl/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/sl/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/sl/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/sl/contact.json b/app/javascript/dashboard/i18n/locale/sl/contact.json
index 53ee2b24c..9330a3550 100644
--- a/app/javascript/dashboard/i18n/locale/sl/contact.json
+++ b/app/javascript/dashboard/i18n/locale/sl/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/sl/conversation.json b/app/javascript/dashboard/i18n/locale/sl/conversation.json
index b894f2f2f..2adbfa36b 100644
--- a/app/javascript/dashboard/i18n/locale/sl/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/sl/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Predloge za WhatsApp"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/sl/customRole.json b/app/javascript/dashboard/i18n/locale/sl/customRole.json
index 24b3f939a..803e7e683 100644
--- a/app/javascript/dashboard/i18n/locale/sl/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/sl/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/sl/datePicker.json b/app/javascript/dashboard/i18n/locale/sl/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/sl/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/sl/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sl/general.json b/app/javascript/dashboard/i18n/locale/sl/general.json
index 232deae6a..9be5e646a 100644
--- a/app/javascript/dashboard/i18n/locale/sl/general.json
+++ b/app/javascript/dashboard/i18n/locale/sl/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sl/generalSettings.json b/app/javascript/dashboard/i18n/locale/sl/generalSettings.json
index d924bffbd..fab8020e2 100644
--- a/app/javascript/dashboard/i18n/locale/sl/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sl/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/sl/helpCenter.json b/app/javascript/dashboard/i18n/locale/sl/helpCenter.json
index b0bafaf77..2e7c8bd75 100644
--- a/app/javascript/dashboard/i18n/locale/sl/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/sl/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json
index 6238b3092..4c44aa49b 100644
--- a/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Klepetajte z nami",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Klepetajte z nami"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Običajno odgovorimo v nekaj minutah",
diff --git a/app/javascript/dashboard/i18n/locale/sl/integrationApps.json b/app/javascript/dashboard/i18n/locale/sl/integrationApps.json
index b91b434f7..0204eec1e 100644
--- a/app/javascript/dashboard/i18n/locale/sl/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/sl/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Iskanje ...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/sl/integrations.json b/app/javascript/dashboard/i18n/locale/sl/integrations.json
index ea4c1822a..d4688e927 100644
--- a/app/javascript/dashboard/i18n/locale/sl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sl/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/sl/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/sl/labelsMgmt.json
index 705b18d0e..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/sl/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sl/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/sl/macros.json b/app/javascript/dashboard/i18n/locale/sl/macros.json
index fcb409f34..e12f0ca73 100644
--- a/app/javascript/dashboard/i18n/locale/sl/macros.json
+++ b/app/javascript/dashboard/i18n/locale/sl/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/sl/mfa.json b/app/javascript/dashboard/i18n/locale/sl/mfa.json
index a86db16d0..3ae6e4431 100644
--- a/app/javascript/dashboard/i18n/locale/sl/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/sl/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/sl/report.json b/app/javascript/dashboard/i18n/locale/sl/report.json
index 6aaaabb7e..6f6e6e68a 100644
--- a/app/javascript/dashboard/i18n/locale/sl/report.json
+++ b/app/javascript/dashboard/i18n/locale/sl/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Dodaj filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Dodaj filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/sl/settings.json b/app/javascript/dashboard/i18n/locale/sl/settings.json
index ed5652003..15aa95e8b 100644
--- a/app/javascript/dashboard/i18n/locale/sl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sl/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Nalaganje...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Ta zgodba ni več na voljo."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Ta zgodba ni več na voljo.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancel"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/sl/signup.json b/app/javascript/dashboard/i18n/locale/sl/signup.json
index d307a6d6e..da325ebfd 100644
--- a/app/javascript/dashboard/i18n/locale/sl/signup.json
+++ b/app/javascript/dashboard/i18n/locale/sl/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Ustvari račun",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registrirajte se",
"TESTIMONIAL_HEADER": "Le še en korak, da napredujete",
"TESTIMONIAL_CONTENT": "Ste le korak stran od tega, da pritegnete svoje stranke, jih obdržite in najdete nove.",
diff --git a/app/javascript/dashboard/i18n/locale/sl/sla.json b/app/javascript/dashboard/i18n/locale/sl/sla.json
index 023cda755..b80c2f11d 100644
--- a/app/javascript/dashboard/i18n/locale/sl/sla.json
+++ b/app/javascript/dashboard/i18n/locale/sl/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Delovni čas je vklopljen",
- "BUSINESS_HOURS_OFF": "Delovni čas je izklopljen",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "Prag časa prvega odziva",
"NRT": "Prag časa naslednjega odziva",
diff --git a/app/javascript/dashboard/i18n/locale/sl/snooze.json b/app/javascript/dashboard/i18n/locale/sl/snooze.json
new file mode 100644
index 000000000..80af1c084
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/sl/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "dan",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "year",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "dan"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/sl/teamsSettings.json b/app/javascript/dashboard/i18n/locale/sl/teamsSettings.json
index f0a950fd1..c3f90e4e3 100644
--- a/app/javascript/dashboard/i18n/locale/sl/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sl/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "E-pošta",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/sq/agentBots.json b/app/javascript/dashboard/i18n/locale/sq/agentBots.json
index c7dee5d5e..6a3528425 100644
--- a/app/javascript/dashboard/i18n/locale/sq/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/sq/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Botët agjentë janë si anëtarët më të mrekullueshëm të ekipit tuaj. Ata mund të merren me gjërat e vogla, që ju të përqendroheni te ato që kanë rëndësi. Provojini. Mund t'i menaxhoni botët nga kjo faqe ose të krijoni të rinj duke përdorur butonin 'Shto Bot'.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "Bot i sistemit",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Detajet e botit",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/sq/agentMgmt.json b/app/javascript/dashboard/i18n/locale/sq/agentMgmt.json
index 448994e69..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/sq/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sq/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/sq/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/sq/attributesMgmt.json
index 7f1adc6d1..20a3c0596 100644
--- a/app/javascript/dashboard/i18n/locale/sq/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sq/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/sq/automation.json b/app/javascript/dashboard/i18n/locale/sq/automation.json
index cbdf6f00c..212a77339 100644
--- a/app/javascript/dashboard/i18n/locale/sq/automation.json
+++ b/app/javascript/dashboard/i18n/locale/sq/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Shto një shënim privat",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Mesazh hyrës",
diff --git a/app/javascript/dashboard/i18n/locale/sq/bulkActions.json b/app/javascript/dashboard/i18n/locale/sq/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/sq/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/sq/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/sq/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/sq/cannedMgmt.json
index 3ff246f06..246d3f5b3 100644
--- a/app/javascript/dashboard/i18n/locale/sq/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sq/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/sq/chatlist.json b/app/javascript/dashboard/i18n/locale/sq/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/sq/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/sq/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/sq/contact.json b/app/javascript/dashboard/i18n/locale/sq/contact.json
index 52c5c3122..35ccc3b08 100644
--- a/app/javascript/dashboard/i18n/locale/sq/contact.json
+++ b/app/javascript/dashboard/i18n/locale/sq/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "Asnjë kontakt nuk është aktiv për momentin 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/sq/conversation.json b/app/javascript/dashboard/i18n/locale/sq/conversation.json
index bb904eac7..3de3e9fb6 100644
--- a/app/javascript/dashboard/i18n/locale/sq/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/sq/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Biseda u fshi me sukses",
"FAIL_DELETE_CONVERSATION": "Biseda nuk u fshi dot! Provoni përsëri",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/sq/customRole.json b/app/javascript/dashboard/i18n/locale/sq/customRole.json
index b7b48b5e7..f7c1709bd 100644
--- a/app/javascript/dashboard/i18n/locale/sq/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/sq/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/sq/datePicker.json b/app/javascript/dashboard/i18n/locale/sq/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/sq/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/sq/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sq/general.json b/app/javascript/dashboard/i18n/locale/sq/general.json
index 283cf79c4..bdc7cb8a4 100644
--- a/app/javascript/dashboard/i18n/locale/sq/general.json
+++ b/app/javascript/dashboard/i18n/locale/sq/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sq/generalSettings.json b/app/javascript/dashboard/i18n/locale/sq/generalSettings.json
index d657e4c4b..b76ea0e24 100644
--- a/app/javascript/dashboard/i18n/locale/sq/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sq/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/sq/helpCenter.json b/app/javascript/dashboard/i18n/locale/sq/helpCenter.json
index e1991654c..d7c94bd1d 100644
--- a/app/javascript/dashboard/i18n/locale/sq/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/sq/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json
index caa282a8b..4888357dd 100644
--- a/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Orë",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Zakonisht përgjigjemi brenda pak minutash",
diff --git a/app/javascript/dashboard/i18n/locale/sq/integrationApps.json b/app/javascript/dashboard/i18n/locale/sq/integrationApps.json
index b91b434f7..828f4ea67 100644
--- a/app/javascript/dashboard/i18n/locale/sq/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/sq/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/sq/integrations.json b/app/javascript/dashboard/i18n/locale/sq/integrations.json
index ae72f4974..dcef81b96 100644
--- a/app/javascript/dashboard/i18n/locale/sq/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sq/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/sq/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/sq/labelsMgmt.json
index 705b18d0e..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/sq/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sq/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/sq/macros.json b/app/javascript/dashboard/i18n/locale/sq/macros.json
index 33596e353..91e1f8e71 100644
--- a/app/javascript/dashboard/i18n/locale/sq/macros.json
+++ b/app/javascript/dashboard/i18n/locale/sq/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/sq/mfa.json b/app/javascript/dashboard/i18n/locale/sq/mfa.json
index f7556fdcf..b03917bcd 100644
--- a/app/javascript/dashboard/i18n/locale/sq/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/sq/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/sq/report.json b/app/javascript/dashboard/i18n/locale/sq/report.json
index bee450314..a39ab7c05 100644
--- a/app/javascript/dashboard/i18n/locale/sq/report.json
+++ b/app/javascript/dashboard/i18n/locale/sq/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/sq/settings.json b/app/javascript/dashboard/i18n/locale/sq/settings.json
index 28949214f..e1034ba33 100644
--- a/app/javascript/dashboard/i18n/locale/sq/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sq/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Po ngarkohet...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancel"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/sq/signup.json b/app/javascript/dashboard/i18n/locale/sq/signup.json
index b0e5f5d27..4a90fd322 100644
--- a/app/javascript/dashboard/i18n/locale/sq/signup.json
+++ b/app/javascript/dashboard/i18n/locale/sq/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/sq/sla.json b/app/javascript/dashboard/i18n/locale/sq/sla.json
index 0da7873be..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/sq/sla.json
+++ b/app/javascript/dashboard/i18n/locale/sq/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/sq/snooze.json b/app/javascript/dashboard/i18n/locale/sq/snooze.json
new file mode 100644
index 000000000..2fd492c2c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/sq/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minuta",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "ditë",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "year",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/sq/teamsSettings.json b/app/javascript/dashboard/i18n/locale/sq/teamsSettings.json
index f0a950fd1..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/sq/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sq/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/sr/agentBots.json b/app/javascript/dashboard/i18n/locale/sr/agentBots.json
index dc5cf9514..018b95ed3 100644
--- a/app/javascript/dashboard/i18n/locale/sr/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/sr/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Adresa veb zakačke"
+ "URL": "Adresa veb zakačke",
+ "ACTIONS": "Akcije"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/sr/agentMgmt.json b/app/javascript/dashboard/i18n/locale/sr/agentMgmt.json
index 38a693be4..601df8d35 100644
--- a/app/javascript/dashboard/i18n/locale/sr/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sr/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Nema agenata povezanih sa ovim nalogom",
"TITLE": "Upravljajte agentima u Vašem timu",
@@ -79,7 +80,7 @@
"AGENT_AVAILABILITY": {
"LABEL": "Dostupnost",
"PLACEHOLDER": "Подведем итог",
- "ERROR": ""
+ "ERROR": "Dostupnost je obavezna"
},
"SUBMIT": "Uredi agenta"
},
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Nije moguće se povezati sa Woot serverom, pokušajte ponovo kasnije"
}
},
+ "SEARCH_PLACEHOLDER": "Traži agente...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Nema rezultata."
},
diff --git a/app/javascript/dashboard/i18n/locale/sr/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/sr/attributesMgmt.json
index 5866927d3..fa3b9d008 100644
--- a/app/javascript/dashboard/i18n/locale/sr/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sr/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Prikupljanje prilagođenih atributa",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Traži atribute...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Razgovor",
"CONTACT": "Kontakt"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/sr/automation.json b/app/javascript/dashboard/i18n/locale/sr/automation.json
index e2f86f2f9..ec9544e3e 100644
--- a/app/javascript/dashboard/i18n/locale/sr/automation.json
+++ b/app/javascript/dashboard/i18n/locale/sr/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automatizacija",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Dodaj pravilo automatizacije",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Prikupljanje pravila automatizacije",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Dodaj pravilo automatizacije",
"SUBMIT": "Napravi",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Ime",
- "DESCRIPTION": "Opis",
"ACTIVE": "Aktivno",
- "CREATED_ON": "Napravljeno"
+ "CREATED_ON": "Napravljeno",
+ "ACTIONS": "Akcije"
},
"404": "Nisu pronađena pravila automatizacije"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Otvoren razgovor"
+ "OPEN_CONVERSATION": "Otvoren razgovor",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/sr/bulkActions.json b/app/javascript/dashboard/i18n/locale/sr/bulkActions.json
index 22ec6d65a..a1b651426 100644
--- a/app/javascript/dashboard/i18n/locale/sr/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/sr/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Status razgovora je uspešno promenjen.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "Oznake nisu pronađene",
diff --git a/app/javascript/dashboard/i18n/locale/sr/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/sr/cannedMgmt.json
index 8ca5efb82..cfd9f6f2f 100644
--- a/app/javascript/dashboard/i18n/locale/sr/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sr/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Brzi odgovori",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Nema stavki koje se poklapaju sa upitom.",
"LIST": {
"404": "Ne postoje brzi odgovori u ovom nalogu.",
diff --git a/app/javascript/dashboard/i18n/locale/sr/chatlist.json b/app/javascript/dashboard/i18n/locale/sr/chatlist.json
index 9c44cef0b..bdce531ec 100644
--- a/app/javascript/dashboard/i18n/locale/sr/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/sr/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/sr/contact.json b/app/javascript/dashboard/i18n/locale/sr/contact.json
index 6d01d7b47..071ee8df8 100644
--- a/app/javascript/dashboard/i18n/locale/sr/contact.json
+++ b/app/javascript/dashboard/i18n/locale/sr/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Nisu pronađeni kontakti 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Dodeli oznake",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Za:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Naslov :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/sr/conversation.json b/app/javascript/dashboard/i18n/locale/sr/conversation.json
index 3403d3383..752efe60f 100644
--- a/app/javascript/dashboard/i18n/locale/sr/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/sr/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Poruka je uspešno obrisana",
"FAIL_DELETE_MESSSAGE": "Nije bilo moguće obrisati poruku! Pokušajte ponovo",
"NO_RESPONSE": "Nema odgovora",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Nije bilo moguće dodeliti oznaku. Molim vas pokušajte ponovo."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Dodeljen je tim \"{team}\" razgovoru sa id {conversationId}",
"FAILED": "Nije bilo moguće dodeliti tim. Molim vas pokušajte ponovo."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Onemogući potpis",
"MSG_INPUT": "Shift + enter za novi red. Počni sa '/' da bi ste izabrali brzi odgovor.",
"PRIVATE_MSG_INPUT": "Shift + enter za novi red. Ovo će biti vidljivo samo agentima",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Potpis poruke nije podešen, molim vas podesite ga u podešavanjima profila.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Kliknite ovde da izmenite",
"WHATSAPP_TEMPLATES": "Whatsapp šabloni"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Prevuci i pusti za dodavanje",
"START_AUDIO_RECORDING": "Pokreni snimanje zvuka",
"STOP_AUDIO_RECORDING": "Zaustavi snimanje zvuka",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Dodaj bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Nije moguće slanje poruke, molim vas pokušajte ponovo",
"SENT_BY": "Poslao:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Nije bilo moguće poslati poruku! Pokušajte ponovo",
"TRY_AGAIN": "pokušaj ponovo",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Otkaži",
"SEND_EMAIL_SUCCESS": "Transkript razgovora je uspešno poslat",
"SEND_EMAIL_ERROR": "Pojavila se greška, molim vas pokušajte ponovo",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Pošaljite transkript potrošaču",
"SEND_TO_AGENT": "Pošaljite transkript dodeljenom agentu",
diff --git a/app/javascript/dashboard/i18n/locale/sr/customRole.json b/app/javascript/dashboard/i18n/locale/sr/customRole.json
index 6a243b9e9..b163479f6 100644
--- a/app/javascript/dashboard/i18n/locale/sr/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/sr/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Nema stavki koje se poklapaju sa upitom.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/sr/datePicker.json b/app/javascript/dashboard/i18n/locale/sr/datePicker.json
index b41fe952a..777876d8d 100644
--- a/app/javascript/dashboard/i18n/locale/sr/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/sr/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Primeni",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Poslednja 3 meseca",
"LAST_6_MONTHS": "Poslednjih 6 meseci",
"LAST_YEAR": "Poslednja godina",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Prilagođen opseg vremena"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sr/general.json b/app/javascript/dashboard/i18n/locale/sr/general.json
index fed40410c..64114f332 100644
--- a/app/javascript/dashboard/i18n/locale/sr/general.json
+++ b/app/javascript/dashboard/i18n/locale/sr/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Zatvori",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Da",
+ "NO": "Ne"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sr/generalSettings.json b/app/javascript/dashboard/i18n/locale/sr/generalSettings.json
index e12643802..5d4db65fb 100644
--- a/app/javascript/dashboard/i18n/locale/sr/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sr/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Pretraži ili idi na",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Opšta",
"REPORTS": "Izveštaji",
diff --git a/app/javascript/dashboard/i18n/locale/sr/helpCenter.json b/app/javascript/dashboard/i18n/locale/sr/helpCenter.json
index f3461ef73..f1b61014c 100644
--- a/app/javascript/dashboard/i18n/locale/sr/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/sr/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json
index 2153ec562..325326aba 100644
--- a/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Prijemni sandučići",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Onemogućeno"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Omogućeno",
- "DISABLED": "Onemogućeno"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Omogućeno"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "Izveštaj o zadovoljstvu"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,6 +685,16 @@
"SANDBOX": "Sandbox",
"LIVE": "Uživo"
}
+ },
+ "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": "Podešavanja",
@@ -694,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": "Dodajte ili uklonite agente iz ovog prijemnog sandučeta",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Omogući nastavljanje razgovora putem e-pošte",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Razgovori će se nastaviti putem e-pošte ako je dostupna adresa e-pošte kontakta.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Podešavanja prijemnog sandučeta",
"INBOX_UPDATE_SUB_TEXT": "Izmenite podešavanja vašeg prijemnog sandučeta",
"AUTO_ASSIGNMENT_SUB_TEXT": "Omogući ili onemogući automatsku dodelu novih razgovora agentima dodatih ovom prijemnom sandučetu.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "Niko",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Molim vas unesite vrednost veću od 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Ograničite maksimalni broj razgovora u ovom prijemnom sandučetu koja mogu biti automatski dodeljena agentu"
},
+ "ASSIGNMENT": {
+ "TITLE": "Dodeljivanje razgovoru",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktivno",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Otkaži",
+ "CONFIRM_DELETE": "Izbriši",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Ponovna autorizacija",
"SUBTITLE": "Vaša veza sa Fejsbukom je istekla, molim vas povežite ponovo vašu Fejsbuk stranicu za nastavak servisa",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Povratak"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Poruka nedostupnosti za posetioce",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Dan",
+ "AVAILABILITY": "Dostupnost",
+ "HOURS": "Hours",
"ENABLE": "Omogućite dostupnost za ovaj dan",
"UNAVAILABLE": "Nedostupan",
- "HOURS": "sati",
"VALIDATION_ERROR": "Vreme početka bi trebalo biti pre vremena završetka.",
"CHOOSE": "Izaberite"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Za dan"
},
"WIDGET_COLOR_LABEL": "Boja vidžeta",
- "WIDGET_BUBBLE_POSITION_LABEL": "Pozicija vidžet balončića",
- "WIDGET_BUBBLE_TYPE_LABEL": "Vrsta vidžet balončića",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tip:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Razgovarajte sa nama",
- "LABEL": "Naslov pokretača vidžet balončića",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Razgovarajte sa nama"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Predefinisano",
- "CHAT": "Ćaskanje"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Obično odgovaramo u roku od nekoliko minuta",
diff --git a/app/javascript/dashboard/i18n/locale/sr/integrationApps.json b/app/javascript/dashboard/i18n/locale/sr/integrationApps.json
index f1666fb24..03e98bac1 100644
--- a/app/javascript/dashboard/i18n/locale/sr/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/sr/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Preuzimanje integracija",
"NO_HOOK_CONFIGURED": "Nema {integrationId} integracija podešenih na ovom nalogu.",
"HEADER": "Aplikacije",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Omogućeno",
"DISABLED": "Onemogućeno"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Preuzimanje zakački integracija",
"INBOX": "Prijemno sanduče",
+ "ACTIONS": "Akcije",
"DELETE": {
"BUTTON_TEXT": "Izbriši"
}
diff --git a/app/javascript/dashboard/i18n/locale/sr/integrations.json b/app/javascript/dashboard/i18n/locale/sr/integrations.json
index 82e116cff..b95dc5215 100644
--- a/app/javascript/dashboard/i18n/locale/sr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sr/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Pretplaćeni događaji",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Otkaži",
"DESC": "Događaji veb zakački vam omogućavaju informacije u realnom vremenu o onome šta se događa na vašem Chatwoot nalogu. Molim vas unesite ispravnu adresu da bi ste podesili povratni poziv.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Izbriši",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Aplikacije radne table
Aplikacije radne table omogućavaju organizacijama da integrišu aplikaciju unutar Chatwoot radne table da dostave kontekst agentima podrške. Ova mogućnosti vam omogućava da napravite aplikaciju nezavisno i integrišete je unutar radne table da bi ste dostavili informacije o korisniku, njihovim narudžbama ili istoriji prethodnih plaćanja.
Kada integrišete vašu aplikaciju koristeći radnu tablu u Chatwoot-u, vaša aplikacija će dobiti kontakst razgovora i kontakta kao window događaj. Implementirajte osluškivač događaj poruke na vašoj stranici da bi ste primili kontakst.
Da bi ste dodali novu aplikaciju radne table, kliknite na dugme 'Dodaj novu aplikaciju radne table'.
",
"DESCRIPTION": "Aplikacije radne table omogućavaju organizacijama da integrišu aplikaciju unutar radne table da bi omogućili kontekst agentima podrške. Ova mogućnost omogućava da nezavisno napravite aplikaciju i integrišete je da bi ste dostavili informacije o korisniku, njihovim narudžbama ili njihovoj istoriji plaćanja.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Još uvek nema aplikacija radne table podešenih za ovaj nalog",
"LOADING": "Prikupljanje aplikacija radne table...",
"TABLE_HEADER": {
"NAME": "Ime",
- "ENDPOINT": "Krajnja tačka"
+ "ENDPOINT": "Krajnja tačka",
+ "ACTIONS": "Akcije"
},
"EDIT_TOOLTIP": "Uredi aplikaciju",
"DELETE_TOOLTIP": "Obriši aplikaciju"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/sr/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/sr/labelsMgmt.json
index 7d71fc8ba..322d3bad8 100644
--- a/app/javascript/dashboard/i18n/locale/sr/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sr/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Preuzimanje oznaka",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Pretraži oznake...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Nema razultata",
"LIST": {
"404": "Ne postoje dostupne oznake u ovom nalogu.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Ime",
"DESCRIPTION": "Opis",
- "COLOR": "Bojan"
+ "COLOR": "Bojan",
+ "ACTION": "Akcije"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/sr/macros.json b/app/javascript/dashboard/i18n/locale/sr/macros.json
index f4a346918..b3d5de505 100644
--- a/app/javascript/dashboard/i18n/locale/sr/macros.json
+++ b/app/javascript/dashboard/i18n/locale/sr/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Ime",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Akcije"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/sr/mfa.json b/app/javascript/dashboard/i18n/locale/sr/mfa.json
index 00daffda8..cbc87418b 100644
--- a/app/javascript/dashboard/i18n/locale/sr/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/sr/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/sr/report.json b/app/javascript/dashboard/i18n/locale/sr/report.json
index 94048d504..dceafe024 100644
--- a/app/javascript/dashboard/i18n/locale/sr/report.json
+++ b/app/javascript/dashboard/i18n/locale/sr/report.json
@@ -3,7 +3,7 @@
"HEADER": "Razgovori",
"LOADING_CHART": "Učitavanje podataka grafikona...",
"NO_ENOUGH_DATA": "Nismo primili dovoljno podataka da bi smo generisali izveštaj, Molim vas pokušajte ponovo.",
- "DOWNLOAD_AGENT_REPORTS": "Preuzmi izveštaj o agentima",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Pregled agenata",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Učitavanje podataka grafikona...",
"NO_ENOUGH_DATA": "Nismo primili dovoljno podataka da bi smo generisali izveštaj, Molim vas pokušajte ponovo.",
"DOWNLOAD_AGENT_REPORTS": "Preuzmi izveštaj o agentima",
"FILTER_DROPDOWN_LABEL": "Izaberi agenta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Traži agente"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Razgovori",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Nismo primili dovoljno podataka da bi smo generisali izveštaj, Molim vas pokušajte ponovo.",
"DOWNLOAD_LABEL_REPORTS": "Preuzmi izveštaj o oznakama",
"FILTER_DROPDOWN_LABEL": "Izaberi oznaku",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Pretraži oznake"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Razgovori",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Izaberi prijemno sanduče",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Razgovori",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Pregled tima",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Učitavanje podataka grafikona...",
"NO_ENOUGH_DATA": "Nismo primili dovoljno podataka da bi smo generisali izveštaj, Molim vas pokušajte ponovo.",
"DOWNLOAD_TEAM_REPORTS": "Preuzmi izveštaj o timu",
"FILTER_DROPDOWN_LABEL": "Izaberi tim",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Traži tim"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Razgovori",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Izveštaji zadovoljstva korisnika",
- "NO_RECORDS": "Nema dostupnih odgovora o zadovoljstvu korisnika.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Preuzmite izveštaje o zadovoljstvu korisnika",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Traži agente",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Traži tim",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Izaberite agente"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Prijemno sanduče"
+ },
+ "TEAMS": {
+ "LABEL": "Tim"
+ },
+ "RATINGS": {
+ "LABEL": "Ocena"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontakt",
- "AGENT_NAME": "Dodeljeni agent",
+ "AGENT_NAME": "Agent",
"RATING": "Ocena",
- "FEEDBACK_TEXT": "Komentar povratne informacije"
- }
+ "FEEDBACK_TEXT": "Komentar povratne informacije",
+ "CONVERSATION": "Razgovor",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Ukupno odgovora",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Procenat odgovora",
"TOOLTIP": "Ukupan broj odgovora / Ukupan broj poruka o zadovoljstvu korisnika * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Otkaži",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/sr/settings.json b/app/javascript/dashboard/i18n/locale/sr/settings.json
index c3ccedaa1..7ee51eb56 100644
--- a/app/javascript/dashboard/i18n/locale/sr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sr/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Preuzmi",
"UPLOADING": "Dodavanje...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Ova priča više nije dostupna."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Ova priča više nije dostupna.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Pročitaj dokumentaciju",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Mogućnosti",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Plaćanje",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Traži atribute"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Reši razgovor",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Reši razgovor",
+ "CANCEL": "Otkaži"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Da",
+ "NO": "Ne"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "O ne! Nismo mogli da pronađemo nijedan Chatwoot nalog. Molim vas kreirajte novi da bi ste nastavili.",
"NEW_ACCOUNT": "Novi nalog",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Otkaži"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/sr/signup.json b/app/javascript/dashboard/i18n/locale/sr/signup.json
index 520812e58..061cfd571 100644
--- a/app/javascript/dashboard/i18n/locale/sr/signup.json
+++ b/app/javascript/dashboard/i18n/locale/sr/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registruj",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/sr/sla.json b/app/javascript/dashboard/i18n/locale/sr/sla.json
index c47db365b..1ce06ad35 100644
--- a/app/javascript/dashboard/i18n/locale/sr/sla.json
+++ b/app/javascript/dashboard/i18n/locale/sr/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/sr/snooze.json b/app/javascript/dashboard/i18n/locale/sr/snooze.json
new file mode 100644
index 000000000..f801d2949
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/sr/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "sati",
+ "DAY": "dan",
+ "DAYS": "days",
+ "WEEK": "dan",
+ "WEEKS": "weeks",
+ "MONTH": "nedelja",
+ "MONTHS": "months",
+ "YEAR": "mesec",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "sutra",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "sledeće nedelje",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "dan",
+ "DAY": "dan"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/sr/teamsSettings.json b/app/javascript/dashboard/i18n/locale/sr/teamsSettings.json
index f10cbe93c..4474c0b28 100644
--- a/app/javascript/dashboard/i18n/locale/sr/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sr/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Traži tim...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Nema timova napravljenih na ovom nalogu.",
"EDIT_TEAM": "Uredi tim",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Nije bilo moguće sačuvati detalje tima. Pokušajte ponovo."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "E-POŠTA",
+ "AGENT": "Agent",
+ "EMAIL": "E-pošta",
"BUTTON_TEXT": "Dodaj agente",
"ADD_AGENTS": "Dodaju se agenti vašem timu...",
"SELECT": "izaberi",
diff --git a/app/javascript/dashboard/i18n/locale/sv/agentBots.json b/app/javascript/dashboard/i18n/locale/sv/agentBots.json
index fea4cd09a..0a7882e4c 100644
--- a/app/javascript/dashboard/i18n/locale/sv/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/sv/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Åtgärder"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/sv/agentMgmt.json b/app/javascript/dashboard/i18n/locale/sv/agentMgmt.json
index 925b6854c..e085f858b 100644
--- a/app/javascript/dashboard/i18n/locale/sv/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sv/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administratör",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Det finns inga agenter kopplade till detta konto",
"TITLE": "Hantera agenter i ditt team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Kunde inte ansluta till Woot Server, försök igen senare"
}
},
+ "SEARCH_PLACEHOLDER": "Sök efter agenter...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Inga resultat hittades."
},
diff --git a/app/javascript/dashboard/i18n/locale/sv/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/sv/attributesMgmt.json
index a471b55a7..142c29549 100644
--- a/app/javascript/dashboard/i18n/locale/sv/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sv/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/sv/automation.json b/app/javascript/dashboard/i18n/locale/sv/automation.json
index 0194a66d2..d77252fd7 100644
--- a/app/javascript/dashboard/i18n/locale/sv/automation.json
+++ b/app/javascript/dashboard/i18n/locale/sv/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Skapa",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Namn",
- "DESCRIPTION": "Beskrivning",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Åtgärder"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/sv/bulkActions.json b/app/javascript/dashboard/i18n/locale/sv/bulkActions.json
index 3748497cb..77c37de0b 100644
--- a/app/javascript/dashboard/i18n/locale/sv/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/sv/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "Inga etiketter hittades",
diff --git a/app/javascript/dashboard/i18n/locale/sv/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/sv/cannedMgmt.json
index 44618595f..c3f6c6dd9 100644
--- a/app/javascript/dashboard/i18n/locale/sv/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sv/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Svarsmallar",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Lägg till svarsmall",
"LOADING": "Hämtar svarsmallar...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Det finns inga objekt som matchar denna fråga.",
"LIST": {
"404": "Det finns inga svarsmallar tillgängliga på detta konto.",
diff --git a/app/javascript/dashboard/i18n/locale/sv/chatlist.json b/app/javascript/dashboard/i18n/locale/sv/chatlist.json
index 7e2e9c7c8..b2861436b 100644
--- a/app/javascript/dashboard/i18n/locale/sv/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/sv/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/sv/contact.json b/app/javascript/dashboard/i18n/locale/sv/contact.json
index c9d6be5fc..b606f442c 100644
--- a/app/javascript/dashboard/i18n/locale/sv/contact.json
+++ b/app/javascript/dashboard/i18n/locale/sv/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Inga kontakter matchar din sökning 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Till:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Ämne :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/sv/conversation.json b/app/javascript/dashboard/i18n/locale/sv/conversation.json
index 22ff5544b..03dd023e9 100644
--- a/app/javascript/dashboard/i18n/locale/sv/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/sv/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Detta meddelande stöds inte. Du kan se detta meddelande på Facebook Messenger-appen.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Detta meddelande stöds inte. Du kan se detta meddelande på Instagram-appen.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Meddelandet har tagits bort",
"FAIL_DELETE_MESSSAGE": "Det gick inte att ta bort meddelande! Försök igen",
"NO_RESPONSE": "Inget svar",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Inaktivera signatur",
"MSG_INPUT": "Skift + Enter för ny rad. Börja med '/' för att välja en svarsmall.",
"PRIVATE_MSG_INPUT": "Skift + Enter för ny rad. Detta kommer endast att vara synligt för agenter",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Meddelandesignaturen är inte konfigurerad. Konfigurera den i profilinställningarna.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Klicka här för att uppdatera",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Dra och släpp hit för att bifoga",
"START_AUDIO_RECORDING": "Starta ljudinspelning",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Lägg till bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Det gick inte att skicka detta meddelande, försök igen senare",
"SENT_BY": "Skickat av:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Avbryt",
"SEND_EMAIL_SUCCESS": "Chattranskriberingen har skickats",
"SEND_EMAIL_ERROR": "Ett fel uppstod, vänligen försök igen",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Skicka transkriberingen till kunden",
"SEND_TO_AGENT": "Skicka transkriberingen till den tilldelade agenten",
diff --git a/app/javascript/dashboard/i18n/locale/sv/customRole.json b/app/javascript/dashboard/i18n/locale/sv/customRole.json
index cad921b3a..0ee564ca2 100644
--- a/app/javascript/dashboard/i18n/locale/sv/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/sv/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Det finns inga objekt som matchar denna fråga.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/sv/datePicker.json b/app/javascript/dashboard/i18n/locale/sv/datePicker.json
index ff981d4a6..3f9634d72 100644
--- a/app/javascript/dashboard/i18n/locale/sv/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/sv/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "De senaste 3 månaderna",
"LAST_6_MONTHS": "De senaste 6 månaderna",
"LAST_YEAR": "Senaste året",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sv/general.json b/app/javascript/dashboard/i18n/locale/sv/general.json
index f6f022eef..51cfcdb0d 100644
--- a/app/javascript/dashboard/i18n/locale/sv/general.json
+++ b/app/javascript/dashboard/i18n/locale/sv/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Stäng",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Ja",
+ "NO": "Nej"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sv/generalSettings.json b/app/javascript/dashboard/i18n/locale/sv/generalSettings.json
index bd69e0a73..1048b80bb 100644
--- a/app/javascript/dashboard/i18n/locale/sv/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sv/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Rapporter",
diff --git a/app/javascript/dashboard/i18n/locale/sv/helpCenter.json b/app/javascript/dashboard/i18n/locale/sv/helpCenter.json
index f3251489c..f9ac0cb36 100644
--- a/app/javascript/dashboard/i18n/locale/sv/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/sv/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json
index c667c91a3..803bdd61d 100644
--- a/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inkorgar",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -236,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",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Spara"
}
@@ -589,8 +592,10 @@
"DISABLED": "Inaktiverad"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Aktiverad",
- "DISABLED": "Inaktiverad"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Aktivera"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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": "Inställningar",
@@ -694,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": "Lägg till eller ta bort agenter från denna inkorg",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inkorgsinställningar",
"INBOX_UPDATE_SUB_TEXT": "Uppdatera inställningarna för din inkorg",
"AUTO_ASSIGNMENT_SUB_TEXT": "Aktivera eller inaktivera automatisk tilldelning av nya konversationer till de agenter som lagts till den här inkorgen.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Avbryt",
+ "CONFIRM_DELETE": "Radera",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Återauktorisera",
"SUBTITLE": "Din Facebook-anslutning har löpt ut, vänligen återanslut din Facebook-sida för att fortsätta med tjänsterna",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Tillgänglighet",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Inom en dag"
},
"WIDGET_COLOR_LABEL": "Widgetfärg",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chatta med oss",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chatta med oss"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Svarar vanligtvis inom några minuter",
diff --git a/app/javascript/dashboard/i18n/locale/sv/integrationApps.json b/app/javascript/dashboard/i18n/locale/sv/integrationApps.json
index f6e60b927..34b277e20 100644
--- a/app/javascript/dashboard/i18n/locale/sv/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/sv/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applikationer",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Aktiverad",
"DISABLED": "Inaktiverad"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inkorg",
+ "ACTIONS": "Åtgärder",
"DELETE": {
"BUTTON_TEXT": "Radera"
}
diff --git a/app/javascript/dashboard/i18n/locale/sv/integrations.json b/app/javascript/dashboard/i18n/locale/sv/integrations.json
index af76bd0f1..fc7c9fe5c 100644
--- a/app/javascript/dashboard/i18n/locale/sv/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sv/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Avbryt",
"DESC": "Webbhook-händelser ger dig realtidsinformation om vad som händer i ditt Chatwoot-konto. Ange en giltig URL för att konfigurera en callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Radera",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Namn",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Åtgärder"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/sv/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/sv/labelsMgmt.json
index 2f2304ad5..3b944c6b7 100644
--- a/app/javascript/dashboard/i18n/locale/sv/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sv/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Hämtar etiketter",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Sök etiketter...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Det finns inga objekt som matchar denna fråga",
"LIST": {
"404": "Det finns inga etiketter tillgängliga på detta konto.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Namn",
"DESCRIPTION": "Beskrivning",
- "COLOR": "Färg"
+ "COLOR": "Färg",
+ "ACTION": "Åtgärder"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/sv/macros.json b/app/javascript/dashboard/i18n/locale/sv/macros.json
index fd1c46728..6d9fa5ca1 100644
--- a/app/javascript/dashboard/i18n/locale/sv/macros.json
+++ b/app/javascript/dashboard/i18n/locale/sv/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Namn",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Senast uppdaterad av",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Åtgärder"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/sv/mfa.json b/app/javascript/dashboard/i18n/locale/sv/mfa.json
index 6e11e3fe2..95374c6f9 100644
--- a/app/javascript/dashboard/i18n/locale/sv/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/sv/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/sv/report.json b/app/javascript/dashboard/i18n/locale/sv/report.json
index 3f0b24c94..62ae2d04f 100644
--- a/app/javascript/dashboard/i18n/locale/sv/report.json
+++ b/app/javascript/dashboard/i18n/locale/sv/report.json
@@ -3,7 +3,7 @@
"HEADER": "Konversationer",
"LOADING_CHART": "Laddar diagramdata...",
"NO_ENOUGH_DATA": "Vi har inte fått tillräckligt många datapunkter för att generera en rapport, försök igen senare.",
- "DOWNLOAD_AGENT_REPORTS": "Ladda ner agentrapporter",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Laddar diagramdata...",
"NO_ENOUGH_DATA": "Vi har inte fått tillräckligt många datapunkter för att generera en rapport, försök igen senare.",
"DOWNLOAD_AGENT_REPORTS": "Ladda ner agentrapporter",
"FILTER_DROPDOWN_LABEL": "Välj agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Sök efter agenter"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konversationer",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Vi har inte fått tillräckligt många datapunkter för att generera en rapport, försök igen senare.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Sök etiketter"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konversationer",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konversationer",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Laddar diagramdata...",
"NO_ENOUGH_DATA": "Vi har inte fått tillräckligt många datapunkter för att generera en rapport, försök igen senare.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Sök efter team"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konversationer",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Sök efter agenter",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Sök efter team",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inkorg"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Betyg"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Betyg",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Spara",
+ "CANCEL": "Avbryt",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/sv/settings.json b/app/javascript/dashboard/i18n/locale/sv/settings.json
index 6f550b5cd..1f4ecd714 100644
--- a/app/javascript/dashboard/i18n/locale/sv/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sv/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Hämta",
"UPLOADING": "Laddar upp...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funktioner",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Lös konversationen",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Lös konversationen",
+ "CANCEL": "Avbryt"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Ja",
+ "NO": "Nej"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "Nytt konto",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Avbryt"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/sv/signup.json b/app/javascript/dashboard/i18n/locale/sv/signup.json
index 7b51af7e0..2dac954ca 100644
--- a/app/javascript/dashboard/i18n/locale/sv/signup.json
+++ b/app/javascript/dashboard/i18n/locale/sv/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registrera",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/sv/sla.json b/app/javascript/dashboard/i18n/locale/sv/sla.json
index 185aaca35..0ca77a8ab 100644
--- a/app/javascript/dashboard/i18n/locale/sv/sla.json
+++ b/app/javascript/dashboard/i18n/locale/sv/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/sv/snooze.json b/app/javascript/dashboard/i18n/locale/sv/snooze.json
new file mode 100644
index 000000000..862e6c2d3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/sv/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "imorgon",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "nästa vecka",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/sv/teamsSettings.json b/app/javascript/dashboard/i18n/locale/sv/teamsSettings.json
index 4559a3780..ec3acf350 100644
--- a/app/javascript/dashboard/i18n/locale/sv/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sv/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Sök efter team...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "E-POST",
+ "AGENT": "Agent",
+ "EMAIL": "E-post",
"BUTTON_TEXT": "Lägg till agenter",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/ta/agentBots.json b/app/javascript/dashboard/i18n/locale/ta/agentBots.json
index 071a8c08e..351007fc1 100644
--- a/app/javascript/dashboard/i18n/locale/ta/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ta/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "வெப்ஹூக் URL"
+ "URL": "வெப்ஹூக் URL",
+ "ACTIONS": "செயல்கள்"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/ta/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ta/agentMgmt.json
index 2576c9c14..a6d8e8f4e 100644
--- a/app/javascript/dashboard/i18n/locale/ta/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ta/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "நிர்வாகி",
"AGENT": "ஏஜென்ட்"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "இந்த கணக்குடன் எந்த ஏஜென்ட்டும் இல்லை",
"TITLE": "உங்கள் அணியில் ஏஜென்ட்களை நிர்வகிக்கவும்",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "வூட் சர்வருடன் இணைக்க முடியவில்ல, மீண்டும் முயற்சிக்கவும்"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/ta/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ta/attributesMgmt.json
index b68f86965..606dc81ea 100644
--- a/app/javascript/dashboard/i18n/locale/ta/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ta/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/ta/automation.json b/app/javascript/dashboard/i18n/locale/ta/automation.json
index db4270b90..10d93edb3 100644
--- a/app/javascript/dashboard/i18n/locale/ta/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ta/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "பெயர்",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "செயல்கள்"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/ta/bulkActions.json b/app/javascript/dashboard/i18n/locale/ta/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/ta/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ta/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/ta/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ta/cannedMgmt.json
index be9e5d27b..d5bc1c255 100644
--- a/app/javascript/dashboard/i18n/locale/ta/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ta/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "பதிவு செய்யப்பட்ட பதில்கள்",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "இந்த கணக்கில் பதிவு செய்யப்பட்ட பதில்கள் எதுவும் இல்லை.",
diff --git a/app/javascript/dashboard/i18n/locale/ta/chatlist.json b/app/javascript/dashboard/i18n/locale/ta/chatlist.json
index e3920a6c3..c3fa54fe4 100644
--- a/app/javascript/dashboard/i18n/locale/ta/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ta/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ta/contact.json b/app/javascript/dashboard/i18n/locale/ta/contact.json
index 332bc204a..dac0a58df 100644
--- a/app/javascript/dashboard/i18n/locale/ta/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ta/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/ta/conversation.json b/app/javascript/dashboard/i18n/locale/ta/conversation.json
index 850fbab9c..cf48d5b1d 100644
--- a/app/javascript/dashboard/i18n/locale/ta/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ta/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "புதிய வரிக்கு Shift + Enter ஐ அழுத்தவும். பதிவு செய்யப்பட்ட பதிலைத் தேர்ந்தெடுக்க '/' உடன் தொடங்கவும்.",
"PRIVATE_MSG_INPUT": "புதிய வரிக்கு Shift + Enter ஐ அழுத்தவும். இது ஏஜென்ட்களுக்கு மட்டுமே தெரியும்",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "ரத்துசெய்",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/ta/customRole.json b/app/javascript/dashboard/i18n/locale/ta/customRole.json
index 5f49dbec2..a59b02181 100644
--- a/app/javascript/dashboard/i18n/locale/ta/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/ta/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/ta/datePicker.json b/app/javascript/dashboard/i18n/locale/ta/datePicker.json
index 60badc82d..cf438ebd2 100644
--- a/app/javascript/dashboard/i18n/locale/ta/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/ta/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ta/general.json b/app/javascript/dashboard/i18n/locale/ta/general.json
index f79be946e..4769872a0 100644
--- a/app/javascript/dashboard/i18n/locale/ta/general.json
+++ b/app/javascript/dashboard/i18n/locale/ta/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "மூடு",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ta/generalSettings.json b/app/javascript/dashboard/i18n/locale/ta/generalSettings.json
index 2a6b67810..8a4a44d43 100644
--- a/app/javascript/dashboard/i18n/locale/ta/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ta/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "அறிக்கைகள்",
diff --git a/app/javascript/dashboard/i18n/locale/ta/helpCenter.json b/app/javascript/dashboard/i18n/locale/ta/helpCenter.json
index d56d7527a..f623dd88c 100644
--- a/app/javascript/dashboard/i18n/locale/ta/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ta/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json
index 7bf59f2cd..16635e46d 100644
--- a/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "இன்பாக்ஸ்கள்",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "முடக்கப்பட்டது"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "இயக்கப்பட்டது",
- "DISABLED": "முடக்கப்பட்டது"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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": "அமைப்புகள்",
@@ -694,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": "இந்த இன்பாக்ஸிலிருந்து ஏஜென்ட்களைச் சேர்க்கவும் அல்லது அகற்றவும்",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "இன்பாக்ஸ் அமைப்புகள்",
"INBOX_UPDATE_SUB_TEXT": "உங்கள் இன்பாக்ஸ் அமைப்புகளைப் புதுப்பிக்கவும்",
"AUTO_ASSIGNMENT_SUB_TEXT": "இந்த இன்பாக்ஸில் சேர்க்கப்பட்ட ஏஜென்ட்களுக்கு புதிய உரையாடல்களின் தானியங்கி ஒதுக்கீட்டை இயக்கவும் அல்லது முடக்கவும்.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "ரத்துசெய்",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "மறு அங்கீகாரம்",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "விட்ஜெட் நிறம்",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
diff --git a/app/javascript/dashboard/i18n/locale/ta/integrationApps.json b/app/javascript/dashboard/i18n/locale/ta/integrationApps.json
index dc6669cc5..79ca01a5b 100644
--- a/app/javascript/dashboard/i18n/locale/ta/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ta/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "இயக்கப்பட்டது",
"DISABLED": "முடக்கப்பட்டது"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "செயல்கள்",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/ta/integrations.json b/app/javascript/dashboard/i18n/locale/ta/integrations.json
index 2c5a40fbb..0bfcfdd38 100644
--- a/app/javascript/dashboard/i18n/locale/ta/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ta/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "ரத்துசெய்",
"DESC": "உங்கள் சாட்வூட் கணக்கில் என்ன நடக்கிறது என்பது குறித்த நிகழ்நேர தகவல்களை வெப்ஹூக் நிகழ்வுகள் உங்களுக்கு வழங்குகின்றன. மீட்டமைக்க சரியான URL ஐ உள்ளிடவும்.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "பெயர்",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "செயல்கள்"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/ta/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ta/labelsMgmt.json
index c4b2b1c10..f6ecf753d 100644
--- a/app/javascript/dashboard/i18n/locale/ta/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ta/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "இந்த கேள்விக்கு பொருந்தக்கூடியவை எதுவும் இல்லை",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "பெயர்",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "செயல்கள்"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ta/macros.json b/app/javascript/dashboard/i18n/locale/ta/macros.json
index dbc7d5d68..01a116fbe 100644
--- a/app/javascript/dashboard/i18n/locale/ta/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ta/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "பெயர்",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "செயல்கள்"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/ta/mfa.json b/app/javascript/dashboard/i18n/locale/ta/mfa.json
index 04ef1ee0b..8dfef7138 100644
--- a/app/javascript/dashboard/i18n/locale/ta/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/ta/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/ta/report.json b/app/javascript/dashboard/i18n/locale/ta/report.json
index 2a8f390fe..a7d86ac01 100644
--- a/app/javascript/dashboard/i18n/locale/ta/report.json
+++ b/app/javascript/dashboard/i18n/locale/ta/report.json
@@ -3,7 +3,7 @@
"HEADER": "உரையாடல்கள்",
"LOADING_CHART": "சார்ட்டுக்கான டேட்டாவை பெறுகிறது...",
"NO_ENOUGH_DATA": "அறிக்கையை உருவாக்க போதுமான தரவுகளை பெறவில்லை, தயவுசெய்து மீண்டும் முயற்சிக்கவும்.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "சார்ட்டுக்கான டேட்டாவை பெறுகிறது...",
"NO_ENOUGH_DATA": "அறிக்கையை உருவாக்க போதுமான தரவுகளை பெறவில்லை, தயவுசெய்து மீண்டும் முயற்சிக்கவும்.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "உரையாடல்கள்",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "அறிக்கையை உருவாக்க போதுமான தரவுகளை பெறவில்லை, தயவுசெய்து மீண்டும் முயற்சிக்கவும்.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "உரையாடல்கள்",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "உரையாடல்கள்",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "சார்ட்டுக்கான டேட்டாவை பெறுகிறது...",
"NO_ENOUGH_DATA": "அறிக்கையை உருவாக்க போதுமான தரவுகளை பெறவில்லை, தயவுசெய்து மீண்டும் முயற்சிக்கவும்.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "உரையாடல்கள்",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "ஏஜென்ட்"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "ஏஜென்ட்",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "ரத்துசெய்",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/ta/settings.json b/app/javascript/dashboard/i18n/locale/ta/settings.json
index dff58595a..e04011d68 100644
--- a/app/javascript/dashboard/i18n/locale/ta/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ta/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "பதிவிறக்கம்",
"UPLOADING": "பதிவேறுகிறது...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "ரத்துசெய்"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "ரத்துசெய்"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ta/signup.json b/app/javascript/dashboard/i18n/locale/ta/signup.json
index 40a4ba953..3249d4a78 100644
--- a/app/javascript/dashboard/i18n/locale/ta/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ta/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "பதியவும்",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/ta/sla.json b/app/javascript/dashboard/i18n/locale/ta/sla.json
index 2230920d9..fdaefa34d 100644
--- a/app/javascript/dashboard/i18n/locale/ta/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ta/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/ta/snooze.json b/app/javascript/dashboard/i18n/locale/ta/snooze.json
new file mode 100644
index 000000000..f3eb3b612
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ta/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "அடுத்து",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ta/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ta/teamsSettings.json
index bad9ab5ae..42fe42c8e 100644
--- a/app/javascript/dashboard/i18n/locale/ta/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ta/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "ஈ-மெயில்",
+ "AGENT": "ஏஜென்ட்",
+ "EMAIL": "இமெயில்",
"BUTTON_TEXT": "ஏஜென்ட்களைச் சேர்க்க",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/th/agentBots.json b/app/javascript/dashboard/i18n/locale/th/agentBots.json
index c5b2690b3..a44bb741c 100644
--- a/app/javascript/dashboard/i18n/locale/th/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/th/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "ลิ้ง Webhook"
+ "URL": "ลิ้ง Webhook",
+ "ACTIONS": "การกระทำ"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/th/agentMgmt.json b/app/javascript/dashboard/i18n/locale/th/agentMgmt.json
index baafc8e91..4080c7437 100644
--- a/app/javascript/dashboard/i18n/locale/th/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/th/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "ผู้ดูเเล",
"AGENT": "พนักงาน"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "ไม่มีพนักงานที่เกี่ยวข้องในบัญชีนี้",
"TITLE": "จัดการพนักงานในทีมของคุณ",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "ไม่สามารถเชื่อมต่อเซิฟเวอร์ได้โปรดลองอีกครั้งในภายหลัง"
}
},
+ "SEARCH_PLACEHOLDER": "ค้นหาพนักงาน...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "ไม่พบผลการค้นหา"
},
diff --git a/app/javascript/dashboard/i18n/locale/th/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/th/attributesMgmt.json
index 275cd5f09..8d095609d 100644
--- a/app/javascript/dashboard/i18n/locale/th/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/th/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "กำลังดึงแอตทริบิวต์ที่กำหนดเอง",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "การสนทนา",
"CONTACT": "ผู้ติดต่อ"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/th/automation.json b/app/javascript/dashboard/i18n/locale/th/automation.json
index 0518a4ed1..e060f7634 100644
--- a/app/javascript/dashboard/i18n/locale/th/automation.json
+++ b/app/javascript/dashboard/i18n/locale/th/automation.json
@@ -3,8 +3,11 @@
"HEADER": "เงื่อนไขอัตโนมัติ",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "เพิ่มเงื่อนไขอัตโนมัติ",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "กำลังโหลดเงื่อนไขอัตโนมัติ",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "เพิ่มเงื่อนไขอัตโนมัติ",
"SUBMIT": "สร้าง",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "ชื่อ",
- "DESCRIPTION": "คำอธิบาย",
"ACTIVE": "ใช้งานอยู่",
- "CREATED_ON": "สร้างเมื่อ"
+ "CREATED_ON": "สร้างเมื่อ",
+ "ACTIONS": "การกระทำ"
},
"404": "ไม่พบเงื่อนไขอัตโนมัติ"
},
@@ -87,7 +90,7 @@
"RESET_MESSAGE": "การเปลี่ยนประเภทเหตุการณ์ จะรีเช็ทเงื่อนไขและเหตุการณ์ที่คุณเพิ่มไว้ด้านล่าง"
},
"CONDITION": {
- "DELETE_MESSAGE": "คุณต้องมีอย่างน้อย 1 เงื่อนไขเพื่อบันทึก",
+ "DELETE_MESSAGE": "คุณต้องมีอย่างน้อยหนึ่งเงื่อนไขเพื่อบันทึก",
"CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes",
"CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "เปิดดูการสนทนา"
+ "OPEN_CONVERSATION": "เปิดดูการสนทนา",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/th/bulkActions.json b/app/javascript/dashboard/i18n/locale/th/bulkActions.json
index 054da7b28..e6cc8d785 100644
--- a/app/javascript/dashboard/i18n/locale/th/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/th/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "ไม่พบหัวข้อ",
diff --git a/app/javascript/dashboard/i18n/locale/th/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/th/cannedMgmt.json
index 2451a3f9f..b6f7343e6 100644
--- a/app/javascript/dashboard/i18n/locale/th/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/th/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "คำตอบสำเร็จรูป",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "ไม่มีการตอบสำเร็จรูปในบัญชีนี้",
diff --git a/app/javascript/dashboard/i18n/locale/th/chatlist.json b/app/javascript/dashboard/i18n/locale/th/chatlist.json
index 3663e94a3..9b7d274fd 100644
--- a/app/javascript/dashboard/i18n/locale/th/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/th/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/th/contact.json b/app/javascript/dashboard/i18n/locale/th/contact.json
index 9514ec2a2..b0c174fda 100644
--- a/app/javascript/dashboard/i18n/locale/th/contact.json
+++ b/app/javascript/dashboard/i18n/locale/th/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "ไม่มีผู้ติดต่อที่ตรงกัน 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "ถึง:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "หัวเรื่อง :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "สำเนา:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "สำเนาลับ:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "สำเนาลับ"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/th/conversation.json b/app/javascript/dashboard/i18n/locale/th/conversation.json
index 0390157a4..de79ac100 100644
--- a/app/javascript/dashboard/i18n/locale/th/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/th/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "ลบข้อความสำเร็จเเล้ว",
"FAIL_DELETE_MESSSAGE": "ไม่สามารถลบข้อความได้ โปรดลองใหม่อีกครั้ง",
"NO_RESPONSE": "ไม่มีการตอบกลับ",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "มอบหมายให้ทีม {team} มาดูแลการสนทนารหัส {conversationId}",
"FAILED": "ไม่สามารถมอบหมายให้กับทีมได้ โปรดลองใหม่อีกครั้ง"
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "ปิดการใช้ลายเซ็นต์",
"MSG_INPUT": "Shift + enter สำหรับบรรทัดใหม่ เริ่มต้นด้วย '/' เพื่อเลือกคำตอบสำเร็จรูป",
"PRIVATE_MSG_INPUT": "Shift + enter สำหรับบรรทัดใหม่ สิ่งนี้จะปรากฏแก่พนักงานเท่านั้น",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "ข้อความลายเซ็นต์ไม่ได้ถูกตั้งค่า โปรดปรับแต่งในหน้าตั้งค่าข้อมูลส่วนตัว",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "คลิกที่นี่เพื่ออัปเดต",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "ลากเเละปล่อยที่นี่เพื่อเพิ่ม",
"START_AUDIO_RECORDING": "เริ่มบันทึกเสียง",
"STOP_AUDIO_RECORDING": "หยุดบันทึกเสียง",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "เพิ่ม BCC",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "ไฟล์ของคุณมีขนาดเกิน {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "ไม่สามารถส่งข้อความนี้ได้ โปรดลองใหม่อีกครั้ง",
"SENT_BY": "ส่งโดย:",
"BOT": "บอท",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "ไม่สามารถส่งข้อความได้ โปรดลองอีกครั้ง",
"TRY_AGAIN": "ส่งอีกครั้ง",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "ยกเลิก",
"SEND_EMAIL_SUCCESS": "บันทึกการสนทนาได้ถูกส่งเเล้ว",
"SEND_EMAIL_ERROR": "เกิดข้อผิดพลาดกรุณาลองใหม่อีกครั้ง",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "ส่งบันทึกการสนทนาให้ลูกค้า",
"SEND_TO_AGENT": "ส่งบันทึกการสนทนาให้พนักงานที่ได้รับมอบหมาย",
diff --git a/app/javascript/dashboard/i18n/locale/th/customRole.json b/app/javascript/dashboard/i18n/locale/th/customRole.json
index 84a50adb7..ac2d88556 100644
--- a/app/javascript/dashboard/i18n/locale/th/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/th/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/th/datePicker.json b/app/javascript/dashboard/i18n/locale/th/datePicker.json
index 3f3031233..49b07fffa 100644
--- a/app/javascript/dashboard/i18n/locale/th/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/th/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "ใช้งาน",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "3 เดือนที่ผ่านมา",
"LAST_6_MONTHS": "6 เดือนที่ผ่านมา",
"LAST_YEAR": "ปีที่ผ่านมา",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "กำหนดช่วงระยะเวลา"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/th/general.json b/app/javascript/dashboard/i18n/locale/th/general.json
index 617411445..c933f5274 100644
--- a/app/javascript/dashboard/i18n/locale/th/general.json
+++ b/app/javascript/dashboard/i18n/locale/th/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "ปิด",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "ใช่",
+ "NO": "ไม่"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/th/generalSettings.json b/app/javascript/dashboard/i18n/locale/th/generalSettings.json
index 853d21254..a034bb194 100644
--- a/app/javascript/dashboard/i18n/locale/th/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/th/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "ค้นหาหรือไปยัง",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "ทั่วไป",
"REPORTS": "รายงาน",
diff --git a/app/javascript/dashboard/i18n/locale/th/helpCenter.json b/app/javascript/dashboard/i18n/locale/th/helpCenter.json
index b4a2bd2b7..e84f283ef 100644
--- a/app/javascript/dashboard/i18n/locale/th/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/th/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json
index 03419dda7..b0ab9f828 100644
--- a/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "กล่องข้อความ",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "ปิด"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "เปิด",
- "DISABLED": "ปิด"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "เปิดใช้งาน"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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": "ตั้งค่า",
@@ -694,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": "เพิ่มหรือลบพนักงานจากกล่องสนทนานี้",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "เปิดให้มีการสนทนาต่อทางอีเมลได้",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "การสนทนาจะสามารถดำเนินการต่อผ่านทางอีเมลได้ หากลูกค้าให้อีเมลไว้",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "ตั้งค่ากล่องข้อความ",
"INBOX_UPDATE_SUB_TEXT": "อัปเดตกล่องข้อความ",
"AUTO_ASSIGNMENT_SUB_TEXT": "เปิดหรือปิดระบบมอบหมายงานอัตโนมัติสำหรับข้อความใหม่ให้กับพนักงานในกล่องสนทนานี้",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "ไม่มี",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "กรุณากรอกค่าที่มากกว่า 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "ใช้งานอยู่",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "ยกเลิก",
+ "CONFIRM_DELETE": "ลบ",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "ขอสิทธิ์อีกครั้ง",
"SUBTITLE": "การเชื่อมต่อกับ Facebook หมดอายุแล้ว โปรดเชื่อมต่อใหม่อีกครั้ง",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "ข้อความที่ต้องการแสดงเมื่ออยู่นอกเวลาทำการ",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "วัน",
+ "AVAILABILITY": "สถานะ",
+ "HOURS": "Hours",
"ENABLE": "เปิดใช้ความพร้อมในการให้บริการสำหรับวันนี้",
"UNAVAILABLE": "ไม่พร้อมให้บริการ",
- "HOURS": "ชั่วโมง",
"VALIDATION_ERROR": "เวลาเปิดทำการควรเริ่มก่อนเวลาปิดทำการ",
"CHOOSE": "เลือก"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "ในหนึ่งวัน"
},
"WIDGET_COLOR_LABEL": "สีของวิดเจ็ต",
- "WIDGET_BUBBLE_POSITION_LABEL": "ตำแหน่งของ Widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "รูปลักษณ์ของ Widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "ประเภท:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "คุยกับเรา",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "คุยกับเรา"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "ปกติจะตอบกลับภายในไม่กี่นาที",
diff --git a/app/javascript/dashboard/i18n/locale/th/integrationApps.json b/app/javascript/dashboard/i18n/locale/th/integrationApps.json
index a18472ca3..5fb03f152 100644
--- a/app/javascript/dashboard/i18n/locale/th/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/th/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "กำลังโหลดการเชื่อมต่อ",
"NO_HOOK_CONFIGURED": "ไม่มี {integrationId} ที่ตั้งค่าไว้กับบัญชีนี้",
"HEADER": "โปรแกรม",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "เปิด",
"DISABLED": "ปิด"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "กำลังโหลด Hook",
"INBOX": "กล่องข้อความ",
+ "ACTIONS": "การกระทำ",
"DELETE": {
"BUTTON_TEXT": "ลบ"
}
diff --git a/app/javascript/dashboard/i18n/locale/th/integrations.json b/app/javascript/dashboard/i18n/locale/th/integrations.json
index 84b5c19e2..4af33b320 100644
--- a/app/javascript/dashboard/i18n/locale/th/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/th/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "เหตุการณ์ที่ติดตามอยู่",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "ยกเลิก",
"DESC": "Webhook จะมีการส่งข้อมูลตลอดเวลา โดยใส่ URL ที่จะรับข้อมูลให้ถูกต้อง",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "ลบ",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "ชื่อ",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "การกระทำ"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/th/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/th/labelsMgmt.json
index 2db2cd7c8..38689adf8 100644
--- a/app/javascript/dashboard/i18n/locale/th/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/th/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "กำลังโหลดป้ายกำกับ",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "ค้นหาหัวข้อ...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "ไม่มีรายการที่ตรงกับเนื้อหานี้",
"LIST": {
"404": "ไม่มีป้ายกำกับในบัญชีนี้",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "ชื่อ",
"DESCRIPTION": "คำอธิบาย",
- "COLOR": "สี"
+ "COLOR": "สี",
+ "ACTION": "การกระทำ"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/th/macros.json b/app/javascript/dashboard/i18n/locale/th/macros.json
index 2671c7036..9d13659f3 100644
--- a/app/javascript/dashboard/i18n/locale/th/macros.json
+++ b/app/javascript/dashboard/i18n/locale/th/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "ชื่อ",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "การกระทำ"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/th/mfa.json b/app/javascript/dashboard/i18n/locale/th/mfa.json
index 5e24f73a5..d64fc689f 100644
--- a/app/javascript/dashboard/i18n/locale/th/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/th/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/th/report.json b/app/javascript/dashboard/i18n/locale/th/report.json
index 2a042a17c..6e8cea9c7 100644
--- a/app/javascript/dashboard/i18n/locale/th/report.json
+++ b/app/javascript/dashboard/i18n/locale/th/report.json
@@ -3,7 +3,7 @@
"HEADER": "การสนทนา",
"LOADING_CHART": "กำลังโหลดแผนภูมิข้อมูล",
"NO_ENOUGH_DATA": "ข้อมูลที่เราได้รับไม่เพียงพอต่อการสร้างรายงาน โปรดลองใหม่อีกครั้งในภายหน้า",
- "DOWNLOAD_AGENT_REPORTS": "ดาวน์โหลดรายงานพนักงาน",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "ภาพรวมพนักงาน",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "กำลังโหลดแผนภูมิข้อมูล",
"NO_ENOUGH_DATA": "ข้อมูลที่เราได้รับไม่เพียงพอต่อการสร้างรายงาน โปรดลองใหม่อีกครั้งในภายหน้า",
"DOWNLOAD_AGENT_REPORTS": "ดาวน์โหลดรายงานพนักงาน",
"FILTER_DROPDOWN_LABEL": "เลือกพนักงาน",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "ค้นหาพนักงาน"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "การสนทนา",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "ข้อมูลที่เราได้รับไม่เพียงพอต่อการสร้างรายงาน โปรดลองใหม่อีกครั้งในภายหน้า",
"DOWNLOAD_LABEL_REPORTS": "ดาวน์โหลดรายงานป้ายกำกับ",
"FILTER_DROPDOWN_LABEL": "เลือกป้ายกำกับ",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "ค้นหาหัวข้อ"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "การสนทนา",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "เลือกกล่องข้อความ",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "การสนทนา",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "ภาพรวมทีม",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "กำลังโหลดแผนภูมิข้อมูล",
"NO_ENOUGH_DATA": "ข้อมูลที่เราได้รับไม่เพียงพอต่อการสร้างรายงาน โปรดลองใหม่อีกครั้งในภายหน้า",
"DOWNLOAD_TEAM_REPORTS": "ดาวน์โหลดรายงานทีม",
"FILTER_DROPDOWN_LABEL": "เลือกทีม",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "ค้นหาทีม"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "การสนทนา",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "รายงาน CSAT",
- "NO_RECORDS": "ไม่มีรายงาน CSAT ที่แสดงผลได้",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "ค้นหาพนักงาน",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "ค้นหาทีม",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "เลือกพนักงาน"
+ "LABEL": "พนักงาน"
+ },
+ "INBOXES": {
+ "LABEL": "กล่องข้อความ"
+ },
+ "TEAMS": {
+ "LABEL": "ทีม"
+ },
+ "RATINGS": {
+ "LABEL": "การประเมิน"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "ผู้ติดต่อ",
- "AGENT_NAME": "พนักงานที่ได้รับมอบหมาย",
+ "AGENT_NAME": "พนักงาน",
"RATING": "การประเมิน",
- "FEEDBACK_TEXT": "คำติชม"
- }
+ "FEEDBACK_TEXT": "คำติชม",
+ "CONVERSATION": "การสนทนา",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "การตอบกลับทั้งหมด",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "อัตราการตอบกลับ",
"TOOLTIP": "จำนวนการตอบกลับทั้งหมด / จำนวนข้อความทั้งหมดที่แบบสอบถาม CSAT ส่ง * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "ยกเลิก",
+ "SAVING": "กำลังบันทึก...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/th/settings.json b/app/javascript/dashboard/i18n/locale/th/settings.json
index 5039c36a2..3639e9290 100644
--- a/app/javascript/dashboard/i18n/locale/th/settings.json
+++ b/app/javascript/dashboard/i18n/locale/th/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "ดาวโหลด",
"UPLOADING": "กำลังอัปโหลด",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "ฟีเจอร์",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "ค้นหาแอตทริบิวต์"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "เสร็จสิ้นการสนทนา",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "เสร็จสิ้นการสนทนา",
+ "CANCEL": "ยกเลิก"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "ใช่",
+ "NO": "ไม่"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "ไม่นะ! ดูเหมือนว่าเราจะไม่เจอบัญชี Chatwoot ของคุณ โปรดสร้างบัญชีใหม่เพื่อดำเนินการต่อ",
"NEW_ACCOUNT": "สร้างบัญชีใหม่",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "ยกเลิก"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/th/signup.json b/app/javascript/dashboard/i18n/locale/th/signup.json
index be5ede8f9..941f9f93a 100644
--- a/app/javascript/dashboard/i18n/locale/th/signup.json
+++ b/app/javascript/dashboard/i18n/locale/th/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "สร้างบัญชี",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/th/sla.json b/app/javascript/dashboard/i18n/locale/th/sla.json
index 439acc6d2..31e759ada 100644
--- a/app/javascript/dashboard/i18n/locale/th/sla.json
+++ b/app/javascript/dashboard/i18n/locale/th/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/th/snooze.json b/app/javascript/dashboard/i18n/locale/th/snooze.json
new file mode 100644
index 000000000..4ef7b50f8
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/th/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "ชั่วโมง",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "วัน",
+ "WEEKS": "weeks",
+ "MONTH": "สัปดาห์",
+ "MONTHS": "months",
+ "YEAR": "เดือน",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "พรุ่งนี้",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "สัปดาห์หน้า",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "วัน",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/th/teamsSettings.json b/app/javascript/dashboard/i18n/locale/th/teamsSettings.json
index 7921e2c8c..d47c10a07 100644
--- a/app/javascript/dashboard/i18n/locale/th/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/th/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "ค้นหาทีม...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "ยังไม่มีทีมที่ถูกสร้างในบัญชีนี้",
"EDIT_TEAM": "แก้ไขทีม",
diff --git a/app/javascript/dashboard/i18n/locale/tl/agentBots.json b/app/javascript/dashboard/i18n/locale/tl/agentBots.json
index d3a0bb991..dc92016ab 100644
--- a/app/javascript/dashboard/i18n/locale/tl/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/tl/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/tl/agentMgmt.json b/app/javascript/dashboard/i18n/locale/tl/agentMgmt.json
index 448994e69..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/tl/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tl/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/tl/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/tl/attributesMgmt.json
index 78886f451..e83950b14 100644
--- a/app/javascript/dashboard/i18n/locale/tl/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tl/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/tl/automation.json b/app/javascript/dashboard/i18n/locale/tl/automation.json
index 43245a1d5..22a9735f4 100644
--- a/app/javascript/dashboard/i18n/locale/tl/automation.json
+++ b/app/javascript/dashboard/i18n/locale/tl/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/tl/bulkActions.json b/app/javascript/dashboard/i18n/locale/tl/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/tl/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/tl/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/tl/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/tl/cannedMgmt.json
index 3ff246f06..246d3f5b3 100644
--- a/app/javascript/dashboard/i18n/locale/tl/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tl/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/tl/chatlist.json b/app/javascript/dashboard/i18n/locale/tl/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/tl/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/tl/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/tl/contact.json b/app/javascript/dashboard/i18n/locale/tl/contact.json
index 7cad3b433..10841bbbf 100644
--- a/app/javascript/dashboard/i18n/locale/tl/contact.json
+++ b/app/javascript/dashboard/i18n/locale/tl/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/tl/conversation.json b/app/javascript/dashboard/i18n/locale/tl/conversation.json
index 59ad61c1d..7b7e325ab 100644
--- a/app/javascript/dashboard/i18n/locale/tl/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/tl/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/tl/customRole.json b/app/javascript/dashboard/i18n/locale/tl/customRole.json
index b7b48b5e7..f7c1709bd 100644
--- a/app/javascript/dashboard/i18n/locale/tl/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/tl/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/tl/datePicker.json b/app/javascript/dashboard/i18n/locale/tl/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/tl/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/tl/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tl/general.json b/app/javascript/dashboard/i18n/locale/tl/general.json
index 283cf79c4..bdc7cb8a4 100644
--- a/app/javascript/dashboard/i18n/locale/tl/general.json
+++ b/app/javascript/dashboard/i18n/locale/tl/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tl/generalSettings.json b/app/javascript/dashboard/i18n/locale/tl/generalSettings.json
index d924bffbd..fab8020e2 100644
--- a/app/javascript/dashboard/i18n/locale/tl/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/tl/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/tl/helpCenter.json b/app/javascript/dashboard/i18n/locale/tl/helpCenter.json
index 0ab8d62ff..69a72f163 100644
--- a/app/javascript/dashboard/i18n/locale/tl/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/tl/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json
index 2efba4716..608e5c804 100644
--- a/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
diff --git a/app/javascript/dashboard/i18n/locale/tl/integrationApps.json b/app/javascript/dashboard/i18n/locale/tl/integrationApps.json
index b91b434f7..828f4ea67 100644
--- a/app/javascript/dashboard/i18n/locale/tl/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/tl/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/tl/integrations.json b/app/javascript/dashboard/i18n/locale/tl/integrations.json
index ef3e94e42..fe1891064 100644
--- a/app/javascript/dashboard/i18n/locale/tl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/tl/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/tl/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/tl/labelsMgmt.json
index 705b18d0e..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/tl/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tl/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/tl/macros.json b/app/javascript/dashboard/i18n/locale/tl/macros.json
index fcb409f34..e12f0ca73 100644
--- a/app/javascript/dashboard/i18n/locale/tl/macros.json
+++ b/app/javascript/dashboard/i18n/locale/tl/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/tl/mfa.json b/app/javascript/dashboard/i18n/locale/tl/mfa.json
index f7556fdcf..b03917bcd 100644
--- a/app/javascript/dashboard/i18n/locale/tl/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/tl/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/tl/report.json b/app/javascript/dashboard/i18n/locale/tl/report.json
index dbf59f603..2ffa0ef11 100644
--- a/app/javascript/dashboard/i18n/locale/tl/report.json
+++ b/app/javascript/dashboard/i18n/locale/tl/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/tl/settings.json b/app/javascript/dashboard/i18n/locale/tl/settings.json
index 920da6f53..cf56caf3d 100644
--- a/app/javascript/dashboard/i18n/locale/tl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/tl/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancel"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/tl/signup.json b/app/javascript/dashboard/i18n/locale/tl/signup.json
index b0e5f5d27..4a90fd322 100644
--- a/app/javascript/dashboard/i18n/locale/tl/signup.json
+++ b/app/javascript/dashboard/i18n/locale/tl/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/tl/sla.json b/app/javascript/dashboard/i18n/locale/tl/sla.json
index 0da7873be..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/tl/sla.json
+++ b/app/javascript/dashboard/i18n/locale/tl/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/tl/snooze.json b/app/javascript/dashboard/i18n/locale/tl/snooze.json
new file mode 100644
index 000000000..2d9a876aa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/tl/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "year",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/tl/teamsSettings.json b/app/javascript/dashboard/i18n/locale/tl/teamsSettings.json
index f0a950fd1..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/tl/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/tl/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/tr/agentBots.json b/app/javascript/dashboard/i18n/locale/tr/agentBots.json
index b1118a235..9b44e7b5c 100644
--- a/app/javascript/dashboard/i18n/locale/tr/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/tr/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Editör Yükleniyor...",
"DESCRIPTION": "Temsilci botları ekibinizin en harika üyeleri gibidir. Küçük işleri halledebilirler, böylece önemli işlere odaklanabilirsiniz. Onları deneyin. Botlarınızı bu sayfadan yönetebilir veya 'Bot Ekle' butonunu kullanarak yenilerini oluşturabilirsiniz.",
"LEARN_MORE": "Temsilci botları hakkında bilgi edinin",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "Sistem botu",
"GLOBAL_BOT_BADGE": "Sistem",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Botlar alınıyor...",
"TABLE_HEADER": {
"DETAILS": "Bot Detayları",
- "URL": "Webhook URL'si"
+ "URL": "Webhook URL'si",
+ "ACTIONS": "Hareketler"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/tr/agentMgmt.json b/app/javascript/dashboard/i18n/locale/tr/agentMgmt.json
index c1ee0dc69..16db451e5 100644
--- a/app/javascript/dashboard/i18n/locale/tr/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tr/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Yönetici",
"AGENT": "Kullanıcı"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Bu hesapla ilişkilendirilmiş hesap yok",
"TITLE": "Ekibinizdeki temsilcileri yönetin",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Woot Sunucusuna bağlanılamadı, Lütfen daha sonra tekrar deneyin"
}
},
+ "SEARCH_PLACEHOLDER": "Temsilci ara...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Sonuç bulunamadı."
},
diff --git a/app/javascript/dashboard/i18n/locale/tr/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/tr/attributesMgmt.json
index 5a4d9d2cb..aa66472f9 100644
--- a/app/javascript/dashboard/i18n/locale/tr/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tr/attributesMgmt.json
@@ -4,7 +4,10 @@
"HEADER_BTN_TXT": "Nitelik Ekle",
"LOADING": "Özel Nitelikler getiriliyor",
"DESCRIPTION": "Özel nitelikler, kişileriniz veya konuşmalarınız hakkında ek ayrıntıları takip etmenizi sağlar — örneğin abonelik planı veya ilk satın alma tarihi gibi. İhtiyacınız olan belirli bilgileri toplamak için metin, liste veya sayı gibi farklı türlerde özel nitelikler ekleyebilirsiniz.",
- "LEARN_MORE": "Learn more about custom attributes",
+ "LEARN_MORE": "Özel Nitelikler hakkında daha fazla bilgi edinin",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Öznitelik ara...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Sohbet",
"CONTACT": "İletişim"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Düzenli ifade doğrulamasını aç"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/tr/automation.json b/app/javascript/dashboard/i18n/locale/tr/automation.json
index 4f7220a09..198d3e234 100644
--- a/app/javascript/dashboard/i18n/locale/tr/automation.json
+++ b/app/javascript/dashboard/i18n/locale/tr/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Otomasyon",
"DESCRIPTION": "Otomasyon, etiket ekleme veya konuşmaları en uygun temsilciye atama gibi manuel çaba gerektiren mevcut süreçleri kolaylaştırabilir ve onların yerine geçebilir. Bu sayede ekip, rutin işlere harcanan zamanı azaltarak güçlü yönlerine odaklanabilir.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Otomasyon Kuralı Ekle",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Otomasyon kuralları getiriliyor",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Otomasyon Kuralı Ekle",
"SUBMIT": "Yarat",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "İsim",
- "DESCRIPTION": "Açıklama",
"ACTIVE": "Aktif",
- "CREATED_ON": "Oluşturma"
+ "CREATED_ON": "Oluşturma",
+ "ACTIONS": "Hareketler"
},
"404": "Otomasyon kuralı bulunamadı"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Özel Not Ekle",
"CHANGE_PRIORITY": "Önceliği Değiştir",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Görüşmeyi aç"
+ "OPEN_CONVERSATION": "Görüşmeyi aç",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Gelen Mesaj",
diff --git a/app/javascript/dashboard/i18n/locale/tr/bulkActions.json b/app/javascript/dashboard/i18n/locale/tr/bulkActions.json
index da26f2052..94bb2c3d2 100644
--- a/app/javascript/dashboard/i18n/locale/tr/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/tr/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Konuşma durumu başarıyla güncellendi.",
"UPDATE_FAILED": "Görüşmeler güncellenirken bir hata oluştu. Lütfen tekrar deneyin."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Etiket atama",
"NO_LABELS_FOUND": "Etiket bulunamadı",
diff --git a/app/javascript/dashboard/i18n/locale/tr/campaign.json b/app/javascript/dashboard/i18n/locale/tr/campaign.json
index ba7baf98d..58f9100e6 100644
--- a/app/javascript/dashboard/i18n/locale/tr/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/tr/campaign.json
@@ -80,11 +80,11 @@
}
},
"SMS": {
- "HEADER_TITLE": "SMS campaigns",
+ "HEADER_TITLE": "SMS kampanyaları",
"NEW_CAMPAIGN": "Kampanya oluştur",
"EMPTY_STATE": {
- "TITLE": "No SMS campaigns are available",
- "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ "TITLE": "SMS kampanyası mevcut değil",
+ "SUBTITLE": "Müşterilerinize doğrudan ulaşmak için bir SMS kampanyası başlatın. Kolaylıkla teklifler gönderin veya duyurular yapın. Başlamak için 'Kampanya oluştur'a tıklayın."
},
"CARD": {
"STATUS": {
@@ -138,11 +138,11 @@
}
},
"WHATSAPP": {
- "HEADER_TITLE": "WhatsApp campaigns",
+ "HEADER_TITLE": "WhatsApp kampanyaları",
"NEW_CAMPAIGN": "Kampanya Oluştur",
"EMPTY_STATE": {
- "TITLE": "No WhatsApp campaigns are available",
- "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ "TITLE": "WhatsApp kampanyası mevcut değil",
+ "SUBTITLE": "Müşterilerinize doğrudan ulaşmak için bir WhatsApp kampanyası başlatın. Kolaylıkla teklifler gönderin veya duyurular yapın. Başlamak için 'Kampanya oluştur'a tıklayın."
},
"CARD": {
"STATUS": {
diff --git a/app/javascript/dashboard/i18n/locale/tr/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/tr/cannedMgmt.json
index 3cbc908b4..3e0449149 100644
--- a/app/javascript/dashboard/i18n/locale/tr/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tr/cannedMgmt.json
@@ -1,10 +1,13 @@
{
"CANNED_MGMT": {
"HEADER": "Hazır Yanıtlar",
- "LEARN_MORE": "Learn more about canned responses",
+ "LEARN_MORE": "Hazır yanıtlar hakkında daha fazla bilgi edinin",
"DESCRIPTION": "Hazır Yanıtlar, bir konuşmaya hızlı yanıt vermenizi sağlayan önceden hazırlanmış şablonlardır. Temsilciler, bir konuşma sırasında hazır yanıt eklemek için '/' karakterini ve ardından kısa kodu yazabilirler. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Hazır yanıt ekle",
"LOADING": "Hazır yanıtlar getiriliyor...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Bu sorgu ile eşleşen öğe yok.",
"LIST": {
"404": "Bu hesapta hazır yanıt yok.",
diff --git a/app/javascript/dashboard/i18n/locale/tr/chatlist.json b/app/javascript/dashboard/i18n/locale/tr/chatlist.json
index 801f202d4..54499a285 100644
--- a/app/javascript/dashboard/i18n/locale/tr/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/tr/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Cevap Bekleyen: Kısa olan"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/tr/contact.json b/app/javascript/dashboard/i18n/locale/tr/contact.json
index 7346bb1a4..941fe1f54 100644
--- a/app/javascript/dashboard/i18n/locale/tr/contact.json
+++ b/app/javascript/dashboard/i18n/locale/tr/contact.json
@@ -457,8 +457,11 @@
"INSTAGRAM": {
"PLACEHOLDER": "Instagram ekle"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Telegram Ekle"
+ },
"TIKTOK": {
- "PLACEHOLDER": "Add TikTok"
+ "PLACEHOLDER": "TikTok Ekle"
},
"LINKEDIN": {
"PLACEHOLDER": "LinkedIn ekle"
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Aramanızla eşleşen kişi bulunamadı 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "Şu anda aktif kişi yok 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Kime:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "İsim, e-posta veya telefon numarası ile arama yapmak için en az 2 karakter girin",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Konu :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Kopya:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "E-posta ile arama yapmak için en az 2 karakter girin",
"BCC_LABEL": "Gizli Kopya:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "E-posta ile arama yapmak için en az 2 karakter girin",
"BCC_BUTTON": "Gizli Kopya"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/tr/conversation.json b/app/javascript/dashboard/i18n/locale/tr/conversation.json
index 78cbe01c7..24932a493 100644
--- a/app/javascript/dashboard/i18n/locale/tr/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/tr/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Bu mesaj desteklenmiyor. Bu mesajı Facebook Messenger uygulamasında görüntüleyebilirsiniz.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Bu mesaj desteklenmiyor. Bu mesajı Instagram uygulamasında görüntüleyebilirsiniz.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Mesaj başarıyla silindi",
"FAIL_DELETE_MESSSAGE": "Mesaj silinemiyor. Tekrar deneyin",
"NO_RESPONSE": "Cevap Yok",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Etiket atanamadı. Lütfen tekrar deneyin."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Sohbet kimliği {conversationId} için \"{team}\" takımına atanmış",
"FAILED": "Takım atanamadı. Lütfen tekrar deneyin."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "İmzayı devre dışı bırak",
"MSG_INPUT": "Yeni satır için Shift + enter. Bir Hazır Yanıt seçmek için \"/\" ile başlayın.",
"PRIVATE_MSG_INPUT": "Yeni satır için Shift + enter. Bu yalnızca Temsilciler tarafından görülebilir",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Mesaj imzası yapılandırılmamış, lütfen profil ayarlarında yapılandırın.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Güncellemek için tıklayın",
"WHATSAPP_TEMPLATES": "WhatsApp Şablonları"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Eklemek için buraya sürükleyip bırakın",
"START_AUDIO_RECORDING": "Ses kaydına başla",
"STOP_AUDIO_RECORDING": "Ses kaydını durdur",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Bcc ekle",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Konuşma başarıyla silindi",
"FAIL_DELETE_CONVERSATION": "Konuşma silinemedi! Tekrar deneyin",
"FILE_SIZE_LIMIT": "Dosya, {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB ek dosya sınırını aşıyor",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Bu mesaj gönderilemiyor, lütfen daha sonra tekrar deneyin",
"SENT_BY": "Tarafından gönderildi:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Mesaj gönderilemedi! Tekrar deneyin",
"TRY_AGAIN": "tekrar dene",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "İptal Et",
"SEND_EMAIL_SUCCESS": "İletişim kaydı başarıyla gönderildi",
"SEND_EMAIL_ERROR": "Bir hata oluştu, lütfen tekrar deneyin",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "İletişim kaydını müşteriye gönder",
"SEND_TO_AGENT": "Atanan temsilciye iletişim kaydını gönder",
diff --git a/app/javascript/dashboard/i18n/locale/tr/customRole.json b/app/javascript/dashboard/i18n/locale/tr/customRole.json
index 6acfa5336..6e1fdce66 100644
--- a/app/javascript/dashboard/i18n/locale/tr/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/tr/customRole.json
@@ -3,19 +3,22 @@
"HEADER": "Özel Roller",
"LEARN_MORE": "Özel roller hakkında daha fazla bilgi edinin",
"DESCRIPTION": "Özel roller, hesap sahibi veya yöneticiler tarafından oluşturulan rollerdir. Bu roller, temsilcilere hesabın içinde hangi erişim ve yetkilere sahip olacaklarını belirlemek için atanabilir. Özel roller, organizasyonun ihtiyaçlarına uygun olarak belirli izinler ve erişim seviyeleriyle oluşturulabilir.",
- "HEADER_BTN_TXT": "Add custom role",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Özel rol ekle",
"LOADING": "Özel roller alınıyor...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Bu sorgu ile eşleşen öğe yok.",
"PAYWALL": {
"TITLE": "Özel roller oluşturmak için yükseltin",
"AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
- "UPGRADE_NOW": "Upgrade now",
+ "UPGRADE_NOW": "Şimdi yükselt",
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
- "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "AVAILABLE_ON": "Özel rol özelliği yalnızca ücretli planlarda mevcuttur.",
+ "UPGRADE_PROMPT": "Denetim kayıtları, temsilci kapasitesi ve daha fazlası gibi gelişmiş özelliklere erişmek için ücretli plana geçin.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
"LIST": {
@@ -58,11 +61,11 @@
}
},
"ADD": {
- "TITLE": "Add custom role",
+ "TITLE": "Özel rol ekle",
"DESC": " Özel roller, organizasyonun ihtiyaçlarına uygun olarak belirli izinler ve erişim seviyeleriyle roller oluşturmanıza olanak tanır.",
"SUBMIT": "Gönder",
"API": {
- "SUCCESS_MESSAGE": "Custom role added successfully."
+ "SUCCESS_MESSAGE": "Özel rol başarıyla eklendi."
}
},
"EDIT": {
diff --git a/app/javascript/dashboard/i18n/locale/tr/datePicker.json b/app/javascript/dashboard/i18n/locale/tr/datePicker.json
index 38ed6c885..d41fc8516 100644
--- a/app/javascript/dashboard/i18n/locale/tr/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/tr/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Hafta #{weekNumber}",
"APPLY_BUTTON": "Uygula",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Son 3 ay",
"LAST_6_MONTHS": "Son 6 ay",
"LAST_YEAR": "Geçen yıl",
+ "THIS_WEEK": "Bu hafta",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Özel tarih aralığı"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tr/general.json b/app/javascript/dashboard/i18n/locale/tr/general.json
index 00d38b677..4df21f458 100644
--- a/app/javascript/dashboard/i18n/locale/tr/general.json
+++ b/app/javascript/dashboard/i18n/locale/tr/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Kapat",
"BETA": "Beta",
- "BETA_DESCRIPTION": "Bu özellik beta aşamasındadır ve geliştirdikçe değişiklik gösterebilir."
+ "BETA_DESCRIPTION": "Bu özellik beta aşamasındadır ve geliştirdikçe değişiklik gösterebilir.",
+ "ACCEPT": "Kabul et",
+ "DISCARD": "Yoksay",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Evet",
+ "NO": "Hayır"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tr/generalSettings.json b/app/javascript/dashboard/i18n/locale/tr/generalSettings.json
index 6551eb3a7..cf89d1d7f 100644
--- a/app/javascript/dashboard/i18n/locale/tr/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/tr/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Ara veya atla",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Genel",
"REPORTS": "Raporlar",
diff --git a/app/javascript/dashboard/i18n/locale/tr/helpCenter.json b/app/javascript/dashboard/i18n/locale/tr/helpCenter.json
index c9cb6e7cc..825becac4 100644
--- a/app/javascript/dashboard/i18n/locale/tr/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/tr/helpCenter.json
@@ -47,7 +47,7 @@
"SUCCESS": "Resim başarıyla yüklendi",
"ERROR": "Resim yüklenirken hata oluştu",
"UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
- "ERROR_FILE_SIZE": "Resim boyutu %{size}MB'dan küçük olmalıdır",
+ "ERROR_FILE_SIZE": "Resim boyutu {size}MB'dan küçük olmalıdır",
"ERROR_FILE_FORMAT": "Resim formatı jpg, jpeg veya png olmalıdır",
"ERROR_FILE_DIMENSIONS": "Resim boyutları 2000 x 2000'den küçük olmalıdır"
}
@@ -107,7 +107,7 @@
"LOADING_MESSAGE": "Portallar yükleniyor...",
"ARTICLES_LABEL": "makaleler",
"NO_PORTALS_MESSAGE": "Kullanılabilir portal yok",
- "ADD_NEW_LOCALE": "Yeni bir yerel ekleyin",
+ "ADD_NEW_LOCALE": "Yeni bir dil ekleyin",
"POPOVER": {
"TITLE": "Portallar",
"PORTAL_SETTINGS": "Portal Ayarları",
@@ -288,7 +288,7 @@
}
},
"ADD_LOCALE": {
- "TITLE": "Yeni bir yerel dil ekle",
+ "TITLE": "Yeni bir dil ekle",
"SUB_TITLE": "Bu, kullanılabilir çeviri listesine yeni bir yerel dil ekler.",
"PORTAL": "Portal",
"LOCALE": {
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Makale silinirken hata oluştu"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Lütfen makale başlığını ve içeriğini ekleyin, ardından ayarları güncelleyebilirsiniz"
},
@@ -640,8 +650,8 @@
}
},
"ADD_LOCALE_DIALOG": {
- "TITLE": "Yeni bir yerel ekleyin",
- "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "TITLE": "Yeni bir dil ekleyin",
+ "DESCRIPTION": "Bu makalenin yazılacağı dili seçin. Seçilen dil çeviri listenize eklenecek ve daha sonra yeni diller ekleyebilirsiniz.",
"COMBOBOX": {
"PLACEHOLDER": "Dil seçin..."
},
@@ -714,7 +724,7 @@
"IMAGE_UPLOAD_SUCCESS": "Resim başarıyla eklendi. Logoyu kaydetmek için lütfen 'Değişiklikleri Kaydet' butonuna tıklayın",
"IMAGE_DELETE_SUCCESS": "Logo başarıyla silindi",
"IMAGE_DELETE_ERROR": "Unable to delete logo",
- "IMAGE_UPLOAD_SIZE_ERROR": "Resim boyutu %{size}MB'dan küçük olmalıdır"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Resim boyutu {size}MB'dan küçük olmalıdır"
},
"NAME": {
"LABEL": "İsim",
@@ -722,11 +732,11 @@
"ERROR": "Ad gerekli"
},
"HEADER_TEXT": {
- "LABEL": "Header text",
+ "LABEL": "Başlık Metni",
"PLACEHOLDER": "Portal başlık metni"
},
"PAGE_TITLE": {
- "LABEL": "Page title",
+ "LABEL": "Sayfa Başlığı",
"PLACEHOLDER": "Portal sayfa başlığı"
},
"HOME_PAGE_LINK": {
diff --git a/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json
index 9807238b4..66f47c07e 100644
--- a/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json
@@ -2,7 +2,10 @@
"INBOX_MGMT": {
"HEADER": "Gelen kutuları",
"DESCRIPTION": "Kanal, müşterinizin sizinle iletişim kurmak için seçtiği yöntemdir. Gelen kutusu (inbox) ise belirli bir kanal üzerinden gerçekleşen etkileşimleri yönettiğiniz yerdir. Gelen kutusu; e-posta, canlı sohbet ve sosyal medya gibi farklı kaynaklardan gelen iletişimleri içerebilir.",
- "LEARN_MORE": "Learn more about inboxes",
+ "LEARN_MORE": "Gelen kutuları hakkında daha fazla bilgi edinin",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Gelen kutularını ara...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "WhatsApp Business kaydınız tamamlanmadı. Yeniden bağlanmadan önce lütfen Meta Business Manager'da görünen adınızın (display name) durumunu kontrol edin.",
@@ -563,7 +566,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Gönderen Adı",
- "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Müşterileriniz, temsilcilerinizden e-posta aldıklarında görecekleri adı seçin.",
"FOR_EG": "Örneğin:",
"FRIENDLY": {
"TITLE": "Dostça",
@@ -575,7 +578,7 @@
"SUBTITLE": "E-posta başlığında gönderen adı olarak yalnızca yapılandırılmış iş adını kullanın."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ İş adınızı yapılandırın",
+ "BUTTON_TEXT": "İş adınızı yapılandırın",
"PLACEHOLDER": "İş adınızı girin",
"SAVE_BUTTON_TEXT": "Kaydet"
}
@@ -589,8 +592,10 @@
"DISABLED": "Devre dışı"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Etkin",
- "DISABLED": "Devre dışı"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Etkinleştir"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Hesap Sağlığı",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "WhatsApp hesabınızı yönetin",
"DESCRIPTION": "WhatsApp hesap durumunuzu, mesajlaşma limitlerinizi ve kalitesini inceleyin. Gerekirse ayarları güncelleyin veya sorunları çözün",
@@ -678,6 +685,16 @@
"SANDBOX": "Sandbox",
"LIVE": "Canlı"
}
+ },
+ "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": "Ayarlar",
@@ -694,7 +711,7 @@
"ALLOWED_DOMAINS": {
"TITLE": "İzin Verilen Alan Adları",
"SUBTITLE": "Virgülle ayrılmış joker karakterli veya normal alan adları ekleyin (hepsine izin vermek için boş bırakın), örneğin *.chatwoot.dev, chatwoot.com.",
- "PLACEHOLDER": "Virgülle ayrılmış alan adlarını girin (ör: *.chatwoot.dev, chatwoot.com)"
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
},
"INBOX_AGENTS": "Kullanıcılar",
"INBOX_AGENTS_SUB_TEXT": "Bu gelen kutusuna aracı ekleyin veya aracıları kaldırın",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "E-postada Ajanın adını göstermeyi/Devre dışı bırakmayı etkinleştirin, devre dışı bırakıldığında iş adını gösterir",
"ENABLE_CONTINUITY_VIA_EMAIL": "E-posta aracılığıyla konuşma sürekliliğini etkinleştir",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "E-posta adresi mevcut ise konuşmalar e-posta aracılığıyla devam eder.",
- "LOCK_TO_SINGLE_CONVERSATION": "Tek bir konuşmaya kilitle",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Bu gelen kutusu için aynı kişi için birden fazla konuşmayı etkinleştir veya devre dışı bırak",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Gelen Kutusu Ayarları",
"INBOX_UPDATE_SUB_TEXT": "Gelen kutusu ayarlarınızı güncelleyin",
"AUTO_ASSIGNMENT_SUB_TEXT": "Bu gelen kutusuna eklenen aracılara yeni konuşmaların otomatik olarak atanmasını etkinleştirin veya devre dışı bırakın.",
@@ -758,6 +775,7 @@
"LABEL": "Yardım Merkezi",
"PLACEHOLDER": "Yardım Merkezi Seçin",
"SELECT_PLACEHOLDER": "Yardım Merkezi Seçin",
+ "NONE": "Hiç",
"REMOVE": "Yardım Merkezini Kaldır",
"SUB_TEXT": "Yardım Merkezini gelen kutusuna ekleyin"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Lütfen 0'dan büyük bir değer girin",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Bu gelen kutusundan otomatik olarak bir ajanın atanabileceği maksimum konuşma sayısını sınırlayın"
},
+ "ASSIGNMENT": {
+ "TITLE": "Görüşme Atama",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Politikayı sil",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktif",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "İptal Et",
+ "CONFIRM_DELETE": "Sil",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Yeniden Yetkilendir",
"SUBTITLE": "Facebook bağlantınızın süresi doldu, hizmetlere devam etmek için lütfen Facebook sayfanızı yeniden bağlayın",
@@ -810,19 +875,19 @@
},
"BUTTON_TEXT": {
"LABEL": "Button text",
- "PLACEHOLDER": "Please rate us"
+ "PLACEHOLDER": "Lütfen bizi değerlendirin"
},
"LANGUAGE": {
"LABEL": "Dil",
"PLACEHOLDER": "Select template language"
},
"MESSAGE_PREVIEW": {
- "LABEL": "Message preview",
+ "LABEL": "Mesaj önizlemesi",
"TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
},
"TEMPLATE_STATUS": {
- "APPROVED": "Approved by WhatsApp",
- "PENDING": "Pending WhatsApp approval",
+ "APPROVED": "WhatsApp tarafından onaylandı",
+ "PENDING": "WhatsApp onayı bekleniyor",
"REJECTED": "Meta rejected the template",
"DEFAULT": "Needs WhatsApp approval",
"NOT_FOUND": "The template does not exist in the Meta platform."
@@ -832,11 +897,25 @@
"ERROR_MESSAGE": "Failed to create WhatsApp template"
},
"TEMPLATE_UPDATE_DIALOG": {
- "TITLE": "Edit survey details",
+ "TITLE": "Anket ayrıntılarını düzenle",
"DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
- "CONFIRM": "Create new template",
+ "CONFIRM": "Yeni şablon oluştur",
"CANCEL": "Geri git"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Anket kuralı",
"DESCRIPTION_PREFIX": "Sohbet olursa anketi gönder",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "etiketleri seç"
},
"NOTE": "Not: CSAT anketleri, konuşma başına yalnızca bir kez gönderilir",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT ayarları başarıyla güncellendi",
"ERROR_MESSAGE": "CSAT ayarları güncellenemedi. Lütfen daha sonra tekrar deneyin."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Ziyaretçiler için uygun değil mesajı",
"TOGGLE_HELP": "İşletme erişilebilirliğini etkinleştirmek, tüm temsilciler çevrimdışı olsa bile canlı sohbet ekranında mevcut saatleri gösterecektir. Mevcut saatler dışında ziyaretçiler bir mesaj ve ön sohbet formu ile uyarılabilir.",
"DAY": {
+ "DAY": "Gün",
+ "AVAILABILITY": "Uygunluk",
+ "HOURS": "Saat",
"ENABLE": "Bu gün için uygunluğu etkinleştir",
"UNAVAILABLE": "Uygun Değil",
- "HOURS": "saat",
"VALIDATION_ERROR": "Başlangıç saati kapanış saatinden önce olmalıdır.",
"CHOOSE": "Seçin"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Bir gün içinde"
},
"WIDGET_COLOR_LABEL": "Widget Rengi",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Kabarcık Pozisyonu",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Kabarcık Türü",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tip:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Sohbet et",
- "LABEL": "Widget Kabarcık Başlatıcı Başlığı",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Sohbet et"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Varsayılan",
- "CHAT": "Sohbet"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Genellikle birkaç dakika içinde yanıt verir",
diff --git a/app/javascript/dashboard/i18n/locale/tr/integrationApps.json b/app/javascript/dashboard/i18n/locale/tr/integrationApps.json
index 3965bc93a..d4f74d3a3 100644
--- a/app/javascript/dashboard/i18n/locale/tr/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/tr/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Entegrasyonlar alınıyor",
"NO_HOOK_CONFIGURED": "Bu hesapta yapılandırılmış {integrationId} entegrasyonu bulunmuyor.",
"HEADER": "Uygulamalar",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Ara...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Etkin",
"DISABLED": "Devre dışı"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Entegrasyon kancaları alınıyor",
"INBOX": "Gelen Kutusu",
+ "ACTIONS": "Hareketler",
"DELETE": {
"BUTTON_TEXT": "Sil"
}
diff --git a/app/javascript/dashboard/i18n/locale/tr/integrations.json b/app/javascript/dashboard/i18n/locale/tr/integrations.json
index c43462695..fca663d41 100644
--- a/app/javascript/dashboard/i18n/locale/tr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/tr/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -17,8 +18,10 @@
},
"HEADER": "Entegrasyonlar",
"DESCRIPTION": "Chatwoot, ekibinizin verimliliğini artırmak için birden fazla araç ve hizmetle entegre olur. Favori uygulamalarınızı yapılandırmak için aşağıdaki listeyi inceleyin.",
- "LEARN_MORE": "Learn more about integrations",
+ "LEARN_MORE": "Entegrasyonlar hakkında daha fazla bilgi edinin",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Abone Olunan Olaylar",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "İptal Et",
"DESC": "Web kancası etkinlikleri, Chatwoot hesabınızdaki olaylar hakkında gerçek zamanlı bilgi sağlar. Bir geri aramayı yapılandırmak için lütfen geçerli bir URL girin.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Sil",
"DELETE_CONFIRMATION": {
"TITLE": "Entegrasyonu Sil",
@@ -145,7 +160,29 @@
"EXPAND": "Genişlet",
"MAKE_FRIENDLY": "Mesaj tonunu dostça yap",
"MAKE_FORMAL": "Resmi ton kullan",
- "SIMPLIFY": "Basitleştir"
+ "SIMPLIFY": "Basitleştir",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesyonel",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Dostça"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Copilot'a sor"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Taslak içeriği",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Panel Uygulamaları
Panel Uygulamaları, organizasyonlara destek uzmanları için bağlam sağlamak amacıyla bir uygulamayı Chatwoot paneli içine yerleştirmelerine izin verir. Bu özellik, bağımsız bir uygulama oluşturmanıza ve bunu panel içine yerleştirmenize olanak tanır, böylece kullanıcı bilgilerini, siparişlerini veya önceki ödeme geçmişini sağlayabilirsiniz.
Chatwoot'taki panel üzerine uygulamanızı yerleştirdiğinizde, uygulamanız konuşma ve iletişim bağlamını pencere olayı olarak alır. Bağlamı almak için sayfanızda bir message olayı için bir dinleyici uygulayın.
Yeni bir panel uygulaması eklemek için 'Yeni bir panel uygulaması ekle' düğmesine tıklayın.
",
"DESCRIPTION": "Panel Uygulamaları, organizasyonlara destek uzmanları için bağlam sağlamak amacıyla bir uygulamayı panel içine yerleştirmelerine izin verir. Bu özellik, bağımsız bir uygulama oluşturmanıza ve bunu panel içine yerleştirmenize olanak tanır, böylece kullanıcı bilgilerini, siparişlerini veya önceki ödeme geçmişini sağlayabilirsiniz.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Bu hesapta henüz yapılandırılmış panel uygulamaları yok",
"LOADING": "Panel uygulamaları alınıyor...",
"TABLE_HEADER": {
"NAME": "İsim",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Hareketler"
},
"EDIT_TOOLTIP": "Uygulamayı Düzenle",
"DELETE_TOOLTIP": "Uygulamayı Sil"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Notion entegrasyonunu silmek istediğinizden emin misiniz?",
"MESSAGE": "Bu entegrasyonu silmek, Notion çalışma alanınıza erişimi kaldıracak ve ilgili tüm işlevleri durduracaktır.",
@@ -399,18 +442,19 @@
"CREDIT_NOTE": "Buradan gönderilen mesajlar Captain kredilerinize sayılacaktır."
},
"PAYWALL": {
- "TITLE": "Upgrade to use Captain AI",
+ "TITLE": "Captain AI kullanmak için yükseltin",
"AVAILABLE_ON": "Captain is not available on the free plan.",
"UPGRADE_PROMPT": "Asistanlarımıza, Copilot'a ve daha fazlasına erişim sağlamak için planınızı yükseltin.",
- "UPGRADE_NOW": "Upgrade now",
+ "UPGRADE_NOW": "Şimdi yükselt",
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI yalnızca Enterprise planlarında mevcuttur.",
"UPGRADE_PROMPT": "Asistanlarımıza, Copilot'a ve daha fazlasına erişim sağlamak için planınızı yükseltin.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
"BANNER": {
- "RESPONSES": "You've used over 80% of your response limit. To continue using Captain AI, please upgrade.",
+ "RESPONSES": "Yanıt sınırınızın %80'inden fazlasını kullandınız. Captain AI'yı kullanmaya devam etmek için lütfen yükseltin.",
"DOCUMENTS": "Belge sınırı aşıldı. Captain AI'yı kullanmaya devam etmek için yükseltme yapın."
},
"FORM": {
@@ -639,7 +683,7 @@
"TITLE": "Örnek senaryolar",
"ADD": "Tümünü ekle",
"ADD_SINGLE": "Bunu ekle",
- "TOOLS_USED": "Tools used :"
+ "TOOLS_USED": "Kullanılan araçlar:"
},
"NEW": {
"CREATE": "Senaryo ekle",
@@ -672,19 +716,19 @@
"LIST": {
"SEARCH_PLACEHOLDER": "Ara..."
},
- "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "EMPTY_MESSAGE": "Hiçbir senaryo bulunamadı. Başlamak için örnekler oluşturun veya ekleyin.",
"SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
"API": {
"ADD": {
- "SUCCESS": "Scenarios added successfully",
+ "SUCCESS": "Senaryolar başarıyla eklendi",
"ERROR": "There was an error adding scenarios, please try again."
},
"UPDATE": {
- "SUCCESS": "Scenarios updated successfully",
+ "SUCCESS": "Senaryolar başarıyla güncellendi",
"ERROR": "There was an error updating scenarios, please try again."
},
"DELETE": {
- "SUCCESS": "Scenarios deleted successfully",
+ "SUCCESS": "Senaryolar başarıyla silindi",
"ERROR": "There was an error deleting scenarios, please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tr/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/tr/labelsMgmt.json
index dbe76f8cc..61573362b 100644
--- a/app/javascript/dashboard/i18n/locale/tr/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tr/labelsMgmt.json
@@ -4,7 +4,10 @@
"HEADER_BTN_TXT": "Etiket ekleyin",
"LOADING": "Etiketler getiriliyor",
"DESCRIPTION": "Etiketler, konuşmaları ve potansiyel müşterileri kategorize etmenize ve önceliklendirmenize yardımcı olur. Yan paneli kullanarak bir konuşmaya veya kişiye etiket atayabilirsiniz.",
- "LEARN_MORE": "Learn more about labels",
+ "LEARN_MORE": "Etiketler hakkında daha fazla bilgi edinin",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Etiketleri ara...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Bu sorgu ile eşleşen öğe yok",
"LIST": {
"404": "Bu hesapta mevcut etiket yok.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "İsim",
"DESCRIPTION": "Açıklama",
- "COLOR": "Renk"
+ "COLOR": "Renk",
+ "ACTION": "Hareketler"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/tr/macros.json b/app/javascript/dashboard/i18n/locale/tr/macros.json
index 5dcd51d7e..3e44974e0 100644
--- a/app/javascript/dashboard/i18n/locale/tr/macros.json
+++ b/app/javascript/dashboard/i18n/locale/tr/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Kısayollar",
"DESCRIPTION": "Kısayol; müşteri hizmetleri temsilcilerinin görevleri kolayca tamamlamasına yardımcı olan bir dizi kaydedilmiş eylemdir. Müşteri temsilcileri, bir görüşmeyi bir etiketle etiketlemek, e-posta ile konuşma özetini göndermek, özel bir özelliği güncellemek gibi bir dizi eylem tanımlayabilir ve bu eylemleri tek bir tıklamayla çalıştırabilirler.",
"LEARN_MORE": "Makrolar hakkında daha fazla bilgi edinin",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Yeni bir kısayol ekle",
"HEADER_BTN_TXT_SAVE": "Kısayolu Kaydet",
"LOADING": "Kısayollar alınıyor",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Bir şeyler yanlış gitti. Lütfen tekrar deneyin",
"ORDER_INFO": "Kısayollar eklediğiniz sırayla çalışacaktır. Bunları sürükleyerek her düğmenin yanındaki tutamakla yeniden düzenleyebilirsiniz.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "İsim",
"CREATED BY": "Tarafından oluşturuldu",
"LAST_UPDATED_BY": "Son güncelleyen",
- "VISIBILITY": "Görünürlük"
+ "VISIBILITY": "Görünürlük",
+ "ACTIONS": "Hareketler"
},
"404": "Hiç kısayol bulunamadı"
},
diff --git a/app/javascript/dashboard/i18n/locale/tr/mfa.json b/app/javascript/dashboard/i18n/locale/tr/mfa.json
index defd72261..bec70ff05 100644
--- a/app/javascript/dashboard/i18n/locale/tr/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/tr/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "İki Faktörlü Kimlik Doğrulama",
- "SUBTITLE": "TOTP tabanlı kimlik doğrulama ile hesabınızı güvence altına alın",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Zaman tabanlı tek kullanımlık şifre (TOTP) kullanarak hesabınıza ekstra bir güvenlik katmanı ekleyin",
"STATUS_TITLE": "Kimlik Doğrulama Durumu",
"STATUS_DESCRIPTION": "İki faktörlü kimlik doğrulama ayarlarınızı ve yedek kurtarma kodlarınızı yönetin",
diff --git a/app/javascript/dashboard/i18n/locale/tr/report.json b/app/javascript/dashboard/i18n/locale/tr/report.json
index 30a414d98..cdb0a23da 100644
--- a/app/javascript/dashboard/i18n/locale/tr/report.json
+++ b/app/javascript/dashboard/i18n/locale/tr/report.json
@@ -3,7 +3,7 @@
"HEADER": "Konuşmalar",
"LOADING_CHART": "Grafik verileri yükleniyor...",
"NO_ENOUGH_DATA": "Rapor oluşturmak için yeterli veri yok, Lütfen daha sonra tekrar deneyin.",
- "DOWNLOAD_AGENT_REPORTS": "Etken raporları indir",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Veri çekme başarısız oldu, lütfen daha sonra tekrar deneyin.",
"SUMMARY_FETCHING_FAILED": "Özet çekme başarısız oldu, lütfen daha sonra tekrar deneyin.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Temsilci Genel Bakış",
- "DESCRIPTION": "Konuşmalar, yanıt süreleri, çözüm süreleri ve çözülen vakalar gibi temel metriklerle temsilci performansını kolayca takip edin. Daha fazla bilgi için bir temsilcinin adına tıklayın.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Grafik verileri yükleniyor...",
"NO_ENOUGH_DATA": "Rapor oluşturmak için yeterli veri yok, Lütfen daha sonra tekrar deneyin.",
"DOWNLOAD_AGENT_REPORTS": "Etken raporları indir",
"FILTER_DROPDOWN_LABEL": "Temsilci Seçin",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Temsilci ara"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konuşmalar",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Rapor oluşturmak için yeterli veri yok, Lütfen daha sonra tekrar deneyin.",
"DOWNLOAD_LABEL_REPORTS": "Etiket raporlarını indir",
"FILTER_DROPDOWN_LABEL": "Etiket Seçin",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Etiketleri ara"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konuşmalar",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Gelen kutusu seç",
"ALL_INBOXES": "Tüm Gelen Kutuları",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Gelen kutularını ara"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konuşmalar",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Ekip Genel Bakışı",
- "DESCRIPTION": "Konuşmalar, yanıt süreleri, çözüm süreleri ve çözülen vakalar gibi temel metriklerle ekibinizin performansına hızlı bir bakış edinin. Daha fazla detay için bir ekibin adına tıklayın.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Grafik verileri yükleniyor...",
"NO_ENOUGH_DATA": "Rapor oluşturmak için yeterli veri yok, Lütfen daha sonra tekrar deneyin.",
"DOWNLOAD_TEAM_REPORTS": "Ekip raporlarını indir",
"FILTER_DROPDOWN_LABEL": "Ekip Seç",
+ "FILTERS": {
+ "ADD_FILTER": "Filtre Ekle",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Takım ara"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konuşmalar",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Raporları",
- "NO_RECORDS": "Mevcut CSAT anket yanıtları yok.",
+ "NO_RECORDS": "Henüz yanıt yok",
+ "NO_RECORDS_DESCRIPTION": "Müşteriler geri bildirim vermeye başladığında CSAT anket yanıtları burada görünecektir.",
"DOWNLOAD": "CSAT Raporlarını İndir",
"DOWNLOAD_FAILED": "CSAT Raporlarını İndirme Başarısız Oldu",
"FILTERS": {
+ "ADD_FILTER": "Filtre Ekle",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Temsilci ara",
+ "INBOXES": "Gelen kutularını ara",
+ "TEAMS": "Takım ara",
+ "RATINGS": "Değerlendirmelerde ara"
+ },
"AGENTS": {
- "PLACEHOLDER": "Temsilcileri Seç"
+ "LABEL": "Kullanıcı"
+ },
+ "INBOXES": {
+ "LABEL": "Gelen Kutusu"
+ },
+ "TEAMS": {
+ "LABEL": "Ekip"
+ },
+ "RATINGS": {
+ "LABEL": "Değerlendirme"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "İletişim",
- "AGENT_NAME": "Atanan temsilci",
+ "AGENT_NAME": "Kullanıcı",
"RATING": "Değerlendirme",
- "FEEDBACK_TEXT": "Geri bildirim yorumu"
- }
+ "FEEDBACK_TEXT": "Geri bildirim yorumu",
+ "CONVERSATION": "Sohbet",
+ "CUSTOMER": "Müşteri",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "İlgilenen"
+ },
+ "UNKNOWN_CUSTOMER": "Bilinmeyen müşteri"
},
+ "NO_AGENT": "Atanmış temsilci yok",
+ "NO_FEEDBACK": "Geri bildirim sağlanmadı",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Toplam yanıtlar",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Yanıt oranı",
"TOOLTIP": "Toplam yanıtların toplamı / Gönderilen CSAT anketi mesajlarının toplamı * 100"
+ },
+ "RATING_DISTRIBUTION": "Derecelendirme dağılımı"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "İnceleme notları",
+ "PLACEHOLDER": "Bu derecelendirmeyle ilgili yorum notları ekleyin...",
+ "SAVE": "Kaydet",
+ "CANCEL": "İptal Et",
+ "SAVING": "Kaydediliyor...",
+ "SAVED": "Notlar başarıyla kaydedildi",
+ "SAVE_ERROR": "Notlar kaydedilemedi",
+ "UPDATED_BY": "{name} tarafından {time} tarihinde güncellendi",
+ "UPDATED_BY_LABEL": "Güncelleyen",
+ "PAYWALL": {
+ "TITLE": "İnceleme notları eklemek için yükseltin",
+ "AVAILABLE_ON": "İnceleme notları özelliği yalnızca Business ve Enterprise planlarında mevcuttur.",
+ "UPGRADE_PROMPT": "İnceleme notları ile her CSAT yanıtına dahili bağlam ekleyin. Gerçekte ne yaşandığını kayıt altına alın, kalıpları daha hızlı tespit edin ve geri bildirimlerinizden yola çıkarak daha iyi kararlar alın.",
+ "UPGRADE_NOW": "Şimdi yükselt",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/tr/settings.json b/app/javascript/dashboard/i18n/locale/tr/settings.json
index ee47d2026..6c3751fb4 100644
--- a/app/javascript/dashboard/i18n/locale/tr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/tr/settings.json
@@ -36,20 +36,20 @@
}
},
"INTERFACE_SECTION": {
- "TITLE": "Interface",
- "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "TITLE": "Arayüz",
+ "NOTE": "Chatwoot kontrol panelinizin görünümünü ve hissini özelleştirin.",
"FONT_SIZE": {
- "TITLE": "Font size",
- "NOTE": "Adjust the text size across the dashboard based on your preference.",
- "UPDATE_SUCCESS": "Your font settings have been updated successfully",
- "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "TITLE": "Yazı tipi boyutu",
+ "NOTE": "Tercihinize göre gösterge tablosundaki metin boyutunu ayarlayın.",
+ "UPDATE_SUCCESS": "Yazı tipi ayarlarınız başarıyla güncellendi",
+ "UPDATE_ERROR": "Yazı tipi ayarlarını güncellerken bir hata oluştu, lütfen tekrar deneyin",
"OPTIONS": {
- "SMALLER": "Smaller",
- "SMALL": "Small",
+ "SMALLER": "Daha küçük",
+ "SMALL": "Küçük",
"DEFAULT": "Varsayılan",
- "LARGE": "Large",
- "LARGER": "Larger",
- "EXTRA_LARGE": "Extra Large"
+ "LARGE": "Büyük",
+ "LARGER": "Daha büyük",
+ "EXTRA_LARGE": "Ekstra Büyük"
}
},
"LANGUAGE": {
@@ -68,7 +68,7 @@
"API_SUCCESS": "İmza başarıyla kaydedildi",
"IMAGE_UPLOAD_ERROR": "Resim yüklenemedi! Tekrar deneyin",
"IMAGE_UPLOAD_SUCCESS": "Resim başarıyla eklendi. İmzayı kaydetmek için lütfen kaydet'e tıklayın",
- "IMAGE_UPLOAD_SIZE_ERROR": "Resim boyutu %{size}MB'dan küçük olmalıdır"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Resim boyutu {size}MB'dan küçük olmalıdır"
},
"MESSAGE_SIGNATURE": {
"LABEL": "İmzanız",
@@ -97,7 +97,7 @@
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Sesli Uyarılar",
- "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "NOTE": "Yeni mesajlar ve konuşmalar için kontrol panelinde sesli uyarıları etkinleştirin.",
"PLAY": "Sesi oynat",
"ALERT_TYPES": {
"NONE": "Hiç",
@@ -109,16 +109,16 @@
},
"ALERT_COMBINATIONS": {
"NONE": "You haven't selected any options, you won't receive any audio alerts.",
- "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "ASSIGNED": "Size atanan konuşmalar için uyarılar alacaksınız.",
"UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
- "NOTME": "You'll receive alerts for conversations assigned to others.",
- "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
- "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
- "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
- "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ "NOTME": "Başkalarına atanan konuşmalar için uyarılar alacaksınız.",
+ "ASSIGNED+UNASSIGNED": "Atanan konuşmalarınız ve atanmamış konuşmalarınız için uyarılar alacaksınız.",
+ "ASSIGNED+NOTME": "Size ve başkalarına atanan konuşmalar için uyarılar alırsınız, ancak atanmamış olanlar için uyarı almazsınız.",
+ "NOTME+UNASSIGNED": "Atanmamış konuşmalar ve başkalarına atanan konuşmalar için uyarılar alacaksınız.",
+ "ASSIGNED+NOTME+UNASSIGNED": "Tüm konuşmalar için uyarılar alacaksınız."
},
"ALERT_TYPE": {
- "TITLE": "Alert events for conversations",
+ "TITLE": "Konuşmalar için uyarı olayları",
"NONE": "Hiçbiri",
"ASSIGNED": "Atanmış Konuşmalar",
"ALL_CONVERSATIONS": "Tüm Konuşmalar"
@@ -147,21 +147,21 @@
"SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
},
"NOTIFICATIONS": {
- "TITLE": "Notification preferences",
- "TYPE_TITLE": "Notification type",
+ "TITLE": "Bildirim tercihleri",
+ "TYPE_TITLE": "Bildirim türü",
"EMAIL": "E-Posta",
- "PUSH": "Push notification",
+ "PUSH": "Push bildirim",
"TYPES": {
- "CONVERSATION_CREATED": "A new conversation is created",
- "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_CREATED": "Yeni bir konuşma oluşturuldu",
+ "CONVERSATION_ASSIGNED": "Size bir konuşma atandı",
"CONVERSATION_MENTION": "Bir konuşmada sizden bahsedildi",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
- "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
- "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
- "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Size atanmış bir konuşmada yeni bir mesaj oluşturuldu",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Katıldığınız bir konuşmada yeni bir mesaj oluşturuldu",
+ "SLA_MISSED_FIRST_RESPONSE": "Bir konuşmada ilk yanıt SLA süresi aşıldı",
+ "SLA_MISSED_NEXT_RESPONSE": "Bir konuşmada sonraki yanıt SLA süresi aşıldı",
+ "SLA_MISSED_RESOLUTION": "Bir konuşmada çözüm SLA süresi aşıldı"
},
- "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
+ "BROWSER_PERMISSION": "Tarayıcınız için push bildirimleri etkinleştirin, böylece bildirimleri alabilirsiniz"
},
"API": {
"UPDATE_SUCCESS": "Bildirim tercihleriniz başarıyla güncellendi",
@@ -177,9 +177,9 @@
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Katıldığım bir konuşmada yeni bir mesaj oluşturulduğunda anlık bildirimler gönderin",
"HAS_ENABLED_PUSH": "Bu tarayıcı için bildirim özelliğini etkinleştirdiniz.",
"REQUEST_PUSH": "Bildirimlerini etkinleştirin",
- "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
- "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
- "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
+ "SLA_MISSED_FIRST_RESPONSE": "Bir konuşmada ilk yanıt SLA süresi aşıldığında push bildirim gönder",
+ "SLA_MISSED_NEXT_RESPONSE": "Bir konuşmada sonraki yanıt SLA süresi aşıldığında push bildirim gönder",
+ "SLA_MISSED_RESOLUTION": "Bir konuşmada çözüm SLA süresi aşıldığında push bildirim gönder"
},
"PROFILE_IMAGE": {
"LABEL": "Profil Resmi"
@@ -235,7 +235,7 @@
"SELECTOR_SUBTITLE": "Listeden bir hesap seçin",
"PROFILE_SETTINGS": "Profile settings",
"YEAR_IN_REVIEW": "Year in Review",
- "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "KEYBOARD_SHORTCUTS": "Klavye kısayolları",
"APPEARANCE": "Change appearance",
"SUPER_ADMIN_CONSOLE": "SuperAdmin console",
"DOCS": "Read documentation",
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "İndir",
"UPLOADING": "Yükleniyor...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Bu hikaye artık mevcut değil."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Bu hikaye artık mevcut değil.",
+ "INSTAGRAM_STORY_REPLY": "Hikayene cevap verildi:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Haritada Görüntüle"
@@ -374,11 +375,61 @@
"CHANNELS": "Kanallar",
"SET_AUTO_OFFLINE": {
"TEXT": "Otomatik olarak çevrimdışı olarak işaretle",
- "INFO_TEXT": "Sistem sizi otomatik olarak çevrimdışı işaretlesin, uygulamayı veya gösterge tablosunu kullanmıyorsanız.",
- "INFO_SHORT": "Automatically mark offline when you aren't using the app."
+ "INFO_TEXT": "Uygulamayı veya kontrol panelini kullanmadığınızda sistemin sizi otomatik olarak çevrimdışı olarak işaretlemesine izin verin.",
+ "INFO_SHORT": "Uygulamayı kullanmadığınızda otomatik olarak çevrimdışı olarak işaretleyin."
},
"DOCS": "Dokümantasyonu oku",
- "SECURITY": "Güvenlik"
+ "SECURITY": "Güvenlik",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Model seç",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Çok yakında",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Özellikleri",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Fatura",
@@ -401,7 +452,7 @@
"BUTTON_TXT": "Buy more credits",
"DOCUMENTS": "Belgeler",
"RESPONSES": "Responses",
- "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "UPGRADE": "Captain, ücretsiz planda mevcut değildir. Asistanlara, Copilot'a ve daha fazlasına erişim sağlamak için şimdi yükseltin.",
"REFRESH_CREDITS": "Yenile"
},
"CHAT_WITH_US": {
@@ -437,7 +488,7 @@
"SECURITY_SETTINGS": {
"TITLE": "Güvenlik",
"DESCRIPTION": "Hesap güvenlik ayarlarınızı yönetin.",
- "LINK_TEXT": "Learn more about SAML SSO",
+ "LINK_TEXT": "SAML SSO hakkında daha fazla bilgi edinin",
"SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
"SAML": {
"TITLE": "SAML SSO",
@@ -485,13 +536,13 @@
"IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
- "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "AVAILABLE_ON": "SAML SSO özelliği yalnızca Enterprise planlarında mevcuttur.",
+ "UPGRADE_PROMPT": "SAML tek oturum açma ve diğer gelişmiş güvenlik özelliklerine erişmek için Enterprise planına yükseltin.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
"PAYWALL": {
- "TITLE": "Upgrade to enable SAML SSO",
- "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "TITLE": "SAML SSO'yu etkinleştirmek için yükseltin",
+ "AVAILABLE_ON": "SAML SSO özelliği yalnızca Enterprise planlarında mevcuttur.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
"UPGRADE_NOW": "Şimdi yükselt",
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Konuşma İş Akışları",
+ "DESCRIPTION": "Konuşma çözümlemesi için kuralları ve zorunlu alanları yapılandırın."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Öznitelik ara"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Görüşmeyi Çöz",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Görüşmeyi Çöz",
+ "CANCEL": "İptal Et"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Evet",
+ "NO": "Hayır"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Şimdi yükselt",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Eyvah! Hiçbir Chatwoot hesabı bulunamadı. Devam etmek için yeni bir hesap oluşturun.",
"NEW_ACCOUNT": "Yeni hesap",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Devam et",
"CANCEL_BUTTON_LABEL": "İptal Et"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Dengeli",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/tr/signup.json b/app/javascript/dashboard/i18n/locale/tr/signup.json
index 9900d3ba6..d85d92db5 100644
--- a/app/javascript/dashboard/i18n/locale/tr/signup.json
+++ b/app/javascript/dashboard/i18n/locale/tr/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Hesap oluştur",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Kayıt ol",
"TESTIMONIAL_HEADER": "İlerlemek için tek bir adım atmanız yeterlidir",
"TESTIMONIAL_CONTENT": "Müşterilerinizle etkileşimde bulunmaktan, onları elde tutmaktan ve yeni müşteriler bulmaktan sadece bir adım uzaktasınız.",
diff --git a/app/javascript/dashboard/i18n/locale/tr/sla.json b/app/javascript/dashboard/i18n/locale/tr/sla.json
index fbcf0b143..a89c5c0e6 100644
--- a/app/javascript/dashboard/i18n/locale/tr/sla.json
+++ b/app/javascript/dashboard/i18n/locale/tr/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Hizmet Seviyesi Anlaşmaları (SLA’lar), ekibiniz ile müşterileriniz arasındaki beklentileri net bir şekilde tanımlayan sözleşmelerdir. Yanıt ve çözüm süreleri için standartlar belirleyerek sorumluluk çerçevesi oluşturur ve tutarlı, yüksek kaliteli bir deneyim sağlar.",
"LEARN_MORE": "SLA hakkında daha fazla bilgi edinin",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "SLA oluşturmak için yükseltin",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Çalışma saatleri"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/tr/snooze.json b/app/javascript/dashboard/i18n/locale/tr/snooze.json
new file mode 100644
index 000000000..160adf4e1
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/tr/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "dakika",
+ "HOUR": "hour",
+ "HOURS": "saat",
+ "DAY": "gün",
+ "DAYS": "gün",
+ "WEEK": "hafta",
+ "WEEKS": "weeks",
+ "MONTH": "ay",
+ "MONTHS": "months",
+ "YEAR": "yıl",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "sonraki",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "yarın",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "sonraki hafta",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "hafta",
+ "DAY": "gün"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/tr/teamsSettings.json b/app/javascript/dashboard/i18n/locale/tr/teamsSettings.json
index 53cfab154..08d9401f9 100644
--- a/app/javascript/dashboard/i18n/locale/tr/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/tr/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Ekipler, temsilcileri sorumluluklarına göre gruplar halinde organize etmenizi sağlar. Bir temsilci birden fazla ekibe ait olabilir. Ortak çalışırken, konuşmaları belirli ekiplere atayabilirsiniz.",
"LEARN_MORE": "Ekipler hakkında daha fazla bilgi edinin",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Takım ara...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Bu hesap üzerine oluşturulmuş ekip bulunmamaktadır.",
"EDIT_TEAM": "Ekibi düzenle",
@@ -64,7 +67,7 @@
"ERROR_MESSAGE": "Ekip detayları kaydedilemedi. Tekrar deneyin."
},
"AGENTS": {
- "AGENT": "TEMSİLCİ",
+ "AGENT": "Kullanıcı",
"EMAIL": "E-Posta",
"BUTTON_TEXT": "Kullanıcı Ekle",
"ADD_AGENTS": "Ekibinize Temsiciler Ekleniyor...",
diff --git a/app/javascript/dashboard/i18n/locale/uk/agentBots.json b/app/javascript/dashboard/i18n/locale/uk/agentBots.json
index 5bdd49dd8..f2fae5251 100644
--- a/app/javascript/dashboard/i18n/locale/uk/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/uk/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Завантаження редактора...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "Система",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Отримання ботів...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "URL вебхука"
+ "URL": "URL вебхука",
+ "ACTIONS": "Дії"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/uk/agentMgmt.json b/app/javascript/dashboard/i18n/locale/uk/agentMgmt.json
index 146890e69..be65cb779 100644
--- a/app/javascript/dashboard/i18n/locale/uk/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/uk/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Адміністратор",
"AGENT": "Агент"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Немає агентів, пов'язаних з цим обліковим записом",
"TITLE": "Керування агентами у вашій команді",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Не вдалося підключитися до Woot Server, спробуйте ще раз пізніше"
}
},
+ "SEARCH_PLACEHOLDER": "Пошук агентів...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Результатів не знайдено."
},
diff --git a/app/javascript/dashboard/i18n/locale/uk/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/uk/attributesMgmt.json
index 4925f8e2a..79d0cb40a 100644
--- a/app/javascript/dashboard/i18n/locale/uk/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/uk/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Отримання користувацьких атрибутів",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Атрибути пошуку...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Розмови",
"CONTACT": "Контакт"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Увімкнути перевірку регулярного виразу"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Пре-чат",
+ "RESOLUTION": "Вирішення"
}
},
"API": {
@@ -131,8 +138,8 @@
}
},
"BADGES": {
- "PRE_CHAT": "Pre-chat",
- "RESOLUTION": "Resolution"
+ "PRE_CHAT": "Пре-чат",
+ "RESOLUTION": "Вирішення"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/uk/automation.json b/app/javascript/dashboard/i18n/locale/uk/automation.json
index d26cef431..566a65d99 100644
--- a/app/javascript/dashboard/i18n/locale/uk/automation.json
+++ b/app/javascript/dashboard/i18n/locale/uk/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Автоматизація",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Додати правило автоматизації",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Отримання правил автоматизації",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Додати правило автоматизації",
"SUBMIT": "Створити",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Ім'я",
- "DESCRIPTION": "Опис",
"ACTIVE": "Активний",
- "CREATED_ON": "Створено"
+ "CREATED_ON": "Створено",
+ "ACTIONS": "Дії"
},
"404": "Не знайдено правил автоматизації"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Змінити пріоритет",
"ADD_SLA": "Додати SLA",
- "OPEN_CONVERSATION": "Відкрити розмову"
+ "OPEN_CONVERSATION": "Відкрити розмову",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/uk/bulkActions.json b/app/javascript/dashboard/i18n/locale/uk/bulkActions.json
index b80380077..fa7f9c969 100644
--- a/app/javascript/dashboard/i18n/locale/uk/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/uk/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Статус розмови успішно оновлено.",
"UPDATE_FAILED": "Не вдалося оновити розмови, будь ласка, спробуйте ще раз."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Призначити мітки",
"NO_LABELS_FOUND": "Міток не знайдено",
diff --git a/app/javascript/dashboard/i18n/locale/uk/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/uk/cannedMgmt.json
index 17f5782e8..f2d7e53db 100644
--- a/app/javascript/dashboard/i18n/locale/uk/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/uk/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Швидкі відповіді",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Додати швидку відповідь",
"LOADING": "Отримання швидких відповідей...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Немає елементів, що відповідають запиту.",
"LIST": {
"404": "В цьому обліковому записі немає швидких відповідей.",
diff --git a/app/javascript/dashboard/i18n/locale/uk/chatlist.json b/app/javascript/dashboard/i18n/locale/uk/chatlist.json
index 9df6601b8..7d98c056d 100644
--- a/app/javascript/dashboard/i18n/locale/uk/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/uk/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Очікує відповіді: спершу короткі"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -104,7 +107,7 @@
"CONTENT": "Shared contact"
},
"embed": {
- "CONTENT": "Embedded content"
+ "CONTENT": "Вбудований вміст"
}
},
"CHAT_SORT_BY_FILTER": {
diff --git a/app/javascript/dashboard/i18n/locale/uk/companies.json b/app/javascript/dashboard/i18n/locale/uk/companies.json
index a1b662235..0f464ae74 100644
--- a/app/javascript/dashboard/i18n/locale/uk/companies.json
+++ b/app/javascript/dashboard/i18n/locale/uk/companies.json
@@ -1,33 +1,33 @@
{
"COMPANIES": {
- "HEADER": "Companies",
+ "HEADER": "Компанії",
"SORT_BY": {
"LABEL": "Сортувати за",
"OPTIONS": {
"NAME": "Ім'я",
"DOMAIN": "Домен",
"CREATED_AT": "Створений в",
- "CONTACTS_COUNT": "Contacts count"
+ "CONTACTS_COUNT": "Кількість контактів"
}
},
"ORDER": {
- "LABEL": "Order",
+ "LABEL": "Порядок",
"OPTIONS": {
- "ASCENDING": "Ascending",
- "DESCENDING": "Descending"
+ "ASCENDING": "За зростанням",
+ "DESCENDING": "За спаданням"
}
},
- "SEARCH_PLACEHOLDER": "Search companies...",
- "LOADING": "Loading companies...",
- "UNNAMED": "Unnamed Company",
- "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "SEARCH_PLACEHOLDER": "Пошук компаній...",
+ "LOADING": "Завантаження компаній...",
+ "UNNAMED": "Компанія без назви",
+ "CONTACTS_COUNT": "{n} контакт | {n} контактів",
"EMPTY_STATE": {
- "TITLE": "No companies found"
+ "TITLE": "Не знайдено жодної компанії"
}
},
"COMPANIES_LAYOUT": {
"PAGINATION_FOOTER": {
- "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ "SHOWING": "Показати {startItem} – {endItem} з {totalItems} компаній | Показати {startItem} – {endItem} з {totalItems} компаній"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/uk/contact.json b/app/javascript/dashboard/i18n/locale/uk/contact.json
index edc5c5e52..10a1a42fd 100644
--- a/app/javascript/dashboard/i18n/locale/uk/contact.json
+++ b/app/javascript/dashboard/i18n/locale/uk/contact.json
@@ -18,8 +18,8 @@
"CREATED_AT_LABEL": "Створено",
"NEW_MESSAGE": "Нове повідомлення",
"CALL": "Дзвінок",
- "CALL_INITIATED": "Calling the contact…",
- "CALL_FAILED": "Unable to start the call. Please try again.",
+ "CALL_INITIATED": "Викликаємо контакт…",
+ "CALL_FAILED": "Не можливо розпочати виклик. Будь ласка, спробуйте пізніше.",
"VOICE_INBOX_PICKER": {
"TITLE": "Оберіть голосову теку"
},
@@ -457,8 +457,11 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
- "PLACEHOLDER": "Add TikTok"
+ "PLACEHOLDER": "Додати TikTok"
},
"LINKEDIN": {
"PLACEHOLDER": "Add LinkedIn"
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Немає контактів, які відповідають вашому пошуку 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Призначити мітки",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Для:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Тема :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Копія:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Прихована копія:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Прихована копія"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/uk/contentTemplates.json b/app/javascript/dashboard/i18n/locale/uk/contentTemplates.json
index fcf733290..3ffeb4ba5 100644
--- a/app/javascript/dashboard/i18n/locale/uk/contentTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/uk/contentTemplates.json
@@ -28,7 +28,7 @@
"TYPES": {
"MEDIA": "Media",
"QUICK_REPLY": "Quick Reply",
- "CALL_TO_ACTION": "Call to Action",
+ "CALL_TO_ACTION": "Виклик до дії",
"TEXT": "Текст"
}
},
diff --git a/app/javascript/dashboard/i18n/locale/uk/conversation.json b/app/javascript/dashboard/i18n/locale/uk/conversation.json
index 5eed7bb56..eba59f944 100644
--- a/app/javascript/dashboard/i18n/locale/uk/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/uk/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Це повідомлення не підтримується. Ви можете переглянути це повідомлення у додатку Facebook Messenger",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Це повідомлення не підтримується. Ви можете переглянути це повідомлення у додатку Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Повідомлення успішно видалено",
"FAIL_DELETE_MESSSAGE": "Не вдалося видалити повідомлення! Спробуйте ще раз",
"NO_RESPONSE": "Немає відповіді",
@@ -173,8 +174,12 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Не вдалося призначити мітку. Будь-ласка, спробуйте ще раз."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Призначено команду \"#{team}\" до ID розмови {conversationId}",
+ "SUCCESFUL": "Призначено команду \"{team}\" до ID розмови {conversationId}",
"FAILED": "Не вдалося призначити команду. Будь ласка, спробуйте ще раз."
}
}
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Вимкнути підпис",
"MSG_INPUT": "Shift + Enter для нового рядка. Для вибору швидкої відповіді, уведіть '/'.",
"PRIVATE_MSG_INPUT": "Shift + Enter для нового рядка. Видиме лише для співробітників",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Не налаштовано підпис повідомлення, будь ласка, налаштуйте його в налаштуваннях профілю.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Натисніть тут для оновлення",
"WHATSAPP_TEMPLATES": "Шаблони Whatsapp"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Перетягніть сюди, щоб прикріпити",
"START_AUDIO_RECORDING": "Почати аудіозапис",
"STOP_AUDIO_RECORDING": "Зупинити аудіозапис",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "На",
"ADD_BCC": "Додати bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Файл перевищує максимальний розмір вкладень {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} МБ",
+ "FILE_TYPE_NOT_SUPPORTED": "Тип файлу {fileName} не підтримується у цій розмові",
"MESSAGE_ERROR": "Не вдалося надіслати повідомлення, будь ласка, повторіть спробу пізніше",
"SENT_BY": "Надіслав:",
"BOT": "Бот",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Не вдалося надіслати повідомлення! Повторіть спробу",
"TRY_AGAIN": "повторити",
"ASSIGNMENT": {
@@ -281,10 +293,10 @@
"OUTGOING_CALL": "Outgoing call",
"CALL_IN_PROGRESS": "Call in progress",
"NOT_ANSWERED_YET": "Not answered yet",
- "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
- "REJECT_CALL": "Reject",
- "JOIN_CALL": "Join call",
- "END_CALL": "End call"
+ "HANDLED_IN_ANOTHER_TAB": "Оброблюється в іншій вкладці",
+ "REJECT_CALL": "Відхилити",
+ "JOIN_CALL": "Доєднатися до виклику",
+ "END_CALL": "Завершити виклик"
}
},
"EMAIL_TRANSCRIPT": {
@@ -294,6 +306,7 @@
"CANCEL": "Скасувати",
"SEND_EMAIL_SUCCESS": "Текст розмови надісланий",
"SEND_EMAIL_ERROR": "Сталася помилка, будь ласка, спробуйте ще раз",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Надіслати клієнту стенограму",
"SEND_TO_AGENT": "Надіслати стенограму агенту",
diff --git a/app/javascript/dashboard/i18n/locale/uk/customRole.json b/app/javascript/dashboard/i18n/locale/uk/customRole.json
index be0ae80a6..d602d8a6a 100644
--- a/app/javascript/dashboard/i18n/locale/uk/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/uk/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Немає елементів, що відповідають запиту.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/uk/datePicker.json b/app/javascript/dashboard/i18n/locale/uk/datePicker.json
index 8cd0f07ee..a73e646b2 100644
--- a/app/javascript/dashboard/i18n/locale/uk/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/uk/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Підтвердити",
"CLEAR_BUTTON": "Очистити",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Останні 3 місяці",
"LAST_6_MONTHS": "Останні 6 місяців",
"LAST_YEAR": "Минулий рік",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Довільний діапазон дат"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/uk/general.json b/app/javascript/dashboard/i18n/locale/uk/general.json
index b89d07068..24ebd28cc 100644
--- a/app/javascript/dashboard/i18n/locale/uk/general.json
+++ b/app/javascript/dashboard/i18n/locale/uk/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Закрити",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Так",
+ "NO": "Ні"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/uk/generalSettings.json b/app/javascript/dashboard/i18n/locale/uk/generalSettings.json
index 24fedd761..04c2ee054 100644
--- a/app/javascript/dashboard/i18n/locale/uk/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/uk/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Шукати чи перейти до",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Загальні",
"REPORTS": "Звіти",
diff --git a/app/javascript/dashboard/i18n/locale/uk/helpCenter.json b/app/javascript/dashboard/i18n/locale/uk/helpCenter.json
index 9e36d17d9..d9ab1728c 100644
--- a/app/javascript/dashboard/i18n/locale/uk/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/uk/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Помилка при видаленні статті"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Будь ласка, додайте заголовок і вміст статті. Лише потім можна оновити налаштування"
},
diff --git a/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json
index 1b1e32968..7c03135d8 100644
--- a/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Вхідні",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -58,11 +61,11 @@
"DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TIKTOK": {
- "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
- "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
- "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
- "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
- "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
+ "CONTINUE_WITH_TIKTOK": "Продовжити в TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Приєднайте ваш профіль TikTok",
+ "HELP": "Щоб додати ваш профіль TikTok як канал потрібно аутентифікувати його клацнувши 'Продовжити в TikTok' ",
+ "ERROR_MESSAGE": "При спробі під'єднатися до TikTok виникла помилка, будь ласка, спробуйте пізніше",
+ "ERROR_AUTH": "При спробі під'єднатися до TikTok виникла помилка, будь ласка, спробуйте пізніше"
},
"TWITTER": {
"HELP": "Щоб додати свій профіль у Twitter як канал, вам потрібно авторизувати свій профіль у Twitter, натиснувши кнопку \"Увійти через Twitter\" ",
@@ -389,10 +392,10 @@
"ERROR_MESSAGE": "Ми не змогли зберегти email канал"
},
"FINISH_MESSAGE": "Почніть перенаправляти листи до наступної адреси електронної пошти.",
- "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
- "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "FINISH_MESSAGE_NO_FORWARDING": "Джерело для вашої поштової скриньки успішно створене! Вам потрібно налаштувати дані IMAP та SMTP щоб отримувати та надсилати листи. Без цих налаштувань ваші листи не будуть оброблятися.",
+ "FORWARDING_ADDRESS_LABEL": "Перенаправляти листи на цю адресу:",
"CONFIGURE_SMTP_IMAP_LINK": "Натисніть тут",
- "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
+ "CONFIGURE_SMTP_IMAP_TEXT": " налаштувати параметри IMAP та SMTP"
},
"LINE_CHANNEL": {
"TITLE": "LINE Канал",
@@ -480,7 +483,7 @@
},
"TIKTOK": {
"TITLE": "TikTok",
- "DESCRIPTION": "Connect your TikTok account"
+ "DESCRIPTION": "Під'єднати ваш обліковий запис TikTok"
},
"VOICE": {
"TITLE": "Voice",
@@ -575,7 +578,7 @@
"SUBTITLE": "Використовувати лише налаштовану бізнес-назву як ім'я відправника в заголовку електронної пошти."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Налаштуйте ваше корпоративне ім'я",
+ "BUTTON_TEXT": "Налаштуйте ваше корпоративне ім'я",
"PLACEHOLDER": "Введіть ваше корпоративне ім'я",
"SAVE_BUTTON_TEXT": "Зберегти"
}
@@ -589,8 +592,10 @@
"DISABLED": "Вимкнено"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Увімкнено",
- "DISABLED": "Вимкнено"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Увімкнено"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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": "Налаштування",
@@ -694,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": "Додати або вилучити агентів з скриньки Вхідні",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Увімкнути/Вимкнути показ імені співробітника в електронній пошті, якщо це вимкнено, то буде відображатися бізнес-ім'я",
"ENABLE_CONTINUITY_VIA_EMAIL": "Увімкнути безперервність розмови через електронну пошту",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Розмови продовжуватимуться через електронну пошту, якщо доступна контактна адреса.",
- "LOCK_TO_SINGLE_CONVERSATION": "Заблокувати бесіду",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Увімкнути або вимкнути кілька бесід для одного контакту в цій папці Вхідні",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Налаштування каналу",
"INBOX_UPDATE_SUB_TEXT": "Оновіть параметри каналу",
"AUTO_ASSIGNMENT_SUB_TEXT": "Увімкнення або вимкнення автоматичного призначення нових розмов до агентів, доданих до цього каналу.",
@@ -722,7 +739,7 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Використовуйте токен `inbox_identifier`, показаний тут для аутентифікації ваших API клієнтів.",
"FORWARD_EMAIL_TITLE": "Переслати на ел. пошту",
"FORWARD_EMAIL_SUB_TEXT": "Почніть перенаправляти листи до наступної адреси електронної пошти.",
- "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Перенаправлення листів до теки \"Вхідні\" наразі відключено для цієї інсталяції. Щоб використовувати цю функцію вона має бути увімкнена адміністратором. Будь ласка, зверніться до нього.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Дозволити повідомлення після закінчення розмови",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Дозволити кінцевим користувачам надсилати повідомлення навіть після закриття розмови.",
"WHATSAPP_SECTION_SUBHEADER": "Цей ключ API використовується для інтеграції з API WhatsApp.",
@@ -758,6 +775,7 @@
"LABEL": "Довідковий центр",
"PLACEHOLDER": "Виберіть довідковий центр",
"SELECT_PLACEHOLDER": "Виберіть довідковий центр",
+ "NONE": "Нiчого",
"REMOVE": "Видалити довідковий центр",
"SUB_TEXT": "Прикріпити Довідковий центр до папки Вхідні"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Будь ласка, введіть значення, більше за 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Обмеження максимальної кількості розмов із цього джерела, яку можна автоматично призначити агенту"
},
+ "ASSIGNMENT": {
+ "TITLE": "Призначення до розмови",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Активний",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Скасувати",
+ "CONFIRM_DELETE": "Видалити",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Повторна авторизація",
"SUBTITLE": "Підключення до Facebook закінчилося, будь ласка, поновіть сторінку Facebook, щоб продовжити роботу служб",
@@ -809,34 +874,48 @@
"PLACEHOLDER": "Please enter a message to show users with the form"
},
"BUTTON_TEXT": {
- "LABEL": "Button text",
- "PLACEHOLDER": "Please rate us"
+ "LABEL": "Текст кнопки",
+ "PLACEHOLDER": "Будь ласка, оцініть нас"
},
"LANGUAGE": {
"LABEL": "Мова",
- "PLACEHOLDER": "Select template language"
+ "PLACEHOLDER": "Виберіть мову шаблону"
},
"MESSAGE_PREVIEW": {
- "LABEL": "Message preview",
- "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ "LABEL": "Попередній перегляд повідомлення",
+ "TOOLTIP": "Це може дещо відрізнятися від того що відображає платформа WhatsApp."
},
"TEMPLATE_STATUS": {
- "APPROVED": "Approved by WhatsApp",
- "PENDING": "Pending WhatsApp approval",
- "REJECTED": "Meta rejected the template",
- "DEFAULT": "Needs WhatsApp approval",
- "NOT_FOUND": "The template does not exist in the Meta platform."
+ "APPROVED": "Підтверджено WhatsApp",
+ "PENDING": "Очікує підтвердження WhatsApp",
+ "REJECTED": "Шаблон відхилено Meta",
+ "DEFAULT": "Потребує підтвердження WhatsApp",
+ "NOT_FOUND": "Цей шаблон не існує на платформі Meta."
},
"TEMPLATE_CREATION": {
- "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
- "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ "SUCCESS_MESSAGE": "Шаблон WhatsApp успішно створено та надіслано на підтвердження",
+ "ERROR_MESSAGE": "Не вдалося створити шаблон WhatsApp"
},
"TEMPLATE_UPDATE_DIALOG": {
- "TITLE": "Edit survey details",
- "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
- "CONFIRM": "Create new template",
+ "TITLE": "Редагувати деталі опитування",
+ "DESCRIPTION": "Попередній шаблон буде видалено та створено новий, який буде надіслано у WhatsApp для підтвердження",
+ "CONFIRM": "Створити новий шаблон",
"CANCEL": "Повернутися назад"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Повідомлення для відвідувачів у неробочі години",
"TOGGLE_HELP": "Включення покаже робочі години на віджеті в чаті, навіть якщо всі агенти перебувають в автономному режимі. У неробочі години відвідувачі можуть бути попереджені повідомленням і формою попереднього чату.",
"DAY": {
+ "DAY": "День",
+ "AVAILABILITY": "Присутність",
+ "HOURS": "Hours",
"ENABLE": "Увімкнути доступність для цього дня",
"UNAVAILABLE": "Неприсутній",
- "HOURS": "години",
"VALIDATION_ERROR": "Час початку має бути менше часу закриття.",
"CHOOSE": "Обрати"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Протягом дня"
},
"WIDGET_COLOR_LABEL": "Колір віджета",
- "WIDGET_BUBBLE_POSITION_LABEL": "Позиція віджету",
- "WIDGET_BUBBLE_TYPE_LABEL": "Тип віджету",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Тип:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Почніть розмову з нами",
- "LABEL": "Заголовок віджета",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Почніть розмову з нами"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "За замовчуванням",
- "CHAT": "Чат"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Зазвичай відповідаємо за декілька хвилин",
diff --git a/app/javascript/dashboard/i18n/locale/uk/integrationApps.json b/app/javascript/dashboard/i18n/locale/uk/integrationApps.json
index 8bc5136c5..ff6b2ec55 100644
--- a/app/javascript/dashboard/i18n/locale/uk/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/uk/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Отримання інтеграцій",
"NO_HOOK_CONFIGURED": "Немає сконфігурованих інтеграцій {integrationId} в цьому обліковому записі.",
"HEADER": "Додатки",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Увімкнено",
"DISABLED": "Вимкнено"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Отримання інтеграційних хуків",
"INBOX": "Вхідні",
+ "ACTIONS": "Дії",
"DELETE": {
"BUTTON_TEXT": "Видалити"
}
diff --git a/app/javascript/dashboard/i18n/locale/uk/integrations.json b/app/javascript/dashboard/i18n/locale/uk/integrations.json
index dcca01734..f833f8450 100644
--- a/app/javascript/dashboard/i18n/locale/uk/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/uk/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Події з підпискою",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Скасувати",
"DESC": "Вебхуки автоматично повідомляють про те, що відбувається у вашому обліковому записі Chatwoot. Будь ласка, введіть дійсний URL для налаштування зворотного виклику.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Видалити",
"DELETE_CONFIRMATION": {
"TITLE": "Видалити інтеграцію",
@@ -145,7 +160,29 @@
"EXPAND": "Розширити",
"MAKE_FRIENDLY": "Змінити сигнал повідомлення на дружній",
"MAKE_FORMAL": "Використовувати формальний сигнал",
- "SIMPLIFY": "Спростити"
+ "SIMPLIFY": "Спростити",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Професійний",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Дружній"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Вміст чернетки",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Панель управління
Додатки дозволяють організаціям вставляти в панель керування Chatwoot інформацію, щоб надати контекст агентам підтримки клієнтів. Ця функція дозволяє створювати додаток незалежно і вставляти його в панелі управління відомості про користувача, їхні замовлення або історію попередніх платежів.
Коли ви вставляєте свій застосунок за допомогою панелі керування в Chatwoot, ваша програма отримає контекст розмови і зв'яжеться як віконна подія. Налаштуйте слухача для заходу повідомлення на вашій сторінці, щоб отримати контекст.
Щоб додати нову панель керування, натисніть кнопку 'Додати нову програму'.
",
"DESCRIPTION": "Додатки дозволяють організаціям вбудовувати інформаційну панель керування і надавати контекст для агентів підтримки клієнтів. Ця функція дозволяє створювати додаток незалежно і додавати інформацію, що надавали про користувача, його замовлення або історію платежів.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Поки що немає налаштованих додатків в цьому акаунті",
"LOADING": "Отримання додатків панелі керування...",
"TABLE_HEADER": {
"NAME": "Ім'я",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Дії"
},
"EDIT_TOOLTIP": "Редагувати додаток",
"DELETE_TOOLTIP": "Видалити додаток"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "Ви можете змінити або скасувати план у будь-який час"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI доступний тільки в планах Enterprise.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Будь ласка, зверніться до адміністратора для оновлення."
},
diff --git a/app/javascript/dashboard/i18n/locale/uk/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/uk/labelsMgmt.json
index e85ca8130..d707dbc9b 100644
--- a/app/javascript/dashboard/i18n/locale/uk/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/uk/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Отримання міток",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Пошук міток...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Немає елементів, що відповідають запиту",
"LIST": {
"404": "У цьому акаунті немає міток.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Ім'я",
"DESCRIPTION": "Опис",
- "COLOR": "Колір"
+ "COLOR": "Колір",
+ "ACTION": "Дії"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/uk/macros.json b/app/javascript/dashboard/i18n/locale/uk/macros.json
index fbe695139..037531e4f 100644
--- a/app/javascript/dashboard/i18n/locale/uk/macros.json
+++ b/app/javascript/dashboard/i18n/locale/uk/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Макрос",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Додати новий макрос",
"HEADER_BTN_TXT_SAVE": "Зберегти макрос",
"LOADING": "Завантаження макросів",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Щось пішло не так. Будь ласка, оновіть сторінку",
"ORDER_INFO": "Макроси запускається у порядку додавання ваших дій. Ви можете переставити їх шляхом перетягування.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Ім'я",
"CREATED BY": "Створено",
"LAST_UPDATED_BY": "Оновлено",
- "VISIBILITY": "Видимість"
+ "VISIBILITY": "Видимість",
+ "ACTIONS": "Дії"
},
"404": "Макросів не знайдено"
},
diff --git a/app/javascript/dashboard/i18n/locale/uk/mfa.json b/app/javascript/dashboard/i18n/locale/uk/mfa.json
index 496335c5d..ddd1b510a 100644
--- a/app/javascript/dashboard/i18n/locale/uk/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/uk/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/uk/report.json b/app/javascript/dashboard/i18n/locale/uk/report.json
index 6af3bdc23..3431096b8 100644
--- a/app/javascript/dashboard/i18n/locale/uk/report.json
+++ b/app/javascript/dashboard/i18n/locale/uk/report.json
@@ -3,7 +3,7 @@
"HEADER": "Бесіди",
"LOADING_CHART": "Завантаження даних діаграми...",
"NO_ENOUGH_DATA": "Ми не отримали достатньо даних для генерації звіту. Будь ласка, спробуйте ще раз пізніше.",
- "DOWNLOAD_AGENT_REPORTS": "Завантажити звіти агентів",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Не вдалося отримати дані. Будь ласка, повторіть спробу пізніше.",
"SUMMARY_FETCHING_FAILED": "Не вдалося отримати дані. Будь ласка, повторіть спробу пізніше.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Огляд Агентів",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Завантаження даних діаграми...",
"NO_ENOUGH_DATA": "Ми не отримали достатньо даних для генерації звіту. Будь ласка, спробуйте ще раз пізніше.",
"DOWNLOAD_AGENT_REPORTS": "Завантажити звіти агентів",
"FILTER_DROPDOWN_LABEL": "Виберіть агента",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Пошук агентів"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Бесіди",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Ми не отримали достатньо даних для генерації звіту. Будь ласка, спробуйте ще раз пізніше.",
"DOWNLOAD_LABEL_REPORTS": "Завантажити звіти по міткам",
"FILTER_DROPDOWN_LABEL": "Виберіть Мітку",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Пошук міток"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Бесіди",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Вибрати \"Вхідний\" канал",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Бесіди",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Огляд команди",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Завантаження даних діаграми...",
"NO_ENOUGH_DATA": "Ми не отримали достатньо даних для генерації звіту. Будь ласка, спробуйте ще раз пізніше.",
"DOWNLOAD_TEAM_REPORTS": "Завантажити звіти команд",
"FILTER_DROPDOWN_LABEL": "Оберіть команду",
+ "FILTERS": {
+ "ADD_FILTER": "Додати фільтр",
+ "CLEAR_ALL": "Очистити все",
+ "NO_FILTER": "Немає доступних фільтрів",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Пошук команд"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Бесіди",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Звіти CSAT",
- "NO_RECORDS": "Немає доступних відповідей для опитувань CSAT.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Завантажити CSAT звіти",
"DOWNLOAD_FAILED": "Не вдалося завантажити звіти CSAT",
"FILTERS": {
+ "ADD_FILTER": "Додати фільтр",
+ "CLEAR_ALL": "Очистити все",
+ "NO_FILTER": "Немає доступних фільтрів",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Пошук агентів",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Пошук команд",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Виберіть Агентів"
+ "LABEL": "Агент"
+ },
+ "INBOXES": {
+ "LABEL": "Вхідні"
+ },
+ "TEAMS": {
+ "LABEL": "Команда"
+ },
+ "RATINGS": {
+ "LABEL": "Оцінка"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Контакт",
- "AGENT_NAME": "Призначений агент",
+ "AGENT_NAME": "Агент",
"RATING": "Оцінка",
- "FEEDBACK_TEXT": "Відгук"
- }
+ "FEEDBACK_TEXT": "Відгук",
+ "CONVERSATION": "Діалог",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Всього відповідей",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Показник відповідей",
"TOOLTIP": "Загальна кількість відповідей / Загальна кількість повідомлень опитування CSAT відправлено * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Зберегти",
+ "CANCEL": "Скасувати",
+ "SAVING": "Збереження...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Оновити зараз",
+ "CANCEL_ANYTIME": "Ви можете змінити або скасувати план у будь-який час"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/uk/settings.json b/app/javascript/dashboard/i18n/locale/uk/settings.json
index 7d51984c3..e163ae07f 100644
--- a/app/javascript/dashboard/i18n/locale/uk/settings.json
+++ b/app/javascript/dashboard/i18n/locale/uk/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Звантажити",
"UPLOADING": "Завантажується...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Ця історія більше не доступна."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Ця історія більше не доступна.",
+ "INSTAGRAM_STORY_REPLY": "Відповів(-ла) на вашу історію:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Дивитись на карті"
@@ -307,7 +308,7 @@
"SETTINGS": "Налаштування",
"CONTACTS": "Контакти",
"ACTIVE": "Активний",
- "COMPANIES": "Companies",
+ "COMPANIES": "Компанії",
"ALL_COMPANIES": "All Companies",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Читати документи",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Особливості",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Біллінг",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Атрибути пошуку"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Закрити розмову",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Закрити розмову",
+ "CANCEL": "Скасувати"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Так",
+ "NO": "Ні"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Оновити зараз",
+ "CANCEL_ANYTIME": "Ви можете змінити або скасувати план у будь-який час"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Будь ласка, зверніться до адміністратора для оновлення."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Ой! Ми не змогли знайти жодного облікового запису Chatwoot. Будь ласка, створіть новий обліковий запис, щоб продовжити.",
"NEW_ACCOUNT": "Новий акаунт",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Скасувати"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/uk/signup.json b/app/javascript/dashboard/i18n/locale/uk/signup.json
index 5acf45913..facf944d6 100644
--- a/app/javascript/dashboard/i18n/locale/uk/signup.json
+++ b/app/javascript/dashboard/i18n/locale/uk/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Створити акаунт",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Реєстрація",
"TESTIMONIAL_HEADER": "Один крок і вперед",
"TESTIMONIAL_CONTENT": "Ви за один крок від залучення своїх клієнтів, утримання їх та пошуку нових.",
diff --git a/app/javascript/dashboard/i18n/locale/uk/sla.json b/app/javascript/dashboard/i18n/locale/uk/sla.json
index a843a905f..66a8c1274 100644
--- a/app/javascript/dashboard/i18n/locale/uk/sla.json
+++ b/app/javascript/dashboard/i18n/locale/uk/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Створити нову SLA політику",
"DESCRIPTION": "Угода про рівень послуг (SLAs) - це контракти, що визначають чіткі очікування між вашою командою та клієнтами. Вони встановлюють стандарти часу реагування та резолюції, створюючи рамки підзвітності та забезпечують послідовний, якісний досвід.",
"LEARN_MORE": "Дізнатися більше про SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Отримання SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Оновіть, щоб створити SLA",
"AVAILABLE_ON": "Функція SLA доступна тільки в планах Business та Enterprise.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "У цьому обліковому записі немає SLA.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Питання, висунуті корпоративними клієнтами, які потребують негайної уваги.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Питання, отримані підприємницькими клієнтами, потрібно швидко визнати."
},
- "BUSINESS_HOURS_ON": "Увімкнено робочий час",
- "BUSINESS_HOURS_OFF": "Вимкнено робочий час",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "Час першої відповіді",
"NRT": "Час наступної відповіді",
diff --git a/app/javascript/dashboard/i18n/locale/uk/snooze.json b/app/javascript/dashboard/i18n/locale/uk/snooze.json
new file mode 100644
index 000000000..f67efca58
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/uk/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "години",
+ "DAY": "день",
+ "DAYS": "days",
+ "WEEK": "день",
+ "WEEKS": "weeks",
+ "MONTH": "тиждень",
+ "MONTHS": "months",
+ "YEAR": "місяць",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "завтра",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "наступного тижня",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "день",
+ "DAY": "день"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/uk/teamsSettings.json b/app/javascript/dashboard/i18n/locale/uk/teamsSettings.json
index 23055b562..7c659d27c 100644
--- a/app/javascript/dashboard/i18n/locale/uk/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/uk/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Пошук команд...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "В цьому обліковому запису не створено жодної команди.",
"EDIT_TEAM": "Редагувати команду",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Не вдалося зберегти деталі команди. Повторіть спробу."
},
"AGENTS": {
- "AGENT": "АГЕНТ",
- "EMAIL": "ПОШТА",
+ "AGENT": "Агент",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Додати агентів",
"ADD_AGENTS": "Додавання агентів до команди...",
"SELECT": "вибрати",
diff --git a/app/javascript/dashboard/i18n/locale/ur/agentBots.json b/app/javascript/dashboard/i18n/locale/ur/agentBots.json
index e1cc3800d..e20ab5ba0 100644
--- a/app/javascript/dashboard/i18n/locale/ur/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ur/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "عمل"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/ur/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ur/agentMgmt.json
index 5826eef95..ed46bf0fa 100644
--- a/app/javascript/dashboard/i18n/locale/ur/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "منتظم",
"AGENT": "ایجنٹ"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "اس اکاؤنٹ سے کوئی ایجنٹ منسلک نہیں ہے",
"TITLE": "اپنی ٹیم میں ایجنٹوں کا انتظام کریں۔",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "ووٹ سرور کے ساتھ رابطہ ممکن نہی ہوسکا ، براہ کرم کچھ دیر بعد کوشش کریں"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "کوئی نتیجہ نہیں."
},
diff --git a/app/javascript/dashboard/i18n/locale/ur/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ur/attributesMgmt.json
index e68feb9a4..bac52b17c 100644
--- a/app/javascript/dashboard/i18n/locale/ur/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/ur/automation.json b/app/javascript/dashboard/i18n/locale/ur/automation.json
index 0c1f76d5b..de73db65d 100644
--- a/app/javascript/dashboard/i18n/locale/ur/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ur/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "نام",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "عمل"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/ur/bulkActions.json b/app/javascript/dashboard/i18n/locale/ur/bulkActions.json
index 062627b3b..97fcff0f8 100644
--- a/app/javascript/dashboard/i18n/locale/ur/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ur/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "کوئی لیبل نہیں ملے",
diff --git a/app/javascript/dashboard/i18n/locale/ur/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ur/cannedMgmt.json
index 6fab2bc83..54e02b3ec 100644
--- a/app/javascript/dashboard/i18n/locale/ur/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "محفوظ کردہ جوابات",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "اس اکاؤنٹ میں کوئی محفوظ کردہ جوابات دستیاب نہیں ہیں۔.",
diff --git a/app/javascript/dashboard/i18n/locale/ur/chatlist.json b/app/javascript/dashboard/i18n/locale/ur/chatlist.json
index d281f2b5b..230e94c09 100644
--- a/app/javascript/dashboard/i18n/locale/ur/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ur/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ur/contact.json b/app/javascript/dashboard/i18n/locale/ur/contact.json
index d9dd90452..3cc58afbc 100644
--- a/app/javascript/dashboard/i18n/locale/ur/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ur/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "کوئی کانٹیکٹ آپ کی تلاش سے میل نہیں کھاتا 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "کو:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "مضمون :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/ur/conversation.json b/app/javascript/dashboard/i18n/locale/ur/conversation.json
index b41b1d4b4..f64d50e02 100644
--- a/app/javascript/dashboard/i18n/locale/ur/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ur/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "پیغام کامیابی سے حذف ہو گیا۔",
"FAIL_DELETE_MESSSAGE": "پیغام کو حذف نہیں کیا جا سکا! دوبارہ کوشش کریں",
"NO_RESPONSE": "کوئی ردعمل نہیں",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "منسوخ کریں۔",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/ur/customRole.json b/app/javascript/dashboard/i18n/locale/ur/customRole.json
index 8c05b19d9..8bf0184bf 100644
--- a/app/javascript/dashboard/i18n/locale/ur/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/ur/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/ur/datePicker.json b/app/javascript/dashboard/i18n/locale/ur/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/ur/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/ur/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur/general.json b/app/javascript/dashboard/i18n/locale/ur/general.json
index fc2df0662..63638c2f0 100644
--- a/app/javascript/dashboard/i18n/locale/ur/general.json
+++ b/app/javascript/dashboard/i18n/locale/ur/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur/generalSettings.json b/app/javascript/dashboard/i18n/locale/ur/generalSettings.json
index c7e3f67f4..cd66cbf13 100644
--- a/app/javascript/dashboard/i18n/locale/ur/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ur/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/ur/helpCenter.json b/app/javascript/dashboard/i18n/locale/ur/helpCenter.json
index 962efbf1d..40fd85e57 100644
--- a/app/javascript/dashboard/i18n/locale/ur/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ur/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json
index a74d2cefb..8a4655dd8 100644
--- a/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "منسوخ کریں۔",
+ "CONFIRM_DELETE": "حذف کریں۔",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
diff --git a/app/javascript/dashboard/i18n/locale/ur/integrationApps.json b/app/javascript/dashboard/i18n/locale/ur/integrationApps.json
index 83565e5d1..0bd8cb500 100644
--- a/app/javascript/dashboard/i18n/locale/ur/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ur/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "ان باکس",
+ "ACTIONS": "عمل",
"DELETE": {
"BUTTON_TEXT": "حذف کریں۔"
}
diff --git a/app/javascript/dashboard/i18n/locale/ur/integrations.json b/app/javascript/dashboard/i18n/locale/ur/integrations.json
index ba9130a1d..312b2a596 100644
--- a/app/javascript/dashboard/i18n/locale/ur/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ur/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "منسوخ کریں۔",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "حذف کریں۔",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "نام",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "عمل"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/ur/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ur/labelsMgmt.json
index e30dd2a12..835813e74 100644
--- a/app/javascript/dashboard/i18n/locale/ur/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "اس سوال سے مماثل کوئی آئٹمز نہیں ہیں۔",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "نام",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "عمل"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ur/macros.json b/app/javascript/dashboard/i18n/locale/ur/macros.json
index 55ced796f..28c8be2ac 100644
--- a/app/javascript/dashboard/i18n/locale/ur/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ur/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "نام",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "عمل"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/ur/mfa.json b/app/javascript/dashboard/i18n/locale/ur/mfa.json
index c50b628aa..6baa463e0 100644
--- a/app/javascript/dashboard/i18n/locale/ur/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/ur/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/ur/report.json b/app/javascript/dashboard/i18n/locale/ur/report.json
index a4c1fb9b3..a19661e1d 100644
--- a/app/javascript/dashboard/i18n/locale/ur/report.json
+++ b/app/javascript/dashboard/i18n/locale/ur/report.json
@@ -3,7 +3,7 @@
"HEADER": "مکالمات",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "ایجنٹوں کو تلاش کریں۔"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "مکالمات",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "لیبل تلاش کریں۔"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "مکالمات",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "مکالمات",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "ٹیمیں تلاش کریں۔"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "مکالمات",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "ایجنٹوں کو تلاش کریں۔",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "ٹیمیں تلاش کریں۔",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "ایجنٹ"
+ },
+ "INBOXES": {
+ "LABEL": "ان باکس"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "درجہ بندی"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "ایجنٹ",
"RATING": "درجہ بندی",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "منسوخ کریں۔",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/ur/settings.json b/app/javascript/dashboard/i18n/locale/ur/settings.json
index 8f81d94fc..677dd3f20 100644
--- a/app/javascript/dashboard/i18n/locale/ur/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ur/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "ڈاؤن لوڈ کریں",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "منسوخ کریں۔"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "منسوخ کریں۔"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ur/signup.json b/app/javascript/dashboard/i18n/locale/ur/signup.json
index b0e5f5d27..4a90fd322 100644
--- a/app/javascript/dashboard/i18n/locale/ur/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ur/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/ur/sla.json b/app/javascript/dashboard/i18n/locale/ur/sla.json
index d0aff30d6..fd6b3ef0d 100644
--- a/app/javascript/dashboard/i18n/locale/ur/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ur/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/ur/snooze.json b/app/javascript/dashboard/i18n/locale/ur/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ur/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ur/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ur/teamsSettings.json
index e152e206e..df4b42faf 100644
--- a/app/javascript/dashboard/i18n/locale/ur/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ur/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "ای میل",
+ "AGENT": "ایجنٹ",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/agentBots.json b/app/javascript/dashboard/i18n/locale/ur_IN/agentBots.json
index d3a0bb991..dc92016ab 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ur_IN/agentMgmt.json
index 448994e69..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ur_IN/attributesMgmt.json
index 78886f451..e83950b14 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching custom attributes",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Conversation",
"CONTACT": "Contact"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/automation.json b/app/javascript/dashboard/i18n/locale/ur_IN/automation.json
index 43245a1d5..22a9735f4 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Automation",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Name",
- "DESCRIPTION": "Description",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Open conversation"
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/bulkActions.json b/app/javascript/dashboard/i18n/locale/ur_IN/bulkActions.json
index 0c8d6602c..d736201de 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "No labels found",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ur_IN/cannedMgmt.json
index 3ff246f06..246d3f5b3 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Canned Responses",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
"LIST": {
"404": "There are no canned responses available in this account.",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/chatlist.json b/app/javascript/dashboard/i18n/locale/ur_IN/chatlist.json
index 92e67635b..0e8e87a04 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/contact.json b/app/javascript/dashboard/i18n/locale/ur_IN/contact.json
index 8e9d1dec9..48d45d737 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Subject :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json b/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json
index 59ad61c1d..7b7e325ab 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/customRole.json b/app/javascript/dashboard/i18n/locale/ur_IN/customRole.json
index b7b48b5e7..f7c1709bd 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "There are no items matching this query.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/datePicker.json b/app/javascript/dashboard/i18n/locale/ur_IN/datePicker.json
index c7ef06880..95d304cc6 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Apply",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Custom date range"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/general.json b/app/javascript/dashboard/i18n/locale/ur_IN/general.json
index 283cf79c4..bdc7cb8a4 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/general.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Close",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/generalSettings.json b/app/javascript/dashboard/i18n/locale/ur_IN/generalSettings.json
index d924bffbd..fab8020e2 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/helpCenter.json b/app/javascript/dashboard/i18n/locale/ur_IN/helpCenter.json
index 0ab8d62ff..69a72f163 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json
index 0eee718fe..74d3e2fb6 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Inboxes",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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",
@@ -694,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",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Go back"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/integrationApps.json b/app/javascript/dashboard/i18n/locale/ur_IN/integrationApps.json
index b91b434f7..828f4ea67 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json b/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json
index 983953180..a1ce02d11 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "Name",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
},
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ur_IN/labelsMgmt.json
index 705b18d0e..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching labels",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
"LIST": {
"404": "There are no labels available in this account.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Name",
"DESCRIPTION": "Description",
- "COLOR": "Color"
+ "COLOR": "Color",
+ "ACTION": "Actions"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/macros.json b/app/javascript/dashboard/i18n/locale/ur_IN/macros.json
index fcb409f34..e12f0ca73 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Name",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/mfa.json b/app/javascript/dashboard/i18n/locale/ur_IN/mfa.json
index f7556fdcf..b03917bcd 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/report.json b/app/javascript/dashboard/i18n/locale/ur_IN/report.json
index a2ad6bd4a..45c40de58 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/report.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Select Inbox",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/settings.json b/app/javascript/dashboard/i18n/locale/ur_IN/settings.json
index 6b94a34f1..805ffee46 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "New Account",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Cancel"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/signup.json b/app/javascript/dashboard/i18n/locale/ur_IN/signup.json
index b0e5f5d27..4a90fd322 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/sla.json b/app/javascript/dashboard/i18n/locale/ur_IN/sla.json
index 0da7873be..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/snooze.json b/app/javascript/dashboard/i18n/locale/ur_IN/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ur_IN/teamsSettings.json
index f0a950fd1..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "Edit team",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
diff --git a/app/javascript/dashboard/i18n/locale/vi/agentBots.json b/app/javascript/dashboard/i18n/locale/vi/agentBots.json
index a001515bf..ca79b51f0 100644
--- a/app/javascript/dashboard/i18n/locale/vi/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/vi/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "Loading editor...",
"DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "System bot",
"GLOBAL_BOT_BADGE": "System",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "Fetching bots...",
"TABLE_HEADER": {
"DETAILS": "Bot Details",
- "URL": "Webhook URL"
+ "URL": "Webhook URL",
+ "ACTIONS": "Hành động"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/vi/agentMgmt.json b/app/javascript/dashboard/i18n/locale/vi/agentMgmt.json
index a16af3dd1..903ae793c 100644
--- a/app/javascript/dashboard/i18n/locale/vi/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/vi/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "Quản trị viên",
"AGENT": "Nhà cung cấp"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Không có tác nhân nào được liên kết với tài khoản này",
"TITLE": "Quản lý các đại lý trong nhóm của bạn",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "Không thể kết nối với Máy chủ Woot, Vui lòng thử lại sau"
}
},
+ "SEARCH_PLACEHOLDER": "Tìm kiếm nhân viên...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Không tìm thấy kết quả."
},
diff --git a/app/javascript/dashboard/i18n/locale/vi/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/vi/attributesMgmt.json
index 8b062941b..edfeb4114 100644
--- a/app/javascript/dashboard/i18n/locale/vi/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/vi/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Đang lấy thuộc tính tuỳ chỉnh",
"DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Tìm kiếm nhiều thuộc tính...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "Cuộc hội thoại",
"CONTACT": "Liên hệ"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/vi/automation.json b/app/javascript/dashboard/i18n/locale/vi/automation.json
index 765ab9ede..29fec4d71 100644
--- a/app/javascript/dashboard/i18n/locale/vi/automation.json
+++ b/app/javascript/dashboard/i18n/locale/vi/automation.json
@@ -3,8 +3,11 @@
"HEADER": "Tự động hoá",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "Thêm luật Tự động hoá",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Đang lấy luật tự động hoá",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Thêm Quy tắc Tự động hoá",
"SUBMIT": "Tạo",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "Tên",
- "DESCRIPTION": "Mô tả",
"ACTIVE": "Có hiệu lực",
- "CREATED_ON": "Được tạo trên"
+ "CREATED_ON": "Được tạo trên",
+ "ACTIONS": "Hành động"
},
"404": "Không tìm thấy luật tự động hoá"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "Mở cuộc trò chuyện"
+ "OPEN_CONVERSATION": "Mở cuộc trò chuyện",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/vi/bulkActions.json b/app/javascript/dashboard/i18n/locale/vi/bulkActions.json
index b7c34ab22..03c53ad4f 100644
--- a/app/javascript/dashboard/i18n/locale/vi/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/vi/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "Đã cập nhật trạng thái cuộc hội thoại thành công.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
"NO_LABELS_FOUND": "Không tìm thấy nhãn",
diff --git a/app/javascript/dashboard/i18n/locale/vi/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/vi/cannedMgmt.json
index 2aecf39b1..315f9b79f 100644
--- a/app/javascript/dashboard/i18n/locale/vi/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/vi/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "Thư mẫu phẩn hồi",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Không có kết quả nào phù hợp.",
"LIST": {
"404": "Không có câu trả lời soạn trước nào có sẵn trong tài khoản này.",
diff --git a/app/javascript/dashboard/i18n/locale/vi/chatlist.json b/app/javascript/dashboard/i18n/locale/vi/chatlist.json
index 25e254b14..394fe6089 100644
--- a/app/javascript/dashboard/i18n/locale/vi/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/vi/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/vi/contact.json b/app/javascript/dashboard/i18n/locale/vi/contact.json
index b5dc3909c..a863a3903 100644
--- a/app/javascript/dashboard/i18n/locale/vi/contact.json
+++ b/app/javascript/dashboard/i18n/locale/vi/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "Không có liên hệ nào khớp với tìm kiếm của bạn 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Gán nhãn",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Đến:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "Chủ đề :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/vi/conversation.json b/app/javascript/dashboard/i18n/locale/vi/conversation.json
index c28dba1e9..fb375f6d2 100644
--- a/app/javascript/dashboard/i18n/locale/vi/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/vi/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "Tin nhắn được xoá thành công",
"FAIL_DELETE_MESSSAGE": "Không thể xoá tin nhắn! Thử lại",
"NO_RESPONSE": "Không có phản hồi",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Không thể gán nhãn. Vui lòng thử lại."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Đã gán nhóm \"{team}\" cho hội thoại id {conversationId}",
"FAILED": "Không thể gán nhóm. Vui lòng thử lại."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Tắt chữ ký",
"MSG_INPUT": "Shift + enter cho dòng mới. Bắt đầu với '/' để chọn Câu trả lời soạn trước.",
"PRIVATE_MSG_INPUT": "Shift + enter cho dòng mới. Điều này sẽ chỉ hiển thị cho Đại lý",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Chứ ký cuối tin nhắn chưa được cài đặt, xin hãy cài đặt một chữ ký trong phần cài đặt hồ sơ.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Bấm vào đây để cập nhật",
"WHATSAPP_TEMPLATES": "Mẫu Whatsapp"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Kéo thả vào đây để đính kèm",
"START_AUDIO_RECORDING": "Bắt đầu ghi âm",
"STOP_AUDIO_RECORDING": "Dừng ghi âm",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Thêm bcc",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Tệp vượt quá {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB mức hạn chế",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Không thể gửi tin nhắn này, vui lòng thử lại sau",
"SENT_BY": "Gửi bởi:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Không thể gửi tin nhắn! Thử lại",
"TRY_AGAIN": "thử lại",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "Huỷ",
"SEND_EMAIL_SUCCESS": "Bản ghi cuộc trò chuyện đã được gửi thành công",
"SEND_EMAIL_ERROR": "Có lỗi, xin vui lòng thử lại",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Gửi bảng điểm cho khách hàng",
"SEND_TO_AGENT": "Gửi bản ghi cho tổng đài viên được phân công",
diff --git a/app/javascript/dashboard/i18n/locale/vi/customRole.json b/app/javascript/dashboard/i18n/locale/vi/customRole.json
index 49b51fbbb..8c0adecd1 100644
--- a/app/javascript/dashboard/i18n/locale/vi/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/vi/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "Không có kết quả nào phù hợp.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/vi/datePicker.json b/app/javascript/dashboard/i18n/locale/vi/datePicker.json
index df325a8ea..7d058f877 100644
--- a/app/javascript/dashboard/i18n/locale/vi/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/vi/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "Áp dụng",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "3 tháng vừa qua",
"LAST_6_MONTHS": "6 tháng vừa qua",
"LAST_YEAR": "Năm ngoái",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "Phạm vi ngày tùy chỉnh"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/vi/general.json b/app/javascript/dashboard/i18n/locale/vi/general.json
index 47c220681..159c26f4c 100644
--- a/app/javascript/dashboard/i18n/locale/vi/general.json
+++ b/app/javascript/dashboard/i18n/locale/vi/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "Đóng",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Có",
+ "NO": "Không"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/vi/generalSettings.json b/app/javascript/dashboard/i18n/locale/vi/generalSettings.json
index 9b87085b0..3edc2d8b2 100644
--- a/app/javascript/dashboard/i18n/locale/vi/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/vi/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Tìm kiếm hoặc nhảy đến",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Chung",
"REPORTS": "Báo cáo",
diff --git a/app/javascript/dashboard/i18n/locale/vi/helpCenter.json b/app/javascript/dashboard/i18n/locale/vi/helpCenter.json
index c9cf12333..d11cd7f29 100644
--- a/app/javascript/dashboard/i18n/locale/vi/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/vi/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "Lỗi khi xóa bài viết"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Vui lòng thêm tiêu đề và nội dung bài viết sau đó mới có thể cập nhật cài đặt"
},
diff --git a/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json
index e6c00a4ed..25bcc7e4b 100644
--- a/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "Hộp thư đến",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "Không bật"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Bật",
- "DISABLED": "Không bật"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Bật"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "CSAT"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,6 +685,16 @@
"SANDBOX": "Sandbox",
"LIVE": "Trực tuyến"
}
+ },
+ "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": "Cài đặt",
@@ -694,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": "Nhà cung cấp",
"INBOX_AGENTS_SUB_TEXT": "Thêm hoặc xóa tác nhân khỏi hộp thư đến này",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Bật tiếp tục cuộc trò chuyện qua email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Cuộc trò chuyện sẽ tiếp tục qua email nếu có địa chỉ email liên lạc.",
- "LOCK_TO_SINGLE_CONVERSATION": "Khóa cuộc trò chuyện duy nhất",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Bật hoặc tắt nhiều cuộc trò chuyện cho cùng một liên hệ trong hộp thư đến này",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Cài đặt Hộp thư đến",
"INBOX_UPDATE_SUB_TEXT": "Cập nhật cài đặt hộp thư đến của bạn",
"AUTO_ASSIGNMENT_SUB_TEXT": "Bật hoặc tắt tính năng tự động gán các cuộc hội thoại mới cho các tác nhân được thêm vào hộp thư đến này.",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "Không có",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Xin nhập vào một số lớn hơn 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Giới hạn số cuộc trò chuyện tối đa từ hộp thư này mà có thể được tự động phân công cho một hỗ trợ viên"
},
+ "ASSIGNMENT": {
+ "TITLE": "Phân công cuộc trò chuyện",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Có hiệu lực",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Huỷ",
+ "CONFIRM_DELETE": "Xoá",
+ "DELETE_SUCCESS": "Đã xóa chính sách phân công thành công",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Ủy quyền lại",
"SUBTITLE": "Kết nối Facebook của bạn đã hết hạn, vui lòng kết nối lại trang Facebook của bạn để tiếp tục dịch vụ",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "Trở về"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Thông báo không có sẵn cho khách truy cập",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Ngày",
+ "AVAILABILITY": "Khả dụng",
+ "HOURS": "Hours",
"ENABLE": "Kích hoạt tính khả dụng cho hôm nay",
"UNAVAILABLE": "Không có sẵn",
- "HOURS": "giờ",
"VALIDATION_ERROR": "Giờ bắt đầu nên trước giờ đóng cửa.",
"CHOOSE": "Chọn"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "Trong một ngày"
},
"WIDGET_COLOR_LABEL": "Màu tiện ích",
- "WIDGET_BUBBLE_POSITION_LABEL": "Vị trí bong bóng widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "Kiểu bong bóng widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Kiểu:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Trò chuyện với chúng tôi",
- "LABEL": "Tiêu đề trình khởi chạy bong bóng widget",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Trò chuyện với chúng tôi"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Mặc định",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Thường trả lời sau vài phút",
diff --git a/app/javascript/dashboard/i18n/locale/vi/integrationApps.json b/app/javascript/dashboard/i18n/locale/vi/integrationApps.json
index f4dd0ca96..fede38884 100644
--- a/app/javascript/dashboard/i18n/locale/vi/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/vi/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Đang lấy Tích hợp",
"NO_HOOK_CONFIGURED": "Không có tích hợp {integrationId} được cấu hình đối với tài khoản này.",
"HEADER": "Ứng dụng",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Bật",
"DISABLED": "Không bật"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Đang lấy hook tích hợp",
"INBOX": "Hộp thư đến",
+ "ACTIONS": "Hành động",
"DELETE": {
"BUTTON_TEXT": "Xoá"
}
diff --git a/app/javascript/dashboard/i18n/locale/vi/integrations.json b/app/javascript/dashboard/i18n/locale/vi/integrations.json
index 2caf8e3ee..74b55ffef 100644
--- a/app/javascript/dashboard/i18n/locale/vi/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/vi/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Những sự kiện được theo dõi",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Huỷ",
"DESC": "Webhook events cung cấp cho bạn thông tin thời gian thực về những gì đang xảy ra trong tài khoản Chatwoot của bạn. Vui lòng nhập một URL hợp lệ để định cấu hình một cuộc gọi lại.",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Xoá",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Ứng dụng trên bảng điều khiển
Ứng dụng bảng điều khiển cho phép nhúng ứng dụng vào trang bảng điều khiển để cung cấp ngữ cảnh cho các tổng đài viên hỗ trợ khách hàng. Tính năng này cho phép bạn tạo ứng dụng một cách độc lập và nhúng ứng dụng đó vào bên trong trang điều khiển để cung cấp thông tin người dùng, đơn đặt hàng hoặc lịch sử thanh toán trước đó của họ.
Khi bạn nhúng ứng dụng của mình bằng điều khiển, ứng dụng của bạn sẽ lấy bối cảnh của cuộc trò chuyện và liên hệ dưới dạng sự kiện cửa sổ. Triển khai trình nghe cho sự kiện thông báo trên trang của bạn để nhận ngữ cảnh.
Để thêm ứng dụng trang điều khiển mới, hãy nhấp vào nút 'Thêm ứng dụng bảng điều khiển mới'.
",
"DESCRIPTION": "Ứng dụng bảng điều khiển cho phép các tổ chức nhúng một ứng dụng bên trong trang điều khiển để cung cấp ngữ cảnh cho các tổng đài viên hỗ trợ khách hàng. Tính năng này cho phép bạn tạo ứng dụng một cách độc lập và nhúng ứng dụng đó để cung cấp thông tin người dùng, đơn đặt hàng hoặc lịch sử thanh toán trước đó của họ.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Chưa có ứng dụng trang \u001dđiều khiển nào được định cấu hình trên tài khoản này",
"LOADING": "Đang tìm nạp ứng dụng bảng điều khiển...",
"TABLE_HEADER": {
"NAME": "Tên",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Hành động"
},
"EDIT_TOOLTIP": "Sửa app",
"DELETE_TOOLTIP": "Xoá app"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/vi/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/vi/labelsMgmt.json
index 5252881a5..683d5a141 100644
--- a/app/javascript/dashboard/i18n/locale/vi/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/vi/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "Tải về các nhãn",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Tìm nhãn...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Không có kết quả nào phù hợp",
"LIST": {
"404": "Không có nhãn nào có sẵn trong tài khoản này.",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "Tên",
"DESCRIPTION": "Mô tả",
- "COLOR": "Màu sắc"
+ "COLOR": "Màu sắc",
+ "ACTION": "Hành động"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/vi/macros.json b/app/javascript/dashboard/i18n/locale/vi/macros.json
index 4f582d211..55a77ea23 100644
--- a/app/javascript/dashboard/i18n/locale/vi/macros.json
+++ b/app/javascript/dashboard/i18n/locale/vi/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macro sẽ chạy theo thứ tự hành động của bạn. Bạn có thể sắp xếp lại chúng bằng cách kéo chúng bằng tay cầm bên cạnh mỗi nút.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "Tên",
"CREATED BY": "Tạo bởi",
"LAST_UPDATED_BY": "Cập nhật lần cuối bởi",
- "VISIBILITY": "Hiển thị"
+ "VISIBILITY": "Hiển thị",
+ "ACTIONS": "Hành động"
},
"404": "Không tìm thấy macro"
},
diff --git a/app/javascript/dashboard/i18n/locale/vi/mfa.json b/app/javascript/dashboard/i18n/locale/vi/mfa.json
index 31e4b8c52..a8aedc53f 100644
--- a/app/javascript/dashboard/i18n/locale/vi/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/vi/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/vi/report.json b/app/javascript/dashboard/i18n/locale/vi/report.json
index 69b10453e..2db342d1c 100644
--- a/app/javascript/dashboard/i18n/locale/vi/report.json
+++ b/app/javascript/dashboard/i18n/locale/vi/report.json
@@ -3,7 +3,7 @@
"HEADER": "Các cuộc hội thoại",
"LOADING_CHART": "Đang tải các biểu đồ dữ liệu...",
"NO_ENOUGH_DATA": "Chúng tôi không nhận được đủ điểm dữ liệu để tạo báo cáo, Vui lòng thử lại sau.",
- "DOWNLOAD_AGENT_REPORTS": "Tải xuống báo cáo tổng đài viên",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "Tổng quan đại lý",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Đang tải các biểu đồ dữ liệu...",
"NO_ENOUGH_DATA": "Chúng tôi không nhận được đủ điểm dữ liệu để tạo báo cáo, Vui lòng thử lại sau.",
"DOWNLOAD_AGENT_REPORTS": "Tải xuống báo cáo đại lý",
"FILTER_DROPDOWN_LABEL": "Chọn đại lý",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Tìm kiếm nhân viên"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Các cuộc hội thoại",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "Chúng tôi không nhận được đủ điểm dữ liệu để tạo báo cáo, Vui lòng thử lại sau.",
"DOWNLOAD_LABEL_REPORTS": "Tải xuống báo cáo nhãn",
"FILTER_DROPDOWN_LABEL": "Chọn Nhãn",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Tìm nhãn"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Các cuộc hội thoại",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "Chọn Hộp thư đến",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Các cuộc hội thoại",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Tổng quan nhóm",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Đang tải các biểu đồ dữ liệu...",
"NO_ENOUGH_DATA": "Chúng tôi không nhận được đủ điểm dữ liệu để tạo báo cáo, Vui lòng thử lại sau.",
"DOWNLOAD_TEAM_REPORTS": "Tải xuống báo cáo nhóm",
"FILTER_DROPDOWN_LABEL": "Chọn nhóm",
+ "FILTERS": {
+ "ADD_FILTER": "Thêm bộ lọc",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Tìm kiếm nhóm"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Các cuộc hội thoại",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Báo cáo CSAT",
- "NO_RECORDS": "Không có phản hồi báo cáo CSAT có sẵn.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Tải về các báo cáo CSAT",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Thêm bộ lọc",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Tìm kiếm nhân viên",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Tìm kiếm nhóm",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Chọn tổng đài viên"
+ "LABEL": "Nhà cung cấp"
+ },
+ "INBOXES": {
+ "LABEL": "Hộp thư đến"
+ },
+ "TEAMS": {
+ "LABEL": "Nhóm"
+ },
+ "RATINGS": {
+ "LABEL": "Đánh giá"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Liên hệ",
- "AGENT_NAME": "Đại lý được phân công",
+ "AGENT_NAME": "Nhà cung cấp",
"RATING": "Đánh giá",
- "FEEDBACK_TEXT": "Bình luận phản hồi"
- }
+ "FEEDBACK_TEXT": "Bình luận phản hồi",
+ "CONVERSATION": "Cuộc hội thoại",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Tổng số phản hồi",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Tỷ lệ phản hồi",
"TOOLTIP": "Tổng số phản hồi / Tổng số tin nhắn khảo sát CSAT đã gửi * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Huỷ",
+ "SAVING": "Đang lưu...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/vi/settings.json b/app/javascript/dashboard/i18n/locale/vi/settings.json
index b80603de7..964ce4642 100644
--- a/app/javascript/dashboard/i18n/locale/vi/settings.json
+++ b/app/javascript/dashboard/i18n/locale/vi/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Tải xuống",
"UPLOADING": "Đang tải lên...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Hội thoại này không còn nữa."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Hội thoại này không còn nữa.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Xem trên bản đồ"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Đọc tài liệu",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Các tính năng",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Phí",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Tìm kiếm nhiều thuộc tính"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Giải quyết hội thoại",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Giải quyết hội thoại",
+ "CANCEL": "Huỷ"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Có",
+ "NO": "Không"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Ồ ồ! Chúng tôi không thể tìm thấy bất kỳ tài khoản Chatwoot nào. Vui lòng tạo một tài khoản mới để tiếp tục.",
"NEW_ACCOUNT": "Tạo mới tài khoản",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "Huỷ"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/vi/signup.json b/app/javascript/dashboard/i18n/locale/vi/signup.json
index 88739fc4f..1938b8170 100644
--- a/app/javascript/dashboard/i18n/locale/vi/signup.json
+++ b/app/javascript/dashboard/i18n/locale/vi/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Đăng kí",
"TESTIMONIAL_HEADER": "Tất cả chỉ cần một bước để tiến về phía trước",
"TESTIMONIAL_CONTENT": "Bạn chỉ còn một bước nữa là có thể thu hút khách hàng của mình, giữ chân họ và tìm kiếm những khách hàng mới.",
diff --git a/app/javascript/dashboard/i18n/locale/vi/sla.json b/app/javascript/dashboard/i18n/locale/vi/sla.json
index 7f9f58716..594d189fd 100644
--- a/app/javascript/dashboard/i18n/locale/vi/sla.json
+++ b/app/javascript/dashboard/i18n/locale/vi/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/vi/snooze.json b/app/javascript/dashboard/i18n/locale/vi/snooze.json
new file mode 100644
index 000000000..fcbc446c7
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/vi/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "giờ",
+ "DAY": "ngày",
+ "DAYS": "days",
+ "WEEK": "ngày",
+ "WEEKS": "weeks",
+ "MONTH": "tuần",
+ "MONTHS": "months",
+ "YEAR": "tháng",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "ngày mai",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "tuần sau",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "của",
+ "AFTER": "after",
+ "WEEK": "ngày",
+ "DAY": "ngày"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/vi/teamsSettings.json b/app/javascript/dashboard/i18n/locale/vi/teamsSettings.json
index 19e068049..84e1c066c 100644
--- a/app/javascript/dashboard/i18n/locale/vi/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/vi/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Tìm kiếm nhóm...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Không có nhóm nào được tạo đối với tài khoản này.",
"EDIT_TEAM": "Sửa nhóm",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "Không thể lưu chi tiết nhóm. Thử lại."
},
"AGENTS": {
- "AGENT": "ĐẠI LÝ",
- "EMAIL": "EMAIL",
+ "AGENT": "Nhà cung cấp",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Thêm các nhà cung cấp",
"ADD_AGENTS": "Thêm đại lý vào nhóm của bạn...",
"SELECT": "chọn",
diff --git a/app/javascript/dashboard/i18n/locale/zh/agentMgmt.json b/app/javascript/dashboard/i18n/locale/zh/agentMgmt.json
index 2b2358c9a..bc1e290ee 100644
--- a/app/javascript/dashboard/i18n/locale/zh/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh/agentMgmt.json
@@ -1,96 +1,127 @@
{
"AGENT_MGMT": {
- "HEADER": "Agents",
- "HEADER_BTN_TXT": "Add Agent",
- "LOADING": "Fetching Agent List",
- "SIDEBAR_TXT": "
Agents
An Agent is a member of your Customer Support team.
Agents will be able to view and reply to messages from your users. The list shows all agents currently in your account.
Click on Add Agent to add a new agent. Agent you add will receive an email with a confirmation link to activate their account, after which they can access Chatwoot and respond to messages.
Access to Chatwoot's features are based on following roles.
Agent - Agents with this role can only access inboxes, reports and conversations. They can assign conversations to other agents or themselves and resolve conversations.
Administrator - Administrator will have access to all Chatwoot features enabled for your account, including settings, along with all of a normal agents' privileges.
",
+ "HEADER": "客服",
+ "HEADER_BTN_TXT": "添加客服",
+ "LOADING": "正在获取客服列表",
+ "DESCRIPTION": "客服代表是您的客户支持团队的成员,他们可以查看和回复用户信息。 下面的列表显示您帐户中的所有客服代表。",
+ "LEARN_MORE": "角色说明",
"AGENT_TYPES": {
- "ADMINISTRATOR": "Administrator",
- "AGENT": "Agent"
+ "ADMINISTRATOR": "管理员",
+ "AGENT": "客服"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
- "404": "There are no agents associated to this account",
- "TITLE": "Manage agents in your team",
- "DESC": "You can add/remove agents to/in your team.",
- "NAME": "Name",
- "EMAIL": "EMAIL",
- "STATUS": "Status",
- "ACTIONS": "Actions",
- "VERIFIED": "Verified",
- "VERIFICATION_PENDING": "Verification Pending"
+ "404": "此账号没有关联客服",
+ "TITLE": "管理您团队中的客服",
+ "DESC": "您可以添加/移除您团队中的客服。",
+ "NAME": "姓名:",
+ "EMAIL": "电子邮件",
+ "STATUS": "状态",
+ "ACTIONS": "操作",
+ "VERIFIED": "已认证",
+ "VERIFICATION_PENDING": "待验证",
+ "AVAILABLE_CUSTOM_ROLE": "可自定义角色权限"
},
"ADD": {
- "TITLE": "Add agent to your team",
- "DESC": "You can add people who will be able to handle support for your inboxes.",
- "CANCEL_BUTTON_TEXT": "Cancel",
+ "TITLE": "添加客服至您的团队",
+ "DESC": "您可以添加能够处理支持您的收件箱的人。",
+ "CANCEL_BUTTON_TEXT": "取消",
"FORM": {
"NAME": {
- "LABEL": "Agent Name",
- "PLACEHOLDER": "Please enter a name of the agent"
+ "LABEL": "客服名称",
+ "PLACEHOLDER": "请输入客服名称"
},
"AGENT_TYPE": {
- "LABEL": "Agent Type",
- "PLACEHOLDER": "Please select a type",
- "ERROR": "Agent type is required"
+ "LABEL": "角色",
+ "PLACEHOLDER": "请选择一个角色",
+ "ERROR": "角色类型必填"
},
"EMAIL": {
- "LABEL": "Email Address",
- "PLACEHOLDER": "Please enter an email address of the agent"
+ "LABEL": "电子邮件地址",
+ "PLACEHOLDER": "请输入客服的邮箱地址"
},
- "SUBMIT": "Add Agent"
+ "SUBMIT": "添加客服"
},
"API": {
- "SUCCESS_MESSAGE": "Agent added successfully",
- "EXIST_MESSAGE": "Agent email already in use, Please try another email address",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "添加客服成功",
+ "EXIST_MESSAGE": "该邮箱已被注册,请输入新的电子邮箱",
+ "ERROR_MESSAGE": "无法连接服务器,请稍后再试"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "删除",
"API": {
- "SUCCESS_MESSAGE": "Agent deleted successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "删除客服成功",
+ "ERROR_MESSAGE": "无法连接服务器,请稍后再试"
},
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete ",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "TITLE": "确认删除",
+ "MESSAGE": "您确定要删除吗? ",
+ "YES": "是的,删除 ",
+ "NO": "不,保留 "
}
},
"EDIT": {
- "TITLE": "Edit agent",
+ "TITLE": "编辑客服信息",
"FORM": {
"NAME": {
- "LABEL": "Agent Name",
- "PLACEHOLDER": "Please enter a name of the agent"
+ "LABEL": "客服名称",
+ "PLACEHOLDER": "请输入客服名称"
},
"AGENT_TYPE": {
- "LABEL": "Agent Type",
- "PLACEHOLDER": "Please select a type",
- "ERROR": "Agent type is required"
+ "LABEL": "角色",
+ "PLACEHOLDER": "请选择一个角色",
+ "ERROR": "角色必填"
},
"EMAIL": {
- "LABEL": "Email Address",
- "PLACEHOLDER": "Please enter an email address of the agent"
+ "LABEL": "电子邮件地址",
+ "PLACEHOLDER": "请输入客服的邮箱地址"
},
- "SUBMIT": "Edit Agent"
+ "AGENT_AVAILABILITY": {
+ "LABEL": "有效的",
+ "PLACEHOLDER": "请选择一个可用状态",
+ "ERROR": "需要提供可用性信息"
+ },
+ "SUBMIT": "编辑客服"
},
- "BUTTON_TEXT": "Edit",
- "CANCEL_BUTTON_TEXT": "Cancel",
+ "BUTTON_TEXT": "编辑",
+ "CANCEL_BUTTON_TEXT": "取消",
"API": {
- "SUCCESS_MESSAGE": "Agent updated successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "更新客服信息成功",
+ "ERROR_MESSAGE": "无法连接服务器,请稍后再试"
},
"PASSWORD_RESET": {
- "ADMIN_RESET_BUTTON": "Reset Password",
- "ADMIN_SUCCESS_MESSAGE": "An email with reset password instructions has been sent to the agent",
- "SUCCESS_MESSAGE": "Agent password reset successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "ADMIN_RESET_BUTTON": "重置密码",
+ "ADMIN_SUCCESS_MESSAGE": "一封包含重置密码说明的电子邮件已发送给代理",
+ "SUCCESS_MESSAGE": "代理的密码重置成功",
+ "ERROR_MESSAGE": "无法连接Woot服务器,请稍后再试"
}
},
+ "SEARCH_PLACEHOLDER": "搜索客服代表...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
- "NO_RESULTS": "No agents found."
+ "NO_RESULTS": "未找到任何结果。"
+ },
+ "MULTI_SELECTOR": {
+ "PLACEHOLDER": "没有",
+ "TITLE": {
+ "AGENT": "选择客服代表",
+ "TEAM": "选择团队"
+ },
+ "LIST": {
+ "NONE": "无"
+ },
+ "SEARCH": {
+ "NO_RESULTS": {
+ "AGENT": "未找到客服代表",
+ "TEAM": "没有找到团队"
+ },
+ "PLACEHOLDER": {
+ "AGENT": "搜索客服代表",
+ "TEAM": "查找团队",
+ "INPUT": "查找客服代表"
+ }
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/zh/cannedMgmt.json
index dc9341a17..a9938b6f8 100644
--- a/app/javascript/dashboard/i18n/locale/zh/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh/cannedMgmt.json
@@ -1,40 +1,44 @@
{
"CANNED_MGMT": {
"HEADER": "预设回复",
- "HEADER_BTN_TXT": "添加预设回复",
- "LOADING": "获取预设回复",
- "SEARCH_404": "没有任何项目符合此查询",
- "SIDEBAR_TXT": "
预设回复
预设的回复已保存的回复模板,可以用来快速发送回复到对话。
若要创建预设反应,只需点击 添加预设回应。 您也可以通过点击编辑或删除按钮来编辑或删除现有的预定响应
在 短代码的帮助下使用预定的响应方式。 代理人在聊天时可以通过输入 '/' 然后是短代码访问预设响应
",
+ "LEARN_MORE": "了解更多关于预设回复的内容",
+ "DESCRIPTION": "预设回复是预先写好的回复模板,可以帮助您在对话中快速响应。客服人员可以在对话中输入“/”字符,然后输入简码来插入预设回复。 ",
+ "COUNT": "{n} canned response | {n} canned responses",
+ "HEADER_BTN_TXT": "新增预设回复",
+ "LOADING": "正在检索预定义回复...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
+ "SEARCH_404": "没有任何项目符合此查询.",
"LIST": {
"404": "此帐户中没有预设的回复。",
"TITLE": "管理预设回复",
- "DESC": "预设的回复是预定义的回复模板,可以用来快速发送对工单的答复。",
- "TABLE_HEADER": [
- "短码",
- "内容",
- "操作"
- ]
+ "DESC": "预设回复是预先定义的回复模板,可用于快速回复对话。",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "短代码",
+ "CONTENT": "内容",
+ "ACTIONS": "操作"
+ }
},
"ADD": {
- "TITLE": "添加预设回复",
- "DESC": "预设的回复是保存的回复模板,可以用来快速发送回复到对话中。",
+ "TITLE": "新增预设回复",
+ "DESC": "预设回复是预先定义的回复模板,可用于快速回复对话。",
"CANCEL_BUTTON_TEXT": "取消操作",
"FORM": {
"SHORT_CODE": {
- "LABEL": "短码",
- "PLACEHOLDER": "请输入短码",
- "ERROR": "必须输入短代码"
+ "LABEL": "短代码",
+ "PLACEHOLDER": "请输入短代码。",
+ "ERROR": "短代码是必填项。"
},
"CONTENT": {
- "LABEL": "内容",
- "PLACEHOLDER": "请输入内容。",
- "ERROR": "内容是必须的"
+ "LABEL": "消息",
+ "PLACEHOLDER": "请编写您希望保存为模板以便以后使用的消息。",
+ "ERROR": "请填写消息。"
},
"SUBMIT": "提交"
},
"API": {
- "SUCCESS_MESSAGE": "已成功添加预设响应",
- "ERROR_MESSAGE": "无法连接服务器,请稍后再试"
+ "SUCCESS_MESSAGE": "预设回复已成功添加。",
+ "ERROR_MESSAGE": "无法与 Woot 服务器建立连接。请重试。"
}
},
"EDIT": {
@@ -42,33 +46,33 @@
"CANCEL_BUTTON_TEXT": "取消操作",
"FORM": {
"SHORT_CODE": {
- "LABEL": "短码",
- "PLACEHOLDER": "请输入短码",
- "ERROR": "必须输入短代码"
+ "LABEL": "短代码",
+ "PLACEHOLDER": "请填写短代码。",
+ "ERROR": "短代码是必填项"
},
"CONTENT": {
- "LABEL": "内容",
- "PLACEHOLDER": "请输入内容。",
- "ERROR": "内容是必填项"
+ "LABEL": "消息",
+ "PLACEHOLDER": "请编写您希望保存为模板以便以后使用的消息。",
+ "ERROR": "请填写消息。"
},
"SUBMIT": "提交"
},
"BUTTON_TEXT": "编辑",
"API": {
- "SUCCESS_MESSAGE": "预设响应已成功更新",
- "ERROR_MESSAGE": "无法连接服务器,请稍后再试"
+ "SUCCESS_MESSAGE": "预设回复已成功更新。",
+ "ERROR_MESSAGE": "无法与 Woot 服务器建立连接。请重试。"
}
},
"DELETE": {
"BUTTON_TEXT": "删除",
"API": {
- "SUCCESS_MESSAGE": "预设响应已成功删除",
- "ERROR_MESSAGE": "无法连接服务器,请稍后再试"
+ "SUCCESS_MESSAGE": "预设回复已成功删除。",
+ "ERROR_MESSAGE": "连接 Woot 服务器失败,请再试一次。"
},
"CONFIRM": {
"TITLE": "确认删除",
"MESSAGE": "您确定要删除吗? ",
- "YES": "是,删除 ",
+ "YES": "是的,删除 ",
"NO": "不,保留 "
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/chatlist.json b/app/javascript/dashboard/i18n/locale/zh/chatlist.json
index b7d574d46..947d20d58 100644
--- a/app/javascript/dashboard/i18n/locale/zh/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/zh/chatlist.json
@@ -6,29 +6,81 @@
"LIST": {
"404": "没有有效的对话在这个群组里面"
},
+ "FAILED_TO_SEND": "发送失败",
"TAB_HEADING": "会话",
+ "MENTION_HEADING": "提及",
+ "UNATTENDED_HEADING": "未处理",
"SEARCH": {
"INPUT": "搜索人、聊天室、保存回复"
},
+ "FILTER_ALL": "所有的",
"ASSIGNEE_TYPE_TABS": {
"me": "我的",
"unassigned": "未分配的",
"all": "所有的"
},
- "CHAT_STATUS_ITEMS": [
- {
- "TEXT": "正在进行的\n",
- "VALUE": "open"
+ "CHAT_STATUS_FILTER_ITEMS": {
+ "open": {
+ "TEXT": "打开"
},
- {
- "TEXT": "已解决",
- "VALUE": "resolved"
+ "resolved": {
+ "TEXT": "已解决"
},
- {
- "TEXT": "机器人",
- "VALUE": "snoozed"
+ "pending": {
+ "TEXT": "等待中"
+ },
+ "snoozed": {
+ "TEXT": "已关闭"
+ },
+ "all": {
+ "TEXT": "所有的"
}
- ],
+ },
+ "VIEW_FILTER": "查看",
+ "SORT_TOOLTIP_LABEL": "对话排序",
+ "CHAT_SORT": {
+ "STATUS": "状态",
+ "ORDER_BY": "按顺序排列"
+ },
+ "CHAT_TIME_STAMP": {
+ "CREATED": {
+ "LATEST": "创建时间",
+ "OLDEST": "创建于:"
+ },
+ "LAST_ACTIVITY": {
+ "NOT_ACTIVE": "上次操作:",
+ "ACTIVE": "上次操作"
+ }
+ },
+ "SORT_ORDER_ITEMS": {
+ "last_activity_at_asc": {
+ "TEXT": "最后一次活动:最早在前"
+ },
+ "last_activity_at_desc": {
+ "TEXT": "最后一次活动:最新在前"
+ },
+ "created_at_desc": {
+ "TEXT": "创建于:最新在前"
+ },
+ "created_at_asc": {
+ "TEXT": "创建于:最早在前"
+ },
+ "priority_desc": {
+ "TEXT": "优先级:最高在前"
+ },
+ "priority_asc": {
+ "TEXT": "优先级:最低在前"
+ },
+ "waiting_since_asc": {
+ "TEXT": "等待响应:最长在前"
+ },
+ "waiting_since_desc": {
+ "TEXT": "等待响应:最短在前"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
+ }
+ },
"ATTACHMENTS": {
"image": {
"CONTENT": "图片消息"
@@ -45,12 +97,49 @@
"location": {
"CONTENT": "位置"
},
+ "ig_reel": {
+ "CONTENT": "Instagram 短视频"
+ },
"fallback": {
"CONTENT": "分享了一个网址"
+ },
+ "contact": {
+ "CONTENT": "共享联系人"
+ },
+ "embed": {
+ "CONTENT": "嵌入内容"
}
},
- "RECEIVED_VIA_EMAIL": "Received via email",
- "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter",
- "REPLY_TO_TWEET": "Reply to this tweet"
+ "CHAT_SORT_BY_FILTER": {
+ "TITLE": "对话排序",
+ "DROPDOWN_TITLE": "排序方式",
+ "ITEMS": {
+ "LATEST": {
+ "NAME": "最后活动于",
+ "LABEL": "上次操作"
+ },
+ "CREATED_AT": {
+ "NAME": "创建于",
+ "LABEL": "创建于"
+ },
+ "LAST_USER_MESSAGE_AT": {
+ "NAME": "用户最后一条消息于",
+ "LABEL": "最后的消息"
+ }
+ }
+ },
+ "RECEIVED_VIA_EMAIL": "通过电子邮件接收",
+ "VIEW_TWEET_IN_TWITTER": "在 Twitter 中查看 tweet",
+ "REPLY_TO_TWEET": "回复此推文",
+ "LINK_TO_STORY": "查看 Instagram 故事",
+ "SENT": "发送成功",
+ "READ": "阅读成功",
+ "DELIVERED": "已成功发送",
+ "NO_MESSAGES": "没有信息",
+ "NO_CONTENT": "没有可用的内容",
+ "HIDE_QUOTED_TEXT": "隐藏引用文字",
+ "SHOW_QUOTED_TEXT": "显示引用文字",
+ "MESSAGE_READ": "已读",
+ "SENDING": "发送中"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/contact.json b/app/javascript/dashboard/i18n/locale/zh/contact.json
index f1115bfba..35120983b 100644
--- a/app/javascript/dashboard/i18n/locale/zh/contact.json
+++ b/app/javascript/dashboard/i18n/locale/zh/contact.json
@@ -1,96 +1,659 @@
{
"CONTACT_PANEL": {
- "NOT_AVAILABLE": "Not Available",
+ "NOT_AVAILABLE": "不可用",
"EMAIL_ADDRESS": "电子邮件地址",
"PHONE_NUMBER": "电话号码",
- "COMPANY": "Company",
+ "IDENTIFIER": "标识符",
+ "COPY_SUCCESSFUL": "已成功复制到剪贴板",
+ "COMPANY": "公司",
"LOCATION": "位置",
+ "BROWSER_LANGUAGE": "浏览器语言",
"CONVERSATION_TITLE": "对话详情",
+ "VIEW_PROFILE": "查看资料",
"BROWSER": "浏览器",
"OS": "操作系统",
"INITIATED_FROM": "启动自:",
"INITIATED_AT": "发起于",
+ "IP_ADDRESS": "IP 地址",
+ "CREATED_AT_LABEL": "创建时间",
+ "NEW_MESSAGE": "新消息",
+ "CALL": "呼叫",
+ "CALL_INITIATED": "正在接通…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "选择一个语音收件箱"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "此联系人没有关联到以前的会话。",
"TITLE": "上一次对话"
},
- "CUSTOM_ATTRIBUTES": {
- "TITLE": "Custom Attributes"
- },
"LABELS": {
- "TITLE": "对话标记",
- "MODAL": {
- "TITLE": "标记为",
- "ACTIVE_LABELS": "添加到对话的标签",
- "INACTIVE_LABELS": "账户中可用的标签",
- "REMOVE": "点击 X 图标删除标签",
- "ADD": "点击 + 图标添加标签",
- "UPDATE_BUTTON": "更新标签",
- "UPDATE_ERROR": "无法更新标签,请重试。"
+ "CONTACT": {
+ "TITLE": "联系人标签",
+ "ERROR": "无法更新标签"
},
- "NO_LABELS_TO_ADD": "帐户中没有更多标签。",
- "NO_AVAILABLE_LABELS": "没有标签添加到此对话。"
+ "CONVERSATION": {
+ "TITLE": "对话标记",
+ "ADD_BUTTON": "添加标签"
+ },
+ "LABEL_SELECT": {
+ "TITLE": "添加标签",
+ "PLACEHOLDER": "搜索标签",
+ "NO_RESULT": "未找到标签",
+ "CREATE_LABEL": "创建新标签"
+ }
},
- "MUTE_CONTACT": "Mute Conversation",
- "MUTED_SUCCESS": "This conversation is muted for 6 hours",
- "SEND_TRANSCRIPT": "Send Transcript",
- "EDIT_LABEL": "编辑"
+ "MERGE_CONTACT": "合并联系人",
+ "CONTACT_ACTIONS": "联系人操作",
+ "MUTE_CONTACT": "屏蔽联系人",
+ "UNMUTE_CONTACT": "解除屏蔽联系人",
+ "MUTED_SUCCESS": "已成功屏蔽此联系人。您将不会收到任何未来对话的通知。",
+ "UNMUTED_SUCCESS": "此联系人已成功解除屏蔽。",
+ "SEND_TRANSCRIPT": "发送客服记录",
+ "EDIT_LABEL": "编辑",
+ "SIDEBAR_SECTIONS": {
+ "CUSTOM_ATTRIBUTES": "自定义属性",
+ "CONTACT_LABELS": "联系人标签",
+ "PREVIOUS_CONVERSATIONS": "上一次对话",
+ "NO_RECORDS_FOUND": "未找到属性"
+ }
},
"EDIT_CONTACT": {
- "BUTTON_LABEL": "Edit Contact",
- "TITLE": "Edit contact",
- "DESC": "Edit contact details",
+ "BUTTON_LABEL": "编辑联系人",
+ "TITLE": "编辑联系人",
+ "DESC": "编辑联系人详情"
+ },
+ "DELETE_CONTACT": {
+ "BUTTON_LABEL": "删除联系人",
+ "TITLE": "删除联系人",
+ "DESC": "删除联系人详情",
+ "CONFIRM": {
+ "TITLE": "确认删除",
+ "MESSAGE": "您确定要删除吗? ",
+ "YES": "是,删除",
+ "NO": "不,保留"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "联系人删除成功",
+ "ERROR_MESSAGE": "无法删除联系人,请稍后再试。"
+ }
+ },
+ "CONTACT_FORM": {
"FORM": {
"SUBMIT": "提交",
- "CANCEL": "取消操作",
+ "CANCEL": "取消",
"AVATAR": {
- "LABEL": "Contact Avatar"
+ "LABEL": "联系人头像"
},
"NAME": {
- "PLACEHOLDER": "Enter the full name of the contact",
- "LABEL": "Full Name"
+ "PLACEHOLDER": "输入联系人的名字",
+ "LABEL": "名字"
},
"BIO": {
- "PLACEHOLDER": "Enter the bio of the contact",
- "LABEL": "Bio"
+ "PLACEHOLDER": "输入联系人的简历",
+ "LABEL": "简历"
},
"EMAIL_ADDRESS": {
- "PLACEHOLDER": "Enter the email address of the contact",
- "LABEL": "电子邮件地址"
+ "PLACEHOLDER": "输入联系人的电子邮件地址",
+ "LABEL": "电子邮件地址",
+ "DUPLICATE": "此电子邮件地址正在用于另一个联系人。",
+ "ERROR": "请输入一个有效的电子邮件."
},
"PHONE_NUMBER": {
- "PLACEHOLDER": "Enter the phone number of the contact",
- "LABEL": "Phone Number"
+ "PLACEHOLDER": "输入联系人的电话号码",
+ "LABEL": "电话号码",
+ "HELP": "电话号码应为E.164格式,例如+14155555 [+][国家代码][地区代码][本地电话号码]。您可以从下拉菜单中选择拨号代码。",
+ "ERROR": "电话号码应为空或E.164格式",
+ "DIAL_CODE_ERROR": "请从列表中选择拨号代码",
+ "DUPLICATE": "此电话号码正在用于另一个联系人。"
},
"LOCATION": {
- "PLACEHOLDER": "Enter the location of the contact",
+ "PLACEHOLDER": "输入联系人的位置",
"LABEL": "位置"
},
"COMPANY_NAME": {
- "PLACEHOLDER": "Enter the company name",
- "LABEL": "Company Name"
+ "PLACEHOLDER": "输入公司名称",
+ "LABEL": "公司名称"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "输入国家/地区名称",
+ "LABEL": "国家",
+ "SELECT_PLACEHOLDER": "选择",
+ "REMOVE": "删除",
+ "SELECT_COUNTRY": "选择国家/地区"
+ },
+ "CITY": {
+ "PLACEHOLDER": "输入城市名称",
+ "LABEL": "城市名称"
},
"SOCIAL_PROFILES": {
"FACEBOOK": {
- "PLACEHOLDER": "Enter the Facebook username",
+ "PLACEHOLDER": "输入 Facebook 用户名",
"LABEL": "Facebook"
},
"TWITTER": {
- "PLACEHOLDER": "Enter the Twitter username",
- "LABEL": "Twitter"
+ "PLACEHOLDER": "输入 Twitter 用户名",
+ "LABEL": "推特"
},
"LINKEDIN": {
- "PLACEHOLDER": "Enter the LinkedIn username",
- "LABEL": "LinkedIn"
+ "PLACEHOLDER": "请输入您的领英用户名",
+ "LABEL": "领英"
},
"GITHUB": {
- "PLACEHOLDER": "Enter the Github username",
+ "PLACEHOLDER": "输入Github用户名",
"LABEL": "Github"
}
}
},
- "SUCCESS_MESSAGE": "Updated contact successfully",
- "CONTACT_ALREADY_EXIST": "This email address is in use for another contact.",
- "ERROR_MESSAGE": "There was an error updating the contact, please try again"
+ "DELETE_AVATAR": {
+ "API": {
+ "SUCCESS_MESSAGE": "联系人头像已成功删除",
+ "ERROR_MESSAGE": "暂时无法删除那个联系人的头像,请您稍后再试"
+ }
+ },
+ "SUCCESS_MESSAGE": "联系人保存成功",
+ "ERROR_MESSAGE": "出现错误,请重试"
+ },
+ "NEW_CONVERSATION": {
+ "BUTTON_LABEL": "开始会话",
+ "TITLE": "新的会话",
+ "DESC": "通过发送一条新消息来开始新的对话。",
+ "NO_INBOX": "找不到收件箱来发起与此联系人的新对话。",
+ "FORM": {
+ "TO": {
+ "LABEL": "发送至"
+ },
+ "INBOX": {
+ "LABEL": "通过收件箱:",
+ "PLACEHOLDER": "选择来源收件箱",
+ "ERROR": "选择一个收件箱"
+ },
+ "SUBJECT": {
+ "LABEL": "主题",
+ "PLACEHOLDER": "主题",
+ "ERROR": "主题不能为空"
+ },
+ "MESSAGE": {
+ "LABEL": "消息",
+ "PLACEHOLDER": "在此处输入您的消息",
+ "ERROR": "消息不能为空"
+ },
+ "ATTACHMENTS": {
+ "SELECT": "选择文件",
+ "HELP_TEXT": "拖放文件到此处或选择要附加的文件"
+ },
+ "SUBMIT": "发送消息",
+ "CANCEL": "取消",
+ "SUCCESS_MESSAGE": "消息已发送!",
+ "GO_TO_CONVERSATION": "查看",
+ "ERROR_MESSAGE": "无法发送,请重试!"
+ }
+ },
+ "CONTACTS_PAGE": {
+ "LIST": {
+ "TABLE_HEADER": {
+ "SOCIAL_PROFILES": "社交资料"
+ }
+ }
+ },
+ "CUSTOM_ATTRIBUTES": {
+ "BUTTON": "添加自定义属性",
+ "COPY_SUCCESSFUL": "已成功复制到剪贴板",
+ "SHOW_MORE": "显示全部属性",
+ "SHOW_LESS": "显示较少属性",
+ "ACTIONS": {
+ "COPY": "复制属性",
+ "DELETE": "删除属性",
+ "EDIT": "编辑属性"
+ },
+ "ADD": {
+ "TITLE": "创建自定义属性",
+ "DESC": "在此联系人中添加自定义信息。"
+ },
+ "FORM": {
+ "CREATE": "添加属性",
+ "CANCEL": "取消",
+ "NAME": {
+ "LABEL": "自定义属性名称",
+ "PLACEHOLDER": "例如:会员 ID",
+ "ERROR": "无效的自定义属性名称"
+ },
+ "VALUE": {
+ "LABEL": "属性值",
+ "PLACEHOLDER": "例如:11901 "
+ },
+ "ADD": {
+ "TITLE": "新建属性 ",
+ "SUCCESS": "已成功添加属性",
+ "ERROR": "无法添加属性,请稍后再试。"
+ },
+ "UPDATE": {
+ "SUCCESS": "已成功更新属性",
+ "ERROR": "无法更新属性,请稍后再试。"
+ },
+ "DELETE": {
+ "SUCCESS": "已成功删除属性",
+ "ERROR": "无法删除属性,请稍后再试。"
+ },
+ "ATTRIBUTE_SELECT": {
+ "TITLE": "添加属性",
+ "PLACEHOLDER": "搜索属性",
+ "NO_RESULT": "未找到属性"
+ },
+ "ATTRIBUTE_TYPE": {
+ "LIST": {
+ "PLACEHOLDER": "选择值",
+ "SEARCH_INPUT_PLACEHOLDER": "搜索值",
+ "NO_RESULT": "未找到结果"
+ }
+ }
+ },
+ "VALIDATIONS": {
+ "REQUIRED": "需要有效的值",
+ "INVALID_URL": "无效的 URL",
+ "INVALID_INPUT": "无效输入"
+ }
+ },
+ "MERGE_CONTACTS": {
+ "TITLE": "合并联系人",
+ "DESCRIPTION": "合并联系人以将两个个人资料合并为一个,包括所有属性和对话。 如果发生冲突,将以主联系人的属性为优先。",
+ "PRIMARY": {
+ "TITLE": "主联系人",
+ "HELP_LABEL": "将被删除"
+ },
+ "PARENT": {
+ "TITLE": "需要合并的联系人",
+ "PLACEHOLDER": "搜索联系人",
+ "HELP_LABEL": "将被保留"
+ },
+ "SUMMARY": {
+ "TITLE": "总结",
+ "DELETE_WARNING": "
{primaryContactName} 的联系信息将被删除。",
+ "ATTRIBUTE_WARNING": "
{primaryContactName} 的联系信息将拷贝到
{parentContactName}。"
+ },
+ "SEARCH": {
+ "ERROR_MESSAGE": "出了点问题。请稍后再试。"
+ },
+ "FORM": {
+ "SUBMIT": " 合并联系人",
+ "CANCEL": "取消",
+ "CHILD_CONTACT": {
+ "ERROR": "选择一个需要合并的子联系人"
+ },
+ "SUCCESS_MESSAGE": "已成功合并联系人",
+ "ERROR_MESSAGE": "无法合并联系人,请重试!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "联系人",
+ "SEARCH_TITLE": "搜索联系人",
+ "ACTIVE_TITLE": "活跃的联系人",
+ "SEARCH_PLACEHOLDER": "搜索……",
+ "MESSAGE_BUTTON": "消息",
+ "SEND_MESSAGE": "发送消息",
+ "BLOCK_CONTACT": "屏蔽联系人",
+ "UNBLOCK_CONTACT": "解除屏蔽联系人",
+ "BREADCRUMB": {
+ "CONTACTS": "联系人"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "添加联系人",
+ "EXPORT_CONTACT": "导出联系人",
+ "IMPORT_CONTACT": "导入联系人",
+ "SAVE_CONTACT": "保存联系人",
+ "EMAIL_ADDRESS_DUPLICATE": "此电子邮件地址正在用于另一个联系人。",
+ "PHONE_NUMBER_DUPLICATE": "此电话号码正在用于另一个联系人。",
+ "SUCCESS_MESSAGE": "联系人保存成功",
+ "ERROR_MESSAGE": "无法保存联系人,请稍后再试。"
+ },
+ "BLOCK_SUCCESS_MESSAGE": "此联系人已成功屏蔽",
+ "BLOCK_ERROR_MESSAGE": "无法屏蔽联系人,请稍后再试。",
+ "UNBLOCK_SUCCESS_MESSAGE": "此联系人已成功解除屏蔽",
+ "UNBLOCK_ERROR_MESSAGE": "无法解除屏蔽联系人,请稍后再试。",
+ "IMPORT_CONTACT": {
+ "TITLE": "导入联系人",
+ "DESCRIPTION": "通过 CSV 文件导入联系人",
+ "DOWNLOAD_LABEL": "下载示例 CSV.",
+ "LABEL": "CSV 文件:",
+ "CHOOSE_FILE": "选择文件",
+ "CHANGE": "更改",
+ "CANCEL": "取消",
+ "IMPORT": "导入",
+ "SUCCESS_MESSAGE": "导入完成时将通过电子邮件通知您。",
+ "ERROR_MESSAGE": "出现错误,请重试"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "导出联系人",
+ "DESCRIPTION": "快速导出包含联系人详细信息的 CSV 文件",
+ "CONFIRM": "导出",
+ "SUCCESS_MESSAGE": "导出正在进行。当导出文件准备好下载时,您将收到电子邮件通知。",
+ "ERROR_MESSAGE": "出现错误,请重试"
+ },
+ "SORT_BY": {
+ "LABEL": "排序方式",
+ "OPTIONS": {
+ "NAME": "姓名",
+ "EMAIL": "电子邮件",
+ "PHONE_NUMBER": "电话号码",
+ "COMPANY": "公司",
+ "COUNTRY": "国家",
+ "CITY": "城市",
+ "LAST_ACTIVITY": "上次操作",
+ "CREATED_AT": "创建于"
+ }
+ },
+ "ORDER": {
+ "LABEL": "排序顺序",
+ "OPTIONS": {
+ "ASCENDING": "升序",
+ "DESCENDING": "降序"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "您想要保存此过滤器吗?",
+ "CONFIRM": "保存过滤器",
+ "LABEL": "姓名",
+ "PLACEHOLDER": "输入过滤器的名称",
+ "ERROR": "请输入有效的名称",
+ "SUCCESS_MESSAGE": "过滤器保存成功",
+ "ERROR_MESSAGE": "无法保存过滤器,请稍后再试。"
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "确认删除",
+ "DESCRIPTION": "您确定要删除此过滤器吗?",
+ "CONFIRM": "是,删除",
+ "CANCEL": "否,取消",
+ "SUCCESS_MESSAGE": "过滤器删除成功",
+ "ERROR_MESSAGE": "无法删除过滤器,请稍后再试。"
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "显示 {startItem} - {endItem} 个联系人,共 {totalItems} 个"
+ },
+ "FILTER": {
+ "NAME": "姓名",
+ "EMAIL": "电子邮件",
+ "PHONE_NUMBER": "电话号码",
+ "IDENTIFIER": "标识符",
+ "COUNTRY": "国家",
+ "CITY": "城市",
+ "CREATED_AT": "创建于",
+ "LAST_ACTIVITY": "上次操作",
+ "REFERER_LINK": "引用链接",
+ "BLOCKED": "已屏蔽",
+ "BLOCKED_TRUE": "是",
+ "BLOCKED_FALSE": "否",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "清除过滤器",
+ "UPDATE_SEGMENT": "更新分段",
+ "APPLY_FILTERS": "应用过滤器",
+ "ADD_FILTER": "添加过滤器"
+ },
+ "TITLE": "过滤联系人",
+ "EDIT_SEGMENT": "编辑分段",
+ "SEGMENT": {
+ "LABEL": "分段名称",
+ "INPUT_PLACEHOLDER": "输入分段的名称"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} 更多过滤器",
+ "CLEAR_FILTERS": "清除过滤器"
+ }
+ },
+ "CARD": {
+ "OF": "的",
+ "VIEW_DETAILS": "查看详细信息",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "编辑联系人详情",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "输入名字"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "输入姓氏"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "输入电子邮件地址",
+ "DUPLICATE": "此电子邮件地址正在用于另一个联系人。"
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "输入电话号码",
+ "DUPLICATE": "此电话号码正在用于另一个联系人。"
+ },
+ "CITY": {
+ "PLACEHOLDER": "输入城市名称"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "选择国家"
+ },
+ "BIO": {
+ "PLACEHOLDER": "输入简历"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "输入公司名称"
+ }
+ },
+ "UPDATE_BUTTON": "更新联系人",
+ "SUCCESS_MESSAGE": "联系人更新成功",
+ "ERROR_MESSAGE": "无法更新联系人,请稍后再试。"
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "编辑社交链接",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "添加 Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "添加 Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "添加 Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "添加TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "添加 LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "添加 Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "这一操作是永久且不可逆转的。",
+ "BUTTON": "立即删除"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "创建于 {date}",
+ "LAST_ACTIVITY": "上次活动于 {date}",
+ "DELETE_CONTACT_DESCRIPTION": "永久删除此联系人。此操作不可逆",
+ "DELETE_CONTACT": "删除联系人",
+ "DELETE_DIALOG": {
+ "TITLE": "确认删除",
+ "DESCRIPTION": "您确定要删除此联系人吗?",
+ "CONFIRM": "是,删除",
+ "API": {
+ "SUCCESS_MESSAGE": "联系人删除成功",
+ "ERROR_MESSAGE": "无法删除联系人,请稍后再试。"
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "无法上传头像,请稍后再试。",
+ "SUCCESS_MESSAGE": "头像上传成功"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "头像删除成功",
+ "ERROR_MESSAGE": "无法删除头像,请稍后再试。"
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "属性",
+ "HISTORY": "历史记录",
+ "NOTES": "备注",
+ "MERGE": "合并"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "此联系人没有关联到以前的对话"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "搜索属性",
+ "UNUSED_ATTRIBUTES": "{count} 个已用属性 | {count} 个未用属性",
+ "EMPTY_STATE": "此账户中没有可用的联系人自定义属性。您可以在设置中创建自定义属性。",
+ "YES": "是",
+ "NO": "否",
+ "TRIGGER": {
+ "SELECT": "选择值",
+ "INPUT": "填写内容"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "无效的数字",
+ "REQUIRED": "需要有效的值",
+ "INVALID_INPUT": "无效输入",
+ "INVALID_URL": "无效的 URL",
+ "INVALID_DATE": "无效日期"
+ },
+ "NO_ATTRIBUTES": "未找到属性",
+ "API": {
+ "SUCCESS_MESSAGE": "已成功更新属性",
+ "DELETE_SUCCESS_MESSAGE": "已成功删除属性",
+ "UPDATE_ERROR": "无法更新属性,请稍后再试。",
+ "DELETE_ERROR": "无法删除属性,请稍后再试"
+ }
+ },
+ "MERGE": {
+ "TITLE": "合并联系人",
+ "DESCRIPTION": "将两个个人资料合并为一个,包括所有属性和对话。如果发生冲突,将以主联系人的属性为优先。",
+ "PRIMARY": "主联系人",
+ "PRIMARY_HELP_LABEL": "将被保留",
+ "PRIMARY_REQUIRED_ERROR": "请选择一个联系人进行合并",
+ "PARENT": "需要合并的联系人",
+ "PARENT_HELP_LABEL": "将被删除",
+ "EMPTY_STATE": "未找到联系人",
+ "PLACEHOLDER": "搜索主联系人",
+ "SEARCH_PLACEHOLDER": "搜索联系人",
+ "SEARCH_ERROR_MESSAGE": "无法搜索联系人,请稍后再试。",
+ "SUCCESS_MESSAGE": "已成功合并联系人",
+ "ERROR_MESSAGE": "无法合并联系人,请重试!",
+ "IS_SEARCHING": "搜索中……",
+ "BUTTONS": {
+ "CANCEL": "取消",
+ "CONFIRM": "合并联系人"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "添加备注",
+ "WROTE": "写道",
+ "YOU": "您",
+ "SAVE": "保存备注",
+ "ADD_NOTE": "Add contact note",
+ "EXPAND": "扩展",
+ "COLLAPSE": "收起",
+ "NO_NOTES": "没有备注,您可以从联系人详细信息页面添加备注。",
+ "EMPTY_STATE": "此联系人没有关联的备注。您可以在上方输入框中添加备注。",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "此账户中没有找到联系人",
+ "SUBTITLE": "点击下方按钮开始添加新联系人",
+ "BUTTON_LABEL": "添加联系人",
+ "SEARCH_EMPTY_STATE_TITLE": "没有搜索到联系人🔍",
+ "LIST_EMPTY_STATE_TITLE": "此视图中没有可用的联系人📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "目前没有联系人在线 🌙"
+ },
+ "LOAD_MORE": "加载更多"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "分配标签",
+ "ASSIGN_LABELS_SUCCESS": "已成功分配标签.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} 已选择",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "全选 ({count})",
+ "DELETE_CONTACTS": "删除",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "删除联系人"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "我们无法完成搜索。请稍后再试。"
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "查看",
+ "SUCCESS_MESSAGE": "消息发送成功!",
+ "ERROR_MESSAGE": "创建对话时发生错误。请稍后再试。",
+ "NO_INBOX_ALERT": "没有可用的收件箱来开始与此联系人的对话。",
+ "CONTACT_SELECTOR": {
+ "LABEL": "发送至:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "正在创建联系人……"
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "通过:",
+ "BUTTON": "显示收件箱"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "主题 :",
+ "SUBJECT_PLACEHOLDER": "在此处输入电子邮件主题",
+ "CC_LABEL": "抄送:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "密送:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "密送"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "在此处输入您的消息..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "选择模板",
+ "SEARCH_PLACEHOLDER": "搜索模板",
+ "EMPTY_STATE": "未找到模板",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp 模板: {templateName}",
+ "VARIABLES": "参数",
+ "BACK": "返回",
+ "SEND_MESSAGE": "发送消息"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "选择模板",
+ "SEARCH_PLACEHOLDER": "搜索模板",
+ "EMPTY_STATE": "未找到模板",
+ "TEMPLATE_PARSER": {
+ "BACK": "返回",
+ "SEND_MESSAGE": "发送消息"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "丢弃",
+ "SEND": "发送 ({keyCode})"
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/conversation.json b/app/javascript/dashboard/i18n/locale/zh/conversation.json
index 84a746e91..9f4e80843 100644
--- a/app/javascript/dashboard/i18n/locale/zh/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/zh/conversation.json
@@ -1,57 +1,452 @@
{
"CONVERSATION": {
- "404": "请从左侧窗格选择一个对话",
+ "SELECT_A_CONVERSATION": "请从左侧窗格选择一个对话",
+ "CSAT_REPLY_MESSAGE": "请为会话评分",
+ "404": "抱歉,我们找不到对话。请重试",
+ "SWITCH_VIEW_LAYOUT": "切换布局",
+ "DASHBOARD_APP_TAB_MESSAGES": "消息",
+ "UNVERIFIED_SESSION": "未验证此用户的身份",
"NO_MESSAGE_1": "您的收件箱中似乎没有客户的消息。",
"NO_MESSAGE_2": " 向您的页面发送一条消息!",
"NO_INBOX_1": "看来你还没有添加任何收件箱。",
"NO_INBOX_2": " 开始吧",
"NO_INBOX_AGENT": "看起来您还没有分配到收件箱。请联系您的管理员",
+ "SEARCH_MESSAGES": "搜索对话中的消息",
+ "VIEW_ORIGINAL": "查看原始内容",
+ "VIEW_TRANSLATED": "查看翻译",
+ "EMPTY_STATE": {
+ "CMD_BAR": "打开命令菜单",
+ "KEYBOARD_SHORTCUTS": "查看键盘快捷键"
+ },
+ "SEARCH": {
+ "TITLE": "搜索消息",
+ "RESULT_TITLE": "搜索结果",
+ "LOADING_MESSAGE": "正在处理数据",
+ "PLACEHOLDER": "输入任何文本来搜索消息",
+ "NO_MATCHING_RESULTS": "未找到结果。"
+ },
+ "UNREAD_MESSAGES": "未读消息",
+ "UNREAD_MESSAGE": "未读消息",
"CLICK_HERE": "点击这里",
"LOADING_INBOXES": "正在加载收件箱",
"LOADING_CONVERSATIONS": "加载更多对话",
"CANNOT_REPLY": "您不能回复,原因是:",
"24_HOURS_WINDOW": "24 小时消息窗口限制",
- "LAST_INCOMING_TWEET": "You are replying to the last incoming tweet",
- "REPLYING_TO": "You are replying to:",
- "REMOVE_SELECTION": "Remove Selection",
+ "48_HOURS_WINDOW": "48 小时消息窗口限制",
+ "API_HOURS_WINDOW": "您只能在 {hours} 小时内回复此对话",
+ "NOT_ASSIGNED_TO_YOU": "此对话未分配给您。您想要将此对话分配给自己吗?",
+ "ASSIGN_TO_ME": "分配给我",
+ "BOT_HANDOFF_MESSAGE": "您正在回复目前由助手或机器人处理的对话。",
+ "BOT_HANDOFF_ACTION": "标记打开并分配给自己",
+ "BOT_HANDOFF_REOPEN_ACTION": "标记对话已打开",
+ "BOT_HANDOFF_SUCCESS": "对话已分配给您",
+ "BOT_HANDOFF_ERROR": "接管对话失败,请再试一次。",
+ "TWILIO_WHATSAPP_CAN_REPLY": "您只能使用模板信息回复此会话,原因是",
+ "TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 小时消息窗口限制",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "此 Instagram 帐户已迁移到新的 Instagram 通道收件箱。 所有新消息都将在这里显示。您将无法从这个对话中发送消息。",
+ "REPLYING_TO": "您正在回复到:",
+ "REMOVE_SELECTION": "移除选择",
"DOWNLOAD": "下载",
+ "UNKNOWN_FILE_TYPE": "未知文件",
+ "SAVE_CONTACT": "保存联系人",
+ "NO_CONTENT": "没有要显示的内容",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} 分享了一个联系人",
+ "LOCATION": "{sender} 分享了一个地址",
+ "FILE": "{sender} 分享了一个文件",
+ "MEETING": "{sender} 已开始会议"
+ },
+ "UPLOADING_ATTACHMENTS": "正在上传附件...",
+ "REPLIED_TO_STORY": "回复您的故事",
+ "UNSUPPORTED_MESSAGE": "不支持此消息。您可以在 Facebook Messenger 应用上查看此消息。",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "不支持此消息。您可以在 Facebook Messenger 应用上查看此消息。",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "不支持此消息。您可以在 Instagram 应用上查看此消息。",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "SUCCESS_DELETE_MESSAGE": "已成功删除消息",
+ "FAIL_DELETE_MESSSAGE": "无法删除消息,请重试!",
+ "NO_RESPONSE": "无响应",
+ "RESPONSE": "回复",
+ "RATING_TITLE": "评分",
+ "FEEDBACK_TITLE": "Feedback",
+ "REPLY_MESSAGE_NOT_FOUND": "消息不可用",
+ "CARD": {
+ "SHOW_LABELS": "显示标签",
+ "HIDE_LABELS": "隐藏标签"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "来电",
+ "OUTGOING_CALL": "已拨出电话",
+ "CALL_IN_PROGRESS": "呼叫进行中",
+ "NO_ANSWER": "无应答",
+ "MISSED_CALL": "未接来电",
+ "CALL_ENDED": "通话结束",
+ "NOT_ANSWERED_YET": "尚未回复",
+ "THEY_ANSWERED": "对方已回复",
+ "YOU_ANSWERED": "你已回复"
+ },
"HEADER": {
"RESOLVE_ACTION": "已解决",
"REOPEN_ACTION": "重新打开",
+ "OPEN_ACTION": "打开",
+ "MORE_ACTIONS": "更多操作",
"OPEN": "详细信息",
"CLOSE": "关闭",
- "DETAILS": "详情"
+ "DETAILS": "详情",
+ "SNOOZED_UNTIL": "推迟到",
+ "SNOOZED_UNTIL_TOMORROW": "推迟到明天",
+ "SNOOZED_UNTIL_NEXT_WEEK": "推迟到下周",
+ "SNOOZED_UNTIL_NEXT_REPLY": "推迟至下一个回复",
+ "SLA_STATUS": {
+ "FRT": "第一响应时间 {status}",
+ "NRT": "净响应时间 {status}",
+ "RT": "响应时间 {status}",
+ "MISSED": "遗漏",
+ "DUE": "过期"
+ }
+ },
+ "RESOLVE_DROPDOWN": {
+ "MARK_PENDING": "标记为待处理",
+ "SNOOZE_UNTIL": "推迟",
+ "SNOOZE": {
+ "TITLE": "推迟到",
+ "NEXT_REPLY": "下一个回复",
+ "TOMORROW": "明天",
+ "NEXT_WEEK": "下周"
+ }
+ },
+ "MENTION": {
+ "AGENTS": "客服",
+ "TEAMS": "团队"
+ },
+ "CUSTOM_SNOOZE": {
+ "TITLE": "推迟到",
+ "APPLY": "推迟",
+ "CANCEL": "取消"
+ },
+ "PRIORITY": {
+ "TITLE": "优先级",
+ "OPTIONS": {
+ "NONE": "啥都没有",
+ "URGENT": "紧急的",
+ "HIGH": "高",
+ "MEDIUM": "中",
+ "LOW": "低"
+ },
+ "CHANGE_PRIORITY": {
+ "SELECT_PLACEHOLDER": "啥都没有",
+ "INPUT_PLACEHOLDER": "选择优先级",
+ "NO_RESULTS": "没有检索到相关信息",
+ "SUCCESSFUL": "已将对话 Id {conversationId} 的优先级更改为 {priority}",
+ "FAILED": "无法更改优先级。请重试。"
+ }
+ },
+ "DELETE_CONVERSATION": {
+ "TITLE": "删除对话 #{conversationId}",
+ "DESCRIPTION": "您确定要删除此对话吗?",
+ "CONFIRM": "删除"
+ },
+ "CARD_CONTEXT_MENU": {
+ "PENDING": "标记为待处理",
+ "RESOLVED": "标记为已解决",
+ "MARK_AS_UNREAD": "标记为未读",
+ "MARK_AS_READ": "标记为已读",
+ "REOPEN": "重新打开会话",
+ "SNOOZE": {
+ "TITLE": "推迟",
+ "NEXT_REPLY": "直到下次回复",
+ "TOMORROW": "直到明天",
+ "NEXT_WEEK": "直到下周"
+ },
+ "ASSIGN_AGENT": "分配客服代表",
+ "ASSIGN_LABEL": "分配标签",
+ "AGENTS_LOADING": "正在加载客服代表...",
+ "ASSIGN_TEAM": "分配一个团队",
+ "DELETE": "删除对话",
+ "OPEN_IN_NEW_TAB": "在新标签页中打开",
+ "COPY_LINK": "复制对话链接",
+ "COPY_LINK_SUCCESS": "对话链接已复制到剪贴板",
+ "API": {
+ "AGENT_ASSIGNMENT": {
+ "SUCCESFUL": "对话 ID {conversationId} 已分配给 \"{agentName}\"",
+ "FAILED": "无法分配客服,请再试。"
+ },
+ "LABEL_ASSIGNMENT": {
+ "SUCCESFUL": "已为对话 Id {conversationId} 分配标签 #{labelName}",
+ "FAILED": "无法分配标签。请再试。"
+ },
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
+ "TEAM_ASSIGNMENT": {
+ "SUCCESFUL": "将团队 \"{team}\" 分配给对话 ID {conversationId}",
+ "FAILED": "无法分配团队。请重试。"
+ }
+ }
},
"FOOTER": {
+ "MESSAGE_SIGN_TOOLTIP": "消息签名",
+ "ENABLE_SIGN_TOOLTIP": "启用签名",
+ "DISABLE_SIGN_TOOLTIP": "禁用签名",
"MSG_INPUT": "输入“/”开始选择快捷回复",
- "PRIVATE_MSG_INPUT": "Shift + 输入新行。这只对客服可见"
+ "PRIVATE_MSG_INPUT": "Shift + 输入新行。这只对客服可见",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
+ "MESSAGE_SIGNATURE_NOT_CONFIGURED": "未设置消息签名,请在个人资料中进行设置。",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
+ "CLICK_HERE": "点击此处更新",
+ "WHATSAPP_TEMPLATES": "Whatsapp 模板列表"
},
"REPLYBOX": {
"REPLY": "回复",
"PRIVATE_NOTE": "私人便笺",
"SEND": "发送",
"CREATE": "添加便笺",
- "TWEET": "推特"
+ "INSERT_READ_MORE": "查看更多",
+ "DISMISS_REPLY": "忽略回复",
+ "REPLYING_TO": "回复:",
+ "TIP_EMOJI_ICON": "显示表情选择器",
+ "TIP_ATTACH_ICON": "附加文件",
+ "TIP_AUDIORECORDER_ICON": "录制音频",
+ "TIP_AUDIORECORDER_PERMISSION": "允许访问音频",
+ "TIP_AUDIORECORDER_ERROR": "无法打开音频",
+ "DRAG_DROP": "拖放到此处添加附件",
+ "START_AUDIO_RECORDING": "开始录音",
+ "STOP_AUDIO_RECORDING": "停止录音",
+ "COPILOT_THINKING": "Copilot is thinking",
+ "EMAIL_HEAD": {
+ "TO": "发给",
+ "ADD_BCC": "添加密送",
+ "CC": {
+ "LABEL": "抄送",
+ "PLACEHOLDER": "多个电子邮件地址之间用逗号隔开",
+ "ERROR": "请输入有效的电子邮件地址"
+ },
+ "BCC": {
+ "LABEL": "密送",
+ "PLACEHOLDER": "多个电子邮件地址之间用逗号隔开",
+ "ERROR": "请输入有效的电子邮件地址"
+ }
+ },
+ "UNDEFINED_VARIABLES": {
+ "TITLE": "未定义的变量",
+ "MESSAGE": "你的消息中有 {undefinedVariablesCount} 个未定义的变量:{undefinedVariables}。是否仍然要发送该消息?",
+ "CONFIRM": {
+ "YES": "发送",
+ "CANCEL": "取消"
+ }
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
+ }
},
"VISIBLE_TO_AGENTS": "私人便签:仅对您和您的团队可见",
"CHANGE_STATUS": "对话状态已更改",
- "CHANGE_AGENT": "对话分配人已更改"
+ "CHANGE_STATUS_FAILED": "更改对话状态失败",
+ "CHANGE_AGENT": "对话分配人已更改",
+ "CHANGE_AGENT_FAILED": "更改分配失败",
+ "ASSIGN_LABEL_SUCCESFUL": "已成功分配标签",
+ "ASSIGN_LABEL_FAILED": "分配标签失败",
+ "CHANGE_TEAM": "对话团队已更改",
+ "SUCCESS_DELETE_CONVERSATION": "对话成功删除",
+ "FAIL_DELETE_CONVERSATION": "无法删除对话!请重试",
+ "FILE_SIZE_LIMIT": "文件超过了 {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB 的附件限制",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
+ "MESSAGE_ERROR": "无法发送此消息,请稍后再试",
+ "SENT_BY": "发送人:",
+ "BOT": "机器人",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
+ "SEND_FAILED": "无法发送消息,请重试!",
+ "TRY_AGAIN": "重试",
+ "ASSIGNMENT": {
+ "SELECT_AGENT": "选择代理",
+ "REMOVE": "删除",
+ "ASSIGN": "分配"
+ },
+ "CONTEXT_MENU": {
+ "COPY": "复制",
+ "REPLY_TO": "对这条消息进行回复",
+ "DELETE": "删除",
+ "CREATE_A_CANNED_RESPONSE": "添加到预定义回复",
+ "TRANSLATE": "翻译",
+ "COPY_PERMALINK": "复制消息链接",
+ "LINK_COPIED": "消息链接已复制到剪贴板",
+ "DELETE_CONFIRMATION": {
+ "TITLE": "您确定要删除这条消息吗?",
+ "MESSAGE": "此操作无法撤销。",
+ "DELETE": "删除",
+ "CANCEL": "取消"
+ }
+ },
+ "SIDEBAR": {
+ "CONTACT": "联系人",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "来电",
+ "OUTGOING_CALL": "已拨出电话",
+ "CALL_IN_PROGRESS": "呼叫进行中",
+ "NOT_ANSWERED_YET": "尚未回复",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call"
+ }
},
"EMAIL_TRANSCRIPT": {
- "TITLE": "Send conversation transcript",
- "DESC": "Send a copy of the conversation transcript to the specified email address",
+ "TITLE": "发送对话记录",
+ "DESC": "将对话记录副本发送到指定的电子邮件地址",
"SUBMIT": "提交",
"CANCEL": "取消操作",
- "SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
+ "SEND_EMAIL_SUCCESS": "对话记录已成功发送",
"SEND_EMAIL_ERROR": "出错了,请重试",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
- "SEND_TO_CONTACT": "Send the transcript to the customer",
- "SEND_TO_AGENT": "Send the transcript to the assigned agent",
- "SEND_TO_OTHER_EMAIL_ADDRESS": "Send the transcript to another email address",
+ "SEND_TO_CONTACT": "发送对话记录给客户",
+ "SEND_TO_AGENT": "发送对话记录给指定的代理",
+ "SEND_TO_OTHER_EMAIL_ADDRESS": "将对话记录发送到另一个电子邮件地址",
"EMAIL": {
- "PLACEHOLDER": "Enter an email address",
+ "PLACEHOLDER": "输入一个电子邮件地址",
"ERROR": "请输入一个有效的电子邮件"
}
}
+ },
+ "ONBOARDING": {
+ "TITLE": "您好 👋, 欢迎来到 {installationName}!",
+ "DESCRIPTION": "感谢您注册。我们希望您能够充分使用 {installationName}。 这里有几件您可以在 {installationName} 做的事情,让体验变得愉快。",
+ "GREETING_MORNING": "👋 早上好,{name}。欢迎来到 {installationName}。",
+ "GREETING_AFTERNOON": "👋 下午好,{name}。欢迎来到 {installationName}。",
+ "GREETING_EVENING": "👋 晚上好,{name}。欢迎来到 {installationName}。",
+ "READ_LATEST_UPDATES": "阅读我们的最新升级日志",
+ "ALL_CONVERSATION": {
+ "TITLE": "您的所有对话都在一个地方",
+ "DESCRIPTION": "在单个面板中查看您客户的所有对话。您可以通过通道、标签和状态筛选对话。",
+ "NEW_LINK": "点击此处创建收件箱"
+ },
+ "TEAM_MEMBERS": {
+ "TITLE": "邀请您的团队成员",
+ "DESCRIPTION": "当您准备好与您的客户交谈时,带上您的队友来协助您。 您可以通过添加他们的电子邮件地址到客服代表列表来邀请您的队友。",
+ "NEW_LINK": "点击此处邀请一位请团队成员"
+ },
+ "LABELS": {
+ "TITLE": "使用标签组织对话",
+ "DESCRIPTION": "标签提供了一种简单的方法来让您归类对话。创建一些类似 #价格、#问题反馈 这样的标签,之后您可以在对话中使用它们。",
+ "NEW_LINK": "点击此处创建标签"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "创建预设回复",
+ "DESCRIPTION": "预定义的快捷回复模板可以帮助您快速响应对话。客服人员只需输入“/”符号,后跟快捷代码,即可插入回复。",
+ "NEW_LINK": "点击这里创建预设回复"
+ }
+ },
+ "CONVERSATION_SIDEBAR": {
+ "ASSIGNEE_LABEL": "已分配的客服代表",
+ "SELF_ASSIGN": "分配给我",
+ "TEAM_LABEL": "已分配的团队",
+ "SELECT": {
+ "PLACEHOLDER": "啥都没有"
+ },
+ "ACCORDION": {
+ "CONTACT_DETAILS": "联系人详细信息",
+ "CONVERSATION_ACTIONS": "对话操作",
+ "CONVERSATION_LABELS": "对话标记",
+ "CONVERSATION_INFO": "对话信息",
+ "CONTACT_NOTES": "联系人备注",
+ "CONTACT_ATTRIBUTES": "联系人属性",
+ "PREVIOUS_CONVERSATION": "上一次对话",
+ "MACROS": "宏",
+ "LINEAR_ISSUES": "已链接的 Linear 问题",
+ "SHOPIFY_ORDERS": "Shopify Orders"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "等待中",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
+ }
+ },
+ "CONVERSATION_CUSTOM_ATTRIBUTES": {
+ "ADD_BUTTON_TEXT": "创建属性",
+ "NO_RECORDS_FOUND": "未找到属性",
+ "UPDATE": {
+ "SUCCESS": "已成功更新属性",
+ "ERROR": "无法更新属性,请稍后再试。"
+ },
+ "ADD": {
+ "TITLE": "添加",
+ "SUCCESS": "已成功添加属性",
+ "ERROR": "无法添加属性,请稍后再试。"
+ },
+ "DELETE": {
+ "SUCCESS": "已成功删除属性",
+ "ERROR": "无法删除属性,请稍后再试。"
+ },
+ "ATTRIBUTE_SELECT": {
+ "TITLE": "添加属性",
+ "PLACEHOLDER": "搜索属性",
+ "NO_RESULT": "未找到属性"
+ }
+ },
+ "EMAIL_HEADER": {
+ "FROM": "来自",
+ "TO": "发送至",
+ "BCC": "密送",
+ "CC": "抄送",
+ "SUBJECT": "主题",
+ "EXPAND": "展开邮箱"
+ },
+ "CONVERSATION_PARTICIPANTS": {
+ "SIDEBAR_MENU_TITLE": "参与者",
+ "SIDEBAR_TITLE": "对话参与者",
+ "NO_RECORDS_FOUND": "没有检索到相关信息",
+ "ADD_PARTICIPANTS": "选择参与者",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} 其他人",
+ "REMANING_PARTICIPANT_TEXT": "+{count} 其他",
+ "TOTAL_PARTICIPANTS_TEXT": "有{count}人参与。",
+ "TOTAL_PARTICIPANT_TEXT": "有{count}人参与。",
+ "NO_PARTICIPANTS_TEXT": "没有人参与!",
+ "WATCH_CONVERSATION": "加入对话",
+ "YOU_ARE_WATCHING": "你正在参与",
+ "API": {
+ "ERROR_MESSAGE": "无法更新,请重试!",
+ "SUCCESS_MESSAGE": "参与者已更新!"
+ }
+ },
+ "TRANSLATE_MODAL": {
+ "TITLE": "查看翻译内容",
+ "DESC": "您可以查看每种语言的翻译内容。",
+ "ORIGINAL_CONTENT": "原文内容",
+ "TRANSLATED_CONTENT": "译文",
+ "NO_TRANSLATIONS_AVAILABLE": "此内容暂无翻译"
+ },
+ "TYPING": {
+ "ONE": "{user} 正在输入",
+ "TWO": "{user} 和 {secondUser} 正在输入",
+ "MULTIPLE": "{user} 等 {count} 人正在输入"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "尝试这些提示信息"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "无法上传附件。请重试"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/generalSettings.json b/app/javascript/dashboard/i18n/locale/zh/generalSettings.json
index b6f30c288..5257a24cd 100644
--- a/app/javascript/dashboard/i18n/locale/zh/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/zh/generalSettings.json
@@ -1,12 +1,39 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "您已经超过对话限制。黑客计划只允许500次对话。",
+ "INBOXES": "您已超过收件箱限制。Hacker 计划只支持网站在线聊天。其他收件箱如电子邮件、WhatsApp 等需要付费计划。",
+ "AGENTS": "您已超过席位限制。当前计划只允许 {allowedAgents} 个席位。",
+ "NON_ADMIN": "请联系您的管理员升级计划并继续使用所有功能。"
+ },
"TITLE": "帐户设置",
"SUBMIT": "更新设置",
"BACK": "后退",
+ "DISMISS": "取消",
"UPDATE": {
"ERROR": "无法更新设置,请重试!",
"SUCCESS": "已成功更新账户设置"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "删除您的帐户",
+ "NOTE": "一旦您删除您的账户,您的所有数据将被删除。",
+ "BUTTON_TEXT": "删除您的账户",
+ "CONFIRM": {
+ "TITLE": "删除账户",
+ "MESSAGE": "删除您的账户是不可逆的。请在下面输入您的账户名称以确认您想要永久删除它。",
+ "BUTTON_TEXT": "删除",
+ "DISMISS": "取消",
+ "PLACE_HOLDER": "请输入 {accountName} 以确认"
+ },
+ "SUCCESS": "账户已标记为删除",
+ "FAILURE": "无法删除账户,请重试!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "已计划删除的账户",
+ "MESSAGE_MANUAL": "此账户已计划在 {deletionDate} 删除。该操作由管理员请求。你可以在该日期前取消删除。",
+ "MESSAGE_INACTIVITY": "此账户由于不活跃已计划在 {deletionDate} 删除。你可以在该日期前取消删除。",
+ "CLEAR_BUTTON": "取消已计划的删除"
+ }
+ },
"FORM": {
"ERROR": "请修正表单错误",
"GENERAL_SECTION": {
@@ -14,8 +41,36 @@
"NOTE": ""
},
"ACCOUNT_ID": {
- "TITLE": "Account ID",
- "NOTE": "This ID is required if you are building an API based integration"
+ "TITLE": "账号 ID",
+ "NOTE": "如果您正在构建基于 API 的集成,那么此 ID 是必需的"
+ },
+ "AUTO_RESOLVE": {
+ "TITLE": "自动解决对话",
+ "NOTE": "通过此项设置,系统可在对话静默一段时间后自动将其解决。",
+ "DURATION": {
+ "LABEL": "无活动持续时间",
+ "HELP": "在无活动后自动结束对话的时间段",
+ "PLACEHOLDER": "30",
+ "ERROR": "自动解决时长应在 10 分钟到 999 天之间",
+ "API": {
+ "SUCCESS": "自动解决设置已成功更新",
+ "ERROR": "更新自动解决设置失败"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "自定义自动解决消息",
+ "PLACEHOLDER": "由于闲置 15 天,对话被系统标记已解决",
+ "HELP": "会话自动解决之后发送给客户的消息"
+ },
+ "PREFERENCES": "偏好设置",
+ "LABEL": {
+ "LABEL": "自动解决后添加标签",
+ "PLACEHOLDER": "选择一个标签"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "跳过等待客服回复的会话"
+ },
+ "UPDATE_BUTTON": "保存修改"
},
"NAME": {
"LABEL": "帐户名称",
@@ -23,7 +78,7 @@
"ERROR": "请输入有效的帐户名称"
},
"LANGUAGE": {
- "LABEL": "网站语言(Beta)",
+ "LABEL": "站点语言",
"PLACEHOLDER": "您的帐户名称",
"ERROR": ""
},
@@ -37,15 +92,161 @@
"PLACEHOLDER": "您公司的支持邮件",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "排除未参加的对话",
+ "HELP": "启用后,系统将跳过解决仍在等待客服回复的对话。"
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "转录语音消息",
+ "NOTE": "自动转录对话中的语音消息。当发送或收到语音消息时生成转录的文本,并将其显示在消息旁边。",
+ "API": {
+ "SUCCESS": "语音转录设置更新成功",
+ "ERROR": "更新语音转录设置失败"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "自动解决前的无活动市场",
+ "HELP": "对话无活动时自动解决时长",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "自动解决时长应在 10 分钟到 999 天之间",
+ "API": {
+ "SUCCESS": "自动解决设置已成功更新",
+ "ERROR": "更新自动解决设置失败"
+ },
+ "UPDATE_BUTTON": "更新",
+ "MESSAGE_LABEL": "自定义解决消息",
+ "MESSAGE_PLACEHOLDER": "由于闲置 15 天,对话被系统标记已解决",
+ "MESSAGE_HELP": "当系统因为不活动而自动解决某个对话时,此消息将发送给客户。"
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "您的帐户启用了与电子邮件的对话连续性。",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "您现在可以在您的自定义域名的电子邮件中接收消息。"
}
+ },
+ "UPDATE_CHATWOOT": "Chatwoot 有可用更新{latestChatwootVersion},请更新您的应用。",
+ "LEARN_MORE": "了解更多",
+ "PAYMENT_PENDING": "您的付款尚未完成。请更新您的付款信息以继续使用Chatwoot",
+ "UPGRADE": "升级以继续使用 Chatwoot",
+ "LIMITS_UPGRADE": "您的账户已超过使用限制,请升级您的计划以继续使用Chatwoot",
+ "OPEN_BILLING": "查看计费"
+ },
+ "FORMS": {
+ "MULTISELECT": {
+ "ENTER_TO_SELECT": "按回车键选择",
+ "ENTER_TO_REMOVE": "按回车键删除",
+ "NO_OPTIONS": "列表为空",
+ "SELECT_ONE": "请选择一个",
+ "SELECT": "选择"
}
+ },
+ "NOTIFICATIONS_PAGE": {
+ "HEADER": "消息通知",
+ "MARK_ALL_DONE": "标记全部完成",
+ "DELETE_TITLE": "已删除",
+ "UNREAD_NOTIFICATION": {
+ "TITLE": "未读通知",
+ "ALL_NOTIFICATIONS": "查看所有通知",
+ "LOADING_UNREAD_MESSAGE": "正在加载未读通知...",
+ "EMPTY_MESSAGE": "您没有未读通知"
+ },
+ "LIST": {
+ "LOADING_MESSAGE": "正在加载通知...",
+ "404": "没有通知",
+ "TABLE_HEADER": [
+ "姓名:",
+ "电话号码",
+ "会话",
+ "上次联系"
+ ]
+ },
+ "TYPE_LABEL": {
+ "conversation_creation": "新建对话",
+ "conversation_assignment": "对话已分配",
+ "assigned_conversation_new_message": "新消息",
+ "participating_conversation_new_message": "新消息",
+ "conversation_mention": "提及",
+ "sla_missed_first_response": "未满足SLA要求",
+ "sla_missed_next_response": "未满足SLA要求",
+ "sla_missed_resolution": "未满足 SLA 要求"
+ }
+ },
+ "NETWORK": {
+ "NOTIFICATION": {
+ "OFFLINE": "离线的",
+ "RECONNECTING": "正在重连...",
+ "RECONNECT_SUCCESS": "已重新连接"
+ },
+ "BUTTON": {
+ "REFRESH": "刷新"
+ }
+ },
+ "COMMAND_BAR": {
+ "SEARCH_PLACEHOLDER": "搜索或跳转到",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
+ "SECTIONS": {
+ "GENERAL": "一般",
+ "REPORTS": "报告",
+ "CONVERSATION": "会话",
+ "BULK_ACTIONS": "批量操作",
+ "CHANGE_ASSIGNEE": "更改分配",
+ "CHANGE_PRIORITY": "更改优先级",
+ "CHANGE_TEAM": "更改团队",
+ "SNOOZE_CONVERSATION": "推迟对话",
+ "ADD_LABEL": "为对话添加标签",
+ "REMOVE_LABEL": "从对话移除标签",
+ "SETTINGS": "设置",
+ "AI_ASSIST": "AI 助手",
+ "APPEARANCE": "外观",
+ "SNOOZE_NOTIFICATION": "推迟通知"
+ },
+ "COMMANDS": {
+ "GO_TO_CONVERSATION_DASHBOARD": "转到对话面板",
+ "GO_TO_CONTACTS_DASHBOARD": "转到联系人面板",
+ "GO_TO_REPORTS_OVERVIEW": "前往报告概览",
+ "GO_TO_CONVERSATION_REPORTS": "前往对话报告",
+ "GO_TO_AGENT_REPORTS": "前往客服代理报告",
+ "GO_TO_LABEL_REPORTS": "前往标签报告",
+ "GO_TO_INBOX_REPORTS": "前往收件箱报告",
+ "GO_TO_TEAM_REPORTS": "前往团队报告",
+ "GO_TO_SETTINGS_AGENTS": "前往客服代理设置",
+ "GO_TO_SETTINGS_TEAMS": "前往团队设置",
+ "GO_TO_SETTINGS_INBOXES": "前往收件箱设置",
+ "GO_TO_SETTINGS_LABELS": "前往标签设置",
+ "GO_TO_SETTINGS_CANNED_RESPONSES": "前往预设回复设置",
+ "GO_TO_SETTINGS_APPLICATIONS": "转到应用程序设置",
+ "GO_TO_SETTINGS_ACCOUNT": "前往帐户设置",
+ "GO_TO_SETTINGS_PROFILE": "前往个人资料设置",
+ "GO_TO_NOTIFICATIONS": "转到通知",
+ "ADD_LABELS_TO_CONVERSATION": "为对话添加标签",
+ "ASSIGN_AN_AGENT": "分配一位客服代表",
+ "AI_ASSIST": "AI 助手",
+ "ASSIGN_PRIORITY": "分配优先级",
+ "ASSIGN_A_TEAM": "分配一个团队",
+ "MUTE_CONVERSATION": "静音对话",
+ "UNMUTE_CONVERSATION": "取消静音对话",
+ "REMOVE_LABEL_FROM_CONVERSATION": "从对话移除标签",
+ "REOPEN_CONVERSATION": "重新打开会话",
+ "RESOLVE_CONVERSATION": "解决会话",
+ "SEND_TRANSCRIPT": "发送电子邮件副本",
+ "SNOOZE_CONVERSATION": "暂停对话",
+ "UNTIL_NEXT_REPLY": "直到下次回复",
+ "UNTIL_NEXT_WEEK": "直到下周",
+ "UNTIL_TOMORROW": "直到明天",
+ "UNTIL_NEXT_MONTH": "直到下个月",
+ "AN_HOUR_FROM_NOW": "从现在起一小时",
+ "UNTIL_CUSTOM_TIME": "自定义……",
+ "CHANGE_APPEARANCE": "更改外观",
+ "LIGHT_MODE": "浅色",
+ "DARK_MODE": "深色",
+ "SYSTEM_MODE": "系统",
+ "SNOOZE_NOTIFICATION": "推迟通知"
+ }
+ },
+ "DASHBOARD_APPS": {
+ "LOADING_MESSAGE": "正在加载仪表板应用..."
+ },
+ "COMMON": {
+ "OR": "或",
+ "CLICK_HERE": "点击这里"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/zh/inboxMgmt.json
index 3de55f306..81965842b 100644
--- a/app/javascript/dashboard/i18n/locale/zh/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh/inboxMgmt.json
@@ -1,44 +1,78 @@
{
"INBOX_MGMT": {
"HEADER": "收件箱",
- "SIDEBAR_TXT": "
收件箱
当您将网站或Facebook页面连接到Chatwoot 它被称为一个 收件箱。 您可以在Chatwoot 帐户中拥有无限的收件箱。
点击 添加收件箱 连接网站或 Facebook 页面。
在仪表盘中 您可以在一个地方看到所有收件箱中的所有对话,并在“对话”选项卡下回复。
您也可以通过点击仪表板左侧面板上的收件箱名称看到针对收件箱的对话。
",
+ "DESCRIPTION": "频道是客户选择与您互动的方式。收件箱则是您用来管理特定频道互动的地方,它可以整合来自不同来源的通信,比如电子邮件、即时聊天和社交媒体等。",
+ "LEARN_MORE": "了解更多关于收件箱的信息",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "您的收件箱已断开连接。在您重新授权之前,您不会收到新消息。",
+ "CLICK_TO_RECONNECT": "点击此处重新连接。",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "此账户没有收件箱。"
},
- "CREATE_FLOW": [
- {
- "title": "选择频道",
- "route": "settings_inbox_new",
- "body": "选择你想要与Chatwoot 集成的提供商。"
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "选择频道",
+ "BODY": "选择你想要与Chatwoot 集成的提供商。"
},
- {
- "title": "新增收件箱",
- "route": "settings_inboxes_page_channel",
- "body": "验证您的帐户并创建收件箱。"
+ "INBOX": {
+ "TITLE": "新增收件箱",
+ "BODY": "验证您的帐户并创建收件箱。"
},
- {
- "title": "添加客服代理",
- "route": "settings_inboxes_add_agents",
- "body": "将客服添加到创建的收件箱。"
+ "AGENT": {
+ "TITLE": "添加客服代理",
+ "BODY": "将客服添加到创建的收件箱。"
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "你已设定状态为离开"
+ "FINISH": {
+ "TITLE": "搞定!",
+ "BODY": "你已设定状态为离开"
}
- ],
+ },
"ADD": {
+ "CHANNEL_NAME": {
+ "LABEL": "收件箱名称",
+ "PLACEHOLDER": "输入您的收件箱名称 (例如: Acme Inc)",
+ "ERROR": "请输入一个有效的收件箱名称"
+ },
+ "WEBSITE_NAME": {
+ "LABEL": "网站名称",
+ "PLACEHOLDER": "输入您的网站名称 (e.g: Acme Inc)"
+ },
"FB": {
"HELP": "注意: 通过登录,我们只能访问您的页面的消息。您的私人消息永远不能被聊天室访问。",
"CHOOSE_PAGE": "选择页面",
"CHOOSE_PLACEHOLDER": "从列表中选择一个页面",
"INBOX_NAME": "收件箱名称",
"ADD_NAME": "为收件箱添加名称",
- "PICK_NAME": "选择收件箱名称",
- "PICK_A_VALUE": "选择一个数值"
+ "PICK_NAME": "为收件箱选择一个名称",
+ "PICK_A_VALUE": "选择一个数值",
+ "CREATE_INBOX": "新增收件箱"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "在 Instagram 中继续",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "连接您的 Instagram 配置文件",
+ "HELP": "若要将您的 Instagram 配置文件添加为通道,您需要点击「继续使用 Instagram」来验证您的 Instagram 配置文件。 ",
+ "ERROR_MESSAGE": "连接到 Instagram 时出错,请重试",
+ "ERROR_AUTH": "连接到 Instagram 时出错,请重试",
+ "NEW_INBOX_SUGGESTION": "这个 Instagram 账户先前已连接到一个不同的收件箱,现在已经迁移到这里。 所有新消息都将出现在这里。旧收件箱将无法再发送或接收此账户的消息。",
+ "DUPLICATE_INBOX_BANNER": "此 Instagram 账户已迁移到新的 Instagram 通道收件箱。您将无法从此收件箱发送/接收 Instagram 消息。"
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
- "HELP": "若要将您的Twitter个人资料添加为频道,您需要通过点击“使用Twitter登录”来验证您的Twitter个人资料。 "
+ "HELP": "若要将您的Twitter个人资料添加为频道,您需要通过点击“使用Twitter登录”来验证您的Twitter个人资料。 ",
+ "ERROR_MESSAGE": "连接 Twitter 时出现错误,请重试",
+ "TWEETS": {
+ "ENABLE": "从提及的推文创建对话"
+ }
},
"WEBSITE_CHANNEL": {
"TITLE": "网站频道",
@@ -47,9 +81,10 @@
"CHANNEL_AVATAR": {
"LABEL": "频道头像"
},
- "CHANNEL_NAME": {
- "LABEL": "网站名称",
- "PLACEHOLDER": "输入您的网站名称 (e.g: Acme Inc)"
+ "CHANNEL_WEBHOOK_URL": {
+ "LABEL": "Webhook 网址",
+ "PLACEHOLDER": "请输入您的 Webhook URL",
+ "ERROR": "请输入一个有效的 URL"
},
"CHANNEL_DOMAIN": {
"LABEL": "网站域名",
@@ -69,24 +104,51 @@
},
"CHANNEL_GREETING_TOGGLE": {
"LABEL": "开启频道问候功能",
- "HELP_TEXT": "在用户开始对话时发送问候消息。",
+ "HELP_TEXT": "当客户开始对话并发送第一条消息时,自动发送问候消息。",
"ENABLED": "已启用",
"DISABLED": "已禁用"
},
+ "REPLY_TIME": {
+ "TITLE": "设置回复时间",
+ "IN_A_FEW_MINUTES": "几分钟前",
+ "IN_A_FEW_HOURS": "几个小时前",
+ "IN_A_DAY": "一天内",
+ "HELP_TEXT": "此回复时间将会显示在实时聊天窗口上"
+ },
"WIDGET_COLOR": {
"LABEL": "窗口小部件颜色",
"PLACEHOLDER": "更新小部件中使用的部件颜色"
},
- "SUBMIT_BUTTON": "创建收件箱"
+ "SUBMIT_BUTTON": "创建收件箱",
+ "API": {
+ "ERROR_MESSAGE": "我们无法创建一个网站频道,请重试"
+ }
},
"TWILIO": {
- "TITLE": "Twilio SMS/Whatsapp 频道",
- "DESC": "整合Twilio 并开始通过短信或Whatsap支持您的客户。",
+ "TITLE": "Twilio SMS/WhatsApp 频道",
+ "DESC": "整合 Twilio 并开始通过短信或 WhatsApp 支持您的客户。",
"ACCOUNT_SID": {
"LABEL": "账户 SID",
"PLACEHOLDER": "请输入您的 Twilio 账户 SID",
"ERROR": "此字段是必填项"
},
+ "API_KEY": {
+ "USE_API_KEY": "使用 API 密钥认证",
+ "LABEL": "API 密钥 SID",
+ "PLACEHOLDER": "请输入您的 API 密钥 SID",
+ "ERROR": "此字段是必填项"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API 密钥密码",
+ "PLACEHOLDER": "请输入您的 API 密钥密码",
+ "ERROR": "此字段是必填项"
+ },
+ "MESSAGING_SERVICE_SID": {
+ "LABEL": "短信服务 SID",
+ "PLACEHOLDER": "请输入您的 Twilio 短信服务 SID",
+ "ERROR": "此字段是必填项",
+ "USE_MESSAGING_SERVICE": "使用 Twilio 短信服务"
+ },
"CHANNEL_TYPE": {
"LABEL": "频道类型",
"ERROR": "请选择您的频道类型"
@@ -97,14 +159,14 @@
"ERROR": "此字段是必填项"
},
"CHANNEL_NAME": {
- "LABEL": "频道类型",
- "PLACEHOLDER": "请输入频道名称",
+ "LABEL": "收件箱名称",
+ "PLACEHOLDER": "请输入收件箱名称",
"ERROR": "此字段是必填项"
},
"PHONE_NUMBER": {
"LABEL": "电话号码",
"PLACEHOLDER": "请输入发送消息的电话号码。",
- "ERROR": "请输入一个有效的值。电话号码应该以`+`开始。"
+ "ERROR": "请提供一个有效的电话号码,以`+`符号开头,且不包含任何空格。"
},
"API_CALLBACK": {
"TITLE": "回调地址",
@@ -115,9 +177,188 @@
"ERROR_MESSAGE": "我们无法验证 Twilio 凭据,请重试"
}
},
+ "SMS": {
+ "TITLE": "短信通道",
+ "DESC": "开始通过短信支持您的客户",
+ "PROVIDERS": {
+ "LABEL": "API提供商",
+ "TWILIO": "Twilio",
+ "BANDWIDTH": "Bandwidth"
+ },
+ "API": {
+ "ERROR_MESSAGE": "我们无法保存短信通道"
+ },
+ "BANDWIDTH": {
+ "ACCOUNT_ID": {
+ "LABEL": "账号 ID",
+ "PLACEHOLDER": "请输入您的 Bandwidth 应用ID",
+ "ERROR": "此字段是必填项"
+ },
+ "API_KEY": {
+ "LABEL": "API 密钥",
+ "PLACEHOLDER": "请输入您的Bandwidth API Key",
+ "ERROR": "此字段是必填项"
+ },
+ "API_SECRET": {
+ "LABEL": "API秘钥",
+ "PLACEHOLDER": "请输入您的Bandwidth API Secret",
+ "ERROR": "此字段是必填项"
+ },
+ "APPLICATION_ID": {
+ "LABEL": "应用ID",
+ "PLACEHOLDER": "请输入您的 Bandwidth 应用ID",
+ "ERROR": "此字段是必填项"
+ },
+ "INBOX_NAME": {
+ "LABEL": "收件箱名称",
+ "PLACEHOLDER": "请输入收件箱名称",
+ "ERROR": "此字段是必填项"
+ },
+ "PHONE_NUMBER": {
+ "LABEL": "电话号码",
+ "PLACEHOLDER": "请输入发送消息的电话号码。",
+ "ERROR": "请提供以'+'号开头且不包含任何空格的有效电话号码"
+ },
+ "SUBMIT_BUTTON": "创建Bandwidth渠道",
+ "API": {
+ "ERROR_MESSAGE": "我们无法身份验证Bandwidth凭据,请重试"
+ },
+ "API_CALLBACK": {
+ "TITLE": "回调地址",
+ "SUBTITLE": "您必须使用这里提到的URL来配置Bandwidth的消息回调URL。"
+ }
+ }
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp 渠道",
+ "DESC": "开始通过WhatsApp支持您的客户",
+ "PROVIDERS": {
+ "LABEL": "API提供商",
+ "WHATSAPP_EMBEDDED": "WhatsApp 商务版",
+ "TWILIO": "Twilio",
+ "WHATSAPP_CLOUD": "WhatsApp 云服务",
+ "WHATSAPP_CLOUD_DESC": "通过 Meta 快速完成设置",
+ "TWILIO_DESC": "通过 Twilio 凭据连接",
+ "360_DIALOG": "360Dialog"
+ },
+ "SELECT_PROVIDER": {
+ "TITLE": "选择您的 API 提供商",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
+ "INBOX_NAME": {
+ "LABEL": "收件箱名称",
+ "PLACEHOLDER": "请输入收件箱名称",
+ "ERROR": "此字段是必填项"
+ },
+ "PHONE_NUMBER": {
+ "LABEL": "电话号码",
+ "PLACEHOLDER": "请输入发送消息的电话号码。",
+ "ERROR": "请提供以'+'号开头且不包含任何空格的有效电话号码"
+ },
+ "PHONE_NUMBER_ID": {
+ "LABEL": "电话号码标识",
+ "PLACEHOLDER": "请在输入框中输入从Facebook开发者控制台获得的电话号码标识",
+ "ERROR": "请输入一个有效的值"
+ },
+ "BUSINESS_ACCOUNT_ID": {
+ "LABEL": "企业账户ID",
+ "PLACEHOLDER": "请在输入框中输入从Facebook开发者控制台获得的企业账户ID",
+ "ERROR": "请输入一个有效的值"
+ },
+ "WEBHOOK_VERIFY_TOKEN": {
+ "LABEL": "Webhook 验证令牌",
+ "PLACEHOLDER": "请输入您要配置为Facebook Webhook的验证令牌。",
+ "ERROR": "请输入一个有效的值"
+ },
+ "API_KEY": {
+ "LABEL": "API 密钥",
+ "SUBTITLE": "配置 WhatsApp API 密钥",
+ "PLACEHOLDER": "API 密钥",
+ "ERROR": "请输入一个有效的值"
+ },
+ "API_CALLBACK": {
+ "TITLE": "回调地址",
+ "SUBTITLE": "您需要在Facebook开发者门户中使用下面显示的值配置Webhook URL和验证令牌。",
+ "WEBHOOK_URL": "Webhook 网址",
+ "WEBHOOK_VERIFICATION_TOKEN": "Webhook 验证令牌"
+ },
+ "SUBMIT_BUTTON": "创建WhatsApp频道",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "LOADING_SDK": "加载 Facebook SDK...",
+ "CANCELLED": "WhatsApp 注册已取消",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "正在等待认证...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "注册时发生错误",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "手动设置流程"
+ },
+ "API": {
+ "ERROR_MESSAGE": "我们无法保存 WhatsApp 通道"
+ }
+ },
+ "VOICE": {
+ "TITLE": "语音频道",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "电话号码",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "账户 SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "身份验证令牌",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API 密钥 SID",
+ "PLACEHOLDER": "输入您的 Twilio API 密钥的 SID",
+ "REQUIRED": "API 密钥 SID 未填写"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API 密钥密码",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "创建语音频道",
+ "API": {
+ "ERROR_MESSAGE": "我们无法创建语音频道"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API 频道",
- "DESC": "Integrate with API channel and start supporting your customers.",
+ "DESC": "与API通道集成,开始为您的客户提供支持",
"CHANNEL_NAME": {
"LABEL": "频道类型",
"PLACEHOLDER": "请输入频道名称",
@@ -125,7 +366,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhook 网址",
- "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.",
+ "SUBTITLE": "配置您希望接收事件回调的URL。",
"PLACEHOLDER": "Webhook 网址"
},
"SUBMIT_BUTTON": "创建 API 频道",
@@ -135,7 +376,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "电子邮件频道",
- "DESC": "Integrate you email inbox.",
+ "DESC": "集成您的电子邮件收件箱。",
"CHANNEL_NAME": {
"LABEL": "频道类型",
"PLACEHOLDER": "请输入频道名称",
@@ -143,35 +384,152 @@
},
"EMAIL": {
"LABEL": "Email",
- "SUBTITLE": "向您的客户发送支持工单的电子邮件",
+ "SUBTITLE": "提供您的客户发送支持请求的电子邮件地址",
"PLACEHOLDER": "Email"
},
"SUBMIT_BUTTON": "创建电子邮件频道",
"API": {
"ERROR_MESSAGE": "我们无法保存电子邮件频道"
},
- "FINISH_MESSAGE": "开始将您的电子邮件转发到以下电子邮件地址。"
+ "FINISH_MESSAGE": "开始将您的电子邮件转发到以下电子邮件地址。",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "点击这里",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
+ },
+ "LINE_CHANNEL": {
+ "TITLE": "LINE频道",
+ "DESC": "与LINE频道集成,开始为您的客户提供支持",
+ "CHANNEL_NAME": {
+ "LABEL": "频道类型",
+ "PLACEHOLDER": "请输入频道名称",
+ "ERROR": "此字段是必填项"
+ },
+ "LINE_CHANNEL_ID": {
+ "LABEL": "LINE 频道 ID",
+ "PLACEHOLDER": "LINE 频道 ID"
+ },
+ "LINE_CHANNEL_SECRET": {
+ "LABEL": "LINE 频道秘钥",
+ "PLACEHOLDER": "LINE 频道秘钥"
+ },
+ "LINE_CHANNEL_TOKEN": {
+ "LABEL": "LINE 频道验证令牌",
+ "PLACEHOLDER": "LINE 频道验证令牌"
+ },
+ "SUBMIT_BUTTON": "创建LINE频道",
+ "API": {
+ "ERROR_MESSAGE": "我们无法保存LINE频道"
+ },
+ "API_CALLBACK": {
+ "TITLE": "回调地址",
+ "SUBTITLE": "您需要在LINE应用程序中配置Webhook URL,使用此处提到的URL"
+ }
+ },
+ "TELEGRAM_CHANNEL": {
+ "TITLE": "Telegram 频道",
+ "DESC": "与Telegram通道集成,开始为您的客户提供支持",
+ "BOT_TOKEN": {
+ "LABEL": "机器人令牌",
+ "SUBTITLE": "配置您从 Telegram BotFather 获得的机器人令牌。",
+ "PLACEHOLDER": "机器人令牌"
+ },
+ "SUBMIT_BUTTON": "创建 Telegram 頻道",
+ "API": {
+ "ERROR_MESSAGE": "我们无法保存 Telegram 通道"
+ }
},
"AUTH": {
- "TITLE": "频道",
- "DESC": "目前我们支持网站在线聊天小部件、Facebook页面和Twitter配置文件作为平台。 我们在工作中拥有更多平台,如Whatsapp、Email、Telegram 和 Line,这些平台将很快出台。"
+ "TITLE": "选择一个通道",
+ "DESC": "Chatwoot支持实时聊天小部件、Facebook Messenger、Twitter个人资料、WhatsApp、电子邮件等作为通道。如果您想构建自定义通道,可以使用API通道创建。要开始,请从下面的通道中选择一个。",
+ "TITLE_NEXT": "完成设置",
+ "TITLE_FINISH": "搞定!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "网站",
+ "DESCRIPTION": "创建在线聊天小部件"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "连接您的 Facebook 页面"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "在 WhatsApp 上回应您的客户"
+ },
+ "EMAIL": {
+ "TITLE": "Email",
+ "DESCRIPTION": "连接到 Gmail、Outlook,或其他提供商"
+ },
+ "SMS": {
+ "TITLE": "短信",
+ "DESCRIPTION": "将短信频道与Twilio 或 Bandwidth 集成"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "使用我们的 API 创建一个自定义频道"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "使用 Bot 令牌配置 Telegram 频道"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "集成 Line"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "连接您的 instagram 帐户"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "语音",
+ "DESCRIPTION": "与 Twilio 语音集成"
+ }
+ }
},
"AGENTS": {
"TITLE": "客服代理们",
- "DESC": "在这里您可以添加代理来管理您新创建的收件箱。只有这些选定的代理才能访问您的收件箱。 不属于此收件箱的代理人在登录时将无法看到或回复此收件箱中的消息。
PS: 作为管理员,如果您需要访问所有收件箱, 您应该将自己添加到您创建的所有收件箱中。"
+ "DESC": "在这里您可以添加代理来管理您新创建的收件箱。只有这些选定的代理才能访问您的收件箱。不属于此收件箱的代理人在登录时将无法看到或回复此收件箱中的消息。
PS:作为管理员,如果您需要访问所有收件箱,您应该将自己添加到您创建的所有收件箱中。",
+ "VALIDATION_ERROR": "请至少为您的收件箱添加一个代理",
+ "PICK_AGENTS": "为收件箱选择代理"
},
"DETAILS": {
"TITLE": "收件箱详细信息",
- "DESC": "从下面的下拉菜单中选择您想要连接到聊天室的 Facebook 页面。 您也可以给您的收件箱提供一个自定义名称以便更好地识别身份。"
+ "DESC": "从下面的下拉菜单中选择您想要连接到聊天室的 Facebook 页面。您也可以给您的收件箱提供一个自定义名称以便更好地识别身份。"
},
"FINISH": {
- "TITLE": "已被注明!",
- "DESC": "您已成功地将您的Facebook页面与Chatwoot集成。下次客户消息您的页面时,对话将自动出现在收件箱中。
我们还为您提供了一个小部件脚本,您可以轻松地添加到您的网站。 在您的网站上登录后, 客户可以在没有任何外部工具帮助的情况下从您的网站向您发送消息,对话将会在这里出现在Chatwoot 上。
酷,好吧?好吧,我们肯定试着是 :)"
+ "TITLE": "搞定!",
+ "DESC": "您已成功地将您的Facebook页面与Chatwoot集成。下次客户消息您的页面时,对话将自动出现在收件箱中。
我们还为您提供了一个小部件脚本,您可以轻松地添加到您的网站。在您的网站上登录后,客户可以在没有任何外部工具帮助的情况下从您的网站向您发送消息,对话将会在这里出现在Chatwoot上。
酷,对吧?我们肯定试着是 :)"
+ },
+ "EMAIL_PROVIDER": {
+ "TITLE": "选择您的电子邮件提供商",
+ "DESCRIPTION": "从下面的列表中选择一个电子邮件提供商。如果您的电子邮件提供商不在列表中,您可以选择其他提供商选项并提供 IMAP 和 SMTP 凭据。"
+ },
+ "MICROSOFT": {
+ "TITLE": "Microsoft Email",
+ "DESCRIPTION": "点击“使用Microsoft登录”按钮以开始。您将被重定向到电子邮件登录页面。一旦您接受了请求的权限,您将被重定向回收件箱创建步骤。",
+ "EMAIL_PLACEHOLDER": "输入电子邮件地址",
+ "SIGN_IN": "使用Microsoft登录",
+ "ERROR_MESSAGE": "连接Microsoft时出现错误,请重试"
+ },
+ "GOOGLE": {
+ "TITLE": "Google 邮箱",
+ "DESCRIPTION": "点击“使用Google登录”按钮以开始。您将被重定向到电子邮件登录页面。一旦您接受了请求的权限,您将被重定向回收件箱创建步骤。",
+ "SIGN_IN": "使用Google登录",
+ "EMAIL_PLACEHOLDER": "输入电子邮件地址",
+ "ERROR_MESSAGE": "连接Google时出现错误,请重试"
}
},
"DETAILS": {
"LOADING_FB": "在 Facebook 上认证你... ..",
+ "ERROR_FB_LOADING": "加载Facebook SDK时出错。请禁用任何广告拦截器并尝试使用不同的浏览器。",
"ERROR_FB_AUTH": "出错了,请刷新页面...",
+ "ERROR_FB_UNAUTHORIZED": "您无权执行此操作。",
+ "ERROR_FB_UNAUTHORIZED_HELP": "请确保您拥有对Facebook页面的完全控制权。您可以在
这里 阅读更多关于Facebook角色的信息。",
"CREATING_CHANNEL": "创建您的收件箱...",
"TITLE": "配置收件箱详情",
"DESC": ""
@@ -182,9 +540,13 @@
},
"FINISH": {
"TITLE": "您的收件箱已准备就绪!",
- "MESSAGE": "您现在可以通过您的新频道与您的客户联系。快乐支持 ",
+ "MESSAGE": "您现在可以通过您的新频道与您的客户联系。快乐支持",
"BUTTON_TEXT": "带我到这里",
- "WEBSITE_SUCCESS": "您已成功完成创建网站频道。复制下面显示的代码并将其粘贴在您的网站上。 下次客户使用实时聊天时,对话将自动出现在您的收件箱中。"
+ "MORE_SETTINGS": "更多设置",
+ "WEBSITE_SUCCESS": "您已成功完成创建网站频道。复制下面显示的代码并将其粘贴在您的网站上。下次客户使用实时聊天时,对话将自动出现在您的收件箱中。",
+ "WHATSAPP_QR_INSTRUCTION": "扫描上面的二维码以快速测试您的 WhatsApp 收件箱",
+ "MESSENGER_QR_INSTRUCTION": "扫描上面的二维码以快速测试您的 Facebook Messenger 收件箱",
+ "TELEGRAM_QR_INSTRUCTION": "扫描以上二维码以快速测试您的 Telegram 收件箱"
},
"REAUTH": "重新授权",
"VIEW": "查看",
@@ -192,47 +554,586 @@
"API": {
"SUCCESS_MESSAGE": "已成功更新收件箱设置",
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "自动分配成功更新",
- "ERROR_MESSAGE": "无法更新部件颜色。请稍后再试。"
+ "ERROR_MESSAGE": "我们无法更新收件箱设置。请稍后再试。"
},
- "AUTO_ASSIGNMENT": {
+ "EMAIL_COLLECT_BOX": {
"ENABLED": "已启用",
"DISABLED": "已禁用"
+ },
+ "ENABLE_CSAT": {
+ "ENABLED": "已启用",
+ "DISABLED": "已禁用"
+ },
+ "SENDER_NAME_SECTION": {
+ "TITLE": "发件人姓名",
+ "SUB_TEXT": "选择您的客户在收到您的代理的电子邮件时显示的名称。",
+ "FOR_EG": "例如:",
+ "FRIENDLY": {
+ "TITLE": "友好的",
+ "FROM": "发自",
+ "SUBTITLE": "在发件人姓名中添加回复的代理名称,使其更加友好。"
+ },
+ "PROFESSIONAL": {
+ "TITLE": "专业的",
+ "SUBTITLE": "仅在电子邮件标题中使用配置的业务名称作为发件人姓名。"
+ },
+ "BUSINESS_NAME": {
+ "BUTTON_TEXT": "配置您的业务名称",
+ "PLACEHOLDER": "输入您的业务名称",
+ "SAVE_BUTTON_TEXT": "保存"
+ }
+ },
+ "ALLOW_MESSAGES_AFTER_RESOLVED": {
+ "ENABLED": "已启用",
+ "DISABLED": "已禁用"
+ },
+ "ENABLE_CONTINUITY_VIA_EMAIL": {
+ "ENABLED": "已启用",
+ "DISABLED": "已禁用"
+ },
+ "LOCK_TO_SINGLE_CONVERSATION": {
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
+ },
+ "ENABLE_HMAC": {
+ "LABEL": "启用"
}
},
"DELETE": {
"BUTTON_TEXT": "删除",
+ "AVATAR_DELETE_BUTTON_TEXT": "删除头像",
"CONFIRM": {
"TITLE": "确认删除",
- "MESSAGE": "您确定要删除吗? ",
- "YES": "是,删除 ",
- "NO": "不,保留 "
+ "MESSAGE": "您确定要删除吗?",
+ "PLACE_HOLDER": "请输入 {inboxName} 以确认",
+ "YES": "是,删除",
+ "NO": "不,保留"
},
"API": {
"SUCCESS_MESSAGE": "收件箱删除成功",
- "ERROR_MESSAGE": "无法删除收件箱。请稍后再试。"
+ "ERROR_MESSAGE": "无法删除收件箱。请稍后再试。",
+ "AVATAR_SUCCESS_MESSAGE": "收件箱头像删除成功",
+ "AVATAR_ERROR_MESSAGE": "无法删除收件箱头像。请稍后再试。"
}
},
"TABS": {
"SETTINGS": "设置",
- "COLLABORATORS": "Collaborators",
- "CONFIGURATION": "Configuration"
+ "COLLABORATORS": "协作者",
+ "CONFIGURATION": "配置",
+ "CAMPAIGN": "活动",
+ "PRE_CHAT_FORM": "预聊天表单",
+ "BUSINESS_HOURS": "工作时间",
+ "WIDGET_BUILDER": "小部件生成器",
+ "BOT_CONFIGURATION": "机器人配置",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "客户满意度"
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "已批准",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "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": "设置",
"FEATURES": {
- "LABEL": "Features",
- "DISPLAY_FILE_PICKER": "Display file picker on the widget",
- "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget"
+ "LABEL": "特性",
+ "DISPLAY_FILE_PICKER": "在小部件上显示文件选择器",
+ "DISPLAY_EMOJI_PICKER": "在小部件上显示表情选择器",
+ "ALLOW_END_CONVERSATION": "允许用户从小部件结束对话",
+ "USE_INBOX_AVATAR_FOR_BOT": "使用收件箱名称和头像作为机器人"
},
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger 脚本",
"MESSENGER_SUB_HEAD": "将此按钮放置在窗体标签中",
+ "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": "example.com, www.example.com, app.example.com"
+ },
"INBOX_AGENTS": "客服代理们",
"INBOX_AGENTS_SUB_TEXT": "添加或删除此收件箱中的客服",
+ "AGENT_ASSIGNMENT": "对话分配",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "更新对话分配设置",
"UPDATE": "更新",
+ "ENABLE_EMAIL_COLLECT_BOX": "启用电子邮件收集框",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "在新对话中启用或禁用电子邮件收集框",
"AUTO_ASSIGNMENT": "启用自动分配",
+ "SENDER_NAME_SECTION": "在电子邮件中启用代理名称",
+ "SENDER_NAME_SECTION_TEXT": "启用/禁用在电子邮件中显示代理名称,如果禁用,将显示业务名称",
+ "ENABLE_CONTINUITY_VIA_EMAIL": "通过电子邮件启用对话连续性",
+ "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "如果有联系人的电子邮件地址,对话将会继续在电子邮件中进行。",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "收件箱设置",
"INBOX_UPDATE_SUB_TEXT": "更新收件箱设置",
- "AUTO_ASSIGNMENT_SUB_TEXT": "启用或禁用添加到此收件箱的代理人自动分配新的会话。"
+ "AUTO_ASSIGNMENT_SUB_TEXT": "启用或禁用添加到此收件箱的代理人自动分配新的会话。",
+ "HMAC_VERIFICATION": "用户身份验证",
+ "HMAC_DESCRIPTION": "使用这个密钥,您可以生成一个秘密令牌,用于验证您用户的身份",
+ "HMAC_LINK_TO_DOCS": "您可以在这里阅读更多信息。",
+ "HMAC_MANDATORY_VERIFICATION": "强制执行用户身份验证",
+ "HMAC_MANDATORY_DESCRIPTION": "如果启用,无法验证的请求将被拒绝。",
+ "INBOX_IDENTIFIER": "收件箱标识符",
+ "INBOX_IDENTIFIER_SUB_TEXT": "使用此处显示的`inbox_identifier`令牌来验证您的API客户端。",
+ "FORWARD_EMAIL_TITLE": "转发到电子邮件",
+ "FORWARD_EMAIL_SUB_TEXT": "开始将您的电子邮件转发到以下电子邮件地址。",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
+ "ALLOW_MESSAGES_AFTER_RESOLVED": "允许在对话解决后发送消息",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "允许最终用户在对话解决后发送消息。",
+ "WHATSAPP_SECTION_SUBHEADER": "此API密钥用于与WhatsApp API集成。",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "输入新的API密钥以用于与WhatsApp API集成。",
+ "WHATSAPP_SECTION_TITLE": "API 密钥",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "更新API密钥",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "在此处输入新的API密钥",
+ "WHATSAPP_SECTION_UPDATE_BUTTON": "更新",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp 嵌入注册",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "此收件箱已通过嵌入注册的 WhatsApp 连接。",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "您可以重新配置此收件箱来更新您的 WhatsApp Business 设置。",
+ "WHATSAPP_RECONFIGURE_BUTTON": "重新配置",
+ "WHATSAPP_CONNECT_TITLE": "连接到 WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "连接",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp ID未配置。请联系您的管理员。",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook 验证令牌",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "此令牌用于验证webhook端点的真实性。",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "同步模板",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "更新预聊天表单设置"
+ },
+ "HELP_CENTER": {
+ "LABEL": "帮助中心",
+ "PLACEHOLDER": "选择帮助中心",
+ "SELECT_PLACEHOLDER": "选择帮助中心",
+ "NONE": "啥都没有",
+ "REMOVE": "移除帮助中心",
+ "SUB_TEXT": "将帮助中心附加到收件箱"
+ },
+ "AUTO_ASSIGNMENT": {
+ "MAX_ASSIGNMENT_LIMIT": "自动分配限制",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "请输入一个大于0的值",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "限制从此收件箱自动分配给代理的对话的最大数量"
+ },
+ "ASSIGNMENT": {
+ "TITLE": "对话分配",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "状态",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "取消",
+ "CONFIRM_DELETE": "删除",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
+ "FACEBOOK_REAUTHORIZE": {
+ "TITLE": "重新授权",
+ "SUBTITLE": "您的Facebook连接已过期,请重新连接您的Facebook页面以继续服务",
+ "MESSAGE_SUCCESS": "重新连接成功",
+ "MESSAGE_ERROR": "出现错误,请重试"
+ },
+ "PRE_CHAT_FORM": {
+ "DESCRIPTION": "预聊天表单使您能够在用户开始与您对话之前捕获用户信息。",
+ "SET_FIELDS": "预聊天表单字段",
+ "SET_FIELDS_HEADER": {
+ "FIELDS": "字段",
+ "LABEL": "标签",
+ "PLACE_HOLDER": "占位符",
+ "KEY": "键",
+ "TYPE": "类型",
+ "REQUIRED": "必填项"
+ },
+ "ENABLE": {
+ "LABEL": "启用预聊天表单",
+ "OPTIONS": {
+ "ENABLED": "是",
+ "DISABLED": "否"
+ }
+ },
+ "PRE_CHAT_MESSAGE": {
+ "LABEL": "预聊天消息",
+ "PLACEHOLDER": "此消息将与表单一起显示给用户"
+ },
+ "REQUIRE_EMAIL": {
+ "LABEL": "访客在开始聊天前应提供他们的姓名和电子邮件地址"
+ }
+ },
+ "CSAT": {
+ "TITLE": "启用CSAT",
+ "SUBTITLE": "在对话结束时自动启动 CSAT 问卷,以了解客户如何感觉到他们的支持体验。 跟踪满意的趋势并查明一段时间内需要改进的领域。",
+ "DISPLAY_TYPE": {
+ "LABEL": "显示类型"
+ },
+ "MESSAGE": {
+ "LABEL": "消息",
+ "PLACEHOLDER": "请输入一条消息以将此表格显示给用户"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "语言",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "返回"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "问卷规则",
+ "DESCRIPTION_PREFIX": "发送此问卷如果对话",
+ "DESCRIPTION_SUFFIX": "任意标签",
+ "OPERATOR": {
+ "CONTAINS": "包含",
+ "DOES_NOT_CONTAINS": "不包含"
+ },
+ "SELECT_PLACEHOLDER": "选择标签"
+ },
+ "NOTE": "注:每次对话只发送一次 CSAT 问卷",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT 设置更新成功",
+ "ERROR_MESSAGE": "我们无法更新 CSAT 设置。请稍后再试。"
+ }
+ },
+ "BUSINESS_HOURS": {
+ "TITLE": "设置您的可用性",
+ "SUBTITLE": "在您的实时聊天小部件上设置您的可用性",
+ "WEEKLY_TITLE": "设置您的每周工作时间",
+ "TIMEZONE_LABEL": "选择时区",
+ "UPDATE": "更新工作时间设置",
+ "TOGGLE_AVAILABILITY": "为此收件箱启用业务可用性",
+ "UNAVAILABLE_MESSAGE_LABEL": "对访客的不可用消息",
+ "TOGGLE_HELP": "启用业务可用性将在实时聊天小部件上显示可用时间,即使所有代理都离线。在可用时间之外,访客将收到一条消息和预聊天表单的警告。",
+ "DAY": {
+ "DAY": "日",
+ "AVAILABILITY": "有效的",
+ "HOURS": "小时",
+ "ENABLE": "为此天启用可用性",
+ "UNAVAILABLE": "不可用",
+ "VALIDATION_ERROR": "起始时间应在结束时间之前。",
+ "CHOOSE": "选择"
+ },
+ "ALL_DAY": "全天"
+ },
+ "IMAP": {
+ "TITLE": "IMAP",
+ "SUBTITLE": "设置您的IMAP详情",
+ "NOTE_TEXT": "要启用SMTP,请配置IMAP。",
+ "UPDATE": "更新IMAP设置",
+ "TOGGLE_AVAILABILITY": "为此收件箱启用IMAP配置",
+ "TOGGLE_HELP": "启用IMAP将帮助用户接收电子邮件",
+ "EDIT": {
+ "SUCCESS_MESSAGE": "IMAP设置更新成功",
+ "ERROR_MESSAGE": "无法更新IMAP设置"
+ },
+ "ADDRESS": {
+ "LABEL": "地址",
+ "PLACE_HOLDER": "地址 (例如:imap.gmail.com)"
+ },
+ "PORT": {
+ "LABEL": "端口",
+ "PLACE_HOLDER": "端口"
+ },
+ "LOGIN": {
+ "LABEL": "登录",
+ "PLACE_HOLDER": "登录"
+ },
+ "PASSWORD": {
+ "LABEL": "密码",
+ "PLACE_HOLDER": "密码"
+ },
+ "ENABLE_SSL": "启用SSL"
+ },
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "SUBTITLE": "重新授权您的Microsoft帐户"
+ },
+ "SMTP": {
+ "TITLE": "SMTP",
+ "SUBTITLE": "设置您的SMTP详情",
+ "UPDATE": "更新SMTP设置",
+ "TOGGLE_AVAILABILITY": "为此收件箱启用SMTP配置",
+ "TOGGLE_HELP": "启用SMTP将帮助用户发送电子邮件",
+ "EDIT": {
+ "SUCCESS_MESSAGE": "SMTP设置更新成功",
+ "ERROR_MESSAGE": "无法更新SMTP设置"
+ },
+ "ADDRESS": {
+ "LABEL": "地址",
+ "PLACE_HOLDER": "地址 (例如:smtp.gmail.com)"
+ },
+ "PORT": {
+ "LABEL": "端口",
+ "PLACE_HOLDER": "端口"
+ },
+ "LOGIN": {
+ "LABEL": "登录",
+ "PLACE_HOLDER": "登录"
+ },
+ "PASSWORD": {
+ "LABEL": "密码",
+ "PLACE_HOLDER": "密码"
+ },
+ "DOMAIN": {
+ "LABEL": "域名",
+ "PLACE_HOLDER": "域名"
+ },
+ "ENCRYPTION": "加密",
+ "SSL_TLS": "SSL/TLS",
+ "START_TLS": "STARTTLS",
+ "OPEN_SSL_VERIFY_MODE": "Open SSL 验证模式",
+ "AUTH_MECHANISM": "认证机制"
+ },
+ "NOTE": "注意:",
+ "WIDGET_BUILDER": {
+ "WIDGET_OPTIONS": {
+ "AVATAR": {
+ "LABEL": "网站头像",
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "头像删除成功",
+ "ERROR_MESSAGE": "出现错误,请重试"
+ }
+ }
+ },
+ "WEBSITE_NAME": {
+ "LABEL": "网站名称",
+ "PLACE_HOLDER": "输入您的网站名称 (例如:Acme Inc)",
+ "ERROR": "请输入有效的网站名称"
+ },
+ "WELCOME_HEADING": {
+ "LABEL": "欢迎标题:",
+ "PLACE_HOLDER": "你好!"
+ },
+ "WELCOME_TAGLINE": {
+ "LABEL": "欢迎标签行",
+ "PLACE_HOLDER": "如有疑问,请联系我们"
+ },
+ "REPLY_TIME": {
+ "LABEL": "回复时间",
+ "IN_A_FEW_MINUTES": "通常在几分钟内回复您",
+ "IN_A_FEW_HOURS": "通常在几小时内回复您",
+ "IN_A_DAY": "通常在一天之内回复您"
+ },
+ "WIDGET_COLOR_LABEL": "窗口小部件颜色",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "类型:",
+ "WIDGET_BUBBLE_LAUNCHER_TITLE": {
+ "DEFAULT": "联系我们",
+ "LABEL": "Launcher Title",
+ "PLACE_HOLDER": "联系我们"
+ },
+ "UPDATE": {
+ "BUTTON_TEXT": "更新小部件设置",
+ "API": {
+ "SUCCESS_MESSAGE": "小部件设置更新成功",
+ "ERROR_MESSAGE": "无法更新小部件设置"
+ }
+ },
+ "WIDGET_VIEW_OPTION": {
+ "PREVIEW": "预览",
+ "SCRIPT": "脚本"
+ },
+ "WIDGET_BUBBLE_POSITION": {
+ "LEFT": "左侧",
+ "RIGHT": "右侧"
+ },
+ "WIDGET_BUBBLE_TYPE": {
+ "STANDARD": "标准",
+ "EXPANDED_BUBBLE": "扩展气泡"
+ }
+ },
+ "WIDGET_SCREEN": {
+ "DEFAULT": "默认",
+ "CHAT": "Chat mode"
+ },
+ "REPLY_TIME": {
+ "IN_A_FEW_MINUTES": "通常在几分钟内回复您",
+ "IN_A_FEW_HOURS": "通常在几小时内回复您",
+ "IN_A_DAY": "通常在一天之内回复您"
+ },
+ "FOOTER": {
+ "START_CONVERSATION_BUTTON_TEXT": "开始会话",
+ "CHAT_INPUT_PLACEHOLDER": "输入您的消息"
+ },
+ "BODY": {
+ "TEAM_AVAILABILITY": {
+ "ONLINE": "我们在线",
+ "OFFLINE": "当前已离线"
+ },
+ "USER_MESSAGE": "嗨",
+ "AGENT_MESSAGE": "您好"
+ },
+ "BRANDING_TEXT": "由 Chatwoot 支持",
+ "SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
+ },
+ "EMAIL_PROVIDERS": {
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "与 Microsoft 关联"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "与 Google 关联"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "其他提供商",
+ "DESCRIPTION": "与其他提供商关联"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "网站",
+ "TWITTER_PROFILE": "推特",
+ "TWILIO_SMS": "Twilio 短信",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "短信",
+ "EMAIL": "电子邮件",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API 频道",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "语音"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/integrations.json b/app/javascript/dashboard/i18n/locale/zh/integrations.json
index 17952efd1..ce4634f0c 100644
--- a/app/javascript/dashboard/i18n/locale/zh/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/zh/integrations.json
@@ -1,63 +1,1021 @@
{
"INTEGRATION_SETTINGS": {
- "HEADER": "Integrations",
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "取消",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
+ "HEADER": "集成设置",
+ "DESCRIPTION": "Chatwoot 集成了多种工具和服务,以提高团队效率。浏览以下列表以配置您喜欢的应用程序。",
+ "LEARN_MORE": "了解更多关于集成的信息",
+ "LOADING": "正在获取集成",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "您的账户未启用 Captain。",
+ "CLICK_HERE_TO_CONFIGURE": "点击此处配置",
+ "LOADING_CONSOLE": "正在加载 Captain 控制台……",
+ "FAILED_TO_LOAD_CONSOLE": "加载 Captain 控制台失败。请刷新页面并重试。"
+ },
"WEBHOOK": {
- "TITLE": "Webhook",
- "CONFIGURE": "Configure",
- "HEADER": "Webhook settings",
- "HEADER_BTN_TXT": "Add new webhook",
- "INTEGRATION_TXT": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. You can make use of the webhooks to communicate the events to your favourite apps like Slack or Github. Click on Configure to set up your webhooks.",
- "LOADING": "Fetching attached webhooks",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "
Webhooks
Webhooks are HTTP callbacks which can be defined for every account. They are triggered by events like message creation in Chatwoot. You can create more than one webhook for this account.
For creating a webhook, click on the Add new webhook button. You can also remove any existing webhook by clicking on the Delete button.
",
+ "SUBSCRIBED_EVENTS": "订阅事件",
+ "LEARN_MORE": "了解更多关于 Webhooks 的信息",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
+ "FORM": {
+ "CANCEL": "取消",
+ "DESC": "Webhook 事件为您提供了有关 Chatwoot 账户中发生的事情的实时信息。请输入一个有效的 URL 来配置回调。",
+ "SUBSCRIPTIONS": {
+ "LABEL": "事件",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "对话创建",
+ "CONVERSATION_STATUS_CHANGED": "对话状态已更改",
+ "CONVERSATION_UPDATED": "对话已更新",
+ "MESSAGE_CREATED": "消息已创建",
+ "MESSAGE_UPDATED": "消息已更新",
+ "WEBWIDGET_TRIGGERED": "用户打开实时聊天小部件",
+ "CONTACT_CREATED": "联系人已创建",
+ "CONTACT_UPDATED": "联系人已更新",
+ "CONVERSATION_TYPING_ON": "对话输入开启",
+ "CONVERSATION_TYPING_OFF": "对话输入关闭"
+ }
+ },
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
+ "END_POINT": {
+ "LABEL": "Webhook 网址",
+ "PLACEHOLDER": "例如:{webhookExampleURL}",
+ "ERROR": "请输入一个有效的 URL"
+ },
+ "EDIT_SUBMIT": "更新 Webhook",
+ "ADD_SUBMIT": "创建 Webhook"
+ },
+ "TITLE": "回调接口地址",
+ "CONFIGURE": "配置",
+ "HEADER": "Webhook 设置",
+ "HEADER_BTN_TXT": "添加新的 Webhook",
+ "LOADING": "正在获取已添加的 Webhooks",
+ "SEARCH_404": "没有任何项目符合此查询",
+ "SIDEBAR_TXT": "
Webhooks
Webhooks 是 HTTP 回调,可以为每个账户定义。它们由诸如在 Chatwoot 中创建消息等事件触发。您可以为此账户创建多个 Webhooks。
要创建一个 Webhook,点击 添加新的 Webhook 按钮。您也可以通过点击删除按钮删除任何现有的 Webhook。
",
"LIST": {
- "404": "There are no webhooks configured for this account.",
- "TITLE": "Manage webhooks",
- "DESC": "Webhooks are predefined reply templates which can be used to quickly send out replies to tickets.",
- "TABLE_HEADER": [
- "Webhook endpoint",
- "Actions"
- ]
+ "404": "此账户没有配置 Webhooks。",
+ "TITLE": "管理 Webhooks",
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook 端点",
+ "ACTIONS": "操作"
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "编辑",
+ "TITLE": "编辑 Webhook",
+ "API": {
+ "SUCCESS_MESSAGE": "Webhook 配置更新成功",
+ "ERROR_MESSAGE": "无法连接服务器,请稍后再试"
+ }
},
"ADD": {
- "CANCEL": "Cancel",
- "TITLE": "Add new webhook",
- "DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
- "FORM": {
- "END_POINT": {
- "LABEL": "Webhook URL",
- "PLACEHOLDER": "Example: https://example/api/webhook",
- "ERROR": "Please enter a valid URL"
- },
- "SUBMIT": "Create webhook"
- },
+ "CANCEL": "取消操作",
+ "TITLE": "添加新的 Webhook",
"API": {
- "SUCCESS_MESSAGE": "Webhook added successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "Webhook 配置添加成功",
+ "ERROR_MESSAGE": "无法连接服务器,请稍后再试"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "删除",
"API": {
- "SUCCESS_MESSAGE": "Webhook deleted successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "Webhook 删除成功",
+ "ERROR_MESSAGE": "无法连接服务器,请稍后再试"
},
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete ",
- "YES": "Yes, Delete ",
- "NO": "No, Keep it"
+ "TITLE": "确认删除",
+ "MESSAGE": "您确定要删除该 Webhook 吗?({webhookURL})",
+ "YES": "是,删除",
+ "NO": "否,保留它"
}
}
},
+ "SLACK": {
+ "HEADER": "Slack",
+ "DELETE": "删除",
+ "DELETE_CONFIRMATION": {
+ "TITLE": "删除集成",
+ "MESSAGE": "您确定要删除该集成吗?这样做将导致您无法在 Slack 工作区中访问对话。"
+ },
+ "HELP_TEXT": {
+ "TITLE": "使用 Slack 集成?",
+ "BODY": "通过此集成,所有传入的对话将同步到您的 Slack 工作区中的 ***{selectedChannelName}*** 频道。您可以直接在频道中管理所有客户对话,再也不会错过任何消息。\n\n以下是该集成的主要功能:\n\n**从 Slack 回复对话:** 要在 ***{selectedChannelName}*** Slack 频道中回复对话,只需输入您的消息并将其作为线程发送。这将通过 Chatwoot 创建对客户的回复。就是这么简单!\n\n**创建私密笔记:** 如果您想创建私密笔记而不是回复,请在消息开头加上 ***`note:`***。这将确保您的消息保持私密,不会对客户可见。\n\n**关联客服资料:** 如果在 Slack 上回复的人拥有与 Chatwoot 中相同电子邮件的客服资料,回复将自动与该客服资料关联。这意味着您可以轻松跟踪谁在何时说了什么。另一方面,如果回复者没有关联的客服资料,回复将显示为机器人资料。",
+ "SELECTED": "已选择"
+ },
+ "SELECT_CHANNEL": {
+ "OPTION_LABEL": "选择一个频道",
+ "UPDATE": "更新",
+ "BUTTON_TEXT": "连接频道",
+ "DESCRIPTION": "您的 Slack 工作区现已与 Chatwoot 连接。但是,集成当前处于非活动状态。要激活集成并将频道连接到 Chatwoot,请点击下面的按钮。\n\n**注意:** 如果您尝试连接私有频道,请在进行此步骤之前将 Chatwoot 应用添加到 Slack 频道。",
+ "ATTENTION_REQUIRED": "需要关注",
+ "EXPIRED": "您的 Slack 集成已过期。要继续在 Slack 上接收消息,请删除该集成并重新连接您的工作区。"
+ },
+ "UPDATE_ERROR": "更新集成时出错,请重试",
+ "UPDATE_SUCCESS": "频道连接成功",
+ "FAILED_TO_FETCH_CHANNELS": "获取 Slack 频道时出错,请重试"
+ },
+ "DYTE": {
+ "CLICK_HERE_TO_JOIN": "点击此处加入",
+ "LEAVE_THE_ROOM": "离开房间",
+ "START_VIDEO_CALL_HELP_TEXT": "与客户开始新的视频通话",
+ "JOIN_ERROR": "加入通话时出错,请重试",
+ "CREATE_ERROR": "创建会议链接时出错,请重试"
+ },
+ "OPEN_AI": {
+ "AI_ASSIST": "AI 助手",
+ "WITH_AI": " 使用 AI {option} ",
+ "OPTIONS": {
+ "REPLY_SUGGESTION": "回复建议",
+ "SUMMARIZE": "总结",
+ "REPHRASE": "改进写作",
+ "FIX_SPELLING_GRAMMAR": "修正拼写和语法",
+ "SHORTEN": "缩短",
+ "EXPAND": "扩展",
+ "MAKE_FRIENDLY": "将消息语气改为友好",
+ "MAKE_FORMAL": "使用正式语气",
+ "SIMPLIFY": "简化",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "专业",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "友好"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
+ },
+ "ASSISTANCE_MODAL": {
+ "DRAFT_TITLE": "草稿内容",
+ "GENERATED_TITLE": "生成内容",
+ "AI_WRITING": "AI 正在写作",
+ "BUTTONS": {
+ "APPLY": "使用此建议",
+ "CANCEL": "取消"
+ }
+ },
+ "CTA_MODAL": {
+ "TITLE": "集成 OpenAI",
+ "DESC": "通过 OpenAI 的 GPT 模型为您的仪表板带来高级 AI 功能。要开始,请输入您 OpenAI 账户的 API 密钥。",
+ "KEY_PLACEHOLDER": "输入您的 OpenAI API 密钥",
+ "BUTTONS": {
+ "NEED_HELP": "需要帮助?",
+ "DISMISS": "取消",
+ "FINISH": "完成设置"
+ },
+ "DISMISS_MESSAGE": "您可以稍后随时设置 OpenAI 集成。",
+ "SUCCESS_MESSAGE": "OpenAI 集成设置成功"
+ },
+ "TITLE": "通过 AI 改进",
+ "SUMMARY_TITLE": "通过 AI 总结",
+ "REPLY_TITLE": "通过 AI 回复建议",
+ "SUBTITLE": "将根据您的当前草稿生成改进的回复。",
+ "TONE": {
+ "TITLE": "语气",
+ "OPTIONS": {
+ "PROFESSIONAL": "专业",
+ "FRIENDLY": "友好"
+ }
+ },
+ "BUTTONS": {
+ "GENERATE": "生成",
+ "GENERATING": "生成中...",
+ "CANCEL": "取消"
+ },
+ "GENERATE_ERROR": "处理内容时出错,请重试"
+ },
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "删除",
"API": {
- "SUCCESS_MESSAGE": "Integration deleted successfully"
+ "SUCCESS_MESSAGE": "集成已成功删除"
}
},
"CONNECT": {
- "BUTTON_TEXT": "Connect"
+ "BUTTON_TEXT": "连接"
+ },
+ "DASHBOARD_APPS": {
+ "TITLE": "仪表板应用",
+ "HEADER_BTN_TXT": "添加新的仪表板应用",
+ "SIDEBAR_TXT": "
仪表板应用
仪表板应用允许组织将应用程序嵌入 Chatwoot 仪表板中,以便为客服人员提供上下文信息。此功能允许您独立创建应用程序并将其嵌入仪表板中,以提供用户信息、他们的订单或以前的付款历史记录。
当您使用 Chatwoot 仪表板嵌入应用程序时,您的应用程序将作为窗口事件获取对话和联系人的上下文信息。在您的页面上实现消息事件的监听器以接收上下文信息。
要添加新的仪表板应用,请点击“添加新的仪表板应用”按钮。
",
+ "DESCRIPTION": "仪表板应用允许组织将应用程序嵌入仪表板中,以便为客服人员提供上下文信息。此功能允许您独立创建应用程序并将其嵌入仪表板中,以提供用户信息、他们的订单或以前的付款历史记录。",
+ "LEARN_MORE": "了解更多关于仪表板应用的信息",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
+ "LIST": {
+ "404": "此账户尚未配置任何仪表板应用",
+ "LOADING": "正在获取仪表板应用...",
+ "TABLE_HEADER": {
+ "NAME": "姓名",
+ "ENDPOINT": "端点",
+ "ACTIONS": "操作"
+ },
+ "EDIT_TOOLTIP": "编辑应用",
+ "DELETE_TOOLTIP": "删除应用"
+ },
+ "FORM": {
+ "TITLE_LABEL": "姓名",
+ "TITLE_PLACEHOLDER": "输入您的仪表板应用的名称",
+ "TITLE_ERROR": "仪表板应用的名称是必需的",
+ "URL_LABEL": "端点",
+ "URL_PLACEHOLDER": "输入您的应用托管的端点 URL",
+ "URL_ERROR": "需要有效的 URL"
+ },
+ "CREATE": {
+ "HEADER": "添加新的仪表板应用",
+ "FORM_SUBMIT": "提交",
+ "FORM_CANCEL": "取消",
+ "API_SUCCESS": "仪表板应用配置成功",
+ "API_ERROR": "无法创建应用,请稍后重试"
+ },
+ "UPDATE": {
+ "HEADER": "编辑仪表板应用",
+ "FORM_SUBMIT": "更新",
+ "FORM_CANCEL": "取消",
+ "API_SUCCESS": "仪表板应用更新成功",
+ "API_ERROR": "无法更新应用,请稍后重试"
+ },
+ "DELETE": {
+ "CONFIRM_YES": "是,删除它",
+ "CONFIRM_NO": "否,保留它",
+ "TITLE": "确认删除",
+ "MESSAGE": "您确定要删除该应用 - {appName} 吗?",
+ "API_SUCCESS": "仪表板应用删除成功",
+ "API_ERROR": "无法删除应用,请稍后重试"
+ }
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "创建/链接 Linear 问题",
+ "LOADING": "正在获取 Linear 问题...",
+ "LOADING_ERROR": "获取 Linear 问题时出错,请重试",
+ "CREATE": "创建",
+ "LINK": {
+ "SEARCH": "搜索问题",
+ "SELECT": "选择问题",
+ "TITLE": "链接",
+ "EMPTY_LIST": "未找到 Linear 问题",
+ "LOADING": "加载中",
+ "ERROR": "获取 Linear 问题时出错,请重试",
+ "LINK_SUCCESS": "问题链接成功",
+ "LINK_ERROR": "链接问题时出错,请重试",
+ "LINK_TITLE": "对话 (#{conversationId}) 与 {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "创建/链接 Linear 问题",
+ "DESCRIPTION": "从对话中创建 Linear 问题,或链接现有问题以进行无缝跟踪。",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "标题",
+ "PLACEHOLDER": "输入标题",
+ "REQUIRED_ERROR": "标题是必填项"
+ },
+ "DESCRIPTION": {
+ "LABEL": "描述",
+ "PLACEHOLDER": "输入描述"
+ },
+ "TEAM": {
+ "LABEL": "团队",
+ "PLACEHOLDER": "选择团队",
+ "SEARCH": "搜索团队",
+ "REQUIRED_ERROR": "团队是必填项"
+ },
+ "ASSIGNEE": {
+ "LABEL": "负责人",
+ "PLACEHOLDER": "选择负责人",
+ "SEARCH": "搜索负责人"
+ },
+ "PRIORITY": {
+ "LABEL": "优先级",
+ "PLACEHOLDER": "选择优先级",
+ "SEARCH": "搜索优先级"
+ },
+ "LABEL": {
+ "LABEL": "标签",
+ "PLACEHOLDER": "选择标签",
+ "SEARCH": "搜索标签"
+ },
+ "STATUS": {
+ "LABEL": "状态",
+ "PLACEHOLDER": "选择状态",
+ "SEARCH": "搜索状态"
+ },
+ "PROJECT": {
+ "LABEL": "项目",
+ "PLACEHOLDER": "选择项目",
+ "SEARCH": "搜索项目"
+ }
+ },
+ "CREATE": "创建",
+ "CANCEL": "取消",
+ "CREATE_SUCCESS": "问题创建成功",
+ "CREATE_ERROR": "创建问题时出错,请重试",
+ "LOADING_TEAM_ERROR": "获取团队时出错,请重试",
+ "LOADING_TEAM_ENTITIES_ERROR": "获取团队实体时出错,请重试"
+ },
+ "ISSUE": {
+ "STATUS": "状态",
+ "PRIORITY": "优先级",
+ "ASSIGNEE": "负责人",
+ "LABELS": "标签",
+ "CREATED_AT": "创建于 {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "取消链接",
+ "SUCCESS": "问题取消链接成功",
+ "ERROR": "取消链接问题时出错,请重试"
+ },
+ "NO_LINKED_ISSUES": "No linked issues found",
+ "DELETE": {
+ "TITLE": "您确定要删除该集成吗?",
+ "MESSAGE": "您确定要删除该集成吗?",
+ "CONFIRM": "是,删除",
+ "CANCEL": "取消"
+ },
+ "CTA": {
+ "TITLE": "连接到 Linear",
+ "AGENT_DESCRIPTION": "Linear 工作区未集成。请通知您的管理员连接一个工作区来使用这个集成。",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "链接 Linear 工作空间"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "是的,删除",
+ "CANCEL": "取消"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "了解更多",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "助手",
+ "SWITCH_ASSISTANT": "Switch between assistants",
+ "NEW_ASSISTANT": "Create Assistant",
+ "EMPTY_LIST": "No assistants found, please create one to get started"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "尝试这些提示信息",
+ "PANEL_TITLE": "开始使用 Copilot",
+ "KICK_OFF_MESSAGE": "需要快速摘要、回顾过往对话,或是优化回复内容?Copilot 可助您一臂之力,全面提升工作效率。",
+ "SEND_MESSAGE": "发送消息...",
+ "EMPTY_MESSAGE": "生成响应时出错。请重试。",
+ "LOADER": "Captain 正在思考",
+ "YOU": "您",
+ "USE": "使用此",
+ "RESET": "重置",
+ "SHOW_STEPS": "显示步骤",
+ "SELECT_ASSISTANT": "选择助手",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "总结此对话",
+ "CONTENT": "总结客户与客服的对话要点,涵盖客户的主要疑虑、问题,以及客服给出的解决方案或回应"
+ },
+ "SUGGEST": {
+ "LABEL": "建议回答",
+ "CONTENT": "分析客户的咨询,并起草一份有效回应其关切或问题的回复。确保回复内容清晰、简明,并提供有用的信息。"
+ },
+ "RATE": {
+ "LABEL": "为此对话评分",
+ "CONTENT": "请审核对话,评估其在多大程度上满足了客户的需求。根据语气、清晰度和有效性进行 5 分制评分。"
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "高优先级对话",
+ "CONTENT": "请给我所有高优先级未结对话的摘要。包括对话 ID、客户姓名(如有)、最后一条消息内容和分配的客服人员。如有需要,请按状态分组。"
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "列出联系人",
+ "CONTENT": "显示我的前 10 位联系人列表。包括姓名、电子邮件或电话号码(如有)、最后在线时间、标签(如有)。"
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "您",
+ "ASSISTANT": "助手",
+ "MESSAGE_PLACEHOLDER": "输入您的消息...",
+ "HEADER": "试验场",
+ "DESCRIPTION": "使用此试验场向您的助手发送消息,并检查其是否能够准确、快速地以您期望的语气做出回应。",
+ "CREDIT_NOTE": "这里发送的消息将计入您的 Captain 积分。"
+ },
+ "PAYWALL": {
+ "TITLE": "升级以使用 Captain AI",
+ "AVAILABLE_ON": "Captain 在免费计划中不可用。",
+ "UPGRADE_PROMPT": "升级您的计划以获取我们的助手、副驾驶等功能。",
+ "UPGRADE_NOW": "立即升级",
+ "CANCEL_ANYTIME": "您可以随时更改或取消您的计划"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "升级您的计划以获取我们的助手、副驾驶等功能。",
+ "ASK_ADMIN": "请联系您的管理员进行升级。"
+ },
+ "BANNER": {
+ "RESPONSES": "您已使用超过 80% 的回复限制。要继续使用 Captain AI,请升级。",
+ "DOCUMENTS": "文档限制已满。升级以继续使用 Captain AI。"
+ },
+ "FORM": {
+ "CANCEL": "取消",
+ "CREATE": "创建",
+ "EDIT": "更新"
+ },
+ "ASSISTANTS": {
+ "HEADER": "助手",
+ "NO_ASSISTANTS_AVAILABLE": "您的帐户中没有可用的助手。",
+ "ADD_NEW": "创建新的助手",
+ "DELETE": {
+ "TITLE": "您确定要删除该文档吗?",
+ "DESCRIPTION": "此操作是永久性的。删除此文档将永久删除所有生成的知识。",
+ "CONFIRM": "是,删除",
+ "SUCCESS_MESSAGE": "文档已成功删除",
+ "ERROR_MESSAGE": "删除文档时出错,请重试。"
+ },
+ "FORM_DESCRIPTION": "填写以下详细信息以命名您的助手,描述其用途,并指定它将支持的产品。",
+ "CREATE": {
+ "TITLE": "创建助手",
+ "SUCCESS_MESSAGE": "助手已成功创建",
+ "ERROR_MESSAGE": "创建助手时出错,请重试。"
+ },
+ "FORM": {
+ "UPDATE": "更新",
+ "SECTIONS": {
+ "BASIC_INFO": "基本信息",
+ "SYSTEM_MESSAGES": "系统消息",
+ "INSTRUCTIONS": "指令",
+ "FEATURES": "特性",
+ "TOOLS": "工具 "
+ },
+ "NAME": {
+ "LABEL": "姓名:",
+ "PLACEHOLDER": "输入助手名称",
+ "ERROR": "名称是必需的"
+ },
+ "TEMPERATURE": {
+ "LABEL": "响应温度",
+ "DESCRIPTION": "调整助手回复的创造性或限制程度。较低的数值会产生更专注和确定性的回复,而较高的数值则允许更有创意和多样化的输出。"
+ },
+ "DESCRIPTION": {
+ "LABEL": "描述信息",
+ "PLACEHOLDER": "输入助手描述",
+ "ERROR": "描述是必需的"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "产品名称",
+ "PLACEHOLDER": "输入产品名称",
+ "ERROR": "产品名称是必需的"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "欢迎消息",
+ "PLACEHOLDER": "输入欢迎消息"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "交接信息",
+ "PLACEHOLDER": "输入交接消息"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "解决消息",
+ "PLACEHOLDER": "输入解决消息"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "指令",
+ "PLACEHOLDER": "输入用于此助手的指令"
+ },
+ "FEATURES": {
+ "TITLE": "特性",
+ "ALLOW_CONVERSATION_FAQS": "从已解决的对话中生成常见问题",
+ "ALLOW_MEMORIES": "从客户互动中捕获关键细节作为记忆",
+ "ALLOW_CITATIONS": "Include source citations in responses"
+ }
+ },
+ "EDIT": {
+ "TITLE": "更新助手",
+ "SUCCESS_MESSAGE": "助手已成功更新",
+ "ERROR_MESSAGE": "更新助手时出错,请重试",
+ "NOT_FOUND": "无法找到助手。请重试。"
+ },
+ "SETTINGS": {
+ "HEADER": "设置",
+ "BASIC_SETTINGS": {
+ "TITLE": "基本设置",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "系统设置",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "删除助手",
+ "DESCRIPTION": "此操作是永久性的。删除此文档将永久删除所有生成的知识。",
+ "BUTTON_TEXT": "删除 {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "编辑助手",
+ "DELETE_ASSISTANT": "删除助手",
+ "VIEW_CONNECTED_INBOXES": "查看连接的收件箱"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "没有可用的文档",
+ "SUBTITLE": "文档用于为您的助手生成常见问题。您可以导入文档以为您的助手提供上下文。",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "助理队长",
+ "NOTE": "助理队长直接与客户互动,从您的帮助文档和过去的对话中学习,并提供即时、准确的回复。它处理初始查询,快速解决问题,在需要时再转接给客服人员。"
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "全选 ({count})",
+ "UNSELECT_ALL": "取消全选({count})",
+ "BULK_DELETE_BUTTON": "删除"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "添加全部",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "添加并保存",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "创建",
+ "CANCEL": "取消",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "测试全部"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "搜索……"
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "全选 ({count})",
+ "UNSELECT_ALL": "取消全选({count})",
+ "BULK_DELETE_BUTTON": "删除"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "添加全部",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "添加并保存",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "创建",
+ "CANCEL": "取消",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "测试全部"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "搜索……"
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "全选 ({count})",
+ "UNSELECT_ALL": "取消全选({count})",
+ "BULK_DELETE_BUTTON": "删除"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "添加全部",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "标题",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "描述信息",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "创建",
+ "CANCEL": "取消"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "取消",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "搜索……"
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "文档",
+ "ADD_NEW": "创建新文档",
+ "RELATED_RESPONSES": {
+ "TITLE": "相关常见问题",
+ "DESCRIPTION": "这些常见问题直接从文档生成。"
+ },
+ "FORM_DESCRIPTION": "输入文档的 URL 以将其添加为知识源,并选择要关联的助手。",
+ "CREATE": {
+ "TITLE": "添加文档",
+ "SUCCESS_MESSAGE": "文档已成功创建",
+ "ERROR_MESSAGE": "创建文档时出错,请重试"
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "网址",
+ "PDF": "PDF 文件"
+ },
+ "URL": {
+ "LABEL": "网址",
+ "PLACEHOLDER": "输入文档的 URL",
+ "ERROR": "请提供有效的文档 URL"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF 文件",
+ "CHOOSE_FILE": "选择 PDF 文件",
+ "ERROR": "请选择一个 PDF 文件",
+ "HELP_TEXT": "最大文件大小: 10MB",
+ "INVALID_TYPE": "请选择一个有效的 PDF 文件",
+ "TOO_LARGE": "文件大小超过 10MB 限制"
+ },
+ "NAME": {
+ "LABEL": "文档名称(可选)",
+ "PLACEHOLDER": "输入文档的名称"
+ }
+ },
+ "DELETE": {
+ "TITLE": "您确定要删除该文档吗?",
+ "DESCRIPTION": "此操作是永久性的。删除此文档将永久删除所有生成的知识。",
+ "CONFIRM": "是,删除",
+ "SUCCESS_MESSAGE": "文档已成功删除",
+ "ERROR_MESSAGE": "删除文档时出错,请重试"
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "查看相关常见问题",
+ "DELETE_DOCUMENT": "删除文档"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "没有可用的文档",
+ "SUBTITLE": "文档用于为您的助手生成常见问题。您可以导入文档以为您的助手提供上下文。",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain 文档",
+ "NOTE": "在 Captain 中的文档作为助理的知识资源。通过连接您的帮助中心或指南,Captain 可以分析内容并为客户询问提供准确的回答。"
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "工具",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "是的,删除",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "描述信息",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "啥都没有",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API 密钥"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "密码",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "类型"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "号码",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "必填项"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "常见问题",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "创建新常见问题",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "对话 #{id}"
+ },
+ "SELECTED": "{count} 已选择",
+ "SELECT_ALL": "全选 ({count})",
+ "UNSELECT_ALL": "取消全选({count})",
+ "SEARCH_PLACEHOLDER": "搜索常见问题...",
+ "BULK_APPROVE_BUTTON": "批准",
+ "BULK_DELETE_BUTTON": "删除",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "常见问题已成功批准",
+ "ERROR_MESSAGE": "批准常见问题时出错,请重试"
+ },
+ "BULK_DELETE": {
+ "TITLE": "删除常见问题?",
+ "DESCRIPTION": "您确定要删除选中的常见问题吗?此操作无法撤销。",
+ "CONFIRM": "是,全部删除",
+ "SUCCESS_MESSAGE": "常见问题已成功删除",
+ "ERROR_MESSAGE": "删除常见问题时出错,请重试"
+ },
+ "DELETE": {
+ "TITLE": "您确定要删除该常见问题吗?",
+ "DESCRIPTION": "",
+ "CONFIRM": "是,删除",
+ "SUCCESS_MESSAGE": "常见问题已成功删除",
+ "ERROR_MESSAGE": "删除常见问题时出错,请重试"
+ },
+ "FILTER": {
+ "ASSISTANT": "助手:{selected}",
+ "STATUS": "状态:{selected}",
+ "ALL_ASSISTANTS": "所有"
+ },
+ "STATUS": {
+ "TITLE": "状态",
+ "PENDING": "待处理",
+ "APPROVED": "已批准",
+ "ALL": "所有"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "将问题及其对应的答案添加到知识库,并选择应关联的助手。",
+ "CREATE": {
+ "TITLE": "添加常见问题",
+ "SUCCESS_MESSAGE": "响应已成功添加",
+ "ERROR_MESSAGE": "添加响应时出错,请重试"
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "问题",
+ "PLACEHOLDER": "在此输入问题",
+ "ERROR": "请提供有效的问题"
+ },
+ "ANSWER": {
+ "LABEL": "答案",
+ "PLACEHOLDER": "在此输入答案",
+ "ERROR": "请提供有效的答案"
+ }
+ },
+ "EDIT": {
+ "TITLE": "更新常见问题",
+ "SUCCESS_MESSAGE": "常见问题已成功更新",
+ "ERROR_MESSAGE": "更新常见问题时出错,请重试",
+ "APPROVE_SUCCESS_MESSAGE": "常见问题已标记为已批准"
+ },
+ "OPTIONS": {
+ "APPROVE": "批准",
+ "EDIT_RESPONSE": "编辑",
+ "DELETE_RESPONSE": "删除"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "未找到常见问题",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "常见问题帮助您的助手为客户提供快速准确的答案。它们可以从您的内容自动生成,也可以手动添加。",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain 常见问题",
+ "NOTE": "Captain FAQs 检测常见的客户问题——无论是知识库中缺失的问题还是经常被问到的问题——并生成相关的常见问题以改善支持。您可以查看每个建议,并决定是否批准或拒绝它。"
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "连接的收件箱",
+ "ADD_NEW": "连接新收件箱",
+ "OPTIONS": {
+ "DISCONNECT": "断开连接"
+ },
+ "DELETE": {
+ "TITLE": "您确定要断开收件箱的连接吗?",
+ "DESCRIPTION": "",
+ "CONFIRM": "是,删除",
+ "SUCCESS_MESSAGE": "收件箱已成功断开连接",
+ "ERROR_MESSAGE": "断开收件箱连接时出错,请重试"
+ },
+ "FORM_DESCRIPTION": "选择要与助手连接的收件箱。",
+ "CREATE": {
+ "TITLE": "连接收件箱",
+ "SUCCESS_MESSAGE": "收件箱已成功连接",
+ "ERROR_MESSAGE": "连接收件箱时出错,请重试"
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "收件箱",
+ "PLACEHOLDER": "选择收件箱以部署助手",
+ "ERROR": "需要选择收件箱"
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "没有连接的收件箱",
+ "SUBTITLE": "连接收件箱允许助手在处理客户初始问题后将对话转交给您。"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/zh/labelsMgmt.json
index b0dbe439f..529530b93 100644
--- a/app/javascript/dashboard/i18n/locale/zh/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh/labelsMgmt.json
@@ -1,67 +1,88 @@
{
"LABEL_MGMT": {
- "HEADER": "Labels",
- "HEADER_BTN_TXT": "Add label",
- "LOADING": "Fetching labels",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "
Labels
Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.
Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.
",
+ "HEADER": "标签",
+ "HEADER_BTN_TXT": "添加标签",
+ "LOADING": "正在获取标签",
+ "DESCRIPTION": "标签帮助您对对话和潜在客户进行分类和优先排序。您可以使用侧边栏将标签分配给对话或联系人。",
+ "LEARN_MORE": "了解更多关于标签的信息",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "搜索标签...",
+ "NO_RESULTS": "No labels found matching your search",
+ "SEARCH_404": "没有任何项目符合此查询",
"LIST": {
- "404": "There are no labels available in this account.",
- "TITLE": "Manage labels",
- "DESC": "Labels let you group the conversations together.",
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Color"
- ]
+ "404": "此帐户中没有可用的标签。",
+ "TITLE": "管理标签",
+ "DESC": "标记可以让您将对话集中起来。",
+ "TABLE_HEADER": {
+ "NAME": "名称",
+ "DESCRIPTION": "描述信息",
+ "COLOR": "颜色",
+ "ACTION": "操作"
+ }
},
"FORM": {
"NAME": {
- "LABEL": "Label Name",
- "PLACEHOLDER": "Label name",
- "ERROR": "Label Name is required"
+ "LABEL": "标签名称",
+ "PLACEHOLDER": "标签名称",
+ "REQUIRED_ERROR": "标签名称为必填项",
+ "MINIMUM_LENGTH_ERROR": "至少需要2个字符",
+ "VALID_ERROR": "仅允许使用字母、数字、连字符和下划线"
},
"DESCRIPTION": {
- "LABEL": "Description",
- "PLACEHOLDER": "Label Description"
+ "LABEL": "描述信息",
+ "PLACEHOLDER": "标签描述"
},
"COLOR": {
- "LABEL": "Color"
+ "LABEL": "颜色"
},
"SHOW_ON_SIDEBAR": {
- "LABEL": "Show label on sidebar"
+ "LABEL": "在侧边栏显示标签"
},
- "EDIT": "Edit",
- "CREATE": "Create",
- "DELETE": "Delete",
- "CANCEL": "Cancel"
+ "EDIT": "编辑",
+ "CREATE": "创建",
+ "DELETE": "删除",
+ "CANCEL": "取消操作"
+ },
+ "SUGGESTIONS": {
+ "TOOLTIP": {
+ "SINGLE_SUGGESTION": "将标签添加到对话",
+ "MULTIPLE_SUGGESTION": "选择此标签",
+ "DESELECT": "取消选择标签",
+ "DISMISS": "忽略建议"
+ },
+ "POWERED_BY": "Chatwoot AI",
+ "DISMISS": "取消",
+ "ADD_SELECTED_LABELS": "添加选定的标签",
+ "ADD_SELECTED_LABEL": "添加选定的标签",
+ "ADD_ALL_LABELS": "添加所有标签",
+ "SUGGESTED_LABELS": "建议的标签"
},
"ADD": {
- "TITLE": "Add label",
- "DESC": "Labels let you group the conversations together.",
+ "TITLE": "添加标签",
+ "DESC": "标记可以让您将对话集中起来。",
"API": {
- "SUCCESS_MESSAGE": "Label added successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "标签添加成功",
+ "ERROR_MESSAGE": "出现错误,请重试"
}
},
"EDIT": {
- "TITLE": "Edit label",
+ "TITLE": "编辑标签",
"API": {
- "SUCCESS_MESSAGE": "Label updated successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "标签已成功更新",
+ "ERROR_MESSAGE": "出错了,请重试"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "删除",
"API": {
- "SUCCESS_MESSAGE": "Label deleted successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "标签已成功删除",
+ "ERROR_MESSAGE": "出错了,请重试"
},
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete ",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "TITLE": "确认删除",
+ "MESSAGE": "您确定要删除吗?",
+ "YES": "是,删除",
+ "NO": "不,保留"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/login.json b/app/javascript/dashboard/i18n/locale/zh/login.json
index a3a90e359..2dbbc9327 100644
--- a/app/javascript/dashboard/i18n/locale/zh/login.json
+++ b/app/javascript/dashboard/i18n/locale/zh/login.json
@@ -3,7 +3,8 @@
"TITLE": "登录到Chatwoot",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "电子邮址 例如:somone{'@'}example.com"
+ "PLACEHOLDER": "实例 {'@'}companyname.com",
+ "ERROR": "请输入一个有效的电子邮件"
},
"PASSWORD": {
"LABEL": "密码",
@@ -11,11 +12,30 @@
},
"API": {
"SUCCESS_MESSAGE": "登录成功",
- "ERROR_MESSAGE": "无法连接服务器,请稍后再试",
- "UNAUTH": "用户名/密码不正确。请重试"
+ "ERROR_MESSAGE": "无法连接Woot服务器,请稍后再试",
+ "UNAUTH": "用户名或密码不正确,请重试。"
+ },
+ "OAUTH": {
+ "GOOGLE_LOGIN": "使用Google登录",
+ "BUSINESS_ACCOUNTS_ONLY": "请使用您的公司电子邮件地址登录",
+ "NO_ACCOUNT_FOUND": "我们找不到您的电子邮件地址的帐户。"
},
"FORGOT_PASSWORD": "忘记密码了?",
"CREATE_NEW_ACCOUNT": "创建新账户",
- "SUBMIT": "登录"
+ "SUBMIT": "登录",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/report.json b/app/javascript/dashboard/i18n/locale/zh/report.json
index 8df14d19b..0d5592e44 100644
--- a/app/javascript/dashboard/i18n/locale/zh/report.json
+++ b/app/javascript/dashboard/i18n/locale/zh/report.json
@@ -1,8 +1,11 @@
{
"REPORT": {
- "HEADER": "报告",
+ "HEADER": "会话",
"LOADING_CHART": "正在载入图表数据...",
"NO_ENOUGH_DATA": "我们没有收到足够的数据点来生成报告,请稍后再试。",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
+ "DATA_FETCHING_FAILED": "数据获取失败,请稍后再试。",
+ "SUMMARY_FETCHING_FAILED": "摘要获取失败,请稍后再试。",
"METRICS": {
"CONVERSATIONS": {
"NAME": "会话",
@@ -18,11 +21,147 @@
},
"FIRST_RESPONSE_TIME": {
"NAME": "首次响应时间",
- "DESC": "( 平均)"
+ "DESC": "( 平均)",
+ "INFO_TEXT": "用于计算的对话总数:",
+ "TOOLTIP_TEXT": "首次响应时间为 {metricValue}(基于 {conversationCount} 个对话)"
},
"RESOLUTION_TIME": {
"NAME": "解决时间",
- "DESC": "( 平均)"
+ "DESC": "( 平均)",
+ "INFO_TEXT": "用于计算的对话总数:",
+ "TOOLTIP_TEXT": "解决时间为 {metricValue}(基于 {conversationCount} 个对话)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "已解决的数量",
+ "DESC": "(总计)"
+ },
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "已解决的数量",
+ "DESC": "(总计)"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "转交次数",
+ "DESC": "(总计)"
+ },
+ "REPLY_TIME": {
+ "NAME": "客户等待时间",
+ "TOOLTIP_TEXT": "等待时间为 {metricValue}(基于 {conversationCount} 条回复)",
+ "DESC": ""
+ }
+ },
+ "DATE_RANGE_OPTIONS": {
+ "LAST_7_DAYS": "最近7天",
+ "LAST_14_DAYS": "最近14天",
+ "LAST_30_DAYS": "最近30天",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
+ "LAST_3_MONTHS": "最近3个月",
+ "LAST_6_MONTHS": "最近6个月",
+ "LAST_YEAR": "最近一年",
+ "CUSTOM_DATE_RANGE": "自定义日期范围"
+ },
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "应用",
+ "PLACEHOLDER": "选择日期范围"
+ },
+ "GROUP_BY_FILTER_DROPDOWN_LABEL": "分组依据",
+ "DURATION_FILTER_LABEL": "持续时间",
+ "GROUPING_OPTIONS": {
+ "DAY": "日",
+ "WEEK": "周",
+ "MONTH": "月",
+ "YEAR": "年"
+ },
+ "GROUP_BY_DAY_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "日"
+ }
+ ],
+ "GROUP_BY_WEEK_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "日"
+ },
+ {
+ "id": 2,
+ "groupBy": "周"
+ }
+ ],
+ "GROUP_BY_MONTH_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "日"
+ },
+ {
+ "id": 2,
+ "groupBy": "周"
+ },
+ {
+ "id": 3,
+ "groupBy": "月"
+ }
+ ],
+ "GROUP_BY_YEAR_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "日"
+ },
+ {
+ "id": 2,
+ "groupBy": "周"
+ },
+ {
+ "id": 3,
+ "groupBy": "月"
+ }
+ ],
+ "BUSINESS_HOURS": "工作时间",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "清除筛选条件",
+ "EMPTY_LIST": "没有检索到相关信息"
+ },
+ "PAGINATION": {
+ "RESULTS": "显示 {start} 到 {end} 条,共 {total} 条结果",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
+ },
+ "AGENT_REPORTS": {
+ "HEADER": "客服概览",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
+ "LOADING_CHART": "正在载入图表数据...",
+ "NO_ENOUGH_DATA": "我们没有收到足够的数据点来生成报告,请稍后再试。",
+ "DOWNLOAD_AGENT_REPORTS": "下载客服报表",
+ "FILTER_DROPDOWN_LABEL": "选择客服",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "搜索客服代表"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "会话",
+ "DESC": "(总计)"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "收到的消息",
+ "DESC": "(总计)"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "发送的消息",
+ "DESC": "(总计)"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "首次响应时间",
+ "DESC": "( 平均)",
+ "INFO_TEXT": "用于计算的对话总数:",
+ "TOOLTIP_TEXT": "首次响应时间为 {metricValue}(基于 {conversationCount} 个对话)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "解决时间",
+ "DESC": "( 平均)",
+ "INFO_TEXT": "用于计算的对话总数:",
+ "TOOLTIP_TEXT": "解决时间为 {metricValue}(基于 {conversationCount} 个对话)"
},
"RESOLUTION_COUNT": {
"NAME": "已解决的数量",
@@ -37,7 +176,475 @@
{
"id": 1,
"name": "最近30天"
+ },
+ {
+ "id": 2,
+ "name": "最近3个月"
+ },
+ {
+ "id": 3,
+ "name": "最近6个月"
+ },
+ {
+ "id": 4,
+ "name": "最近一年"
+ },
+ {
+ "id": 5,
+ "name": "自定义日期范围"
}
- ]
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "应用",
+ "PLACEHOLDER": "选择日期范围"
+ }
+ },
+ "LABEL_REPORTS": {
+ "HEADER": "标签概览",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
+ "LOADING_CHART": "正在载入图表数据...",
+ "NO_ENOUGH_DATA": "我们没有收到足够的数据点来生成报告,请稍后再试。",
+ "DOWNLOAD_LABEL_REPORTS": "下载标签报表",
+ "FILTER_DROPDOWN_LABEL": "选择标签",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "搜索标签"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "会话",
+ "DESC": "(总计)"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "收到的消息",
+ "DESC": "(总计)"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "发送的消息",
+ "DESC": "(总计)"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "首次响应时间",
+ "DESC": "( 平均)",
+ "INFO_TEXT": "用于计算的对话总数:",
+ "TOOLTIP_TEXT": "首次响应时间为 {metricValue}(基于 {conversationCount} 个对话)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "解决时间",
+ "DESC": "( 平均)",
+ "INFO_TEXT": "用于计算的对话总数:",
+ "TOOLTIP_TEXT": "解决时间为 {metricValue}(基于 {conversationCount} 个对话)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "已解决的数量",
+ "DESC": "(总计)"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "最近7天"
+ },
+ {
+ "id": 1,
+ "name": "最近30天"
+ },
+ {
+ "id": 2,
+ "name": "最近3个月"
+ },
+ {
+ "id": 3,
+ "name": "最近6个月"
+ },
+ {
+ "id": 4,
+ "name": "最近一年"
+ },
+ {
+ "id": 5,
+ "name": "自定义日期范围"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "应用",
+ "PLACEHOLDER": "选择日期范围"
+ }
+ },
+ "INBOX_REPORTS": {
+ "HEADER": "收件箱概览",
+ "DESCRIPTION": "在一个地方快速查看您的收件箱表现,包括会话、响应时间、解决时间和已解决案例等关键指标。点击收件箱名称以了解更多详细信息。",
+ "LOADING_CHART": "正在载入图表数据...",
+ "NO_ENOUGH_DATA": "我们没有收到足够的数据点来生成报告,请稍后再试。",
+ "DOWNLOAD_INBOX_REPORTS": "下载收件箱报表",
+ "FILTER_DROPDOWN_LABEL": "选择收件箱",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "会话",
+ "DESC": "(总计)"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "收到的消息",
+ "DESC": "(总计)"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "发送的消息",
+ "DESC": "(总计)"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "首次响应时间",
+ "DESC": "( 平均)",
+ "INFO_TEXT": "用于计算的对话总数:",
+ "TOOLTIP_TEXT": "首次响应时间为 {metricValue}(基于 {conversationCount} 个对话)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "解决时间",
+ "DESC": "( 平均)",
+ "INFO_TEXT": "用于计算的对话总数:",
+ "TOOLTIP_TEXT": "解决时间为 {metricValue}(基于 {conversationCount} 个对话)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "已解决的数量",
+ "DESC": "(总计)"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "最近7天"
+ },
+ {
+ "id": 1,
+ "name": "最近30天"
+ },
+ {
+ "id": 2,
+ "name": "最近3个月"
+ },
+ {
+ "id": 3,
+ "name": "最近6个月"
+ },
+ {
+ "id": 4,
+ "name": "最近一年"
+ },
+ {
+ "id": 5,
+ "name": "自定义日期范围"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "应用",
+ "PLACEHOLDER": "选择日期范围"
+ }
+ },
+ "TEAM_REPORTS": {
+ "HEADER": "团队概览",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "LOADING_CHART": "正在载入图表数据...",
+ "NO_ENOUGH_DATA": "我们没有收到足够的数据点来生成报告,请稍后再试。",
+ "DOWNLOAD_TEAM_REPORTS": "下载团队报表",
+ "FILTER_DROPDOWN_LABEL": "选择团队",
+ "FILTERS": {
+ "ADD_FILTER": "添加过滤器",
+ "CLEAR_ALL": "清除全部",
+ "NO_FILTER": "没有可用的过滤器",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "查找团队"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "会话",
+ "DESC": "(总计)"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "收到的消息",
+ "DESC": "(总计)"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "发送的消息",
+ "DESC": "(总计)"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "首次响应时间",
+ "DESC": "( 平均)",
+ "INFO_TEXT": "用于计算的对话总数:",
+ "TOOLTIP_TEXT": "首次响应时间为 {metricValue}(基于 {conversationCount} 个对话)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "解决时间",
+ "DESC": "( 平均)",
+ "INFO_TEXT": "用于计算的对话总数:",
+ "TOOLTIP_TEXT": "解决时间为 {metricValue}(基于 {conversationCount} 个对话)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "已解决的数量",
+ "DESC": "(总计)"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "最近7天"
+ },
+ {
+ "id": 1,
+ "name": "最近30天"
+ },
+ {
+ "id": 2,
+ "name": "最近3个月"
+ },
+ {
+ "id": 3,
+ "name": "最近6个月"
+ },
+ {
+ "id": 4,
+ "name": "最近一年"
+ },
+ {
+ "id": 5,
+ "name": "自定义日期范围"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "应用",
+ "PLACEHOLDER": "选择日期范围"
+ }
+ },
+ "CSAT_REPORTS": {
+ "HEADER": "CSAT 报告",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
+ "DOWNLOAD": "下载 CSAT 报告",
+ "DOWNLOAD_FAILED": "下载 CSAT 报告失败",
+ "FILTERS": {
+ "ADD_FILTER": "添加过滤器",
+ "CLEAR_ALL": "清除全部",
+ "NO_FILTER": "没有可用的过滤器",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "搜索客服代表",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "查找团队",
+ "RATINGS": "Search ratings"
+ },
+ "AGENTS": {
+ "LABEL": "客服"
+ },
+ "INBOXES": {
+ "LABEL": "收件箱"
+ },
+ "TEAMS": {
+ "LABEL": "团队"
+ },
+ "RATINGS": {
+ "LABEL": "评分"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "CONTACT_NAME": "联系人",
+ "AGENT_NAME": "客服",
+ "RATING": "评分",
+ "FEEDBACK_TEXT": "反馈评论",
+ "CONVERSATION": "会话",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "回复",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
+ },
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
+ "METRIC": {
+ "TOTAL_RESPONSES": {
+ "LABEL": "总回复数",
+ "TOOLTIP": "收集到的回复总数"
+ },
+ "SATISFACTION_SCORE": {
+ "LABEL": "满意度得分",
+ "TOOLTIP": "正面回复数 / 总回复数 * 100"
+ },
+ "RESPONSE_RATE": {
+ "LABEL": "回复率",
+ "TOOLTIP": "总回复数 / 发送的 CSAT 调查消息总数 * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "保存",
+ "CANCEL": "取消",
+ "SAVING": "保存中...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "立即升级",
+ "CANCEL_ANYTIME": "您可以随时更改或取消您的计划"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "机器人报告",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "会话数量",
+ "TOOLTIP": "机器人处理的会话总数"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "总回复数",
+ "TOOLTIP": "机器人发送的回复总数"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "解决率",
+ "TOOLTIP": "机器人解决的会话数 / 机器人处理的会话总数 * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "转交率",
+ "TOOLTIP": "转交给客服的会话数 / 机器人处理的会话总数 * 100"
+ }
+ }
+ },
+ "OVERVIEW_REPORTS": {
+ "HEADER": "概览",
+ "LIVE": "实时",
+ "ACCOUNT_CONVERSATIONS": {
+ "HEADER": "未解决会话",
+ "LOADING_MESSAGE": "正在加载会话指标...",
+ "OPEN": "打开",
+ "UNATTENDED": "未处理",
+ "UNASSIGNED": "未分配",
+ "PENDING": "等待中"
+ },
+ "CONVERSATION_HEATMAP": {
+ "HEADER": "会话流量",
+ "NO_CONVERSATIONS": "没有会话",
+ "CONVERSATION": "{count} 个会话",
+ "CONVERSATIONS": "{count} 个会话",
+ "DOWNLOAD_REPORT": "下载报告"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "没有会话",
+ "CONVERSATION": "{count} 个会话",
+ "CONVERSATIONS": "{count} 个会话",
+ "DOWNLOAD_REPORT": "下载报告"
+ },
+ "AGENT_CONVERSATIONS": {
+ "HEADER": "按客服划分的会话",
+ "LOADING_MESSAGE": "正在加载客服指标...",
+ "NO_AGENTS": "没有客服的会话",
+ "TABLE_HEADER": {
+ "AGENT": "客服",
+ "OPEN": "打开",
+ "UNATTENDED": "未处理",
+ "STATUS": "状态"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "所有团队",
+ "HEADER": "团队对话统计",
+ "LOADING_MESSAGE": "正在加载团队指标...",
+ "NO_TEAMS": "没有可用数据",
+ "TABLE_HEADER": {
+ "TEAM": "团队",
+ "OPEN": "打开",
+ "UNATTENDED": "未处理",
+ "STATUS": "状态"
+ }
+ },
+ "AGENT_STATUS": {
+ "HEADER": "客服状态",
+ "ONLINE": "在线",
+ "BUSY": "忙碌",
+ "OFFLINE": "离线"
+ }
+ },
+ "DAYS_OF_WEEK": {
+ "SUNDAY": "周日",
+ "MONDAY": "周一",
+ "TUESDAY": "周二",
+ "WEDNESDAY": "周三",
+ "THURSDAY": "周四",
+ "FRIDAY": "周五",
+ "SATURDAY": "周六"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA 报告",
+ "NO_RECORDS": "没有可用的 SLA 应用会话。",
+ "LOADING": "正在加载 SLA 数据...",
+ "DOWNLOAD_SLA_REPORTS": "下载 SLA 报告",
+ "DOWNLOAD_FAILED": "下载 SLA 报告失败",
+ "DROPDOWN": {
+ "ADD_FIlTER": "添加过滤器",
+ "CLEAR_ALL": "清除全部",
+ "CLEAR_FILTER": "清除过滤器",
+ "EMPTY_LIST": "没有检索到相关信息",
+ "NO_FILTER": "没有可用的过滤器",
+ "SEARCH": "搜索过滤器",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA 名称",
+ "AGENTS": "客服名称",
+ "INBOXES": "收件箱名称",
+ "LABELS": "标签名称",
+ "TEAMS": "团队名称"
+ },
+ "SLA": "SLA 策略",
+ "INBOXES": "收件箱",
+ "AGENTS": "客服",
+ "LABELS": "标签",
+ "TEAMS": "团队"
+ },
+ "WITH": "与",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "命中率",
+ "TOOLTIP": "成功完成的 SLA 百分比"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "未命中次数",
+ "TOOLTIP": "特定时间段内的 SLA 未命中总数"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "会话数量",
+ "TOOLTIP": "带有 SLA 的会话总数"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "策略",
+ "CONVERSATION": "会话",
+ "AGENT": "客服"
+ },
+ "VIEW_DETAILS": "查看详情"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "INBOX": "收件箱",
+ "AGENT": "客服",
+ "TEAM": "团队",
+ "LABEL": "标签",
+ "AVG_RESOLUTION_TIME": "平均解决时间",
+ "AVG_FIRST_RESPONSE_TIME": "平均首次响应时间",
+ "AVG_REPLY_TIME": "平均客户等待时间",
+ "RESOLUTION_COUNT": "已解决的数量",
+ "CONVERSATIONS": "会话数量"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/resetPassword.json b/app/javascript/dashboard/i18n/locale/zh/resetPassword.json
index 25e909ab0..da6d6516b 100644
--- a/app/javascript/dashboard/i18n/locale/zh/resetPassword.json
+++ b/app/javascript/dashboard/i18n/locale/zh/resetPassword.json
@@ -1,14 +1,16 @@
{
"RESET_PASSWORD": {
"TITLE": "重置密码",
+ "DESCRIPTION": "输入您用来登录到Chatwoot 的电子邮件地址,获取密码重置说明。",
+ "GO_BACK_TO_LOGIN": "回到登录页面",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "请输入您的电子邮件",
- "ERROR": "请输入一个有效的电子邮件"
+ "PLACEHOLDER": "请输入 Email 地址.",
+ "ERROR": "请输入一个有效的电子邮件."
},
"API": {
- "SUCCESS_MESSAGE": "密码重置链接已发送到您的电子邮件",
- "ERROR_MESSAGE": "无法连接服务器,请稍后再试"
+ "SUCCESS_MESSAGE": "密码重置链接已发送到您的电子邮件.",
+ "ERROR_MESSAGE": "无法连接 Woot 服务器,请稍后再试。"
},
"SUBMIT": "提交"
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/setNewPassword.json b/app/javascript/dashboard/i18n/locale/zh/setNewPassword.json
index f2e9b2296..43dea4d6f 100644
--- a/app/javascript/dashboard/i18n/locale/zh/setNewPassword.json
+++ b/app/javascript/dashboard/i18n/locale/zh/setNewPassword.json
@@ -4,16 +4,19 @@
"PASSWORD": {
"LABEL": "密码",
"PLACEHOLDER": "密码",
- "ERROR": "密码太短了"
+ "ERROR": "密码太短了."
},
"CONFIRM_PASSWORD": {
- "LABEL": "请确认密码",
+ "LABEL": "请重新输入一次密码",
"PLACEHOLDER": "确认密码",
- "ERROR": "密码不匹配"
+ "ERROR": "密码不匹配."
},
"API": {
- "SUCCESS_MESSAGE": "成功修改密码",
- "ERROR_MESSAGE": "无法连接服务器,请稍后再试"
+ "SUCCESS_MESSAGE": "成功修改密码.",
+ "ERROR_MESSAGE": "无法连接Woot服务器,请稍后再试"
+ },
+ "CAPTCHA": {
+ "ERROR": "验证码过期。请重新获取"
},
"SUBMIT": "提交"
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/settings.json b/app/javascript/dashboard/i18n/locale/zh/settings.json
index e9449cff0..1ba9a5662 100644
--- a/app/javascript/dashboard/i18n/locale/zh/settings.json
+++ b/app/javascript/dashboard/i18n/locale/zh/settings.json
@@ -3,8 +3,14 @@
"LINK": "个人资料设置",
"TITLE": "个人资料设置",
"BTN_TEXT": "更新个人资料",
+ "DELETE_AVATAR": "删除头像",
+ "AVATAR_DELETE_SUCCESS": "头像已成功删除",
+ "AVATAR_DELETE_FAILED": "删除头像时出现错误,请重试",
+ "UPDATE_SUCCESS": "您的个人资料已更新成功",
+ "PASSWORD_UPDATE_SUCCESS": "您的密码已成功更改。",
"AFTER_EMAIL_CHANGED": "您的个人资料已成功更新,请在您的登录凭据更改后重新登录",
"FORM": {
+ "PICTURE": "个人资料图片",
"AVATAR": "头像",
"ERROR": "请修正表单错误",
"REMOVE_IMAGE": "删除",
@@ -14,19 +20,148 @@
"TITLE": "个人信息",
"NOTE": "您的电子邮件地址是您的身份并用于登录。"
},
+ "SEND_MESSAGE": {
+ "TITLE": "发送消息的快捷键",
+ "NOTE": "您可以根据您的写入偏好选择一个快捷键 (输入或 Cmd/Ctrl+Enter)。",
+ "UPDATE_SUCCESS": "您的设置已经更新成功",
+ "CARD": {
+ "ENTER_KEY": {
+ "HEADING": "Enter (↵)",
+ "CONTENT": "按 Enter 键发送消息,而不是单击发送按钮。"
+ },
+ "CMD_ENTER_KEY": {
+ "HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)",
+ "CONTENT": "按下 Cmd/Ctrl + Enter 发送消息,而不是点击发送按钮。"
+ }
+ }
+ },
+ "INTERFACE_SECTION": {
+ "TITLE": "界面",
+ "NOTE": "自定义您的 Chatwoot 仪表板的外观和感觉。",
+ "FONT_SIZE": {
+ "TITLE": "字体大小",
+ "NOTE": "根据您的偏好调整仪表板中的文本大小。",
+ "UPDATE_SUCCESS": "您的字体设置已成功更新",
+ "UPDATE_ERROR": "更新字体设置时出错,请重试",
+ "OPTIONS": {
+ "SMALLER": "较小",
+ "SMALL": "小",
+ "DEFAULT": "默认",
+ "LARGE": "大",
+ "LARGER": "较大",
+ "EXTRA_LARGE": "特大"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "首选语言",
+ "NOTE": "选择您想要使用的语言。",
+ "UPDATE_SUCCESS": "您的语言设置已成功更新",
+ "UPDATE_ERROR": "更新语言设置时出错,请重试",
+ "USE_ACCOUNT_DEFAULT": "使用账户默认值"
+ }
+ },
+ "MESSAGE_SIGNATURE_SECTION": {
+ "TITLE": "个人消息签名",
+ "NOTE": "创建一个唯一的消息签名来显示在您从任何收件箱发送的消息的末尾。 您也可以包含一个内联图片,它支持在直播聊天、电子邮件和API收件箱中。",
+ "BTN_TEXT": "保存消息签名",
+ "API_ERROR": "无法保存签名!请重试",
+ "API_SUCCESS": "签名保存成功",
+ "IMAGE_UPLOAD_ERROR": "无法上传图片!请再试一次",
+ "IMAGE_UPLOAD_SUCCESS": "图片添加成功。请点击保存签名。",
+ "IMAGE_UPLOAD_SIZE_ERROR": "图片大小应该小于{size}MB"
+ },
+ "MESSAGE_SIGNATURE": {
+ "LABEL": "消息签名",
+ "ERROR": "消息签名不能为空",
+ "PLACEHOLDER": "在此插入您的个人消息签名。"
+ },
"PASSWORD_SECTION": {
"TITLE": "密码",
- "NOTE": "更新您的密码会在多个设备中重置您的登录信息。"
+ "NOTE": "更新您的密码会在多个设备中重置您的登录信息。",
+ "BTN_TEXT": "更改密码"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "安全",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
},
"ACCESS_TOKEN": {
"TITLE": "访问令牌",
- "NOTE": "如果您正在构建基于 API 的集成,这个令牌可以被使用"
+ "NOTE": "如果您正在构建基于 API 的集成,这个令牌可以被使用",
+ "COPY": "复制",
+ "RESET": "重置",
+ "CONFIRM_RESET": "您确定吗?",
+ "CONFIRM_HINT": "再次点击以确认",
+ "RESET_SUCCESS": "成功重新生成访问令牌",
+ "RESET_ERROR": "无法重新生成访问令牌。请重试"
+ },
+ "AUDIO_NOTIFICATIONS_SECTION": {
+ "TITLE": "音频提醒",
+ "NOTE": "在仪表板中为新消息和会话启用音频提醒。",
+ "PLAY": "播放声音",
+ "ALERT_TYPES": {
+ "NONE": "无",
+ "MINE": "分配给我的",
+ "ALL": "所有",
+ "ASSIGNED": "分配给我的会话",
+ "UNASSIGNED": "未分配的会话",
+ "NOTME": "分配给其他人的开放会话"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "您尚未选择任何选项,您不会收到任何音频提醒。",
+ "ASSIGNED": "您将收到分配给您的会话的提醒。",
+ "UNASSIGNED": "您将收到任何未分配会话的提醒。",
+ "NOTME": "您将收到分配给其他人的会话的提醒。",
+ "ASSIGNED+UNASSIGNED": "您将收到分配给您的会话和任何未处理会话的提醒。",
+ "ASSIGNED+NOTME": "您将收到分配给您的会话和分配给其他人的会话的提醒,但不会收到未分配会话的提醒。",
+ "NOTME+UNASSIGNED": "您将收到未处理会话和分配给其他人的会话的提醒。",
+ "ASSIGNED+NOTME+UNASSIGNED": "您将收到所有会话的提醒。"
+ },
+ "ALERT_TYPE": {
+ "TITLE": "会话提醒事件",
+ "NONE": "无",
+ "ASSIGNED": "分配会话",
+ "ALL_CONVERSATIONS": "所有会话"
+ },
+ "DEFAULT_TONE": {
+ "TITLE": "提醒音调:"
+ },
+ "CONDITIONS": {
+ "TITLE": "提醒条件:",
+ "CONDITION_ONE": "仅在浏览器窗口未激活时发送音频提醒",
+ "CONDITION_TWO": "每30秒发送一次提醒,直到所有分配的会话被阅读"
+ },
+ "SOUND_PERMISSION_ERROR": "您的浏览器中禁用了自动播放。要自动听到提醒,请在浏览器设置中启用声音权限或与页面进行交互。",
+ "READ_MORE": "阅读更多"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "电子邮件通知",
"NOTE": "在此更新您的电子邮件通知设置",
"CONVERSATION_ASSIGNMENT": "当对话分配给我时发送电子邮件通知",
- "CONVERSATION_CREATION": "当对话分配给我时发送电子邮件通知"
+ "CONVERSATION_CREATION": "当对话分配给我时发送电子邮件通知",
+ "CONVERSATION_MENTION": "当您在会话中被提及时发送电子邮件通知",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "在已分配的会话中创建新消息时发送电子邮件通知",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "当参与会话中创建新消息时发送电子邮件通知",
+ "SLA_MISSED_FIRST_RESPONSE": "当会话错过首次响应 SLA 时发送电子邮件通知",
+ "SLA_MISSED_NEXT_RESPONSE": "当会话错过下次响应 SLA 时发送电子邮件通知",
+ "SLA_MISSED_RESOLUTION": "当会话错过解决 SLA 时发送电子邮件通知"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "通知偏好",
+ "TYPE_TITLE": "通知类型",
+ "EMAIL": "电子邮件",
+ "PUSH": "推送通知",
+ "TYPES": {
+ "CONVERSATION_CREATED": "新会话已创建",
+ "CONVERSATION_ASSIGNED": "会话已分配给您",
+ "CONVERSATION_MENTION": "您在会话中被提及",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "在分配的会话中创建了新消息",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "在参与的会话中创建了新消息",
+ "SLA_MISSED_FIRST_RESPONSE": "会话错过了首次响应 SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "会话错过了下次响应 SLA",
+ "SLA_MISSED_RESOLUTION": "会话错过了解决 SLA"
+ },
+ "BROWSER_PERMISSION": "为您的浏览器启用推送通知,以便您能够接收它们"
},
"API": {
"UPDATE_SUCCESS": "您的通知设置已成功更新",
@@ -34,72 +169,122 @@
},
"PUSH_NOTIFICATIONS_SECTION": {
"TITLE": "推送通知",
- "NOTE": "在此更新您的电子邮件通知设置",
+ "NOTE": "在此更新您的推送通知设置",
"CONVERSATION_ASSIGNMENT": "当对话被分配给我时发送推送通知",
"CONVERSATION_CREATION": "创建新对话时发送推送通知",
+ "CONVERSATION_MENTION": "当您在会话中被提及时发送推送通知",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "在已分配的会话中创建新消息时发送推送通知",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "当参与会话中创建新消息时发送推送通知",
"HAS_ENABLED_PUSH": "您已启用此浏览器的推送。",
- "REQUEST_PUSH": "启用推送通知"
+ "REQUEST_PUSH": "启用推送通知",
+ "SLA_MISSED_FIRST_RESPONSE": "当会话错过首次响应 SLA 时发送推送通知",
+ "SLA_MISSED_NEXT_RESPONSE": "当会话错过下次响应 SLA 时发送推送通知",
+ "SLA_MISSED_RESOLUTION": "当会话错过解决 SLA 时发送推送通知"
},
"PROFILE_IMAGE": {
"LABEL": "头像"
},
"NAME": {
- "LABEL": "Your full name",
- "ERROR": "Please enter a valid full name",
- "PLACEHOLDER": "Please enter your full name"
+ "LABEL": "您的全名",
+ "ERROR": "请输入一个有效的全名",
+ "PLACEHOLDER": "请输入您的姓名"
},
"DISPLAY_NAME": {
- "LABEL": "Display name",
- "ERROR": "Please enter a valid display name",
- "PLACEHOLDER": "Please enter a display name, this would be displayed in conversations"
+ "LABEL": "展示名",
+ "ERROR": "请输入一个有效的全名",
+ "PLACEHOLDER": "请输入显示名称,将会在对话中显示"
},
"AVAILABILITY": {
"LABEL": "有效的",
- "STATUSES_LIST": [
- "在线的",
- "忙碌中",
- "离线的"
- ]
+ "STATUS": {
+ "ONLINE": "在线",
+ "BUSY": "忙碌中",
+ "OFFLINE": "离线"
+ },
+ "SET_AVAILABILITY_SUCCESS": "可用性已成功设置",
+ "SET_AVAILABILITY_ERROR": "无法设置可用性,请重试",
+ "IMPERSONATING_ERROR": "当您处于模拟用户状态时,无法更改其在线状态"
},
"EMAIL": {
"LABEL": "您的电子邮件地址",
"ERROR": "请输入一个有效的电子邮件",
"PLACEHOLDER": "请输入您的名字,这将会在对话中显示"
},
+ "CURRENT_PASSWORD": {
+ "LABEL": "当前密码",
+ "ERROR": "请输入当前密码",
+ "PLACEHOLDER": "请输入当前密码"
+ },
"PASSWORD": {
- "LABEL": "密码",
+ "LABEL": "新密码",
"ERROR": "请输入长度6或更长的密码",
"PLACEHOLDER": "请输入新密码"
},
"PASSWORD_CONFIRMATION": {
"LABEL": "重新输入一次密码",
"ERROR": "两次密码不一致",
- "PLACEHOLDER": "请重新输入密码"
+ "PLACEHOLDER": "请重新输入您的新密码"
}
}
},
"SIDEBAR_ITEMS": {
- "CHANGE_AVAILABILITY_STATUS": "改變",
+ "CHANGE_AVAILABILITY_STATUS": "更改",
"CHANGE_ACCOUNTS": "切换账户",
+ "SWITCH_ACCOUNT": "切换账户",
+ "CONTACT_SUPPORT": "联系支持",
"SELECTOR_SUBTITLE": "从以下列表中选择一个账户",
"PROFILE_SETTINGS": "个人资料设置",
- "LOGOUT": "退出登录"
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "键盘快捷键",
+ "APPEARANCE": "更改外观",
+ "SUPER_ADMIN_CONSOLE": "超级管理员控制台",
+ "DOCS": "阅读文档",
+ "CHANGELOG": "更新日志",
+ "LOGOUT": "注销"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "剩余试用期天数",
- "TRAIL_BUTTON": "立即购买"
+ "TRAIL_BUTTON": "立即购买",
+ "DELETED_USER": "已删除用户",
+ "EMAIL_VERIFICATION_PENDING": "您似乎尚未验证您的电子邮件地址。请检查您的收件箱以获取验证邮件。",
+ "RESEND_VERIFICATION_MAIL": "重新发送验证邮件",
+ "EMAIL_VERIFICATION_SENT": "验证邮件已发送。请检查您的收件箱。",
+ "ACCOUNT_SUSPENDED": {
+ "TITLE": "账户已暂停",
+ "MESSAGE": "您的账户已被暂停。请联系支持团队以获取更多信息。"
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "注销"
+ }
},
"COMPONENTS": {
"CODE": {
"BUTTON_TEXT": "复制",
- "COPY_SUCCESSFUL": "代码复制到剪贴板成功"
+ "CODEPEN": "在 CodePen 中打开",
+ "COPY_SUCCESSFUL": "已复制到剪贴板"
+ },
+ "SHOW_MORE_BLOCK": {
+ "SHOW_MORE": "显示更多",
+ "SHOW_LESS": "显示更少"
},
"FILE_BUBBLE": {
"DOWNLOAD": "下载",
- "UPLOADING": "上传中..."
+ "UPLOADING": "上传中...",
+ "INSTAGRAM_STORY_UNAVAILABLE": "本信息不存在",
+ "INSTAGRAM_STORY_REPLY": "回复您的故事:"
+ },
+ "LOCATION_BUBBLE": {
+ "SEE_ON_MAP": "在地图上查看"
},
"FORM_BUBBLE": {
"SUBMIT": "提交"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "此图片不再可用。",
+ "LOADING_FAILED": "加载失败"
}
},
"CONFIRM_EMAIL": "正在验证...",
@@ -109,31 +294,629 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "无项目",
+ "CURRENTLY_VIEWING_ACCOUNT": "当前查看:",
+ "SWITCH": "切换",
+ "INBOX_VIEW": "收件箱视图",
"CONVERSATIONS": "会话",
+ "INBOX": "我的收件箱",
+ "ALL_CONVERSATIONS": "所有会话",
+ "MENTIONED_CONVERSATIONS": "提及",
+ "PARTICIPATING_CONVERSATIONS": "参与者",
+ "UNATTENDED_CONVERSATIONS": "未处理",
"REPORTS": "报告",
"SETTINGS": "设置",
+ "CONTACTS": "联系人",
+ "ACTIVE": "状态",
+ "COMPANIES": "公司",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "助手",
+ "CAPTAIN_DOCUMENTS": "文档",
+ "CAPTAIN_RESPONSES": "常见问题",
+ "CAPTAIN_TOOLS": "工具",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "试验场",
+ "CAPTAIN_INBOXES": "收件箱",
+ "CAPTAIN_SETTINGS": "设置",
"HOME": "首页",
- "AGENTS": "客服代理们",
+ "AGENTS": "客服代理",
+ "AGENT_BOTS": "机器人",
+ "AUDIT_LOGS": "审计日志",
"INBOXES": "收件箱",
+ "NOTIFICATIONS": "消息通知",
"CANNED_RESPONSES": "预设回复",
"INTEGRATIONS": "集成方式",
- "ACCOUNT_SETTINGS": "帐户设置",
- "LABELS": "标签"
+ "PROFILE_SETTINGS": "个人资料设置",
+ "ACCOUNT_SETTINGS": "账户设置",
+ "APPLICATIONS": "应用程序",
+ "LABELS": "标签",
+ "CUSTOM_ATTRIBUTES": "自定义属性",
+ "AUTOMATION": "自动化",
+ "MACROS": "宏",
+ "TEAMS": "团队",
+ "BILLING": "计费",
+ "CUSTOM_VIEWS_FOLDER": "文件夹",
+ "CUSTOM_VIEWS_SEGMENTS": "分段",
+ "ALL_CONTACTS": "所有联系人",
+ "TAGGED_WITH": "标记为",
+ "NEW_LABEL": "新标签",
+ "NEW_TEAM": "新团队",
+ "NEW_INBOX": "新收件箱",
+ "REPORTS_CONVERSATION": "会话",
+ "CSAT": "客户满意度",
+ "LIVE_CHAT": "在线聊天",
+ "SMS": "短信",
+ "WHATSAPP": "WhatsApp",
+ "CAMPAIGNS": "活动",
+ "ONGOING": "进行中",
+ "ONE_OFF": "一次性",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "机器人",
+ "REPORTS_AGENT": "客服",
+ "REPORTS_LABEL": "标签",
+ "REPORTS_INBOX": "收件箱",
+ "REPORTS_TEAM": "团队",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
+ "SET_AVAILABILITY_TITLE": "将自己设置为",
+ "SET_YOUR_AVAILABILITY": "设置您的可用性",
+ "SLA": "SLA",
+ "CUSTOM_ROLES": "自定义角色",
+ "BETA": "测试版",
+ "REPORTS_OVERVIEW": "概览",
+ "REAUTHORIZE": "您的收件箱连接已过期,请重新连接以继续接收和发送消息",
+ "HELP_CENTER": {
+ "TITLE": "帮助中心",
+ "ARTICLES": "文章",
+ "CATEGORIES": "类别",
+ "LOCALES": "语言",
+ "SETTINGS": "设置"
+ },
+ "CHANNELS": "频道",
+ "SET_AUTO_OFFLINE": {
+ "TEXT": "自动标记离线状态",
+ "INFO_TEXT": "当您不使用应用程序或仪表板时,让系统自动标记您离线。",
+ "INFO_SHORT": "当您不使用应用程序时自动标记离线。"
+ },
+ "DOCS": "阅读文档",
+ "SECURITY": "安全",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "助手",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "特性",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
+ },
+ "BILLING_SETTINGS": {
+ "TITLE": "计费方式",
+ "DESCRIPTION": "在此管理您的订阅,升级您的计划并为您的团队获取更多功能。",
+ "CURRENT_PLAN": {
+ "TITLE": "当前计划",
+ "PLAN_NOTE": "您当前订阅的是 **{plan}** 计划,拥有 **{quantity}** 个许可证",
+ "SEAT_COUNT": "座位数",
+ "RENEWS_ON": "续订于"
+ },
+ "VIEW_PRICING": "查看价格",
+ "MANAGE_SUBSCRIPTION": {
+ "TITLE": "管理您的订阅",
+ "DESCRIPTION": "查看您之前的发票,编辑您的账单详细信息或取消您的订阅。",
+ "BUTTON_TXT": "前往账单门户"
+ },
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "管理 Captain AI 的使用和积分。",
+ "BUTTON_TXT": "购买更多积分",
+ "DOCUMENTS": "文档",
+ "RESPONSES": "常见问题",
+ "UPGRADE": "Captain 在免费计划中不可用,立即升级以获取助手、副驾驶等更多功能。",
+ "REFRESH_CREDITS": "刷新"
+ },
+ "CHAT_WITH_US": {
+ "TITLE": "需要帮助吗?",
+ "DESCRIPTION": "您在计费方面遇到任何问题吗?我们在此为您提供帮助。",
+ "BUTTON_TXT": "联系我们"
+ },
+ "NO_BILLING_USER": "您的计费账户正在配置中。请刷新页面并重试。",
+ "TOPUP": {
+ "BUY_CREDITS": "购买更多积分",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Note:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "取消",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "返回",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "安全",
+ "DESCRIPTION": "管理您的账户安全设置。",
+ "LINK_TEXT": "了解更多关于 SAML SSO 的信息",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "已复制到剪贴板",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "更新 SAML 设置",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "请联系您的管理员进行升级。"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "立即升级",
+ "CANCEL_ANYTIME": "您可以随时更改或取消您的计划"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "搜索属性"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "解决会话",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "解决会话",
+ "CANCEL": "取消"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "是",
+ "NO": "否"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "立即升级",
+ "CANCEL_ANYTIME": "您可以随时更改或取消您的计划"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "请联系您的管理员进行升级。"
+ }
+ }
},
"CREATE_ACCOUNT": {
- "NEW_ACCOUNT": "New Account",
- "SELECTOR_SUBTITLE": "Create a new account",
+ "NO_ACCOUNT_WARNING": "哦,糟糕!我们找不到任何 Chatwoot 账户。请创建一个新账户以继续。",
+ "NEW_ACCOUNT": "新账户",
+ "SELECTOR_SUBTITLE": "创建一个新账户",
"API": {
- "SUCCESS_MESSAGE": "Account created successfully",
- "EXIST_MESSAGE": "Account already exists",
+ "SUCCESS_MESSAGE": "账户创建成功",
+ "EXIST_MESSAGE": "账户已存在",
"ERROR_MESSAGE": "无法连接服务器,请稍后再试"
},
"FORM": {
"NAME": {
- "LABEL": "帐户名称",
+ "LABEL": "公司名称",
"PLACEHOLDER": "Wayne企业"
},
- "SUBMIT": "提交"
+ "SUBMIT": "提交",
+ "CANCEL": "取消"
+ }
+ },
+ "KEYBOARD_SHORTCUTS": {
+ "TOGGLE_MODAL": "查看所有快捷键",
+ "TITLE": {
+ "OPEN_CONVERSATION": "打开对话",
+ "RESOLVE_AND_NEXT": "解决并移动到下一个",
+ "NAVIGATE_DROPDOWN": "导航下拉项",
+ "RESOLVE_CONVERSATION": "解决对话",
+ "GO_TO_CONVERSATION_DASHBOARD": "前往对话仪表板",
+ "ADD_ATTACHMENT": "添加附件",
+ "GO_TO_CONTACTS_DASHBOARD": "前往联系人仪表板",
+ "TOGGLE_SIDEBAR": "切换侧边栏",
+ "GO_TO_REPORTS_SIDEBAR": "前往报告侧边栏",
+ "MOVE_TO_NEXT_TAB": "移动到对话列表中的下一个标签",
+ "GO_TO_SETTINGS": "前往设置",
+ "SWITCH_TO_PRIVATE_NOTE": "切换到私人笔记",
+ "SWITCH_TO_REPLY": "切换到回复",
+ "TOGGLE_SNOOZE_DROPDOWN": "切换暂停下拉菜单"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
+ },
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "优先级",
+ "ACTIVE": "状态",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "编辑"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "取消"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "描述:",
+ "PLACEHOLDER": "输入描述"
+ },
+ "STATUS": {
+ "LABEL": "状态:",
+ "PLACEHOLDER": "选择状态",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "添加"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "编辑"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "取消"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "描述:",
+ "PLACEHOLDER": "输入描述"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "没有设置收件箱限制"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "添加标签",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "添加"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "删除",
+ "CANCEL_BUTTON_LABEL": "取消"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh/signup.json b/app/javascript/dashboard/i18n/locale/zh/signup.json
index 3f0629b98..c7912ac8b 100644
--- a/app/javascript/dashboard/i18n/locale/zh/signup.json
+++ b/app/javascript/dashboard/i18n/locale/zh/signup.json
@@ -1,32 +1,50 @@
{
"REGISTER": {
- "TRY_WOOT": "注册帐户",
+ "TRY_WOOT": "创建新账户",
+ "GET_STARTED": "开始使用Chatwoot",
"TITLE": "注册",
- "TERMS_ACCEPT": "通过注册,您同意我们的
T & C 和
隐私政策",
- "ACCOUNT_NAME": {
- "LABEL": "帐户名称",
- "PLACEHOLDER": "Wayne企业",
- "ERROR": "帐号名称太短了"
+ "TESTIMONIAL_HEADER": "只差最后一步就可以了",
+ "TESTIMONIAL_CONTENT": "您离吸引客户、留住客户和寻找新客户仅一步之遥。",
+ "TERMS_ACCEPT": "通过创建账户, 你将同意我们的
T & C 以及
隐私政策",
+ "OAUTH": {
+ "GOOGLE_SIGNUP": "使用 Google 注册"
+ },
+ "COMPANY_NAME": {
+ "LABEL": "公司名称",
+ "PLACEHOLDER": "输入您的公司名称。例如, Wayne Enterprises",
+ "ERROR": "公司名称太短了。"
+ },
+ "FULL_NAME": {
+ "LABEL": "名字",
+ "PLACEHOLDER": "输入您的全名,例如 Bruce Wayne",
+ "ERROR": "帐号名称太短了."
},
"EMAIL": {
- "LABEL": "Email",
- "PLACEHOLDER": "bruce{'@'}wayne{'.'}enterprises",
- "ERROR": "电子邮件无效"
+ "LABEL": "工作邮箱",
+ "PLACEHOLDER": "请输入您的工作邮箱地址。例如:bruce{'@'}wayne{'.'}enterprises",
+ "ERROR": "请输入一个有效的电子邮件."
},
"PASSWORD": {
"LABEL": "密码",
"PLACEHOLDER": "密码",
- "ERROR": "密码太短了"
+ "ERROR": "密码太短了.",
+ "IS_INVALID_PASSWORD": "密码应至少应该包含:1个大写字母、1个小写字母、1个数字和1个特殊字符。",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
- "LABEL": "请确认密码",
- "PLACEHOLDER": "请确认密码",
- "ERROR": "密码不匹配"
+ "LABEL": "确认密码",
+ "PLACEHOLDER": "请重新输入一次密码",
+ "ERROR": "密码不匹配."
},
"API": {
"SUCCESS_MESSAGE": "注册成功",
- "ERROR_MESSAGE": "无法连接服务器,请稍后再试"
+ "ERROR_MESSAGE": "无法与 Woot 服务器建立连接。请重试。"
},
- "SUBMIT": "提交"
+ "SUBMIT": "创建新账户",
+ "HAVE_AN_ACCOUNT": "已经有帐号?"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/agentBots.json b/app/javascript/dashboard/i18n/locale/zh_CN/agentBots.json
index 3254d3098..dc2ef8265 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "正在加载编辑器...",
"DESCRIPTION": "客服机器人就像您团队中最出色的成员。它们可以处理琐事,让您专注于重要的事情。试试看吧。您可以在此页面管理您的机器人,或使用“配置新机器人”按钮创建新的机器人。",
"LEARN_MORE": "了解客服机器人",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "系统级机器人",
"GLOBAL_BOT_BADGE": "系统",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "正在获取机器人...",
"TABLE_HEADER": {
"DETAILS": "机器人详情",
- "URL": "Webhook 网址"
+ "URL": "Webhook 网址",
+ "ACTIONS": "操作"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/agentMgmt.json b/app/javascript/dashboard/i18n/locale/zh_CN/agentMgmt.json
index 47552c9be..bc1e290ee 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "管理员",
"AGENT": "客服"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "此账号没有关联客服",
"TITLE": "管理您团队中的客服",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "无法连接Woot服务器,请稍后再试"
}
},
+ "SEARCH_PLACEHOLDER": "搜索客服代表...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "未找到任何结果。"
},
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/zh_CN/attributesMgmt.json
index d286e706e..a528ad09f 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "正在获取自定义属性",
"DESCRIPTION": "自定义属性可跟踪有关您的联系人或对话的其他详细信息——例如订阅计划或首次购买日期。您可以添加不同类型的自定义属性,如文本、列表或数字,以捕获您需要的特定信息。",
"LEARN_MORE": "自定义属性说明",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "搜索属性...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "会话",
"CONTACT": "联系人"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "启用正则表达式验证"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/auditLogs.json b/app/javascript/dashboard/i18n/locale/zh_CN/auditLogs.json
index b7fca9a39..a0e8ec466 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/auditLogs.json
@@ -23,9 +23,9 @@
},
"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}",
@@ -36,39 +36,39 @@
}
},
"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} 删除了对话 #{id}"
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/automation.json b/app/javascript/dashboard/i18n/locale/zh_CN/automation.json
index 182e598a0..4671bd09e 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/automation.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/automation.json
@@ -3,8 +3,11 @@
"HEADER": "自动化",
"DESCRIPTION": "自动化可以取代和简化人工的现有程序,例如添加标签和将对话分配给最合适的代理人。 这使小组能够集中精力完成其实力,同时减少用于日常任务的时间。",
"LEARN_MORE": "了解更多关于审计日志的信息",
- "HEADER_BTN_TXT": "添加自动化规则",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "正在获取自动化规则",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "添加自动化规则",
"SUBMIT": "创建",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "姓名:",
- "DESCRIPTION": "描述信息",
"ACTIVE": "状态",
- "CREATED_ON": "创建时间"
+ "CREATED_ON": "创建时间",
+ "ACTIONS": "操作"
},
"404": "未找到自动化规则"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "添加私密注释",
"CHANGE_PRIORITY": "更改优先级",
"ADD_SLA": "添加SLA",
- "OPEN_CONVERSATION": "打开对话"
+ "OPEN_CONVERSATION": "打开对话",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/bulkActions.json b/app/javascript/dashboard/i18n/locale/zh_CN/bulkActions.json
index 6d0673e6d..408d71776 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/bulkActions.json
@@ -22,6 +22,10 @@
"UPDATE_SUCCESFUL": "对话状态更新成功。",
"UPDATE_FAILED": "更新对话失败。请再试一次。"
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "分配标签",
"NO_LABELS_FOUND": "未找到标签",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/zh_CN/cannedMgmt.json
index 9bbe92a0a..a9938b6f8 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "预设回复",
"LEARN_MORE": "了解更多关于预设回复的内容",
"DESCRIPTION": "预设回复是预先写好的回复模板,可以帮助您在对话中快速响应。客服人员可以在对话中输入“/”字符,然后输入简码来插入预设回复。 ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "新增预设回复",
"LOADING": "正在检索预定义回复...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "没有任何项目符合此查询.",
"LIST": {
"404": "此帐户中没有预设的回复。",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/chatlist.json b/app/javascript/dashboard/i18n/locale/zh_CN/chatlist.json
index 92d976a12..947d20d58 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "等待响应:最短在前"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -104,7 +107,7 @@
"CONTENT": "共享联系人"
},
"embed": {
- "CONTENT": ""
+ "CONTENT": "嵌入内容"
}
},
"CHAT_SORT_BY_FILTER": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/companies.json b/app/javascript/dashboard/i18n/locale/zh_CN/companies.json
index 036952ae4..df37de873 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/companies.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/companies.json
@@ -1,13 +1,13 @@
{
"COMPANIES": {
- "HEADER": "Companies",
+ "HEADER": "公司",
"SORT_BY": {
"LABEL": "排序方式",
"OPTIONS": {
"NAME": "姓名:",
"DOMAIN": "域名",
"CREATED_AT": "创建于",
- "CONTACTS_COUNT": "Contacts count"
+ "CONTACTS_COUNT": "联系人数"
}
},
"ORDER": {
@@ -17,17 +17,17 @@
"DESCENDING": "降序"
}
},
- "SEARCH_PLACEHOLDER": "Search companies...",
- "LOADING": "Loading companies...",
- "UNNAMED": "Unnamed Company",
- "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "SEARCH_PLACEHOLDER": "搜索公司...",
+ "LOADING": "正在加载公司...",
+ "UNNAMED": "未命名的公司",
+ "CONTACTS_COUNT": "{n} 个联系人 | {n} 个联系人",
"EMPTY_STATE": {
- "TITLE": "No companies found"
+ "TITLE": "没有找到公司"
}
},
"COMPANIES_LAYOUT": {
"PAGINATION_FOOTER": {
- "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ "SHOWING": "显示第 {startItem} - {endItem} 项,共 {totalItems} 项"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/contact.json b/app/javascript/dashboard/i18n/locale/zh_CN/contact.json
index d7fcae677..35120983b 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/contact.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/contact.json
@@ -18,7 +18,7 @@
"CREATED_AT_LABEL": "创建时间",
"NEW_MESSAGE": "新消息",
"CALL": "呼叫",
- "CALL_INITIATED": "Calling the contact…",
+ "CALL_INITIATED": "正在接通…",
"CALL_FAILED": "Unable to start the call. Please try again.",
"VOICE_INBOX_PICKER": {
"TITLE": "选择一个语音收件箱"
@@ -457,8 +457,11 @@
"INSTAGRAM": {
"PLACEHOLDER": "添加 Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
- "PLACEHOLDER": "Add TikTok"
+ "PLACEHOLDER": "添加TikTok"
},
"LINKEDIN": {
"PLACEHOLDER": "添加 LinkedIn"
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "没有搜索到联系人🔍",
"LIST_EMPTY_STATE_TITLE": "此视图中没有可用的联系人📋",
"ACTIVE_EMPTY_STATE_TITLE": "目前没有联系人在线 🌙"
- }
+ },
+ "LOAD_MORE": "加载更多"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "分配标签",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "没有可用的收件箱来开始与此联系人的对话。",
"CONTACT_SELECTOR": {
"LABEL": "发送至:",
- "TAG_INPUT_PLACEHOLDER": "通过姓名、电子邮件或电话号码搜索联系人",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "正在创建联系人……"
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "主题 :",
"SUBJECT_PLACEHOLDER": "在此处输入电子邮件主题",
"CC_LABEL": "抄送:",
- "CC_PLACEHOLDER": "通过电子邮件地址搜索联系人",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "密送:",
- "BCC_PLACEHOLDER": "通过电子邮件地址搜索联系人",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "密送"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json b/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json
index 7ff51e4d5..9f4e80843 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "不支持此消息。您可以在 Facebook Messenger 应用上查看此消息。",
"UNSUPPORTED_MESSAGE_FACEBOOK": "不支持此消息。您可以在 Facebook Messenger 应用上查看此消息。",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "不支持此消息。您可以在 Instagram 应用上查看此消息。",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "已成功删除消息",
"FAIL_DELETE_MESSSAGE": "无法删除消息,请重试!",
"NO_RESPONSE": "无响应",
@@ -173,6 +174,10 @@
"SUCCESFUL": "已为对话 Id {conversationId} 分配标签 #{labelName}",
"FAILED": "无法分配标签。请再试。"
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "将团队 \"{team}\" 分配给对话 ID {conversationId}",
"FAILED": "无法分配团队。请重试。"
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "禁用签名",
"MSG_INPUT": "输入“/”开始选择快捷回复",
"PRIVATE_MSG_INPUT": "Shift + 输入新行。这只对客服可见",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "未设置消息签名,请在个人资料中进行设置。",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "点击此处更新",
"WHATSAPP_TEMPLATES": "Whatsapp 模板列表"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "拖放到此处添加附件",
"START_AUDIO_RECORDING": "开始录音",
"STOP_AUDIO_RECORDING": "停止录音",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "发给",
"ADD_BCC": "添加密送",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "对话成功删除",
"FAIL_DELETE_CONVERSATION": "无法删除对话!请重试",
"FILE_SIZE_LIMIT": "文件超过了 {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB 的附件限制",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "无法发送此消息,请稍后再试",
"SENT_BY": "发送人:",
"BOT": "机器人",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "无法发送消息,请重试!",
"TRY_AGAIN": "重试",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "取消操作",
"SEND_EMAIL_SUCCESS": "对话记录已成功发送",
"SEND_EMAIL_ERROR": "出错了,请重试",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "发送对话记录给客户",
"SEND_TO_AGENT": "发送对话记录给指定的代理",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/customRole.json b/app/javascript/dashboard/i18n/locale/zh_CN/customRole.json
index e6a58d737..ceb0900a3 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "自定义角色",
"LEARN_MORE": "了解更多关于自定义角色的信息",
"DESCRIPTION": "自定义角色是由账户所有者或管理员创建的角色。这些角色可以分配给客服人员,以定义他们在账户中的访问权限和权限。自定义角色可以根据组织的需求创建特定的权限和访问级别。",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "添加自定义角色",
"LOADING": "正在获取自定义角色……",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "没有任何项目符合此查询。",
"PAYWALL": {
"TITLE": "升级以创建自定义角色",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/datePicker.json b/app/javascript/dashboard/i18n/locale/zh_CN/datePicker.json
index 5372771b1..37fc6f80b 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "上一个周期",
+ "NEXT_PERIOD": "下一个周期",
+ "WEEK_NUMBER": "周#{weekNumber}",
"APPLY_BUTTON": "应用",
"CLEAR_BUTTON": "清除",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "最近3个月",
"LAST_6_MONTHS": "最近6个月",
"LAST_YEAR": "最近一年",
+ "THIS_WEEK": "本周",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "自定义日期范围"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/general.json b/app/javascript/dashboard/i18n/locale/zh_CN/general.json
index 4698ee319..7872f02e5 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/general.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "关闭",
"BETA": "测试版",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "确认",
+ "DISCARD": "丢弃",
+ "PREFERRED": "首选"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "是",
+ "NO": "否"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/generalSettings.json b/app/javascript/dashboard/i18n/locale/zh_CN/generalSettings.json
index 3181e1d0b..5257a24cd 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "搜索或跳转到",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "一般",
"REPORTS": "报告",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/helpCenter.json b/app/javascript/dashboard/i18n/locale/zh_CN/helpCenter.json
index 2b9dcb49f..f0921232e 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/helpCenter.json
@@ -374,6 +374,16 @@
"ERROR_MESSAGE": "删除文章时出错"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "请添加文章标题和内容,然后才能更新设置"
},
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json
index 33f77a004..81965842b 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "收件箱",
"DESCRIPTION": "频道是客户选择与您互动的方式。收件箱则是您用来管理特定频道互动的地方,它可以整合来自不同来源的通信,比如电子邮件、即时聊天和社交媒体等。",
"LEARN_MORE": "了解更多关于收件箱的信息",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "您的收件箱已断开连接。在您重新授权之前,您不会收到新消息。",
"CLICK_TO_RECONNECT": "点击此处重新连接。",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "仅在电子邮件标题中使用配置的业务名称作为发件人姓名。"
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ 配置您的业务名称",
+ "BUTTON_TEXT": "配置您的业务名称",
"PLACEHOLDER": "输入您的业务名称",
"SAVE_BUTTON_TEXT": "保存"
}
@@ -589,8 +592,10 @@
"DISABLED": "已禁用"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "已启用",
- "DISABLED": "已禁用"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "启用"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "客户满意度"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,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": "设置",
@@ -694,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": "添加或删除此收件箱中的客服",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "启用/禁用在电子邮件中显示代理名称,如果禁用,将显示业务名称",
"ENABLE_CONTINUITY_VIA_EMAIL": "通过电子邮件启用对话连续性",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "如果有联系人的电子邮件地址,对话将会继续在电子邮件中进行。",
- "LOCK_TO_SINGLE_CONVERSATION": "锁定到单一对话",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "在此收件箱中启用或禁用同一联系人的多个对话",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "收件箱设置",
"INBOX_UPDATE_SUB_TEXT": "更新收件箱设置",
"AUTO_ASSIGNMENT_SUB_TEXT": "启用或禁用添加到此收件箱的代理人自动分配新的会话。",
@@ -758,6 +775,7 @@
"LABEL": "帮助中心",
"PLACEHOLDER": "选择帮助中心",
"SELECT_PLACEHOLDER": "选择帮助中心",
+ "NONE": "啥都没有",
"REMOVE": "移除帮助中心",
"SUB_TEXT": "将帮助中心附加到收件箱"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "请输入一个大于0的值",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "限制从此收件箱自动分配给代理的对话的最大数量"
},
+ "ASSIGNMENT": {
+ "TITLE": "对话分配",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "状态",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "取消",
+ "CONFIRM_DELETE": "删除",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "重新授权",
"SUBTITLE": "您的Facebook连接已过期,请重新连接您的Facebook页面以继续服务",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "返回"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "问卷规则",
"DESCRIPTION_PREFIX": "发送此问卷如果对话",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "选择标签"
},
"NOTE": "注:每次对话只发送一次 CSAT 问卷",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT 设置更新成功",
"ERROR_MESSAGE": "我们无法更新 CSAT 设置。请稍后再试。"
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "对访客的不可用消息",
"TOGGLE_HELP": "启用业务可用性将在实时聊天小部件上显示可用时间,即使所有代理都离线。在可用时间之外,访客将收到一条消息和预聊天表单的警告。",
"DAY": {
+ "DAY": "日",
+ "AVAILABILITY": "有效的",
+ "HOURS": "小时",
"ENABLE": "为此天启用可用性",
"UNAVAILABLE": "不可用",
- "HOURS": "小时",
"VALIDATION_ERROR": "起始时间应在结束时间之前。",
"CHOOSE": "选择"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "通常在一天之内回复您"
},
"WIDGET_COLOR_LABEL": "窗口小部件颜色",
- "WIDGET_BUBBLE_POSITION_LABEL": "小部件气泡位置",
- "WIDGET_BUBBLE_TYPE_LABEL": "小部件气泡类型",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "类型:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "联系我们",
- "LABEL": "小部件气泡启动器标题",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "联系我们"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "默认",
- "CHAT": "聊天"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "通常在几分钟内回复您",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/integrationApps.json b/app/javascript/dashboard/i18n/locale/zh_CN/integrationApps.json
index 6ef282f36..2b9d953bf 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "正在获取集成",
"NO_HOOK_CONFIGURED": "此账户中未配置任何 {integrationId} 集成。",
"HEADER": "应用程序",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "搜索……",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "已启用",
"DISABLED": "已禁用"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "正在获取集成",
"INBOX": "收件箱",
+ "ACTIONS": "操作",
"DELETE": {
"BUTTON_TEXT": "删除"
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json b/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json
index ca4a76367..ce4634f0c 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot 集成了多种工具和服务,以提高团队效率。浏览以下列表以配置您喜欢的应用程序。",
"LEARN_MORE": "了解更多关于集成的信息",
"LOADING": "正在获取集成",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "您的账户未启用 Captain。",
"CLICK_HERE_TO_CONFIGURE": "点击此处配置",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "订阅事件",
"LEARN_MORE": "了解更多关于 Webhooks 的信息",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "取消",
"DESC": "Webhook 事件为您提供了有关 Chatwoot 账户中发生的事情的实时信息。请输入一个有效的 URL 来配置回调。",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "删除",
"DELETE_CONFIRMATION": {
"TITLE": "删除集成",
@@ -145,7 +160,29 @@
"EXPAND": "扩展",
"MAKE_FRIENDLY": "将消息语气改为友好",
"MAKE_FORMAL": "使用正式语气",
- "SIMPLIFY": "简化"
+ "SIMPLIFY": "简化",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "专业",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "友好"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "草稿内容",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
仪表板应用
仪表板应用允许组织将应用程序嵌入 Chatwoot 仪表板中,以便为客服人员提供上下文信息。此功能允许您独立创建应用程序并将其嵌入仪表板中,以提供用户信息、他们的订单或以前的付款历史记录。
当您使用 Chatwoot 仪表板嵌入应用程序时,您的应用程序将作为窗口事件获取对话和联系人的上下文信息。在您的页面上实现消息事件的监听器以接收上下文信息。
要添加新的仪表板应用,请点击“添加新的仪表板应用”按钮。
",
"DESCRIPTION": "仪表板应用允许组织将应用程序嵌入仪表板中,以便为客服人员提供上下文信息。此功能允许您独立创建应用程序并将其嵌入仪表板中,以提供用户信息、他们的订单或以前的付款历史记录。",
"LEARN_MORE": "了解更多关于仪表板应用的信息",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "此账户尚未配置任何仪表板应用",
"LOADING": "正在获取仪表板应用...",
"TABLE_HEADER": {
"NAME": "姓名",
- "ENDPOINT": "端点"
+ "ENDPOINT": "端点",
+ "ACTIONS": "操作"
},
"EDIT_TOOLTIP": "编辑应用",
"DELETE_TOOLTIP": "删除应用"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "创建/链接 Linear 问题",
"LOADING": "正在获取 Linear 问题...",
"LOADING_ERROR": "获取 Linear 问题时出错,请重试",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "您可以随时更改或取消您的计划"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "升级您的计划以获取我们的助手、副驾驶等功能。",
"ASK_ADMIN": "请联系您的管理员进行升级。"
},
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/zh_CN/labelsMgmt.json
index 5732d4a11..529530b93 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "正在获取标签",
"DESCRIPTION": "标签帮助您对对话和潜在客户进行分类和优先排序。您可以使用侧边栏将标签分配给对话或联系人。",
"LEARN_MORE": "了解更多关于标签的信息",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "搜索标签...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "没有任何项目符合此查询",
"LIST": {
"404": "此帐户中没有可用的标签。",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "名称",
"DESCRIPTION": "描述信息",
- "COLOR": "颜色"
+ "COLOR": "颜色",
+ "ACTION": "操作"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/macros.json b/app/javascript/dashboard/i18n/locale/zh_CN/macros.json
index 9c7e0d8ec..703cf177f 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/macros.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/macros.json
@@ -3,9 +3,12 @@
"HEADER": "宏",
"DESCRIPTION": "宏是一组预设操作,帮助客服人员快速完成任务。客服人员可以定义诸如标记对话、发送邮件记录、更新自定义属性等操作,并一键执行。",
"LEARN_MORE": "了解更多关于宏的信息",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "添加一个新宏文件",
"HEADER_BTN_TXT_SAVE": "保存宏文件",
"LOADING": "获取宏中",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "出错了。请重试",
"ORDER_INFO": "宏将按照您添加操作的顺序运行。您可以通过拖动每个节点旁边的手柄来重新排列它们。",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "姓名:",
"CREATED BY": "创建者",
"LAST_UPDATED_BY": "最后更新者",
- "VISIBILITY": "可视性"
+ "VISIBILITY": "可视性",
+ "ACTIONS": "操作"
},
"404": "未找到宏"
},
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/mfa.json b/app/javascript/dashboard/i18n/locale/zh_CN/mfa.json
index 3a76a9a9e..444e233bb 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "两步验证",
- "SUBTITLE": "使用TOTP身份验证来保护您的帐户",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "使用基于时间的一次性密码(TOTP)为您的帐户添加额外的一层安全保护",
"STATUS_TITLE": "验证状态",
"STATUS_DESCRIPTION": "管理您的二步验证设置和备份码",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/report.json b/app/javascript/dashboard/i18n/locale/zh_CN/report.json
index 57c9ef3af..0d5592e44 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/report.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/report.json
@@ -3,7 +3,7 @@
"HEADER": "会话",
"LOADING_CHART": "正在载入图表数据...",
"NO_ENOUGH_DATA": "我们没有收到足够的数据点来生成报告,请稍后再试。",
- "DOWNLOAD_AGENT_REPORTS": "下载客服报表",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "数据获取失败,请稍后再试。",
"SUMMARY_FETCHING_FAILED": "摘要获取失败,请稍后再试。",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "客服概览",
- "DESCRIPTION": "通过关键指标如会话数量、响应时间、解决时间和已解决案例数,轻松跟踪客服人员的表现。点击客服人员姓名了解更多信息。",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "正在载入图表数据...",
"NO_ENOUGH_DATA": "我们没有收到足够的数据点来生成报告,请稍后再试。",
"DOWNLOAD_AGENT_REPORTS": "下载客服报表",
"FILTER_DROPDOWN_LABEL": "选择客服",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "搜索客服代表"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "会话",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "我们没有收到足够的数据点来生成报告,请稍后再试。",
"DOWNLOAD_LABEL_REPORTS": "下载标签报表",
"FILTER_DROPDOWN_LABEL": "选择标签",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "搜索标签"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "会话",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "选择收件箱",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "会话",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "团队概览",
- "DESCRIPTION": "通过关键指标(如会话、响应时间、解决时间和已解决案例)快速了解团队表现。点击团队名称以了解更多详细信息。",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "正在载入图表数据...",
"NO_ENOUGH_DATA": "我们没有收到足够的数据点来生成报告,请稍后再试。",
"DOWNLOAD_TEAM_REPORTS": "下载团队报表",
"FILTER_DROPDOWN_LABEL": "选择团队",
+ "FILTERS": {
+ "ADD_FILTER": "添加过滤器",
+ "CLEAR_ALL": "清除全部",
+ "NO_FILTER": "没有可用的过滤器",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "查找团队"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "会话",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT 报告",
- "NO_RECORDS": "没有可用的 CSAT 调查回复。",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "下载 CSAT 报告",
"DOWNLOAD_FAILED": "下载 CSAT 报告失败",
"FILTERS": {
+ "ADD_FILTER": "添加过滤器",
+ "CLEAR_ALL": "清除全部",
+ "NO_FILTER": "没有可用的过滤器",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "搜索客服代表",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "查找团队",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "选择客服"
+ "LABEL": "客服"
+ },
+ "INBOXES": {
+ "LABEL": "收件箱"
+ },
+ "TEAMS": {
+ "LABEL": "团队"
+ },
+ "RATINGS": {
+ "LABEL": "评分"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "联系人",
- "AGENT_NAME": "分配的客服",
+ "AGENT_NAME": "客服",
"RATING": "评分",
- "FEEDBACK_TEXT": "反馈评论"
- }
+ "FEEDBACK_TEXT": "反馈评论",
+ "CONVERSATION": "会话",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "回复",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "总回复数",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "回复率",
"TOOLTIP": "总回复数 / 发送的 CSAT 调查消息总数 * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "保存",
+ "CANCEL": "取消",
+ "SAVING": "保存中...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "立即升级",
+ "CANCEL_ANYTIME": "您可以随时更改或取消您的计划"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/search.json b/app/javascript/dashboard/i18n/locale/zh_CN/search.json
index a1a8d090f..e5af6c794 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/search.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/search.json
@@ -1,7 +1,7 @@
{
"SEARCH": {
"TABS": {
- "ALL": "All results",
+ "ALL": "所有结果",
"CONTACTS": "联系人",
"CONVERSATIONS": "会话",
"MESSAGES": "消息",
@@ -21,48 +21,48 @@
"EMPTY_STATE_FULL": "未找到与查询 '{query}' 相关的结果",
"PLACEHOLDER_KEYBINDING": "/聚焦搜索框",
"INPUT_PLACEHOLDER": "输入 3 个或更多字符以进行搜索",
- "RECENT_SEARCHES": "Recent searches",
+ "RECENT_SEARCHES": "最近搜索",
"CLEAR_ALL": "清除全部",
- "MOST_RECENT": "Most recent",
+ "MOST_RECENT": "最近的",
"EMPTY_STATE_DEFAULT": "通过会话 Id、电子邮件、电话号码、消息等进行搜索以获得更好的搜索结果。 ",
"BOT_LABEL": "机器人",
"READ_MORE": "查看更多",
- "READ_LESS": "Read less",
+ "READ_LESS": "阅读较低",
"WROTE": "写道:",
"FROM": "来自",
"EMAIL": "Email",
"EMAIL_SUBJECT": "主题",
- "PRIVATE": "Private note",
- "TRANSCRIPT": "Transcript",
+ "PRIVATE": "私人笔记",
+ "TRANSCRIPT": "文本",
"CREATED_AT": "创建于 {time}",
- "UPDATED_AT": "updated {time}",
+ "UPDATED_AT": "更新于{time}",
"SORT_BY": {
- "RELEVANCE": "Relevance"
+ "RELEVANCE": "相关性"
},
"DATE_RANGE": {
"LAST_7_DAYS": "最近7天",
"LAST_30_DAYS": "最近30天",
"LAST_60_DAYS": "最近60天",
"LAST_90_DAYS": "最近90天",
- "CUSTOM_RANGE": "Custom range:",
- "CREATED_BETWEEN": "Created between",
+ "CUSTOM_RANGE": "自定义范围:",
+ "CREATED_BETWEEN": "创建时间之间",
"AND": "和",
"APPLY": "应用",
- "BEFORE_DATE": "Before {date}",
- "AFTER_DATE": "After {date}",
- "TIME_RANGE": "Filter by time",
+ "BEFORE_DATE": "在{date}之前",
+ "AFTER_DATE": "在{date}之后",
+ "TIME_RANGE": "按时间筛选",
"CLEAR_FILTER": "清除筛选条件"
},
"FILTERS": {
- "FILTER_MESSAGE": "Filter messages by:",
- "FROM": "Sender",
+ "FILTER_MESSAGE": "筛选消息:",
+ "FROM": "发件人",
"IN": "收件箱",
"AGENTS": "客服",
"CONTACTS": "联系人",
"INBOXES": "收件箱",
"NO_AGENTS": "未找到客服代表",
- "NO_CONTACTS": "Start by searching to see results",
- "NO_INBOXES": "No inboxes found"
+ "NO_CONTACTS": "先搜索以查看结果",
+ "NO_INBOXES": "未找到收件箱"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/settings.json b/app/javascript/dashboard/i18n/locale/zh_CN/settings.json
index c9cace442..1ba9a5662 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/settings.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "下载",
"UPLOADING": "上传中...",
- "INSTAGRAM_STORY_UNAVAILABLE": "本信息不存在"
+ "INSTAGRAM_STORY_UNAVAILABLE": "本信息不存在",
+ "INSTAGRAM_STORY_REPLY": "回复您的故事:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "在地图上查看"
@@ -307,7 +308,7 @@
"SETTINGS": "设置",
"CONTACTS": "联系人",
"ACTIVE": "状态",
- "COMPANIES": "Companies",
+ "COMPANIES": "公司",
"ALL_COMPANIES": "All Companies",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "助手",
@@ -378,7 +379,57 @@
"INFO_SHORT": "当您不使用应用程序时自动标记离线。"
},
"DOCS": "阅读文档",
- "SECURITY": "安全"
+ "SECURITY": "安全",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "助手",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "特性",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "计费方式",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "搜索属性"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "解决会话",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "解决会话",
+ "CANCEL": "取消"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "是",
+ "NO": "否"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "立即升级",
+ "CANCEL_ANYTIME": "您可以随时更改或取消您的计划"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "请联系您的管理员进行升级。"
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "哦,糟糕!我们找不到任何 Chatwoot 账户。请创建一个新账户以继续。",
"NEW_ACCOUNT": "新账户",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "取消"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/signup.json b/app/javascript/dashboard/i18n/locale/zh_CN/signup.json
index f379660c1..3e560b230 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/signup.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "创建新账户",
+ "GET_STARTED": "开始使用Chatwoot",
"TITLE": "注册",
"TESTIMONIAL_HEADER": "只差最后一步就可以了",
"TESTIMONIAL_CONTENT": "您离吸引客户、留住客户和寻找新客户仅一步之遥。",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/sla.json b/app/javascript/dashboard/i18n/locale/zh_CN/sla.json
index c1855cae3..e0a06d4f0 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/sla.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "创建一个新的服务协议",
"DESCRIPTION": "服务级别协议(SLA)是定义团队与客户之间明确期望的合同。它们为响应和解决时间设定了标准,创建了一个责任框架,并确保了一致的高质量体验。",
"LEARN_MORE": "了解更多关于SLA的信息",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "正在获取SLA",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "升级以创建SLA",
"AVAILABLE_ON": "SLA功能仅在商业和企业计划中可用。",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "此账户中没有可用的SLA。",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "企业 P1",
"DESC_1": "由企业客户提出的需要立即关注的问题。",
"TITLE_2": "企业P1",
"DESC_2": "由企业客户提出的需要快速确认的问题。"
},
- "BUSINESS_HOURS_ON": "工作时间开启",
- "BUSINESS_HOURS_OFF": "工作时间关闭",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "首次响应时间阈值",
"NRT": "下次响应时间阈值",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/snooze.json b/app/javascript/dashboard/i18n/locale/zh_CN/snooze.json
new file mode 100644
index 000000000..d209f6229
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "分钟",
+ "HOUR": "hour",
+ "HOURS": "小时",
+ "DAY": "天",
+ "DAYS": "天",
+ "WEEK": "周",
+ "WEEKS": "weeks",
+ "MONTH": "月",
+ "MONTHS": "months",
+ "YEAR": "年",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "明天",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "下周",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "的",
+ "AFTER": "after",
+ "WEEK": "周",
+ "DAY": "天"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/teamsSettings.json b/app/javascript/dashboard/i18n/locale/zh_CN/teamsSettings.json
index 44e2a3d37..47283b2da 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "正在获取团队",
"DESCRIPTION": "团队允许您根据自己的责任将代理人分组。代理可以属于多个团队。 当协作时,您可以将对话分配给特定的团队。",
"LEARN_MORE": "了解更多关于团队的信息",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "查找团队...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "此帐户尚未添加团队。",
"EDIT_TEAM": "编辑团队",
@@ -64,8 +67,8 @@
"ERROR_MESSAGE": "无法保存团队详细信息,请重试。"
},
"AGENTS": {
- "AGENT": "代理",
- "EMAIL": "电子邮件",
+ "AGENT": "客服",
+ "EMAIL": "Email",
"BUTTON_TEXT": "添加客服代理",
"ADD_AGENTS": "正在向收件箱添加客服...",
"SELECT": "选择",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/yearInReview.json b/app/javascript/dashboard/i18n/locale/zh_CN/yearInReview.json
index 0ece08924..d9f5ca929 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/yearInReview.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/yearInReview.json
@@ -35,7 +35,7 @@
"MESSAGES": {
"SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
"QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
- "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "STEADY_SUPPORT": "平均回复时间为 {time}。节奏平稳,回复扎实。",
"THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
}
},
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/advancedFilters.json b/app/javascript/dashboard/i18n/locale/zh_TW/advancedFilters.json
index 6503841fd..20da64545 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/advancedFilters.json
@@ -67,7 +67,7 @@
"ERRORS": {
"VALUE_REQUIRED": "此欄位為必填項目",
"ATTRIBUTE_KEY_REQUIRED": "必填項",
- "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "FILTER_OPERATOR_REQUIRED": "需要過濾器運算子",
"VALUE_MUST_BE_BETWEEN_1_AND_998": "數值必須介於1-998之間"
},
"GROUPS": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/agentBots.json b/app/javascript/dashboard/i18n/locale/zh_TW/agentBots.json
index f02ebe2ed..800340f96 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/agentBots.json
@@ -4,6 +4,9 @@
"LOADING_EDITOR": "正在載入編輯器...",
"DESCRIPTION": "代理機器人就像您團隊中最出色的成員。他們可以處理瑣碎的事務,讓您可以專注於重要的事情。試試看吧!您可以從此頁面管理您的機器人,或使用「新增機器人」按鈕建立新的機器人。",
"LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
"GLOBAL_BOT": "系統機器人",
"GLOBAL_BOT_BADGE": "系統",
"AVATAR": {
@@ -34,7 +37,8 @@
"LOADING": "正在取得機器人...",
"TABLE_HEADER": {
"DETAILS": "機器人詳情",
- "URL": "Webhook 網址"
+ "URL": "Webhook 網址",
+ "ACTIONS": "操作"
}
},
"DELETE": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/agentMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/agentMgmt.json
index 1e45fa988..30d081ca3 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/agentMgmt.json
@@ -9,6 +9,7 @@
"ADMINISTRATOR": "管理員",
"AGENT": "客服"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "沒有與此帳號關聯的客服",
"TITLE": "管理您團隊中的客服",
@@ -96,6 +97,8 @@
"ERROR_MESSAGE": "無法連接 Chatwoot 伺服器,請稍後再試"
}
},
+ "SEARCH_PLACEHOLDER": "搜尋客服...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "查無結果"
},
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/attributesMgmt.json
index 16dba43a5..01bdafea1 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/attributesMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "正在取得自訂屬性",
"DESCRIPTION": "自定義屬性可用於追蹤有關聯絡人或對話的額外詳情,例如訂閱方案或首次購買的日期。您可以添加不同類型的自定義屬性,如文字、清單或數字,以捕捉您所需的特定資訊。",
"LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
"ATTRIBUTE_MODELS": {
"CONVERSATION": "對話",
"CONTACT": "聯絡人"
@@ -63,6 +66,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/auditLogs.json b/app/javascript/dashboard/i18n/locale/zh_TW/auditLogs.json
index 3ebdf1ae9..11962694c 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/auditLogs.json
@@ -1,16 +1,16 @@
{
"AUDIT_LOGS": {
"HEADER": "稽核日誌",
- "HEADER_BTN_TXT": "Add Audit Logs",
- "LOADING": "Fetching Audit Logs",
- "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
- "LEARN_MORE": "Learn more about audit logs",
+ "HEADER_BTN_TXT": "新增審計日誌",
+ "LOADING": "正在獲取審計日誌",
+ "DESCRIPTION": "稽核日誌儲存您賬戶中的活動記錄,允許您跟蹤和審計您的賬戶、團隊或服務。",
+ "LEARN_MORE": "瞭解更多關於審計日誌的資訊",
"SEARCH_404": "沒有任何項目符合此查詢",
- "SIDEBAR_TXT": "
Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
+ "SIDEBAR_TXT": "
審計日誌
審計日誌是 Chatwoot 系統中事件和操作的痕跡。
",
"LIST": {
- "404": "There are no Audit Logs available in this account.",
- "TITLE": "Manage Audit Logs",
- "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
+ "404": "此賬戶中沒有可用的審計日誌。",
+ "TITLE": "管理審計日誌",
+ "DESC": "審計日誌是 Chatwoot 系統中事件和操作的痕跡。",
"TABLE_HEADER": {
"ACTIVITY": "User",
"TIME": "Action",
@@ -18,60 +18,60 @@
}
},
"API": {
- "SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
+ "SUCCESS_MESSAGE": "審計日誌獲取成功",
"ERROR_MESSAGE": "無法連接伺服器,請稍後再試"
},
- "DEFAULT_USER": "System",
+ "DEFAULT_USER": "系統",
"AUTOMATION_RULE": {
- "ADD": "{agentName} created a new automation rule (#{id})",
- "EDIT": "{agentName} updated an automation rule (#{id})",
- "DELETE": "{agentName} deleted an automation rule (#{id})"
+ "ADD": "{agentName} 建立了一個新的自動化規則 (#{id})",
+ "EDIT": "{agentName} 更新了一個自動化規則 (#{id})",
+ "DELETE": "{agentName} 刪除了一個自動化規則 (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "{agentName} invited {invitee} to the account as an {role}",
+ "ADD": "{agentName} 邀請了 {invitee} 加入賬戶作為 {role}",
"EDIT": {
- "SELF": "{agentName} changed their {attributes} to {values}",
- "OTHER": "{agentName} changed {attributes} of {user} to {values}",
- "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
+ "SELF": "{agentName} 將其 {attributes} 更改為 {values}",
+ "OTHER": "{agentName} 將 {user} 的 {attributes} 更改為 {values}",
+ "DELETED": "{agentName} 將一個已刪除使用者的 {attributes} 更改為 {values}"
}
},
"INBOX": {
- "ADD": "{agentName} created a new inbox (#{id})",
- "EDIT": "{agentName} updated an inbox (#{id})",
- "DELETE": "{agentName} deleted an inbox (#{id})"
+ "ADD": "{agentName} 建立了一個新的收件箱 (#{id})",
+ "EDIT": "{agentName} 更新了一個收件箱 (#{id})",
+ "DELETE": "{agentName} 刪除了一個收件箱 (#{id})"
},
"WEBHOOK": {
- "ADD": "{agentName} created a new webhook (#{id})",
- "EDIT": "{agentName} updated a webhook (#{id})",
- "DELETE": "{agentName} deleted a webhook (#{id})"
+ "ADD": "{agentName} 建立了一個新的 webhook (#{id})",
+ "EDIT": "{agentName} 更新了一個 webhook (#{id})",
+ "DELETE": "{agentName} 刪除了一個 webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "{agentName} signed in",
- "SIGN_OUT": "{agentName} signed out"
+ "SIGN_IN": "{agentName} 登入",
+ "SIGN_OUT": "{agentName} 登出"
},
"TEAM": {
- "ADD": "{agentName} created a new team (#{id})",
- "EDIT": "{agentName} updated a team (#{id})",
- "DELETE": "{agentName} deleted a team (#{id})"
+ "ADD": "{agentName} 建立了一個新的團隊 (#{id})",
+ "EDIT": "{agentName} 更新了一個團隊 (#{id})",
+ "DELETE": "{agentName} 刪除了一個團隊 (#{id})"
},
"MACRO": {
- "ADD": "{agentName} created a new macro (#{id})",
- "EDIT": "{agentName} updated a macro (#{id})",
- "DELETE": "{agentName} deleted a macro (#{id})"
+ "ADD": "{agentName} 建立了一個新的宏 (#{id})",
+ "EDIT": "{agentName} 更新了一個宏 (#{id})",
+ "DELETE": "{agentName} 刪除了一個宏 (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
- "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
+ "ADD": "{agentName} 將 {user} 新增到收件箱 (#{inbox_id})",
+ "REMOVE": "{agentName} 將 {user} 從收件箱 (#{inbox_id}) 中移除"
},
"TEAM_MEMBER": {
- "ADD": "{agentName} added {user} to the team(#{team_id})",
- "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
+ "ADD": "{agentName} 將 {user} 新增到團隊 (#{team_id})",
+ "REMOVE": "{agentName} 將 {user} 從團隊 (#{team_id}) 中移除"
},
"ACCOUNT": {
- "EDIT": "{agentName} updated the account configuration (#{id})"
+ "EDIT": "{agentName} 更新了賬戶配置 (#{id})"
},
"CONVERSATION": {
- "DELETE": "{agentName} deleted conversation #{id}"
+ "DELETE": "{agentName} 刪除了對話 #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/automation.json b/app/javascript/dashboard/i18n/locale/zh_TW/automation.json
index d9dc73351..53bdf309e 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/automation.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/automation.json
@@ -3,8 +3,11 @@
"HEADER": "自動化",
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
"LEARN_MORE": "Learn more about automation",
- "HEADER_BTN_TXT": "新增自動化規則",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "新增自動化規則",
"SUBMIT": "建立",
@@ -42,9 +45,9 @@
"LIST": {
"TABLE_HEADER": {
"NAME": "姓名",
- "DESCRIPTION": "描述資訊",
"ACTIVE": "Active",
- "CREATED_ON": "Created on"
+ "CREATED_ON": "Created on",
+ "ACTIONS": "操作"
},
"404": "No automation rules found"
},
@@ -150,7 +153,8 @@
"ADD_PRIVATE_NOTE": "Add a Private Note",
"CHANGE_PRIORITY": "Change Priority",
"ADD_SLA": "Add SLA",
- "OPEN_CONVERSATION": "開啟對話"
+ "OPEN_CONVERSATION": "開啟對話",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
},
"MESSAGE_TYPES": {
"INCOMING": "Incoming Message",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/bulkActions.json b/app/javascript/dashboard/i18n/locale/zh_TW/bulkActions.json
index d536d294e..dce7ec159 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/bulkActions.json
@@ -1,41 +1,45 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "CONVERSATIONS_SELECTED": "已選擇 {conversationCount} 個對話",
"AGENT_SELECT_LABEL": "選擇客服",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign {conversationCount} {conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?",
+ "ASSIGN_CONFIRMATION_LABEL": "您確定要將 {conversationCount} 個 {conversationLabel} 分配給",
+ "UNASSIGN_CONFIRMATION_LABEL": "您確定要取消分配 {conversationCount} 個 {conversationLabel} 嗎?",
"GO_BACK_LABEL": "返回",
"ASSIGN_LABEL": "指派",
"YES": "是",
"SEARCH_INPUT_PLACEHOLDER": "搜尋",
"ASSIGN_AGENT_TOOLTIP": "指派客服",
"ASSIGN_TEAM_TOOLTIP": "指派團隊",
- "ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign conversations. Please try again.",
- "RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
- "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
- "ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
+ "ASSIGN_SUCCESFUL": "對話分配成功.",
+ "ASSIGN_FAILED": "分配對話失敗。請再試一次。",
+ "RESOLVE_SUCCESFUL": "成功將對話標記為已解決.",
+ "RESOLVE_FAILED": "解決對話失敗。請再試一次。",
+ "ALL_CONVERSATIONS_SELECTED_ALERT": "僅選擇了此頁面上可見的對話。",
+ "AGENT_LIST_LOADING": "正在載入客服代表",
"UPDATE": {
- "CHANGE_STATUS": "Change status",
+ "CHANGE_STATUS": "更改狀態",
"SNOOZE_UNTIL": "擱置",
- "UPDATE_SUCCESFUL": "Conversation status updated successfully.",
- "UPDATE_FAILED": "Failed to update conversations. Please try again."
+ "UPDATE_SUCCESFUL": "對話狀態更新成功。",
+ "UPDATE_FAILED": "更新對話失敗。請再試一次。"
+ },
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
},
"LABELS": {
"ASSIGN_LABELS": "標記標籤",
"NO_LABELS_FOUND": "查無標籤",
- "ASSIGN_SELECTED_LABELS": "Assign selected labels",
- "ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_SELECTED_LABELS": "分配指定的標籤",
+ "ASSIGN_SUCCESFUL": "已成功分配標籤.",
+ "ASSIGN_FAILED": "分配標籤失敗。請再試一次。"
},
"TEAMS": {
"TEAM_SELECT_LABEL": "選擇團隊",
"NONE": "無",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign team. Please try again."
+ "NO_TEAMS_AVAILABLE": "此帳戶尚未新增團隊。",
+ "ASSIGN_SELECTED_TEAMS": "分配選定的團隊。",
+ "ASSIGN_SUCCESFUL": "團隊分配成功。",
+ "ASSIGN_FAILED": "分配團隊失敗。請再試一次。"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/campaign.json b/app/javascript/dashboard/i18n/locale/zh_TW/campaign.json
index b5e4feaad..9be6b0405 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/campaign.json
@@ -1,8 +1,8 @@
{
"CAMPAIGN": {
"LIVE_CHAT": {
- "HEADER_TITLE": "Live chat campaigns",
- "NEW_CAMPAIGN": "Create campaign",
+ "HEADER_TITLE": "實時聊天活動",
+ "NEW_CAMPAIGN": "建立活動",
"CARD": {
"STATUS": {
"ENABLED": "已啟用",
@@ -11,191 +11,191 @@
"CAMPAIGN_DETAILS": {
"SENT_BY": "發送者:",
"BOT": "機器人",
- "FROM": "from",
- "URL": "URL:"
+ "FROM": "發自",
+ "URL": "網址:"
}
},
"EMPTY_STATE": {
- "TITLE": "No live chat campaigns are available",
- "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ "TITLE": "暫無實時聊天活動",
+ "SUBTITLE": "透過主動訊息與您的客戶連線。點選 '建立活動' 開始。"
},
"CREATE": {
- "TITLE": "Create a live chat campaign",
+ "TITLE": "建立實時聊天活動",
"CANCEL_BUTTON_TEXT": "取消",
"CREATE_BUTTON_TEXT": "建立",
"FORM": {
"TITLE": {
"LABEL": "標題",
- "PLACEHOLDER": "Please enter the title of campaign",
+ "PLACEHOLDER": "請輸入活動標題",
"ERROR": "標題為必填"
},
"MESSAGE": {
"LABEL": "訊息",
- "PLACEHOLDER": "Please enter the message of campaign",
+ "PLACEHOLDER": "請輸入活動訊息",
"ERROR": "訊息為必填"
},
"INBOX": {
"LABEL": "選擇收件匣",
"PLACEHOLDER": "選擇收件匣",
- "ERROR": "Inbox is required"
+ "ERROR": "收件箱是必填項"
},
"SENT_BY": {
"LABEL": "發送者:",
- "PLACEHOLDER": "Please select sender",
+ "PLACEHOLDER": "請選擇發件人",
"ERROR": "發送者為必填"
},
"END_POINT": {
- "LABEL": "URL",
+ "LABEL": "網址",
"PLACEHOLDER": "請輸入 URL",
"ERROR": "請輸入一個有效的 URL"
},
"TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
+ "LABEL": "頁面停留時間(秒)",
"PLACEHOLDER": "請輸入時間",
- "ERROR": "Time on page is required"
+ "ERROR": "頁面停留時間是必填項"
},
"OTHER_PREFERENCES": {
- "TITLE": "Other preferences",
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ "TITLE": "其他設定",
+ "ENABLED": "啟用活動",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "僅在工作時間觸發"
},
"BUTTONS": {
"CREATE": "建立",
"CANCEL": "取消"
},
"API": {
- "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "SUCCESS_MESSAGE": "實時聊天活動建立成功",
"ERROR_MESSAGE": "出現錯誤,請重試。"
}
}
},
"EDIT": {
- "TITLE": "Edit live chat campaign",
+ "TITLE": "編輯實時聊天活動",
"FORM": {
"API": {
- "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "SUCCESS_MESSAGE": "實時聊天活動更新成功",
"ERROR_MESSAGE": "出現錯誤,請重試。"
}
}
}
},
"SMS": {
- "HEADER_TITLE": "SMS campaigns",
- "NEW_CAMPAIGN": "Create campaign",
+ "HEADER_TITLE": "簡訊活動",
+ "NEW_CAMPAIGN": "建立活動",
"EMPTY_STATE": {
- "TITLE": "No SMS campaigns are available",
- "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ "TITLE": "暫無簡訊活動",
+ "SUBTITLE": "啟動簡訊活動直接與客戶溝通。輕鬆傳送優惠或公告。點選 '建立活動' 開始。"
},
"CARD": {
"STATUS": {
"COMPLETED": "已完成",
- "SCHEDULED": "Scheduled"
+ "SCHEDULED": "已計劃"
},
"CAMPAIGN_DETAILS": {
- "SENT_FROM": "Sent from",
- "ON": "on"
+ "SENT_FROM": "發自",
+ "ON": "於"
}
},
"CREATE": {
- "TITLE": "Create SMS campaign",
+ "TITLE": "建立簡訊活動",
"CANCEL_BUTTON_TEXT": "取消",
"CREATE_BUTTON_TEXT": "建立",
"FORM": {
"TITLE": {
"LABEL": "標題",
- "PLACEHOLDER": "Please enter the title of campaign",
+ "PLACEHOLDER": "請輸入活動標題",
"ERROR": "標題為必填"
},
"MESSAGE": {
"LABEL": "訊息",
- "PLACEHOLDER": "Please enter the message of campaign",
+ "PLACEHOLDER": "請輸入活動訊息",
"ERROR": "訊息為必填"
},
"INBOX": {
"LABEL": "選擇收件匣",
"PLACEHOLDER": "選擇收件匣",
- "ERROR": "Inbox is required"
+ "ERROR": "收件箱是必填項"
},
"AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
+ "LABEL": "受眾",
+ "PLACEHOLDER": "選擇客戶標籤",
+ "ERROR": "受眾是必填項"
},
"SCHEDULED_AT": {
- "LABEL": "Scheduled time",
+ "LABEL": "計劃時間",
"PLACEHOLDER": "請選擇時間",
- "ERROR": "Scheduled time is required"
+ "ERROR": "計劃時間是必填項"
},
"BUTTONS": {
"CREATE": "建立",
"CANCEL": "取消"
},
"API": {
- "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "SUCCESS_MESSAGE": "簡訊活動建立成功",
"ERROR_MESSAGE": "出現錯誤,請重試。"
}
}
}
},
"WHATSAPP": {
- "HEADER_TITLE": "WhatsApp campaigns",
- "NEW_CAMPAIGN": "Create campaign",
+ "HEADER_TITLE": "WhatsApp 活動",
+ "NEW_CAMPAIGN": "建立活動",
"EMPTY_STATE": {
- "TITLE": "No WhatsApp campaigns are available",
- "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ "TITLE": "沒有可用的 WhatsApp 行銷活動",
+ "SUBTITLE": "發起 WhatsApp 活動以直接聯絡您的客戶。輕鬆發送報價或發佈公告。點擊「建立行銷活動」即可開始。"
},
"CARD": {
"STATUS": {
"COMPLETED": "已完成",
- "SCHEDULED": "Scheduled"
+ "SCHEDULED": "已計劃"
},
"CAMPAIGN_DETAILS": {
- "SENT_FROM": "Sent from",
- "ON": "on"
+ "SENT_FROM": "發自",
+ "ON": "於"
}
},
"CREATE": {
- "TITLE": "Create WhatsApp campaign",
+ "TITLE": "建立 WhatsApp 活動",
"CANCEL_BUTTON_TEXT": "取消",
"CREATE_BUTTON_TEXT": "建立",
"FORM": {
"TITLE": {
"LABEL": "標題",
- "PLACEHOLDER": "Please enter the title of campaign",
+ "PLACEHOLDER": "請輸入活動標題",
"ERROR": "標題為必填"
},
"INBOX": {
"LABEL": "選擇收件匣",
"PLACEHOLDER": "選擇收件匣",
- "ERROR": "Inbox is required"
+ "ERROR": "收件箱是必填項"
},
"TEMPLATE": {
- "LABEL": "WhatsApp Template",
- "PLACEHOLDER": "Select a template",
- "INFO": "Select a template to use for this campaign.",
- "ERROR": "Template is required",
- "PREVIEW_TITLE": "Process {templateName}",
- "LANGUAGE": "Language",
- "CATEGORY": "Category",
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ "LABEL": "WhatsApp 模板",
+ "PLACEHOLDER": "選擇模板",
+ "INFO": "選擇用於此行銷活動的範本。",
+ "ERROR": "需要模板",
+ "PREVIEW_TITLE": "{templateName} 處理中",
+ "LANGUAGE": "語言",
+ "CATEGORY": "類別",
+ "VARIABLES_LABEL": "引數",
+ "VARIABLE_PLACEHOLDER": "輸入 {variable} 的值"
},
"AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
+ "LABEL": "受眾",
+ "PLACEHOLDER": "選擇客戶標籤",
+ "ERROR": "受眾是必填項"
},
"SCHEDULED_AT": {
- "LABEL": "Scheduled time",
+ "LABEL": "計劃時間",
"PLACEHOLDER": "請選擇時間",
- "ERROR": "Scheduled time is required"
+ "ERROR": "計劃時間是必填項"
},
"BUTTONS": {
"CREATE": "建立",
"CANCEL": "取消"
},
"API": {
- "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "SUCCESS_MESSAGE": "WhatsApp 行銷活動創建成功",
"ERROR_MESSAGE": "出現錯誤,請重試。"
}
}
@@ -203,10 +203,10 @@
},
"CONFIRM_DELETE": {
"TITLE": "您確定要刪除嗎?",
- "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "DESCRIPTION": "刪除操作是永久性的,無法恢復。",
"CONFIRM": "刪除",
"API": {
- "SUCCESS_MESSAGE": "Campaign deleted successfully",
+ "SUCCESS_MESSAGE": "活動刪除成功",
"ERROR_MESSAGE": "出現錯誤,請重試。"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/cannedMgmt.json
index 23c871006..5cebf8ba0 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/cannedMgmt.json
@@ -3,8 +3,11 @@
"HEADER": "預設回覆",
"LEARN_MORE": "Learn more about canned responses",
"DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "沒有任何項目符合此查詢.",
"LIST": {
"404": "此帳戶中沒有可用的罐頭回覆。",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/chatlist.json b/app/javascript/dashboard/i18n/locale/zh_TW/chatlist.json
index 9c769af5c..7dfa95814 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/chatlist.json
@@ -76,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "等待回應: 近的在前"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/companies.json b/app/javascript/dashboard/i18n/locale/zh_TW/companies.json
index 883018155..225ca0d2c 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/companies.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/companies.json
@@ -1,33 +1,33 @@
{
"COMPANIES": {
- "HEADER": "Companies",
+ "HEADER": "公司",
"SORT_BY": {
- "LABEL": "Sort by",
+ "LABEL": "排序方式",
"OPTIONS": {
"NAME": "姓名",
- "DOMAIN": "Domain",
+ "DOMAIN": "域名",
"CREATED_AT": "建立於",
- "CONTACTS_COUNT": "Contacts count"
+ "CONTACTS_COUNT": "聯絡人數量"
}
},
"ORDER": {
- "LABEL": "Order",
+ "LABEL": "命令",
"OPTIONS": {
- "ASCENDING": "Ascending",
- "DESCENDING": "Descending"
+ "ASCENDING": "升序",
+ "DESCENDING": "降序"
}
},
- "SEARCH_PLACEHOLDER": "Search companies...",
- "LOADING": "Loading companies...",
- "UNNAMED": "Unnamed Company",
- "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "SEARCH_PLACEHOLDER": "搜尋公司...",
+ "LOADING": "正在加載公司...",
+ "UNNAMED": "未命名公司",
+ "CONTACTS_COUNT": "{n} 聯絡方式 | {n} 聯絡人",
"EMPTY_STATE": {
- "TITLE": "No companies found"
+ "TITLE": "沒有找到公司"
}
},
"COMPANIES_LAYOUT": {
"PAGINATION_FOOTER": {
- "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ "SHOWING": "顯示 {totalItems} 公司的 {startItem} – {endItem} |顯示 {totalItems} 個公司中的 {startItem} – {endItem} 個"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/components.json b/app/javascript/dashboard/i18n/locale/zh_TW/components.json
index 5c4737544..93f23d25b 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/components.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/components.json
@@ -1,19 +1,19 @@
{
"PAGINATION_FOOTER": {
- "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
- "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ "SHOWING": "顯示第 {startItem} - {endItem} 項,共 {totalItems} 項 | 顯示第 {startItem} - {endItem} 項,共 {totalItems} 項",
+ "CURRENT_PAGE_INFO": "第 {currentPage} / {totalPages} 頁 | 第 {currentPage} / {totalPages} 頁"
},
"COMBOBOX": {
- "PLACEHOLDER": "Select an option...",
- "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "PLACEHOLDER": "請選擇一個選項……",
+ "EMPTY_SEARCH_RESULTS": "未找到與搜尋詞 `{searchTerm}` 匹配的項",
"EMPTY_STATE": "查無結果。",
- "SEARCH_PLACEHOLDER": "Search...",
- "MORE": "+{count} more"
+ "SEARCH_PLACEHOLDER": "搜尋……",
+ "MORE": "+{count} 更多"
},
"DROPDOWN_MENU": {
- "SEARCH_PLACEHOLDER": "Search...",
+ "SEARCH_PLACEHOLDER": "搜尋……",
"EMPTY_STATE": "查無結果。",
- "SEARCHING": "Searching..."
+ "SEARCHING": "搜尋中……"
},
"DIALOG": {
"BUTTONS": {
@@ -22,35 +22,35 @@
}
},
"PHONE_INPUT": {
- "SEARCH_PLACEHOLDER": "Search country",
- "ERROR": "Phone number should be empty or in E.164 format",
- "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ "SEARCH_PLACEHOLDER": "搜尋國家/地區",
+ "ERROR": "電話號碼應為空或E.164格式",
+ "DIAL_CODE_ERROR": "請從列表中選擇撥號程式碼"
},
"THUMBNAIL": {
"AUTHOR": {
- "NOT_AVAILABLE": "Author is not available"
+ "NOT_AVAILABLE": "作者不可用"
}
},
"BREADCRUMB": {
- "ARIA_LABEL": "Breadcrumb"
+ "ARIA_LABEL": "麵包屑導航"
},
"SWITCH": {
- "TOGGLE": "Toggle switch"
+ "TOGGLE": "切換開關"
},
"LABEL": {
- "TAG_BUTTON": "tag"
+ "TAG_BUTTON": "標籤"
},
"FEATURE_SPOTLIGHT": {
- "LEARN_MORE": "Learn more",
- "WATCH_VIDEO": "Watch video"
+ "LEARN_MORE": "瞭解更多",
+ "WATCH_VIDEO": "觀看影片"
},
"DURATION_INPUT": {
- "MINUTES": "Minutes",
- "HOURS": "Hours",
- "DAYS": "Days",
- "PLACEHOLDER": "Enter duration"
+ "MINUTES": "分鐘",
+ "HOURS": "小時",
+ "DAYS": "天",
+ "PLACEHOLDER": "輸入耗時"
},
"CHANNEL_SELECTOR": {
- "COMING_SOON": "Coming Soon!"
+ "COMING_SOON": "即將到來!"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/contact.json b/app/javascript/dashboard/i18n/locale/zh_TW/contact.json
index d0272cb56..24d66f004 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/contact.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/contact.json
@@ -457,6 +457,9 @@
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
},
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
"TIKTOK": {
"PLACEHOLDER": "Add TikTok"
},
@@ -573,7 +576,8 @@
"SEARCH_EMPTY_STATE_TITLE": "找不到符合條件的聯絡人 🔍",
"LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
"ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
- }
+ },
+ "LOAD_MORE": "Load more"
},
"CONTACTS_BULK_ACTIONS": {
"ASSIGN_LABELS": "Assign Labels",
@@ -607,7 +611,7 @@
"NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "To:",
- "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
"CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
@@ -618,9 +622,9 @@
"SUBJECT_LABEL": "主旨 :",
"SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "副本:",
- "CC_PLACEHOLDER": "Search for a contact with their email address",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_LABEL": "密件副本:",
- "BCC_PLACEHOLDER": "Search for a contact with their email address",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
"BCC_BUTTON": "密件副本"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/contactFilters.json b/app/javascript/dashboard/i18n/locale/zh_TW/contactFilters.json
index 5d5de1c42..3a6337285 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/contactFilters.json
@@ -1,20 +1,20 @@
{
"CONTACTS_FILTER": {
- "TITLE": "Filter Contacts",
- "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.",
- "EDIT_CUSTOM_SEGMENT": "Edit Segment",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.",
+ "TITLE": "過濾聯絡人",
+ "SUBTITLE": "新增過濾器並點選“提交”以過濾聯絡人。",
+ "EDIT_CUSTOM_SEGMENT": "編輯分段",
+ "CUSTOM_VIEWS_SUBTITLE": "新增或刪除過濾器並更新您的分段。",
"ADD_NEW_FILTER": "新增篩選條件",
- "CLEAR_ALL_FILTERS": "Clear All Filters",
+ "CLEAR_ALL_FILTERS": "清除所有過濾器",
"FILTER_DELETE_ERROR": "你必須有至少一個篩選條件才能儲存",
"SUBMIT_BUTTON_LABEL": "送出",
- "UPDATE_BUTTON_LABEL": "Update Segment",
+ "UPDATE_BUTTON_LABEL": "更新分段",
"CANCEL_BUTTON_LABEL": "取消",
"CLEAR_BUTTON_LABEL": "清除篩選條件",
"EMPTY_VALUE_ERROR": "此欄位為必填項目",
- "SEGMENT_LABEL": "Segment Name",
- "SEGMENT_QUERY_LABEL": "Segment Query",
- "TOOLTIP_LABEL": "Filter contacts",
+ "SEGMENT_LABEL": "分段名稱",
+ "SEGMENT_QUERY_LABEL": "分段查詢",
+ "TOOLTIP_LABEL": "過濾聯絡人",
"QUERY_DROPDOWN_LABELS": {
"AND": "且",
"OR": "或"
@@ -27,7 +27,7 @@
"is_present": "存在",
"is_not_present": "不存在",
"is_greater_than": "大於",
- "is_lesser_than": "Is lesser than",
+ "is_lesser_than": "小於",
"days_before": "x 天前"
},
"ERRORS": {
@@ -35,9 +35,9 @@
},
"ATTRIBUTES": {
"NAME": "姓名",
- "EMAIL": "Email",
+ "EMAIL": "電子郵件",
"PHONE_NUMBER": "電話號碼",
- "IDENTIFIER": "Identifier",
+ "IDENTIFIER": "識別符號",
"CITY": "城市",
"COUNTRY": "國家",
"CUSTOM_ATTRIBUTE_LIST": "列表",
@@ -47,8 +47,8 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "勾選框",
"CREATED_AT": "建立於",
"LAST_ACTIVITY": "最後活動",
- "REFERER_LINK": "Referrer link",
- "BLOCKED": "Blocked",
+ "REFERER_LINK": "引用連結",
+ "BLOCKED": "已阻止",
"LABELS": "標籤"
},
"GROUPS": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/contentTemplates.json b/app/javascript/dashboard/i18n/locale/zh_TW/contentTemplates.json
index fe96c9f23..e893227bd 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/contentTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/contentTemplates.json
@@ -1,52 +1,52 @@
{
"CONTENT_TEMPLATES": {
"MODAL": {
- "TITLE": "Twilio Templates",
- "SUBTITLE": "Select the Twilio template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ "TITLE": "Twilio 模板",
+ "SUBTITLE": "選擇您想要傳送的 Twilio 模板",
+ "TEMPLATE_SELECTED_SUBTITLE": "配置模板: {templateName}"
},
"PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "NO_CONTENT": "No content",
- "HEADER": "Header",
- "BODY": "Body",
- "FOOTER": "Footer",
- "BUTTONS": "Buttons",
- "CATEGORY": "Category",
- "MEDIA_CONTENT": "Media Content",
- "MEDIA_CONTENT_FALLBACK": "media content",
- "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
- "REFRESH_BUTTON": "Refresh templates",
- "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
- "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "SEARCH_PLACEHOLDER": "查詢模板",
+ "NO_TEMPLATES_FOUND": "沒有找到對應的模版",
+ "NO_CONTENT": "無內容",
+ "HEADER": "頁頭",
+ "BODY": "正文內容",
+ "FOOTER": "頁尾",
+ "BUTTONS": "按鈕",
+ "CATEGORY": "類別",
+ "MEDIA_CONTENT": "媒體內容",
+ "MEDIA_CONTENT_FALLBACK": "媒體內容",
+ "NO_TEMPLATES_AVAILABLE": "沒有可用的 Twilio 模板。單擊重新整理以同步Twilio 的模板。",
+ "REFRESH_BUTTON": "重新整理模板",
+ "REFRESH_SUCCESS": "模板重新整理已啟動。更新可能需要幾分鐘時間。",
+ "REFRESH_ERROR": "重新整理模板失敗。請重試。",
"LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
+ "LANGUAGE": "語言",
+ "TEMPLATE_BODY": "模板內容",
+ "CATEGORY": "類別"
},
"TYPES": {
- "MEDIA": "Media",
- "QUICK_REPLY": "Quick Reply",
- "CALL_TO_ACTION": "Call to Action",
+ "MEDIA": "媒體",
+ "QUICK_REPLY": "快速回復",
+ "CALL_TO_ACTION": "號召性用語",
"TEXT": "文字"
}
},
"PARSER": {
- "VARIABLES_LABEL": "Variables",
- "LANGUAGE": "Language",
- "CATEGORY": "Category",
- "VARIABLE_PLACEHOLDER": "Enter {variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
- "MEDIA_HEADER_LABEL": "{type} Header",
- "MEDIA_URL_LABEL": "Enter full media URL",
+ "VARIABLES_LABEL": "引數",
+ "LANGUAGE": "語言",
+ "CATEGORY": "類別",
+ "VARIABLE_PLACEHOLDER": "請填寫 {variable}",
+ "GO_BACK_LABEL": "返回",
+ "SEND_MESSAGE_LABEL": "傳送訊息",
+ "FORM_ERROR_MESSAGE": "你必須填寫所有引數才能傳送",
+ "MEDIA_HEADER_LABEL": "{type} 標頭",
+ "MEDIA_URL_LABEL": "輸入完整媒體 URL",
"MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
},
"FORM": {
"BACK_BUTTON": "返回",
- "SEND_MESSAGE_BUTTON": "Send Message"
+ "SEND_MESSAGE_BUTTON": "傳送訊息"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json b/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json
index 41c506b97..6602350d4 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json
@@ -61,6 +61,7 @@
"UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
"SUCCESS_DELETE_MESSAGE": "已成功刪除訊息",
"FAIL_DELETE_MESSSAGE": "無法刪除訊息!請再試一次",
"NO_RESPONSE": "無回應",
@@ -173,6 +174,10 @@
"SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
"SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
@@ -185,7 +190,11 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "輸入“/”開始選擇快捷回覆",
"PRIVATE_MSG_INPUT": "Shift + 輸入新行。這只對客服可以看見",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
"CLICK_HERE": "Click here to update",
"WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
@@ -205,7 +214,7 @@
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "密件副本",
@@ -247,9 +256,12 @@
"SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
"FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "寄送者:",
"BOT": "機器人",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -294,6 +306,7 @@
"CANCEL": "取消操作",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "出錯了,請重試",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/csatMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/csatMgmt.json
index bef9aa32d..c8d3583c3 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/csatMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/csatMgmt.json
@@ -1,13 +1,13 @@
{
"CSAT": {
- "TITLE": "Rate your conversation",
+ "TITLE": "評價您的對話",
"PLACEHOLDER": "告訴我們更多...",
"RATINGS": {
- "POOR": "😞 Poor",
- "FAIR": "😑 Fair",
- "AVERAGE": "😐 Average",
- "GOOD": "😀 Good",
- "EXCELLENT": "😍 Excellent"
+ "POOR": "😞 差",
+ "FAIR": "😑 一般",
+ "AVERAGE": "😐 中等",
+ "GOOD": "😀 好",
+ "EXCELLENT": "😍 非常好"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/customRole.json b/app/javascript/dashboard/i18n/locale/zh_TW/customRole.json
index e1ce42eb4..901b4a7c7 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/customRole.json
@@ -3,8 +3,11 @@
"HEADER": "Custom Roles",
"LEARN_MORE": "Learn more about custom roles",
"DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
"HEADER_BTN_TXT": "Add custom role",
"LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
"SEARCH_404": "沒有任何項目符合此查詢.",
"PAYWALL": {
"TITLE": "Upgrade to create custom roles",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/datePicker.json b/app/javascript/dashboard/i18n/locale/zh_TW/datePicker.json
index 8e187f50d..0087c2765 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/datePicker.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/datePicker.json
@@ -1,5 +1,8 @@
{
"DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
"APPLY_BUTTON": "套用",
"CLEAR_BUTTON": "Clear",
"DATE_RANGE_INPUT": {
@@ -13,6 +16,8 @@
"LAST_3_MONTHS": "三個月內",
"LAST_6_MONTHS": "六個月內",
"LAST_YEAR": "去年",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
"CUSTOM_RANGE": "自定日期範圍"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/emoji.json b/app/javascript/dashboard/i18n/locale/zh_TW/emoji.json
index 7c5efc5f8..2058dd940 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/emoji.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/emoji.json
@@ -1,7 +1,7 @@
{
"EMOJI": {
- "PLACEHOLDER": "Search emojis",
- "NOT_FOUND": "No emoji match your search",
+ "PLACEHOLDER": "搜尋表情符號",
+ "NOT_FOUND": "沒有適合你的搜尋結果",
"REMOVE": "刪除"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/general.json b/app/javascript/dashboard/i18n/locale/zh_TW/general.json
index 22532087c..9a06e3266 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/general.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/general.json
@@ -7,6 +7,13 @@
},
"CLOSE": "關閉",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "是",
+ "NO": "否"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/generalSettings.json b/app/javascript/dashboard/i18n/locale/zh_TW/generalSettings.json
index 4eadce691..6b006caf4 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/generalSettings.json
@@ -182,6 +182,7 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "報表",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/helpCenter.json b/app/javascript/dashboard/i18n/locale/zh_TW/helpCenter.json
index f3390be76..40ed91076 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/helpCenter.json
@@ -1,622 +1,632 @@
{
"HELP_CENTER": {
- "TITLE": "Help Center",
+ "TITLE": "幫助中心",
"NEW_PAGE": {
- "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
- "CREATE_PORTAL_BUTTON": "Create Portal"
+ "DESCRIPTION": "為您的客戶建立自助服務幫助中心門戶。幫助他們快速找到答案,無需等待。簡化查詢,提高代理效率,提升客戶支援。",
+ "CREATE_PORTAL_BUTTON": "建立門戶"
},
"HEADER": {
- "FILTER": "Filter by",
- "SORT": "Sort by",
- "LOCALE": "Locale",
+ "FILTER": "過濾條件",
+ "SORT": "排序方式",
+ "LOCALE": "語言環境",
"SETTINGS_BUTTON": "設定",
- "NEW_BUTTON": "New Article",
+ "NEW_BUTTON": "新建文章",
"DROPDOWN_OPTIONS": {
- "PUBLISHED": "Published",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived"
+ "PUBLISHED": "已釋出",
+ "DRAFT": "草稿",
+ "ARCHIVED": "已存檔"
},
"TITLES": {
- "ALL_ARTICLES": "All Articles",
- "MINE": "My Articles",
- "DRAFT": "Draft Articles",
- "ARCHIVED": "Archived Articles"
+ "ALL_ARTICLES": "所有文章",
+ "MINE": "我的文章",
+ "DRAFT": "文章草稿",
+ "ARCHIVED": "已存檔的文章"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "選擇語言環境",
+ "PLACEHOLDER": "選擇語言環境",
+ "NO_RESULT": "未找到語言環境",
+ "SEARCH_PLACEHOLDER": "搜尋語言環境"
}
},
"EDIT_HEADER": {
- "ALL_ARTICLES": "All Articles",
- "PUBLISH_BUTTON": "Publish",
- "MOVE_TO_ARCHIVE_BUTTON": "Move to archived",
- "PREVIEW": "Preview",
- "ADD_TRANSLATION": "Add translation",
- "OPEN_SIDEBAR": "Open sidebar",
- "CLOSE_SIDEBAR": "Close sidebar",
- "SAVING": "Saving...",
- "SAVED": "Saved"
+ "ALL_ARTICLES": "所有文章",
+ "PUBLISH_BUTTON": "釋出",
+ "MOVE_TO_ARCHIVE_BUTTON": "移至已存檔",
+ "PREVIEW": "預覽",
+ "ADD_TRANSLATION": "新增翻譯",
+ "OPEN_SIDEBAR": "開啟側邊欄",
+ "CLOSE_SIDEBAR": "關閉側邊欄",
+ "SAVING": "儲存中...",
+ "SAVED": "儲存成功"
},
"ARTICLE_EDITOR": {
"IMAGE_UPLOAD": {
"TITLE": "上傳頭像",
"UPLOADING": "上傳中",
- "SUCCESS": "Image uploaded successfully",
- "ERROR": "Error while uploading image",
- "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
- "ERROR_FILE_SIZE": "Image size should be less than {size}MB",
- "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
- "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ "SUCCESS": "圖片上傳成功",
+ "ERROR": "上傳圖片時出錯",
+ "UN_AUTHORIZED_ERROR": "您無權上傳圖片",
+ "ERROR_FILE_SIZE": "圖片大小應小於 {size}MB",
+ "ERROR_FILE_FORMAT": "圖片格式應為 jpg、jpeg 或 png",
+ "ERROR_FILE_DIMENSIONS": "圖片尺寸應小於 2000 x 2000"
}
},
"ARTICLE_SETTINGS": {
- "TITLE": "Article Settings",
+ "TITLE": "文章設定",
"FORM": {
"CATEGORY": {
- "LABEL": "Category",
- "TITLE": "Select category",
- "PLACEHOLDER": "Select category",
- "NO_RESULT": "No category found",
- "SEARCH_PLACEHOLDER": "Search category"
+ "LABEL": "類別",
+ "TITLE": "選擇類別",
+ "PLACEHOLDER": "選擇類別",
+ "NO_RESULT": "未找到類別",
+ "SEARCH_PLACEHOLDER": "搜尋類別"
},
"AUTHOR": {
- "LABEL": "Author",
- "TITLE": "Select author",
- "PLACEHOLDER": "Select author",
- "NO_RESULT": "No authors found",
- "SEARCH_PLACEHOLDER": "Search author"
+ "LABEL": "作者",
+ "TITLE": "選擇作者",
+ "PLACEHOLDER": "選擇作者",
+ "NO_RESULT": "未找到作者",
+ "SEARCH_PLACEHOLDER": "搜尋作者"
},
"META_TITLE": {
- "LABEL": "Meta title",
- "PLACEHOLDER": "Add a meta title"
+ "LABEL": "Meta 標題",
+ "PLACEHOLDER": "增加一個Meta標題"
},
"META_DESCRIPTION": {
- "LABEL": "Meta description",
- "PLACEHOLDER": "Add your meta description for better SEO results..."
+ "LABEL": "Meta描述",
+ "PLACEHOLDER": "新增您的Meta描述以獲得更好的SEO效果……"
},
"META_TAGS": {
- "LABEL": "Meta tags",
- "PLACEHOLDER": "Add meta tags separated by comma..."
+ "LABEL": "Meta標籤",
+ "PLACEHOLDER": "增加Meta標籤,以逗號分隔"
}
},
"BUTTONS": {
- "ARCHIVE": "Archive article",
- "DELETE": "Delete article"
+ "ARCHIVE": "歸檔文章",
+ "DELETE": "刪除文章"
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for {query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
- "SEARCH_LOADER": "Searching...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "UNCATEGORIZED": "未分類",
+ "SEARCH_RESULTS": "搜尋 {query} 的結果",
+ "EMPTY_TEXT": "搜尋文章以插入回覆。",
+ "SEARCH_LOADER": "搜尋中...",
+ "INSERT_ARTICLE": "插入",
+ "NO_RESULT": "未找到文章",
+ "COPY_LINK": "複製文章連結到剪貼簿",
+ "OPEN_LINK": "在新標籤頁中開啟文章",
+ "PREVIEW_LINK": "預覽文章"
},
"PORTAL": {
- "HEADER": "Portals",
- "DEFAULT": "Default",
- "NEW_BUTTON": "New Portal",
- "ACTIVE_BADGE": "active",
- "CHOOSE_LOCALE_LABEL": "Choose a locale",
- "LOADING_MESSAGE": "Loading portals...",
- "ARTICLES_LABEL": "articles",
- "NO_PORTALS_MESSAGE": "There are no available portals",
- "ADD_NEW_LOCALE": "Add a new locale",
+ "HEADER": "入口網站",
+ "DEFAULT": "預設",
+ "NEW_BUTTON": "新入口網站",
+ "ACTIVE_BADGE": "活躍",
+ "CHOOSE_LOCALE_LABEL": "選擇一個語言環境",
+ "LOADING_MESSAGE": "正在載入門戶...",
+ "ARTICLES_LABEL": "文章",
+ "NO_PORTALS_MESSAGE": "沒有可用的門戶",
+ "ADD_NEW_LOCALE": "新增一個新的語言環境",
"POPOVER": {
- "TITLE": "Portals",
- "PORTAL_SETTINGS": "Portal settings",
- "SUBTITLE": "You have multiple portals and can have different locales for each portal.",
+ "TITLE": "入口網站",
+ "PORTAL_SETTINGS": "門戶設定",
+ "SUBTITLE": "您有多個入口網站,每個入口網站可以有不同的語言環境。",
"CANCEL_BUTTON_LABEL": "取消",
- "CHOOSE_LOCALE_BUTTON": "Choose Locale"
+ "CHOOSE_LOCALE_BUTTON": "選擇語言"
},
"PORTAL_SETTINGS": {
"LIST_ITEM": {
"HEADER": {
- "COUNT_LABEL": "articles",
- "ADD": "Add locale",
- "VISIT": "Visit site",
+ "COUNT_LABEL": "文章",
+ "ADD": "新增語言環境",
+ "VISIT": "訪問網站",
"SETTINGS": "設定",
"DELETE": "刪除"
},
"PORTAL_CONFIG": {
- "TITLE": "Portal Configurations",
+ "TITLE": "門戶配置",
"ITEMS": {
"NAME": "姓名",
- "DOMAIN": "Custom domain",
- "SLUG": "Slug",
- "TITLE": "Portal title",
- "THEME": "Theme color",
- "SUB_TEXT": "Portal sub text"
+ "DOMAIN": "自定義域名",
+ "SLUG": "網址代稱",
+ "TITLE": "門戶標題",
+ "THEME": "主題顏色",
+ "SUB_TEXT": "門戶副文字"
}
},
"AVAILABLE_LOCALES": {
- "TITLE": "Available locales",
+ "TITLE": "可用的語言環境",
"TABLE": {
- "NAME": "Locale name",
- "CODE": "Locale code",
- "ARTICLE_COUNT": "No. of articles",
- "CATEGORIES": "No. of categories",
- "SWAP": "Swap",
+ "NAME": "語言環境名稱",
+ "CODE": "語言環境程式碼",
+ "ARTICLE_COUNT": "文章數量",
+ "CATEGORIES": "類別數量",
+ "SWAP": "交換",
"DELETE": "刪除",
- "DEFAULT_LOCALE": "Default"
+ "DEFAULT_LOCALE": "預設"
}
}
},
"DELETE_PORTAL": {
- "TITLE": "Delete portal",
- "MESSAGE": "Are you sure you want to delete this portal",
- "YES": "Yes, delete portal",
- "NO": "No, keep portal",
+ "TITLE": "刪除門戶",
+ "MESSAGE": "您確定要刪除此門戶嗎",
+ "YES": "是,刪除門戶",
+ "NO": "否,保留門戶",
"API": {
- "DELETE_SUCCESS": "Portal deleted successfully",
- "DELETE_ERROR": "Error while deleting portal"
+ "DELETE_SUCCESS": "門戶刪除成功",
+ "DELETE_ERROR": "刪除門戶時出錯"
}
},
"SEND_CNAME_INSTRUCTIONS": {
"API": {
- "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
- "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ "SUCCESS_MESSAGE": "CNAME 指令發送成功",
+ "ERROR_MESSAGE": "發送 CNAME 指令時發生錯誤"
}
}
},
"EDIT": {
- "HEADER_TEXT": "Edit portal",
+ "HEADER_TEXT": "編輯門戶",
"TABS": {
"BASIC_SETTINGS": {
- "TITLE": "Basic information"
+ "TITLE": "基本資訊"
},
"CUSTOMIZATION_SETTINGS": {
- "TITLE": "Portal customization"
+ "TITLE": "門戶定製"
},
"CATEGORY_SETTINGS": {
- "TITLE": "Categories"
+ "TITLE": "類別"
},
"LOCALE_SETTINGS": {
- "TITLE": "Locales"
+ "TITLE": "語言環境"
}
},
"CATEGORIES": {
- "TITLE": "Categories in",
- "NEW_CATEGORY": "New category",
+ "TITLE": "類別",
+ "NEW_CATEGORY": "新建類別",
"TABLE": {
"NAME": "姓名",
"DESCRIPTION": "描述資訊",
- "LOCALE": "Locale",
- "ARTICLE_COUNT": "No. of articles",
+ "LOCALE": "語言環境",
+ "ARTICLE_COUNT": "文章數量",
"ACTION_BUTTON": {
- "EDIT": "Edit category",
- "DELETE": "Delete category"
+ "EDIT": "編輯類別",
+ "DELETE": "刪除類別"
},
- "EMPTY_TEXT": "No categories found"
+ "EMPTY_TEXT": "未找到類別"
}
},
"EDIT_BASIC_INFO": {
- "BUTTON_TEXT": "Update basic settings"
+ "BUTTON_TEXT": "更新基本設定"
}
},
"ADD": {
"CREATE_FLOW": {
"BASIC": {
- "TITLE": "Help center information",
- "BODY": "Basic information about portal"
+ "TITLE": "幫助中心資訊",
+ "BODY": "關於門戶的基本資訊"
},
"CUSTOMIZATION": {
- "TITLE": "Help center customization",
- "BODY": "Customize portal"
+ "TITLE": "幫助中心定製",
+ "BODY": "定製門戶"
},
"FINISH": {
- "TITLE": "Voila! 🎉",
- "BODY": "You're all set!"
+ "TITLE": "完成!🎉",
+ "BODY": "您已全部設定完成!"
}
},
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "返回",
"BASIC_SETTINGS_PAGE": {
- "HEADER": "Create Portal",
- "TITLE": "Help center information",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "HEADER": "建立門戶",
+ "TITLE": "幫助中心資訊",
+ "CREATE_BASIC_SETTING_BUTTON": "建立門戶基本設定"
},
"CUSTOMIZATION_PAGE": {
- "HEADER": "Portal customisation",
- "TITLE": "Help center customization",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "HEADER": "門戶定製",
+ "TITLE": "幫助中心定製",
+ "UPDATE_PORTAL_BUTTON": "更新門戶設定"
},
"FINISH_PAGE": {
- "TITLE": "Voila!🎉 You're all set up!",
- "MESSAGE": "You can now see this created portal on your all portals page.",
- "FINISH": "Go to all portals page"
+ "TITLE": "完成!🎉 您已全部設定完成!",
+ "MESSAGE": "您現在可以在所有門戶頁面中看到此建立的門戶。",
+ "FINISH": "轉到所有門戶頁面"
}
},
"LOGO": {
- "LABEL": "Logo",
- "UPLOAD_BUTTON": "Upload logo",
- "HELP_TEXT": "This logo will be displayed on the portal header.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "LABEL": "標識",
+ "UPLOAD_BUTTON": "上傳Logo",
+ "HELP_TEXT": "此Logo將顯示在門戶標題中。",
+ "IMAGE_UPLOAD_SUCCESS": "Logo上傳成功",
+ "IMAGE_UPLOAD_ERROR": "Logo刪除成功",
+ "IMAGE_DELETE_ERROR": "刪除Logo時出錯"
},
"NAME": {
"LABEL": "姓名",
- "PLACEHOLDER": "Portal name",
- "HELP_TEXT": "The name will be used in the public facing portal internally.",
+ "PLACEHOLDER": "門戶名稱",
+ "HELP_TEXT": "該名稱將用於面向公眾的門戶內部。",
"ERROR": "名稱為必填"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Portal slug for urls",
- "ERROR": "Slug is required"
+ "LABEL": "網址代稱",
+ "PLACEHOLDER": "門戶的URL Slug",
+ "ERROR": "Slug 為必填項"
},
"DOMAIN": {
- "LABEL": "Custom Domain",
- "PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
- "ERROR": "Enter a valid domain URL"
+ "LABEL": "自定義域名",
+ "PLACEHOLDER": "門戶自定義域名",
+ "HELP_TEXT": "只有在您想為入口網站使用自訂網域時才需新增。例如:{exampleURL}",
+ "ERROR": "請輸入有效的域名URL"
},
"HOME_PAGE_LINK": {
- "LABEL": "Home Page Link",
- "PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
- "ERROR": "Enter a valid home page URL"
+ "LABEL": "主頁連結",
+ "PLACEHOLDER": "門戶主頁連結",
+ "HELP_TEXT": "此連結用於從入口網站返回首頁。例如:{exampleURL}",
+ "ERROR": "請輸入有效的主頁URL"
},
"THEME_COLOR": {
- "LABEL": "Portal theme color",
- "HELP_TEXT": "This color will show as the theme color for the portal."
+ "LABEL": "門戶主題顏色",
+ "HELP_TEXT": "此顏色將作為門戶的主題顏色顯示。"
},
"PAGE_TITLE": {
- "LABEL": "Page Title",
- "PLACEHOLDER": "Portal page title",
- "HELP_TEXT": "The page title will be used in the public facing portal.",
- "ERROR": "Page title is required"
+ "LABEL": "頁面標題",
+ "PLACEHOLDER": "門戶頁面標題",
+ "HELP_TEXT": "頁面標題將用於面向公眾的門戶。",
+ "ERROR": "頁面標題是必填項"
},
"HEADER_TEXT": {
- "LABEL": "Header Text",
- "PLACEHOLDER": "Portal header text",
- "HELP_TEXT": "The Portal header text will be used in the public facing portal.",
- "ERROR": "Portal header text is required"
+ "LABEL": "標題文字",
+ "PLACEHOLDER": "門戶標題文字",
+ "HELP_TEXT": "門戶標題文字將用於面向公眾的門戶。",
+ "ERROR": "門戶標題文字是必填項"
},
"API": {
- "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.",
- "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.",
- "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.",
- "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again."
+ "SUCCESS_MESSAGE_FOR_BASIC": "門戶建立成功。",
+ "ERROR_MESSAGE_FOR_BASIC": "無法建立門戶,請重試。",
+ "SUCCESS_MESSAGE_FOR_UPDATE": "門戶更新成功。",
+ "ERROR_MESSAGE_FOR_UPDATE": "無法更新門戶,請重試。"
}
},
"ADD_LOCALE": {
- "TITLE": "Add a new locale",
- "SUB_TITLE": "This adds a new locale to your available translation list.",
- "PORTAL": "Portal",
+ "TITLE": "新增一個新的語言環境",
+ "SUB_TITLE": "這將向您的可用翻譯列表中新增一個新的語言環境。",
+ "PORTAL": "入口網站",
"LOCALE": {
- "LABEL": "Locale",
- "PLACEHOLDER": "Choose a locale",
- "ERROR": "Locale is required"
+ "LABEL": "語言環境",
+ "PLACEHOLDER": "選擇一個語言環境",
+ "ERROR": "語言環境是必填項"
},
"BUTTONS": {
- "CREATE": "Create locale",
+ "CREATE": "建立語言環境",
"CANCEL": "取消"
},
"API": {
- "SUCCESS_MESSAGE": "Locale added successfully",
- "ERROR_MESSAGE": "Unable to add locale. Try again."
+ "SUCCESS_MESSAGE": "語言環境新增成功",
+ "ERROR_MESSAGE": "無法新增語言環境,請重試。"
}
},
"CHANGE_DEFAULT_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Default locale updated successfully",
- "ERROR_MESSAGE": "Unable to update default locale. Try again."
+ "SUCCESS_MESSAGE": "預設語言環境更新成功",
+ "ERROR_MESSAGE": "無法更新預設語言環境,請重試。"
}
},
"DELETE_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Locale removed from portal successfully",
- "ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
+ "SUCCESS_MESSAGE": "語言環境從門戶中移除成功",
+ "ERROR_MESSAGE": "無法從門戶中移除語言環境,請重試。"
}
}
},
"TABLE": {
- "LOADING_MESSAGE": "Loading articles...",
- "404": "No articles matches your search 🔍",
- "NO_ARTICLES": "There are no available articles",
+ "LOADING_MESSAGE": "正在載入文章...",
+ "404": "沒有找到您要搜尋的文章 🔍",
+ "NO_ARTICLES": "沒有可用的文章",
"HEADERS": {
"TITLE": "標題",
- "CATEGORY": "Category",
- "READ_COUNT": "Views",
+ "CATEGORY": "類別",
+ "READ_COUNT": "瀏覽量",
"STATUS": "狀態",
- "LAST_EDITED": "Last edited"
+ "LAST_EDITED": "最後編輯"
},
"COLUMNS": {
- "BY": "by",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "BY": "由",
+ "AUTHOR_NOT_AVAILABLE": "作者不可用"
}
},
"EDIT_ARTICLE": {
- "LOADING": "Loading article...",
- "TITLE_PLACEHOLDER": "Article title goes here",
- "CONTENT_PLACEHOLDER": "Write your article here",
+ "LOADING": "正在載入文章...",
+ "TITLE_PLACEHOLDER": "文章標題在此處顯示",
+ "CONTENT_PLACEHOLDER": "在此處寫下您的文章",
"API": {
- "ERROR": "Error while saving article"
+ "ERROR": "儲存文章時出錯"
}
},
"PUBLISH_ARTICLE": {
"API": {
- "ERROR": "Error while publishing article",
- "SUCCESS": "Article published successfully"
+ "ERROR": "釋出文章時出錯",
+ "SUCCESS": "文章釋出成功"
}
},
"ARCHIVE_ARTICLE": {
"API": {
- "ERROR": "Error while archiving article",
- "SUCCESS": "Article archived successfully"
+ "ERROR": "歸檔文章時出錯",
+ "SUCCESS": "文章歸檔成功"
}
},
"DRAFT_ARTICLE": {
"API": {
- "ERROR": "Error while drafting article",
- "SUCCESS": "Article drafted successfully"
+ "ERROR": "草稿文章時出錯",
+ "SUCCESS": "文章草稿成功"
}
},
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
"TITLE": "確認刪除",
- "MESSAGE": "Are you sure to delete the article?",
+ "MESSAGE": "您確定要刪除這篇文章嗎?",
"YES": "是,刪除",
"NO": "否,保留它"
}
},
"API": {
- "SUCCESS_MESSAGE": "Article deleted successfully",
- "ERROR_MESSAGE": "Error while deleting article"
+ "SUCCESS_MESSAGE": "文章刪除成功",
+ "ERROR_MESSAGE": "刪除文章時出錯"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
}
},
"CREATE_ARTICLE": {
- "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
+ "ERROR_MESSAGE": "請新增文章標題和內容,然後才能更新設定"
},
"SIDEBAR": {
"SEARCH": {
- "PLACEHOLDER": "Search for articles"
+ "PLACEHOLDER": "搜尋文章"
}
},
"CATEGORY": {
"ADD": {
- "TITLE": "Create a category",
- "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "建立一個類別",
+ "SUB_TITLE": "類別將用於公共門戶來對文章進行歸類。",
+ "PORTAL": "入口網站",
+ "LOCALE": "語言環境",
"NAME": {
"LABEL": "姓名",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "PLACEHOLDER": "類別名稱",
+ "HELP_TEXT": "類別名稱和圖示將用於面向公眾的門戶以對文章進行分類。",
"ERROR": "名稱為必填"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "網址代稱",
+ "PLACEHOLDER": "類別的URL Slug",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "Slug 為必填項"
},
"DESCRIPTION": {
"LABEL": "描述資訊",
- "PLACEHOLDER": "Give a short description about the category.",
+ "PLACEHOLDER": "給出有關該類別的簡短描述。",
"ERROR": "描述為必填"
},
"BUTTONS": {
- "CREATE": "Create category",
+ "CREATE": "建立類別",
"CANCEL": "取消"
},
"API": {
- "SUCCESS_MESSAGE": "Category created successfully",
- "ERROR_MESSAGE": "Unable to create category"
+ "SUCCESS_MESSAGE": "類別建立成功",
+ "ERROR_MESSAGE": "無法建立類別"
}
},
"EDIT": {
- "TITLE": "Edit a category",
- "SUB_TITLE": "Editing a category will update the category in the public facing portal.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "編輯類別",
+ "SUB_TITLE": "編輯類別將更新面向公眾的門戶中的類別。",
+ "PORTAL": "入口網站",
+ "LOCALE": "語言環境",
"NAME": {
"LABEL": "姓名",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "PLACEHOLDER": "類別名稱",
+ "HELP_TEXT": "類別名稱和圖示將用於面向公眾的門戶以對文章進行分類。",
"ERROR": "名稱為必填"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "網址代稱",
+ "PLACEHOLDER": "類別的URL Slug",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "Slug 為必填項"
},
"DESCRIPTION": {
"LABEL": "描述資訊",
- "PLACEHOLDER": "Give a short description about the category.",
+ "PLACEHOLDER": "給出有關該類別的簡短描述。",
"ERROR": "描述為必填"
},
"BUTTONS": {
- "CREATE": "Update category",
+ "CREATE": "更新類別",
"CANCEL": "取消"
},
"API": {
- "SUCCESS_MESSAGE": "Category updated successfully",
- "ERROR_MESSAGE": "Unable to update category"
+ "SUCCESS_MESSAGE": "類別更新成功",
+ "ERROR_MESSAGE": "無法更新類別"
}
},
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Category deleted successfully",
- "ERROR_MESSAGE": "Unable to delete category"
+ "SUCCESS_MESSAGE": "類別刪除成功",
+ "ERROR_MESSAGE": "無法刪除類別"
}
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
- "SEARCHING": "Searching...",
+ "TITLE": "搜尋文章",
+ "PLACEHOLDER": "搜尋文章",
+ "NO_RESULT": "未找到文章",
+ "SEARCHING": "搜尋中...",
"SEARCH_BUTTON": "搜尋",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
+ "INSERT_ARTICLE": "插入連結",
+ "IFRAME_ERROR": "URL為空或無效,無法顯示內容。",
+ "OPEN_ARTICLE_SEARCH": "從幫助中心插入文章",
+ "SUCCESS_ARTICLE_INSERTED": "文章插入成功",
+ "PREVIEW_LINK": "預覽文章",
"CANCEL": "取消",
"BACK": "返回",
- "BACK_RESULTS": "Back to results"
+ "BACK_RESULTS": "返回結果"
},
"UPGRADE_PAGE": {
- "TITLE": "Help Center",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "TITLE": "幫助中心",
+ "DESCRIPTION": "建立使用者友好的自助服務門戶。幫助您的使用者訪問文章並獲得24/7支援。升級您的訂閱以啟用此功能。",
+ "SELF_HOSTED_DESCRIPTION": "建立使用者友好的自助服務門戶。幫助您的使用者訪問文章並獲得24/7支援。請聯絡您的管理員以啟用此功能。",
"BUTTON": {
- "LEARN_MORE": "Learn more",
- "UPGRADE": "Upgrade"
+ "LEARN_MORE": "瞭解更多",
+ "UPGRADE": "升級"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "多門戶支援",
+ "DESCRIPTION": "使用同一賬戶為不同產品建立多個幫助中心門戶。"
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "全面支援多語言環境",
+ "DESCRIPTION": "將門戶本地化為您的語言。我們支援所有語言環境,並允許為每篇文章提供翻譯。"
},
"SEO": {
- "TITLE": "SEO-friendly design",
- "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
+ "TITLE": "SEO友好設計",
+ "DESCRIPTION": "自定義您的Meta標籤,透過我們的SEO友好頁面提高在搜尋引擎中的可見性。"
},
"API": {
- "TITLE": "Full API support",
- "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
+ "TITLE": "全面API支援",
+ "DESCRIPTION": "使用我們的API將門戶作為無頭CMS與第三方前端框架整合。"
}
}
},
- "LOADING": "Loading...",
+ "LOADING": "載入中...",
"ARTICLES_PAGE": {
"ARTICLE_CARD": {
"CARD": {
- "VIEWS": "{count} view | {count} views",
+ "VIEWS": "{count} 次瀏覽 | {count} 次瀏覽",
"DROPDOWN_MENU": {
- "PUBLISH": "Publish",
- "DRAFT": "Draft",
- "ARCHIVE": "Archive",
+ "PUBLISH": "釋出",
+ "DRAFT": "草稿",
+ "ARCHIVE": "歸檔",
"DELETE": "刪除"
},
"STATUS": {
- "DRAFT": "Draft",
- "PUBLISHED": "Published",
- "ARCHIVED": "Archived"
+ "DRAFT": "草稿",
+ "PUBLISHED": "已釋出",
+ "ARCHIVED": "已歸檔"
},
"CATEGORY": {
- "UNCATEGORISED": "Uncategorised"
+ "UNCATEGORISED": "未分類"
}
}
},
"ARTICLES_HEADER": {
"TABS": {
- "ALL": "All articles",
+ "ALL": "所有文章",
"MINE": "我的",
- "DRAFT": "Draft",
- "PUBLISHED": "Published",
- "ARCHIVED": "Archived"
+ "DRAFT": "草稿",
+ "PUBLISHED": "已釋出",
+ "ARCHIVED": "已歸檔"
},
"CATEGORY": {
- "ALL": "All categories"
+ "ALL": "所有類別"
},
"LOCALE": {
- "ALL": "All locales"
+ "ALL": "所有語言環境"
},
- "NEW_ARTICLE": "New article"
+ "NEW_ARTICLE": "新建文章"
},
"EMPTY_STATE": {
"ALL": {
- "TITLE": "Write an article",
- "SUBTITLE": "Write a rich article, let’s get started!",
- "BUTTON_LABEL": "New article"
+ "TITLE": "撰寫一篇文章",
+ "SUBTITLE": "撰寫一篇豐富的文章,讓我們開始吧!",
+ "BUTTON_LABEL": "新建文章"
},
"MINE": {
- "TITLE": "You haven't written any articles here",
- "SUBTITLE": "All articles written by you show up here for quick access."
+ "TITLE": "您尚未在此撰寫任何文章",
+ "SUBTITLE": "您撰寫的所有文章將顯示在此處以便快速訪問。"
},
"DRAFT": {
- "TITLE": "There are no articles in drafts",
- "SUBTITLE": "Draft articles will appear here"
+ "TITLE": "草稿中沒有文章",
+ "SUBTITLE": "草稿文章將顯示在此處"
},
"PUBLISHED": {
- "TITLE": "There are no published articles",
- "SUBTITLE": "Published articles will appear here"
+ "TITLE": "沒有已釋出的文章",
+ "SUBTITLE": "已釋出的文章將顯示在此處"
},
"ARCHIVED": {
- "TITLE": "There are no articles in the archive",
- "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ "TITLE": "歸檔中沒有文章",
+ "SUBTITLE": "歸檔文章不會顯示在門戶上,您可以用它標記已棄用或過時的頁面"
},
"CATEGORY": {
- "TITLE": "There are no articles in this category",
- "SUBTITLE": "Articles in this category will appear here"
+ "TITLE": "此類別中沒有文章",
+ "SUBTITLE": "此類別中的文章將顯示在此處"
}
}
},
"CATEGORY_PAGE": {
"CATEGORY_HEADER": {
- "NEW_CATEGORY": "New category",
- "EDIT_CATEGORY": "Edit category",
- "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "NEW_CATEGORY": "新建類別",
+ "EDIT_CATEGORY": "編輯類別",
+ "CATEGORIES_COUNT": "{n} 個類別 | {n} 個類別",
"BREADCRUMB": {
- "CATEGORY_LOCALE": "Categories ({localeCode})",
- "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ "CATEGORY_LOCALE": "類別 ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} 篇文章) | {categoryName} ({categoryCount} 篇文章)"
}
},
"CATEGORY_EMPTY_STATE": {
- "TITLE": "No categories found",
- "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ "TITLE": "未找到類別",
+ "SUBTITLE": "類別將顯示在此處。您可以點選“新建類別”按鈕新增類別。"
},
"CATEGORY_CARD": {
- "ARTICLES_COUNT": "{count} article | {count} articles"
+ "ARTICLES_COUNT": "{count} 篇文章 | {count} 篇文章"
},
"CATEGORY_DIALOG": {
"CREATE": {
"API": {
- "SUCCESS_MESSAGE": "Category created successfully",
- "ERROR_MESSAGE": "Unable to create category"
+ "SUCCESS_MESSAGE": "類別建立成功",
+ "ERROR_MESSAGE": "無法建立類別"
}
},
"EDIT": {
"API": {
- "SUCCESS_MESSAGE": "Category updated successfully",
- "ERROR_MESSAGE": "Unable to update category"
+ "SUCCESS_MESSAGE": "類別更新成功",
+ "ERROR_MESSAGE": "無法更新類別"
}
},
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Category deleted successfully",
- "ERROR_MESSAGE": "Unable to delete category"
+ "SUCCESS_MESSAGE": "類別刪除成功",
+ "ERROR_MESSAGE": "無法刪除類別"
}
},
"HEADER": {
- "CREATE": "Create category",
- "EDIT": "Edit category",
- "DESCRIPTION": "Editing a category will update the category in the public facing portal.",
- "PORTAL": "Portal",
- "LOCALE": "Locale"
+ "CREATE": "建立類別",
+ "EDIT": "編輯類別",
+ "DESCRIPTION": "編輯類別將更新面向公眾的門戶中的類別。",
+ "PORTAL": "入口網站",
+ "LOCALE": "語言環境"
},
"FORM": {
"NAME": {
"LABEL": "姓名",
- "PLACEHOLDER": "Category name",
+ "PLACEHOLDER": "類別名稱",
"ERROR": "名稱為必填"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
- "ERROR": "Slug is required",
+ "LABEL": "網址代稱",
+ "PLACEHOLDER": "類別的URL Slug",
+ "ERROR": "Slug 是必填項",
"HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
},
"DESCRIPTION": {
"LABEL": "描述資訊",
- "PLACEHOLDER": "Give a short description about the category.",
+ "PLACEHOLDER": "給出有關該類別的簡短描述。",
"ERROR": "描述為必填"
}
},
@@ -628,238 +638,238 @@
}
},
"LOCALES_PAGE": {
- "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
- "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALES_COUNT": "沒有可用的語言環境 | {n} 個語言環境 | {n} 個語言環境",
+ "NEW_LOCALE_BUTTON_TEXT": "新建語言環境",
"LOCALE_CARD": {
- "ARTICLES_COUNT": "{count} article | {count} articles",
- "CATEGORIES_COUNT": "{count} category | {count} categories",
- "DEFAULT": "Default",
+ "ARTICLES_COUNT": "{count} 篇文章 | {count} 篇文章",
+ "CATEGORIES_COUNT": "{count} 個類別 | {count} 個類別",
+ "DEFAULT": "預設",
"DROPDOWN_MENU": {
- "MAKE_DEFAULT": "Make default",
+ "MAKE_DEFAULT": "設為預設",
"DELETE": "刪除"
}
},
"ADD_LOCALE_DIALOG": {
- "TITLE": "Add a new locale",
- "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "TITLE": "新增一個新的語言環境",
+ "DESCRIPTION": "選擇此文章將使用的語言。這將新增到您的翻譯列表中,您可以稍後新增更多。",
"COMBOBOX": {
- "PLACEHOLDER": "Select locale..."
+ "PLACEHOLDER": "選擇語言環境..."
},
"API": {
- "SUCCESS_MESSAGE": "Locale added successfully",
- "ERROR_MESSAGE": "Unable to add locale. Try again."
+ "SUCCESS_MESSAGE": "語言環境新增成功",
+ "ERROR_MESSAGE": "無法新增語言環境,請重試。"
}
}
},
"EDIT_ARTICLE_PAGE": {
"HEADER": {
"STATUS": {
- "SAVING": "Saving...",
- "SAVED": "Saved"
+ "SAVING": "儲存中...",
+ "SAVED": "儲存成功"
},
- "PREVIEW": "Preview",
- "PUBLISH": "Publish",
- "DRAFT": "Draft",
- "ARCHIVE": "Archive",
- "BACK_TO_ARTICLES": "Back to articles"
+ "PREVIEW": "預覽",
+ "PUBLISH": "釋出",
+ "DRAFT": "草稿",
+ "ARCHIVE": "歸檔",
+ "BACK_TO_ARTICLES": "返回文章"
},
"EDIT_ARTICLE": {
- "MORE_PROPERTIES": "More properties",
- "UNCATEGORIZED": "Uncategorized",
- "EDITOR_PLACEHOLDER": "Write something..."
+ "MORE_PROPERTIES": "更多屬性",
+ "UNCATEGORIZED": "未分類",
+ "EDITOR_PLACEHOLDER": "寫點什麼..."
},
"ARTICLE_PROPERTIES": {
- "ARTICLE_PROPERTIES": "Article properties",
- "META_DESCRIPTION": "Meta description",
- "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
- "META_TITLE": "Meta title",
- "META_TITLE_PLACEHOLDER": "Add meta title",
- "META_TAGS": "Meta tags",
- "META_TAGS_PLACEHOLDER": "Add meta tags"
+ "ARTICLE_PROPERTIES": "文章屬性",
+ "META_DESCRIPTION": "Meta描述",
+ "META_DESCRIPTION_PLACEHOLDER": "新增Meta描述",
+ "META_TITLE": "Meta標題",
+ "META_TITLE_PLACEHOLDER": "新增Meta標題",
+ "META_TAGS": "Meta標籤",
+ "META_TAGS_PLACEHOLDER": "新增Meta標籤"
},
"API": {
- "ERROR": "Error while saving article"
+ "ERROR": "儲存文章時出錯"
}
},
"PORTAL_SWITCHER": {
- "NEW_PORTAL": "New portal",
- "PORTALS": "Portals",
- "CREATE_PORTAL": "Create and manage multiple portals",
- "ARTICLES": "articles",
- "DOMAIN": "domain",
- "PORTAL_NAME": "Portal name"
+ "NEW_PORTAL": "新建門戶",
+ "PORTALS": "入口網站",
+ "CREATE_PORTAL": "建立和管理多個門戶",
+ "ARTICLES": "文章",
+ "DOMAIN": "域名",
+ "PORTAL_NAME": "門戶名稱"
},
"CREATE_PORTAL_DIALOG": {
- "TITLE": "Create new portal",
- "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "TITLE": "建立新門戶",
+ "DESCRIPTION": "為您的門戶命名並建立一個使用者友好的URL Slug。您稍後可以在設定中修改它們。",
"CONFIRM_BUTTON_LABEL": "建立",
"NAME": {
"LABEL": "姓名",
- "PLACEHOLDER": "User Guide | Chatwoot",
- "MESSAGE": "Choose an name for your portal.",
+ "PLACEHOLDER": "使用者指南 | Chatwoot",
+ "MESSAGE": "為您的門戶選擇一個名稱。",
"ERROR": "名稱為必填"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required",
- "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ "LABEL": "網址代稱",
+ "PLACEHOLDER": "使用者指南",
+ "ERROR": "Slug 為必填項",
+ "FORMAT_ERROR": "請輸入有效的 Slug,例如:user-guide"
}
},
"PORTAL_SETTINGS": {
"FORM": {
"AVATAR": {
- "LABEL": "Logo",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
- "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Unable to delete logo",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "LABEL": "頭像",
+ "IMAGE_UPLOAD_ERROR": "無法上傳圖片!請再試一次",
+ "IMAGE_UPLOAD_SUCCESS": "圖片上傳成功,請點選儲存更改以儲存Logo",
+ "IMAGE_DELETE_SUCCESS": "Logo刪除成功",
+ "IMAGE_DELETE_ERROR": "無法刪除Logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "圖片大小應小於 {size}MB"
},
"NAME": {
"LABEL": "姓名",
- "PLACEHOLDER": "Portal name",
+ "PLACEHOLDER": "門戶名稱",
"ERROR": "名稱為必填"
},
"HEADER_TEXT": {
- "LABEL": "Header text",
- "PLACEHOLDER": "Portal header text"
+ "LABEL": "標題文字",
+ "PLACEHOLDER": "門戶標題文字"
},
"PAGE_TITLE": {
- "LABEL": "Page title",
- "PLACEHOLDER": "Portal page title"
+ "LABEL": "頁面標題",
+ "PLACEHOLDER": "門戶頁面標題"
},
"HOME_PAGE_LINK": {
- "LABEL": "Home page link",
- "PLACEHOLDER": "Portal home page link",
- "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ "LABEL": "主頁連結",
+ "PLACEHOLDER": "門戶主頁連結",
+ "ERROR": "輸入有效的 URL。主頁連結必須以「http://」或「https://」開頭。"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Portal slug"
+ "LABEL": "網址代稱",
+ "PLACEHOLDER": "門戶Slug"
},
"LIVE_CHAT_WIDGET": {
- "LABEL": "Live chat widget",
- "PLACEHOLDER": "Select live chat widget",
- "HELP_TEXT": "Select a live chat widget that will appear on your help center",
- "NONE_OPTION": "No widget"
+ "LABEL": "線上聊天小部件",
+ "PLACEHOLDER": "選擇線上聊天小部件",
+ "HELP_TEXT": "選擇將顯示在您的幫助中心上的線上聊天小部件",
+ "NONE_OPTION": "沒有小部件"
},
"BRAND_COLOR": {
- "LABEL": "Brand color"
+ "LABEL": "品牌顏色"
},
- "SAVE_CHANGES": "Save changes"
+ "SAVE_CHANGES": "儲存更改"
},
"CONFIGURATION_FORM": {
"CUSTOM_DOMAIN": {
- "HEADER": "Custom domain",
- "LABEL": "Custom domain:",
- "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
- "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
- "PLACEHOLDER": "Portal custom domain",
+ "HEADER": "自定義域名",
+ "LABEL": "自定義域名:",
+ "DESCRIPTION": "您可以在自定義域名上託管您的門戶。例如,如果您的網站是 yourdomain.com,並且您希望您的門戶在 docs.yourdomain.com 上可用,只需在此欄位中輸入即可。",
+ "STATUS_DESCRIPTION": "您的自訂入口網站將在經過驗證後立即開始工作。",
+ "PLACEHOLDER": "門戶自定義域名",
"EDIT_BUTTON": "編輯",
- "ADD_BUTTON": "Add custom domain",
+ "ADD_BUTTON": "新增自定義域名",
"STATUS": {
- "LIVE": "Live",
- "PENDING": "Awaiting verification",
- "ERROR": "Verification failed"
+ "LIVE": "實時",
+ "PENDING": "等待驗證",
+ "ERROR": "驗證失敗"
},
"DIALOG": {
- "ADD_HEADER": "Add custom domain",
- "EDIT_HEADER": "Edit custom domain",
- "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
- "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
- "LABEL": "Custom domain",
- "PLACEHOLDER": "Portal custom domain",
- "ERROR": "Custom domain is required",
- "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ "ADD_HEADER": "新增自定義域名",
+ "EDIT_HEADER": "編輯自定義域名",
+ "ADD_CONFIRM_BUTTON_LABEL": "新增域名",
+ "EDIT_CONFIRM_BUTTON_LABEL": "更新域名",
+ "LABEL": "自定義域名",
+ "PLACEHOLDER": "門戶自定義域名",
+ "ERROR": "自定義域名是必填項",
+ "FORMAT_ERROR": "請輸入有效的網域 URL,例如docs.yourdomain.com"
},
"DNS_CONFIGURATION_DIALOG": {
- "HEADER": "DNS configuration",
- "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
- "COPY": "Successfully copied CNAME",
+ "HEADER": "DNS配置",
+ "DESCRIPTION": "登入您的 DNS 提供商賬戶,並新增一個指向 chatwoot.help 的子域名的 CNAME 記錄",
+ "COPY": "已成功複製 CNAME",
"SEND_INSTRUCTIONS": {
- "HEADER": "Send instructions",
- "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
- "PLACEHOLDER": "Enter their email",
- "ERROR": "Enter a valid email address",
+ "HEADER": "發送指令",
+ "DESCRIPTION": "如果您希望讓您的開發團隊中的人員來處理此步驟,您可以在下面輸入電子郵件地址,我們將向他們發送所需的說明。",
+ "PLACEHOLDER": "輸入他們的電子郵件",
+ "ERROR": "輸入有效的電子郵件地址",
"SEND_BUTTON": "發送"
}
}
},
"DELETE_PORTAL": {
- "BUTTON": "Delete {portalName}",
- "HEADER": "Delete portal",
- "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "BUTTON": "刪除 {portalName}",
+ "HEADER": "刪除門戶",
+ "DESCRIPTION": "永久刪除此門戶。此操作不可逆",
"DIALOG": {
- "HEADER": "Sure you want to delete {portalName}?",
- "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "HEADER": "確定要刪除 {portalName} 嗎?",
+ "DESCRIPTION": "這是一個永久操作,無法撤銷。",
"CONFIRM_BUTTON_LABEL": "刪除"
}
},
- "EDIT_CONFIGURATION": "Edit configuration"
+ "EDIT_CONFIGURATION": "編輯配置"
},
"API": {
"CREATE_PORTAL": {
- "SUCCESS_MESSAGE": "Portal created successfully",
- "ERROR_MESSAGE": "Unable to create portal"
+ "SUCCESS_MESSAGE": "門戶建立成功",
+ "ERROR_MESSAGE": "無法建立門戶"
},
"UPDATE_PORTAL": {
- "SUCCESS_MESSAGE": "Portal updated successfully",
- "ERROR_MESSAGE": "Unable to update portal"
+ "SUCCESS_MESSAGE": "門戶更新成功",
+ "ERROR_MESSAGE": "無法更新門戶"
}
}
},
"PDF_UPLOAD": {
- "TITLE": "Upload PDF Document",
- "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
- "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
- "SELECT_FILE": "Select PDF File",
- "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
- "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "TITLE": "上傳PDF文檔",
+ "DESCRIPTION": "上傳 PDF 文檔,利用 AI 自動產生常見問題解答",
+ "DRAG_DROP_TEXT": "將您的 PDF 檔案拖放到此處,或按一下以選擇",
+ "SELECT_FILE": "選擇 PDF 檔案",
+ "ADDITIONAL_CONTEXT_LABEL": "其他上下文(可選)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "提供常見問題產生的任何其他上下文或說明...",
"UPLOADING": "上傳中",
- "UPLOAD": "Upload & Process",
+ "UPLOAD": "上傳和進度",
"CANCEL": "取消",
- "ERROR_INVALID_TYPE": "Please select a valid PDF file",
- "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
- "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ "ERROR_INVALID_TYPE": "請選擇一個有效的 PDF 檔案",
+ "ERROR_FILE_TOO_LARGE": "檔案大小必須小於 512MB",
+ "ERROR_UPLOAD_FAILED": "上傳 PDF 失敗。請重試。"
},
"PDF_DOCUMENTS": {
- "TITLE": "PDF Documents",
- "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
- "UPLOAD_PDF": "Upload PDF",
- "UPLOAD_FIRST_PDF": "Upload your first PDF",
- "UPLOADED_BY": "Uploaded by",
- "GENERATE_FAQS": "Generate FAQs",
- "GENERATING": "Generating...",
- "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "TITLE": "PDF 文件",
+ "DESCRIPTION": "管理上傳的 PDF 文件並從它們生成常見問題",
+ "UPLOAD_PDF": "上傳 PDF",
+ "UPLOAD_FIRST_PDF": "上傳您的第一個PDF",
+ "UPLOADED_BY": "上傳者",
+ "GENERATE_FAQS": "生成常見問題",
+ "GENERATING": "生成中...",
+ "CONFIRM_DELETE": "您確定要刪除 {filename}?",
"EMPTY_STATE": {
- "TITLE": "No PDF documents yet",
- "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ "TITLE": "尚無PDF文件",
+ "DESCRIPTION": "上傳 PDF 文件以使用 AI 自動生成常見問題內容"
},
"STATUS": {
- "UPLOADED": "Ready",
- "PROCESSING": "Processing",
+ "UPLOADED": "已就緒",
+ "PROCESSING": "處理中",
"PROCESSED": "已完成",
- "FAILED": "Failed"
+ "FAILED": "失敗"
}
},
"CONTENT_GENERATION": {
- "TITLE": "Content Generation",
- "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
- "UPLOAD_TITLE": "Upload PDF Document",
- "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
- "SELECT_FILE": "Select PDF File",
- "UPLOADING": "Processing document...",
- "UPLOAD_SUCCESS": "Document processed successfully!",
- "UPLOAD_ERROR": "Failed to upload document. Please try again.",
- "INVALID_FILE_TYPE": "Please select a valid PDF file",
- "FILE_TOO_LARGE": "File size must be less than 512MB",
- "GENERATED_CONTENT": "Generated FAQ Content",
- "PUBLISH_SELECTED": "Publish Selected",
- "PUBLISHING": "Publishing...",
- "FROM_DOCUMENT": "From document",
- "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
- "LOADING": "Loading generated content..."
+ "TITLE": "內容生成",
+ "DESCRIPTION": "上傳 PDF 文件以使用 AI 自動生成常見問題內容",
+ "UPLOAD_TITLE": "上傳 PDF 文件",
+ "DRAG_DROP": "拖放您的 PDF 檔案到此處,或單擊以選擇",
+ "SELECT_FILE": "選擇 PDF 檔案",
+ "UPLOADING": "正在處理文件...",
+ "UPLOAD_SUCCESS": "文件處理成功!",
+ "UPLOAD_ERROR": "上傳文件失敗。請重試。",
+ "INVALID_FILE_TYPE": "請選擇一個有效的 PDF 檔案",
+ "FILE_TOO_LARGE": "檔案大小必須小於 512MB",
+ "GENERATED_CONTENT": "生成常見問題",
+ "PUBLISH_SELECTED": "釋出所選內容",
+ "PUBLISHING": "釋出中...",
+ "FROM_DOCUMENT": "來自文件",
+ "NO_CONTENT": "沒有可用的生成內容。上傳 PDF 文件即可開始。",
+ "LOADING": "正在載入生成的內容..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/inbox.json b/app/javascript/dashboard/i18n/locale/zh_TW/inbox.json
index 02383f7be..d8307e382 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/inbox.json
@@ -1,16 +1,16 @@
{
"INBOX": {
"LIST": {
- "TITLE": "My Inbox",
- "DISPLAY_DROPDOWN": "Display",
- "LOADING": "Fetching notifications",
- "404": "There are no active notifications in this group.",
- "NO_NOTIFICATIONS": "No notifications",
- "NOTE": "Notifications from all subscribed inboxes",
- "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
- "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
+ "TITLE": "我的收件箱",
+ "DISPLAY_DROPDOWN": "顯示",
+ "LOADING": "正在獲取通知",
+ "404": "此組中沒有活躍的通知。",
+ "NO_NOTIFICATIONS": "沒有通知",
+ "NOTE": "來自所有訂閱收件箱的通知",
+ "NO_MESSAGES_AVAILABLE": "哎呀!無法獲取訊息",
+ "SNOOZED_UNTIL": "推遲到",
+ "SNOOZED_UNTIL_TOMORROW": "推遲到明天",
+ "SNOOZED_UNTIL_NEXT_WEEK": "推遲到下週"
},
"ACTION_HEADER": {
"SNOOZE": "擱置通知",
@@ -18,26 +18,26 @@
"BACK": "返回"
},
"TYPES": {
- "CONVERSATION_MENTION": "You have been mentioned in a conversation",
- "CONVERSATION_CREATION": "New conversation created",
- "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
- "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
- "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
- "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
+ "CONVERSATION_MENTION": "您被提及在對話中",
+ "CONVERSATION_CREATION": "新對話已建立",
+ "CONVERSATION_ASSIGNMENT": "對話已分配給您",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "分配的對話中有新訊息",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "您參與的對話中有新訊息",
+ "SLA_MISSED_FIRST_RESPONSE": "對話的首次響應SLA目標未達成",
+ "SLA_MISSED_NEXT_RESPONSE": "對話的下次響應SLA目標未達成",
+ "SLA_MISSED_RESOLUTION": "對話的解決SLA目標未達成"
},
"TYPES_NEXT": {
- "CONVERSATION_MENTION": "Mentioned",
- "CONVERSATION_ASSIGNMENT": "Assigned to you",
- "CONVERSATION_CREATION": "New Conversation",
- "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
- "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
- "SLA_MISSED_RESOLUTION": "SLA breach",
+ "CONVERSATION_MENTION": "被提及",
+ "CONVERSATION_ASSIGNMENT": "分配給您",
+ "CONVERSATION_CREATION": "新對話",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA違約",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA違約",
+ "SLA_MISSED_RESOLUTION": "SLA違約",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "新訊息",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "新訊息",
- "SNOOZED_UNTIL": "Snoozed for {time}",
- "SNOOZED_ENDS": "Snooze ended"
+ "SNOOZED_UNTIL": "推遲至{time}",
+ "SNOOZED_ENDS": "推遲結束"
},
"NO_CONTENT": "沒有可用內容",
"MENU_ITEM": {
@@ -50,45 +50,45 @@
"DELETE_ALL_READ": "標記為未讀取已讀取"
},
"DISPLAY_MENU": {
- "SORT": "Sort",
- "DISPLAY": "Display :",
+ "SORT": "排序",
+ "DISPLAY": "顯示:",
"SORT_OPTIONS": {
- "NEWEST": "Newest",
- "OLDEST": "Oldest",
+ "NEWEST": "最新",
+ "OLDEST": "最舊",
"PRIORITY": "優先程度"
},
"DISPLAY_OPTIONS": {
"SNOOZED": "擱置",
- "READ": "Read",
+ "READ": "已讀",
"LABELS": "標籤",
- "CONVERSATION_ID": "Conversation ID"
+ "CONVERSATION_ID": "對話ID"
}
},
"ALERTS": {
- "MARK_AS_READ": "Notification marked as read",
- "MARK_AS_UNREAD": "Notification marked as unread",
- "SNOOZE": "Notification snoozed",
- "DELETE": "Notification deleted",
- "MARK_ALL_READ": "All notifications marked as read",
- "DELETE_ALL": "All notifications deleted",
- "DELETE_ALL_READ": "All read notifications deleted"
+ "MARK_AS_READ": "通知標記為已讀",
+ "MARK_AS_UNREAD": "通知標記為未讀",
+ "SNOOZE": "通知已推遲",
+ "DELETE": "通知已刪除",
+ "MARK_ALL_READ": "所有通知標記為已讀",
+ "DELETE_ALL": "所有通知已刪除",
+ "DELETE_ALL_READ": "所有已讀通知已刪除"
},
"REAUTHORIZE": {
- "TITLE": "Reauthorization Required",
- "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
- "BUTTON_TEXT": "Reconnect WhatsApp",
- "LOADING_FACEBOOK": "Loading Facebook SDK...",
- "SUCCESS": "WhatsApp reconnected successfully",
- "ERROR": "Failed to reconnect WhatsApp. Please try again.",
- "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
- "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
- "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
- "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TITLE": "需要重新授權",
+ "DESCRIPTION": "您的 WhatsApp 連線已過期。請重新連線以繼續接收和發送訊息。",
+ "BUTTON_TEXT": "重新連線 WhatsApp",
+ "LOADING_FACEBOOK": "載入 Facebook SDK...",
+ "SUCCESS": "WhatsApp 重新連線成功",
+ "ERROR": "無法重新連線 WhatsApp。請再試一次。",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp ID未配置。請聯絡您的管理員。",
+ "WHATSAPP_CONFIG_ID_MISSING": "未配置 WhatsApp 設定 ID。請聯絡您的管理員。",
+ "CONFIGURATION_ERROR": "重新授權時發生配置錯誤。",
+ "FACEBOOK_LOAD_ERROR": "無法載入 Facebook SDK。請重試。",
"TROUBLESHOOTING": {
- "TITLE": "Troubleshooting",
- "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
- "COOKIES": "Third-party cookies must be enabled",
- "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ "TITLE": "疑難解答",
+ "POPUP_BLOCKED": "確保此站點允許彈出視窗",
+ "COOKIES": "必須啟用第三方cookie",
+ "ADMIN_ACCESS": "您需要管理員許可權才能訪問 WhatsApp Business 賬戶"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json
index 9d33efd0b..5bdc81639 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json
@@ -3,6 +3,9 @@
"HEADER": "收件匣",
"DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
"LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
"RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
"CLICK_TO_RECONNECT": "Click here to reconnect.",
"WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
@@ -575,7 +578,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -589,8 +592,10 @@
"DISABLED": "已停用"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "已啟用",
- "DISABLED": "已停用"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "啟用"
@@ -625,6 +630,8 @@
"ACCOUNT_HEALTH": "Account Health",
"CSAT": "顧客滿意度得分(CSAT)"
},
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
"ACCOUNT_HEALTH": {
"TITLE": "Manage your WhatsApp account",
"DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
@@ -678,6 +685,16 @@
"SANDBOX": "Sandbox",
"LIVE": "Live"
}
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook 設定",
+ "DESCRIPTION": "您的 WhatsApp Business 帳號需要設定 Webhook URL,才能接收顧客傳送的訊息",
+ "ACTION_REQUIRED": "Webhook 尚未設定",
+ "REGISTER_BUTTON": "註冊 Webhook",
+ "REGISTER_SUCCESS": "Webhook 註冊成功",
+ "REGISTER_ERROR": "Webhook 註冊失敗,請再試一次。",
+ "CONFIGURED_SUCCESS": "Webhook 設定成功",
+ "URL_MISMATCH": "Webhook URL 不符"
}
},
"SETTINGS": "設定",
@@ -694,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": "新增或刪除此收件匣中的客服",
@@ -708,8 +725,8 @@
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "收件匣設定",
"INBOX_UPDATE_SUB_TEXT": "更新收件匣設定",
"AUTO_ASSIGNMENT_SUB_TEXT": "啟用或停用此收件匣客服的對話自動分配。",
@@ -758,6 +775,7 @@
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "無",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -766,6 +784,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "取消",
+ "CONFIRM_DELETE": "刪除",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "重新授權",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -837,6 +902,20 @@
"CONFIRM": "Create new template",
"CANCEL": "返回"
},
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
"SURVEY_RULE": {
"LABEL": "Survey rule",
"DESCRIPTION_PREFIX": "Send the survey if the conversation",
@@ -848,7 +927,7 @@
"SELECT_PLACEHOLDER": "select labels"
},
"NOTE": "Note: CSAT surveys are sent only once per conversation",
- "WHATSAPP_NOTE": "Note: We will create a template and send it for WhatsApp approval. After being approved, surveys will be sent only once per conversation as per the survey rule.",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
"API": {
"SUCCESS_MESSAGE": "CSAT settings updated successfully",
"ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
@@ -864,9 +943,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "有效的",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "無法使用",
- "HOURS": "小時",
"VALIDATION_ERROR": "開始時間必須在關閉時間之前",
"CHOOSE": "選擇"
},
@@ -973,11 +1054,12 @@
"IN_A_DAY": "一天內"
},
"WIDGET_COLOR_LABEL": "視窗小元件顏色",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "類別:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "與我們對話",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "與我們對話"
},
"UPDATE": {
@@ -1002,7 +1084,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "通常在幾分鐘內回覆",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/index.js b/app/javascript/dashboard/i18n/locale/zh_TW/index.js
index 213387d0c..33e7851b0 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/index.js
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/index.js
@@ -8,6 +8,7 @@ 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';
@@ -47,6 +48,7 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
...components,
...contact,
...contactFilters,
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/integrationApps.json b/app/javascript/dashboard/i18n/locale/zh_TW/integrationApps.json
index 83e385079..e18711ae0 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/integrationApps.json
@@ -3,6 +3,9 @@
"FETCHING": "Fetching Integrations",
"NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "已啟用",
"DISABLED": "已停用"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "收件匣",
+ "ACTIONS": "操作",
"DELETE": {
"BUTTON_TEXT": "刪除"
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json b/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json
index feb3146ed..a50a0d3e2 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json
@@ -1,6 +1,7 @@
{
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
+ "HEADER": "Shopify",
"DELETE": {
"TITLE": "Delete Shopify Integration",
"MESSAGE": "Are you sure you want to delete the Shopify integration?"
@@ -19,6 +20,8 @@
"DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
"LEARN_MORE": "Learn more about integrations",
"LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
"CAPTAIN": {
"DISABLED": "Captain is not enabled on your account.",
"CLICK_HERE_TO_CONFIGURE": "Click here to configure",
@@ -28,6 +31,17 @@
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
"LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "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} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "取消",
"DESC": "Webhook 事件為您提供了有關 Chatwoot 帳戶中發生的事情的即時資訊。請輸入一個有效的URL來配置回呼。",
@@ -104,6 +118,7 @@
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "刪除",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -145,7 +160,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -201,12 +238,16 @@
"SIDEBAR_TXT": "
Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
"LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
"TABLE_HEADER": {
"NAME": "姓名",
- "ENDPOINT": "Endpoint"
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "操作"
},
"EDIT_TOOLTIP": "編輯應用程式",
"DELETE_TOOLTIP": "刪除應用程式"
@@ -243,6 +284,7 @@
}
},
"LINEAR": {
+ "HEADER": "Linear",
"ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
"LOADING": "Fetching linear issues...",
"LOADING_ERROR": "There was an error fetching the linear issues, please try again",
@@ -337,6 +379,7 @@
}
},
"NOTION": {
+ "HEADER": "Notion",
"DELETE": {
"TITLE": "Are you sure you want to delete the Notion integration?",
"MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
@@ -406,6 +449,7 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/labelsMgmt.json
index 472803b4d..44815c8fb 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/labelsMgmt.json
@@ -5,6 +5,9 @@
"LOADING": "正在獲取標籤",
"DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
"LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "搜尋標籤...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "没有任何項目符合此查詢",
"LIST": {
"404": "此帳戶中没有可用的標籤。",
@@ -13,7 +16,8 @@
"TABLE_HEADER": {
"NAME": "姓名",
"DESCRIPTION": "描述資訊",
- "COLOR": "顏色"
+ "COLOR": "顏色",
+ "ACTION": "操作"
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/login.json b/app/javascript/dashboard/i18n/locale/zh_TW/login.json
index 63169e05b..ed9850494 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/login.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/login.json
@@ -2,8 +2,8 @@
"LOGIN": {
"TITLE": "登入到 Chatwoot",
"EMAIL": {
- "LABEL": "Email",
- "PLACEHOLDER": "example{'@'}companyname.com",
+ "LABEL": "電子郵件",
+ "PLACEHOLDER": "例項 {'@'}companyname.com",
"ERROR": "請輸入一個有效的電子信箱"
},
"PASSWORD": {
@@ -11,30 +11,30 @@
"PLACEHOLDER": "密碼"
},
"API": {
- "SUCCESS_MESSAGE": "Login successful",
- "ERROR_MESSAGE": "Could not connect to Woot server. Please try again.",
- "UNAUTH": "Username or password is incorrect. Please try again."
+ "SUCCESS_MESSAGE": "登入成功",
+ "ERROR_MESSAGE": "無法連線Woot伺服器,請稍後再試",
+ "UNAUTH": "使用者名稱或密碼不正確,請重試。"
},
"OAUTH": {
- "GOOGLE_LOGIN": "Login with Google",
- "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login",
- "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address."
+ "GOOGLE_LOGIN": "使用Google登入",
+ "BUSINESS_ACCOUNTS_ONLY": "請使用您的公司電子郵件地址登入",
+ "NO_ACCOUNT_FOUND": "我們找不到您的電子郵件地址的帳戶。"
},
"FORGOT_PASSWORD": "忘記密碼了?",
"CREATE_NEW_ACCOUNT": "建立新帳戶",
"SUBMIT": "登入",
"SAML": {
- "LABEL": "Login via SSO",
- "TITLE": "Initiate Single Sign-on (SSO)",
- "SUBTITLE": "Enter your work email to access your organization",
- "BACK_TO_LOGIN": "Login via Password",
+ "LABEL": "透過 SSO 登入",
+ "TITLE": "啟動單一登入 (SSO)",
+ "SUBTITLE": "輸入您的工作電子郵件以存取您的組織",
+ "BACK_TO_LOGIN": "透過密碼登入",
"WORK_EMAIL": {
- "LABEL": "Work Email",
- "PLACEHOLDER": "Enter your work email"
+ "LABEL": "工作信箱",
+ "PLACEHOLDER": "輸入您的工作電子郵件"
},
- "SUBMIT": "Continue with SSO",
+ "SUBMIT": "繼續使用單一登入",
"API": {
- "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ "ERROR_MESSAGE": "SSO 身份驗證失敗。請檢查您的憑證並重試。"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/macros.json b/app/javascript/dashboard/i18n/locale/zh_TW/macros.json
index cb3ed1194..89ba79791 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/macros.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/macros.json
@@ -3,9 +3,12 @@
"HEADER": "Macros",
"DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
"LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -29,7 +32,8 @@
"NAME": "姓名",
"CREATED BY": "Created by",
"LAST_UPDATED_BY": "Last updated by",
- "VISIBILITY": "Visibility"
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "操作"
},
"404": "No macros found"
},
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/mfa.json b/app/javascript/dashboard/i18n/locale/zh_TW/mfa.json
index f584d7110..728deecbc 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/mfa.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/mfa.json
@@ -1,7 +1,7 @@
{
"MFA_SETTINGS": {
"TITLE": "Two-Factor Authentication",
- "SUBTITLE": "Secure your account with TOTP-based authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
"DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
"STATUS_TITLE": "Authentication Status",
"STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/report.json b/app/javascript/dashboard/i18n/locale/zh_TW/report.json
index 3f36b9ef5..1363948ad 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/report.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/report.json
@@ -3,7 +3,7 @@
"HEADER": "對話",
"LOADING_CHART": "正在載入图表數據...",
"NO_ENOUGH_DATA": "我們没有收到足夠的數據來生成報表,請稍後再試。",
- "DOWNLOAD_AGENT_REPORTS": "下載客服報告",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -128,11 +128,16 @@
},
"AGENT_REPORTS": {
"HEADER": "客服總覽",
- "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "正在載入图表數據...",
"NO_ENOUGH_DATA": "我們没有收到足夠的數據來生成報表,請稍後再試。",
"DOWNLOAD_AGENT_REPORTS": "下載客服報告",
"FILTER_DROPDOWN_LABEL": "選擇客服",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "搜尋客服"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "對話",
@@ -201,6 +206,11 @@
"NO_ENOUGH_DATA": "我們没有收到足夠的數據來生成報表,請稍後再試。",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "搜尋標籤"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "對話",
@@ -271,6 +281,11 @@
"FILTER_DROPDOWN_LABEL": "選擇收件匣",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "對話",
@@ -334,11 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
- "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "正在載入图表數據...",
"NO_ENOUGH_DATA": "我們没有收到足夠的數據來生成報表,請稍後再試。",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "添加查詢條件",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "搜尋團隊"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "對話",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "添加查詢條件",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "搜尋客服",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "搜尋團隊",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "客服"
+ },
+ "INBOXES": {
+ "LABEL": "收件匣"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "聯絡人",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "客服",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "對話",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "取消",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/resetPassword.json b/app/javascript/dashboard/i18n/locale/zh_TW/resetPassword.json
index 19be04308..4eebba2e0 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/resetPassword.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/resetPassword.json
@@ -1,16 +1,16 @@
{
"RESET_PASSWORD": {
- "TITLE": "Reset password",
- "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.",
- "GO_BACK_TO_LOGIN": "If you want to go back to the login page,",
+ "TITLE": "重置密碼",
+ "DESCRIPTION": "輸入您用來登入到Chatwoot 的電子郵件地址,獲取密碼重置說明。",
+ "GO_BACK_TO_LOGIN": "回到登入頁面",
"EMAIL": {
- "LABEL": "Email",
+ "LABEL": "電子郵件",
"PLACEHOLDER": "請輸入您的電子信箱.",
"ERROR": "請輸入一個有效的電子信箱."
},
"API": {
"SUCCESS_MESSAGE": "密碼重置連結已發送到您的電子信箱.",
- "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ "ERROR_MESSAGE": "無法連線 Woot 伺服器,請稍後再試。"
},
"SUBMIT": "送出"
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/search.json b/app/javascript/dashboard/i18n/locale/zh_TW/search.json
index 2c46086f0..1e1c0063d 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/search.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/search.json
@@ -1,68 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "All results",
+ "ALL": "所有結果",
"CONTACTS": "聯絡人",
"CONVERSATIONS": "對話",
"MESSAGES": "訊息",
- "ARTICLES": "Articles"
+ "ARTICLES": "文章"
},
"SECTION": {
"CONTACTS": "聯絡人",
"CONVERSATIONS": "對話",
"MESSAGES": "訊息",
- "ARTICLES": "Articles"
+ "ARTICLES": "文章"
},
- "VIEW_MORE": "View more",
- "LOAD_MORE": "Load more",
- "SEARCHING_DATA": "Searching",
- "LOADING_DATA": "Loading",
- "EMPTY_STATE": "No {item} found for query '{query}'",
+ "VIEW_MORE": "檢視更多",
+ "LOAD_MORE": "載入更多",
+ "SEARCHING_DATA": "搜尋中",
+ "LOADING_DATA": "載入中",
+ "EMPTY_STATE": "未找到與查詢 '{query}' 相關的 {item}",
"EMPTY_STATE_FULL": "查無 {query} 條件的結果",
- "PLACEHOLDER_KEYBINDING": "/to focus",
- "INPUT_PLACEHOLDER": "Type 3 or more characters to search",
- "RECENT_SEARCHES": "Recent searches",
- "CLEAR_ALL": "Clear all",
- "MOST_RECENT": "Most recent",
- "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
+ "PLACEHOLDER_KEYBINDING": "/聚焦搜尋框",
+ "INPUT_PLACEHOLDER": "輸入 3 個或更多字元以進行搜尋",
+ "RECENT_SEARCHES": "最近搜尋",
+ "CLEAR_ALL": "清除全部",
+ "MOST_RECENT": "最新",
+ "EMPTY_STATE_DEFAULT": "透過會話 Id、電子郵件、電話號碼、訊息等進行搜尋以獲得更好的搜尋結果。 ",
"BOT_LABEL": "機器人",
- "READ_MORE": "Read more",
- "READ_LESS": "Read less",
- "WROTE": "wrote:",
- "FROM": "From",
- "EMAIL": "Email",
+ "READ_MORE": "檢視更多",
+ "READ_LESS": "少讀",
+ "WROTE": "寫道:",
+ "FROM": "來自",
+ "EMAIL": "電子郵件",
"EMAIL_SUBJECT": "主旨",
- "PRIVATE": "Private note",
- "TRANSCRIPT": "Transcript",
- "CREATED_AT": "created {time}",
- "UPDATED_AT": "updated {time}",
+ "PRIVATE": "私人備註",
+ "TRANSCRIPT": "對話記錄",
+ "CREATED_AT": "建立於 {time}",
+ "UPDATED_AT": "更新於 {time}",
"SORT_BY": {
- "RELEVANCE": "Relevance"
+ "RELEVANCE": "相關性"
},
"DATE_RANGE": {
"LAST_7_DAYS": "最近7天",
"LAST_30_DAYS": "最近30天",
"LAST_60_DAYS": "最近60天",
"LAST_90_DAYS": "最近90天",
- "CUSTOM_RANGE": "Custom range:",
- "CREATED_BETWEEN": "Created between",
- "AND": "and",
+ "CUSTOM_RANGE": "自訂範圍:",
+ "CREATED_BETWEEN": "建立於以下期間",
+ "AND": "和",
"APPLY": "套用",
- "BEFORE_DATE": "Before {date}",
- "AFTER_DATE": "After {date}",
- "TIME_RANGE": "Filter by time",
- "CLEAR_FILTER": "Clear filter"
+ "BEFORE_DATE": "{date}",
+ "AFTER_DATE": "{date}之後",
+ "TIME_RANGE": "按時間篩選",
+ "CLEAR_FILTER": "清除篩選條件"
},
"FILTERS": {
- "FILTER_MESSAGE": "Filter messages by:",
+ "FILTER_MESSAGE": "篩選郵件的依據:",
"FROM": "發送者",
"IN": "收件匣",
"AGENTS": "客服",
"CONTACTS": "聯絡人",
"INBOXES": "收件匣",
"NO_AGENTS": "查無客服",
- "NO_CONTACTS": "Start by searching to see results",
- "NO_INBOXES": "No inboxes found"
+ "NO_CONTACTS": "透過搜尋開始查看結果",
+ "NO_INBOXES": "未找到收件匣"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/setNewPassword.json b/app/javascript/dashboard/i18n/locale/zh_TW/setNewPassword.json
index 2707523dd..c195bafc2 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/setNewPassword.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/setNewPassword.json
@@ -1,22 +1,22 @@
{
"SET_NEW_PASSWORD": {
- "TITLE": "Set new password",
+ "TITLE": "設定新密碼",
"PASSWORD": {
"LABEL": "密碼",
"PLACEHOLDER": "密碼",
"ERROR": "密碼太短了."
},
"CONFIRM_PASSWORD": {
- "LABEL": "Confirm password",
+ "LABEL": "請重新輸入一次密碼",
"PLACEHOLDER": "確認密碼",
"ERROR": "密碼不匹配."
},
"API": {
"SUCCESS_MESSAGE": "成功修改密碼.",
- "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ "ERROR_MESSAGE": "無法連線Woot伺服器,請稍後再試"
},
"CAPTCHA": {
- "ERROR": "Verification expired. Please solve captcha again."
+ "ERROR": "驗證碼過期。請重新獲取"
},
"SUBMIT": "送出"
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/settings.json b/app/javascript/dashboard/i18n/locale/zh_TW/settings.json
index 62ef9a06a..0f64c2e94 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/settings.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/settings.json
@@ -273,7 +273,8 @@
"FILE_BUBBLE": {
"DOWNLOAD": "下載",
"UPLOADING": "上傳中...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
@@ -378,7 +379,57 @@
"INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
"DOCS": "Read docs",
- "SECURITY": "Security"
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "帳單",
@@ -506,6 +557,58 @@
}
}
},
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "解決對話",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "解決對話",
+ "CANCEL": "取消"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "是",
+ "NO": "否"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
+ },
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
"NEW_ACCOUNT": "新帳戶",
@@ -591,7 +694,8 @@
"CREATE_BUTTON": "Create policy",
"API": {
"SUCCESS_MESSAGE": "Assignment policy created successfully",
- "ERROR_MESSAGE": "Failed to create assignment policy"
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
}
},
"EDIT": {
@@ -605,6 +709,12 @@
"CONFIRM_BUTTON_LABEL": "Continue",
"CANCEL_BUTTON_LABEL": "取消"
},
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
"API": {
"SUCCESS_MESSAGE": "Assignment policy updated successfully",
"ERROR_MESSAGE": "Failed to update assignment policy"
@@ -643,7 +753,9 @@
},
"BALANCED": {
"LABEL": "Balanced",
- "DESCRIPTION": "Assign conversations based on available capacity."
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
}
},
"ASSIGNMENT_PRIORITY": {
@@ -729,6 +841,20 @@
"SUCCESS_MESSAGE": "Agent removed from policy successfully",
"ERROR_MESSAGE": "Failed to remove agent from policy"
}
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
}
},
"FORM": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/signup.json b/app/javascript/dashboard/i18n/locale/zh_TW/signup.json
index 41a645e64..67087743f 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/signup.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "註冊",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/sla.json b/app/javascript/dashboard/i18n/locale/zh_TW/sla.json
index 57605f081..f4dc28a54 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/sla.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/sla.json
@@ -5,7 +5,12 @@
"ADD_ACTION_LONG": "Create a new SLA Policy",
"DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
"LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
"PAYWALL": {
"TITLE": "Upgrade to create SLAs",
"AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
@@ -20,14 +25,18 @@
},
"LIST": {
"404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "服務水準協議(SLA)",
+ "BUSINESS_HOURS": "Business hours"
+ },
"EMPTY": {
"TITLE_1": "Enterprise P0",
"DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
"TITLE_2": "Enterprise P1",
"DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
},
- "BUSINESS_HOURS_ON": "Business hours on",
- "BUSINESS_HOURS_OFF": "Business hours off",
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
"RESPONSE_TYPES": {
"FRT": "First response time threshold",
"NRT": "Next response time threshold",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/snooze.json b/app/javascript/dashboard/i18n/locale/zh_TW/snooze.json
new file mode 100644
index 000000000..4b380fdef
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "小時",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "明天",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "下週",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/teamsSettings.json b/app/javascript/dashboard/i18n/locale/zh_TW/teamsSettings.json
index 518557287..637ec5a57 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/teamsSettings.json
@@ -5,6 +5,9 @@
"LOADING": "Fetching teams",
"DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
"LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "搜尋團隊...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
"EDIT_TEAM": "編輯團隊",
@@ -65,7 +68,7 @@
},
"AGENTS": {
"AGENT": "客服",
- "EMAIL": "電子信箱",
+ "EMAIL": "Email",
"BUTTON_TEXT": "新增客服",
"ADD_AGENTS": "正在將客服加入到你的團隊...",
"SELECT": "選擇",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/zh_TW/whatsappTemplates.json
index cf28312dc..293701544 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/whatsappTemplates.json
@@ -1,47 +1,47 @@
{
"WHATSAPP_TEMPLATES": {
"MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ "TITLE": "Whatsapp 模板列表",
+ "SUBTITLE": "請選擇想要傳送的 Whatsapp 訊息模板",
+ "TEMPLATE_SELECTED_SUBTITLE": "配置範本:{templateName}"
},
"PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "HEADER": "Header",
- "BODY": "Body",
- "FOOTER": "Footer",
- "BUTTONS": "Buttons",
- "CATEGORY": "Category",
- "MEDIA_CONTENT": "Media Content",
- "MEDIA_CONTENT_FALLBACK": "media content",
- "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
- "REFRESH_BUTTON": "Refresh templates",
- "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
- "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "SEARCH_PLACEHOLDER": "查詢模板",
+ "NO_TEMPLATES_FOUND": "沒有找到對應的模版",
+ "HEADER": "標題",
+ "BODY": "正文",
+ "FOOTER": "頁腳",
+ "BUTTONS": "按鈕",
+ "CATEGORY": "類別",
+ "MEDIA_CONTENT": "媒體內容",
+ "MEDIA_CONTENT_FALLBACK": "媒體內容",
+ "NO_TEMPLATES_AVAILABLE": "沒有可用的 WhatsApp 範本。點擊重新整理以從 WhatsApp 同步範本。",
+ "REFRESH_BUTTON": "刷新模板",
+ "REFRESH_SUCCESS": "已啟動模板刷新。更新可能需要幾分鐘的時間。 ",
+ "REFRESH_ERROR": "刷新範本失敗。請重試。 ",
"LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
+ "LANGUAGE": "語言",
+ "TEMPLATE_BODY": "模板內容",
+ "CATEGORY": "類別"
}
},
"PARSER": {
- "VARIABLES_LABEL": "Variables",
- "LANGUAGE": "Language",
- "CATEGORY": "Category",
- "VARIABLE_PLACEHOLDER": "Enter {variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
- "MEDIA_HEADER_LABEL": "{type} Header",
- "OTP_CODE": "Enter 4-8 digit OTP",
- "EXPIRY_MINUTES": "Enter expiry minutes",
- "BUTTON_PARAMETERS": "Button Parameters",
- "BUTTON_LABEL": "Button {index}",
- "COUPON_CODE": "Enter coupon code (max 15 chars)",
- "MEDIA_URL_LABEL": "Enter {type} URL",
- "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
- "BUTTON_PARAMETER": "Enter button parameter"
+ "VARIABLES_LABEL": "引數",
+ "LANGUAGE": "語言",
+ "CATEGORY": "類別",
+ "VARIABLE_PLACEHOLDER": "請填寫 {variable}",
+ "GO_BACK_LABEL": "返回",
+ "SEND_MESSAGE_LABEL": "傳送訊息",
+ "FORM_ERROR_MESSAGE": "你必須填寫所有引數才能傳送",
+ "MEDIA_HEADER_LABEL": "{type} 標題",
+ "OTP_CODE": "輸入 4 到 8 位數的一次性密碼",
+ "EXPIRY_MINUTES": "輸入到期分鐘",
+ "BUTTON_PARAMETERS": "按鈕參數",
+ "BUTTON_LABEL": "按鈕{index}",
+ "COUPON_CODE": "輸入優惠券代碼(最多 15 個字元)",
+ "MEDIA_URL_LABEL": "輸入 {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "輸入文件檔案名稱(例如 Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "輸入按鈕參數"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/yearInReview.json b/app/javascript/dashboard/i18n/locale/zh_TW/yearInReview.json
index 14dc66f2f..f75991ddd 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/yearInReview.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/yearInReview.json
@@ -1,64 +1,64 @@
{
"YEAR_IN_REVIEW": {
- "TITLE": "Year in Review",
- "LOADING": "Loading your year in review...",
- "ERROR": "Failed to load year in review",
+ "TITLE": "年度回顧",
+ "LOADING": "正在載入您的年度回顧...",
+ "ERROR": "無法載入年度回顧",
"CLOSE": "關閉",
"CONVERSATIONS": {
- "TITLE": "You have handled",
- "SUBTITLE": "對話",
- "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "TITLE": "您已處理",
+ "SUBTITLE": "則對話",
+ "FALLBACK": "今年不只是數字,而是每一次你都在場。",
"COMPARISON": {
- "0_50": "You showed up, and that's how every good inbox begins.",
- "50_100": "You kept the replies flowing and the conversations alive.",
- "100_500": "You handled serious volume and kept everything on track.",
- "500_2000": "You kept things moving while the volume kept climbing.",
- "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
- "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ "0_50": "你出現了,而這正是每個優秀收件匣的開始。",
+ "50_100": "你讓回覆持續流動,讓每段對話保持活力。",
+ "100_500": "你處理了相當可觀的量,並讓一切保持正軌。",
+ "500_2000": "即使對話量持續攀升,你仍然讓一切順利運轉。",
+ "2000_10000": "高流量湧入收件匣,但你依舊從容應對。",
+ "10000_PLUS": "像是一整座城市的顧客都在敲門,而你讓這一切看起來毫不費力。"
}
},
"BUSIEST_DAY": {
- "TITLE": "Your busiest day was",
- "MESSAGE": "{count} conversations that day.",
+ "TITLE": "您最忙碌的一天是",
+ "MESSAGE": "當天共有 {count} 則對話。",
"COMPARISON": {
- "0_5": "A warm-up lap that barely woke the inbox.",
- "5_10": "Enough action to justify a second cup of coffee.",
- "10_25": "Things got busy and the inbox stayed on its toes.",
- "25_50": "A proper rush that barely broke a sweat.",
- "50_100": "Controlled chaos, handled like a normal Tuesday.",
- "100_500": "Absolute dumpster fire, somehow still shipping replies.",
- "500_PLUS": "The inbox lost all chill and never slowed down."
+ "0_5": "像是熱身圈,才剛讓收件匣醒過來。",
+ "5_10": "忙到值得再來一杯咖啡。",
+ "10_25": "事情開始變多,但收件匣依然穩穩接住。",
+ "25_50": "一波扎實的忙碌時段,但你依然從容。",
+ "50_100": "可控的混亂,被你處理得像普通星期二一樣。",
+ "100_500": "簡直一團混亂,但你還是持續把回覆送出去。",
+ "500_PLUS": "收件匣徹底失控,但你從未掉速。"
}
},
"PERSONALITY": {
- "TITLE": "Your support personality is",
+ "TITLE": "您的客服人格是",
"MESSAGES": {
- "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
- "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
- "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
- "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ "SWIFT_HELPER": "您的平均回覆時間為 {time}。比大多數通知還快。",
+ "QUICK_RESPONDER": "您的平均回覆時間為 {time}。收件匣幾乎不用等待。",
+ "STEADY_SUPPORT": "您的平均回覆時間為 {time}。節奏穩定,回覆扎實。",
+ "THOUGHTFUL_ADVISOR": "您的平均回覆時間為 {time}。願意花時間把事情做對。"
}
},
"THANK_YOU": {
- "TITLE": "Congratulations on surviving the inbox of {year}.",
- "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ "TITLE": "恭喜您撐過了 {year} 年的收件匣。",
+ "MESSAGE": "感謝您這一年來持續為客戶提供出色的支援。您的努力帶來了真正的改變,我們很高興能與您一起走過這段旅程。讓我們一起讓 {nextYear} 變得更好!"
},
"SHARE_MODAL": {
- "TITLE": "Share Your Year in Review",
- "PREPARING": "Preparing your image...",
+ "TITLE": "分享您的年度回顧",
+ "PREPARING": "正在準備您的圖片...",
"DOWNLOAD": "下載",
- "SHARE_TITLE": "My {year} Year in Review",
- "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
- "BRANDING": "Made with Chatwoot"
+ "SHARE_TITLE": "我的 {year} 年度回顧",
+ "SHARE_TEXT": "來看看我在 Chatwoot 的 {year} 年度回顧!",
+ "BRANDING": "使用 Chatwoot 製作"
},
"BANNER": {
- "TITLE": "Your {year} Year in Review is here",
- "BUTTON": "See your impact"
+ "TITLE": "您的 {year} 年度回顧來了",
+ "BUTTON": "看看您的影響力"
},
"NAVIGATION": {
- "PREVIOUS": "Previous",
- "NEXT": "Next",
- "SHARE": "Share conversation"
+ "PREVIOUS": "上一頁",
+ "NEXT": "下一頁",
+ "SHARE": "分享"
}
}
}
diff --git a/app/javascript/dashboard/modules/search/components/SearchContactAgentSelector.vue b/app/javascript/dashboard/modules/search/components/SearchContactAgentSelector.vue
index ff09c9467..a177296c0 100644
--- a/app/javascript/dashboard/modules/search/components/SearchContactAgentSelector.vue
+++ b/app/javascript/dashboard/modules/search/components/SearchContactAgentSelector.vue
@@ -5,7 +5,7 @@ import { useToggle } from '@vueuse/core';
import { vOnClickOutside } from '@vueuse/components';
import { debounce } from '@chatwoot/utils';
import { useMapGetter } from 'dashboard/composables/store.js';
-import { searchContacts } from 'dashboard/components-next/NewConversation/helpers/composeConversationHelper';
+import { createContactSearcher } from 'dashboard/components-next/NewConversation/helpers/composeConversationHelper';
import { useCamelCase } from 'dashboard/composables/useTransformKeys';
import { fetchContactDetails } from '../helpers/searchHelper';
@@ -18,6 +18,8 @@ const props = defineProps({
const emit = defineEmits(['change']);
+const searchContacts = createContactSearcher();
+
const FROM_TYPE = {
CONTACT: 'contact',
AGENT: 'agent',
@@ -119,10 +121,10 @@ const debouncedSearch = debounce(async query => {
}
try {
- const contacts = await searchContacts({
- keys: ['name', 'email', 'phone_number'],
- query,
- });
+ const contacts = await searchContacts(query, { skipMinLength: true });
+
+ // null means the request was aborted (a newer search is in-flight),
+ if (contacts === null) return;
// Add selected contact to top if not already in results
const allContacts = selectedContact.value
@@ -133,9 +135,8 @@ const debouncedSearch = debounce(async query => {
: contacts;
searchedContacts.value = allContacts;
+ isSearching.value = false;
} catch {
- // Ignore error
- } finally {
isSearching.value = false;
}
}, 300);
diff --git a/app/javascript/dashboard/routes/dashboard/captain/assistants/scenarios/Index.vue b/app/javascript/dashboard/routes/dashboard/captain/assistants/scenarios/Index.vue
index 27deb4070..c4914f354 100644
--- a/app/javascript/dashboard/routes/dashboard/captain/assistants/scenarios/Index.vue
+++ b/app/javascript/dashboard/routes/dashboard/captain/assistants/scenarios/Index.vue
@@ -191,7 +191,7 @@ onMounted(() => {
{
const onCmdSnoozeConversation = snoozeType => {
if (snoozeType === wootConstants.SNOOZE_OPTIONS.UNTIL_CUSTOM_TIME) {
showCustomSnoozeModal.value = true;
+ } else if (typeof snoozeType === 'number') {
+ toggleStatus(wootConstants.STATUS_TYPE.SNOOZED, snoozeType);
} else {
toggleStatus(
wootConstants.STATUS_TYPE.SNOOZED,
diff --git a/app/javascript/dashboard/routes/dashboard/commands/commandbar.vue b/app/javascript/dashboard/routes/dashboard/commands/commandbar.vue
index afd15283e..11943f61c 100644
--- a/app/javascript/dashboard/routes/dashboard/commands/commandbar.vue
+++ b/app/javascript/dashboard/routes/dashboard/commands/commandbar.vue
@@ -4,16 +4,29 @@ import { ref, computed, watchEffect, onMounted } from 'vue';
import { useStore } from 'dashboard/composables/store';
import { useTrack } from 'dashboard/composables';
import { useI18n } from 'vue-i18n';
+import { useLocale } from 'shared/composables/useLocale';
import { useAppearanceHotKeys } from 'dashboard/composables/commands/useAppearanceHotKeys';
import { useInboxHotKeys } from 'dashboard/composables/commands/useInboxHotKeys';
import { useGoToCommandHotKeys } from 'dashboard/composables/commands/useGoToCommandHotKeys';
import { useBulkActionsHotKeys } from 'dashboard/composables/commands/useBulkActionsHotKeys';
import { useConversationHotKeys } from 'dashboard/composables/commands/useConversationHotKeys';
import wootConstants from 'dashboard/constants/globals';
-import { GENERAL_EVENTS } from 'dashboard/helper/AnalyticsHelper/events';
+import {
+ GENERAL_EVENTS,
+ SNOOZE_EVENTS,
+} from 'dashboard/helper/AnalyticsHelper/events';
+import { generateSnoozeSuggestions } from 'dashboard/helper/snoozeHelpers';
+import { ICON_SNOOZE_CONVERSATION } from 'dashboard/helper/commandbar/icons';
+import {
+ CMD_SNOOZE_CONVERSATION,
+ CMD_SNOOZE_NOTIFICATION,
+ CMD_BULK_ACTION_SNOOZE_CONVERSATION,
+} from 'dashboard/helper/commandbar/events';
+import { emitter } from 'shared/helpers/mitt';
const store = useStore();
-const { t } = useI18n();
+const { t, tm } = useI18n();
+const { resolvedLocale } = useLocale();
const ninjakeys = ref(null);
@@ -28,48 +41,168 @@ const { goToCommandHotKeys } = useGoToCommandHotKeys();
const { bulkActionsHotKeys } = useBulkActionsHotKeys();
const { conversationHotKeys } = useConversationHotKeys();
-const placeholder = computed(() => t('COMMAND_BAR.SEARCH_PLACEHOLDER'));
+const SNOOZE_PARENT_IDS = [
+ 'snooze_conversation',
+ 'snooze_notification',
+ 'bulk_action_snooze_conversation',
+];
+const DYNAMIC_SNOOZE_PREFIX = 'dynamic_snooze_';
-const hotKeys = computed(() => [
- ...inboxHotKeys.value,
- ...goToCommandHotKeys.value,
- ...goToAppearanceHotKeys.value,
- ...bulkActionsHotKeys.value,
- ...conversationHotKeys.value,
-]);
+const CUSTOM_SNOOZE = wootConstants.SNOOZE_OPTIONS.UNTIL_CUSTOM_TIME;
+
+const dynamicSnoozeActions = ref([]);
+const currentCommandRoot = ref(null);
+
+const placeholder = computed(() =>
+ SNOOZE_PARENT_IDS.includes(currentCommandRoot.value)
+ ? t('COMMAND_BAR.SNOOZE_PLACEHOLDER')
+ : t('COMMAND_BAR.SEARCH_PLACEHOLDER')
+);
+
+const SNOOZE_PRESET_IDS = new Set(Object.values(wootConstants.SNOOZE_OPTIONS));
+
+const hotKeys = computed(() => {
+ const allActions = [
+ ...dynamicSnoozeActions.value,
+ ...inboxHotKeys.value,
+ ...goToCommandHotKeys.value,
+ ...goToAppearanceHotKeys.value,
+ ...bulkActionsHotKeys.value,
+ ...conversationHotKeys.value,
+ ];
+ // When dynamic NLP snooze suggestions exist, hide all preset snooze actions to avoid duplication
+ if (!dynamicSnoozeActions.value.length) return allActions;
+ return allActions.filter(
+ a => !SNOOZE_PRESET_IDS.has(a.id) || !SNOOZE_PARENT_IDS.includes(a.parent)
+ );
+});
const setCommandBarData = () => {
ninjakeys.value.data = hotKeys.value;
};
-const onSelected = item => {
- const {
- detail: { action: { title = null, section = null, id = null } = {} } = {},
- } = item;
- // Added this condition to prevent setting the selectedSnoozeType to null
- // When we select the "custom snooze" (CMD bar will close and the custom snooze modal will open)
- if (id === wootConstants.SNOOZE_OPTIONS.UNTIL_CUSTOM_TIME) {
- selectedSnoozeType.value = wootConstants.SNOOZE_OPTIONS.UNTIL_CUSTOM_TIME;
- } else {
- selectedSnoozeType.value = null;
+const SNOOZE_EVENT_MAP = {
+ snooze_conversation: CMD_SNOOZE_CONVERSATION,
+ snooze_notification: CMD_SNOOZE_NOTIFICATION,
+ bulk_action_snooze_conversation: CMD_BULK_ACTION_SNOOZE_CONVERSATION,
+};
+
+const SNOOZE_SECTION_MAP = {
+ snooze_conversation: 'COMMAND_BAR.SECTIONS.SNOOZE_CONVERSATION',
+ snooze_notification: 'COMMAND_BAR.SECTIONS.SNOOZE_NOTIFICATION',
+ bulk_action_snooze_conversation: 'COMMAND_BAR.SECTIONS.BULK_ACTIONS',
+};
+
+const snoozeTranslations = computed(() => {
+ const raw = tm('SNOOZE_PARSER');
+ if (!raw || typeof raw !== 'object') return {};
+ return JSON.parse(JSON.stringify(raw));
+});
+
+const buildDynamicSnoozeActions = (search, parentId) => {
+ const suggestions = generateSnoozeSuggestions(search, new Date(), {
+ translations: snoozeTranslations.value,
+ locale: resolvedLocale.value,
+ });
+ if (!suggestions.length) return [];
+
+ const busEvent = SNOOZE_EVENT_MAP[parentId];
+ const section = t(SNOOZE_SECTION_MAP[parentId]);
+
+ return suggestions.map((parsed, index) => ({
+ id: `${DYNAMIC_SNOOZE_PREFIX}${index}`,
+ title:
+ parsed.label !== parsed.formattedDate
+ ? `${parsed.label} - ${parsed.formattedDate}`
+ : parsed.formattedDate,
+ parent: parentId,
+ section,
+ icon: ICON_SNOOZE_CONVERSATION,
+ keywords: search,
+ handler: () => {
+ emitter.emit(busEvent, parsed.resolve());
+ useTrack(SNOOZE_EVENTS.NLP_SNOOZE_APPLIED, { label: parsed.label });
+ },
+ }));
+};
+
+const resetSnoozeState = () => {
+ currentCommandRoot.value = null;
+ dynamicSnoozeActions.value = [];
+};
+
+const patchNinjaKeysOpenClose = el => {
+ if (!el || typeof el.open !== 'function' || typeof el.close !== 'function') {
+ return;
}
- useTrack(GENERAL_EVENTS.COMMAND_BAR, {
- section,
- action: title,
- });
+ const originalOpen = el.open.bind(el);
+ const originalClose = el.close.bind(el);
+ el.open = (...args) => {
+ const [options = {}] = args;
+ currentCommandRoot.value = options.parent || null;
+ dynamicSnoozeActions.value = [];
+ return originalOpen(...args);
+ };
+
+ el.close = (...args) => {
+ resetSnoozeState();
+ return originalClose(...args);
+ };
+};
+
+const onSelected = item => {
+ const {
+ detail: {
+ action: { title = null, section = null, id = null, children = null } = {},
+ } = {},
+ } = item;
+
+ selectedSnoozeType.value = id === CUSTOM_SNOOZE ? id : null;
+
+ if (Array.isArray(children) && children.length) {
+ currentCommandRoot.value = id;
+ }
+
+ useTrack(GENERAL_EVENTS.COMMAND_BAR, { section, action: title });
setCommandBarData();
};
-const onClosed = () => {
- // If the selectedSnoozeType is not "SNOOZE_OPTIONS.UNTIL_CUSTOM_TIME (custom snooze)" then we set the context menu chat id to null
- // Else we do nothing and its handled in the ChatList.vue hideCustomSnoozeModal() method
+const onCommandBarChange = item => {
+ const { detail: { search = '', actions = [] } = {} } = item;
+ const normalizedSearch = search.trim();
+
+ if (actions.length > 0) {
+ const uniqueParents = [
+ ...new Set(actions.map(action => action.parent).filter(Boolean)),
+ ];
+ if (uniqueParents.length === 1) {
+ currentCommandRoot.value = uniqueParents[0];
+ } else {
+ currentCommandRoot.value = null;
+ }
+ }
+
if (
- selectedSnoozeType.value !== wootConstants.SNOOZE_OPTIONS.UNTIL_CUSTOM_TIME
+ !normalizedSearch ||
+ !SNOOZE_PARENT_IDS.includes(currentCommandRoot.value || '')
) {
+ dynamicSnoozeActions.value = [];
+ return;
+ }
+
+ dynamicSnoozeActions.value = buildDynamicSnoozeActions(
+ normalizedSearch,
+ currentCommandRoot.value
+ );
+};
+
+const onClosed = () => {
+ if (selectedSnoozeType.value !== CUSTOM_SNOOZE) {
store.dispatch('setContextMenuChatId', null);
}
+ resetSnoozeState();
};
watchEffect(() => {
@@ -78,7 +211,10 @@ watchEffect(() => {
}
});
-onMounted(setCommandBarData);
+onMounted(() => {
+ setCommandBarData();
+ patchNinjaKeysOpenClose(ninjakeys.value);
+});
@@ -88,6 +224,7 @@ onMounted(setCommandBarData);
noAutoLoadMdIcons
hideBreadcrumbs
:placeholder="placeholder"
+ @change="onCommandBarChange"
@selected="onSelected"
@closed="onClosed"
/>
diff --git a/app/javascript/dashboard/routes/dashboard/helpcenter/pages/PortalsArticlesIndexPage.vue b/app/javascript/dashboard/routes/dashboard/helpcenter/pages/PortalsArticlesIndexPage.vue
index f7a109e58..7d636de70 100644
--- a/app/javascript/dashboard/routes/dashboard/helpcenter/pages/PortalsArticlesIndexPage.vue
+++ b/app/javascript/dashboard/routes/dashboard/helpcenter/pages/PortalsArticlesIndexPage.vue
@@ -11,7 +11,10 @@ const store = useStore();
const pageNumber = ref(1);
-const articles = useMapGetter('articles/allArticles');
+const allArticles = useMapGetter('articles/allArticles');
+const articlesSortedByPosition = useMapGetter(
+ 'articles/allArticlesSortedByPosition'
+);
const categories = useMapGetter('categories/allCategories');
const meta = useMapGetter('articles/getMeta');
const portalMeta = useMapGetter('portals/getMeta');
@@ -58,6 +61,11 @@ const isCategoryArticles = computed(() => {
);
});
+// Use position-sorted articles for category views and categories filter view (where drag reorder is enabled)
+const articles = computed(() =>
+ isCategoryArticles.value ? articlesSortedByPosition.value : allArticles.value
+);
+
const fetchArticles = ({ pageNumber: pageNumberParam } = {}) => {
store.dispatch('articles/index', {
pageNumber: pageNumberParam || pageNumber.value,
diff --git a/app/javascript/dashboard/routes/dashboard/helpcenter/pages/PortalsCategoriesIndexPage.vue b/app/javascript/dashboard/routes/dashboard/helpcenter/pages/PortalsCategoriesIndexPage.vue
index ca9514336..2e0b7540c 100644
--- a/app/javascript/dashboard/routes/dashboard/helpcenter/pages/PortalsCategoriesIndexPage.vue
+++ b/app/javascript/dashboard/routes/dashboard/helpcenter/pages/PortalsCategoriesIndexPage.vue
@@ -9,7 +9,7 @@ import CategoriesPage from 'dashboard/components-next/HelpCenter/Pages/CategoryP
const store = useStore();
const route = useRoute();
-const categories = useMapGetter('categories/allCategories');
+const categories = useMapGetter('categories/allCategoriesSortedByPosition');
const selectedPortalSlug = computed(() => route.params.portalSlug);
const getPortalBySlug = useMapGetter('portals/portalBySlug');
diff --git a/app/javascript/dashboard/routes/dashboard/helpcenter/pages/PortalsLocalesIndexPage.vue b/app/javascript/dashboard/routes/dashboard/helpcenter/pages/PortalsLocalesIndexPage.vue
index 95a650e88..c66bab9ef 100644
--- a/app/javascript/dashboard/routes/dashboard/helpcenter/pages/PortalsLocalesIndexPage.vue
+++ b/app/javascript/dashboard/routes/dashboard/helpcenter/pages/PortalsLocalesIndexPage.vue
@@ -22,6 +22,7 @@ const allowedLocales = computed(() => {
id: locale?.code,
name: allLocales[locale?.code],
code: locale?.code,
+ isDraft: locale?.draft || false,
articlesCount: locale?.articles_count || 0,
categoriesCount: locale?.categories_count || 0,
};
diff --git a/app/javascript/dashboard/routes/dashboard/inbox/components/InboxItemHeader.vue b/app/javascript/dashboard/routes/dashboard/inbox/components/InboxItemHeader.vue
index 9a855188b..e6f940fdc 100644
--- a/app/javascript/dashboard/routes/dashboard/inbox/components/InboxItemHeader.vue
+++ b/app/javascript/dashboard/routes/dashboard/inbox/components/InboxItemHeader.vue
@@ -69,6 +69,8 @@ export default {
onCmdSnoozeNotification(snoozeType) {
if (snoozeType === wootConstants.SNOOZE_OPTIONS.UNTIL_CUSTOM_TIME) {
this.showCustomSnoozeModal = true;
+ } else if (typeof snoozeType === 'number') {
+ this.snoozeNotification(snoozeType);
} else {
const snoozedUntil = findSnoozeTime(snoozeType) || null;
this.snoozeNotification(snoozedUntil);
diff --git a/app/javascript/dashboard/routes/dashboard/settings/account/Index.vue b/app/javascript/dashboard/routes/dashboard/settings/account/Index.vue
index 2ec298f98..5be704c24 100644
--- a/app/javascript/dashboard/routes/dashboard/settings/account/Index.vue
+++ b/app/javascript/dashboard/routes/dashboard/settings/account/Index.vue
@@ -160,6 +160,7 @@ export default {
@submit.prevent="updateAccount"
>
{
this.setTabFromRouteParam();
});
+ } else {
+ this.selectedFeatureFlags = newInbox?.selected_feature_flags || [];
}
},
immediate: true,
@@ -432,6 +432,23 @@ export default {
this.isLoadingHealth = false;
}
},
+ async registerWebhook() {
+ if (!this.inbox) return;
+
+ try {
+ this.isRegisteringWebhook = true;
+ await InboxHealthAPI.registerWebhook(this.inbox.id);
+ useAlert(this.$t('INBOX_MGMT.ACCOUNT_HEALTH.WEBHOOK.REGISTER_SUCCESS'));
+ await this.fetchHealthData();
+ } catch (error) {
+ useAlert(
+ error.message ||
+ this.$t('INBOX_MGMT.ACCOUNT_HEALTH.WEBHOOK.REGISTER_ERROR')
+ );
+ } finally {
+ this.isRegisteringWebhook = false;
+ }
+ },
handleFeatureFlag(e) {
this.selectedFeatureFlags = this.toggleInput(
this.selectedFeatureFlags,
@@ -1154,7 +1171,11 @@ export default {
-
+
@@ -1170,7 +1191,11 @@ export default {
diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/components/AccountHealth.vue b/app/javascript/dashboard/routes/dashboard/settings/inbox/components/AccountHealth.vue
index af32e6ad6..04c54ff0d 100644
--- a/app/javascript/dashboard/routes/dashboard/settings/inbox/components/AccountHealth.vue
+++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/components/AccountHealth.vue
@@ -10,8 +10,14 @@ const props = defineProps({
type: Object,
default: null,
},
+ isRegisteringWebhook: {
+ type: Boolean,
+ default: false,
+ },
});
+const emit = defineEmits(['registerWebhook']);
+
const { t } = useI18n();
const QUALITY_COLORS = {
@@ -133,6 +139,28 @@ const formatModeDisplay = mode =>
const getModeStatusTextColor = mode => MODE_COLORS[mode] || 'text-n-slate-12';
const getStatusTextColor = status => STATUS_COLORS[status] || 'text-n-slate-12';
+
+const showWebhookSection = computed(
+ () => props.healthData?.webhook_configuration !== undefined
+);
+
+const webhookUrl = computed(
+ () =>
+ props.healthData?.webhook_configuration?.whatsapp_business_account ||
+ props.healthData?.webhook_configuration?.application
+);
+
+const webhookConfigured = computed(() => !!webhookUrl.value);
+
+const webhookUrlMismatch = computed(
+ () =>
+ webhookConfigured.value &&
+ webhookUrl.value !== props.healthData?.expected_webhook_url
+);
+
+const handleRegisterWebhook = () => {
+ emit('registerWebhook');
+};
@@ -211,6 +239,55 @@ const getStatusTextColor = status => STATUS_COLORS[status] || 'text-n-slate-12';
}}